@trigger.dev/core 3.0.0-beta.3 → 3.0.0-beta.31

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 (65) hide show
  1. package/dist/catalog-KbyTBoap.d.ts +2496 -0
  2. package/dist/catalog-ck7x04PV.d.mts +2496 -0
  3. package/dist/manager-WNMVbgHf.d.mts +1158 -0
  4. package/dist/manager-WNMVbgHf.d.ts +1158 -0
  5. package/dist/messages-vq7Bk4Ap.d.mts +12838 -0
  6. package/dist/messages-vq7Bk4Ap.d.ts +12838 -0
  7. package/dist/v3/dev/index.d.mts +28 -0
  8. package/dist/v3/dev/index.d.ts +28 -0
  9. package/dist/v3/dev/index.js +93 -0
  10. package/dist/v3/dev/index.js.map +1 -0
  11. package/dist/v3/dev/index.mjs +91 -0
  12. package/dist/v3/dev/index.mjs.map +1 -0
  13. package/dist/v3/index.d.mts +850 -16919
  14. package/dist/v3/index.d.ts +850 -16919
  15. package/dist/v3/index.js +1676 -2763
  16. package/dist/v3/index.js.map +1 -1
  17. package/dist/v3/index.mjs +1681 -2767
  18. package/dist/v3/index.mjs.map +1 -1
  19. package/dist/v3/otel/index.js +83 -45
  20. package/dist/v3/otel/index.js.map +1 -1
  21. package/dist/v3/otel/index.mjs +83 -45
  22. package/dist/v3/otel/index.mjs.map +1 -1
  23. package/dist/v3/prod/index.d.mts +45 -0
  24. package/dist/v3/prod/index.d.ts +45 -0
  25. package/dist/v3/prod/index.js +229 -0
  26. package/dist/v3/prod/index.js.map +1 -0
  27. package/dist/v3/prod/index.mjs +227 -0
  28. package/dist/v3/prod/index.mjs.map +1 -0
  29. package/dist/v3/utils/structuredLogger.d.mts +31 -0
  30. package/dist/v3/utils/structuredLogger.d.ts +31 -0
  31. package/dist/v3/utils/structuredLogger.js +88 -0
  32. package/dist/v3/utils/structuredLogger.js.map +1 -0
  33. package/dist/v3/utils/structuredLogger.mjs +86 -0
  34. package/dist/v3/utils/structuredLogger.mjs.map +1 -0
  35. package/dist/v3/workers/index.d.mts +95 -0
  36. package/dist/v3/workers/index.d.ts +95 -0
  37. package/dist/v3/workers/index.js +2631 -0
  38. package/dist/v3/workers/index.js.map +1 -0
  39. package/dist/v3/workers/index.mjs +2615 -0
  40. package/dist/v3/workers/index.mjs.map +1 -0
  41. package/dist/v3/zodIpc.d.mts +32 -0
  42. package/dist/v3/zodIpc.d.ts +32 -0
  43. package/dist/v3/zodIpc.js +268 -0
  44. package/dist/v3/zodIpc.js.map +1 -0
  45. package/dist/v3/zodIpc.mjs +266 -0
  46. package/dist/v3/zodIpc.mjs.map +1 -0
  47. package/dist/v3/zodMessageHandler.d.mts +69 -0
  48. package/dist/v3/zodMessageHandler.d.ts +69 -0
  49. package/dist/v3/zodMessageHandler.js +168 -0
  50. package/dist/v3/zodMessageHandler.js.map +1 -0
  51. package/dist/v3/zodMessageHandler.mjs +163 -0
  52. package/dist/v3/zodMessageHandler.mjs.map +1 -0
  53. package/dist/v3/zodNamespace.d.mts +3663 -0
  54. package/dist/v3/zodNamespace.d.ts +3663 -0
  55. package/dist/v3/zodNamespace.js +356 -0
  56. package/dist/v3/zodNamespace.js.map +1 -0
  57. package/dist/v3/zodNamespace.mjs +354 -0
  58. package/dist/v3/zodNamespace.mjs.map +1 -0
  59. package/dist/v3/zodSocket.d.mts +88 -0
  60. package/dist/v3/zodSocket.d.ts +88 -0
  61. package/dist/v3/zodSocket.js +309 -0
  62. package/dist/v3/zodSocket.js.map +1 -0
  63. package/dist/v3/zodSocket.mjs +305 -0
  64. package/dist/v3/zodSocket.mjs.map +1 -0
  65. package/package.json +72 -7
@@ -0,0 +1,28 @@
1
+ import { R as RuntimeManager, T as TaskRunExecutionResult, B as BatchTaskRunExecutionResult, b as TaskRunContext, p as TaskRunExecution } from '../../manager-WNMVbgHf.mjs';
2
+ import 'zod';
3
+
4
+ declare class DevRuntimeManager implements RuntimeManager {
5
+ _taskWaits: Map<string, {
6
+ resolve: (value: TaskRunExecutionResult) => void;
7
+ }>;
8
+ _batchWaits: Map<string, {
9
+ resolve: (value: BatchTaskRunExecutionResult) => void;
10
+ reject: (err?: any) => void;
11
+ }>;
12
+ _pendingCompletionNotifications: Map<string, TaskRunExecutionResult>;
13
+ disable(): void;
14
+ waitForDuration(ms: number): Promise<void>;
15
+ waitUntil(date: Date): Promise<void>;
16
+ waitForTask(params: {
17
+ id: string;
18
+ ctx: TaskRunContext;
19
+ }): Promise<TaskRunExecutionResult>;
20
+ waitForBatch(params: {
21
+ id: string;
22
+ runs: string[];
23
+ ctx: TaskRunContext;
24
+ }): Promise<BatchTaskRunExecutionResult>;
25
+ resumeTask(completion: TaskRunExecutionResult, execution: TaskRunExecution): void;
26
+ }
27
+
28
+ export { DevRuntimeManager };
@@ -0,0 +1,28 @@
1
+ import { R as RuntimeManager, T as TaskRunExecutionResult, B as BatchTaskRunExecutionResult, b as TaskRunContext, p as TaskRunExecution } from '../../manager-WNMVbgHf.js';
2
+ import 'zod';
3
+
4
+ declare class DevRuntimeManager implements RuntimeManager {
5
+ _taskWaits: Map<string, {
6
+ resolve: (value: TaskRunExecutionResult) => void;
7
+ }>;
8
+ _batchWaits: Map<string, {
9
+ resolve: (value: BatchTaskRunExecutionResult) => void;
10
+ reject: (err?: any) => void;
11
+ }>;
12
+ _pendingCompletionNotifications: Map<string, TaskRunExecutionResult>;
13
+ disable(): void;
14
+ waitForDuration(ms: number): Promise<void>;
15
+ waitUntil(date: Date): Promise<void>;
16
+ waitForTask(params: {
17
+ id: string;
18
+ ctx: TaskRunContext;
19
+ }): Promise<TaskRunExecutionResult>;
20
+ waitForBatch(params: {
21
+ id: string;
22
+ runs: string[];
23
+ ctx: TaskRunContext;
24
+ }): Promise<BatchTaskRunExecutionResult>;
25
+ resumeTask(completion: TaskRunExecutionResult, execution: TaskRunExecution): void;
26
+ }
27
+
28
+ export { DevRuntimeManager };
@@ -0,0 +1,93 @@
1
+ 'use strict';
2
+
3
+ var promises = require('timers/promises');
4
+
5
+ var __defProp = Object.defineProperty;
6
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
+ var __publicField = (obj, key, value) => {
9
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
10
+ return value;
11
+ };
12
+ async function unboundedTimeout(delay = 0, value, options) {
13
+ const maxDelay = 2147483647;
14
+ const fullTimeouts = Math.floor(delay / maxDelay);
15
+ const remainingDelay = delay % maxDelay;
16
+ let lastTimeoutResult = await promises.setTimeout(remainingDelay, value, options);
17
+ for (let i = 0; i < fullTimeouts; i++) {
18
+ lastTimeoutResult = await promises.setTimeout(maxDelay, value, options);
19
+ }
20
+ return lastTimeoutResult;
21
+ }
22
+ __name(unboundedTimeout, "unboundedTimeout");
23
+
24
+ // src/v3/runtime/devRuntimeManager.ts
25
+ var _DevRuntimeManager = class _DevRuntimeManager {
26
+ constructor() {
27
+ __publicField(this, "_taskWaits", /* @__PURE__ */ new Map());
28
+ __publicField(this, "_batchWaits", /* @__PURE__ */ new Map());
29
+ __publicField(this, "_pendingCompletionNotifications", /* @__PURE__ */ new Map());
30
+ }
31
+ disable() {
32
+ }
33
+ async waitForDuration(ms) {
34
+ await unboundedTimeout(ms);
35
+ }
36
+ async waitUntil(date) {
37
+ return this.waitForDuration(date.getTime() - Date.now());
38
+ }
39
+ async waitForTask(params) {
40
+ const pendingCompletion = this._pendingCompletionNotifications.get(params.id);
41
+ if (pendingCompletion) {
42
+ this._pendingCompletionNotifications.delete(params.id);
43
+ return pendingCompletion;
44
+ }
45
+ const promise = new Promise((resolve) => {
46
+ this._taskWaits.set(params.id, {
47
+ resolve
48
+ });
49
+ });
50
+ return await promise;
51
+ }
52
+ async waitForBatch(params) {
53
+ if (!params.runs.length) {
54
+ return Promise.resolve({
55
+ id: params.id,
56
+ items: []
57
+ });
58
+ }
59
+ const promise = Promise.all(params.runs.map((runId) => {
60
+ return new Promise((resolve, reject) => {
61
+ const pendingCompletion = this._pendingCompletionNotifications.get(runId);
62
+ if (pendingCompletion) {
63
+ this._pendingCompletionNotifications.delete(runId);
64
+ resolve(pendingCompletion);
65
+ return;
66
+ }
67
+ this._taskWaits.set(runId, {
68
+ resolve
69
+ });
70
+ });
71
+ }));
72
+ const results = await promise;
73
+ return {
74
+ id: params.id,
75
+ items: results
76
+ };
77
+ }
78
+ resumeTask(completion, execution) {
79
+ const wait = this._taskWaits.get(execution.run.id);
80
+ if (!wait) {
81
+ this._pendingCompletionNotifications.set(execution.run.id, completion);
82
+ return;
83
+ }
84
+ wait.resolve(completion);
85
+ this._taskWaits.delete(execution.run.id);
86
+ }
87
+ };
88
+ __name(_DevRuntimeManager, "DevRuntimeManager");
89
+ var DevRuntimeManager = _DevRuntimeManager;
90
+
91
+ exports.DevRuntimeManager = DevRuntimeManager;
92
+ //# sourceMappingURL=out.js.map
93
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/v3/utils/timers.ts","../../../src/v3/runtime/devRuntimeManager.ts"],"names":["setInterval","setTimeout","unboundedTimeout","delay","value","options","maxDelay","fullTimeouts","Math","floor","remainingDelay","lastTimeoutResult","i","DevRuntimeManager","_taskWaits","Map","_batchWaits","_pendingCompletionNotifications","disable","waitForDuration","ms","waitUntil","date","getTime","Date","now","waitForTask","params","pendingCompletion","get","id","delete","promise","Promise","resolve","set","waitForBatch","runs","length","items","all","map","runId","reject","results","resumeTask","completion","execution","wait","run"],"mappings":";;;;;;;;;AACA,SAASA,aAAaC,kBAAkB;AAExC,eAAsBC,iBACpBC,QAAgB,GAChBC,OACAC,SACY;AACZ,QAAMC,WAAW;AAEjB,QAAMC,eAAeC,KAAKC,MAAMN,QAAQG,QAAAA;AACxC,QAAMI,iBAAiBP,QAAQG;AAE/B,MAAIK,oBAAoB,MAAMV,WAAWS,gBAAgBN,OAAOC,OAAAA;AAEhE,WAASO,IAAI,GAAGA,IAAIL,cAAcK,KAAK;AACrCD,wBAAoB,MAAMV,WAAWK,UAAUF,OAAOC,OAAAA;EACxD;AAEA,SAAOM;AACT;AAjBsBT;;;ACMf,IAAMW,qBAAN,MAAMA,mBAAAA;EAAN;AACLC,sCAAgF,oBAAIC,IAAAA;AAEpFC,uCAGI,oBAAID,IAAAA;AAERE,2DAAuE,oBAAIF,IAAAA;;EAE3EG,UAAgB;EAEhB;EAEA,MAAMC,gBAAgBC,IAA2B;AAC/C,UAAMlB,iBAAiBkB,EAAAA;EACzB;EAEA,MAAMC,UAAUC,MAA2B;AACzC,WAAO,KAAKH,gBAAgBG,KAAKC,QAAO,IAAKC,KAAKC,IAAG,CAAA;EACvD;EAEA,MAAMC,YAAYC,QAA8E;AAC9F,UAAMC,oBAAoB,KAAKX,gCAAgCY,IAAIF,OAAOG,EAAE;AAE5E,QAAIF,mBAAmB;AACrB,WAAKX,gCAAgCc,OAAOJ,OAAOG,EAAE;AAErD,aAAOF;IACT;AAEA,UAAMI,UAAU,IAAIC,QAAgC,CAACC,YAAY;AAC/D,WAAKpB,WAAWqB,IAAIR,OAAOG,IAAI;QAAEI;MAAQ,CAAA;IAC3C,CAAA;AAEA,WAAO,MAAMF;EACf;EAEA,MAAMI,aAAaT,QAIsB;AACvC,QAAI,CAACA,OAAOU,KAAKC,QAAQ;AACvB,aAAOL,QAAQC,QAAQ;QAAEJ,IAAIH,OAAOG;QAAIS,OAAO,CAAA;MAAG,CAAA;IACpD;AAEA,UAAMP,UAAUC,QAAQO,IACtBb,OAAOU,KAAKI,IAAI,CAACC,UAAU;AACzB,aAAO,IAAIT,QAAgC,CAACC,SAASS,WAAW;AAC9D,cAAMf,oBAAoB,KAAKX,gCAAgCY,IAAIa,KAAAA;AAEnE,YAAId,mBAAmB;AACrB,eAAKX,gCAAgCc,OAAOW,KAAAA;AAE5CR,kBAAQN,iBAAAA;AAER;QACF;AAEA,aAAKd,WAAWqB,IAAIO,OAAO;UAAER;QAAQ,CAAA;MACvC,CAAA;IACF,CAAA,CAAA;AAGF,UAAMU,UAAU,MAAMZ;AAEtB,WAAO;MACLF,IAAIH,OAAOG;MACXS,OAAOK;IACT;EACF;EAEAC,WAAWC,YAAoCC,WAAmC;AAChF,UAAMC,OAAO,KAAKlC,WAAWe,IAAIkB,UAAUE,IAAInB,EAAE;AAEjD,QAAI,CAACkB,MAAM;AAET,WAAK/B,gCAAgCkB,IAAIY,UAAUE,IAAInB,IAAIgB,UAAAA;AAE3D;IACF;AAEAE,SAAKd,QAAQY,UAAAA;AAEb,SAAKhC,WAAWiB,OAAOgB,UAAUE,IAAInB,EAAE;EACzC;AACF;AAvFajB;AAAN,IAAMA,oBAAN","sourcesContent":["import { TimerOptions } from \"node:timers\";\nimport { setInterval, setTimeout } from \"node:timers/promises\";\n\nexport async function unboundedTimeout<T = void>(\n delay: number = 0,\n value?: T,\n options?: TimerOptions\n): Promise<T> {\n const maxDelay = 2147483647; // Highest value that will fit in a 32-bit signed integer\n\n const fullTimeouts = Math.floor(delay / maxDelay);\n const remainingDelay = delay % maxDelay;\n\n let lastTimeoutResult = await setTimeout(remainingDelay, value, options);\n\n for (let i = 0; i < fullTimeouts; i++) {\n lastTimeoutResult = await setTimeout(maxDelay, value, options);\n }\n\n return lastTimeoutResult;\n}\n\nexport async function checkpointSafeTimeout(delay: number = 0): Promise<void> {\n const scanIntervalMs = 1000;\n\n // Every scanIntervalMs, check if delay has elapsed\n for await (const start of setInterval(scanIntervalMs, Date.now())) {\n if (Date.now() - start > delay) {\n break;\n }\n }\n}\n","import {\n BatchTaskRunExecutionResult,\n TaskRunContext,\n TaskRunExecution,\n TaskRunExecutionResult,\n} from \"../schemas\";\nimport { RuntimeManager } from \"./manager\";\nimport { unboundedTimeout } from \"../utils/timers\";\n\nexport class DevRuntimeManager implements RuntimeManager {\n _taskWaits: Map<string, { resolve: (value: TaskRunExecutionResult) => void }> = new Map();\n\n _batchWaits: Map<\n string,\n { resolve: (value: BatchTaskRunExecutionResult) => void; reject: (err?: any) => void }\n > = new Map();\n\n _pendingCompletionNotifications: Map<string, TaskRunExecutionResult> = new Map();\n\n disable(): void {\n // do nothing\n }\n\n async waitForDuration(ms: number): Promise<void> {\n await unboundedTimeout(ms);\n }\n\n async waitUntil(date: Date): Promise<void> {\n return this.waitForDuration(date.getTime() - Date.now());\n }\n\n async waitForTask(params: { id: string; ctx: TaskRunContext }): Promise<TaskRunExecutionResult> {\n const pendingCompletion = this._pendingCompletionNotifications.get(params.id);\n\n if (pendingCompletion) {\n this._pendingCompletionNotifications.delete(params.id);\n\n return pendingCompletion;\n }\n\n const promise = new Promise<TaskRunExecutionResult>((resolve) => {\n this._taskWaits.set(params.id, { resolve });\n });\n\n return await promise;\n }\n\n async waitForBatch(params: {\n id: string;\n runs: string[];\n ctx: TaskRunContext;\n }): Promise<BatchTaskRunExecutionResult> {\n if (!params.runs.length) {\n return Promise.resolve({ id: params.id, items: [] });\n }\n\n const promise = Promise.all(\n params.runs.map((runId) => {\n return new Promise<TaskRunExecutionResult>((resolve, reject) => {\n const pendingCompletion = this._pendingCompletionNotifications.get(runId);\n\n if (pendingCompletion) {\n this._pendingCompletionNotifications.delete(runId);\n\n resolve(pendingCompletion);\n\n return;\n }\n\n this._taskWaits.set(runId, { resolve });\n });\n })\n );\n\n const results = await promise;\n\n return {\n id: params.id,\n items: results,\n };\n }\n\n resumeTask(completion: TaskRunExecutionResult, execution: TaskRunExecution): void {\n const wait = this._taskWaits.get(execution.run.id);\n\n if (!wait) {\n // We need to store the completion in case the task is awaited later\n this._pendingCompletionNotifications.set(execution.run.id, completion);\n\n return;\n }\n\n wait.resolve(completion);\n\n this._taskWaits.delete(execution.run.id);\n }\n}\n"]}
@@ -0,0 +1,91 @@
1
+ import { setTimeout } from 'node:timers/promises';
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
+ var __publicField = (obj, key, value) => {
7
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
8
+ return value;
9
+ };
10
+ async function unboundedTimeout(delay = 0, value, options) {
11
+ const maxDelay = 2147483647;
12
+ const fullTimeouts = Math.floor(delay / maxDelay);
13
+ const remainingDelay = delay % maxDelay;
14
+ let lastTimeoutResult = await setTimeout(remainingDelay, value, options);
15
+ for (let i = 0; i < fullTimeouts; i++) {
16
+ lastTimeoutResult = await setTimeout(maxDelay, value, options);
17
+ }
18
+ return lastTimeoutResult;
19
+ }
20
+ __name(unboundedTimeout, "unboundedTimeout");
21
+
22
+ // src/v3/runtime/devRuntimeManager.ts
23
+ var _DevRuntimeManager = class _DevRuntimeManager {
24
+ constructor() {
25
+ __publicField(this, "_taskWaits", /* @__PURE__ */ new Map());
26
+ __publicField(this, "_batchWaits", /* @__PURE__ */ new Map());
27
+ __publicField(this, "_pendingCompletionNotifications", /* @__PURE__ */ new Map());
28
+ }
29
+ disable() {
30
+ }
31
+ async waitForDuration(ms) {
32
+ await unboundedTimeout(ms);
33
+ }
34
+ async waitUntil(date) {
35
+ return this.waitForDuration(date.getTime() - Date.now());
36
+ }
37
+ async waitForTask(params) {
38
+ const pendingCompletion = this._pendingCompletionNotifications.get(params.id);
39
+ if (pendingCompletion) {
40
+ this._pendingCompletionNotifications.delete(params.id);
41
+ return pendingCompletion;
42
+ }
43
+ const promise = new Promise((resolve) => {
44
+ this._taskWaits.set(params.id, {
45
+ resolve
46
+ });
47
+ });
48
+ return await promise;
49
+ }
50
+ async waitForBatch(params) {
51
+ if (!params.runs.length) {
52
+ return Promise.resolve({
53
+ id: params.id,
54
+ items: []
55
+ });
56
+ }
57
+ const promise = Promise.all(params.runs.map((runId) => {
58
+ return new Promise((resolve, reject) => {
59
+ const pendingCompletion = this._pendingCompletionNotifications.get(runId);
60
+ if (pendingCompletion) {
61
+ this._pendingCompletionNotifications.delete(runId);
62
+ resolve(pendingCompletion);
63
+ return;
64
+ }
65
+ this._taskWaits.set(runId, {
66
+ resolve
67
+ });
68
+ });
69
+ }));
70
+ const results = await promise;
71
+ return {
72
+ id: params.id,
73
+ items: results
74
+ };
75
+ }
76
+ resumeTask(completion, execution) {
77
+ const wait = this._taskWaits.get(execution.run.id);
78
+ if (!wait) {
79
+ this._pendingCompletionNotifications.set(execution.run.id, completion);
80
+ return;
81
+ }
82
+ wait.resolve(completion);
83
+ this._taskWaits.delete(execution.run.id);
84
+ }
85
+ };
86
+ __name(_DevRuntimeManager, "DevRuntimeManager");
87
+ var DevRuntimeManager = _DevRuntimeManager;
88
+
89
+ export { DevRuntimeManager };
90
+ //# sourceMappingURL=out.js.map
91
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/v3/utils/timers.ts","../../../src/v3/runtime/devRuntimeManager.ts"],"names":["setInterval","setTimeout","unboundedTimeout","delay","value","options","maxDelay","fullTimeouts","Math","floor","remainingDelay","lastTimeoutResult","i","DevRuntimeManager","_taskWaits","Map","_batchWaits","_pendingCompletionNotifications","disable","waitForDuration","ms","waitUntil","date","getTime","Date","now","waitForTask","params","pendingCompletion","get","id","delete","promise","Promise","resolve","set","waitForBatch","runs","length","items","all","map","runId","reject","results","resumeTask","completion","execution","wait","run"],"mappings":";;;;;;;;;AACA,SAASA,aAAaC,kBAAkB;AAExC,eAAsBC,iBACpBC,QAAgB,GAChBC,OACAC,SACY;AACZ,QAAMC,WAAW;AAEjB,QAAMC,eAAeC,KAAKC,MAAMN,QAAQG,QAAAA;AACxC,QAAMI,iBAAiBP,QAAQG;AAE/B,MAAIK,oBAAoB,MAAMV,WAAWS,gBAAgBN,OAAOC,OAAAA;AAEhE,WAASO,IAAI,GAAGA,IAAIL,cAAcK,KAAK;AACrCD,wBAAoB,MAAMV,WAAWK,UAAUF,OAAOC,OAAAA;EACxD;AAEA,SAAOM;AACT;AAjBsBT;;;ACMf,IAAMW,qBAAN,MAAMA,mBAAAA;EAAN;AACLC,sCAAgF,oBAAIC,IAAAA;AAEpFC,uCAGI,oBAAID,IAAAA;AAERE,2DAAuE,oBAAIF,IAAAA;;EAE3EG,UAAgB;EAEhB;EAEA,MAAMC,gBAAgBC,IAA2B;AAC/C,UAAMlB,iBAAiBkB,EAAAA;EACzB;EAEA,MAAMC,UAAUC,MAA2B;AACzC,WAAO,KAAKH,gBAAgBG,KAAKC,QAAO,IAAKC,KAAKC,IAAG,CAAA;EACvD;EAEA,MAAMC,YAAYC,QAA8E;AAC9F,UAAMC,oBAAoB,KAAKX,gCAAgCY,IAAIF,OAAOG,EAAE;AAE5E,QAAIF,mBAAmB;AACrB,WAAKX,gCAAgCc,OAAOJ,OAAOG,EAAE;AAErD,aAAOF;IACT;AAEA,UAAMI,UAAU,IAAIC,QAAgC,CAACC,YAAY;AAC/D,WAAKpB,WAAWqB,IAAIR,OAAOG,IAAI;QAAEI;MAAQ,CAAA;IAC3C,CAAA;AAEA,WAAO,MAAMF;EACf;EAEA,MAAMI,aAAaT,QAIsB;AACvC,QAAI,CAACA,OAAOU,KAAKC,QAAQ;AACvB,aAAOL,QAAQC,QAAQ;QAAEJ,IAAIH,OAAOG;QAAIS,OAAO,CAAA;MAAG,CAAA;IACpD;AAEA,UAAMP,UAAUC,QAAQO,IACtBb,OAAOU,KAAKI,IAAI,CAACC,UAAU;AACzB,aAAO,IAAIT,QAAgC,CAACC,SAASS,WAAW;AAC9D,cAAMf,oBAAoB,KAAKX,gCAAgCY,IAAIa,KAAAA;AAEnE,YAAId,mBAAmB;AACrB,eAAKX,gCAAgCc,OAAOW,KAAAA;AAE5CR,kBAAQN,iBAAAA;AAER;QACF;AAEA,aAAKd,WAAWqB,IAAIO,OAAO;UAAER;QAAQ,CAAA;MACvC,CAAA;IACF,CAAA,CAAA;AAGF,UAAMU,UAAU,MAAMZ;AAEtB,WAAO;MACLF,IAAIH,OAAOG;MACXS,OAAOK;IACT;EACF;EAEAC,WAAWC,YAAoCC,WAAmC;AAChF,UAAMC,OAAO,KAAKlC,WAAWe,IAAIkB,UAAUE,IAAInB,EAAE;AAEjD,QAAI,CAACkB,MAAM;AAET,WAAK/B,gCAAgCkB,IAAIY,UAAUE,IAAInB,IAAIgB,UAAAA;AAE3D;IACF;AAEAE,SAAKd,QAAQY,UAAAA;AAEb,SAAKhC,WAAWiB,OAAOgB,UAAUE,IAAInB,EAAE;EACzC;AACF;AAvFajB;AAAN,IAAMA,oBAAN","sourcesContent":["import { TimerOptions } from \"node:timers\";\nimport { setInterval, setTimeout } from \"node:timers/promises\";\n\nexport async function unboundedTimeout<T = void>(\n delay: number = 0,\n value?: T,\n options?: TimerOptions\n): Promise<T> {\n const maxDelay = 2147483647; // Highest value that will fit in a 32-bit signed integer\n\n const fullTimeouts = Math.floor(delay / maxDelay);\n const remainingDelay = delay % maxDelay;\n\n let lastTimeoutResult = await setTimeout(remainingDelay, value, options);\n\n for (let i = 0; i < fullTimeouts; i++) {\n lastTimeoutResult = await setTimeout(maxDelay, value, options);\n }\n\n return lastTimeoutResult;\n}\n\nexport async function checkpointSafeTimeout(delay: number = 0): Promise<void> {\n const scanIntervalMs = 1000;\n\n // Every scanIntervalMs, check if delay has elapsed\n for await (const start of setInterval(scanIntervalMs, Date.now())) {\n if (Date.now() - start > delay) {\n break;\n }\n }\n}\n","import {\n BatchTaskRunExecutionResult,\n TaskRunContext,\n TaskRunExecution,\n TaskRunExecutionResult,\n} from \"../schemas\";\nimport { RuntimeManager } from \"./manager\";\nimport { unboundedTimeout } from \"../utils/timers\";\n\nexport class DevRuntimeManager implements RuntimeManager {\n _taskWaits: Map<string, { resolve: (value: TaskRunExecutionResult) => void }> = new Map();\n\n _batchWaits: Map<\n string,\n { resolve: (value: BatchTaskRunExecutionResult) => void; reject: (err?: any) => void }\n > = new Map();\n\n _pendingCompletionNotifications: Map<string, TaskRunExecutionResult> = new Map();\n\n disable(): void {\n // do nothing\n }\n\n async waitForDuration(ms: number): Promise<void> {\n await unboundedTimeout(ms);\n }\n\n async waitUntil(date: Date): Promise<void> {\n return this.waitForDuration(date.getTime() - Date.now());\n }\n\n async waitForTask(params: { id: string; ctx: TaskRunContext }): Promise<TaskRunExecutionResult> {\n const pendingCompletion = this._pendingCompletionNotifications.get(params.id);\n\n if (pendingCompletion) {\n this._pendingCompletionNotifications.delete(params.id);\n\n return pendingCompletion;\n }\n\n const promise = new Promise<TaskRunExecutionResult>((resolve) => {\n this._taskWaits.set(params.id, { resolve });\n });\n\n return await promise;\n }\n\n async waitForBatch(params: {\n id: string;\n runs: string[];\n ctx: TaskRunContext;\n }): Promise<BatchTaskRunExecutionResult> {\n if (!params.runs.length) {\n return Promise.resolve({ id: params.id, items: [] });\n }\n\n const promise = Promise.all(\n params.runs.map((runId) => {\n return new Promise<TaskRunExecutionResult>((resolve, reject) => {\n const pendingCompletion = this._pendingCompletionNotifications.get(runId);\n\n if (pendingCompletion) {\n this._pendingCompletionNotifications.delete(runId);\n\n resolve(pendingCompletion);\n\n return;\n }\n\n this._taskWaits.set(runId, { resolve });\n });\n })\n );\n\n const results = await promise;\n\n return {\n id: params.id,\n items: results,\n };\n }\n\n resumeTask(completion: TaskRunExecutionResult, execution: TaskRunExecution): void {\n const wait = this._taskWaits.get(execution.run.id);\n\n if (!wait) {\n // We need to store the completion in case the task is awaited later\n this._pendingCompletionNotifications.set(execution.run.id, completion);\n\n return;\n }\n\n wait.resolve(completion);\n\n this._taskWaits.delete(execution.run.id);\n }\n}\n"]}