@temporalio/workflow 0.8.0 → 0.12.0
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/LICENSE.md +1 -1
- package/README.md +4 -2
- package/lib/cancellation-scope.d.ts +1 -1
- package/lib/cancellation-scope.js.map +1 -1
- package/lib/dependencies.d.ts +8 -56
- package/lib/dependencies.js +3 -49
- package/lib/dependencies.js.map +1 -1
- package/lib/index.d.ts +12 -12
- package/lib/index.js +13 -13
- package/lib/index.js.map +1 -1
- package/lib/interceptors.d.ts +1 -7
- package/lib/interfaces.d.ts +1 -1
- package/lib/internals.d.ts +39 -13
- package/lib/internals.js +75 -26
- package/lib/internals.js.map +1 -1
- package/lib/trigger.d.ts +3 -5
- package/lib/trigger.js +3 -5
- package/lib/trigger.js.map +1 -1
- package/lib/worker-interface.d.ts +15 -46
- package/lib/worker-interface.js +82 -113
- package/lib/worker-interface.js.map +1 -1
- package/lib/workflow-handle.d.ts +18 -20
- package/lib/workflow.d.ts +55 -12
- package/lib/workflow.js +131 -62
- package/lib/workflow.js.map +1 -1
- package/package.json +6 -6
package/lib/internals.js
CHANGED
|
@@ -46,15 +46,33 @@ const cancellation_scope_1 = require("./cancellation-scope");
|
|
|
46
46
|
protobufjs.util.Long = long_1.default;
|
|
47
47
|
protobufjs.configure();
|
|
48
48
|
class Activator {
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
constructor() {
|
|
50
|
+
this.workflowFunctionWasCalled = false;
|
|
51
|
+
}
|
|
52
|
+
async startWorkflowNextHandler({ args }) {
|
|
53
|
+
const { workflow } = exports.state;
|
|
54
|
+
if (workflow === undefined) {
|
|
51
55
|
throw new common_1.IllegalStateError('Workflow uninitialized');
|
|
52
56
|
}
|
|
53
|
-
|
|
57
|
+
let promise;
|
|
58
|
+
try {
|
|
59
|
+
promise = workflow(...args);
|
|
60
|
+
}
|
|
61
|
+
finally {
|
|
62
|
+
// Guarantee this runs even if there was an exception when invoking the Workflow function
|
|
63
|
+
// Otherwise this Workflow will now be queryable.
|
|
64
|
+
this.workflowFunctionWasCalled = true;
|
|
65
|
+
// Empty the buffer
|
|
66
|
+
const buffer = exports.state.bufferedQueries.splice(0);
|
|
67
|
+
for (const activation of buffer) {
|
|
68
|
+
this.queryWorkflow(activation);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return await promise;
|
|
54
72
|
}
|
|
55
73
|
startWorkflow(activation) {
|
|
56
|
-
const {
|
|
57
|
-
if (
|
|
74
|
+
const { info } = exports.state;
|
|
75
|
+
if (info === undefined) {
|
|
58
76
|
throw new common_1.IllegalStateError('Workflow has not been initialized');
|
|
59
77
|
}
|
|
60
78
|
const execute = (0, common_1.composeInterceptors)(exports.state.interceptors.inbound, 'execute', this.startWorkflowNextHandler.bind(this));
|
|
@@ -145,19 +163,23 @@ class Activator {
|
|
|
145
163
|
reject(await (0, common_1.failureToError)(failure, exports.state.dataConverter));
|
|
146
164
|
}
|
|
147
165
|
}
|
|
148
|
-
async queryWorkflowNextHandler(
|
|
149
|
-
const fn = exports.state.
|
|
166
|
+
async queryWorkflowNextHandler({ queryName, args }) {
|
|
167
|
+
const fn = exports.state.queryListeners.get(queryName);
|
|
150
168
|
if (fn === undefined) {
|
|
151
169
|
// Fail the query
|
|
152
|
-
throw new ReferenceError(`Workflow did not register a handler for ${
|
|
170
|
+
throw new ReferenceError(`Workflow did not register a handler for ${queryName}`);
|
|
153
171
|
}
|
|
154
|
-
const ret = fn(...
|
|
172
|
+
const ret = fn(...args);
|
|
155
173
|
if (ret instanceof Promise) {
|
|
156
174
|
throw new errors_1.DeterminismViolationError('Query handlers should not return a Promise');
|
|
157
175
|
}
|
|
158
176
|
return ret;
|
|
159
177
|
}
|
|
160
178
|
queryWorkflow(activation) {
|
|
179
|
+
if (!this.workflowFunctionWasCalled) {
|
|
180
|
+
exports.state.bufferedQueries.push(activation);
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
161
183
|
const { queryType, queryId } = activation;
|
|
162
184
|
if (!(queryType && queryId)) {
|
|
163
185
|
throw new TypeError('Missing query activation attributes');
|
|
@@ -169,20 +191,29 @@ class Activator {
|
|
|
169
191
|
queryId,
|
|
170
192
|
}).then((result) => completeQuery(queryId, result), (reason) => failQuery(queryId, reason));
|
|
171
193
|
}
|
|
172
|
-
async signalWorkflowNextHandler(
|
|
173
|
-
|
|
194
|
+
async signalWorkflowNextHandler({ signalName, args }) {
|
|
195
|
+
const fn = exports.state.signalListeners.get(signalName);
|
|
196
|
+
if (fn === undefined) {
|
|
197
|
+
throw new common_1.IllegalStateError(`No registered signal listener for signal ${signalName}`);
|
|
198
|
+
}
|
|
199
|
+
return fn(...args);
|
|
174
200
|
}
|
|
175
201
|
signalWorkflow(activation) {
|
|
176
202
|
const { signalName } = activation;
|
|
177
203
|
if (!signalName) {
|
|
178
204
|
throw new TypeError('Missing activation signalName');
|
|
179
205
|
}
|
|
180
|
-
const fn = exports.state.
|
|
206
|
+
const fn = exports.state.signalListeners.get(signalName);
|
|
181
207
|
if (fn === undefined) {
|
|
182
|
-
|
|
183
|
-
|
|
208
|
+
let buffer = exports.state.bufferedSignals.get(signalName);
|
|
209
|
+
if (buffer === undefined) {
|
|
210
|
+
buffer = [];
|
|
211
|
+
exports.state.bufferedSignals.set(signalName, buffer);
|
|
212
|
+
}
|
|
213
|
+
buffer.push(activation);
|
|
214
|
+
return;
|
|
184
215
|
}
|
|
185
|
-
const execute = (0, common_1.composeInterceptors)(exports.state.interceptors.inbound, 'handleSignal', this.signalWorkflowNextHandler.bind(this
|
|
216
|
+
const execute = (0, common_1.composeInterceptors)(exports.state.interceptors.inbound, 'handleSignal', this.signalWorkflowNextHandler.bind(this));
|
|
186
217
|
execute({
|
|
187
218
|
args: (0, common_1.arrayFromPayloadsSync)(exports.state.dataConverter, activation.input),
|
|
188
219
|
signalName,
|
|
@@ -246,6 +277,26 @@ class State {
|
|
|
246
277
|
signalWorkflow: new Map(),
|
|
247
278
|
cancelWorkflow: new Map(),
|
|
248
279
|
};
|
|
280
|
+
/**
|
|
281
|
+
* Holds buffered signal calls until a listener is registered
|
|
282
|
+
*/
|
|
283
|
+
this.bufferedSignals = new Map();
|
|
284
|
+
/**
|
|
285
|
+
* Holds buffered query calls until a listener is registered.
|
|
286
|
+
*
|
|
287
|
+
* **IMPORTANT** queries are only buffered until workflow is started.
|
|
288
|
+
* This is required because async interceptors might block workflow function invocation
|
|
289
|
+
* which delays query handler registration.
|
|
290
|
+
*/
|
|
291
|
+
this.bufferedQueries = Array();
|
|
292
|
+
/**
|
|
293
|
+
* Mapping of signal name to listener
|
|
294
|
+
*/
|
|
295
|
+
this.signalListeners = new Map();
|
|
296
|
+
/**
|
|
297
|
+
* Mapping of signal name to listener
|
|
298
|
+
*/
|
|
299
|
+
this.queryListeners = new Map();
|
|
249
300
|
/**
|
|
250
301
|
* Loaded in {@link initRuntime}
|
|
251
302
|
*/
|
|
@@ -255,9 +306,10 @@ class State {
|
|
|
255
306
|
*/
|
|
256
307
|
this.commands = [];
|
|
257
308
|
/**
|
|
258
|
-
|
|
309
|
+
/**
|
|
310
|
+
* Stores all {@link condition}s that haven't been unblocked yet
|
|
259
311
|
*/
|
|
260
|
-
this.
|
|
312
|
+
this.blockedConditions = new Map();
|
|
261
313
|
/**
|
|
262
314
|
* Is this Workflow completed
|
|
263
315
|
*/
|
|
@@ -273,9 +325,9 @@ class State {
|
|
|
273
325
|
timer: 1,
|
|
274
326
|
activity: 1,
|
|
275
327
|
childWorkflow: 1,
|
|
276
|
-
dependency: 1,
|
|
277
328
|
signalWorkflow: 1,
|
|
278
329
|
cancelWorkflow: 1,
|
|
330
|
+
condition: 1,
|
|
279
331
|
};
|
|
280
332
|
/**
|
|
281
333
|
* This is set every time the workflow executes an activation
|
|
@@ -287,7 +339,6 @@ class State {
|
|
|
287
339
|
this.random = function () {
|
|
288
340
|
throw new common_1.IllegalStateError('Tried to use Math.random before Workflow has been initialized');
|
|
289
341
|
};
|
|
290
|
-
this.dependencies = {};
|
|
291
342
|
this.dataConverter = common_1.defaultDataConverter;
|
|
292
343
|
/**
|
|
293
344
|
* Patches we know the status of for this workflow, as in {@link patched}
|
|
@@ -297,6 +348,7 @@ class State {
|
|
|
297
348
|
* Patches we sent to core {@link patched}
|
|
298
349
|
*/
|
|
299
350
|
this.sentPatches = new Set();
|
|
351
|
+
this.externalCalls = Array();
|
|
300
352
|
}
|
|
301
353
|
get now() {
|
|
302
354
|
if (__classPrivateFieldGet(this, _State_now, "f") === undefined) {
|
|
@@ -307,13 +359,10 @@ class State {
|
|
|
307
359
|
set now(value) {
|
|
308
360
|
__classPrivateFieldSet(this, _State_now, value, "f");
|
|
309
361
|
}
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
return ret;
|
|
315
|
-
}
|
|
316
|
-
return [];
|
|
362
|
+
getAndResetExternalCalls() {
|
|
363
|
+
const { externalCalls } = this;
|
|
364
|
+
this.externalCalls = [];
|
|
365
|
+
return externalCalls;
|
|
317
366
|
}
|
|
318
367
|
/**
|
|
319
368
|
* Buffer a Workflow command to be collected at the end of the current activation.
|
package/lib/internals.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internals.js","sourceRoot":"","sources":["../src/internals.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAwB;AACxB,+DAAiD;AACjD,+CAY4B;AAC5B,2DAAwD;AACxD,iCAAmC;AACnC,6CAA2D;AAE3D,qCAA2G;AAE3G,6DAAkD;AAUlD,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,cAAI,CAAC;AAC5B,UAAU,CAAC,SAAS,EAAE,CAAC;AAUvB,MAAa,SAAS;IACb,KAAK,CAAC,wBAAwB;QACnC,IAAI,aAAK,CAAC,QAAQ,KAAK,SAAS,EAAE;YAChC,MAAM,IAAI,0BAAiB,CAAC,wBAAwB,CAAC,CAAC;SACvD;QACD,OAAO,MAAM,aAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IACxC,CAAC;IAEM,aAAa,CAAC,UAAsD;QACzE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,aAAK,CAAC;QACrC,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE;YAC3C,MAAM,IAAI,0BAAiB,CAAC,mCAAmC,CAAC,CAAC;SAClE;QACD,MAAM,OAAO,GAAG,IAAA,4BAAmB,EACjC,aAAK,CAAC,YAAY,CAAC,OAAO,EAC1B,SAAS,EACT,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CACzC,CAAC;QACF,OAAO,CAAC;YACN,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,EAAE;YACjC,IAAI,EAAE,IAAA,8BAAqB,EAAC,aAAK,CAAC,aAAa,EAAE,UAAU,CAAC,SAAS,CAAC;SACvE,CAAC;aACC,IAAI,CAAC,gBAAgB,CAAC;aACtB,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAClC,CAAC;IAEM,cAAc,CAAC,WAAwD;QAC5E,aAAK,CAAC,SAAS,GAAG,IAAI,CAAC;QACvB,+BAAU,CAAC,MAAM,EAAE,CAAC;IACtB,CAAC;IAEM,SAAS,CAAC,UAAkD;QACjE,MAAM,EAAE,OAAO,EAAE,GAAG,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,SAAS,CAAC,CAAC;IACrB,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,UAAwD;QACnF,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACtB,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;SACtE;QACD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QAC9E,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE;YAC/B,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;YAC9C,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,aAAK,CAAC,aAAa,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACpG,OAAO,CAAC,MAAM,CAAC,CAAC;SACjB;aAAM,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE;YACnC,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;YAC7C,MAAM,GAAG,GAAG,MAAM,IAAA,uCAA8B,EAAC,OAAO,EAAE,aAAK,CAAC,aAAa,CAAC,CAAC;YAC/E,MAAM,CAAC,GAAG,CAAC,CAAC;SACb;aAAM,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE;YACtC,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;YAChD,MAAM,GAAG,GAAG,MAAM,IAAA,uCAA8B,EAAC,OAAO,EAAE,aAAK,CAAC,aAAa,CAAC,CAAC;YAC/E,MAAM,CAAC,GAAG,CAAC,CAAC;SACb;IACH,CAAC;IAEM,KAAK,CAAC,kCAAkC,CAC7C,UAA2E;QAE3E,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAAC,oBAAoB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACxF,IAAI,UAAU,CAAC,SAAS,EAAE;YACxB,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SACrC;aAAM,IAAI,UAAU,CAAC,MAAM,EAAE;YAC5B,IACE,UAAU,CAAC,MAAM,CAAC,KAAK;gBACvB,iBAAO,CAAC,cAAc,CAAC,sCAAsC;qBAC1D,mEAAmE,EACtE;gBACA,MAAM,IAAI,0BAAiB,CAAC,oDAAoD,CAAC,CAAC;aACnF;YACD,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;gBACvF,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;aAC7D;YACD,MAAM,CACJ,IAAI,6CAAoC,CACtC,oCAAoC,EACpC,UAAU,CAAC,MAAM,CAAC,UAAU,EAC5B,UAAU,CAAC,MAAM,CAAC,YAAY,CAC/B,CACF,CAAC;SACH;aAAM,IAAI,UAAU,CAAC,SAAS,EAAE;YAC/B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE;gBACjC,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC;aAC5D;YACD,MAAM,CAAC,MAAM,IAAA,uBAAc,EAAC,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,aAAK,CAAC,aAAa,CAAC,CAAC,CAAC;SACjF;aAAM;YACL,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC,CAAC;SAC9E;IACH,CAAC;IAEM,KAAK,CAAC,6BAA6B,CACxC,UAAsE;QAEtE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACtB,MAAM,IAAI,SAAS,CAAC,6DAA6D,CAAC,CAAC;SACpF;QACD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAAC,uBAAuB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QAC3F,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE;YAC/B,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;YAC9C,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,aAAK,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACtG,OAAO,CAAC,MAAM,CAAC,CAAC;SACjB;aAAM,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE;YACnC,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;YAC7C,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,EAAE;gBAC7C,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;aACpE;YACD,MAAM,CAAC,MAAM,IAAA,uBAAc,EAAC,OAAO,EAAE,aAAK,CAAC,aAAa,CAAC,CAAC,CAAC;SAC5D;aAAM,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE;YACtC,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;YAChD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,EAAE;gBAC7C,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;aACvE;YACD,MAAM,CAAC,MAAM,IAAA,uBAAc,EAAC,OAAO,EAAE,aAAK,CAAC,aAAa,CAAC,CAAC,CAAC;SAC5D;IACH,CAAC;IAES,KAAK,CAAC,wBAAwB,CAAC,KAAiB;QACxD,MAAM,EAAE,GAAG,aAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,EAAE,KAAK,SAAS,EAAE;YACpB,iBAAiB;YACjB,MAAM,IAAI,cAAc,CAAC,2CAA2C,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;SACxF;QACD,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,GAAG,YAAY,OAAO,EAAE;YAC1B,MAAM,IAAI,kCAAyB,CAAC,4CAA4C,CAAC,CAAC;SACnF;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAEM,aAAa,CAAC,UAAsD;QACzE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;QAC1C,IAAI,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,EAAE;YAC3B,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC;SAC5D;QACD,MAAM,OAAO,GAAG,IAAA,4BAAmB,EACjC,aAAK,CAAC,YAAY,CAAC,OAAO,EAC1B,aAAa,EACb,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CACzC,CAAC;QACF,OAAO,CAAC;YACN,SAAS,EAAE,SAAS;YACpB,IAAI,EAAE,IAAA,8BAAqB,EAAC,aAAK,CAAC,aAAa,EAAE,UAAU,CAAC,SAAS,CAAC;YACtE,OAAO;SACR,CAAC,CAAC,IAAI,CACL,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,EAC1C,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CACvC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,yBAAyB,CAAC,EAAsB,EAAE,KAAkB;QAC/E,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAEM,cAAc,CAAC,UAAuD;QAC3E,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC;QAClC,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC;SACtD;QAED,MAAM,EAAE,GAAG,aAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC;QACjD,IAAI,EAAE,KAAK,SAAS,EAAE;YACpB,sBAAsB;YACtB,MAAM,IAAI,cAAc,CAAC,kDAAkD,UAAU,EAAE,CAAC,CAAC;SAC1F;QACD,MAAM,OAAO,GAAG,IAAA,4BAAmB,EACjC,aAAK,CAAC,YAAY,CAAC,OAAO,EAC1B,cAAc,EACd,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAC9C,CAAC;QACF,OAAO,CAAC;YACN,IAAI,EAAE,IAAA,8BAAqB,EAAC,aAAK,CAAC,aAAa,EAAE,UAAU,CAAC,KAAK,CAAC;YAClE,UAAU;SACX,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,6BAA6B,CACxC,UAAsE;QAEtE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAAC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACpF,IAAI,UAAU,CAAC,OAAO,EAAE;YACtB,MAAM,CAAC,MAAM,IAAA,uBAAc,EAAC,UAAU,CAAC,OAAO,EAAE,aAAK,CAAC,aAAa,CAAC,CAAC,CAAC;SACvE;aAAM;YACL,OAAO,CAAC,SAAS,CAAC,CAAC;SACpB;IACH,CAAC;IAEM,KAAK,CAAC,oCAAoC,CAC/C,UAA6E;QAE7E,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAAC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACpF,IAAI,UAAU,CAAC,OAAO,EAAE;YACtB,MAAM,CAAC,MAAM,IAAA,uBAAc,EAAC,UAAU,CAAC,OAAO,EAAE,aAAK,CAAC,aAAa,CAAC,CAAC,CAAC;SACvE;aAAM;YACL,OAAO,CAAC,SAAS,CAAC,CAAC;SACpB;IACH,CAAC;IAEM,gBAAgB,CAAC,UAAyD;QAC/E,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;YAC9B,MAAM,IAAI,SAAS,CAAC,mDAAmD,CAAC,CAAC;SAC1E;QACD,aAAK,CAAC,MAAM,GAAG,IAAA,WAAI,EAAC,UAAU,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3D,CAAC;IAEM,cAAc,CAAC,UAAuD;QAC3E,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;YACvB,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC;SAC5D;QACD,aAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAEM,eAAe;QACpB,MAAM,IAAI,0BAAiB,CAAC,0DAA0D,CAAC,CAAC;IAC1F,CAAC;CACF;AAtND,8BAsNC;AAED;;;;GAIG;AACH,MAAa,KAAK;IAAlB;QACE;;WAEG;QACa,cAAS,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5C;;WAEG;QACa,gBAAW,GAAG;YAC5B,KAAK,EAAE,IAAI,GAAG,EAAsB;YACpC,QAAQ,EAAE,IAAI,GAAG,EAAsB;YACvC,kBAAkB,EAAE,IAAI,GAAG,EAAsB;YACjD,qBAAqB,EAAE,IAAI,GAAG,EAAsB;YACpD,UAAU,EAAE,IAAI,GAAG,EAAsB;YACzC,cAAc,EAAE,IAAI,GAAG,EAAsB;YAC7C,cAAc,EAAE,IAAI,GAAG,EAAsB;SAC9C,CAAC;QAEF;;WAEG;QACI,iBAAY,GAAmC,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;QACnG;;WAEG;QACI,aAAQ,GAAiD,EAAE,CAAC;QACnE;;WAEG;QACI,yBAAoB,GAAmB,EAAE,CAAC;QACjD;;WAEG;QACI,cAAS,GAAG,KAAK,CAAC;QACzB;;WAEG;QACI,cAAS,GAAG,KAAK,CAAC;QAEzB;;WAEG;QACI,aAAQ,GAAG;YAChB,KAAK,EAAE,CAAC;YACR,QAAQ,EAAE,CAAC;YACX,aAAa,EAAE,CAAC;YAChB,UAAU,EAAE,CAAC;YACb,cAAc,EAAE,CAAC;YACjB,cAAc,EAAE,CAAC;SAClB,CAAC;QAEF;;WAEG;QACH,6BAAyB;QAsBzB;;WAEG;QACI,WAAM,GAAQ;YACnB,MAAM,IAAI,0BAAiB,CAAC,+DAA+D,CAAC,CAAC;QAC/F,CAAC,CAAC;QAEK,iBAAY,GAAyB,EAAE,CAAC;QAkBxC,kBAAa,GAAkB,6BAAoB,CAAC;QAE3D;;WAEG;QACa,wBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;QAExD;;WAEG;QACa,gBAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IAelD,CAAC;IAtEC,IAAI,GAAG;QACL,IAAI,uBAAA,IAAI,kBAAK,KAAK,SAAS,EAAE;YAC3B,MAAM,IAAI,0BAAiB,CAAC,wDAAwD,CAAC,CAAC;SACvF;QACD,OAAO,uBAAA,IAAI,kBAAK,CAAC;IACnB,CAAC;IAED,IAAI,GAAG,CAAC,KAAa;QACnB,uBAAA,IAAI,cAAQ,KAAK,MAAA,CAAC;IACpB,CAAC;IAoBM,+BAA+B;QACpC,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE;YACxC,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACtC,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;YAC/B,OAAO,GAAG,CAAC;SACZ;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAqBD;;;;OAIG;IACH,WAAW,CAAC,GAA+C,EAAE,QAAQ,GAAG,KAAK;QAC3E,oDAAoD;QACpD,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,cAAc;YAAE,OAAO;QAClD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;IACH,CAAC;CACF;AA9HD,sBA8HC;;AAEY,QAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;AAEjC,SAAS,gBAAgB,CAAC,MAAW;IACnC,aAAK,CAAC,WAAW,CACf;QACE,yBAAyB,EAAE;YACzB,MAAM,EAAE,aAAK,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC;SAClD;KACF,EACD,IAAI,CACL,CAAC;AACJ,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,qBAAqB,CAAC,KAAc;IACxD,IAAI,aAAK,CAAC,SAAS,IAAI,IAAA,uBAAc,EAAC,KAAK,CAAC,EAAE;QAC5C,aAAK,CAAC,WAAW,CAAC,EAAE,uBAAuB,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;KAC1D;SAAM,IAAI,KAAK,YAAY,0BAAa,EAAE;QACzC,aAAK,CAAC,WAAW,CAAC,EAAE,8BAA8B,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;KAC5E;SAAM;QACL,aAAK,CAAC,WAAW,CACf;YACE,qBAAqB,EAAE;gBACrB,OAAO,EAAE,MAAM,IAAA,uBAAc,EAAC,IAAA,8BAAqB,EAAC,KAAK,CAAC,EAAE,aAAK,CAAC,aAAa,CAAC;aACjF;SACF,EACD,IAAI,CACL,CAAC;KACH;AACH,CAAC;AAfD,sDAeC;AAED,SAAS,aAAa,CAAC,OAAe,EAAE,MAAe;IACrD,aAAK,CAAC,WAAW,CAAC;QAChB,cAAc,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,aAAK,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE;KAChG,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,OAAe,EAAE,KAAU;IAClD,aAAK,CAAC,WAAW,CAAC;QAChB,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,IAAA,uBAAc,EAAC,IAAA,8BAAqB,EAAC,KAAK,CAAC,EAAE,aAAK,CAAC,aAAa,CAAC,EAAE;KAC7G,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,iBAAiB,CAAC,IAAgC,EAAE,OAAe;IACjF,MAAM,UAAU,GAAG,aAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACxD,IAAI,UAAU,KAAK,SAAS,EAAE;QAC5B,MAAM,IAAI,0BAAiB,CAAC,6BAA6B,OAAO,EAAE,CAAC,CAAC;KACrE;IACD,aAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,UAAU,CAAC;AACpB,CAAC;AAPD,8CAOC;AAED,SAAS,MAAM,CAAoC,UAAa;IAC9D,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;IAC3B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;QACrC,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;KAC7D;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
1
|
+
{"version":3,"file":"internals.js","sourceRoot":"","sources":["../src/internals.ts"],"names":[],"mappings":"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"}
|
package/lib/trigger.d.ts
CHANGED
|
@@ -4,12 +4,10 @@
|
|
|
4
4
|
* Trigger is CancellationScope aware, it is linked to the current scope on
|
|
5
5
|
* construction and throws when that scope is cancelled.
|
|
6
6
|
*
|
|
7
|
-
* Useful for e.g. waiting for a
|
|
8
|
-
* @example
|
|
9
|
-
* <!--SNIPSTART nodejs-blocked-interface-->
|
|
10
|
-
* <!--SNIPEND-->
|
|
7
|
+
* Useful for e.g. waiting for unblocking a Workflow from a signal.
|
|
11
8
|
*
|
|
12
|
-
*
|
|
9
|
+
* @example
|
|
10
|
+
* <!--SNIPSTART typescript-blocked-workflow-->
|
|
13
11
|
* <!--SNIPEND-->
|
|
14
12
|
*/
|
|
15
13
|
export declare class Trigger<T> implements PromiseLike<T> {
|
package/lib/trigger.js
CHANGED
|
@@ -8,12 +8,10 @@ const cancellation_scope_1 = require("./cancellation-scope");
|
|
|
8
8
|
* Trigger is CancellationScope aware, it is linked to the current scope on
|
|
9
9
|
* construction and throws when that scope is cancelled.
|
|
10
10
|
*
|
|
11
|
-
* Useful for e.g. waiting for a
|
|
12
|
-
* @example
|
|
13
|
-
* <!--SNIPSTART nodejs-blocked-interface-->
|
|
14
|
-
* <!--SNIPEND-->
|
|
11
|
+
* Useful for e.g. waiting for unblocking a Workflow from a signal.
|
|
15
12
|
*
|
|
16
|
-
*
|
|
13
|
+
* @example
|
|
14
|
+
* <!--SNIPSTART typescript-blocked-workflow-->
|
|
17
15
|
* <!--SNIPEND-->
|
|
18
16
|
*/
|
|
19
17
|
class Trigger {
|
package/lib/trigger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger.js","sourceRoot":"","sources":["../src/trigger.ts"],"names":[],"mappings":";;;AAAA,6DAAyD;AAEzD
|
|
1
|
+
{"version":3,"file":"trigger.js","sourceRoot":"","sources":["../src/trigger.ts"],"names":[],"mappings":";;;AAAA,6DAAyD;AAEzD;;;;;;;;;;;GAWG;AACH,MAAa,OAAO;IAclB;QACE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACjD,MAAM,KAAK,GAAG,sCAAiB,CAAC,OAAO,EAAE,CAAC;YAC1C,IAAI,KAAK,CAAC,mBAAmB,IAAI,KAAK,CAAC,WAAW,EAAE;gBAClD,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;aACrC;YACD,6DAA6D;YAC7D,aAAa;YACb,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,6DAA6D;YAC7D,aAAa;YACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,6BAA6B;QAC7B,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;CACF;AA/BD,0BA+BC"}
|
|
@@ -1,45 +1,23 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Exported functions for the Worker to interact with the Workflow isolate
|
|
3
|
-
*
|
|
4
|
-
* @module
|
|
5
|
-
*/
|
|
6
|
-
import ivm from 'isolated-vm';
|
|
7
1
|
import { WorkflowInfo } from './interfaces';
|
|
8
2
|
import { state } from './internals';
|
|
3
|
+
import { ExternalCall } from './dependencies';
|
|
9
4
|
import { IsolateExtension } from './promise-hooks';
|
|
10
|
-
import { ApplyMode, ExternalDependencyFunction, ExternalCall } from './dependencies';
|
|
11
5
|
export declare function setRequireFunc(fn: Exclude<typeof state['require'], undefined>): void;
|
|
12
6
|
export declare function overrideGlobals(): void;
|
|
13
|
-
/** Mock DOM element for Webpack dynamic imports */
|
|
14
|
-
export interface MockElement {
|
|
15
|
-
getAttribute(name: string): unknown;
|
|
16
|
-
setAttribute(name: string, value: unknown): void;
|
|
17
|
-
}
|
|
18
|
-
/** Mock document object for Webpack dynamic imports */
|
|
19
|
-
export interface MockDocument {
|
|
20
|
-
head: {
|
|
21
|
-
appendChild(): void;
|
|
22
|
-
};
|
|
23
|
-
getElementsByTagName(): MockElement[];
|
|
24
|
-
createElement(): MockElement;
|
|
25
|
-
}
|
|
26
7
|
/**
|
|
27
|
-
*
|
|
8
|
+
* Initialize the isolate runtime.
|
|
9
|
+
*
|
|
10
|
+
* Sets required internal state and instantiates the workflow and interceptors.
|
|
28
11
|
*/
|
|
29
|
-
export declare function
|
|
30
|
-
export
|
|
12
|
+
export declare function initRuntime(info: WorkflowInfo, interceptorModules: string[], randomnessSeed: number[], now: number, isolateExtension: IsolateExtension): Promise<void>;
|
|
13
|
+
export interface ActivationResult {
|
|
14
|
+
numBlockedConditions: number;
|
|
15
|
+
}
|
|
31
16
|
/**
|
|
32
17
|
* Run a chunk of activation jobs
|
|
33
18
|
* @returns a boolean indicating whether job was processed or ignored
|
|
34
19
|
*/
|
|
35
|
-
export declare function activate(encodedActivation: Uint8Array, batchIndex: number): Promise<
|
|
36
|
-
declare type ActivationConclusion = {
|
|
37
|
-
type: 'pending';
|
|
38
|
-
pendingExternalCalls: ExternalCall[];
|
|
39
|
-
} | {
|
|
40
|
-
type: 'complete';
|
|
41
|
-
encoded: Uint8Array;
|
|
42
|
-
};
|
|
20
|
+
export declare function activate(encodedActivation: Uint8Array, batchIndex: number): Promise<ActivationResult>;
|
|
43
21
|
/**
|
|
44
22
|
* Conclude a single activation.
|
|
45
23
|
* Should be called after processing all activation jobs and queued microtasks.
|
|
@@ -47,20 +25,11 @@ declare type ActivationConclusion = {
|
|
|
47
25
|
* Activation may be in either `complete` or `pending` state according to pending external dependency calls.
|
|
48
26
|
* Activation failures are handled in the main Node.js isolate.
|
|
49
27
|
*/
|
|
50
|
-
export declare function concludeActivation():
|
|
51
|
-
export declare function
|
|
28
|
+
export declare function concludeActivation(): Uint8Array;
|
|
29
|
+
export declare function getAndResetExternalCalls(): ExternalCall[];
|
|
52
30
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
|
|
56
|
-
export declare function inject(ifaceName: string, fnName: string, dependency: ivm.Reference<ExternalDependencyFunction>, applyMode: ApplyMode, transferOptions: ivm.TransferOptionsBidirectional): void;
|
|
57
|
-
export interface ExternalDependencyResult {
|
|
58
|
-
seq: number;
|
|
59
|
-
result: any;
|
|
60
|
-
error: any;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Resolve external dependency function calls with given results.
|
|
31
|
+
* Loop through all blocked conditions, evaluate and unblock if possible.
|
|
32
|
+
*
|
|
33
|
+
* @returns number of unblocked conditions.
|
|
64
34
|
*/
|
|
65
|
-
export declare function
|
|
66
|
-
export {};
|
|
35
|
+
export declare function tryUnblockConditions(): number;
|
package/lib/worker-interface.js
CHANGED
|
@@ -1,51 +1,61 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.tryUnblockConditions = exports.getAndResetExternalCalls = exports.concludeActivation = exports.activate = exports.initRuntime = exports.overrideGlobals = exports.setRequireFunc = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Exported functions for the Worker to interact with the Workflow isolate
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
4
9
|
const common_1 = require("@temporalio/common");
|
|
5
10
|
const coresdk_1 = require("@temporalio/proto/lib/coresdk");
|
|
6
11
|
const internals_1 = require("./internals");
|
|
7
12
|
const alea_1 = require("./alea");
|
|
8
|
-
const promise_hooks_1 = require("./promise-hooks");
|
|
9
13
|
const errors_1 = require("./errors");
|
|
10
|
-
const
|
|
14
|
+
const promise_hooks_1 = require("./promise-hooks");
|
|
11
15
|
function setRequireFunc(fn) {
|
|
12
16
|
internals_1.state.require = fn;
|
|
13
17
|
}
|
|
14
18
|
exports.setRequireFunc = setRequireFunc;
|
|
15
19
|
function overrideGlobals() {
|
|
16
20
|
const global = globalThis;
|
|
17
|
-
// Mock any weak reference
|
|
21
|
+
// Mock any weak reference because GC is non-deterministic and the effect is observable from the Workflow.
|
|
18
22
|
// WeakRef is implemented in V8 8.4 which is embedded in node >=14.6.0.
|
|
19
23
|
// Workflow developer will get a meaningful exception if they try to use these.
|
|
20
|
-
global.WeakMap = function () {
|
|
21
|
-
throw new errors_1.DeterminismViolationError('WeakMap cannot be used in workflows because v8 GC is non-deterministic');
|
|
22
|
-
};
|
|
23
|
-
global.WeakSet = function () {
|
|
24
|
-
throw new errors_1.DeterminismViolationError('WeakSet cannot be used in workflows because v8 GC is non-deterministic');
|
|
25
|
-
};
|
|
26
24
|
global.WeakRef = function () {
|
|
27
25
|
throw new errors_1.DeterminismViolationError('WeakRef cannot be used in workflows because v8 GC is non-deterministic');
|
|
28
26
|
};
|
|
27
|
+
global.FinalizationRegistry = function () {
|
|
28
|
+
throw new errors_1.DeterminismViolationError('FinalizationRegistry cannot be used in workflows because v8 GC is non-deterministic');
|
|
29
|
+
};
|
|
29
30
|
const OriginalDate = globalThis.Date;
|
|
30
|
-
global.Date = function () {
|
|
31
|
+
global.Date = function (...args) {
|
|
32
|
+
if (args.length > 0) {
|
|
33
|
+
return new OriginalDate(...args);
|
|
34
|
+
}
|
|
31
35
|
return new OriginalDate(internals_1.state.now);
|
|
32
36
|
};
|
|
33
37
|
global.Date.now = function () {
|
|
34
38
|
return internals_1.state.now;
|
|
35
39
|
};
|
|
40
|
+
global.Date.parse = OriginalDate.parse.bind(OriginalDate);
|
|
41
|
+
global.Date.UTC = OriginalDate.UTC.bind(OriginalDate);
|
|
36
42
|
global.Date.prototype = OriginalDate.prototype;
|
|
43
|
+
/**
|
|
44
|
+
* @param ms sleep duration - number of milliseconds. If given a negative number, value will be set to 1.
|
|
45
|
+
*/
|
|
37
46
|
global.setTimeout = function (cb, ms, ...args) {
|
|
47
|
+
ms = Math.max(1, ms);
|
|
38
48
|
const seq = internals_1.state.nextSeqs.timer++;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
+
// Create a Promise for AsyncLocalStorage to be able to track this completion using promise hooks.
|
|
50
|
+
new Promise((resolve, reject) => {
|
|
51
|
+
internals_1.state.completions.timer.set(seq, { resolve, reject });
|
|
52
|
+
internals_1.state.pushCommand({
|
|
53
|
+
startTimer: {
|
|
54
|
+
seq,
|
|
55
|
+
startToFireTimeout: (0, common_1.msToTs)(ms),
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
}).then(() => cb(...args), () => undefined /* ignore cancellation */);
|
|
49
59
|
return seq;
|
|
50
60
|
};
|
|
51
61
|
global.clearTimeout = function (handle) {
|
|
@@ -62,44 +72,27 @@ function overrideGlobals() {
|
|
|
62
72
|
}
|
|
63
73
|
exports.overrideGlobals = overrideGlobals;
|
|
64
74
|
/**
|
|
65
|
-
*
|
|
75
|
+
* Initialize the isolate runtime.
|
|
76
|
+
*
|
|
77
|
+
* Sets required internal state and instantiates the workflow and interceptors.
|
|
66
78
|
*/
|
|
67
|
-
function
|
|
68
|
-
const attrs = new Map();
|
|
69
|
-
const el = {
|
|
70
|
-
getAttribute: (name) => attrs.get(name),
|
|
71
|
-
setAttribute: (name, value) => {
|
|
72
|
-
attrs.set(name, value);
|
|
73
|
-
},
|
|
74
|
-
};
|
|
75
|
-
return {
|
|
76
|
-
head: {
|
|
77
|
-
appendChild: () => undefined,
|
|
78
|
-
},
|
|
79
|
-
getElementsByTagName: () => {
|
|
80
|
-
return [el];
|
|
81
|
-
},
|
|
82
|
-
createElement: () => {
|
|
83
|
-
return el;
|
|
84
|
-
},
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
exports.mockBrowserDocumentForWebpack = mockBrowserDocumentForWebpack;
|
|
88
|
-
async function initRuntime(info, interceptorModules, randomnessSeed, isolateExtension, encodedStartWorkflow) {
|
|
79
|
+
async function initRuntime(info, interceptorModules, randomnessSeed, now, isolateExtension) {
|
|
89
80
|
// Globals are overridden while building the isolate before loading user code.
|
|
90
81
|
// For some reason the `WeakRef` mock is not restored properly when creating an isolate from snapshot in node 14 (at least on ubuntu), override again.
|
|
91
82
|
globalThis.WeakRef = function () {
|
|
92
83
|
throw new errors_1.DeterminismViolationError('WeakRef cannot be used in workflows because v8 GC is non-deterministic');
|
|
93
84
|
};
|
|
94
85
|
internals_1.state.info = info;
|
|
86
|
+
internals_1.state.now = now;
|
|
95
87
|
internals_1.state.random = (0, alea_1.alea)(randomnessSeed);
|
|
96
88
|
promise_hooks_1.HookManager.instance.setIsolateExtension(isolateExtension);
|
|
97
89
|
const { require: req } = internals_1.state;
|
|
98
90
|
if (req === undefined) {
|
|
99
91
|
throw new common_1.IllegalStateError('Workflow has not been initialized');
|
|
100
92
|
}
|
|
101
|
-
for (const
|
|
102
|
-
const
|
|
93
|
+
for (const modName of interceptorModules) {
|
|
94
|
+
const mod = await req(modName);
|
|
95
|
+
const factory = mod.interceptors;
|
|
103
96
|
if (factory !== undefined) {
|
|
104
97
|
if (typeof factory !== 'function') {
|
|
105
98
|
throw new TypeError(`interceptors must be a function, got: ${factory}`);
|
|
@@ -110,27 +103,21 @@ async function initRuntime(info, interceptorModules, randomnessSeed, isolateExte
|
|
|
110
103
|
internals_1.state.interceptors.internals.push(...(interceptors.internals ?? []));
|
|
111
104
|
}
|
|
112
105
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
throw new TypeError(`'${info.workflowType}' is not a function`);
|
|
120
|
-
}
|
|
106
|
+
let workflow;
|
|
107
|
+
try {
|
|
108
|
+
const mod = await req(undefined);
|
|
109
|
+
workflow = mod[info.workflowType];
|
|
110
|
+
if (typeof workflow !== 'function') {
|
|
111
|
+
throw new TypeError(`'${info.workflowType}' is not a function`);
|
|
121
112
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
return
|
|
128
|
-
}
|
|
129
|
-
internals_1.state.workflow =
|
|
130
|
-
(await create({
|
|
131
|
-
headers,
|
|
132
|
-
args: (0, common_1.arrayFromPayloadsSync)(internals_1.state.dataConverter, args),
|
|
133
|
-
}).catch(internals_1.handleWorkflowFailure)) ?? undefined;
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
115
|
+
const failure = common_1.ApplicationFailure.nonRetryable((0, common_1.errorMessage)(err), 'ReferenceError');
|
|
116
|
+
failure.stack = failure.stack?.split('\n')[0];
|
|
117
|
+
(0, internals_1.handleWorkflowFailure)(failure);
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
internals_1.state.workflow = workflow;
|
|
134
121
|
}
|
|
135
122
|
exports.initRuntime = initRuntime;
|
|
136
123
|
/**
|
|
@@ -138,6 +125,7 @@ exports.initRuntime = initRuntime;
|
|
|
138
125
|
* @returns a boolean indicating whether job was processed or ignored
|
|
139
126
|
*/
|
|
140
127
|
async function activate(encodedActivation, batchIndex) {
|
|
128
|
+
const activation = coresdk_1.coresdk.workflow_activation.WFActivation.decodeDelimited(encodedActivation);
|
|
141
129
|
const intercept = (0, common_1.composeInterceptors)(internals_1.state.interceptors.internals, 'activate', async ({ activation, batchIndex }) => {
|
|
142
130
|
if (batchIndex === 0) {
|
|
143
131
|
if (internals_1.state.info === undefined) {
|
|
@@ -170,13 +158,16 @@ async function activate(encodedActivation, batchIndex) {
|
|
|
170
158
|
return;
|
|
171
159
|
}
|
|
172
160
|
await internals_1.state.activator[job.variant](variant /* TODO: TS is struggling with `true` and `{}` */);
|
|
161
|
+
tryUnblockConditions();
|
|
173
162
|
}));
|
|
174
163
|
});
|
|
175
164
|
await intercept({
|
|
176
|
-
activation
|
|
165
|
+
activation,
|
|
177
166
|
batchIndex,
|
|
178
167
|
});
|
|
179
|
-
return
|
|
168
|
+
return {
|
|
169
|
+
numBlockedConditions: internals_1.state.blockedConditions.size,
|
|
170
|
+
};
|
|
180
171
|
}
|
|
181
172
|
exports.activate = activate;
|
|
182
173
|
/**
|
|
@@ -187,64 +178,42 @@ exports.activate = activate;
|
|
|
187
178
|
* Activation failures are handled in the main Node.js isolate.
|
|
188
179
|
*/
|
|
189
180
|
function concludeActivation() {
|
|
190
|
-
const pendingExternalCalls = internals_1.state.getAndResetPendingExternalCalls();
|
|
191
|
-
if (pendingExternalCalls.length > 0) {
|
|
192
|
-
return { type: 'pending', pendingExternalCalls };
|
|
193
|
-
}
|
|
194
181
|
const intercept = (0, common_1.composeInterceptors)(internals_1.state.interceptors.internals, 'concludeActivation', (input) => input);
|
|
195
182
|
const { info } = internals_1.state;
|
|
196
183
|
const { commands } = intercept({ commands: internals_1.state.commands });
|
|
197
|
-
|
|
184
|
+
internals_1.state.commands = [];
|
|
185
|
+
return coresdk_1.coresdk.workflow_completion.WFActivationCompletion.encodeDelimited({
|
|
198
186
|
runId: info?.runId,
|
|
199
187
|
successful: { commands },
|
|
200
188
|
}).finish();
|
|
201
|
-
internals_1.state.commands = [];
|
|
202
|
-
return { type: 'complete', encoded };
|
|
203
189
|
}
|
|
204
190
|
exports.concludeActivation = concludeActivation;
|
|
205
|
-
function
|
|
206
|
-
return internals_1.state.
|
|
207
|
-
}
|
|
208
|
-
exports.getAndResetPendingExternalCalls = getAndResetPendingExternalCalls;
|
|
209
|
-
/**
|
|
210
|
-
* Inject an external dependency function into the Workflow via global state.
|
|
211
|
-
* The injected function is available via {@link dependencies}.
|
|
212
|
-
*/
|
|
213
|
-
function inject(ifaceName, fnName, dependency, applyMode, transferOptions) {
|
|
214
|
-
if (internals_1.state.dependencies[ifaceName] === undefined) {
|
|
215
|
-
internals_1.state.dependencies[ifaceName] = {};
|
|
216
|
-
}
|
|
217
|
-
if (applyMode === dependencies_1.ApplyMode.ASYNC) {
|
|
218
|
-
internals_1.state.dependencies[ifaceName][fnName] = (...args) => new Promise((resolve, reject) => {
|
|
219
|
-
const seq = internals_1.state.nextSeqs.dependency++;
|
|
220
|
-
internals_1.state.completions.dependency.set(seq, {
|
|
221
|
-
resolve,
|
|
222
|
-
reject,
|
|
223
|
-
});
|
|
224
|
-
internals_1.state.pendingExternalCalls.push({ ifaceName, fnName, args, seq });
|
|
225
|
-
});
|
|
226
|
-
}
|
|
227
|
-
else if (applyMode === dependencies_1.ApplyMode.ASYNC_IGNORED) {
|
|
228
|
-
internals_1.state.dependencies[ifaceName][fnName] = (...args) => internals_1.state.pendingExternalCalls.push({ ifaceName, fnName, args });
|
|
229
|
-
}
|
|
230
|
-
else {
|
|
231
|
-
internals_1.state.dependencies[ifaceName][fnName] = (...args) => dependency[applyMode](undefined, args, transferOptions);
|
|
232
|
-
}
|
|
191
|
+
function getAndResetExternalCalls() {
|
|
192
|
+
return internals_1.state.getAndResetExternalCalls();
|
|
233
193
|
}
|
|
234
|
-
exports.
|
|
194
|
+
exports.getAndResetExternalCalls = getAndResetExternalCalls;
|
|
235
195
|
/**
|
|
236
|
-
*
|
|
196
|
+
* Loop through all blocked conditions, evaluate and unblock if possible.
|
|
197
|
+
*
|
|
198
|
+
* @returns number of unblocked conditions.
|
|
237
199
|
*/
|
|
238
|
-
function
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
200
|
+
function tryUnblockConditions() {
|
|
201
|
+
let numUnblocked = 0;
|
|
202
|
+
for (;;) {
|
|
203
|
+
const prevUnblocked = numUnblocked;
|
|
204
|
+
for (const [seq, cond] of internals_1.state.blockedConditions.entries()) {
|
|
205
|
+
if (cond.fn()) {
|
|
206
|
+
cond.resolve();
|
|
207
|
+
numUnblocked++;
|
|
208
|
+
// It is safe to delete elements during map iteration
|
|
209
|
+
internals_1.state.blockedConditions.delete(seq);
|
|
210
|
+
}
|
|
243
211
|
}
|
|
244
|
-
|
|
245
|
-
|
|
212
|
+
if (prevUnblocked === numUnblocked) {
|
|
213
|
+
break;
|
|
246
214
|
}
|
|
247
215
|
}
|
|
216
|
+
return numUnblocked;
|
|
248
217
|
}
|
|
249
|
-
exports.
|
|
218
|
+
exports.tryUnblockConditions = tryUnblockConditions;
|
|
250
219
|
//# sourceMappingURL=worker-interface.js.map
|