@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,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isIdempotencyKey = isIdempotencyKey;
|
|
4
|
+
exports.makeIdempotencyKey = makeIdempotencyKey;
|
|
5
|
+
exports.createIdempotencyKey = createIdempotencyKey;
|
|
6
|
+
const task_context_api_js_1 = require("./task-context-api.js");
|
|
7
|
+
function isIdempotencyKey(value) {
|
|
8
|
+
// Cannot check the brand at runtime because it doesn't exist (it's a TypeScript-only construct)
|
|
9
|
+
return typeof value === "string" && value.length === 64;
|
|
10
|
+
}
|
|
11
|
+
async function makeIdempotencyKey(idempotencyKey) {
|
|
12
|
+
if (!idempotencyKey) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
if (isIdempotencyKey(idempotencyKey)) {
|
|
16
|
+
return idempotencyKey;
|
|
17
|
+
}
|
|
18
|
+
return await createIdempotencyKey(idempotencyKey, { scope: "global" });
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Creates a deterministic idempotency key based on the provided key material.
|
|
22
|
+
*
|
|
23
|
+
* If running inside a task, the task run ID is automatically included in the key material, giving you a unique key per task run.
|
|
24
|
+
* This ensures that a given child task is only triggered once per task run, even if the parent task is retried.
|
|
25
|
+
*
|
|
26
|
+
* @param {string | string[]} key The key material to create the idempotency key from.
|
|
27
|
+
* @param {object} [options] Additional options.
|
|
28
|
+
* @param {"run" | "attempt" | "global"} [options.scope="run"] The scope of the idempotency key.
|
|
29
|
+
*
|
|
30
|
+
* @returns {Promise<IdempotencyKey>} The idempotency key as a branded string.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
*
|
|
34
|
+
* ```typescript
|
|
35
|
+
* import { idempotencyKeys, task } from "@trigger.dev/sdk/v3";
|
|
36
|
+
*
|
|
37
|
+
* export const myTask = task({
|
|
38
|
+
* id: "my-task",
|
|
39
|
+
* run: async (payload: any) => {
|
|
40
|
+
* const idempotencyKey = await idempotencyKeys.create("my-task-key");
|
|
41
|
+
*
|
|
42
|
+
* // Use the idempotency key when triggering child tasks
|
|
43
|
+
* await childTask.triggerAndWait(payload, { idempotencyKey });
|
|
44
|
+
* }
|
|
45
|
+
* });
|
|
46
|
+
* ```
|
|
47
|
+
*
|
|
48
|
+
* 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:
|
|
49
|
+
*
|
|
50
|
+
* ```typescript
|
|
51
|
+
* await idempotencyKeys.create("my-task-key", { scope: "attempt" }); // Creates a key that is unique per task run attempt
|
|
52
|
+
* await idempotencyKeys.create("my-task-key", { scope: "global" }); // Skips including the task run ID
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
async function createIdempotencyKey(key, options) {
|
|
56
|
+
const idempotencyKey = await generateIdempotencyKey([...(Array.isArray(key) ? key : [key])].concat(injectScope(options?.scope ?? "run")));
|
|
57
|
+
return idempotencyKey;
|
|
58
|
+
}
|
|
59
|
+
function injectScope(scope) {
|
|
60
|
+
switch (scope) {
|
|
61
|
+
case "run": {
|
|
62
|
+
if (task_context_api_js_1.taskContext?.ctx) {
|
|
63
|
+
return [task_context_api_js_1.taskContext.ctx.run.id];
|
|
64
|
+
}
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
case "attempt": {
|
|
68
|
+
if (task_context_api_js_1.taskContext?.ctx) {
|
|
69
|
+
return [task_context_api_js_1.taskContext.ctx.attempt.id];
|
|
70
|
+
}
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return [];
|
|
75
|
+
}
|
|
76
|
+
async function generateIdempotencyKey(keyMaterial) {
|
|
77
|
+
const hash = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(keyMaterial.join("-")));
|
|
78
|
+
// Return a hex string, using cross-runtime compatible methods
|
|
79
|
+
return Array.from(new Uint8Array(hash))
|
|
80
|
+
.map((byte) => byte.toString(16).padStart(2, "0"))
|
|
81
|
+
.join("");
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=idempotencyKeys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idempotencyKeys.js","sourceRoot":"","sources":["../../../src/v3/idempotencyKeys.ts"],"names":[],"mappings":";;AAGA,4CAKC;AAED,gDAYC;AAqCD,oDASC;AApED,+DAAoD;AAGpD,SAAgB,gBAAgB,CAC9B,KAAyC;IAEzC,gGAAgG;IAChG,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,CAAC;AAC1D,CAAC;AAEM,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;AACI,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,iCAAW,EAAE,GAAG,EAAE,CAAC;gBACrB,OAAO,CAAC,iCAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClC,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,iCAAW,EAAE,GAAG,EAAE,CAAC;gBACrB,OAAO,CAAC,iCAAW,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"}
|
|
@@ -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";
|
|
@@ -28,6 +28,7 @@ __exportStar(require("./task-context-api.js"), exports);
|
|
|
28
28
|
__exportStar(require("./apiClientManager-api.js"), exports);
|
|
29
29
|
__exportStar(require("./usage-api.js"), exports);
|
|
30
30
|
__exportStar(require("./run-metadata-api.js"), exports);
|
|
31
|
+
__exportStar(require("./wait-until-api.js"), exports);
|
|
31
32
|
__exportStar(require("./timeout-api.js"), exports);
|
|
32
33
|
__exportStar(require("./schemas/index.js"), exports);
|
|
33
34
|
var semanticInternalAttributes_js_1 = require("./semanticInternalAttributes.js");
|
|
@@ -37,6 +38,7 @@ __exportStar(require("./types/index.js"), exports);
|
|
|
37
38
|
var links_js_1 = require("./links.js");
|
|
38
39
|
Object.defineProperty(exports, "links", { enumerable: true, get: function () { return links_js_1.links; } });
|
|
39
40
|
__exportStar(require("./jwt.js"), exports);
|
|
41
|
+
__exportStar(require("./idempotencyKeys.js"), exports);
|
|
40
42
|
var durations_js_1 = require("./utils/durations.js");
|
|
41
43
|
Object.defineProperty(exports, "formatDuration", { enumerable: true, get: function () { return durations_js_1.formatDuration; } });
|
|
42
44
|
Object.defineProperty(exports, "formatDurationInDays", { enumerable: true, get: function () { return durations_js_1.formatDurationInDays; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v3/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,uDAAqC;AACrC,4DAA0C;AAE1C,wDAAsC;AACtC,iDAA+B;AAC/B,8CAA4B;AAC5B,8CAA4B;AAC5B,kDAAgC;AAChC,mDAAiC;AACjC,wDAAsC;AACtC,4DAA0C;AAC1C,iDAA+B;AAC/B,wDAAsC;AACtC,mDAAiC;AACjC,qDAAmC;AACnC,iFAA6E;AAApE,2IAAA,0BAA0B,OAAA;AACnC,wDAAsC;AACtC,mDAAiC;AACjC,uCAAmC;AAA1B,iGAAA,KAAK,OAAA;AACd,2CAAyB;AACzB,qDAO8B;AAN5B,8GAAA,cAAc,OAAA;AACd,oHAAA,oBAAoB,OAAA;AACpB,0HAAA,0BAA0B,OAAA;AAC1B,yHAAA,yBAAyB,OAAA;AACzB,yHAAA,yBAAyB,OAAA;AACzB,yHAAA,yBAAyB,OAAA;AAK3B,kEAA8D;AAArD,2HAAA,kBAAkB,OAAA;AAC3B,qEAKsC;AAJpC,yHAAA,iBAAiB,OAAA;AACjB,2IAAA,mCAAmC,OAAA;AACnC,2HAAA,mBAAmB,OAAA;AACnB,qHAAA,aAAa,OAAA;AAEf,2CAAuC;AAA9B,+FAAA,IAAI,OAAA;AACb,iDAK4B;AAJ1B,qHAAA,uBAAuB,OAAA;AACvB,8GAAA,gBAAgB,OAAA;AAChB,sHAAA,wBAAwB,OAAA;AACxB,iHAAA,mBAAmB,OAAA;AAErB,iEAAiE;AAAxD,yHAAA,mBAAmB,OAAA;AAE5B,iEAUoC;AATlC,+HAAA,yBAAyB,OAAA;AACzB,+HAAA,yBAAyB,OAAA;AACzB,4HAAA,sBAAsB,OAAA;AACtB,kIAAA,4BAA4B,OAAA;AAC5B,8HAAA,wBAAwB,OAAA;AACxB,iHAAA,WAAW,OAAA;AACX,uHAAA,iBAAiB,OAAA;AACjB,iHAAA,WAAW,OAAA;AAIb,8CAA4B;AAC5B,iDAAiG;AAAxF,8GAAA,gBAAgB,OAAA;AAEzB,8CAAwC;AAEpB,6FAFX,oBAAO,OAEgB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v3/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,uDAAqC;AACrC,4DAA0C;AAE1C,wDAAsC;AACtC,iDAA+B;AAC/B,8CAA4B;AAC5B,8CAA4B;AAC5B,kDAAgC;AAChC,mDAAiC;AACjC,wDAAsC;AACtC,4DAA0C;AAC1C,iDAA+B;AAC/B,wDAAsC;AACtC,sDAAoC;AACpC,mDAAiC;AACjC,qDAAmC;AACnC,iFAA6E;AAApE,2IAAA,0BAA0B,OAAA;AACnC,wDAAsC;AACtC,mDAAiC;AACjC,uCAAmC;AAA1B,iGAAA,KAAK,OAAA;AACd,2CAAyB;AACzB,uDAAqC;AACrC,qDAO8B;AAN5B,8GAAA,cAAc,OAAA;AACd,oHAAA,oBAAoB,OAAA;AACpB,0HAAA,0BAA0B,OAAA;AAC1B,yHAAA,yBAAyB,OAAA;AACzB,yHAAA,yBAAyB,OAAA;AACzB,yHAAA,yBAAyB,OAAA;AAK3B,kEAA8D;AAArD,2HAAA,kBAAkB,OAAA;AAC3B,qEAKsC;AAJpC,yHAAA,iBAAiB,OAAA;AACjB,2IAAA,mCAAmC,OAAA;AACnC,2HAAA,mBAAmB,OAAA;AACnB,qHAAA,aAAa,OAAA;AAEf,2CAAuC;AAA9B,+FAAA,IAAI,OAAA;AACb,iDAK4B;AAJ1B,qHAAA,uBAAuB,OAAA;AACvB,8GAAA,gBAAgB,OAAA;AAChB,sHAAA,wBAAwB,OAAA;AACxB,iHAAA,mBAAmB,OAAA;AAErB,iEAAiE;AAAxD,yHAAA,mBAAmB,OAAA;AAE5B,iEAUoC;AATlC,+HAAA,yBAAyB,OAAA;AACzB,+HAAA,yBAAyB,OAAA;AACzB,4HAAA,sBAAsB,OAAA;AACtB,kIAAA,4BAA4B,OAAA;AAC5B,8HAAA,wBAAwB,OAAA;AACxB,iHAAA,WAAW,OAAA;AACX,uHAAA,iBAAiB,OAAA;AACjB,iHAAA,WAAW,OAAA;AAIb,8CAA4B;AAC5B,iDAAiG;AAAxF,8GAAA,gBAAgB,OAAA;AAEzB,8CAAwC;AAEpB,6FAFX,oBAAO,OAEgB"}
|
|
@@ -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/commonjs/v3/jwt.js
CHANGED
|
@@ -18,17 +18,30 @@ async function generateJWT(options) {
|
|
|
18
18
|
.sign(secret);
|
|
19
19
|
}
|
|
20
20
|
async function validateJWT(token, apiKey) {
|
|
21
|
-
const { jwtVerify } = await import("jose");
|
|
21
|
+
const { jwtVerify, errors } = await import("jose");
|
|
22
22
|
const secret = new TextEncoder().encode(apiKey);
|
|
23
23
|
try {
|
|
24
24
|
const { payload } = await jwtVerify(token, secret, {
|
|
25
25
|
issuer: exports.JWT_ISSUER,
|
|
26
26
|
audience: exports.JWT_AUDIENCE,
|
|
27
27
|
});
|
|
28
|
-
return payload;
|
|
28
|
+
return { ok: true, payload };
|
|
29
29
|
}
|
|
30
|
-
catch (
|
|
31
|
-
|
|
30
|
+
catch (error) {
|
|
31
|
+
if (error instanceof errors.JOSEError) {
|
|
32
|
+
return {
|
|
33
|
+
ok: false,
|
|
34
|
+
error: error.message,
|
|
35
|
+
code: error.code,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
return {
|
|
40
|
+
ok: false,
|
|
41
|
+
error: error instanceof Error ? error.message : "Unknown error",
|
|
42
|
+
code: "ERR_UNKNOWN",
|
|
43
|
+
};
|
|
44
|
+
}
|
|
32
45
|
}
|
|
33
46
|
}
|
|
34
47
|
//# sourceMappingURL=jwt.js.map
|
|
@@ -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":";;;AAYA,kCAYC;AAaD,kCA2BC;AAxDY,QAAA,aAAa,GAAG,OAAO,CAAC;AACxB,QAAA,UAAU,GAAG,wBAAwB,CAAC;AACtC,QAAA,YAAY,GAAG,yBAAyB,CAAC;AAE/C,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,kBAAU,CAAC;SACrB,WAAW,CAAC,oBAAY,CAAC;SACzB,kBAAkB,CAAC,EAAE,GAAG,EAAE,qBAAa,EAAE,CAAC;SAC1C,WAAW,EAAE;SACb,iBAAiB,CAAC,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC;SAClD,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAaM,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,kBAAU;YAClB,QAAQ,EAAE,oBAAY;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
|
}
|
|
@@ -35,9 +35,24 @@ class RunMetadataAPI {
|
|
|
35
35
|
deleteKey(key) {
|
|
36
36
|
return this.#getManager().deleteKey(key);
|
|
37
37
|
}
|
|
38
|
+
incrementKey(key, value) {
|
|
39
|
+
return this.#getManager().incrementKey(key, value);
|
|
40
|
+
}
|
|
41
|
+
decrementKey(key, value) {
|
|
42
|
+
return this.#getManager().decrementKey(key, value);
|
|
43
|
+
}
|
|
44
|
+
appendKey(key, value) {
|
|
45
|
+
this.#getManager().appendKey(key, value);
|
|
46
|
+
}
|
|
47
|
+
removeFromKey(key, value) {
|
|
48
|
+
this.#getManager().removeFromKey(key, value);
|
|
49
|
+
}
|
|
38
50
|
update(metadata) {
|
|
39
51
|
return this.#getManager().update(metadata);
|
|
40
52
|
}
|
|
53
|
+
stream(key, value, signal) {
|
|
54
|
+
return this.#getManager().stream(key, value, signal);
|
|
55
|
+
}
|
|
41
56
|
flush(requestOptions) {
|
|
42
57
|
return this.#getManager().flush(requestOptions);
|
|
43
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/v3/runMetadata/index.ts"],"names":[],"mappings":";;;AACA,oDAAgE;AAEhE,qDAA0D;AAG1D,MAAM,QAAQ,GAAG,cAAc,CAAC;AAEhC,MAAM,YAAY,GAAG,IAAI,uCAAsB,EAAE,CAAC;AAElD,MAAa,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,IAAA,2BAAc,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,WAAW;QACT,OAAO,IAAA,sBAAS,EAAC,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,oDAAgE;AAEhE,qDAA0D;AAG1D,MAAM,QAAQ,GAAG,cAAc,CAAC;AAEhC,MAAM,YAAY,GAAG,IAAI,uCAAsB,EAAE,CAAC;AAElD,MAAa,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,IAAA,2BAAc,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,WAAW;QACT,OAAO,IAAA,sBAAS,EAAC,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;AAxED,wCAwEC"}
|
|
@@ -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;
|
|
@@ -3,12 +3,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.StandardMetadataManager = void 0;
|
|
4
4
|
const path_1 = require("@jsonhero/path");
|
|
5
5
|
const lite_1 = require("dequal/lite");
|
|
6
|
-
const
|
|
7
|
-
const
|
|
6
|
+
const metadataStream_js_1 = require("./metadataStream.js");
|
|
7
|
+
const MAXIMUM_ACTIVE_STREAMS = 2;
|
|
8
|
+
const MAXIMUM_TOTAL_STREAMS = 5;
|
|
8
9
|
class StandardMetadataManager {
|
|
10
|
+
apiClient;
|
|
11
|
+
streamsBaseUrl;
|
|
9
12
|
flushTimeoutId = null;
|
|
10
13
|
hasChanges = false;
|
|
11
14
|
store;
|
|
15
|
+
// Add a Map to track active streams
|
|
16
|
+
activeStreams = new Map();
|
|
17
|
+
runId;
|
|
18
|
+
constructor(apiClient, streamsBaseUrl) {
|
|
19
|
+
this.apiClient = apiClient;
|
|
20
|
+
this.streamsBaseUrl = streamsBaseUrl;
|
|
21
|
+
}
|
|
12
22
|
enterWithMetadata(metadata) {
|
|
13
23
|
this.store = metadata ?? {};
|
|
14
24
|
}
|
|
@@ -19,8 +29,7 @@ class StandardMetadataManager {
|
|
|
19
29
|
return this.store?.[key];
|
|
20
30
|
}
|
|
21
31
|
setKey(key, value) {
|
|
22
|
-
|
|
23
|
-
if (!runId) {
|
|
32
|
+
if (!this.runId) {
|
|
24
33
|
return;
|
|
25
34
|
}
|
|
26
35
|
let nextStore = this.store
|
|
@@ -45,8 +54,7 @@ class StandardMetadataManager {
|
|
|
45
54
|
this.store = nextStore;
|
|
46
55
|
}
|
|
47
56
|
deleteKey(key) {
|
|
48
|
-
|
|
49
|
-
if (!runId) {
|
|
57
|
+
if (!this.runId) {
|
|
50
58
|
return;
|
|
51
59
|
}
|
|
52
60
|
const nextStore = { ...(this.store ?? {}) };
|
|
@@ -56,9 +64,102 @@ class StandardMetadataManager {
|
|
|
56
64
|
}
|
|
57
65
|
this.store = nextStore;
|
|
58
66
|
}
|
|
67
|
+
appendKey(key, value) {
|
|
68
|
+
if (!this.runId) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
let nextStore = this.store
|
|
72
|
+
? structuredClone(this.store)
|
|
73
|
+
: {};
|
|
74
|
+
if (key.startsWith("$.")) {
|
|
75
|
+
const path = new path_1.JSONHeroPath(key);
|
|
76
|
+
const currentValue = path.first(nextStore);
|
|
77
|
+
if (currentValue === undefined) {
|
|
78
|
+
// Initialize as array with single item
|
|
79
|
+
path.set(nextStore, [value]);
|
|
80
|
+
}
|
|
81
|
+
else if (Array.isArray(currentValue)) {
|
|
82
|
+
// Append to existing array
|
|
83
|
+
path.set(nextStore, [...currentValue, value]);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
// Convert to array if not already
|
|
87
|
+
path.set(nextStore, [currentValue, value]);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
const currentValue = nextStore[key];
|
|
92
|
+
if (currentValue === undefined) {
|
|
93
|
+
// Initialize as array with single item
|
|
94
|
+
nextStore[key] = [value];
|
|
95
|
+
}
|
|
96
|
+
else if (Array.isArray(currentValue)) {
|
|
97
|
+
// Append to existing array
|
|
98
|
+
nextStore[key] = [...currentValue, value];
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
// Convert to array if not already
|
|
102
|
+
nextStore[key] = [currentValue, value];
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (!(0, lite_1.dequal)(this.store, nextStore)) {
|
|
106
|
+
this.hasChanges = true;
|
|
107
|
+
}
|
|
108
|
+
this.store = nextStore;
|
|
109
|
+
}
|
|
110
|
+
removeFromKey(key, value) {
|
|
111
|
+
if (!this.runId) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
let nextStore = this.store
|
|
115
|
+
? structuredClone(this.store)
|
|
116
|
+
: {};
|
|
117
|
+
if (key.startsWith("$.")) {
|
|
118
|
+
const path = new path_1.JSONHeroPath(key);
|
|
119
|
+
const currentValue = path.first(nextStore);
|
|
120
|
+
if (Array.isArray(currentValue)) {
|
|
121
|
+
// Remove the value from array using deep equality check
|
|
122
|
+
const newArray = currentValue.filter((item) => !(0, lite_1.dequal)(item, value));
|
|
123
|
+
path.set(nextStore, newArray);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
const currentValue = nextStore[key];
|
|
128
|
+
if (Array.isArray(currentValue)) {
|
|
129
|
+
// Remove the value from array using deep equality check
|
|
130
|
+
nextStore[key] = currentValue.filter((item) => !(0, lite_1.dequal)(item, value));
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
if (!(0, lite_1.dequal)(this.store, nextStore)) {
|
|
134
|
+
this.hasChanges = true;
|
|
135
|
+
}
|
|
136
|
+
this.store = nextStore;
|
|
137
|
+
}
|
|
138
|
+
incrementKey(key, increment = 1) {
|
|
139
|
+
if (!this.runId) {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
let nextStore = this.store ? structuredClone(this.store) : {};
|
|
143
|
+
let currentValue = key.startsWith("$.")
|
|
144
|
+
? new path_1.JSONHeroPath(key).first(nextStore)
|
|
145
|
+
: nextStore[key];
|
|
146
|
+
const newValue = (typeof currentValue === "number" ? currentValue : 0) + increment;
|
|
147
|
+
if (key.startsWith("$.")) {
|
|
148
|
+
new path_1.JSONHeroPath(key).set(nextStore, newValue);
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
nextStore[key] = newValue;
|
|
152
|
+
}
|
|
153
|
+
if (!(0, lite_1.dequal)(this.store, nextStore)) {
|
|
154
|
+
this.hasChanges = true;
|
|
155
|
+
this.store = nextStore;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
decrementKey(key, decrement = 1) {
|
|
159
|
+
this.incrementKey(key, -decrement);
|
|
160
|
+
}
|
|
59
161
|
update(metadata) {
|
|
60
|
-
|
|
61
|
-
if (!runId) {
|
|
162
|
+
if (!this.runId) {
|
|
62
163
|
return;
|
|
63
164
|
}
|
|
64
165
|
if (!(0, lite_1.dequal)(this.store, metadata)) {
|
|
@@ -66,9 +167,71 @@ class StandardMetadataManager {
|
|
|
66
167
|
}
|
|
67
168
|
this.store = metadata;
|
|
68
169
|
}
|
|
170
|
+
async stream(key, value, signal) {
|
|
171
|
+
const $value = value;
|
|
172
|
+
if (!this.runId) {
|
|
173
|
+
return $value;
|
|
174
|
+
}
|
|
175
|
+
// Check to make sure we haven't exceeded the max number of active streams
|
|
176
|
+
if (this.activeStreams.size >= MAXIMUM_ACTIVE_STREAMS) {
|
|
177
|
+
console.warn(`Exceeded the maximum number of active streams (${MAXIMUM_ACTIVE_STREAMS}). The "${key}" stream will be ignored.`);
|
|
178
|
+
return $value;
|
|
179
|
+
}
|
|
180
|
+
// Check to make sure we haven't exceeded the max number of total streams
|
|
181
|
+
const streams = (this.store?.$$streams ?? []);
|
|
182
|
+
if (streams.length >= MAXIMUM_TOTAL_STREAMS) {
|
|
183
|
+
console.warn(`Exceeded the maximum number of total streams (${MAXIMUM_TOTAL_STREAMS}). The "${key}" stream will be ignored.`);
|
|
184
|
+
return $value;
|
|
185
|
+
}
|
|
186
|
+
try {
|
|
187
|
+
// Add the key to the special stream metadata object
|
|
188
|
+
this.appendKey(`$$streams`, key);
|
|
189
|
+
await this.flush();
|
|
190
|
+
const streamInstance = new metadataStream_js_1.MetadataStream({
|
|
191
|
+
key,
|
|
192
|
+
runId: this.runId,
|
|
193
|
+
iterator: $value[Symbol.asyncIterator](),
|
|
194
|
+
baseUrl: this.streamsBaseUrl,
|
|
195
|
+
signal,
|
|
196
|
+
});
|
|
197
|
+
this.activeStreams.set(key, streamInstance);
|
|
198
|
+
// Clean up when stream completes
|
|
199
|
+
streamInstance.wait().finally(() => this.activeStreams.delete(key));
|
|
200
|
+
return streamInstance;
|
|
201
|
+
}
|
|
202
|
+
catch (error) {
|
|
203
|
+
// Clean up metadata key if stream creation fails
|
|
204
|
+
this.removeFromKey(`$$streams`, key);
|
|
205
|
+
throw error;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
hasActiveStreams() {
|
|
209
|
+
return this.activeStreams.size > 0;
|
|
210
|
+
}
|
|
211
|
+
// Waits for all the streams to finish
|
|
212
|
+
async waitForAllStreams(timeout = 60_000) {
|
|
213
|
+
if (this.activeStreams.size === 0) {
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
const promises = Array.from(this.activeStreams.values()).map((stream) => stream.wait());
|
|
217
|
+
try {
|
|
218
|
+
await Promise.race([
|
|
219
|
+
Promise.allSettled(promises),
|
|
220
|
+
new Promise((resolve, _) => setTimeout(() => resolve(), timeout)),
|
|
221
|
+
]);
|
|
222
|
+
}
|
|
223
|
+
catch (error) {
|
|
224
|
+
console.error("Error waiting for streams to finish:", error);
|
|
225
|
+
// If we time out, abort all remaining streams
|
|
226
|
+
for (const [key, promise] of this.activeStreams.entries()) {
|
|
227
|
+
// We can add abort logic here if needed
|
|
228
|
+
this.activeStreams.delete(key);
|
|
229
|
+
}
|
|
230
|
+
throw error;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
69
233
|
async flush(requestOptions) {
|
|
70
|
-
|
|
71
|
-
if (!runId) {
|
|
234
|
+
if (!this.runId) {
|
|
72
235
|
return;
|
|
73
236
|
}
|
|
74
237
|
if (!this.store) {
|
|
@@ -77,10 +240,9 @@ class StandardMetadataManager {
|
|
|
77
240
|
if (!this.hasChanges) {
|
|
78
241
|
return;
|
|
79
242
|
}
|
|
80
|
-
const apiClient = apiClientManager_api_js_1.apiClientManager.clientOrThrow();
|
|
81
243
|
try {
|
|
82
244
|
this.hasChanges = false;
|
|
83
|
-
await apiClient.updateRunMetadata(runId, { metadata: this.store }, requestOptions);
|
|
245
|
+
await this.apiClient.updateRunMetadata(this.runId, { metadata: this.store }, requestOptions);
|
|
84
246
|
}
|
|
85
247
|
catch (error) {
|
|
86
248
|
this.hasChanges = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../src/v3/runMetadata/manager.ts"],"names":[],"mappings":";;;AAAA,yCAA8C;AAC9C,sCAAqC;
|
|
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
|
+
}
|