@jamsocket/server
Advanced tools
+5
-0
@@ -50,2 +50,7 @@ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/main.ts | ||
| if (!response.ok) { | ||
| if (response.status === 429) { | ||
| console.warn( | ||
| "You've hit the spawn rate limit. This may be because you've spawned too many session backends in a short period of time or you're already running the maximum number of concurrent session backends. (related: https://docs.jamsocket.com/pricing/free-tier-limits)" | ||
| ); | ||
| } | ||
| throw new Error(`Error spawning backend: ${response.status} ${await response.text()}`); | ||
@@ -52,0 +57,0 @@ } |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../src/main.ts"],"names":[],"mappings":";AAAA,OAAO;AAyCP,IAAM,qBAAqB;AAC3B,IAAM,gBAAgB;AAEtB,SAAS,0BAA0B,MAA4C;AAC7E,SAAO,KAAK,QAAQ;AACtB;AAEA,SAAS,aAAa,MAAmB;AACvC,MAAI,CAAC,OAAO,UAAU,IAAI,GAAG;AAC3B,UAAM,IAAI,MAAM,8CAA8C,OAAO,IAAI,EAAE;AAAA,EAC7E;AACA,SAAO;AACT;AAUO,SAAS,KAAK,MAA+C;AAClE,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AAEJ,MAAI,0BAA0B,IAAI,GAAG;AACnC,cAAU;AACV,YAAQ;AACR,cAAU;AACV,UAAM,OAAO,KAAK,OAAO,aAAa,KAAK,IAAI,IAAI;AACnD,aAAS,oBAAoB,IAAI;AAAA,EACnC,OAAO;AACL,cAAU,KAAK;AACf,YAAQ,KAAK;AACb,cAAU,KAAK;AACf,aAAS,KAAK,UAAU;AAAA,EAC1B;AAEA,QAAM,aAAa,eAAgB,YAAmC,CAAC,GAAyB;AAC9F,UAAM,UAAiC,CAAC;AACxC,QAAI,UAAU;AAAK,cAAQ,MAAM,UAAU;AAC3C,QAAI,UAAU;AAAM,cAAQ,OAAO,UAAU;AAC7C,QAAI,UAAU;AAAK,cAAQ,MAAM,UAAU;AAC3C,QAAI,UAAU;AAAoB,cAAQ,uBAAuB,UAAU;AAC3E,QAAI,UAAU;AAAoB,cAAQ,sBAAsB,UAAU;AAE1E,UAAM,WAAW,MAAM,MAAM,GAAG,MAAM,SAAS,OAAO,YAAY,OAAO,UAAU;AAAA,MACjF,QAAQ;AAAA,MACR,SAAS,EAAE,eAAe,UAAU,KAAK,IAAI,gBAAgB,mBAAmB;AAAA,MAChF,MAAM,KAAK,UAAU,OAAO;AAAA,MAC5B,OAAO;AAAA,IACT,CAAC;AACD,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,IAAI,MAAM,2BAA2B,SAAS,MAAM,IAAI,MAAM,SAAS,KAAK,CAAC,EAAE;AAAA,IACvF;AACA,UAAM,OAAO,MAAM,SAAS,KAAK;AACjC,WAAO;AAAA,MACL,KAAK,KAAK;AAAA,MACV,MAAM,KAAK;AAAA,MACX,UAAU,KAAK;AAAA,MACf,WAAW,KAAK;AAAA,MAChB,SAAS,KAAK;AAAA,MACd,QAAQ,KAAK;AAAA,IACf;AAAA,EACF;AAEA,QAAM,QAAQ,eAAgB,YAAmC,CAAC,GAAyB;AACzF,YAAQ;AAAA,MACN;AAAA,IACF;AACA,WAAO,WAAW,SAAS;AAAA,EAC7B;AAEA,QAAM,QAAQ;AACd,SAAO;AACT;AAEA,IAAO,eAAQ,EAAE,KAAK","sourcesContent":["import 'isomorphic-fetch' // fetch polyfill for older versions of Node\n\nexport type SpawnResult = {\n url: string\n name: string\n readyUrl: string\n statusUrl: string\n spawned: boolean\n status: string\n}\n\nexport type JamsocketDevInitOptions = {\n dev: true\n port?: number\n}\n\nexport type JamsocketInitOptions =\n | {\n account: string\n token: string\n service: string\n apiUrl?: string\n }\n | JamsocketDevInitOptions\n\nexport type JamsocketSpawnOptions = {\n tag?: string\n lock?: string\n env?: Record<string, string>\n gracePeriodSeconds?: number\n serviceEnvironment?: string\n}\n\ntype JamsocketApiSpawnBody = {\n tag?: string\n lock?: string\n env?: Record<string, string>\n grace_period_seconds?: number\n service_environment?: string\n}\n\nconst JAMSOCKET_DEV_PORT = 8080\nconst JAMSOCKET_API = 'https://api.jamsocket.com'\n\nfunction isJamsocketDevInitOptions(opts: any): opts is JamsocketDevInitOptions {\n return opts.dev === true\n}\n\nfunction validatePort(port: any): number {\n if (!Number.isInteger(port)) {\n throw new Error(`Jamsocket dev port must be an integer, got ${typeof port}`)\n }\n return port\n}\n\nexport type JamsocketInstance = {\n /**\n * @deprecated Calling a `JamsocketInstance` as a function is deprecated. Use the `spawn` method instead.\n */\n (opts: JamsocketSpawnOptions): Promise<SpawnResult>\n spawn(opts: JamsocketSpawnOptions): Promise<SpawnResult>\n}\n\nexport function init(opts: JamsocketInitOptions): JamsocketInstance {\n let account: string\n let token: string\n let service: string\n let apiUrl: string\n\n if (isJamsocketDevInitOptions(opts)) {\n account = '-'\n token = '-'\n service = '-'\n const port = opts.port ? validatePort(opts.port) : JAMSOCKET_DEV_PORT\n apiUrl = `http://localhost:${port}`\n } else {\n account = opts.account\n token = opts.token\n service = opts.service\n apiUrl = opts.apiUrl || JAMSOCKET_API\n }\n\n const spawnInner = async function (spawnOpts: JamsocketSpawnOptions = {}): Promise<SpawnResult> {\n const reqBody: JamsocketApiSpawnBody = {}\n if (spawnOpts.tag) reqBody.tag = spawnOpts.tag\n if (spawnOpts.lock) reqBody.lock = spawnOpts.lock\n if (spawnOpts.env) reqBody.env = spawnOpts.env\n if (spawnOpts.gracePeriodSeconds) reqBody.grace_period_seconds = spawnOpts.gracePeriodSeconds\n if (spawnOpts.serviceEnvironment) reqBody.service_environment = spawnOpts.serviceEnvironment\n\n const response = await fetch(`${apiUrl}/user/${account}/service/${service}/spawn`, {\n method: 'POST',\n headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json' },\n body: JSON.stringify(reqBody),\n cache: 'no-store',\n })\n if (!response.ok) {\n throw new Error(`Error spawning backend: ${response.status} ${await response.text()}`)\n }\n const body = await response.json()\n return {\n url: body.url,\n name: body.name,\n readyUrl: body.ready_url,\n statusUrl: body.status_url,\n spawned: body.spawned,\n status: body.status,\n }\n }\n\n const spawn = async function (spawnOpts: JamsocketSpawnOptions = {}): Promise<SpawnResult> {\n console.warn(\n 'Calling the result of Jamsocket.init(...)() directly is deprecated, call Jamsocket.init().spawn(...) instead.',\n )\n return spawnInner(spawnOpts)\n }\n\n spawn.spawn = spawnInner\n return spawn\n}\n\nexport default { init }\n"]} | ||
| {"version":3,"sources":["../src/main.ts"],"names":[],"mappings":";AAAA,OAAO;AAyCP,IAAM,qBAAqB;AAC3B,IAAM,gBAAgB;AAEtB,SAAS,0BAA0B,MAA4C;AAC7E,SAAO,KAAK,QAAQ;AACtB;AAEA,SAAS,aAAa,MAAmB;AACvC,MAAI,CAAC,OAAO,UAAU,IAAI,GAAG;AAC3B,UAAM,IAAI,MAAM,8CAA8C,OAAO,IAAI,EAAE;AAAA,EAC7E;AACA,SAAO;AACT;AAUO,SAAS,KAAK,MAA+C;AAClE,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AAEJ,MAAI,0BAA0B,IAAI,GAAG;AACnC,cAAU;AACV,YAAQ;AACR,cAAU;AACV,UAAM,OAAO,KAAK,OAAO,aAAa,KAAK,IAAI,IAAI;AACnD,aAAS,oBAAoB,IAAI;AAAA,EACnC,OAAO;AACL,cAAU,KAAK;AACf,YAAQ,KAAK;AACb,cAAU,KAAK;AACf,aAAS,KAAK,UAAU;AAAA,EAC1B;AAEA,QAAM,aAAa,eAAgB,YAAmC,CAAC,GAAyB;AAC9F,UAAM,UAAiC,CAAC;AACxC,QAAI,UAAU;AAAK,cAAQ,MAAM,UAAU;AAC3C,QAAI,UAAU;AAAM,cAAQ,OAAO,UAAU;AAC7C,QAAI,UAAU;AAAK,cAAQ,MAAM,UAAU;AAC3C,QAAI,UAAU;AAAoB,cAAQ,uBAAuB,UAAU;AAC3E,QAAI,UAAU;AAAoB,cAAQ,sBAAsB,UAAU;AAE1E,UAAM,WAAW,MAAM,MAAM,GAAG,MAAM,SAAS,OAAO,YAAY,OAAO,UAAU;AAAA,MACjF,QAAQ;AAAA,MACR,SAAS,EAAE,eAAe,UAAU,KAAK,IAAI,gBAAgB,mBAAmB;AAAA,MAChF,MAAM,KAAK,UAAU,OAAO;AAAA,MAC5B,OAAO;AAAA,IACT,CAAC;AACD,QAAI,CAAC,SAAS,IAAI;AAChB,UAAI,SAAS,WAAW,KAAK;AAC3B,gBAAQ;AAAA,UACN;AAAA,QACF;AAAA,MACF;AACA,YAAM,IAAI,MAAM,2BAA2B,SAAS,MAAM,IAAI,MAAM,SAAS,KAAK,CAAC,EAAE;AAAA,IACvF;AACA,UAAM,OAAO,MAAM,SAAS,KAAK;AACjC,WAAO;AAAA,MACL,KAAK,KAAK;AAAA,MACV,MAAM,KAAK;AAAA,MACX,UAAU,KAAK;AAAA,MACf,WAAW,KAAK;AAAA,MAChB,SAAS,KAAK;AAAA,MACd,QAAQ,KAAK;AAAA,IACf;AAAA,EACF;AAEA,QAAM,QAAQ,eAAgB,YAAmC,CAAC,GAAyB;AACzF,YAAQ;AAAA,MACN;AAAA,IACF;AACA,WAAO,WAAW,SAAS;AAAA,EAC7B;AAEA,QAAM,QAAQ;AACd,SAAO;AACT;AAEA,IAAO,eAAQ,EAAE,KAAK","sourcesContent":["import 'isomorphic-fetch' // fetch polyfill for older versions of Node\n\nexport type SpawnResult = {\n url: string\n name: string\n readyUrl: string\n statusUrl: string\n spawned: boolean\n status: string\n}\n\nexport type JamsocketDevInitOptions = {\n dev: true\n port?: number\n}\n\nexport type JamsocketInitOptions =\n | {\n account: string\n token: string\n service: string\n apiUrl?: string\n }\n | JamsocketDevInitOptions\n\nexport type JamsocketSpawnOptions = {\n tag?: string\n lock?: string\n env?: Record<string, string>\n gracePeriodSeconds?: number\n serviceEnvironment?: string\n}\n\ntype JamsocketApiSpawnBody = {\n tag?: string\n lock?: string\n env?: Record<string, string>\n grace_period_seconds?: number\n service_environment?: string\n}\n\nconst JAMSOCKET_DEV_PORT = 8080\nconst JAMSOCKET_API = 'https://api.jamsocket.com'\n\nfunction isJamsocketDevInitOptions(opts: any): opts is JamsocketDevInitOptions {\n return opts.dev === true\n}\n\nfunction validatePort(port: any): number {\n if (!Number.isInteger(port)) {\n throw new Error(`Jamsocket dev port must be an integer, got ${typeof port}`)\n }\n return port\n}\n\nexport type JamsocketInstance = {\n /**\n * @deprecated Calling a `JamsocketInstance` as a function is deprecated. Use the `spawn` method instead.\n */\n (opts: JamsocketSpawnOptions): Promise<SpawnResult>\n spawn(opts: JamsocketSpawnOptions): Promise<SpawnResult>\n}\n\nexport function init(opts: JamsocketInitOptions): JamsocketInstance {\n let account: string\n let token: string\n let service: string\n let apiUrl: string\n\n if (isJamsocketDevInitOptions(opts)) {\n account = '-'\n token = '-'\n service = '-'\n const port = opts.port ? validatePort(opts.port) : JAMSOCKET_DEV_PORT\n apiUrl = `http://localhost:${port}`\n } else {\n account = opts.account\n token = opts.token\n service = opts.service\n apiUrl = opts.apiUrl || JAMSOCKET_API\n }\n\n const spawnInner = async function (spawnOpts: JamsocketSpawnOptions = {}): Promise<SpawnResult> {\n const reqBody: JamsocketApiSpawnBody = {}\n if (spawnOpts.tag) reqBody.tag = spawnOpts.tag\n if (spawnOpts.lock) reqBody.lock = spawnOpts.lock\n if (spawnOpts.env) reqBody.env = spawnOpts.env\n if (spawnOpts.gracePeriodSeconds) reqBody.grace_period_seconds = spawnOpts.gracePeriodSeconds\n if (spawnOpts.serviceEnvironment) reqBody.service_environment = spawnOpts.serviceEnvironment\n\n const response = await fetch(`${apiUrl}/user/${account}/service/${service}/spawn`, {\n method: 'POST',\n headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json' },\n body: JSON.stringify(reqBody),\n cache: 'no-store',\n })\n if (!response.ok) {\n if (response.status === 429) {\n console.warn(\n \"You've hit the spawn rate limit. This may be because you've spawned too many session backends in a short period of time or you're already running the maximum number of concurrent session backends. (related: https://docs.jamsocket.com/pricing/free-tier-limits)\",\n )\n }\n throw new Error(`Error spawning backend: ${response.status} ${await response.text()}`)\n }\n const body = await response.json()\n return {\n url: body.url,\n name: body.name,\n readyUrl: body.ready_url,\n statusUrl: body.status_url,\n spawned: body.spawned,\n status: body.status,\n }\n }\n\n const spawn = async function (spawnOpts: JamsocketSpawnOptions = {}): Promise<SpawnResult> {\n console.warn(\n 'Calling the result of Jamsocket.init(...)() directly is deprecated, call Jamsocket.init().spawn(...) instead.',\n )\n return spawnInner(spawnOpts)\n }\n\n spawn.spawn = spawnInner\n return spawn\n}\n\nexport default { init }\n"]} |
+5
-0
@@ -50,2 +50,7 @@ // src/main.ts | ||
| if (!response.ok) { | ||
| if (response.status === 429) { | ||
| console.warn( | ||
| "You've hit the spawn rate limit. This may be because you've spawned too many session backends in a short period of time or you're already running the maximum number of concurrent session backends. (related: https://docs.jamsocket.com/pricing/free-tier-limits)" | ||
| ); | ||
| } | ||
| throw new Error(`Error spawning backend: ${response.status} ${await response.text()}`); | ||
@@ -52,0 +57,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../src/main.ts"],"sourcesContent":["import 'isomorphic-fetch' // fetch polyfill for older versions of Node\n\nexport type SpawnResult = {\n url: string\n name: string\n readyUrl: string\n statusUrl: string\n spawned: boolean\n status: string\n}\n\nexport type JamsocketDevInitOptions = {\n dev: true\n port?: number\n}\n\nexport type JamsocketInitOptions =\n | {\n account: string\n token: string\n service: string\n apiUrl?: string\n }\n | JamsocketDevInitOptions\n\nexport type JamsocketSpawnOptions = {\n tag?: string\n lock?: string\n env?: Record<string, string>\n gracePeriodSeconds?: number\n serviceEnvironment?: string\n}\n\ntype JamsocketApiSpawnBody = {\n tag?: string\n lock?: string\n env?: Record<string, string>\n grace_period_seconds?: number\n service_environment?: string\n}\n\nconst JAMSOCKET_DEV_PORT = 8080\nconst JAMSOCKET_API = 'https://api.jamsocket.com'\n\nfunction isJamsocketDevInitOptions(opts: any): opts is JamsocketDevInitOptions {\n return opts.dev === true\n}\n\nfunction validatePort(port: any): number {\n if (!Number.isInteger(port)) {\n throw new Error(`Jamsocket dev port must be an integer, got ${typeof port}`)\n }\n return port\n}\n\nexport type JamsocketInstance = {\n /**\n * @deprecated Calling a `JamsocketInstance` as a function is deprecated. Use the `spawn` method instead.\n */\n (opts: JamsocketSpawnOptions): Promise<SpawnResult>\n spawn(opts: JamsocketSpawnOptions): Promise<SpawnResult>\n}\n\nexport function init(opts: JamsocketInitOptions): JamsocketInstance {\n let account: string\n let token: string\n let service: string\n let apiUrl: string\n\n if (isJamsocketDevInitOptions(opts)) {\n account = '-'\n token = '-'\n service = '-'\n const port = opts.port ? validatePort(opts.port) : JAMSOCKET_DEV_PORT\n apiUrl = `http://localhost:${port}`\n } else {\n account = opts.account\n token = opts.token\n service = opts.service\n apiUrl = opts.apiUrl || JAMSOCKET_API\n }\n\n const spawnInner = async function (spawnOpts: JamsocketSpawnOptions = {}): Promise<SpawnResult> {\n const reqBody: JamsocketApiSpawnBody = {}\n if (spawnOpts.tag) reqBody.tag = spawnOpts.tag\n if (spawnOpts.lock) reqBody.lock = spawnOpts.lock\n if (spawnOpts.env) reqBody.env = spawnOpts.env\n if (spawnOpts.gracePeriodSeconds) reqBody.grace_period_seconds = spawnOpts.gracePeriodSeconds\n if (spawnOpts.serviceEnvironment) reqBody.service_environment = spawnOpts.serviceEnvironment\n\n const response = await fetch(`${apiUrl}/user/${account}/service/${service}/spawn`, {\n method: 'POST',\n headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json' },\n body: JSON.stringify(reqBody),\n cache: 'no-store',\n })\n if (!response.ok) {\n throw new Error(`Error spawning backend: ${response.status} ${await response.text()}`)\n }\n const body = await response.json()\n return {\n url: body.url,\n name: body.name,\n readyUrl: body.ready_url,\n statusUrl: body.status_url,\n spawned: body.spawned,\n status: body.status,\n }\n }\n\n const spawn = async function (spawnOpts: JamsocketSpawnOptions = {}): Promise<SpawnResult> {\n console.warn(\n 'Calling the result of Jamsocket.init(...)() directly is deprecated, call Jamsocket.init().spawn(...) instead.',\n )\n return spawnInner(spawnOpts)\n }\n\n spawn.spawn = spawnInner\n return spawn\n}\n\nexport default { init }\n"],"mappings":";AAAA,OAAO;AAyCP,IAAM,qBAAqB;AAC3B,IAAM,gBAAgB;AAEtB,SAAS,0BAA0B,MAA4C;AAC7E,SAAO,KAAK,QAAQ;AACtB;AAEA,SAAS,aAAa,MAAmB;AACvC,MAAI,CAAC,OAAO,UAAU,IAAI,GAAG;AAC3B,UAAM,IAAI,MAAM,8CAA8C,OAAO,IAAI,EAAE;AAAA,EAC7E;AACA,SAAO;AACT;AAUO,SAAS,KAAK,MAA+C;AAClE,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AAEJ,MAAI,0BAA0B,IAAI,GAAG;AACnC,cAAU;AACV,YAAQ;AACR,cAAU;AACV,UAAM,OAAO,KAAK,OAAO,aAAa,KAAK,IAAI,IAAI;AACnD,aAAS,oBAAoB,IAAI;AAAA,EACnC,OAAO;AACL,cAAU,KAAK;AACf,YAAQ,KAAK;AACb,cAAU,KAAK;AACf,aAAS,KAAK,UAAU;AAAA,EAC1B;AAEA,QAAM,aAAa,eAAgB,YAAmC,CAAC,GAAyB;AAC9F,UAAM,UAAiC,CAAC;AACxC,QAAI,UAAU;AAAK,cAAQ,MAAM,UAAU;AAC3C,QAAI,UAAU;AAAM,cAAQ,OAAO,UAAU;AAC7C,QAAI,UAAU;AAAK,cAAQ,MAAM,UAAU;AAC3C,QAAI,UAAU;AAAoB,cAAQ,uBAAuB,UAAU;AAC3E,QAAI,UAAU;AAAoB,cAAQ,sBAAsB,UAAU;AAE1E,UAAM,WAAW,MAAM,MAAM,GAAG,MAAM,SAAS,OAAO,YAAY,OAAO,UAAU;AAAA,MACjF,QAAQ;AAAA,MACR,SAAS,EAAE,eAAe,UAAU,KAAK,IAAI,gBAAgB,mBAAmB;AAAA,MAChF,MAAM,KAAK,UAAU,OAAO;AAAA,MAC5B,OAAO;AAAA,IACT,CAAC;AACD,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,IAAI,MAAM,2BAA2B,SAAS,MAAM,IAAI,MAAM,SAAS,KAAK,CAAC,EAAE;AAAA,IACvF;AACA,UAAM,OAAO,MAAM,SAAS,KAAK;AACjC,WAAO;AAAA,MACL,KAAK,KAAK;AAAA,MACV,MAAM,KAAK;AAAA,MACX,UAAU,KAAK;AAAA,MACf,WAAW,KAAK;AAAA,MAChB,SAAS,KAAK;AAAA,MACd,QAAQ,KAAK;AAAA,IACf;AAAA,EACF;AAEA,QAAM,QAAQ,eAAgB,YAAmC,CAAC,GAAyB;AACzF,YAAQ;AAAA,MACN;AAAA,IACF;AACA,WAAO,WAAW,SAAS;AAAA,EAC7B;AAEA,QAAM,QAAQ;AACd,SAAO;AACT;AAEA,IAAO,eAAQ,EAAE,KAAK;","names":[]} | ||
| {"version":3,"sources":["../src/main.ts"],"sourcesContent":["import 'isomorphic-fetch' // fetch polyfill for older versions of Node\n\nexport type SpawnResult = {\n url: string\n name: string\n readyUrl: string\n statusUrl: string\n spawned: boolean\n status: string\n}\n\nexport type JamsocketDevInitOptions = {\n dev: true\n port?: number\n}\n\nexport type JamsocketInitOptions =\n | {\n account: string\n token: string\n service: string\n apiUrl?: string\n }\n | JamsocketDevInitOptions\n\nexport type JamsocketSpawnOptions = {\n tag?: string\n lock?: string\n env?: Record<string, string>\n gracePeriodSeconds?: number\n serviceEnvironment?: string\n}\n\ntype JamsocketApiSpawnBody = {\n tag?: string\n lock?: string\n env?: Record<string, string>\n grace_period_seconds?: number\n service_environment?: string\n}\n\nconst JAMSOCKET_DEV_PORT = 8080\nconst JAMSOCKET_API = 'https://api.jamsocket.com'\n\nfunction isJamsocketDevInitOptions(opts: any): opts is JamsocketDevInitOptions {\n return opts.dev === true\n}\n\nfunction validatePort(port: any): number {\n if (!Number.isInteger(port)) {\n throw new Error(`Jamsocket dev port must be an integer, got ${typeof port}`)\n }\n return port\n}\n\nexport type JamsocketInstance = {\n /**\n * @deprecated Calling a `JamsocketInstance` as a function is deprecated. Use the `spawn` method instead.\n */\n (opts: JamsocketSpawnOptions): Promise<SpawnResult>\n spawn(opts: JamsocketSpawnOptions): Promise<SpawnResult>\n}\n\nexport function init(opts: JamsocketInitOptions): JamsocketInstance {\n let account: string\n let token: string\n let service: string\n let apiUrl: string\n\n if (isJamsocketDevInitOptions(opts)) {\n account = '-'\n token = '-'\n service = '-'\n const port = opts.port ? validatePort(opts.port) : JAMSOCKET_DEV_PORT\n apiUrl = `http://localhost:${port}`\n } else {\n account = opts.account\n token = opts.token\n service = opts.service\n apiUrl = opts.apiUrl || JAMSOCKET_API\n }\n\n const spawnInner = async function (spawnOpts: JamsocketSpawnOptions = {}): Promise<SpawnResult> {\n const reqBody: JamsocketApiSpawnBody = {}\n if (spawnOpts.tag) reqBody.tag = spawnOpts.tag\n if (spawnOpts.lock) reqBody.lock = spawnOpts.lock\n if (spawnOpts.env) reqBody.env = spawnOpts.env\n if (spawnOpts.gracePeriodSeconds) reqBody.grace_period_seconds = spawnOpts.gracePeriodSeconds\n if (spawnOpts.serviceEnvironment) reqBody.service_environment = spawnOpts.serviceEnvironment\n\n const response = await fetch(`${apiUrl}/user/${account}/service/${service}/spawn`, {\n method: 'POST',\n headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json' },\n body: JSON.stringify(reqBody),\n cache: 'no-store',\n })\n if (!response.ok) {\n if (response.status === 429) {\n console.warn(\n \"You've hit the spawn rate limit. This may be because you've spawned too many session backends in a short period of time or you're already running the maximum number of concurrent session backends. (related: https://docs.jamsocket.com/pricing/free-tier-limits)\",\n )\n }\n throw new Error(`Error spawning backend: ${response.status} ${await response.text()}`)\n }\n const body = await response.json()\n return {\n url: body.url,\n name: body.name,\n readyUrl: body.ready_url,\n statusUrl: body.status_url,\n spawned: body.spawned,\n status: body.status,\n }\n }\n\n const spawn = async function (spawnOpts: JamsocketSpawnOptions = {}): Promise<SpawnResult> {\n console.warn(\n 'Calling the result of Jamsocket.init(...)() directly is deprecated, call Jamsocket.init().spawn(...) instead.',\n )\n return spawnInner(spawnOpts)\n }\n\n spawn.spawn = spawnInner\n return spawn\n}\n\nexport default { init }\n"],"mappings":";AAAA,OAAO;AAyCP,IAAM,qBAAqB;AAC3B,IAAM,gBAAgB;AAEtB,SAAS,0BAA0B,MAA4C;AAC7E,SAAO,KAAK,QAAQ;AACtB;AAEA,SAAS,aAAa,MAAmB;AACvC,MAAI,CAAC,OAAO,UAAU,IAAI,GAAG;AAC3B,UAAM,IAAI,MAAM,8CAA8C,OAAO,IAAI,EAAE;AAAA,EAC7E;AACA,SAAO;AACT;AAUO,SAAS,KAAK,MAA+C;AAClE,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AAEJ,MAAI,0BAA0B,IAAI,GAAG;AACnC,cAAU;AACV,YAAQ;AACR,cAAU;AACV,UAAM,OAAO,KAAK,OAAO,aAAa,KAAK,IAAI,IAAI;AACnD,aAAS,oBAAoB,IAAI;AAAA,EACnC,OAAO;AACL,cAAU,KAAK;AACf,YAAQ,KAAK;AACb,cAAU,KAAK;AACf,aAAS,KAAK,UAAU;AAAA,EAC1B;AAEA,QAAM,aAAa,eAAgB,YAAmC,CAAC,GAAyB;AAC9F,UAAM,UAAiC,CAAC;AACxC,QAAI,UAAU;AAAK,cAAQ,MAAM,UAAU;AAC3C,QAAI,UAAU;AAAM,cAAQ,OAAO,UAAU;AAC7C,QAAI,UAAU;AAAK,cAAQ,MAAM,UAAU;AAC3C,QAAI,UAAU;AAAoB,cAAQ,uBAAuB,UAAU;AAC3E,QAAI,UAAU;AAAoB,cAAQ,sBAAsB,UAAU;AAE1E,UAAM,WAAW,MAAM,MAAM,GAAG,MAAM,SAAS,OAAO,YAAY,OAAO,UAAU;AAAA,MACjF,QAAQ;AAAA,MACR,SAAS,EAAE,eAAe,UAAU,KAAK,IAAI,gBAAgB,mBAAmB;AAAA,MAChF,MAAM,KAAK,UAAU,OAAO;AAAA,MAC5B,OAAO;AAAA,IACT,CAAC;AACD,QAAI,CAAC,SAAS,IAAI;AAChB,UAAI,SAAS,WAAW,KAAK;AAC3B,gBAAQ;AAAA,UACN;AAAA,QACF;AAAA,MACF;AACA,YAAM,IAAI,MAAM,2BAA2B,SAAS,MAAM,IAAI,MAAM,SAAS,KAAK,CAAC,EAAE;AAAA,IACvF;AACA,UAAM,OAAO,MAAM,SAAS,KAAK;AACjC,WAAO;AAAA,MACL,KAAK,KAAK;AAAA,MACV,MAAM,KAAK;AAAA,MACX,UAAU,KAAK;AAAA,MACf,WAAW,KAAK;AAAA,MAChB,SAAS,KAAK;AAAA,MACd,QAAQ,KAAK;AAAA,IACf;AAAA,EACF;AAEA,QAAM,QAAQ,eAAgB,YAAmC,CAAC,GAAyB;AACzF,YAAQ;AAAA,MACN;AAAA,IACF;AACA,WAAO,WAAW,SAAS;AAAA,EAC7B;AAEA,QAAM,QAAQ;AACd,SAAO;AACT;AAEA,IAAO,eAAQ,EAAE,KAAK;","names":[]} |
+1
-1
@@ -9,3 +9,3 @@ { | ||
| }, | ||
| "version": "0.2.4", | ||
| "version": "0.2.5", | ||
| "description": "JavaScript/TypeScript libraries for spawning session backends server-side.", | ||
@@ -12,0 +12,0 @@ "main": "./dist/main.js", |
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
22781
7.29%194
5.43%