@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,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"}
@@ -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";
@@ -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";
@@ -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"}
@@ -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>;
@@ -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 (e) {
26
- return;
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
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../../src/v3/jwt.ts"],"names":[],"mappings":"AAMA,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;AAED,MAAM,CAAC,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,UAAU;YAClB,QAAQ,EAAE,YAAY;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":"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 { apiClientManager } from "../apiClientManager-api.js";
4
- import { taskContext } from "../task-context-api.js";
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
- const runId = taskContext.ctx?.run.id;
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
- const runId = taskContext.ctx?.run.id;
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
- const runId = taskContext.ctx?.run.id;
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
- const runId = taskContext.ctx?.run.id;
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;AAErC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAIrD,MAAM,OAAO,uBAAuB;IAC1B,cAAc,GAA0B,IAAI,CAAC;IAC7C,UAAU,GAAY,KAAK,CAAC;IAC5B,KAAK,CAA+C;IAErD,iBAAiB,CAAC,QAA0C;QACjE,IAAI,CAAC,KAAK,GAAG,QAAQ,IAAI,EAAE,CAAC;IAC9B,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEM,MAAM,CAAC,GAAW;QACvB,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,GAAW,EAAE,KAAuB;QAChD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;QAEtC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,IAAI,SAAS,GAAiD,IAAI,CAAC,KAAK;YACtE,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;YAC7B,CAAC,CAAC,SAAS,CAAC;QAEd,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,SAAS,GAAG;gBACV,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;gBACpB,CAAC,GAAG,CAAC,EAAE,KAAK;aACb,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IACzB,CAAC;IAEM,SAAS,CAAC,GAAW;QAC1B,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;QAEtC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QAC5C,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;QAEtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IACzB,CAAC;IAEM,MAAM,CAAC,QAA0C;QACtD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;QAEtC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,cAAkC;QACnD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;QAEtC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,aAAa,EAAE,CAAC;QAEnD,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,MAAM,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,cAAc,CAAC,CAAC;QACrF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEM,kBAAkB,CAAC,aAAqB,IAAI;QACjD,MAAM,aAAa,GAAG,KAAK,EAAE,UAAkB,EAAE,EAAE;YACjD,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;gBACjD,MAAM,KAAK,CAAC;YACd,CAAC;oBAAS,CAAC;gBACT,YAAY,EAAE,CAAC;YACjB,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC;QAChF,CAAC,CAAC;QAEF,YAAY,EAAE,CAAC;IACjB,CAAC;IAED,iBAAiB;QACf,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;CACF"}
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
+ }