@trigger.dev/core 3.0.0-beta.2 → 3.0.0-beta.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/catalog-A-D3UC6S.d.mts +6646 -0
- package/dist/catalog-TAZd4-TP.d.ts +6646 -0
- package/dist/manager-M9GLDnhJ.d.mts +1158 -0
- package/dist/manager-M9GLDnhJ.d.ts +1158 -0
- package/dist/messages-AriaDDm0.d.mts +8696 -0
- package/dist/messages-AriaDDm0.d.ts +8696 -0
- package/dist/v3/dev/index.d.mts +28 -0
- package/dist/v3/dev/index.d.ts +28 -0
- package/dist/v3/dev/index.js +93 -0
- package/dist/v3/dev/index.js.map +1 -0
- package/dist/v3/dev/index.mjs +91 -0
- package/dist/v3/dev/index.mjs.map +1 -0
- package/dist/v3/index.d.mts +808 -16920
- package/dist/v3/index.d.ts +808 -16920
- package/dist/v3/index.js +1337 -2436
- package/dist/v3/index.js.map +1 -1
- package/dist/v3/index.mjs +1195 -2294
- package/dist/v3/index.mjs.map +1 -1
- package/dist/v3/otel/index.js +69 -42
- package/dist/v3/otel/index.js.map +1 -1
- package/dist/v3/otel/index.mjs +69 -42
- package/dist/v3/otel/index.mjs.map +1 -1
- package/dist/v3/prod/index.d.mts +45 -0
- package/dist/v3/prod/index.d.ts +45 -0
- package/dist/v3/prod/index.js +205 -0
- package/dist/v3/prod/index.js.map +1 -0
- package/dist/v3/prod/index.mjs +203 -0
- package/dist/v3/prod/index.mjs.map +1 -0
- package/dist/v3/utils/structuredLogger.d.mts +31 -0
- package/dist/v3/utils/structuredLogger.d.ts +31 -0
- package/dist/v3/utils/structuredLogger.js +88 -0
- package/dist/v3/utils/structuredLogger.js.map +1 -0
- package/dist/v3/utils/structuredLogger.mjs +86 -0
- package/dist/v3/utils/structuredLogger.mjs.map +1 -0
- package/dist/v3/workers/index.d.mts +95 -0
- package/dist/v3/workers/index.d.ts +95 -0
- package/dist/v3/workers/index.js +2664 -0
- package/dist/v3/workers/index.js.map +1 -0
- package/dist/v3/workers/index.mjs +2648 -0
- package/dist/v3/workers/index.mjs.map +1 -0
- package/dist/v3/zodIpc.d.mts +32 -0
- package/dist/v3/zodIpc.d.ts +32 -0
- package/dist/v3/zodIpc.js +268 -0
- package/dist/v3/zodIpc.js.map +1 -0
- package/dist/v3/zodIpc.mjs +266 -0
- package/dist/v3/zodIpc.mjs.map +1 -0
- package/dist/v3/zodMessageHandler.d.mts +69 -0
- package/dist/v3/zodMessageHandler.d.ts +69 -0
- package/dist/v3/zodMessageHandler.js +168 -0
- package/dist/v3/zodMessageHandler.js.map +1 -0
- package/dist/v3/zodMessageHandler.mjs +163 -0
- package/dist/v3/zodMessageHandler.mjs.map +1 -0
- package/dist/v3/zodNamespace.d.mts +3663 -0
- package/dist/v3/zodNamespace.d.ts +3663 -0
- package/dist/v3/zodNamespace.js +356 -0
- package/dist/v3/zodNamespace.js.map +1 -0
- package/dist/v3/zodNamespace.mjs +354 -0
- package/dist/v3/zodNamespace.mjs.map +1 -0
- package/dist/v3/zodSocket.d.mts +88 -0
- package/dist/v3/zodSocket.d.ts +88 -0
- package/dist/v3/zodSocket.js +309 -0
- package/dist/v3/zodSocket.js.map +1 -0
- package/dist/v3/zodSocket.mjs +305 -0
- package/dist/v3/zodSocket.mjs.map +1 -0
- package/package.json +70 -5
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { R as RuntimeManager, T as TaskRunExecutionResult, B as BatchTaskRunExecutionResult, b as TaskRunContext, p as TaskRunExecution } from '../../manager-M9GLDnhJ.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-M9GLDnhJ.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":["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,kBAAkB;AAE3B,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 { 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","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":["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,kBAAkB;AAE3B,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 { 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","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"]}
|