inngest 3.53.1 → 3.54.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/api/api.cjs +6 -6
- package/api/api.cjs.map +1 -1
- package/api/api.d.cts.map +1 -1
- package/api/api.d.ts.map +1 -1
- package/api/api.js +6 -6
- package/api/api.js.map +1 -1
- package/api/schema.d.cts +2 -2
- package/api/schema.d.cts.map +1 -1
- package/api/schema.d.ts +2 -2
- package/api/schema.d.ts.map +1 -1
- package/components/Inngest.cjs +1 -1
- package/components/Inngest.cjs.map +1 -1
- package/components/Inngest.js +2 -2
- package/components/Inngest.js.map +1 -1
- package/components/InngestCommHandler.cjs +22 -18
- package/components/InngestCommHandler.cjs.map +1 -1
- package/components/InngestCommHandler.d.cts.map +1 -1
- package/components/InngestCommHandler.d.ts.map +1 -1
- package/components/InngestCommHandler.js +24 -20
- package/components/InngestCommHandler.js.map +1 -1
- package/components/connect/index.cjs +1 -1
- package/components/connect/index.cjs.map +1 -1
- package/components/connect/index.js +2 -2
- package/components/connect/index.js.map +1 -1
- package/components/connect/strategies/core/connection.cjs +1 -1
- package/components/connect/strategies/core/connection.cjs.map +1 -1
- package/components/connect/strategies/core/connection.js +2 -2
- package/components/connect/strategies/core/connection.js.map +1 -1
- package/components/execution/otel/processor.cjs +2 -1
- package/components/execution/otel/processor.cjs.map +1 -1
- package/components/execution/otel/processor.d.cts.map +1 -1
- package/components/execution/otel/processor.d.ts.map +1 -1
- package/components/execution/otel/processor.js +2 -1
- package/components/execution/otel/processor.js.map +1 -1
- package/h3.cjs +2 -1
- package/h3.cjs.map +1 -1
- package/h3.d.cts.map +1 -1
- package/h3.d.ts.map +1 -1
- package/h3.js +2 -1
- package/h3.js.map +1 -1
- package/helpers/consts.cjs +29 -0
- package/helpers/consts.cjs.map +1 -1
- package/helpers/consts.d.cts.map +1 -1
- package/helpers/consts.d.ts.map +1 -1
- package/helpers/consts.js +29 -0
- package/helpers/consts.js.map +1 -1
- package/helpers/env.cjs +58 -20
- package/helpers/env.cjs.map +1 -1
- package/helpers/env.d.cts +1 -0
- package/helpers/env.d.cts.map +1 -1
- package/helpers/env.d.ts +1 -0
- package/helpers/env.d.ts.map +1 -1
- package/helpers/env.js +57 -20
- package/helpers/env.js.map +1 -1
- package/helpers/net.cjs +3 -2
- package/helpers/net.cjs.map +1 -1
- package/helpers/net.js +3 -2
- package/helpers/net.js.map +1 -1
- package/helpers/strings.cjs +20 -1
- package/helpers/strings.cjs.map +1 -1
- package/helpers/strings.d.cts.map +1 -1
- package/helpers/strings.d.ts.map +1 -1
- package/helpers/strings.js +19 -2
- package/helpers/strings.js.map +1 -1
- package/package.json +1 -1
- package/redwood.cjs +2 -1
- package/redwood.cjs.map +1 -1
- package/redwood.d.cts.map +1 -1
- package/redwood.d.ts.map +1 -1
- package/redwood.js +2 -1
- package/redwood.js.map +1 -1
- package/sveltekit.cjs +2 -1
- package/sveltekit.cjs.map +1 -1
- package/sveltekit.d.cts.map +1 -1
- package/sveltekit.d.ts.map +1 -1
- package/sveltekit.js +2 -1
- package/sveltekit.js.map +1 -1
- package/types.cjs.map +1 -1
- package/types.d.cts +1 -2
- package/types.d.cts.map +1 -1
- package/types.d.ts +1 -2
- package/types.d.ts.map +1 -1
- package/types.js.map +1 -1
- package/version.cjs +1 -1
- package/version.cjs.map +1 -1
- package/version.d.cts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.js.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# inngest
|
|
2
2
|
|
|
3
|
+
## 3.54.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#1470](https://github.com/inngest/inngest-js/pull/1470) [`1a5b63a8`](https://github.com/inngest/inngest-js/commit/1a5b63a89beda377b3da5cee265650ac5df2ddc2) Thanks [@amh4r](https://github.com/amh4r)! - Fix checkpointing maxRuntime causing duplicate execution
|
|
8
|
+
|
|
9
|
+
- [#1488](https://github.com/inngest/inngest-js/pull/1488) [`27b434d8`](https://github.com/inngest/inngest-js/commit/27b434d8b54e2007f76a36a09db3328c3af8ca39) Thanks [@inngest-release-bot](https://github.com/inngest-release-bot)! - Ensure runIds are properly URI encoded in Durable Endpoints
|
|
10
|
+
|
|
11
|
+
- [#1488](https://github.com/inngest/inngest-js/pull/1488) [`27b434d8`](https://github.com/inngest/inngest-js/commit/27b434d8b54e2007f76a36a09db3328c3af8ca39) Thanks [@inngest-release-bot](https://github.com/inngest-release-bot)! - Improves HMAC signature verification by using a constant-time comparison, which mitigates a potential timing-based signature-recovery attack against the request signature. Also improves handling of timestamps in signatures, including malformed or future-dated values.
|
|
12
|
+
|
|
13
|
+
- [#1488](https://github.com/inngest/inngest-js/pull/1488) [`27b434d8`](https://github.com/inngest/inngest-js/commit/27b434d8b54e2007f76a36a09db3328c3af8ca39) Thanks [@inngest-release-bot](https://github.com/inngest-release-bot)! - Hash the signing key used when exporting OTel traces
|
|
14
|
+
|
|
3
15
|
## 3.52.7
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/api/api.cjs
CHANGED
|
@@ -71,7 +71,7 @@ var InngestApi = class {
|
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
async getRunSteps(runId, version) {
|
|
74
|
-
const result = await this.req(`/v0/runs/${runId}/actions`);
|
|
74
|
+
const result = await this.req(`/v0/runs/${encodeURIComponent(runId)}/actions`);
|
|
75
75
|
if (result.ok) {
|
|
76
76
|
const res = result.value;
|
|
77
77
|
const data = await res.json();
|
|
@@ -84,7 +84,7 @@ var InngestApi = class {
|
|
|
84
84
|
});
|
|
85
85
|
}
|
|
86
86
|
async getRunBatch(runId) {
|
|
87
|
-
const result = await this.req(`/v0/runs/${runId}/batch`);
|
|
87
|
+
const result = await this.req(`/v0/runs/${encodeURIComponent(runId)}/batch`);
|
|
88
88
|
if (result.ok) {
|
|
89
89
|
const res = result.value;
|
|
90
90
|
const data = await res.json();
|
|
@@ -199,7 +199,7 @@ var InngestApi = class {
|
|
|
199
199
|
target: args.target,
|
|
200
200
|
metadata: args.metadata
|
|
201
201
|
};
|
|
202
|
-
const result = await this.req(`/v1/runs/${args.target.run_id}/metadata`, {
|
|
202
|
+
const result = await this.req(`/v1/runs/${encodeURIComponent(args.target.run_id)}/metadata`, {
|
|
203
203
|
method: "POST",
|
|
204
204
|
body: JSON.stringify(payload),
|
|
205
205
|
headers: options?.headers
|
|
@@ -265,7 +265,7 @@ var InngestApi = class {
|
|
|
265
265
|
steps: args.steps,
|
|
266
266
|
ts: (/* @__PURE__ */ new Date()).valueOf()
|
|
267
267
|
});
|
|
268
|
-
const result = await this.req(`/v1/checkpoint/${args.runId}/steps`, {
|
|
268
|
+
const result = await this.req(`/v1/checkpoint/${encodeURIComponent(args.runId)}/steps`, {
|
|
269
269
|
method: "POST",
|
|
270
270
|
body
|
|
271
271
|
});
|
|
@@ -284,7 +284,7 @@ var InngestApi = class {
|
|
|
284
284
|
steps: args.steps,
|
|
285
285
|
ts: (/* @__PURE__ */ new Date()).valueOf()
|
|
286
286
|
});
|
|
287
|
-
const result = await this.req(`/v1/checkpoint/${args.runId}/async`, {
|
|
287
|
+
const result = await this.req(`/v1/checkpoint/${encodeURIComponent(args.runId)}/async`, {
|
|
288
288
|
method: "POST",
|
|
289
289
|
body
|
|
290
290
|
});
|
|
@@ -303,7 +303,7 @@ var InngestApi = class {
|
|
|
303
303
|
* @returns The raw Response from the API
|
|
304
304
|
*/
|
|
305
305
|
async getRunOutput(runId, token) {
|
|
306
|
-
const url = await this.getTargetUrl(`/v1/http/runs/${runId}/output`);
|
|
306
|
+
const url = await this.getTargetUrl(`/v1/http/runs/${encodeURIComponent(runId)}/output`);
|
|
307
307
|
url.searchParams.set("token", token);
|
|
308
308
|
return this.fetch(url.toString(), {
|
|
309
309
|
method: "GET",
|
package/api/api.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.cjs","names":["z","hashSigningKey","resolveApiBaseUrl","finalUrl: URL","ok","fetchWithAuthFallback","err","data: unknown","stepsSchemas","errorSchema","getErrorMessage","batchSchema","json: unknown","rawData: unknown"],"sources":["../../src/api/api.ts"],"sourcesContent":["import type { fetch } from \"cross-fetch\";\nimport { z } from \"zod/v3\";\nimport type { ExecutionVersion } from \"../helpers/consts.ts\";\nimport type { Mode } from \"../helpers/env.ts\";\nimport { getErrorMessage } from \"../helpers/errors.ts\";\nimport { fetchWithAuthFallback } from \"../helpers/net.ts\";\nimport { hashSigningKey } from \"../helpers/strings.ts\";\nimport { resolveApiBaseUrl } from \"../helpers/url.ts\";\nimport {\n type APIStepPayload,\n err,\n type MetadataTarget,\n type OutgoingOp,\n ok,\n type Result,\n} from \"../types.ts\";\nimport {\n type BatchResponse,\n batchSchema,\n type ErrorResponse,\n errorSchema,\n type StepsResponse,\n stepsSchemas,\n} from \"./schema.ts\";\n\ntype FetchT = typeof fetch;\n\nconst realtimeSubscriptionTokenSchema = z.object({\n jwt: z.string(),\n});\n\nconst sendSignalSuccessResponseSchema = z.object({\n data: z.object({\n run_id: z.string().min(1),\n }),\n});\n\nconst checkpointNewRunResponseSchema = z.object({\n data: z.object({\n fn_id: z.string().min(1),\n app_id: z.string().min(1),\n run_id: z.string().min(1),\n token: z.string().min(1).optional(),\n }),\n});\n\nexport namespace InngestApi {\n export interface Options {\n baseUrl?: string;\n signingKey: string;\n signingKeyFallback: string | undefined;\n fetch: FetchT;\n mode: Mode;\n }\n\n export interface Subscription {\n topics: string[];\n channel: string;\n }\n\n export interface PublishOptions extends Subscription {\n runId?: string;\n }\n\n export interface SendSignalOptions {\n signal: string;\n data?: unknown;\n }\n\n export interface SendSignalResponse {\n /**\n * The ID of the run that was signaled.\n *\n * If this is undefined, the signal could not be matched to a run.\n */\n runId: string | undefined;\n }\n}\n\nexport class InngestApi {\n public apiBaseUrl?: string;\n private signingKey: string;\n private signingKeyFallback: string | undefined;\n private readonly fetch: FetchT;\n private mode: Mode;\n\n constructor({\n baseUrl,\n signingKey,\n signingKeyFallback,\n fetch,\n mode,\n }: InngestApi.Options) {\n this.apiBaseUrl = baseUrl;\n this.signingKey = signingKey;\n this.signingKeyFallback = signingKeyFallback;\n this.fetch = fetch;\n this.mode = mode;\n }\n\n private get hashedKey(): string {\n return hashSigningKey(this.signingKey);\n }\n\n private get hashedFallbackKey(): string | undefined {\n if (!this.signingKeyFallback) {\n return;\n }\n\n return hashSigningKey(this.signingKeyFallback);\n }\n\n // set the signing key in case it was not instantiated previously\n setSigningKey(key: string | undefined) {\n if (typeof key === \"string\" && this.signingKey === \"\") {\n this.signingKey = key;\n }\n }\n\n setSigningKeyFallback(key: string | undefined) {\n if (typeof key === \"string\" && !this.signingKeyFallback) {\n this.signingKeyFallback = key;\n }\n }\n\n private async getTargetUrl(path: string): Promise<URL> {\n const baseUrl = await resolveApiBaseUrl({\n apiBaseUrl: this.apiBaseUrl,\n mode: this.mode,\n fetch: this.fetch,\n });\n\n return new URL(path, baseUrl);\n }\n\n private async req(\n url: string | URL,\n options?: RequestInit,\n ): Promise<Result<Response, unknown>> {\n const finalUrl: URL =\n typeof url === \"string\" ? await this.getTargetUrl(url) : url;\n\n try {\n const res = await fetchWithAuthFallback({\n authToken: this.hashedKey,\n authTokenFallback: this.hashedFallbackKey,\n fetch: this.fetch,\n url: finalUrl,\n options: {\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options?.headers,\n },\n },\n });\n\n return ok(res);\n } catch (error) {\n return err(error);\n }\n }\n\n async getRunSteps(\n runId: string,\n version: ExecutionVersion,\n ): Promise<Result<StepsResponse, ErrorResponse>> {\n const result = await this.req(`/v0/runs/${runId}/actions`);\n if (result.ok) {\n const res = result.value;\n const data: unknown = await res.json();\n\n if (res.ok) {\n return ok(stepsSchemas[version].parse(data));\n }\n\n return err(errorSchema.parse(data));\n }\n\n return err({\n error: getErrorMessage(\n result.error,\n \"Unknown error retrieving step data\",\n ),\n status: 500,\n });\n }\n\n async getRunBatch(\n runId: string,\n ): Promise<Result<BatchResponse, ErrorResponse>> {\n const result = await this.req(`/v0/runs/${runId}/batch`);\n if (result.ok) {\n const res = result.value;\n const data: unknown = await res.json();\n\n if (res.ok) {\n return ok(batchSchema.parse(data));\n }\n\n return err(errorSchema.parse(data));\n }\n\n return err({\n error: getErrorMessage(\n result.error,\n \"Unknown error retrieving event batch\",\n ),\n status: 500,\n });\n }\n\n async publish(\n publishOptions: InngestApi.PublishOptions,\n // biome-ignore lint/suspicious/noExplicitAny: anything is acceptable\n data: any,\n ): Promise<Result<void, ErrorResponse>> {\n // todo it may not be a \"text/stream\"\n const isStream = data instanceof ReadableStream;\n\n const url = await this.getTargetUrl(\"/v1/realtime/publish\");\n url.searchParams.set(\"channel\", publishOptions.channel || \"\");\n if (publishOptions.runId) {\n url.searchParams.set(\"run_id\", publishOptions.runId);\n }\n for (const topic of publishOptions.topics) {\n url.searchParams.append(\"topic\", topic);\n }\n\n const result = await this.req(url, {\n body: isStream\n ? data\n : typeof data === \"string\"\n ? data\n : JSON.stringify(data),\n method: \"POST\",\n headers: {\n \"Content-Type\": isStream ? \"text/stream\" : \"application/json\",\n },\n ...(isStream ? { duplex: \"half\" } : {}),\n });\n if (result.ok) {\n const res = result.value;\n if (!res.ok) {\n throw new Error(\n `Failed to publish event: ${res.status} ${res.statusText}`,\n );\n }\n\n return ok<void>(undefined);\n }\n\n return err({\n error: getErrorMessage(result.error, \"Unknown error publishing event\"),\n status: 500,\n });\n }\n\n async sendSignal(\n signalOptions: InngestApi.SendSignalOptions,\n options?: {\n headers?: Record<string, string>;\n },\n ): Promise<Result<InngestApi.SendSignalResponse, ErrorResponse>> {\n const url = await this.getTargetUrl(\"/v1/signals\");\n\n const body = {\n signal: signalOptions.signal,\n data: signalOptions.data,\n };\n\n return fetchWithAuthFallback({\n authToken: this.hashedKey,\n authTokenFallback: this.hashedFallbackKey,\n fetch: this.fetch,\n url,\n options: {\n method: \"POST\",\n body: JSON.stringify(body),\n headers: {\n \"Content-Type\": \"application/json\",\n ...options?.headers,\n },\n },\n })\n .then(async (res) => {\n // A 404 is valid if the signal was not found.\n if (res.status === 404) {\n return ok<InngestApi.SendSignalResponse>({\n runId: undefined,\n });\n }\n\n // Save a clone of the response we can use to get the text of if we fail\n // to parse the JSON.\n const resClone = res.clone();\n\n // JSON!\n let json: unknown;\n try {\n json = await res.json();\n } catch {\n // res.json() failed so not a valid JSON response\n return err({\n error: `Failed to send signal: ${res.status} ${\n res.statusText\n } - ${await resClone.text()}`,\n status: res.status,\n });\n }\n\n // If we're not 2xx, something went wrong.\n if (!res.ok) {\n try {\n return err(errorSchema.parse(json));\n } catch {\n // schema parse failed\n return err({\n error: `Failed to send signal: ${res.status} ${\n res.statusText\n } - ${await res.text()}`,\n status: res.status,\n });\n }\n }\n\n // If we are 2xx, we should have a run_id.\n const parseRes = sendSignalSuccessResponseSchema.safeParse(json);\n if (!parseRes.success) {\n return err({\n error: `Successfully sent signal, but response parsing failed: ${\n res.status\n } ${res.statusText} - ${await resClone.text()}`,\n status: res.status,\n });\n }\n\n return ok({\n runId: parseRes.data.data.run_id,\n });\n })\n .catch((error) => {\n // Catch-all if various things go wrong\n return err({\n error: getErrorMessage(error, \"Unknown error sending signal\"),\n status: 500,\n });\n });\n }\n\n async getSubscriptionToken(\n channel: string,\n topics: string[],\n ): Promise<string> {\n const url = await this.getTargetUrl(\"/v1/realtime/token\");\n\n const body = topics.map((topic) => ({\n channel,\n name: topic,\n kind: \"run\",\n }));\n\n return fetchWithAuthFallback({\n authToken: this.hashedKey,\n authTokenFallback: this.hashedFallbackKey,\n fetch: this.fetch,\n url,\n options: {\n method: \"POST\",\n body: JSON.stringify(body),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n },\n })\n .then(async (res) => {\n if (!res.ok) {\n throw new Error(\n `Failed to get subscription token: ${res.status} ${\n res.statusText\n } - ${await res.text()}`,\n );\n }\n\n const data = realtimeSubscriptionTokenSchema.parse(await res.json());\n\n return data.jwt;\n })\n .catch((error) => {\n throw new Error(\n getErrorMessage(error, \"Unknown error getting subscription token\"),\n );\n });\n }\n\n async updateMetadata(\n args: {\n target: MetadataTarget;\n metadata: Array<{\n kind: string;\n op: string;\n values: Record<string, unknown>;\n }>;\n },\n options?: {\n headers?: Record<string, string>;\n },\n ): Promise<Result<void, ErrorResponse>> {\n const payload = { target: args.target, metadata: args.metadata };\n\n const result = await this.req(`/v1/runs/${args.target.run_id}/metadata`, {\n method: \"POST\",\n body: JSON.stringify(payload),\n headers: options?.headers,\n });\n\n if (!result.ok) {\n return err({\n error: getErrorMessage(result.error, \"Unknown error updating metadata\"),\n status: 500,\n });\n }\n\n const res = result.value;\n if (res.ok) {\n return ok<void>(undefined);\n }\n\n const resClone = res.clone();\n\n let json: unknown;\n try {\n json = await res.json();\n } catch {\n return err({\n error: `Failed to update metadata: ${res.status} ${\n res.statusText\n } - ${await resClone.text()}`,\n status: res.status,\n });\n }\n\n try {\n return err(errorSchema.parse(json));\n } catch {\n return err({\n error: `Failed to update metadata: ${res.status} ${res.statusText}`,\n status: res.status,\n });\n }\n }\n\n /**\n * Start a new run, optionally passing in a number of steps to initialize the\n * run with.\n */\n async checkpointNewRun(args: {\n runId: string;\n event: APIStepPayload;\n executionVersion: ExecutionVersion;\n retries: number;\n steps?: OutgoingOp[];\n }): Promise<z.output<typeof checkpointNewRunResponseSchema>> {\n const body = JSON.stringify({\n run_id: args.runId,\n event: args.event,\n steps: args.steps,\n ts: new Date().valueOf(),\n request_version: args.executionVersion,\n retries: args.retries,\n });\n\n const result = await this.req(\"/v1/checkpoint\", {\n method: \"POST\",\n body,\n });\n\n if (!result.ok) {\n throw new Error(\n getErrorMessage(result.error, \"Unknown error checkpointing new run\"),\n );\n }\n\n const res = result.value;\n if (res.ok) {\n const rawData: unknown = await res.json();\n const data = checkpointNewRunResponseSchema.parse(rawData);\n\n return data;\n }\n\n throw new Error(\n `Failed to checkpoint new run: ${res.status} ${\n res.statusText\n } - ${await res.text()}`,\n );\n }\n\n /**\n * Checkpoint steps for a given sync run.\n */\n async checkpointSteps(args: {\n runId: string;\n fnId: string;\n appId: string;\n steps: OutgoingOp[];\n }): Promise<void> {\n const body = JSON.stringify({\n fn_id: args.fnId,\n app_id: args.appId,\n run_id: args.runId,\n steps: args.steps,\n ts: new Date().valueOf(),\n });\n\n const result = await this.req(`/v1/checkpoint/${args.runId}/steps`, {\n method: \"POST\",\n body,\n });\n\n if (!result.ok) {\n throw new Error(\n getErrorMessage(result.error, \"Unknown error checkpointing steps\"),\n );\n }\n\n const res = result.value;\n if (!res.ok) {\n throw new Error(\n `Failed to checkpoint steps: ${res.status} ${\n res.statusText\n } - ${await res.text()}`,\n );\n }\n }\n\n /**\n * Checkpoint steps for a given async run.\n */\n async checkpointStepsAsync(args: {\n runId: string;\n fnId: string;\n queueItemId: string;\n steps: OutgoingOp[];\n }): Promise<void> {\n const body = JSON.stringify({\n run_id: args.runId,\n fn_id: args.fnId,\n qi_id: args.queueItemId,\n steps: args.steps,\n ts: new Date().valueOf(),\n });\n\n const result = await this.req(`/v1/checkpoint/${args.runId}/async`, {\n method: \"POST\",\n body,\n });\n\n if (!result.ok) {\n throw new Error(\n getErrorMessage(result.error, \"Unknown error checkpointing async\"),\n );\n }\n\n const res = result.value;\n if (!res.ok) {\n throw new Error(\n `Failed to checkpoint async: ${res.status} ${\n res.statusText\n } - ${await res.text()}`,\n );\n }\n }\n\n /**\n * Fetch the output of a completed run using a token.\n *\n * This uses token-based auth (not signing key) and is intended for use by\n * proxy endpoints that fetch results on behalf of users.\n *\n * @param runId - The ID of the run to fetch output for\n * @param token - The token used to authenticate the request\n * @returns The raw Response from the API\n */\n async getRunOutput(runId: string, token: string): Promise<Response> {\n const url = await this.getTargetUrl(`/v1/http/runs/${runId}/output`);\n url.searchParams.set(\"token\", token);\n\n return this.fetch(url.toString(), {\n method: \"GET\",\n headers: { \"Content-Type\": \"application/json\" },\n });\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.cjs","names":["z","hashSigningKey","resolveApiBaseUrl","finalUrl: URL","ok","fetchWithAuthFallback","err","data: unknown","stepsSchemas","errorSchema","getErrorMessage","batchSchema","json: unknown","rawData: unknown"],"sources":["../../src/api/api.ts"],"sourcesContent":["import type { fetch } from \"cross-fetch\";\nimport { z } from \"zod/v3\";\nimport type { ExecutionVersion } from \"../helpers/consts.ts\";\nimport type { Mode } from \"../helpers/env.ts\";\nimport { getErrorMessage } from \"../helpers/errors.ts\";\nimport { fetchWithAuthFallback } from \"../helpers/net.ts\";\nimport { hashSigningKey } from \"../helpers/strings.ts\";\nimport { resolveApiBaseUrl } from \"../helpers/url.ts\";\nimport {\n type APIStepPayload,\n err,\n type MetadataTarget,\n type OutgoingOp,\n ok,\n type Result,\n} from \"../types.ts\";\nimport {\n type BatchResponse,\n batchSchema,\n type ErrorResponse,\n errorSchema,\n type StepsResponse,\n stepsSchemas,\n} from \"./schema.ts\";\n\ntype FetchT = typeof fetch;\n\nconst realtimeSubscriptionTokenSchema = z.object({\n jwt: z.string(),\n});\n\nconst sendSignalSuccessResponseSchema = z.object({\n data: z.object({\n run_id: z.string().min(1),\n }),\n});\n\nconst checkpointNewRunResponseSchema = z.object({\n data: z.object({\n fn_id: z.string().min(1),\n app_id: z.string().min(1),\n run_id: z.string().min(1),\n token: z.string().min(1).optional(),\n }),\n});\n\nexport namespace InngestApi {\n export interface Options {\n baseUrl?: string;\n signingKey: string;\n signingKeyFallback: string | undefined;\n fetch: FetchT;\n mode: Mode;\n }\n\n export interface Subscription {\n topics: string[];\n channel: string;\n }\n\n export interface PublishOptions extends Subscription {\n runId?: string;\n }\n\n export interface SendSignalOptions {\n signal: string;\n data?: unknown;\n }\n\n export interface SendSignalResponse {\n /**\n * The ID of the run that was signaled.\n *\n * If this is undefined, the signal could not be matched to a run.\n */\n runId: string | undefined;\n }\n}\n\nexport class InngestApi {\n public apiBaseUrl?: string;\n private signingKey: string;\n private signingKeyFallback: string | undefined;\n private readonly fetch: FetchT;\n private mode: Mode;\n\n constructor({\n baseUrl,\n signingKey,\n signingKeyFallback,\n fetch,\n mode,\n }: InngestApi.Options) {\n this.apiBaseUrl = baseUrl;\n this.signingKey = signingKey;\n this.signingKeyFallback = signingKeyFallback;\n this.fetch = fetch;\n this.mode = mode;\n }\n\n private get hashedKey(): string {\n return hashSigningKey(this.signingKey);\n }\n\n private get hashedFallbackKey(): string | undefined {\n if (!this.signingKeyFallback) {\n return;\n }\n\n return hashSigningKey(this.signingKeyFallback);\n }\n\n // set the signing key in case it was not instantiated previously\n setSigningKey(key: string | undefined) {\n if (typeof key === \"string\" && this.signingKey === \"\") {\n this.signingKey = key;\n }\n }\n\n setSigningKeyFallback(key: string | undefined) {\n if (typeof key === \"string\" && !this.signingKeyFallback) {\n this.signingKeyFallback = key;\n }\n }\n\n private async getTargetUrl(path: string): Promise<URL> {\n const baseUrl = await resolveApiBaseUrl({\n apiBaseUrl: this.apiBaseUrl,\n mode: this.mode,\n fetch: this.fetch,\n });\n\n return new URL(path, baseUrl);\n }\n\n private async req(\n url: string | URL,\n options?: RequestInit,\n ): Promise<Result<Response, unknown>> {\n const finalUrl: URL =\n typeof url === \"string\" ? await this.getTargetUrl(url) : url;\n\n try {\n const res = await fetchWithAuthFallback({\n authToken: this.hashedKey,\n authTokenFallback: this.hashedFallbackKey,\n fetch: this.fetch,\n url: finalUrl,\n options: {\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options?.headers,\n },\n },\n });\n\n return ok(res);\n } catch (error) {\n return err(error);\n }\n }\n\n async getRunSteps(\n runId: string,\n version: ExecutionVersion,\n ): Promise<Result<StepsResponse, ErrorResponse>> {\n const result = await this.req(\n `/v0/runs/${encodeURIComponent(runId)}/actions`,\n );\n if (result.ok) {\n const res = result.value;\n const data: unknown = await res.json();\n\n if (res.ok) {\n return ok(stepsSchemas[version].parse(data));\n }\n\n return err(errorSchema.parse(data));\n }\n\n return err({\n error: getErrorMessage(\n result.error,\n \"Unknown error retrieving step data\",\n ),\n status: 500,\n });\n }\n\n async getRunBatch(\n runId: string,\n ): Promise<Result<BatchResponse, ErrorResponse>> {\n const result = await this.req(\n `/v0/runs/${encodeURIComponent(runId)}/batch`,\n );\n if (result.ok) {\n const res = result.value;\n const data: unknown = await res.json();\n\n if (res.ok) {\n return ok(batchSchema.parse(data));\n }\n\n return err(errorSchema.parse(data));\n }\n\n return err({\n error: getErrorMessage(\n result.error,\n \"Unknown error retrieving event batch\",\n ),\n status: 500,\n });\n }\n\n async publish(\n publishOptions: InngestApi.PublishOptions,\n // biome-ignore lint/suspicious/noExplicitAny: anything is acceptable\n data: any,\n ): Promise<Result<void, ErrorResponse>> {\n // todo it may not be a \"text/stream\"\n const isStream = data instanceof ReadableStream;\n\n const url = await this.getTargetUrl(\"/v1/realtime/publish\");\n url.searchParams.set(\"channel\", publishOptions.channel || \"\");\n if (publishOptions.runId) {\n url.searchParams.set(\"run_id\", publishOptions.runId);\n }\n for (const topic of publishOptions.topics) {\n url.searchParams.append(\"topic\", topic);\n }\n\n const result = await this.req(url, {\n body: isStream\n ? data\n : typeof data === \"string\"\n ? data\n : JSON.stringify(data),\n method: \"POST\",\n headers: {\n \"Content-Type\": isStream ? \"text/stream\" : \"application/json\",\n },\n ...(isStream ? { duplex: \"half\" } : {}),\n });\n if (result.ok) {\n const res = result.value;\n if (!res.ok) {\n throw new Error(\n `Failed to publish event: ${res.status} ${res.statusText}`,\n );\n }\n\n return ok<void>(undefined);\n }\n\n return err({\n error: getErrorMessage(result.error, \"Unknown error publishing event\"),\n status: 500,\n });\n }\n\n async sendSignal(\n signalOptions: InngestApi.SendSignalOptions,\n options?: {\n headers?: Record<string, string>;\n },\n ): Promise<Result<InngestApi.SendSignalResponse, ErrorResponse>> {\n const url = await this.getTargetUrl(\"/v1/signals\");\n\n const body = {\n signal: signalOptions.signal,\n data: signalOptions.data,\n };\n\n return fetchWithAuthFallback({\n authToken: this.hashedKey,\n authTokenFallback: this.hashedFallbackKey,\n fetch: this.fetch,\n url,\n options: {\n method: \"POST\",\n body: JSON.stringify(body),\n headers: {\n \"Content-Type\": \"application/json\",\n ...options?.headers,\n },\n },\n })\n .then(async (res) => {\n // A 404 is valid if the signal was not found.\n if (res.status === 404) {\n return ok<InngestApi.SendSignalResponse>({\n runId: undefined,\n });\n }\n\n // Save a clone of the response we can use to get the text of if we fail\n // to parse the JSON.\n const resClone = res.clone();\n\n // JSON!\n let json: unknown;\n try {\n json = await res.json();\n } catch {\n // res.json() failed so not a valid JSON response\n return err({\n error: `Failed to send signal: ${res.status} ${\n res.statusText\n } - ${await resClone.text()}`,\n status: res.status,\n });\n }\n\n // If we're not 2xx, something went wrong.\n if (!res.ok) {\n try {\n return err(errorSchema.parse(json));\n } catch {\n // schema parse failed\n return err({\n error: `Failed to send signal: ${res.status} ${\n res.statusText\n } - ${await res.text()}`,\n status: res.status,\n });\n }\n }\n\n // If we are 2xx, we should have a run_id.\n const parseRes = sendSignalSuccessResponseSchema.safeParse(json);\n if (!parseRes.success) {\n return err({\n error: `Successfully sent signal, but response parsing failed: ${\n res.status\n } ${res.statusText} - ${await resClone.text()}`,\n status: res.status,\n });\n }\n\n return ok({\n runId: parseRes.data.data.run_id,\n });\n })\n .catch((error) => {\n // Catch-all if various things go wrong\n return err({\n error: getErrorMessage(error, \"Unknown error sending signal\"),\n status: 500,\n });\n });\n }\n\n async getSubscriptionToken(\n channel: string,\n topics: string[],\n ): Promise<string> {\n const url = await this.getTargetUrl(\"/v1/realtime/token\");\n\n const body = topics.map((topic) => ({\n channel,\n name: topic,\n kind: \"run\",\n }));\n\n return fetchWithAuthFallback({\n authToken: this.hashedKey,\n authTokenFallback: this.hashedFallbackKey,\n fetch: this.fetch,\n url,\n options: {\n method: \"POST\",\n body: JSON.stringify(body),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n },\n })\n .then(async (res) => {\n if (!res.ok) {\n throw new Error(\n `Failed to get subscription token: ${res.status} ${\n res.statusText\n } - ${await res.text()}`,\n );\n }\n\n const data = realtimeSubscriptionTokenSchema.parse(await res.json());\n\n return data.jwt;\n })\n .catch((error) => {\n throw new Error(\n getErrorMessage(error, \"Unknown error getting subscription token\"),\n );\n });\n }\n\n async updateMetadata(\n args: {\n target: MetadataTarget;\n metadata: Array<{\n kind: string;\n op: string;\n values: Record<string, unknown>;\n }>;\n },\n options?: {\n headers?: Record<string, string>;\n },\n ): Promise<Result<void, ErrorResponse>> {\n const payload = { target: args.target, metadata: args.metadata };\n\n const result = await this.req(\n `/v1/runs/${encodeURIComponent(args.target.run_id)}/metadata`,\n {\n method: \"POST\",\n body: JSON.stringify(payload),\n headers: options?.headers,\n },\n );\n\n if (!result.ok) {\n return err({\n error: getErrorMessage(result.error, \"Unknown error updating metadata\"),\n status: 500,\n });\n }\n\n const res = result.value;\n if (res.ok) {\n return ok<void>(undefined);\n }\n\n const resClone = res.clone();\n\n let json: unknown;\n try {\n json = await res.json();\n } catch {\n return err({\n error: `Failed to update metadata: ${res.status} ${\n res.statusText\n } - ${await resClone.text()}`,\n status: res.status,\n });\n }\n\n try {\n return err(errorSchema.parse(json));\n } catch {\n return err({\n error: `Failed to update metadata: ${res.status} ${res.statusText}`,\n status: res.status,\n });\n }\n }\n\n /**\n * Start a new run, optionally passing in a number of steps to initialize the\n * run with.\n */\n async checkpointNewRun(args: {\n runId: string;\n event: APIStepPayload;\n executionVersion: ExecutionVersion;\n retries: number;\n steps?: OutgoingOp[];\n }): Promise<z.output<typeof checkpointNewRunResponseSchema>> {\n const body = JSON.stringify({\n run_id: args.runId,\n event: args.event,\n steps: args.steps,\n ts: new Date().valueOf(),\n request_version: args.executionVersion,\n retries: args.retries,\n });\n\n const result = await this.req(\"/v1/checkpoint\", {\n method: \"POST\",\n body,\n });\n\n if (!result.ok) {\n throw new Error(\n getErrorMessage(result.error, \"Unknown error checkpointing new run\"),\n );\n }\n\n const res = result.value;\n if (res.ok) {\n const rawData: unknown = await res.json();\n const data = checkpointNewRunResponseSchema.parse(rawData);\n\n return data;\n }\n\n throw new Error(\n `Failed to checkpoint new run: ${res.status} ${\n res.statusText\n } - ${await res.text()}`,\n );\n }\n\n /**\n * Checkpoint steps for a given sync run.\n */\n async checkpointSteps(args: {\n runId: string;\n fnId: string;\n appId: string;\n steps: OutgoingOp[];\n }): Promise<void> {\n const body = JSON.stringify({\n fn_id: args.fnId,\n app_id: args.appId,\n run_id: args.runId,\n steps: args.steps,\n ts: new Date().valueOf(),\n });\n\n const result = await this.req(\n `/v1/checkpoint/${encodeURIComponent(args.runId)}/steps`,\n {\n method: \"POST\",\n body,\n },\n );\n\n if (!result.ok) {\n throw new Error(\n getErrorMessage(result.error, \"Unknown error checkpointing steps\"),\n );\n }\n\n const res = result.value;\n if (!res.ok) {\n throw new Error(\n `Failed to checkpoint steps: ${res.status} ${\n res.statusText\n } - ${await res.text()}`,\n );\n }\n }\n\n /**\n * Checkpoint steps for a given async run.\n */\n async checkpointStepsAsync(args: {\n runId: string;\n fnId: string;\n queueItemId: string;\n steps: OutgoingOp[];\n }): Promise<void> {\n const body = JSON.stringify({\n run_id: args.runId,\n fn_id: args.fnId,\n qi_id: args.queueItemId,\n steps: args.steps,\n ts: new Date().valueOf(),\n });\n\n const result = await this.req(\n `/v1/checkpoint/${encodeURIComponent(args.runId)}/async`,\n {\n method: \"POST\",\n body,\n },\n );\n\n if (!result.ok) {\n throw new Error(\n getErrorMessage(result.error, \"Unknown error checkpointing async\"),\n );\n }\n\n const res = result.value;\n if (!res.ok) {\n throw new Error(\n `Failed to checkpoint async: ${res.status} ${\n res.statusText\n } - ${await res.text()}`,\n );\n }\n }\n\n /**\n * Fetch the output of a completed run using a token.\n *\n * This uses token-based auth (not signing key) and is intended for use by\n * proxy endpoints that fetch results on behalf of users.\n *\n * @param runId - The ID of the run to fetch output for\n * @param token - The token used to authenticate the request\n * @returns The raw Response from the API\n */\n async getRunOutput(runId: string, token: string): Promise<Response> {\n const url = await this.getTargetUrl(\n `/v1/http/runs/${encodeURIComponent(runId)}/output`,\n );\n url.searchParams.set(\"token\", token);\n\n return this.fetch(url.toString(), {\n method: \"GET\",\n headers: { \"Content-Type\": \"application/json\" },\n });\n }\n}\n"],"mappings":"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"}
|
package/api/api.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.cts","names":[],"sources":["../../src/api/api.ts"],"sourcesContent":[],"mappings":";;;;;;;;KAyBK,MAAA,UAAgB;cAYf,gCAA8B,CAAA,CAAA;EAZ/B,IAAA,aAAM,CAAA;IAYL,KAAA,aAAA;IAOJ,MAAA,aAAA;;;;;;;;;IAPkC,KAAA,EAAA,MAAA;IAAA,MAAA,EAAA,MAAA;IASnB,MAAA,EAAA,MAAU;IAAA,KAAA,CAAA,EAAA,MAAA,GAAA,SAAA;;UAMjB,cAAA,EAAA;MAQgC,EAAA;IAAY,KAAA,EAAA,MAAA;IAmBzC,MAAA,EAAA,MAAU;IAAA,MAAA,EAAA,MAAA;IAQnB,KAAA,CAAA,EAAA,MAAA,GAAA,SAAA;;;MAGA,EAAA;IACA,KAAA,EAAA,MAAA;IACC,MAAA,EAAA,MAAW;IAyEH,MAAA,EAAA,MAAA;IACO,KAAA,CAAA,EAAA,MAAA,GAAA,SAAA;;;AAAf,kBAxHY,UAAA,CAwHZ;
|
|
1
|
+
{"version":3,"file":"api.d.cts","names":[],"sources":["../../src/api/api.ts"],"sourcesContent":[],"mappings":";;;;;;;;KAyBK,MAAA,UAAgB;cAYf,gCAA8B,CAAA,CAAA;EAZ/B,IAAA,aAAM,CAAA;IAYL,KAAA,aAAA;IAOJ,MAAA,aAAA;;;;;;;;;IAPkC,KAAA,EAAA,MAAA;IAAA,MAAA,EAAA,MAAA;IASnB,MAAA,EAAA,MAAU;IAAA,KAAA,CAAA,EAAA,MAAA,GAAA,SAAA;;UAMjB,cAAA,EAAA;MAQgC,EAAA;IAAY,KAAA,EAAA,MAAA;IAmBzC,MAAA,EAAA,MAAU;IAAA,MAAA,EAAA,MAAA;IAQnB,KAAA,CAAA,EAAA,MAAA,GAAA,SAAA;;;MAGA,EAAA;IACA,KAAA,EAAA,MAAA;IACC,MAAA,EAAA,MAAW;IAyEH,MAAA,EAAA,MAAA;IACO,KAAA,CAAA,EAAA,MAAA,GAAA,SAAA;;;AAAf,kBAxHY,UAAA,CAwHZ;YA0Be,OAAA,CAAA;IAAe,OAAA,CAAA,EAAA,MAAA;IAAtB,UAAA,EAAA,MAAA;IAAR,kBAAA,EAAA,MAAA,GAAA,SAAA;IAyBe,KAAA,EAtKT,MAsKoB;IAGL,IAAA,EAxKhB,IAwKgB;;YAArB,YAAA,CAAA;IA2Cc,MAAA,EAAA,MAAW,EAAA;IAEd,OAAA,EAAA,MAAA;;YAEmC,cAAA,SA/MT,YA+MS,CAAA;IAAtC,KAAA,CAAA,EAAA,MAAA;;YA0FR,iBAAA,CAAA;IA4CS,MAAA,EAAA,MAAA;IAIE,IAAA,CAAA,EAAA,OAAA;;YAIA,kBAAA,CAAA;IAEU;;;;;IAyDd,KAAA,EAAA,MAAA,GAAA,SAAA;;;AACN,cAtYO,UAAA,CAsYP;YA2CK,CAAA,EAAA,MAAA;UACL,UAAA;UAwCK,kBAAA;mBACL,KAAA;UA2CsD,IAAA;aAAR,CAAA;IAAA,OAAA;IAAA,UAAA;IAAA,kBAAA;IAAA,KAAA;IAAA;EAAA,CAAA,EAzf/C,UAAA,CAAW,OAyfoC;EAAO,YAAA,SAAA,CAAA;;;;;;sCAhb9C,mBACR,QAAQ,OAAO,eAAe;8BA0B9B,QAAQ,OAAO,eAAe;0BAyBf,UAAA,CAAW,4BAG1B,QAAQ,aAAa;4BA2CP,UAAA,CAAW;cAEd;MAEX,QAAQ,OAAO,UAAA,CAAW,oBAAoB;2DA0F9C;;YA4CS;cACE;;;cAGA;;;cAIA;MAEX,QAAQ,aAAa;;;;;;;WAsDf;sBACW;;YAEV;MACN,QAAQ,CAAA,CAAE,cAAc;;;;;;;;WA2CnB;MACL;;;;;;;;WAwCK;MACL;;;;;;;;;;;8CA2C8C,QAAQ"}
|
package/api/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","names":[],"sources":["../../src/api/api.ts"],"sourcesContent":[],"mappings":";;;;;;;;KAyBK,MAAA,UAAgB;cAYf,gCAA8B,CAAA,CAAA;EAZ/B,IAAA,aAAM,CAAA;IAYL,KAAA,aAAA;IAOJ,MAAA,aAAA;;;;;;;;;IAPkC,KAAA,EAAA,MAAA;IAAA,MAAA,EAAA,MAAA;IASnB,MAAA,EAAA,MAAU;IAAA,KAAA,CAAA,EAAA,MAAA,GAAA,SAAA;;UAMjB,cAAA,EAAA;MAQgC,EAAA;IAAY,KAAA,EAAA,MAAA;IAmBzC,MAAA,EAAA,MAAU;IAAA,MAAA,EAAA,MAAA;IAQnB,KAAA,CAAA,EAAA,MAAA,GAAA,SAAA;;;MAGA,EAAA;IACA,KAAA,EAAA,MAAA;IACC,MAAA,EAAA,MAAW;IAyEH,MAAA,EAAA,MAAA;IACO,KAAA,CAAA,EAAA,MAAA,GAAA,SAAA;;;AAAf,kBAxHY,UAAA,CAwHZ;
|
|
1
|
+
{"version":3,"file":"api.d.ts","names":[],"sources":["../../src/api/api.ts"],"sourcesContent":[],"mappings":";;;;;;;;KAyBK,MAAA,UAAgB;cAYf,gCAA8B,CAAA,CAAA;EAZ/B,IAAA,aAAM,CAAA;IAYL,KAAA,aAAA;IAOJ,MAAA,aAAA;;;;;;;;;IAPkC,KAAA,EAAA,MAAA;IAAA,MAAA,EAAA,MAAA;IASnB,MAAA,EAAA,MAAU;IAAA,KAAA,CAAA,EAAA,MAAA,GAAA,SAAA;;UAMjB,cAAA,EAAA;MAQgC,EAAA;IAAY,KAAA,EAAA,MAAA;IAmBzC,MAAA,EAAA,MAAU;IAAA,MAAA,EAAA,MAAA;IAQnB,KAAA,CAAA,EAAA,MAAA,GAAA,SAAA;;;MAGA,EAAA;IACA,KAAA,EAAA,MAAA;IACC,MAAA,EAAA,MAAW;IAyEH,MAAA,EAAA,MAAA;IACO,KAAA,CAAA,EAAA,MAAA,GAAA,SAAA;;;AAAf,kBAxHY,UAAA,CAwHZ;YA0Be,OAAA,CAAA;IAAe,OAAA,CAAA,EAAA,MAAA;IAAtB,UAAA,EAAA,MAAA;IAAR,kBAAA,EAAA,MAAA,GAAA,SAAA;IAyBe,KAAA,EAtKT,MAsKoB;IAGL,IAAA,EAxKhB,IAwKgB;;YAArB,YAAA,CAAA;IA2Cc,MAAA,EAAA,MAAW,EAAA;IAEd,OAAA,EAAA,MAAA;;YAEmC,cAAA,SA/MT,YA+MS,CAAA;IAAtC,KAAA,CAAA,EAAA,MAAA;;YA0FR,iBAAA,CAAA;IA4CS,MAAA,EAAA,MAAA;IAIE,IAAA,CAAA,EAAA,OAAA;;YAIA,kBAAA,CAAA;IAEU;;;;;IAyDd,KAAA,EAAA,MAAA,GAAA,SAAA;;;AACN,cAtYO,UAAA,CAsYP;YA2CK,CAAA,EAAA,MAAA;UACL,UAAA;UAwCK,kBAAA;mBACL,KAAA;UA2CsD,IAAA;aAAR,CAAA;IAAA,OAAA;IAAA,UAAA;IAAA,kBAAA;IAAA,KAAA;IAAA;EAAA,CAAA,EAzf/C,UAAA,CAAW,OAyfoC;EAAO,YAAA,SAAA,CAAA;;;;;;sCAhb9C,mBACR,QAAQ,OAAO,eAAe;8BA0B9B,QAAQ,OAAO,eAAe;0BAyBf,UAAA,CAAW,4BAG1B,QAAQ,aAAa;4BA2CP,UAAA,CAAW;cAEd;MAEX,QAAQ,OAAO,UAAA,CAAW,oBAAoB;2DA0F9C;;YA4CS;cACE;;;cAGA;;;cAIA;MAEX,QAAQ,aAAa;;;;;;;WAsDf;sBACW;;YAEV;MACN,QAAQ,CAAA,CAAE,cAAc;;;;;;;;WA2CnB;MACL;;;;;;;;WAwCK;MACL;;;;;;;;;;;8CA2C8C,QAAQ"}
|
package/api/api.js
CHANGED
|
@@ -70,7 +70,7 @@ var InngestApi = class {
|
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
async getRunSteps(runId, version) {
|
|
73
|
-
const result = await this.req(`/v0/runs/${runId}/actions`);
|
|
73
|
+
const result = await this.req(`/v0/runs/${encodeURIComponent(runId)}/actions`);
|
|
74
74
|
if (result.ok) {
|
|
75
75
|
const res = result.value;
|
|
76
76
|
const data = await res.json();
|
|
@@ -83,7 +83,7 @@ var InngestApi = class {
|
|
|
83
83
|
});
|
|
84
84
|
}
|
|
85
85
|
async getRunBatch(runId) {
|
|
86
|
-
const result = await this.req(`/v0/runs/${runId}/batch`);
|
|
86
|
+
const result = await this.req(`/v0/runs/${encodeURIComponent(runId)}/batch`);
|
|
87
87
|
if (result.ok) {
|
|
88
88
|
const res = result.value;
|
|
89
89
|
const data = await res.json();
|
|
@@ -198,7 +198,7 @@ var InngestApi = class {
|
|
|
198
198
|
target: args.target,
|
|
199
199
|
metadata: args.metadata
|
|
200
200
|
};
|
|
201
|
-
const result = await this.req(`/v1/runs/${args.target.run_id}/metadata`, {
|
|
201
|
+
const result = await this.req(`/v1/runs/${encodeURIComponent(args.target.run_id)}/metadata`, {
|
|
202
202
|
method: "POST",
|
|
203
203
|
body: JSON.stringify(payload),
|
|
204
204
|
headers: options?.headers
|
|
@@ -264,7 +264,7 @@ var InngestApi = class {
|
|
|
264
264
|
steps: args.steps,
|
|
265
265
|
ts: (/* @__PURE__ */ new Date()).valueOf()
|
|
266
266
|
});
|
|
267
|
-
const result = await this.req(`/v1/checkpoint/${args.runId}/steps`, {
|
|
267
|
+
const result = await this.req(`/v1/checkpoint/${encodeURIComponent(args.runId)}/steps`, {
|
|
268
268
|
method: "POST",
|
|
269
269
|
body
|
|
270
270
|
});
|
|
@@ -283,7 +283,7 @@ var InngestApi = class {
|
|
|
283
283
|
steps: args.steps,
|
|
284
284
|
ts: (/* @__PURE__ */ new Date()).valueOf()
|
|
285
285
|
});
|
|
286
|
-
const result = await this.req(`/v1/checkpoint/${args.runId}/async`, {
|
|
286
|
+
const result = await this.req(`/v1/checkpoint/${encodeURIComponent(args.runId)}/async`, {
|
|
287
287
|
method: "POST",
|
|
288
288
|
body
|
|
289
289
|
});
|
|
@@ -302,7 +302,7 @@ var InngestApi = class {
|
|
|
302
302
|
* @returns The raw Response from the API
|
|
303
303
|
*/
|
|
304
304
|
async getRunOutput(runId, token) {
|
|
305
|
-
const url = await this.getTargetUrl(`/v1/http/runs/${runId}/output`);
|
|
305
|
+
const url = await this.getTargetUrl(`/v1/http/runs/${encodeURIComponent(runId)}/output`);
|
|
306
306
|
url.searchParams.set("token", token);
|
|
307
307
|
return this.fetch(url.toString(), {
|
|
308
308
|
method: "GET",
|
package/api/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","names":["finalUrl: URL","data: unknown","json: unknown","rawData: unknown"],"sources":["../../src/api/api.ts"],"sourcesContent":["import type { fetch } from \"cross-fetch\";\nimport { z } from \"zod/v3\";\nimport type { ExecutionVersion } from \"../helpers/consts.ts\";\nimport type { Mode } from \"../helpers/env.ts\";\nimport { getErrorMessage } from \"../helpers/errors.ts\";\nimport { fetchWithAuthFallback } from \"../helpers/net.ts\";\nimport { hashSigningKey } from \"../helpers/strings.ts\";\nimport { resolveApiBaseUrl } from \"../helpers/url.ts\";\nimport {\n type APIStepPayload,\n err,\n type MetadataTarget,\n type OutgoingOp,\n ok,\n type Result,\n} from \"../types.ts\";\nimport {\n type BatchResponse,\n batchSchema,\n type ErrorResponse,\n errorSchema,\n type StepsResponse,\n stepsSchemas,\n} from \"./schema.ts\";\n\ntype FetchT = typeof fetch;\n\nconst realtimeSubscriptionTokenSchema = z.object({\n jwt: z.string(),\n});\n\nconst sendSignalSuccessResponseSchema = z.object({\n data: z.object({\n run_id: z.string().min(1),\n }),\n});\n\nconst checkpointNewRunResponseSchema = z.object({\n data: z.object({\n fn_id: z.string().min(1),\n app_id: z.string().min(1),\n run_id: z.string().min(1),\n token: z.string().min(1).optional(),\n }),\n});\n\nexport namespace InngestApi {\n export interface Options {\n baseUrl?: string;\n signingKey: string;\n signingKeyFallback: string | undefined;\n fetch: FetchT;\n mode: Mode;\n }\n\n export interface Subscription {\n topics: string[];\n channel: string;\n }\n\n export interface PublishOptions extends Subscription {\n runId?: string;\n }\n\n export interface SendSignalOptions {\n signal: string;\n data?: unknown;\n }\n\n export interface SendSignalResponse {\n /**\n * The ID of the run that was signaled.\n *\n * If this is undefined, the signal could not be matched to a run.\n */\n runId: string | undefined;\n }\n}\n\nexport class InngestApi {\n public apiBaseUrl?: string;\n private signingKey: string;\n private signingKeyFallback: string | undefined;\n private readonly fetch: FetchT;\n private mode: Mode;\n\n constructor({\n baseUrl,\n signingKey,\n signingKeyFallback,\n fetch,\n mode,\n }: InngestApi.Options) {\n this.apiBaseUrl = baseUrl;\n this.signingKey = signingKey;\n this.signingKeyFallback = signingKeyFallback;\n this.fetch = fetch;\n this.mode = mode;\n }\n\n private get hashedKey(): string {\n return hashSigningKey(this.signingKey);\n }\n\n private get hashedFallbackKey(): string | undefined {\n if (!this.signingKeyFallback) {\n return;\n }\n\n return hashSigningKey(this.signingKeyFallback);\n }\n\n // set the signing key in case it was not instantiated previously\n setSigningKey(key: string | undefined) {\n if (typeof key === \"string\" && this.signingKey === \"\") {\n this.signingKey = key;\n }\n }\n\n setSigningKeyFallback(key: string | undefined) {\n if (typeof key === \"string\" && !this.signingKeyFallback) {\n this.signingKeyFallback = key;\n }\n }\n\n private async getTargetUrl(path: string): Promise<URL> {\n const baseUrl = await resolveApiBaseUrl({\n apiBaseUrl: this.apiBaseUrl,\n mode: this.mode,\n fetch: this.fetch,\n });\n\n return new URL(path, baseUrl);\n }\n\n private async req(\n url: string | URL,\n options?: RequestInit,\n ): Promise<Result<Response, unknown>> {\n const finalUrl: URL =\n typeof url === \"string\" ? await this.getTargetUrl(url) : url;\n\n try {\n const res = await fetchWithAuthFallback({\n authToken: this.hashedKey,\n authTokenFallback: this.hashedFallbackKey,\n fetch: this.fetch,\n url: finalUrl,\n options: {\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options?.headers,\n },\n },\n });\n\n return ok(res);\n } catch (error) {\n return err(error);\n }\n }\n\n async getRunSteps(\n runId: string,\n version: ExecutionVersion,\n ): Promise<Result<StepsResponse, ErrorResponse>> {\n const result = await this.req(`/v0/runs/${runId}/actions`);\n if (result.ok) {\n const res = result.value;\n const data: unknown = await res.json();\n\n if (res.ok) {\n return ok(stepsSchemas[version].parse(data));\n }\n\n return err(errorSchema.parse(data));\n }\n\n return err({\n error: getErrorMessage(\n result.error,\n \"Unknown error retrieving step data\",\n ),\n status: 500,\n });\n }\n\n async getRunBatch(\n runId: string,\n ): Promise<Result<BatchResponse, ErrorResponse>> {\n const result = await this.req(`/v0/runs/${runId}/batch`);\n if (result.ok) {\n const res = result.value;\n const data: unknown = await res.json();\n\n if (res.ok) {\n return ok(batchSchema.parse(data));\n }\n\n return err(errorSchema.parse(data));\n }\n\n return err({\n error: getErrorMessage(\n result.error,\n \"Unknown error retrieving event batch\",\n ),\n status: 500,\n });\n }\n\n async publish(\n publishOptions: InngestApi.PublishOptions,\n // biome-ignore lint/suspicious/noExplicitAny: anything is acceptable\n data: any,\n ): Promise<Result<void, ErrorResponse>> {\n // todo it may not be a \"text/stream\"\n const isStream = data instanceof ReadableStream;\n\n const url = await this.getTargetUrl(\"/v1/realtime/publish\");\n url.searchParams.set(\"channel\", publishOptions.channel || \"\");\n if (publishOptions.runId) {\n url.searchParams.set(\"run_id\", publishOptions.runId);\n }\n for (const topic of publishOptions.topics) {\n url.searchParams.append(\"topic\", topic);\n }\n\n const result = await this.req(url, {\n body: isStream\n ? data\n : typeof data === \"string\"\n ? data\n : JSON.stringify(data),\n method: \"POST\",\n headers: {\n \"Content-Type\": isStream ? \"text/stream\" : \"application/json\",\n },\n ...(isStream ? { duplex: \"half\" } : {}),\n });\n if (result.ok) {\n const res = result.value;\n if (!res.ok) {\n throw new Error(\n `Failed to publish event: ${res.status} ${res.statusText}`,\n );\n }\n\n return ok<void>(undefined);\n }\n\n return err({\n error: getErrorMessage(result.error, \"Unknown error publishing event\"),\n status: 500,\n });\n }\n\n async sendSignal(\n signalOptions: InngestApi.SendSignalOptions,\n options?: {\n headers?: Record<string, string>;\n },\n ): Promise<Result<InngestApi.SendSignalResponse, ErrorResponse>> {\n const url = await this.getTargetUrl(\"/v1/signals\");\n\n const body = {\n signal: signalOptions.signal,\n data: signalOptions.data,\n };\n\n return fetchWithAuthFallback({\n authToken: this.hashedKey,\n authTokenFallback: this.hashedFallbackKey,\n fetch: this.fetch,\n url,\n options: {\n method: \"POST\",\n body: JSON.stringify(body),\n headers: {\n \"Content-Type\": \"application/json\",\n ...options?.headers,\n },\n },\n })\n .then(async (res) => {\n // A 404 is valid if the signal was not found.\n if (res.status === 404) {\n return ok<InngestApi.SendSignalResponse>({\n runId: undefined,\n });\n }\n\n // Save a clone of the response we can use to get the text of if we fail\n // to parse the JSON.\n const resClone = res.clone();\n\n // JSON!\n let json: unknown;\n try {\n json = await res.json();\n } catch {\n // res.json() failed so not a valid JSON response\n return err({\n error: `Failed to send signal: ${res.status} ${\n res.statusText\n } - ${await resClone.text()}`,\n status: res.status,\n });\n }\n\n // If we're not 2xx, something went wrong.\n if (!res.ok) {\n try {\n return err(errorSchema.parse(json));\n } catch {\n // schema parse failed\n return err({\n error: `Failed to send signal: ${res.status} ${\n res.statusText\n } - ${await res.text()}`,\n status: res.status,\n });\n }\n }\n\n // If we are 2xx, we should have a run_id.\n const parseRes = sendSignalSuccessResponseSchema.safeParse(json);\n if (!parseRes.success) {\n return err({\n error: `Successfully sent signal, but response parsing failed: ${\n res.status\n } ${res.statusText} - ${await resClone.text()}`,\n status: res.status,\n });\n }\n\n return ok({\n runId: parseRes.data.data.run_id,\n });\n })\n .catch((error) => {\n // Catch-all if various things go wrong\n return err({\n error: getErrorMessage(error, \"Unknown error sending signal\"),\n status: 500,\n });\n });\n }\n\n async getSubscriptionToken(\n channel: string,\n topics: string[],\n ): Promise<string> {\n const url = await this.getTargetUrl(\"/v1/realtime/token\");\n\n const body = topics.map((topic) => ({\n channel,\n name: topic,\n kind: \"run\",\n }));\n\n return fetchWithAuthFallback({\n authToken: this.hashedKey,\n authTokenFallback: this.hashedFallbackKey,\n fetch: this.fetch,\n url,\n options: {\n method: \"POST\",\n body: JSON.stringify(body),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n },\n })\n .then(async (res) => {\n if (!res.ok) {\n throw new Error(\n `Failed to get subscription token: ${res.status} ${\n res.statusText\n } - ${await res.text()}`,\n );\n }\n\n const data = realtimeSubscriptionTokenSchema.parse(await res.json());\n\n return data.jwt;\n })\n .catch((error) => {\n throw new Error(\n getErrorMessage(error, \"Unknown error getting subscription token\"),\n );\n });\n }\n\n async updateMetadata(\n args: {\n target: MetadataTarget;\n metadata: Array<{\n kind: string;\n op: string;\n values: Record<string, unknown>;\n }>;\n },\n options?: {\n headers?: Record<string, string>;\n },\n ): Promise<Result<void, ErrorResponse>> {\n const payload = { target: args.target, metadata: args.metadata };\n\n const result = await this.req(`/v1/runs/${args.target.run_id}/metadata`, {\n method: \"POST\",\n body: JSON.stringify(payload),\n headers: options?.headers,\n });\n\n if (!result.ok) {\n return err({\n error: getErrorMessage(result.error, \"Unknown error updating metadata\"),\n status: 500,\n });\n }\n\n const res = result.value;\n if (res.ok) {\n return ok<void>(undefined);\n }\n\n const resClone = res.clone();\n\n let json: unknown;\n try {\n json = await res.json();\n } catch {\n return err({\n error: `Failed to update metadata: ${res.status} ${\n res.statusText\n } - ${await resClone.text()}`,\n status: res.status,\n });\n }\n\n try {\n return err(errorSchema.parse(json));\n } catch {\n return err({\n error: `Failed to update metadata: ${res.status} ${res.statusText}`,\n status: res.status,\n });\n }\n }\n\n /**\n * Start a new run, optionally passing in a number of steps to initialize the\n * run with.\n */\n async checkpointNewRun(args: {\n runId: string;\n event: APIStepPayload;\n executionVersion: ExecutionVersion;\n retries: number;\n steps?: OutgoingOp[];\n }): Promise<z.output<typeof checkpointNewRunResponseSchema>> {\n const body = JSON.stringify({\n run_id: args.runId,\n event: args.event,\n steps: args.steps,\n ts: new Date().valueOf(),\n request_version: args.executionVersion,\n retries: args.retries,\n });\n\n const result = await this.req(\"/v1/checkpoint\", {\n method: \"POST\",\n body,\n });\n\n if (!result.ok) {\n throw new Error(\n getErrorMessage(result.error, \"Unknown error checkpointing new run\"),\n );\n }\n\n const res = result.value;\n if (res.ok) {\n const rawData: unknown = await res.json();\n const data = checkpointNewRunResponseSchema.parse(rawData);\n\n return data;\n }\n\n throw new Error(\n `Failed to checkpoint new run: ${res.status} ${\n res.statusText\n } - ${await res.text()}`,\n );\n }\n\n /**\n * Checkpoint steps for a given sync run.\n */\n async checkpointSteps(args: {\n runId: string;\n fnId: string;\n appId: string;\n steps: OutgoingOp[];\n }): Promise<void> {\n const body = JSON.stringify({\n fn_id: args.fnId,\n app_id: args.appId,\n run_id: args.runId,\n steps: args.steps,\n ts: new Date().valueOf(),\n });\n\n const result = await this.req(`/v1/checkpoint/${args.runId}/steps`, {\n method: \"POST\",\n body,\n });\n\n if (!result.ok) {\n throw new Error(\n getErrorMessage(result.error, \"Unknown error checkpointing steps\"),\n );\n }\n\n const res = result.value;\n if (!res.ok) {\n throw new Error(\n `Failed to checkpoint steps: ${res.status} ${\n res.statusText\n } - ${await res.text()}`,\n );\n }\n }\n\n /**\n * Checkpoint steps for a given async run.\n */\n async checkpointStepsAsync(args: {\n runId: string;\n fnId: string;\n queueItemId: string;\n steps: OutgoingOp[];\n }): Promise<void> {\n const body = JSON.stringify({\n run_id: args.runId,\n fn_id: args.fnId,\n qi_id: args.queueItemId,\n steps: args.steps,\n ts: new Date().valueOf(),\n });\n\n const result = await this.req(`/v1/checkpoint/${args.runId}/async`, {\n method: \"POST\",\n body,\n });\n\n if (!result.ok) {\n throw new Error(\n getErrorMessage(result.error, \"Unknown error checkpointing async\"),\n );\n }\n\n const res = result.value;\n if (!res.ok) {\n throw new Error(\n `Failed to checkpoint async: ${res.status} ${\n res.statusText\n } - ${await res.text()}`,\n );\n }\n }\n\n /**\n * Fetch the output of a completed run using a token.\n *\n * This uses token-based auth (not signing key) and is intended for use by\n * proxy endpoints that fetch results on behalf of users.\n *\n * @param runId - The ID of the run to fetch output for\n * @param token - The token used to authenticate the request\n * @returns The raw Response from the API\n */\n async getRunOutput(runId: string, token: string): Promise<Response> {\n const url = await this.getTargetUrl(`/v1/http/runs/${runId}/output`);\n url.searchParams.set(\"token\", token);\n\n return this.fetch(url.toString(), {\n method: \"GET\",\n headers: { \"Content-Type\": \"application/json\" },\n });\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.js","names":["finalUrl: URL","data: unknown","json: unknown","rawData: unknown"],"sources":["../../src/api/api.ts"],"sourcesContent":["import type { fetch } from \"cross-fetch\";\nimport { z } from \"zod/v3\";\nimport type { ExecutionVersion } from \"../helpers/consts.ts\";\nimport type { Mode } from \"../helpers/env.ts\";\nimport { getErrorMessage } from \"../helpers/errors.ts\";\nimport { fetchWithAuthFallback } from \"../helpers/net.ts\";\nimport { hashSigningKey } from \"../helpers/strings.ts\";\nimport { resolveApiBaseUrl } from \"../helpers/url.ts\";\nimport {\n type APIStepPayload,\n err,\n type MetadataTarget,\n type OutgoingOp,\n ok,\n type Result,\n} from \"../types.ts\";\nimport {\n type BatchResponse,\n batchSchema,\n type ErrorResponse,\n errorSchema,\n type StepsResponse,\n stepsSchemas,\n} from \"./schema.ts\";\n\ntype FetchT = typeof fetch;\n\nconst realtimeSubscriptionTokenSchema = z.object({\n jwt: z.string(),\n});\n\nconst sendSignalSuccessResponseSchema = z.object({\n data: z.object({\n run_id: z.string().min(1),\n }),\n});\n\nconst checkpointNewRunResponseSchema = z.object({\n data: z.object({\n fn_id: z.string().min(1),\n app_id: z.string().min(1),\n run_id: z.string().min(1),\n token: z.string().min(1).optional(),\n }),\n});\n\nexport namespace InngestApi {\n export interface Options {\n baseUrl?: string;\n signingKey: string;\n signingKeyFallback: string | undefined;\n fetch: FetchT;\n mode: Mode;\n }\n\n export interface Subscription {\n topics: string[];\n channel: string;\n }\n\n export interface PublishOptions extends Subscription {\n runId?: string;\n }\n\n export interface SendSignalOptions {\n signal: string;\n data?: unknown;\n }\n\n export interface SendSignalResponse {\n /**\n * The ID of the run that was signaled.\n *\n * If this is undefined, the signal could not be matched to a run.\n */\n runId: string | undefined;\n }\n}\n\nexport class InngestApi {\n public apiBaseUrl?: string;\n private signingKey: string;\n private signingKeyFallback: string | undefined;\n private readonly fetch: FetchT;\n private mode: Mode;\n\n constructor({\n baseUrl,\n signingKey,\n signingKeyFallback,\n fetch,\n mode,\n }: InngestApi.Options) {\n this.apiBaseUrl = baseUrl;\n this.signingKey = signingKey;\n this.signingKeyFallback = signingKeyFallback;\n this.fetch = fetch;\n this.mode = mode;\n }\n\n private get hashedKey(): string {\n return hashSigningKey(this.signingKey);\n }\n\n private get hashedFallbackKey(): string | undefined {\n if (!this.signingKeyFallback) {\n return;\n }\n\n return hashSigningKey(this.signingKeyFallback);\n }\n\n // set the signing key in case it was not instantiated previously\n setSigningKey(key: string | undefined) {\n if (typeof key === \"string\" && this.signingKey === \"\") {\n this.signingKey = key;\n }\n }\n\n setSigningKeyFallback(key: string | undefined) {\n if (typeof key === \"string\" && !this.signingKeyFallback) {\n this.signingKeyFallback = key;\n }\n }\n\n private async getTargetUrl(path: string): Promise<URL> {\n const baseUrl = await resolveApiBaseUrl({\n apiBaseUrl: this.apiBaseUrl,\n mode: this.mode,\n fetch: this.fetch,\n });\n\n return new URL(path, baseUrl);\n }\n\n private async req(\n url: string | URL,\n options?: RequestInit,\n ): Promise<Result<Response, unknown>> {\n const finalUrl: URL =\n typeof url === \"string\" ? await this.getTargetUrl(url) : url;\n\n try {\n const res = await fetchWithAuthFallback({\n authToken: this.hashedKey,\n authTokenFallback: this.hashedFallbackKey,\n fetch: this.fetch,\n url: finalUrl,\n options: {\n ...options,\n headers: {\n \"Content-Type\": \"application/json\",\n ...options?.headers,\n },\n },\n });\n\n return ok(res);\n } catch (error) {\n return err(error);\n }\n }\n\n async getRunSteps(\n runId: string,\n version: ExecutionVersion,\n ): Promise<Result<StepsResponse, ErrorResponse>> {\n const result = await this.req(\n `/v0/runs/${encodeURIComponent(runId)}/actions`,\n );\n if (result.ok) {\n const res = result.value;\n const data: unknown = await res.json();\n\n if (res.ok) {\n return ok(stepsSchemas[version].parse(data));\n }\n\n return err(errorSchema.parse(data));\n }\n\n return err({\n error: getErrorMessage(\n result.error,\n \"Unknown error retrieving step data\",\n ),\n status: 500,\n });\n }\n\n async getRunBatch(\n runId: string,\n ): Promise<Result<BatchResponse, ErrorResponse>> {\n const result = await this.req(\n `/v0/runs/${encodeURIComponent(runId)}/batch`,\n );\n if (result.ok) {\n const res = result.value;\n const data: unknown = await res.json();\n\n if (res.ok) {\n return ok(batchSchema.parse(data));\n }\n\n return err(errorSchema.parse(data));\n }\n\n return err({\n error: getErrorMessage(\n result.error,\n \"Unknown error retrieving event batch\",\n ),\n status: 500,\n });\n }\n\n async publish(\n publishOptions: InngestApi.PublishOptions,\n // biome-ignore lint/suspicious/noExplicitAny: anything is acceptable\n data: any,\n ): Promise<Result<void, ErrorResponse>> {\n // todo it may not be a \"text/stream\"\n const isStream = data instanceof ReadableStream;\n\n const url = await this.getTargetUrl(\"/v1/realtime/publish\");\n url.searchParams.set(\"channel\", publishOptions.channel || \"\");\n if (publishOptions.runId) {\n url.searchParams.set(\"run_id\", publishOptions.runId);\n }\n for (const topic of publishOptions.topics) {\n url.searchParams.append(\"topic\", topic);\n }\n\n const result = await this.req(url, {\n body: isStream\n ? data\n : typeof data === \"string\"\n ? data\n : JSON.stringify(data),\n method: \"POST\",\n headers: {\n \"Content-Type\": isStream ? \"text/stream\" : \"application/json\",\n },\n ...(isStream ? { duplex: \"half\" } : {}),\n });\n if (result.ok) {\n const res = result.value;\n if (!res.ok) {\n throw new Error(\n `Failed to publish event: ${res.status} ${res.statusText}`,\n );\n }\n\n return ok<void>(undefined);\n }\n\n return err({\n error: getErrorMessage(result.error, \"Unknown error publishing event\"),\n status: 500,\n });\n }\n\n async sendSignal(\n signalOptions: InngestApi.SendSignalOptions,\n options?: {\n headers?: Record<string, string>;\n },\n ): Promise<Result<InngestApi.SendSignalResponse, ErrorResponse>> {\n const url = await this.getTargetUrl(\"/v1/signals\");\n\n const body = {\n signal: signalOptions.signal,\n data: signalOptions.data,\n };\n\n return fetchWithAuthFallback({\n authToken: this.hashedKey,\n authTokenFallback: this.hashedFallbackKey,\n fetch: this.fetch,\n url,\n options: {\n method: \"POST\",\n body: JSON.stringify(body),\n headers: {\n \"Content-Type\": \"application/json\",\n ...options?.headers,\n },\n },\n })\n .then(async (res) => {\n // A 404 is valid if the signal was not found.\n if (res.status === 404) {\n return ok<InngestApi.SendSignalResponse>({\n runId: undefined,\n });\n }\n\n // Save a clone of the response we can use to get the text of if we fail\n // to parse the JSON.\n const resClone = res.clone();\n\n // JSON!\n let json: unknown;\n try {\n json = await res.json();\n } catch {\n // res.json() failed so not a valid JSON response\n return err({\n error: `Failed to send signal: ${res.status} ${\n res.statusText\n } - ${await resClone.text()}`,\n status: res.status,\n });\n }\n\n // If we're not 2xx, something went wrong.\n if (!res.ok) {\n try {\n return err(errorSchema.parse(json));\n } catch {\n // schema parse failed\n return err({\n error: `Failed to send signal: ${res.status} ${\n res.statusText\n } - ${await res.text()}`,\n status: res.status,\n });\n }\n }\n\n // If we are 2xx, we should have a run_id.\n const parseRes = sendSignalSuccessResponseSchema.safeParse(json);\n if (!parseRes.success) {\n return err({\n error: `Successfully sent signal, but response parsing failed: ${\n res.status\n } ${res.statusText} - ${await resClone.text()}`,\n status: res.status,\n });\n }\n\n return ok({\n runId: parseRes.data.data.run_id,\n });\n })\n .catch((error) => {\n // Catch-all if various things go wrong\n return err({\n error: getErrorMessage(error, \"Unknown error sending signal\"),\n status: 500,\n });\n });\n }\n\n async getSubscriptionToken(\n channel: string,\n topics: string[],\n ): Promise<string> {\n const url = await this.getTargetUrl(\"/v1/realtime/token\");\n\n const body = topics.map((topic) => ({\n channel,\n name: topic,\n kind: \"run\",\n }));\n\n return fetchWithAuthFallback({\n authToken: this.hashedKey,\n authTokenFallback: this.hashedFallbackKey,\n fetch: this.fetch,\n url,\n options: {\n method: \"POST\",\n body: JSON.stringify(body),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n },\n })\n .then(async (res) => {\n if (!res.ok) {\n throw new Error(\n `Failed to get subscription token: ${res.status} ${\n res.statusText\n } - ${await res.text()}`,\n );\n }\n\n const data = realtimeSubscriptionTokenSchema.parse(await res.json());\n\n return data.jwt;\n })\n .catch((error) => {\n throw new Error(\n getErrorMessage(error, \"Unknown error getting subscription token\"),\n );\n });\n }\n\n async updateMetadata(\n args: {\n target: MetadataTarget;\n metadata: Array<{\n kind: string;\n op: string;\n values: Record<string, unknown>;\n }>;\n },\n options?: {\n headers?: Record<string, string>;\n },\n ): Promise<Result<void, ErrorResponse>> {\n const payload = { target: args.target, metadata: args.metadata };\n\n const result = await this.req(\n `/v1/runs/${encodeURIComponent(args.target.run_id)}/metadata`,\n {\n method: \"POST\",\n body: JSON.stringify(payload),\n headers: options?.headers,\n },\n );\n\n if (!result.ok) {\n return err({\n error: getErrorMessage(result.error, \"Unknown error updating metadata\"),\n status: 500,\n });\n }\n\n const res = result.value;\n if (res.ok) {\n return ok<void>(undefined);\n }\n\n const resClone = res.clone();\n\n let json: unknown;\n try {\n json = await res.json();\n } catch {\n return err({\n error: `Failed to update metadata: ${res.status} ${\n res.statusText\n } - ${await resClone.text()}`,\n status: res.status,\n });\n }\n\n try {\n return err(errorSchema.parse(json));\n } catch {\n return err({\n error: `Failed to update metadata: ${res.status} ${res.statusText}`,\n status: res.status,\n });\n }\n }\n\n /**\n * Start a new run, optionally passing in a number of steps to initialize the\n * run with.\n */\n async checkpointNewRun(args: {\n runId: string;\n event: APIStepPayload;\n executionVersion: ExecutionVersion;\n retries: number;\n steps?: OutgoingOp[];\n }): Promise<z.output<typeof checkpointNewRunResponseSchema>> {\n const body = JSON.stringify({\n run_id: args.runId,\n event: args.event,\n steps: args.steps,\n ts: new Date().valueOf(),\n request_version: args.executionVersion,\n retries: args.retries,\n });\n\n const result = await this.req(\"/v1/checkpoint\", {\n method: \"POST\",\n body,\n });\n\n if (!result.ok) {\n throw new Error(\n getErrorMessage(result.error, \"Unknown error checkpointing new run\"),\n );\n }\n\n const res = result.value;\n if (res.ok) {\n const rawData: unknown = await res.json();\n const data = checkpointNewRunResponseSchema.parse(rawData);\n\n return data;\n }\n\n throw new Error(\n `Failed to checkpoint new run: ${res.status} ${\n res.statusText\n } - ${await res.text()}`,\n );\n }\n\n /**\n * Checkpoint steps for a given sync run.\n */\n async checkpointSteps(args: {\n runId: string;\n fnId: string;\n appId: string;\n steps: OutgoingOp[];\n }): Promise<void> {\n const body = JSON.stringify({\n fn_id: args.fnId,\n app_id: args.appId,\n run_id: args.runId,\n steps: args.steps,\n ts: new Date().valueOf(),\n });\n\n const result = await this.req(\n `/v1/checkpoint/${encodeURIComponent(args.runId)}/steps`,\n {\n method: \"POST\",\n body,\n },\n );\n\n if (!result.ok) {\n throw new Error(\n getErrorMessage(result.error, \"Unknown error checkpointing steps\"),\n );\n }\n\n const res = result.value;\n if (!res.ok) {\n throw new Error(\n `Failed to checkpoint steps: ${res.status} ${\n res.statusText\n } - ${await res.text()}`,\n );\n }\n }\n\n /**\n * Checkpoint steps for a given async run.\n */\n async checkpointStepsAsync(args: {\n runId: string;\n fnId: string;\n queueItemId: string;\n steps: OutgoingOp[];\n }): Promise<void> {\n const body = JSON.stringify({\n run_id: args.runId,\n fn_id: args.fnId,\n qi_id: args.queueItemId,\n steps: args.steps,\n ts: new Date().valueOf(),\n });\n\n const result = await this.req(\n `/v1/checkpoint/${encodeURIComponent(args.runId)}/async`,\n {\n method: \"POST\",\n body,\n },\n );\n\n if (!result.ok) {\n throw new Error(\n getErrorMessage(result.error, \"Unknown error checkpointing async\"),\n );\n }\n\n const res = result.value;\n if (!res.ok) {\n throw new Error(\n `Failed to checkpoint async: ${res.status} ${\n res.statusText\n } - ${await res.text()}`,\n );\n }\n }\n\n /**\n * Fetch the output of a completed run using a token.\n *\n * This uses token-based auth (not signing key) and is intended for use by\n * proxy endpoints that fetch results on behalf of users.\n *\n * @param runId - The ID of the run to fetch output for\n * @param token - The token used to authenticate the request\n * @returns The raw Response from the API\n */\n async getRunOutput(runId: string, token: string): Promise<Response> {\n const url = await this.getTargetUrl(\n `/v1/http/runs/${encodeURIComponent(runId)}/output`,\n );\n url.searchParams.set(\"token\", token);\n\n return this.fetch(url.toString(), {\n method: \"GET\",\n headers: { \"Content-Type\": \"application/json\" },\n });\n }\n}\n"],"mappings":"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"}
|
package/api/schema.d.cts
CHANGED
|
@@ -7,11 +7,11 @@ declare const errorSchema: z.ZodObject<{
|
|
|
7
7
|
error: z.ZodString;
|
|
8
8
|
status: z.ZodNumber;
|
|
9
9
|
}, "strip", z.ZodTypeAny, {
|
|
10
|
-
error: string;
|
|
11
10
|
status: number;
|
|
12
|
-
}, {
|
|
13
11
|
error: string;
|
|
12
|
+
}, {
|
|
14
13
|
status: number;
|
|
14
|
+
error: string;
|
|
15
15
|
}>;
|
|
16
16
|
type ErrorResponse = z.infer<typeof errorSchema>;
|
|
17
17
|
declare const stepsSchemas: {
|
package/api/schema.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.cts","names":[],"sources":["../../src/api/schema.ts"],"sourcesContent":[],"mappings":";;;;;cAIa,aAAW,CAAA,CAAA;;EAAX,MAAA,aAGX;CAAA,EAAA,OAAA,cAAA,EAAA;;;;
|
|
1
|
+
{"version":3,"file":"schema.d.cts","names":[],"sources":["../../src/api/schema.ts"],"sourcesContent":[],"mappings":";;;;;cAIa,aAAW,CAAA,CAAA;;EAAX,MAAA,aAGX;CAAA,EAAA,OAAA,cAAA,EAAA;;;;QAHsB,EAAA,MAAA;EAAA,KAAA,EAAA,MAAA;AAIxB,CAAA,CAAA;AAAyB,KAAb,aAAA,GAAgB,CAAA,CAAE,KAAL,CAAA,OAAkB,WAAlB,CAAA;AAAkB,cAsD9B,YAtD8B,EAAA;kBAAb,cAAA,YAAA,YAAA,cAAA,SAAA,EAAA,GAAA,EAAA,GAAA,CAAA,CAAA,CAAA,CAAA;EAAK,CAAA,cAAA,YAAA,YAAA,YAAA,CAAA,WAAA,CAAA,WAAA,CAAA,YAAA,CAAA;IAsDtB,IAAA,cAIoC,cAAA,aAAA,CAAA,MAAA,CAAA,CAAA,CAAA;IAAA,IAAA,cAAA,SAAA,EAAA,GAAA,EAAA,GAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAErC,IAAA,EAAA,OAAa;EAAA,CAAA,EAAA;IACjB,KAAA,EAAA;MAAmC,KAAA,CAAA,EAAA,MAAA,GAAA,SAAA;MAAc,IAAA,CAAA,EAAA,MAAA,GAAA,SAAA;MAA5B,OAAA,CAAA,EAAA,MAAA,GAAA,SAAA;MAC3B,KAAA,CAAA,EAAA,MAAA,GAAA,SAAA;IAAgB,CAAA,GAAA;MAEL,IAAA,EAEZ,MAAA;MAAA,OAAA,EAAA,MAAA;MAFuB,KAAA,CAAA,EAAA,OAAA;IAAA,CAAA;IAAA,IAAA,CAAA,EAAA,OAAA,GAAA,SAAA;KAAA,CAAA,aAAA,CAAA;IAAA,IAAA,cAAA,cAAA,aAAA,CAAA,OAAA,CAAA,CAAA,CAAA;IAAA,KAAA,cAAA,SAAA,EAAA,GAAA,EAAA,GAAA,CAAA;KAAA,QAAA,cAAA,EAAA;IAAA,IAAA,EAAA,OAAA;IAGZ,KAAA,CAAA,EAAA,GAAA;EAAa,CAAA,EAAA;IAAkB,IAAA,CAAA,EAAA,OAAA,GAAA,SAAA;IAAf,KAAE,CAAA,EAAA,GAAA;EAAK,CAAA,CAAA,CAAA,CAAA,cAAA,SAAA,EAAA;;;;;KAPvB,aAAA,WACJ,mBAAmB,CAAA,CAAE,cAAc,cAAc,MACvD;cAEW,aAAW,CAAA,CAAA,SAAA,CAAA,CAAA,WAAA,CAAA,CAAA,UAAA,CAAA,CAAA,WAAA,CAAA,CAAA,SAAA,mBAAA;KAGZ,aAAA,GAAgB,CAAA,CAAE,aAAa"}
|
package/api/schema.d.ts
CHANGED
|
@@ -7,11 +7,11 @@ declare const errorSchema: z.ZodObject<{
|
|
|
7
7
|
error: z.ZodString;
|
|
8
8
|
status: z.ZodNumber;
|
|
9
9
|
}, "strip", z.ZodTypeAny, {
|
|
10
|
-
error: string;
|
|
11
10
|
status: number;
|
|
12
|
-
}, {
|
|
13
11
|
error: string;
|
|
12
|
+
}, {
|
|
14
13
|
status: number;
|
|
14
|
+
error: string;
|
|
15
15
|
}>;
|
|
16
16
|
type ErrorResponse = z.infer<typeof errorSchema>;
|
|
17
17
|
declare const stepsSchemas: {
|
package/api/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","names":[],"sources":["../../src/api/schema.ts"],"sourcesContent":[],"mappings":";;;;;cAIa,aAAW,CAAA,CAAA;;EAAX,MAAA,aAGX;CAAA,EAAA,OAAA,cAAA,EAAA;;;;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","names":[],"sources":["../../src/api/schema.ts"],"sourcesContent":[],"mappings":";;;;;cAIa,aAAW,CAAA,CAAA;;EAAX,MAAA,aAGX;CAAA,EAAA,OAAA,cAAA,EAAA;;;;QAHsB,EAAA,MAAA;EAAA,KAAA,EAAA,MAAA;AAIxB,CAAA,CAAA;AAAyB,KAAb,aAAA,GAAgB,CAAA,CAAE,KAAL,CAAA,OAAkB,WAAlB,CAAA;AAAkB,cAsD9B,YAtD8B,EAAA;kBAAb,cAAA,YAAA,YAAA,cAAA,SAAA,EAAA,GAAA,EAAA,GAAA,CAAA,CAAA,CAAA,CAAA;EAAK,CAAA,cAAA,YAAA,YAAA,YAAA,CAAA,WAAA,CAAA,WAAA,CAAA,YAAA,CAAA;IAsDtB,IAAA,cAIoC,cAAA,aAAA,CAAA,MAAA,CAAA,CAAA,CAAA;IAAA,IAAA,cAAA,SAAA,EAAA,GAAA,EAAA,GAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAErC,IAAA,EAAA,OAAa;EAAA,CAAA,EAAA;IACjB,KAAA,EAAA;MAAmC,KAAA,CAAA,EAAA,MAAA,GAAA,SAAA;MAAc,IAAA,CAAA,EAAA,MAAA,GAAA,SAAA;MAA5B,OAAA,CAAA,EAAA,MAAA,GAAA,SAAA;MAC3B,KAAA,CAAA,EAAA,MAAA,GAAA,SAAA;IAAgB,CAAA,GAAA;MAEL,IAAA,EAEZ,MAAA;MAAA,OAAA,EAAA,MAAA;MAFuB,KAAA,CAAA,EAAA,OAAA;IAAA,CAAA;IAAA,IAAA,CAAA,EAAA,OAAA,GAAA,SAAA;KAAA,CAAA,aAAA,CAAA;IAAA,IAAA,cAAA,cAAA,aAAA,CAAA,OAAA,CAAA,CAAA,CAAA;IAAA,KAAA,cAAA,SAAA,EAAA,GAAA,EAAA,GAAA,CAAA;KAAA,QAAA,cAAA,EAAA;IAAA,IAAA,EAAA,OAAA;IAGZ,KAAA,CAAA,EAAA,GAAA;EAAa,CAAA,EAAA;IAAkB,IAAA,CAAA,EAAA,OAAA,GAAA,SAAA;IAAf,KAAE,CAAA,EAAA,GAAA;EAAK,CAAA,CAAA,CAAA,CAAA,cAAA,SAAA,EAAA;;;;;KAPvB,aAAA,WACJ,mBAAmB,CAAA,CAAE,cAAc,cAAc,MACvD;cAEW,aAAW,CAAA,CAAA,SAAA,CAAA,CAAA,WAAA,CAAA,CAAA,UAAA,CAAA,CAAA,WAAA,CAAA,CAAA,SAAA,mBAAA;KAGZ,aAAA,GAAgB,CAAA,CAAE,aAAa"}
|
package/components/Inngest.cjs
CHANGED
|
@@ -174,7 +174,7 @@ var Inngest = class Inngest {
|
|
|
174
174
|
* passed environment variables at runtime instead of as globals and need to
|
|
175
175
|
* update the client with those values as requests come in.
|
|
176
176
|
*/
|
|
177
|
-
setEnvVars(env = require_env.
|
|
177
|
+
setEnvVars(env = require_env.getProcessEnv()) {
|
|
178
178
|
this.mode = require_env.getMode({
|
|
179
179
|
env,
|
|
180
180
|
client: this
|