@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.
Files changed (195) hide show
  1. package/dist/commonjs/schemas/api.d.ts +1340 -1134
  2. package/dist/commonjs/schemas/eventFilter.d.ts +4 -4
  3. package/dist/commonjs/schemas/fetch.d.ts +66 -33
  4. package/dist/commonjs/schemas/notifications.d.ts +24 -16
  5. package/dist/commonjs/schemas/requestFilter.d.ts +52 -4
  6. package/dist/commonjs/schemas/runs.d.ts +29 -13
  7. package/dist/commonjs/schemas/schedules.d.ts +8 -8
  8. package/dist/commonjs/schemas/statuses.d.ts +9 -8
  9. package/dist/commonjs/schemas/tasks.d.ts +32 -31
  10. package/dist/commonjs/schemas/triggers.d.ts +36 -36
  11. package/dist/commonjs/v3/apiClient/index.d.ts +179 -155
  12. package/dist/commonjs/v3/apiClient/index.js +48 -15
  13. package/dist/commonjs/v3/apiClient/index.js.map +1 -1
  14. package/dist/commonjs/v3/apiClient/runStream.d.ts +54 -4
  15. package/dist/commonjs/v3/apiClient/runStream.js +129 -13
  16. package/dist/commonjs/v3/apiClient/runStream.js.map +1 -1
  17. package/dist/commonjs/v3/apiClient/stream.js +24 -10
  18. package/dist/commonjs/v3/apiClient/stream.js.map +1 -1
  19. package/dist/commonjs/v3/apiClient/types.d.ts +1 -0
  20. package/dist/commonjs/v3/apiClientManager/index.d.ts +1 -1
  21. package/dist/commonjs/v3/build/extensions.d.ts +1 -0
  22. package/dist/commonjs/v3/idempotencyKeys.d.ts +41 -0
  23. package/dist/commonjs/v3/idempotencyKeys.js +83 -0
  24. package/dist/commonjs/v3/idempotencyKeys.js.map +1 -0
  25. package/dist/commonjs/v3/index.d.ts +2 -0
  26. package/dist/commonjs/v3/index.js +2 -0
  27. package/dist/commonjs/v3/index.js.map +1 -1
  28. package/dist/commonjs/v3/jwt.d.ts +10 -1
  29. package/dist/commonjs/v3/jwt.js +17 -4
  30. package/dist/commonjs/v3/jwt.js.map +1 -1
  31. package/dist/commonjs/v3/runMetadata/index.d.ts +5 -0
  32. package/dist/commonjs/v3/runMetadata/index.js +15 -0
  33. package/dist/commonjs/v3/runMetadata/index.js.map +1 -1
  34. package/dist/commonjs/v3/runMetadata/manager.d.ts +13 -0
  35. package/dist/commonjs/v3/runMetadata/manager.js +174 -12
  36. package/dist/commonjs/v3/runMetadata/manager.js.map +1 -1
  37. package/dist/commonjs/v3/runMetadata/metadataStream.d.ts +21 -0
  38. package/dist/commonjs/v3/runMetadata/metadataStream.js +71 -0
  39. package/dist/commonjs/v3/runMetadata/metadataStream.js.map +1 -0
  40. package/dist/commonjs/v3/runMetadata/noopManager.d.ts +5 -0
  41. package/dist/commonjs/v3/runMetadata/noopManager.js +15 -0
  42. package/dist/commonjs/v3/runMetadata/noopManager.js.map +1 -1
  43. package/dist/commonjs/v3/runMetadata/types.d.ts +5 -0
  44. package/dist/commonjs/v3/runtime/devRuntimeManager.js.map +1 -1
  45. package/dist/commonjs/v3/schemas/api.d.ts +988 -1662
  46. package/dist/commonjs/v3/schemas/api.js +51 -2
  47. package/dist/commonjs/v3/schemas/api.js.map +1 -1
  48. package/dist/commonjs/v3/schemas/build.d.ts +284 -1016
  49. package/dist/commonjs/v3/schemas/common.d.ts +145 -123
  50. package/dist/commonjs/v3/schemas/common.js +4 -0
  51. package/dist/commonjs/v3/schemas/common.js.map +1 -1
  52. package/dist/commonjs/v3/schemas/eventFilter.d.ts +2 -2
  53. package/dist/commonjs/v3/schemas/fetch.d.ts +53 -41
  54. package/dist/commonjs/v3/schemas/messages.d.ts +2707 -4154
  55. package/dist/commonjs/v3/schemas/openTelemetry.d.ts +22 -22
  56. package/dist/commonjs/v3/schemas/resources.d.ts +90 -630
  57. package/dist/commonjs/v3/schemas/resources.js +1 -0
  58. package/dist/commonjs/v3/schemas/resources.js.map +1 -1
  59. package/dist/commonjs/v3/schemas/schemas.d.ts +406 -1074
  60. package/dist/commonjs/v3/schemas/schemas.js +1 -2
  61. package/dist/commonjs/v3/schemas/schemas.js.map +1 -1
  62. package/dist/commonjs/v3/schemas/style.d.ts +2 -2
  63. package/dist/commonjs/v3/types/index.d.ts +1 -0
  64. package/dist/commonjs/v3/types/index.js +1 -0
  65. package/dist/commonjs/v3/types/index.js.map +1 -1
  66. package/dist/commonjs/v3/types/tasks.d.ts +113 -23
  67. package/dist/commonjs/v3/types/tasks.js.map +1 -1
  68. package/dist/commonjs/v3/types/tools.d.ts +6 -0
  69. package/dist/commonjs/v3/types/tools.js +22 -0
  70. package/dist/commonjs/v3/types/tools.js.map +1 -0
  71. package/dist/commonjs/v3/utils/getEnv.d.ts +1 -1
  72. package/dist/commonjs/v3/utils/getEnv.js +3 -3
  73. package/dist/commonjs/v3/utils/getEnv.js.map +1 -1
  74. package/dist/commonjs/v3/utils/globals.d.ts +2 -0
  75. package/dist/commonjs/v3/utils/globals.js.map +1 -1
  76. package/dist/commonjs/v3/utils/ioSerialization.d.ts +8 -3
  77. package/dist/commonjs/v3/utils/ioSerialization.js +43 -36
  78. package/dist/commonjs/v3/utils/ioSerialization.js.map +1 -1
  79. package/dist/commonjs/v3/wait-until-api.d.ts +2 -0
  80. package/dist/commonjs/v3/wait-until-api.js +8 -0
  81. package/dist/commonjs/v3/wait-until-api.js.map +1 -0
  82. package/dist/commonjs/v3/waitUntil/index.d.ts +11 -0
  83. package/dist/commonjs/v3/waitUntil/index.js +44 -0
  84. package/dist/commonjs/v3/waitUntil/index.js.map +1 -0
  85. package/dist/commonjs/v3/waitUntil/manager.d.ts +8 -0
  86. package/dist/commonjs/v3/waitUntil/manager.js +28 -0
  87. package/dist/commonjs/v3/waitUntil/manager.js.map +1 -0
  88. package/dist/commonjs/v3/waitUntil/types.d.ts +9 -0
  89. package/dist/commonjs/v3/waitUntil/types.js +3 -0
  90. package/dist/commonjs/v3/waitUntil/types.js.map +1 -0
  91. package/dist/commonjs/v3/workers/index.d.ts +1 -0
  92. package/dist/commonjs/v3/workers/index.js +3 -1
  93. package/dist/commonjs/v3/workers/index.js.map +1 -1
  94. package/dist/commonjs/v3/workers/taskExecutor.js +13 -0
  95. package/dist/commonjs/v3/workers/taskExecutor.js.map +1 -1
  96. package/dist/commonjs/v3/zodMessageHandler.d.ts +1 -1
  97. package/dist/commonjs/version.js +1 -1
  98. package/dist/esm/schemas/api.d.ts +1340 -1134
  99. package/dist/esm/schemas/eventFilter.d.ts +4 -4
  100. package/dist/esm/schemas/fetch.d.ts +66 -33
  101. package/dist/esm/schemas/notifications.d.ts +24 -16
  102. package/dist/esm/schemas/requestFilter.d.ts +52 -4
  103. package/dist/esm/schemas/runs.d.ts +29 -13
  104. package/dist/esm/schemas/schedules.d.ts +8 -8
  105. package/dist/esm/schemas/statuses.d.ts +9 -8
  106. package/dist/esm/schemas/tasks.d.ts +32 -31
  107. package/dist/esm/schemas/triggers.d.ts +36 -36
  108. package/dist/esm/v3/apiClient/index.d.ts +179 -155
  109. package/dist/esm/v3/apiClient/index.js +49 -16
  110. package/dist/esm/v3/apiClient/index.js.map +1 -1
  111. package/dist/esm/v3/apiClient/runStream.d.ts +54 -4
  112. package/dist/esm/v3/apiClient/runStream.js +126 -12
  113. package/dist/esm/v3/apiClient/runStream.js.map +1 -1
  114. package/dist/esm/v3/apiClient/stream.js +24 -10
  115. package/dist/esm/v3/apiClient/stream.js.map +1 -1
  116. package/dist/esm/v3/apiClient/types.d.ts +1 -0
  117. package/dist/esm/v3/apiClientManager/index.d.ts +1 -1
  118. package/dist/esm/v3/build/extensions.d.ts +1 -0
  119. package/dist/esm/v3/idempotencyKeys.d.ts +41 -0
  120. package/dist/esm/v3/idempotencyKeys.js +78 -0
  121. package/dist/esm/v3/idempotencyKeys.js.map +1 -0
  122. package/dist/esm/v3/index.d.ts +2 -0
  123. package/dist/esm/v3/index.js +2 -0
  124. package/dist/esm/v3/index.js.map +1 -1
  125. package/dist/esm/v3/jwt.d.ts +10 -1
  126. package/dist/esm/v3/jwt.js +17 -4
  127. package/dist/esm/v3/jwt.js.map +1 -1
  128. package/dist/esm/v3/runMetadata/index.d.ts +5 -0
  129. package/dist/esm/v3/runMetadata/index.js +15 -0
  130. package/dist/esm/v3/runMetadata/index.js.map +1 -1
  131. package/dist/esm/v3/runMetadata/manager.d.ts +13 -0
  132. package/dist/esm/v3/runMetadata/manager.js +174 -12
  133. package/dist/esm/v3/runMetadata/manager.js.map +1 -1
  134. package/dist/esm/v3/runMetadata/metadataStream.d.ts +21 -0
  135. package/dist/esm/v3/runMetadata/metadataStream.js +67 -0
  136. package/dist/esm/v3/runMetadata/metadataStream.js.map +1 -0
  137. package/dist/esm/v3/runMetadata/noopManager.d.ts +5 -0
  138. package/dist/esm/v3/runMetadata/noopManager.js +15 -0
  139. package/dist/esm/v3/runMetadata/noopManager.js.map +1 -1
  140. package/dist/esm/v3/runMetadata/types.d.ts +5 -0
  141. package/dist/esm/v3/runtime/devRuntimeManager.js.map +1 -1
  142. package/dist/esm/v3/schemas/api.d.ts +988 -1662
  143. package/dist/esm/v3/schemas/api.js +49 -0
  144. package/dist/esm/v3/schemas/api.js.map +1 -1
  145. package/dist/esm/v3/schemas/build.d.ts +284 -1016
  146. package/dist/esm/v3/schemas/common.d.ts +145 -123
  147. package/dist/esm/v3/schemas/common.js +4 -0
  148. package/dist/esm/v3/schemas/common.js.map +1 -1
  149. package/dist/esm/v3/schemas/eventFilter.d.ts +2 -2
  150. package/dist/esm/v3/schemas/fetch.d.ts +53 -41
  151. package/dist/esm/v3/schemas/messages.d.ts +2707 -4154
  152. package/dist/esm/v3/schemas/openTelemetry.d.ts +22 -22
  153. package/dist/esm/v3/schemas/resources.d.ts +90 -630
  154. package/dist/esm/v3/schemas/resources.js +1 -0
  155. package/dist/esm/v3/schemas/resources.js.map +1 -1
  156. package/dist/esm/v3/schemas/schemas.d.ts +406 -1074
  157. package/dist/esm/v3/schemas/schemas.js +1 -2
  158. package/dist/esm/v3/schemas/schemas.js.map +1 -1
  159. package/dist/esm/v3/schemas/style.d.ts +2 -2
  160. package/dist/esm/v3/types/index.d.ts +1 -0
  161. package/dist/esm/v3/types/index.js +1 -0
  162. package/dist/esm/v3/types/index.js.map +1 -1
  163. package/dist/esm/v3/types/tasks.d.ts +113 -23
  164. package/dist/esm/v3/types/tasks.js.map +1 -1
  165. package/dist/esm/v3/types/tools.d.ts +6 -0
  166. package/dist/esm/v3/types/tools.js +19 -0
  167. package/dist/esm/v3/types/tools.js.map +1 -0
  168. package/dist/esm/v3/utils/getEnv.d.ts +1 -1
  169. package/dist/esm/v3/utils/getEnv.js +3 -3
  170. package/dist/esm/v3/utils/getEnv.js.map +1 -1
  171. package/dist/esm/v3/utils/globals.d.ts +2 -0
  172. package/dist/esm/v3/utils/globals.js.map +1 -1
  173. package/dist/esm/v3/utils/ioSerialization.d.ts +8 -3
  174. package/dist/esm/v3/utils/ioSerialization.js +43 -36
  175. package/dist/esm/v3/utils/ioSerialization.js.map +1 -1
  176. package/dist/esm/v3/wait-until-api.d.ts +2 -0
  177. package/dist/esm/v3/wait-until-api.js +5 -0
  178. package/dist/esm/v3/wait-until-api.js.map +1 -0
  179. package/dist/esm/v3/waitUntil/index.d.ts +11 -0
  180. package/dist/esm/v3/waitUntil/index.js +40 -0
  181. package/dist/esm/v3/waitUntil/index.js.map +1 -0
  182. package/dist/esm/v3/waitUntil/manager.d.ts +8 -0
  183. package/dist/esm/v3/waitUntil/manager.js +24 -0
  184. package/dist/esm/v3/waitUntil/manager.js.map +1 -0
  185. package/dist/esm/v3/waitUntil/types.d.ts +9 -0
  186. package/dist/esm/v3/waitUntil/types.js +2 -0
  187. package/dist/esm/v3/waitUntil/types.js.map +1 -0
  188. package/dist/esm/v3/workers/index.d.ts +1 -0
  189. package/dist/esm/v3/workers/index.js +1 -0
  190. package/dist/esm/v3/workers/index.js.map +1 -1
  191. package/dist/esm/v3/workers/taskExecutor.js +14 -1
  192. package/dist/esm/v3/workers/taskExecutor.js.map +1 -1
  193. package/dist/esm/v3/zodMessageHandler.d.ts +1 -1
  194. package/dist/esm/version.js +1 -1
  195. 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 declare function validateJWT(token: string, apiKey: string): Promise<import("jose").JWTPayload | undefined>;
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>;
@@ -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 (e) {
31
- return;
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":";;;AAUA,kCAYC;AAED,kCAeC;AAjCY,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;AAEM,KAAK,UAAU,WAAW,CAAC,KAAa,EAAE,MAAc;IAC7D,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;IAE3C,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,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO;IACT,CAAC;AACH,CAAC"}
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;AAhDD,wCAgDC"}
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 apiClientManager_api_js_1 = require("../apiClientManager-api.js");
7
- const task_context_api_js_1 = require("../task-context-api.js");
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
- const runId = task_context_api_js_1.taskContext.ctx?.run.id;
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
- const runId = task_context_api_js_1.taskContext.ctx?.run.id;
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
- const runId = task_context_api_js_1.taskContext.ctx?.run.id;
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
- const runId = task_context_api_js_1.taskContext.ctx?.run.id;
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":"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"}
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
+ }