@trigger.dev/core 0.0.0-v3-prerelease-20241118124944 → 0.0.0-v3-prerelease-20241203112040
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/dist/commonjs/schemas/api.d.ts +1340 -1134
- package/dist/commonjs/schemas/eventFilter.d.ts +4 -4
- package/dist/commonjs/schemas/fetch.d.ts +66 -33
- package/dist/commonjs/schemas/notifications.d.ts +24 -16
- package/dist/commonjs/schemas/requestFilter.d.ts +52 -4
- package/dist/commonjs/schemas/runs.d.ts +29 -13
- package/dist/commonjs/schemas/schedules.d.ts +8 -8
- package/dist/commonjs/schemas/statuses.d.ts +9 -8
- package/dist/commonjs/schemas/tasks.d.ts +32 -31
- package/dist/commonjs/schemas/triggers.d.ts +36 -36
- package/dist/commonjs/v3/apiClient/index.d.ts +179 -155
- package/dist/commonjs/v3/apiClient/index.js +48 -15
- package/dist/commonjs/v3/apiClient/index.js.map +1 -1
- package/dist/commonjs/v3/apiClient/runStream.d.ts +54 -4
- package/dist/commonjs/v3/apiClient/runStream.js +129 -13
- package/dist/commonjs/v3/apiClient/runStream.js.map +1 -1
- package/dist/commonjs/v3/apiClient/stream.js +24 -10
- package/dist/commonjs/v3/apiClient/stream.js.map +1 -1
- package/dist/commonjs/v3/apiClient/types.d.ts +1 -0
- package/dist/commonjs/v3/apiClientManager/index.d.ts +1 -1
- package/dist/commonjs/v3/build/extensions.d.ts +1 -0
- package/dist/commonjs/v3/idempotencyKeys.d.ts +41 -0
- package/dist/commonjs/v3/idempotencyKeys.js +83 -0
- package/dist/commonjs/v3/idempotencyKeys.js.map +1 -0
- package/dist/commonjs/v3/index.d.ts +2 -0
- package/dist/commonjs/v3/index.js +2 -0
- package/dist/commonjs/v3/index.js.map +1 -1
- package/dist/commonjs/v3/jwt.d.ts +10 -1
- package/dist/commonjs/v3/jwt.js +17 -4
- package/dist/commonjs/v3/jwt.js.map +1 -1
- package/dist/commonjs/v3/runMetadata/index.d.ts +5 -0
- package/dist/commonjs/v3/runMetadata/index.js +15 -0
- package/dist/commonjs/v3/runMetadata/index.js.map +1 -1
- package/dist/commonjs/v3/runMetadata/manager.d.ts +13 -0
- package/dist/commonjs/v3/runMetadata/manager.js +174 -12
- package/dist/commonjs/v3/runMetadata/manager.js.map +1 -1
- package/dist/commonjs/v3/runMetadata/metadataStream.d.ts +21 -0
- package/dist/commonjs/v3/runMetadata/metadataStream.js +71 -0
- package/dist/commonjs/v3/runMetadata/metadataStream.js.map +1 -0
- package/dist/commonjs/v3/runMetadata/noopManager.d.ts +5 -0
- package/dist/commonjs/v3/runMetadata/noopManager.js +15 -0
- package/dist/commonjs/v3/runMetadata/noopManager.js.map +1 -1
- package/dist/commonjs/v3/runMetadata/types.d.ts +5 -0
- package/dist/commonjs/v3/runtime/devRuntimeManager.js.map +1 -1
- package/dist/commonjs/v3/schemas/api.d.ts +988 -1662
- package/dist/commonjs/v3/schemas/api.js +51 -2
- package/dist/commonjs/v3/schemas/api.js.map +1 -1
- package/dist/commonjs/v3/schemas/build.d.ts +284 -1016
- package/dist/commonjs/v3/schemas/common.d.ts +145 -123
- package/dist/commonjs/v3/schemas/common.js +4 -0
- package/dist/commonjs/v3/schemas/common.js.map +1 -1
- package/dist/commonjs/v3/schemas/eventFilter.d.ts +2 -2
- package/dist/commonjs/v3/schemas/fetch.d.ts +53 -41
- package/dist/commonjs/v3/schemas/messages.d.ts +2707 -4154
- package/dist/commonjs/v3/schemas/openTelemetry.d.ts +22 -22
- package/dist/commonjs/v3/schemas/resources.d.ts +90 -630
- package/dist/commonjs/v3/schemas/resources.js +1 -0
- package/dist/commonjs/v3/schemas/resources.js.map +1 -1
- package/dist/commonjs/v3/schemas/schemas.d.ts +406 -1074
- package/dist/commonjs/v3/schemas/schemas.js +1 -2
- package/dist/commonjs/v3/schemas/schemas.js.map +1 -1
- package/dist/commonjs/v3/schemas/style.d.ts +2 -2
- package/dist/commonjs/v3/types/index.d.ts +1 -0
- package/dist/commonjs/v3/types/index.js +1 -0
- package/dist/commonjs/v3/types/index.js.map +1 -1
- package/dist/commonjs/v3/types/tasks.d.ts +113 -23
- package/dist/commonjs/v3/types/tasks.js.map +1 -1
- package/dist/commonjs/v3/types/tools.d.ts +6 -0
- package/dist/commonjs/v3/types/tools.js +22 -0
- package/dist/commonjs/v3/types/tools.js.map +1 -0
- package/dist/commonjs/v3/utils/getEnv.d.ts +1 -1
- package/dist/commonjs/v3/utils/getEnv.js +3 -3
- package/dist/commonjs/v3/utils/getEnv.js.map +1 -1
- package/dist/commonjs/v3/utils/globals.d.ts +2 -0
- package/dist/commonjs/v3/utils/globals.js.map +1 -1
- package/dist/commonjs/v3/utils/ioSerialization.d.ts +8 -3
- package/dist/commonjs/v3/utils/ioSerialization.js +43 -36
- package/dist/commonjs/v3/utils/ioSerialization.js.map +1 -1
- package/dist/commonjs/v3/wait-until-api.d.ts +2 -0
- package/dist/commonjs/v3/wait-until-api.js +8 -0
- package/dist/commonjs/v3/wait-until-api.js.map +1 -0
- package/dist/commonjs/v3/waitUntil/index.d.ts +11 -0
- package/dist/commonjs/v3/waitUntil/index.js +44 -0
- package/dist/commonjs/v3/waitUntil/index.js.map +1 -0
- package/dist/commonjs/v3/waitUntil/manager.d.ts +8 -0
- package/dist/commonjs/v3/waitUntil/manager.js +28 -0
- package/dist/commonjs/v3/waitUntil/manager.js.map +1 -0
- package/dist/commonjs/v3/waitUntil/types.d.ts +9 -0
- package/dist/commonjs/v3/waitUntil/types.js +3 -0
- package/dist/commonjs/v3/waitUntil/types.js.map +1 -0
- package/dist/commonjs/v3/workers/index.d.ts +1 -0
- package/dist/commonjs/v3/workers/index.js +3 -1
- package/dist/commonjs/v3/workers/index.js.map +1 -1
- package/dist/commonjs/v3/workers/taskExecutor.js +13 -0
- package/dist/commonjs/v3/workers/taskExecutor.js.map +1 -1
- package/dist/commonjs/v3/zodMessageHandler.d.ts +1 -1
- package/dist/commonjs/version.js +1 -1
- package/dist/esm/schemas/api.d.ts +1340 -1134
- package/dist/esm/schemas/eventFilter.d.ts +4 -4
- package/dist/esm/schemas/fetch.d.ts +66 -33
- package/dist/esm/schemas/notifications.d.ts +24 -16
- package/dist/esm/schemas/requestFilter.d.ts +52 -4
- package/dist/esm/schemas/runs.d.ts +29 -13
- package/dist/esm/schemas/schedules.d.ts +8 -8
- package/dist/esm/schemas/statuses.d.ts +9 -8
- package/dist/esm/schemas/tasks.d.ts +32 -31
- package/dist/esm/schemas/triggers.d.ts +36 -36
- package/dist/esm/v3/apiClient/index.d.ts +179 -155
- package/dist/esm/v3/apiClient/index.js +49 -16
- package/dist/esm/v3/apiClient/index.js.map +1 -1
- package/dist/esm/v3/apiClient/runStream.d.ts +54 -4
- package/dist/esm/v3/apiClient/runStream.js +126 -12
- package/dist/esm/v3/apiClient/runStream.js.map +1 -1
- package/dist/esm/v3/apiClient/stream.js +24 -10
- package/dist/esm/v3/apiClient/stream.js.map +1 -1
- package/dist/esm/v3/apiClient/types.d.ts +1 -0
- package/dist/esm/v3/apiClientManager/index.d.ts +1 -1
- package/dist/esm/v3/build/extensions.d.ts +1 -0
- package/dist/esm/v3/idempotencyKeys.d.ts +41 -0
- package/dist/esm/v3/idempotencyKeys.js +78 -0
- package/dist/esm/v3/idempotencyKeys.js.map +1 -0
- package/dist/esm/v3/index.d.ts +2 -0
- package/dist/esm/v3/index.js +2 -0
- package/dist/esm/v3/index.js.map +1 -1
- package/dist/esm/v3/jwt.d.ts +10 -1
- package/dist/esm/v3/jwt.js +17 -4
- package/dist/esm/v3/jwt.js.map +1 -1
- package/dist/esm/v3/runMetadata/index.d.ts +5 -0
- package/dist/esm/v3/runMetadata/index.js +15 -0
- package/dist/esm/v3/runMetadata/index.js.map +1 -1
- package/dist/esm/v3/runMetadata/manager.d.ts +13 -0
- package/dist/esm/v3/runMetadata/manager.js +174 -12
- package/dist/esm/v3/runMetadata/manager.js.map +1 -1
- package/dist/esm/v3/runMetadata/metadataStream.d.ts +21 -0
- package/dist/esm/v3/runMetadata/metadataStream.js +67 -0
- package/dist/esm/v3/runMetadata/metadataStream.js.map +1 -0
- package/dist/esm/v3/runMetadata/noopManager.d.ts +5 -0
- package/dist/esm/v3/runMetadata/noopManager.js +15 -0
- package/dist/esm/v3/runMetadata/noopManager.js.map +1 -1
- package/dist/esm/v3/runMetadata/types.d.ts +5 -0
- package/dist/esm/v3/runtime/devRuntimeManager.js.map +1 -1
- package/dist/esm/v3/schemas/api.d.ts +988 -1662
- package/dist/esm/v3/schemas/api.js +49 -0
- package/dist/esm/v3/schemas/api.js.map +1 -1
- package/dist/esm/v3/schemas/build.d.ts +284 -1016
- package/dist/esm/v3/schemas/common.d.ts +145 -123
- package/dist/esm/v3/schemas/common.js +4 -0
- package/dist/esm/v3/schemas/common.js.map +1 -1
- package/dist/esm/v3/schemas/eventFilter.d.ts +2 -2
- package/dist/esm/v3/schemas/fetch.d.ts +53 -41
- package/dist/esm/v3/schemas/messages.d.ts +2707 -4154
- package/dist/esm/v3/schemas/openTelemetry.d.ts +22 -22
- package/dist/esm/v3/schemas/resources.d.ts +90 -630
- package/dist/esm/v3/schemas/resources.js +1 -0
- package/dist/esm/v3/schemas/resources.js.map +1 -1
- package/dist/esm/v3/schemas/schemas.d.ts +406 -1074
- package/dist/esm/v3/schemas/schemas.js +1 -2
- package/dist/esm/v3/schemas/schemas.js.map +1 -1
- package/dist/esm/v3/schemas/style.d.ts +2 -2
- package/dist/esm/v3/types/index.d.ts +1 -0
- package/dist/esm/v3/types/index.js +1 -0
- package/dist/esm/v3/types/index.js.map +1 -1
- package/dist/esm/v3/types/tasks.d.ts +113 -23
- package/dist/esm/v3/types/tasks.js.map +1 -1
- package/dist/esm/v3/types/tools.d.ts +6 -0
- package/dist/esm/v3/types/tools.js +19 -0
- package/dist/esm/v3/types/tools.js.map +1 -0
- package/dist/esm/v3/utils/getEnv.d.ts +1 -1
- package/dist/esm/v3/utils/getEnv.js +3 -3
- package/dist/esm/v3/utils/getEnv.js.map +1 -1
- package/dist/esm/v3/utils/globals.d.ts +2 -0
- package/dist/esm/v3/utils/globals.js.map +1 -1
- package/dist/esm/v3/utils/ioSerialization.d.ts +8 -3
- package/dist/esm/v3/utils/ioSerialization.js +43 -36
- package/dist/esm/v3/utils/ioSerialization.js.map +1 -1
- package/dist/esm/v3/wait-until-api.d.ts +2 -0
- package/dist/esm/v3/wait-until-api.js +5 -0
- package/dist/esm/v3/wait-until-api.js.map +1 -0
- package/dist/esm/v3/waitUntil/index.d.ts +11 -0
- package/dist/esm/v3/waitUntil/index.js +40 -0
- package/dist/esm/v3/waitUntil/index.js.map +1 -0
- package/dist/esm/v3/waitUntil/manager.d.ts +8 -0
- package/dist/esm/v3/waitUntil/manager.js +24 -0
- package/dist/esm/v3/waitUntil/manager.js.map +1 -0
- package/dist/esm/v3/waitUntil/types.d.ts +9 -0
- package/dist/esm/v3/waitUntil/types.js +2 -0
- package/dist/esm/v3/waitUntil/types.js.map +1 -0
- package/dist/esm/v3/workers/index.d.ts +1 -0
- package/dist/esm/v3/workers/index.js +1 -0
- package/dist/esm/v3/workers/index.js.map +1 -1
- package/dist/esm/v3/workers/taskExecutor.js +14 -1
- package/dist/esm/v3/workers/taskExecutor.js.map +1 -1
- package/dist/esm/v3/zodMessageHandler.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/package.json +7 -3
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { IdempotencyKey } from "./types/idempotencyKeys.js";
|
|
2
|
+
export declare function isIdempotencyKey(value: string | string[] | IdempotencyKey): value is IdempotencyKey;
|
|
3
|
+
export declare function makeIdempotencyKey(idempotencyKey?: IdempotencyKey | string | string[]): Promise<IdempotencyKey | undefined>;
|
|
4
|
+
/**
|
|
5
|
+
* Creates a deterministic idempotency key based on the provided key material.
|
|
6
|
+
*
|
|
7
|
+
* If running inside a task, the task run ID is automatically included in the key material, giving you a unique key per task run.
|
|
8
|
+
* This ensures that a given child task is only triggered once per task run, even if the parent task is retried.
|
|
9
|
+
*
|
|
10
|
+
* @param {string | string[]} key The key material to create the idempotency key from.
|
|
11
|
+
* @param {object} [options] Additional options.
|
|
12
|
+
* @param {"run" | "attempt" | "global"} [options.scope="run"] The scope of the idempotency key.
|
|
13
|
+
*
|
|
14
|
+
* @returns {Promise<IdempotencyKey>} The idempotency key as a branded string.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
*
|
|
18
|
+
* ```typescript
|
|
19
|
+
* import { idempotencyKeys, task } from "@trigger.dev/sdk/v3";
|
|
20
|
+
*
|
|
21
|
+
* export const myTask = task({
|
|
22
|
+
* id: "my-task",
|
|
23
|
+
* run: async (payload: any) => {
|
|
24
|
+
* const idempotencyKey = await idempotencyKeys.create("my-task-key");
|
|
25
|
+
*
|
|
26
|
+
* // Use the idempotency key when triggering child tasks
|
|
27
|
+
* await childTask.triggerAndWait(payload, { idempotencyKey });
|
|
28
|
+
* }
|
|
29
|
+
* });
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* You can also use the `scope` parameter to create a key that is unique per task run, task run attempts (retries of the same run), or globally:
|
|
33
|
+
*
|
|
34
|
+
* ```typescript
|
|
35
|
+
* await idempotencyKeys.create("my-task-key", { scope: "attempt" }); // Creates a key that is unique per task run attempt
|
|
36
|
+
* await idempotencyKeys.create("my-task-key", { scope: "global" }); // Skips including the task run ID
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare function createIdempotencyKey(key: string | string[], options?: {
|
|
40
|
+
scope?: "run" | "attempt" | "global";
|
|
41
|
+
}): Promise<IdempotencyKey>;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { taskContext } from "./task-context-api.js";
|
|
2
|
+
export function isIdempotencyKey(value) {
|
|
3
|
+
// Cannot check the brand at runtime because it doesn't exist (it's a TypeScript-only construct)
|
|
4
|
+
return typeof value === "string" && value.length === 64;
|
|
5
|
+
}
|
|
6
|
+
export async function makeIdempotencyKey(idempotencyKey) {
|
|
7
|
+
if (!idempotencyKey) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
if (isIdempotencyKey(idempotencyKey)) {
|
|
11
|
+
return idempotencyKey;
|
|
12
|
+
}
|
|
13
|
+
return await createIdempotencyKey(idempotencyKey, { scope: "global" });
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Creates a deterministic idempotency key based on the provided key material.
|
|
17
|
+
*
|
|
18
|
+
* If running inside a task, the task run ID is automatically included in the key material, giving you a unique key per task run.
|
|
19
|
+
* This ensures that a given child task is only triggered once per task run, even if the parent task is retried.
|
|
20
|
+
*
|
|
21
|
+
* @param {string | string[]} key The key material to create the idempotency key from.
|
|
22
|
+
* @param {object} [options] Additional options.
|
|
23
|
+
* @param {"run" | "attempt" | "global"} [options.scope="run"] The scope of the idempotency key.
|
|
24
|
+
*
|
|
25
|
+
* @returns {Promise<IdempotencyKey>} The idempotency key as a branded string.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
*
|
|
29
|
+
* ```typescript
|
|
30
|
+
* import { idempotencyKeys, task } from "@trigger.dev/sdk/v3";
|
|
31
|
+
*
|
|
32
|
+
* export const myTask = task({
|
|
33
|
+
* id: "my-task",
|
|
34
|
+
* run: async (payload: any) => {
|
|
35
|
+
* const idempotencyKey = await idempotencyKeys.create("my-task-key");
|
|
36
|
+
*
|
|
37
|
+
* // Use the idempotency key when triggering child tasks
|
|
38
|
+
* await childTask.triggerAndWait(payload, { idempotencyKey });
|
|
39
|
+
* }
|
|
40
|
+
* });
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* You can also use the `scope` parameter to create a key that is unique per task run, task run attempts (retries of the same run), or globally:
|
|
44
|
+
*
|
|
45
|
+
* ```typescript
|
|
46
|
+
* await idempotencyKeys.create("my-task-key", { scope: "attempt" }); // Creates a key that is unique per task run attempt
|
|
47
|
+
* await idempotencyKeys.create("my-task-key", { scope: "global" }); // Skips including the task run ID
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export async function createIdempotencyKey(key, options) {
|
|
51
|
+
const idempotencyKey = await generateIdempotencyKey([...(Array.isArray(key) ? key : [key])].concat(injectScope(options?.scope ?? "run")));
|
|
52
|
+
return idempotencyKey;
|
|
53
|
+
}
|
|
54
|
+
function injectScope(scope) {
|
|
55
|
+
switch (scope) {
|
|
56
|
+
case "run": {
|
|
57
|
+
if (taskContext?.ctx) {
|
|
58
|
+
return [taskContext.ctx.run.id];
|
|
59
|
+
}
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
case "attempt": {
|
|
63
|
+
if (taskContext?.ctx) {
|
|
64
|
+
return [taskContext.ctx.attempt.id];
|
|
65
|
+
}
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return [];
|
|
70
|
+
}
|
|
71
|
+
async function generateIdempotencyKey(keyMaterial) {
|
|
72
|
+
const hash = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(keyMaterial.join("-")));
|
|
73
|
+
// Return a hex string, using cross-runtime compatible methods
|
|
74
|
+
return Array.from(new Uint8Array(hash))
|
|
75
|
+
.map((byte) => byte.toString(16).padStart(2, "0"))
|
|
76
|
+
.join("");
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=idempotencyKeys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idempotencyKeys.js","sourceRoot":"","sources":["../../../src/v3/idempotencyKeys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,MAAM,UAAU,gBAAgB,CAC9B,KAAyC;IAEzC,gGAAgG;IAChG,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,cAAmD;IAEnD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO;IACT,CAAC;IAED,IAAI,gBAAgB,CAAC,cAAc,CAAC,EAAE,CAAC;QACrC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,OAAO,MAAM,oBAAoB,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AACzE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAsB,EACtB,OAAkD;IAElD,MAAM,cAAc,GAAG,MAAM,sBAAsB,CACjD,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC,CAAC,CACrF,CAAC;IAEF,OAAO,cAAgC,CAAC;AAC1C,CAAC;AAED,SAAS,WAAW,CAAC,KAAmC;IACtD,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,IAAI,WAAW,EAAE,GAAG,EAAE,CAAC;gBACrB,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClC,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,WAAW,EAAE,GAAG,EAAE,CAAC;gBACrB,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACtC,CAAC;YACD,MAAM;QACR,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,WAAqB;IACzD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CACrC,SAAS,EACT,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAChD,CAAC;IAEF,8DAA8D;IAC9D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;SACpC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SACjD,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC"}
|
package/dist/esm/v3/index.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export * from "./task-context-api.js";
|
|
|
12
12
|
export * from "./apiClientManager-api.js";
|
|
13
13
|
export * from "./usage-api.js";
|
|
14
14
|
export * from "./run-metadata-api.js";
|
|
15
|
+
export * from "./wait-until-api.js";
|
|
15
16
|
export * from "./timeout-api.js";
|
|
16
17
|
export * from "./schemas/index.js";
|
|
17
18
|
export { SemanticInternalAttributes } from "./semanticInternalAttributes.js";
|
|
@@ -19,6 +20,7 @@ export * from "./task-catalog-api.js";
|
|
|
19
20
|
export * from "./types/index.js";
|
|
20
21
|
export { links } from "./links.js";
|
|
21
22
|
export * from "./jwt.js";
|
|
23
|
+
export * from "./idempotencyKeys.js";
|
|
22
24
|
export { formatDuration, formatDurationInDays, formatDurationMilliseconds, formatDurationNanoseconds, millisecondsToNanoseconds, nanosecondsToMilliseconds, } from "./utils/durations.js";
|
|
23
25
|
export type { LogLevel } from "./logger/taskLogger.js";
|
|
24
26
|
export { eventFilterMatches } from "../eventFilterMatches.js";
|
package/dist/esm/v3/index.js
CHANGED
|
@@ -11,6 +11,7 @@ export * from "./task-context-api.js";
|
|
|
11
11
|
export * from "./apiClientManager-api.js";
|
|
12
12
|
export * from "./usage-api.js";
|
|
13
13
|
export * from "./run-metadata-api.js";
|
|
14
|
+
export * from "./wait-until-api.js";
|
|
14
15
|
export * from "./timeout-api.js";
|
|
15
16
|
export * from "./schemas/index.js";
|
|
16
17
|
export { SemanticInternalAttributes } from "./semanticInternalAttributes.js";
|
|
@@ -18,6 +19,7 @@ export * from "./task-catalog-api.js";
|
|
|
18
19
|
export * from "./types/index.js";
|
|
19
20
|
export { links } from "./links.js";
|
|
20
21
|
export * from "./jwt.js";
|
|
22
|
+
export * from "./idempotencyKeys.js";
|
|
21
23
|
export { formatDuration, formatDurationInDays, formatDurationMilliseconds, formatDurationNanoseconds, millisecondsToNanoseconds, nanosecondsToMilliseconds, } from "./utils/durations.js";
|
|
22
24
|
export { eventFilterMatches } from "../eventFilterMatches.js";
|
|
23
25
|
export { flattenAttributes, primitiveValueOrflattenedAttributes, unflattenAttributes, NULL_SENTINEL, } from "./utils/flattenAttributes.js";
|
package/dist/esm/v3/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v3/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,iBAAiB,EACjB,mCAAmC,EACnC,mBAAmB,EACnB,aAAa,GACd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,EACtB,4BAA4B,EAC5B,wBAAwB,EACxB,WAAW,EACX,iBAAiB,EACjB,WAAW,GAEZ,MAAM,4BAA4B,CAAC;AAEpC,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAA6C,MAAM,oBAAoB,CAAC;AAEjG,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v3/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,iBAAiB,EACjB,mCAAmC,EACnC,mBAAmB,EACnB,aAAa,GACd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,EACtB,4BAA4B,EAC5B,wBAAwB,EACxB,WAAW,EACX,iBAAiB,EACjB,WAAW,GAEZ,MAAM,4BAA4B,CAAC;AAEpC,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAA6C,MAAM,oBAAoB,CAAC;AAEjG,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,CAAC"}
|
package/dist/esm/v3/jwt.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { JWTPayload } from "jose";
|
|
1
2
|
export type GenerateJWTOptions = {
|
|
2
3
|
secretKey: string;
|
|
3
4
|
payload: Record<string, any>;
|
|
@@ -7,4 +8,12 @@ export declare const JWT_ALGORITHM = "HS256";
|
|
|
7
8
|
export declare const JWT_ISSUER = "https://id.trigger.dev";
|
|
8
9
|
export declare const JWT_AUDIENCE = "https://api.trigger.dev";
|
|
9
10
|
export declare function generateJWT(options: GenerateJWTOptions): Promise<string>;
|
|
10
|
-
export
|
|
11
|
+
export type ValidationResult = {
|
|
12
|
+
ok: true;
|
|
13
|
+
payload: JWTPayload;
|
|
14
|
+
} | {
|
|
15
|
+
ok: false;
|
|
16
|
+
error: string;
|
|
17
|
+
code: string;
|
|
18
|
+
};
|
|
19
|
+
export declare function validateJWT(token: string, apiKey: string): Promise<ValidationResult>;
|
package/dist/esm/v3/jwt.js
CHANGED
|
@@ -13,17 +13,30 @@ export async function generateJWT(options) {
|
|
|
13
13
|
.sign(secret);
|
|
14
14
|
}
|
|
15
15
|
export async function validateJWT(token, apiKey) {
|
|
16
|
-
const { jwtVerify } = await import("jose");
|
|
16
|
+
const { jwtVerify, errors } = await import("jose");
|
|
17
17
|
const secret = new TextEncoder().encode(apiKey);
|
|
18
18
|
try {
|
|
19
19
|
const { payload } = await jwtVerify(token, secret, {
|
|
20
20
|
issuer: JWT_ISSUER,
|
|
21
21
|
audience: JWT_AUDIENCE,
|
|
22
22
|
});
|
|
23
|
-
return payload;
|
|
23
|
+
return { ok: true, payload };
|
|
24
24
|
}
|
|
25
|
-
catch (
|
|
26
|
-
|
|
25
|
+
catch (error) {
|
|
26
|
+
if (error instanceof errors.JOSEError) {
|
|
27
|
+
return {
|
|
28
|
+
ok: false,
|
|
29
|
+
error: error.message,
|
|
30
|
+
code: error.code,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
return {
|
|
35
|
+
ok: false,
|
|
36
|
+
error: error instanceof Error ? error.message : "Unknown error",
|
|
37
|
+
code: "ERR_UNKNOWN",
|
|
38
|
+
};
|
|
39
|
+
}
|
|
27
40
|
}
|
|
28
41
|
}
|
|
29
42
|
//# sourceMappingURL=jwt.js.map
|
package/dist/esm/v3/jwt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../../src/v3/jwt.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../../src/v3/jwt.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC;AACrC,MAAM,CAAC,MAAM,UAAU,GAAG,wBAAwB,CAAC;AACnD,MAAM,CAAC,MAAM,YAAY,GAAG,yBAAyB,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA2B;IAC3D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;IAEzC,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAE3D,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;SAChC,SAAS,CAAC,UAAU,CAAC;SACrB,WAAW,CAAC,YAAY,CAAC;SACzB,kBAAkB,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC;SAC1C,WAAW,EAAE;SACb,iBAAiB,CAAC,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC;SAClD,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAa,EAAE,MAAc;IAC7D,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEhD,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE;YACjD,MAAM,EAAE,UAAU;YAClB,QAAQ,EAAE,YAAY;SACvB,CAAC,CAAC;QAEH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,MAAM,CAAC,SAAS,EAAE,CAAC;YACtC,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,KAAK,CAAC,OAAO;gBACpB,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;gBAC/D,IAAI,EAAE,aAAa;aACpB,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -12,6 +12,11 @@ export declare class RunMetadataAPI implements RunMetadataManager {
|
|
|
12
12
|
getKey(key: string): DeserializedJson | undefined;
|
|
13
13
|
setKey(key: string, value: DeserializedJson): void;
|
|
14
14
|
deleteKey(key: string): void;
|
|
15
|
+
incrementKey(key: string, value: number): void;
|
|
16
|
+
decrementKey(key: string, value: number): void;
|
|
17
|
+
appendKey(key: string, value: DeserializedJson): void;
|
|
18
|
+
removeFromKey(key: string, value: DeserializedJson): void;
|
|
15
19
|
update(metadata: Record<string, DeserializedJson>): void;
|
|
20
|
+
stream<T>(key: string, value: AsyncIterable<T> | ReadableStream<T>, signal?: AbortSignal): Promise<AsyncIterable<T>>;
|
|
16
21
|
flush(requestOptions?: ApiRequestOptions): Promise<void>;
|
|
17
22
|
}
|
|
@@ -32,9 +32,24 @@ export class RunMetadataAPI {
|
|
|
32
32
|
deleteKey(key) {
|
|
33
33
|
return this.#getManager().deleteKey(key);
|
|
34
34
|
}
|
|
35
|
+
incrementKey(key, value) {
|
|
36
|
+
return this.#getManager().incrementKey(key, value);
|
|
37
|
+
}
|
|
38
|
+
decrementKey(key, value) {
|
|
39
|
+
return this.#getManager().decrementKey(key, value);
|
|
40
|
+
}
|
|
41
|
+
appendKey(key, value) {
|
|
42
|
+
this.#getManager().appendKey(key, value);
|
|
43
|
+
}
|
|
44
|
+
removeFromKey(key, value) {
|
|
45
|
+
this.#getManager().removeFromKey(key, value);
|
|
46
|
+
}
|
|
35
47
|
update(metadata) {
|
|
36
48
|
return this.#getManager().update(metadata);
|
|
37
49
|
}
|
|
50
|
+
stream(key, value, signal) {
|
|
51
|
+
return this.#getManager().stream(key, value, signal);
|
|
52
|
+
}
|
|
38
53
|
flush(requestOptions) {
|
|
39
54
|
return this.#getManager().flush(requestOptions);
|
|
40
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/v3/runMetadata/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,MAAM,QAAQ,GAAG,cAAc,CAAC;AAEhC,MAAM,YAAY,GAAG,IAAI,sBAAsB,EAAE,CAAC;AAElD,MAAM,OAAO,cAAc;IACjB,MAAM,CAAC,SAAS,CAAkB;IAE1C,gBAAuB,CAAC;IAEjB,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC;QACxC,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,gBAAgB,CAAC,OAA2B;QAC1C,OAAO,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,WAAW;QACT,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC;IAC7C,CAAC;IAEM,iBAAiB,CAAC,QAA0C;QACjE,IAAI,CAAC,WAAW,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,GAAW;QACvB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAEM,MAAM,CAAC,GAAW,EAAE,KAAuB;QAChD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAEM,SAAS,CAAC,GAAW;QAC1B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAEM,MAAM,CAAC,QAA0C;QACtD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,cAAkC;QACtC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAClD,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/v3/runMetadata/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,MAAM,QAAQ,GAAG,cAAc,CAAC;AAEhC,MAAM,YAAY,GAAG,IAAI,sBAAsB,EAAE,CAAC;AAElD,MAAM,OAAO,cAAc;IACjB,MAAM,CAAC,SAAS,CAAkB;IAE1C,gBAAuB,CAAC;IAEjB,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC;QACxC,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,gBAAgB,CAAC,OAA2B;QAC1C,OAAO,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,WAAW;QACT,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC;IAC7C,CAAC;IAEM,iBAAiB,CAAC,QAA0C;QACjE,IAAI,CAAC,WAAW,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,GAAW;QACvB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAEM,MAAM,CAAC,GAAW,EAAE,KAAuB;QAChD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAEM,SAAS,CAAC,GAAW;QAC1B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAEM,YAAY,CAAC,GAAW,EAAE,KAAa;QAC5C,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,YAAY,CAAC,GAAW,EAAE,KAAa;QACrC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,SAAS,CAAC,GAAW,EAAE,KAAuB;QAC5C,IAAI,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,aAAa,CAAC,GAAW,EAAE,KAAuB;QAChD,IAAI,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAEM,MAAM,CAAC,QAA0C;QACtD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAEM,MAAM,CACX,GAAW,EACX,KAA2C,EAC3C,MAAoB;QAEpB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,cAAkC;QACtC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAClD,CAAC;CACF"}
|
|
@@ -1,16 +1,29 @@
|
|
|
1
1
|
import { DeserializedJson } from "../../schemas/json.js";
|
|
2
2
|
import { ApiRequestOptions } from "../zodfetch.js";
|
|
3
3
|
import { RunMetadataManager } from "./types.js";
|
|
4
|
+
import { ApiClient } from "../apiClient/index.js";
|
|
4
5
|
export declare class StandardMetadataManager implements RunMetadataManager {
|
|
6
|
+
private apiClient;
|
|
7
|
+
private streamsBaseUrl;
|
|
5
8
|
private flushTimeoutId;
|
|
6
9
|
private hasChanges;
|
|
7
10
|
private store;
|
|
11
|
+
private activeStreams;
|
|
12
|
+
runId: string | undefined;
|
|
13
|
+
constructor(apiClient: ApiClient, streamsBaseUrl: string);
|
|
8
14
|
enterWithMetadata(metadata: Record<string, DeserializedJson>): void;
|
|
9
15
|
current(): Record<string, DeserializedJson> | undefined;
|
|
10
16
|
getKey(key: string): DeserializedJson | undefined;
|
|
11
17
|
setKey(key: string, value: DeserializedJson): void;
|
|
12
18
|
deleteKey(key: string): void;
|
|
19
|
+
appendKey(key: string, value: DeserializedJson): void;
|
|
20
|
+
removeFromKey(key: string, value: DeserializedJson): void;
|
|
21
|
+
incrementKey(key: string, increment?: number): void;
|
|
22
|
+
decrementKey(key: string, decrement?: number): void;
|
|
13
23
|
update(metadata: Record<string, DeserializedJson>): void;
|
|
24
|
+
stream<T>(key: string, value: AsyncIterable<T> | ReadableStream<T>, signal?: AbortSignal): Promise<AsyncIterable<T>>;
|
|
25
|
+
hasActiveStreams(): boolean;
|
|
26
|
+
waitForAllStreams(timeout?: number): Promise<void>;
|
|
14
27
|
flush(requestOptions?: ApiRequestOptions): Promise<void>;
|
|
15
28
|
startPeriodicFlush(intervalMs?: number): void;
|
|
16
29
|
stopPeriodicFlush(): void;
|
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
import { JSONHeroPath } from "@jsonhero/path";
|
|
2
2
|
import { dequal } from "dequal/lite";
|
|
3
|
-
import {
|
|
4
|
-
|
|
3
|
+
import { MetadataStream } from "./metadataStream.js";
|
|
4
|
+
const MAXIMUM_ACTIVE_STREAMS = 2;
|
|
5
|
+
const MAXIMUM_TOTAL_STREAMS = 5;
|
|
5
6
|
export class StandardMetadataManager {
|
|
7
|
+
apiClient;
|
|
8
|
+
streamsBaseUrl;
|
|
6
9
|
flushTimeoutId = null;
|
|
7
10
|
hasChanges = false;
|
|
8
11
|
store;
|
|
12
|
+
// Add a Map to track active streams
|
|
13
|
+
activeStreams = new Map();
|
|
14
|
+
runId;
|
|
15
|
+
constructor(apiClient, streamsBaseUrl) {
|
|
16
|
+
this.apiClient = apiClient;
|
|
17
|
+
this.streamsBaseUrl = streamsBaseUrl;
|
|
18
|
+
}
|
|
9
19
|
enterWithMetadata(metadata) {
|
|
10
20
|
this.store = metadata ?? {};
|
|
11
21
|
}
|
|
@@ -16,8 +26,7 @@ export class StandardMetadataManager {
|
|
|
16
26
|
return this.store?.[key];
|
|
17
27
|
}
|
|
18
28
|
setKey(key, value) {
|
|
19
|
-
|
|
20
|
-
if (!runId) {
|
|
29
|
+
if (!this.runId) {
|
|
21
30
|
return;
|
|
22
31
|
}
|
|
23
32
|
let nextStore = this.store
|
|
@@ -42,8 +51,7 @@ export class StandardMetadataManager {
|
|
|
42
51
|
this.store = nextStore;
|
|
43
52
|
}
|
|
44
53
|
deleteKey(key) {
|
|
45
|
-
|
|
46
|
-
if (!runId) {
|
|
54
|
+
if (!this.runId) {
|
|
47
55
|
return;
|
|
48
56
|
}
|
|
49
57
|
const nextStore = { ...(this.store ?? {}) };
|
|
@@ -53,9 +61,102 @@ export class StandardMetadataManager {
|
|
|
53
61
|
}
|
|
54
62
|
this.store = nextStore;
|
|
55
63
|
}
|
|
64
|
+
appendKey(key, value) {
|
|
65
|
+
if (!this.runId) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
let nextStore = this.store
|
|
69
|
+
? structuredClone(this.store)
|
|
70
|
+
: {};
|
|
71
|
+
if (key.startsWith("$.")) {
|
|
72
|
+
const path = new JSONHeroPath(key);
|
|
73
|
+
const currentValue = path.first(nextStore);
|
|
74
|
+
if (currentValue === undefined) {
|
|
75
|
+
// Initialize as array with single item
|
|
76
|
+
path.set(nextStore, [value]);
|
|
77
|
+
}
|
|
78
|
+
else if (Array.isArray(currentValue)) {
|
|
79
|
+
// Append to existing array
|
|
80
|
+
path.set(nextStore, [...currentValue, value]);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
// Convert to array if not already
|
|
84
|
+
path.set(nextStore, [currentValue, value]);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
const currentValue = nextStore[key];
|
|
89
|
+
if (currentValue === undefined) {
|
|
90
|
+
// Initialize as array with single item
|
|
91
|
+
nextStore[key] = [value];
|
|
92
|
+
}
|
|
93
|
+
else if (Array.isArray(currentValue)) {
|
|
94
|
+
// Append to existing array
|
|
95
|
+
nextStore[key] = [...currentValue, value];
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
// Convert to array if not already
|
|
99
|
+
nextStore[key] = [currentValue, value];
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
if (!dequal(this.store, nextStore)) {
|
|
103
|
+
this.hasChanges = true;
|
|
104
|
+
}
|
|
105
|
+
this.store = nextStore;
|
|
106
|
+
}
|
|
107
|
+
removeFromKey(key, value) {
|
|
108
|
+
if (!this.runId) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
let nextStore = this.store
|
|
112
|
+
? structuredClone(this.store)
|
|
113
|
+
: {};
|
|
114
|
+
if (key.startsWith("$.")) {
|
|
115
|
+
const path = new JSONHeroPath(key);
|
|
116
|
+
const currentValue = path.first(nextStore);
|
|
117
|
+
if (Array.isArray(currentValue)) {
|
|
118
|
+
// Remove the value from array using deep equality check
|
|
119
|
+
const newArray = currentValue.filter((item) => !dequal(item, value));
|
|
120
|
+
path.set(nextStore, newArray);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
const currentValue = nextStore[key];
|
|
125
|
+
if (Array.isArray(currentValue)) {
|
|
126
|
+
// Remove the value from array using deep equality check
|
|
127
|
+
nextStore[key] = currentValue.filter((item) => !dequal(item, value));
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
if (!dequal(this.store, nextStore)) {
|
|
131
|
+
this.hasChanges = true;
|
|
132
|
+
}
|
|
133
|
+
this.store = nextStore;
|
|
134
|
+
}
|
|
135
|
+
incrementKey(key, increment = 1) {
|
|
136
|
+
if (!this.runId) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
let nextStore = this.store ? structuredClone(this.store) : {};
|
|
140
|
+
let currentValue = key.startsWith("$.")
|
|
141
|
+
? new JSONHeroPath(key).first(nextStore)
|
|
142
|
+
: nextStore[key];
|
|
143
|
+
const newValue = (typeof currentValue === "number" ? currentValue : 0) + increment;
|
|
144
|
+
if (key.startsWith("$.")) {
|
|
145
|
+
new JSONHeroPath(key).set(nextStore, newValue);
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
nextStore[key] = newValue;
|
|
149
|
+
}
|
|
150
|
+
if (!dequal(this.store, nextStore)) {
|
|
151
|
+
this.hasChanges = true;
|
|
152
|
+
this.store = nextStore;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
decrementKey(key, decrement = 1) {
|
|
156
|
+
this.incrementKey(key, -decrement);
|
|
157
|
+
}
|
|
56
158
|
update(metadata) {
|
|
57
|
-
|
|
58
|
-
if (!runId) {
|
|
159
|
+
if (!this.runId) {
|
|
59
160
|
return;
|
|
60
161
|
}
|
|
61
162
|
if (!dequal(this.store, metadata)) {
|
|
@@ -63,9 +164,71 @@ export class StandardMetadataManager {
|
|
|
63
164
|
}
|
|
64
165
|
this.store = metadata;
|
|
65
166
|
}
|
|
167
|
+
async stream(key, value, signal) {
|
|
168
|
+
const $value = value;
|
|
169
|
+
if (!this.runId) {
|
|
170
|
+
return $value;
|
|
171
|
+
}
|
|
172
|
+
// Check to make sure we haven't exceeded the max number of active streams
|
|
173
|
+
if (this.activeStreams.size >= MAXIMUM_ACTIVE_STREAMS) {
|
|
174
|
+
console.warn(`Exceeded the maximum number of active streams (${MAXIMUM_ACTIVE_STREAMS}). The "${key}" stream will be ignored.`);
|
|
175
|
+
return $value;
|
|
176
|
+
}
|
|
177
|
+
// Check to make sure we haven't exceeded the max number of total streams
|
|
178
|
+
const streams = (this.store?.$$streams ?? []);
|
|
179
|
+
if (streams.length >= MAXIMUM_TOTAL_STREAMS) {
|
|
180
|
+
console.warn(`Exceeded the maximum number of total streams (${MAXIMUM_TOTAL_STREAMS}). The "${key}" stream will be ignored.`);
|
|
181
|
+
return $value;
|
|
182
|
+
}
|
|
183
|
+
try {
|
|
184
|
+
// Add the key to the special stream metadata object
|
|
185
|
+
this.appendKey(`$$streams`, key);
|
|
186
|
+
await this.flush();
|
|
187
|
+
const streamInstance = new MetadataStream({
|
|
188
|
+
key,
|
|
189
|
+
runId: this.runId,
|
|
190
|
+
iterator: $value[Symbol.asyncIterator](),
|
|
191
|
+
baseUrl: this.streamsBaseUrl,
|
|
192
|
+
signal,
|
|
193
|
+
});
|
|
194
|
+
this.activeStreams.set(key, streamInstance);
|
|
195
|
+
// Clean up when stream completes
|
|
196
|
+
streamInstance.wait().finally(() => this.activeStreams.delete(key));
|
|
197
|
+
return streamInstance;
|
|
198
|
+
}
|
|
199
|
+
catch (error) {
|
|
200
|
+
// Clean up metadata key if stream creation fails
|
|
201
|
+
this.removeFromKey(`$$streams`, key);
|
|
202
|
+
throw error;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
hasActiveStreams() {
|
|
206
|
+
return this.activeStreams.size > 0;
|
|
207
|
+
}
|
|
208
|
+
// Waits for all the streams to finish
|
|
209
|
+
async waitForAllStreams(timeout = 60_000) {
|
|
210
|
+
if (this.activeStreams.size === 0) {
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
const promises = Array.from(this.activeStreams.values()).map((stream) => stream.wait());
|
|
214
|
+
try {
|
|
215
|
+
await Promise.race([
|
|
216
|
+
Promise.allSettled(promises),
|
|
217
|
+
new Promise((resolve, _) => setTimeout(() => resolve(), timeout)),
|
|
218
|
+
]);
|
|
219
|
+
}
|
|
220
|
+
catch (error) {
|
|
221
|
+
console.error("Error waiting for streams to finish:", error);
|
|
222
|
+
// If we time out, abort all remaining streams
|
|
223
|
+
for (const [key, promise] of this.activeStreams.entries()) {
|
|
224
|
+
// We can add abort logic here if needed
|
|
225
|
+
this.activeStreams.delete(key);
|
|
226
|
+
}
|
|
227
|
+
throw error;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
66
230
|
async flush(requestOptions) {
|
|
67
|
-
|
|
68
|
-
if (!runId) {
|
|
231
|
+
if (!this.runId) {
|
|
69
232
|
return;
|
|
70
233
|
}
|
|
71
234
|
if (!this.store) {
|
|
@@ -74,10 +237,9 @@ export class StandardMetadataManager {
|
|
|
74
237
|
if (!this.hasChanges) {
|
|
75
238
|
return;
|
|
76
239
|
}
|
|
77
|
-
const apiClient = apiClientManager.clientOrThrow();
|
|
78
240
|
try {
|
|
79
241
|
this.hasChanges = false;
|
|
80
|
-
await apiClient.updateRunMetadata(runId, { metadata: this.store }, requestOptions);
|
|
242
|
+
await this.apiClient.updateRunMetadata(this.runId, { metadata: this.store }, requestOptions);
|
|
81
243
|
}
|
|
82
244
|
catch (error) {
|
|
83
245
|
this.hasChanges = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../src/v3/runMetadata/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../src/v3/runMetadata/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type MetadataOptions<T> = {
|
|
2
|
+
baseUrl: string;
|
|
3
|
+
runId: string;
|
|
4
|
+
key: string;
|
|
5
|
+
iterator: AsyncIterator<T>;
|
|
6
|
+
signal?: AbortSignal;
|
|
7
|
+
};
|
|
8
|
+
export declare class MetadataStream<T> {
|
|
9
|
+
private options;
|
|
10
|
+
private controller;
|
|
11
|
+
private serverQueue;
|
|
12
|
+
private consumerQueue;
|
|
13
|
+
private serverIterator;
|
|
14
|
+
private consumerIterator;
|
|
15
|
+
private streamPromise;
|
|
16
|
+
constructor(options: MetadataOptions<T>);
|
|
17
|
+
private createTeeIterators;
|
|
18
|
+
private initializeServerStream;
|
|
19
|
+
wait(): Promise<void>;
|
|
20
|
+
[Symbol.asyncIterator](): AsyncIterator<T, any, undefined>;
|
|
21
|
+
}
|