@superdurable/dex 0.1.4 → 0.1.6

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 (54) hide show
  1. package/README.md +115 -5
  2. package/dist/src/client.d.ts +35 -18
  3. package/dist/src/client.js +121 -43
  4. package/dist/src/client.js.map +1 -1
  5. package/dist/src/codec.d.ts +1 -1
  6. package/dist/src/context.d.ts +20 -1
  7. package/dist/src/errors.d.ts +2 -33
  8. package/dist/src/errors.js +2 -45
  9. package/dist/src/errors.js.map +1 -1
  10. package/dist/src/flow-result.d.ts +47 -0
  11. package/dist/src/flow-result.js +82 -0
  12. package/dist/src/flow-result.js.map +1 -0
  13. package/dist/src/flow.d.ts +13 -1
  14. package/dist/src/flow.js +1 -0
  15. package/dist/src/flow.js.map +1 -1
  16. package/dist/src/gen/dex.d.ts +209 -33
  17. package/dist/src/gen/dex.js +1619 -213
  18. package/dist/src/gen/dex.js.map +1 -1
  19. package/dist/src/grpc-status.js +6 -5
  20. package/dist/src/grpc-status.js.map +1 -1
  21. package/dist/src/index.d.ts +2 -0
  22. package/dist/src/index.js +1 -0
  23. package/dist/src/index.js.map +1 -1
  24. package/dist/src/invocation-context.d.ts +7 -1
  25. package/dist/src/invocation-context.js +53 -1
  26. package/dist/src/invocation-context.js.map +1 -1
  27. package/dist/src/options.d.ts +42 -19
  28. package/dist/src/options.js +20 -4
  29. package/dist/src/options.js.map +1 -1
  30. package/dist/src/persistence.d.ts +12 -0
  31. package/dist/src/persistence.js +16 -0
  32. package/dist/src/persistence.js.map +1 -1
  33. package/dist/src/rpc.d.ts +3 -1
  34. package/dist/src/rpc.js.map +1 -1
  35. package/dist/src/step.d.ts +33 -3
  36. package/dist/src/step.js +38 -1
  37. package/dist/src/step.js.map +1 -1
  38. package/dist/src/subflow.d.ts +62 -0
  39. package/dist/src/subflow.js +62 -0
  40. package/dist/src/subflow.js.map +1 -0
  41. package/dist/src/wait.d.ts +23 -2
  42. package/dist/src/wait.js +17 -0
  43. package/dist/src/wait.js.map +1 -1
  44. package/dist/src/worker-dispatcher.d.ts +4 -3
  45. package/dist/src/worker-dispatcher.js +271 -37
  46. package/dist/src/worker-dispatcher.js.map +1 -1
  47. package/dist/src/worker.js +21 -5
  48. package/dist/src/worker.js.map +1 -1
  49. package/native/linux-aarch64/dex_blob_cache_node.node +0 -0
  50. package/native/linux-x86_64/dex_blob_cache_node.node +0 -0
  51. package/native/macos-aarch64/dex_blob_cache_node.node +0 -0
  52. package/native/macos-x86_64/dex_blob_cache_node.node +0 -0
  53. package/native/windows-x86_64/dex_blob_cache_node.node +0 -0
  54. package/package.json +1 -1
@@ -5,13 +5,17 @@
5
5
  // See the LICENSE file in the repository root.
6
6
  //
7
7
  // SPDX-License-Identifier: LicenseRef-Super-Durable-1.0
8
- import { ChannelCondition, CloseDecision, CloseDecisionType, ConditionCombination as ProtoConditionCombination, ExecuteMethodFailurePolicy, InvokeExecuteMethodResponse, InvokeWaitForMethodResponse, InvokeWorkerRPCResponse, StepDecision as ProtoStepDecision, StepMovement as ProtoStepMovement, StepOptions as ProtoStepOptions, TimerCondition, WaitForMethodFailurePolicy, WaitingCondition, WaitingConditionType, } from "./gen/dex.js";
8
+ import { ChannelCondition, CloseDecision, CloseDecisionType, ConditionCombination as ProtoConditionCombination, ExecuteMethodFailurePolicy, InvokeExecuteMethodResponse, InvokeWaitForMethodResponse, InvokeWorkerRPCResponse, StepDecision as ProtoStepDecision, StepMovement as ProtoStepMovement, StepOptions as ProtoStepOptions, TimerCondition, SubFlowCondition as ProtoSubFlowCondition, SubFlowOptions as ProtoSubFlowOptions, SubFlowReusePolicy as ProtoSubFlowReusePolicy, FlowRetryPolicy, FlowTimeoutPolicy as ProtoFlowTimeoutPolicy, FlowConfig as ProtoFlowConfig, ActiveStepSearchMode as ProtoActiveStepSearchMode, StepDurability as ProtoStepDurability, IndexType as ProtoIndexType, WaitForMethodFailurePolicy, WaitingCondition, WaitingConditionType, } from "./gen/dex.js";
9
9
  import { InvalidStepResultError, ValueMappingError } from "./errors.js";
10
- import { registeredFlowByName, registeredRPCByName, registeredStep, } from "./flow.js";
10
+ import { registeredFlowByName, registeredFlow, registeredRPCByName, registeredStep, } from "./flow.js";
11
11
  import { InvocationContext } from "./invocation-context.js";
12
+ import { AttributeMap, IndexType } from "./persistence.js";
13
+ import { mapAttributeStoreName, mapAttributeStoreSync } from "./attribute-store-sync.js";
14
+ import { ActiveStepSearchMode, FlowTimeoutPolicy } from "./options.js";
15
+ import { SubFlowReusePolicy } from "./subflow.js";
12
16
  import { decodeValue, encodeUnknown, encodeValue, } from "./value-mapper.js";
13
17
  import { Channel, ChannelMap } from "./wait.js";
14
- const internalConditionPrefix = "__dex_internal_condition_";
18
+ const timeoutHandlerStepType = "sys:timeout_handler";
15
19
  export class WorkerDispatcher {
16
20
  registry;
17
21
  hydrator;
@@ -19,11 +23,12 @@ export class WorkerDispatcher {
19
23
  this.registry = registry;
20
24
  this.hydrator = hydrator;
21
25
  }
22
- async invokeWaitFor(original) {
26
+ async invokeWaitFor(original, cancellationSignal = new AbortController().signal) {
23
27
  const request = await this.hydrateWaitFor(original);
28
+ cancellationSignal.throwIfAborted();
24
29
  const flow = registeredFlowByName(this.registry, request.flowType);
25
30
  const step = registeredStep(flow, request.stepType);
26
- const context = new InvocationContext("waitFor", flow, request.context, request.attributes);
31
+ const context = new InvocationContext("waitFor", flow, request.context, request.attributes, [], undefined, {}, cancellationSignal);
27
32
  const input = decodeValue(step.step.inputCodec, requireValue(request.stepInput, "Step input"));
28
33
  if (step.step.waitFor === undefined) {
29
34
  throw new TypeError(`Step ${step.name} does not implement waitFor`);
@@ -32,7 +37,7 @@ export class WorkerDispatcher {
32
37
  try {
33
38
  return InvokeWaitForMethodResponse.create({
34
39
  upsertAttributes: [...context.getAttributeWrites()],
35
- waitingCondition: mapWait(flow, wait),
40
+ waitingCondition: mapWait(this.registry, flow, wait),
36
41
  upsertStepExeLocals: [...context.getLocalWrites()],
37
42
  recordEvents: [...context.getEvents()],
38
43
  publishToChannel: [...context.getPublications()],
@@ -42,11 +47,15 @@ export class WorkerDispatcher {
42
47
  throw invalidStepResult(flow.name, step.name, "waitFor", failure);
43
48
  }
44
49
  }
45
- async invokeExecute(original) {
50
+ async invokeExecute(original, cancellationSignal = new AbortController().signal) {
46
51
  const request = await this.hydrateExecute(original);
52
+ cancellationSignal.throwIfAborted();
47
53
  const flow = registeredFlowByName(this.registry, request.flowType);
54
+ if (request.stepType === timeoutHandlerStepType) {
55
+ return this.invokeTimeoutHandler(request, flow, cancellationSignal);
56
+ }
48
57
  const step = registeredStep(flow, request.stepType);
49
- const context = new InvocationContext("execute", flow, request.context, request.attributes, request.stepExeLocals, request.conditionResults);
58
+ const context = new InvocationContext("execute", flow, request.context, request.attributes, request.stepExeLocals, request.conditionResults, {}, cancellationSignal);
50
59
  const input = decodeValue(step.step.inputCodec, requireValue(request.stepInput, "Step input"));
51
60
  const decision = await step.step.execute(context, input);
52
61
  try {
@@ -62,11 +71,34 @@ export class WorkerDispatcher {
62
71
  throw invalidStepResult(flow.name, step.name, "execute", failure);
63
72
  }
64
73
  }
65
- async invokeRPC(original) {
74
+ async invokeTimeoutHandler(request, flow, cancellationSignal) {
75
+ try {
76
+ if (request.stepInput !== undefined) {
77
+ throw new TypeError("timeout handler input must be absent");
78
+ }
79
+ if (flow.flow.handleTimeout === undefined) {
80
+ throw new TypeError(`Flow ${flow.name} does not implement handleTimeout`);
81
+ }
82
+ const context = new InvocationContext("execute", flow, request.context, request.attributes, request.stepExeLocals, request.conditionResults, {}, cancellationSignal);
83
+ const decision = await flow.flow.handleTimeout(context);
84
+ return InvokeExecuteMethodResponse.create({
85
+ stepDecision: mapDecision(flow, decision),
86
+ upsertAttributes: [...context.getAttributeWrites()],
87
+ recordEvents: [...context.getEvents()],
88
+ upsertStepExeLocals: [...context.getLocalWrites()],
89
+ publishToChannel: [...context.getPublications()],
90
+ });
91
+ }
92
+ catch (failure) {
93
+ throw invalidStepResult(flow.name, timeoutHandlerStepType, "execute", failure);
94
+ }
95
+ }
96
+ async invokeRPC(original, cancellationSignal = new AbortController().signal) {
66
97
  const request = await this.hydrateRPC(original);
98
+ cancellationSignal.throwIfAborted();
67
99
  const flow = registeredFlowByName(this.registry, request.flowType);
68
100
  const rpc = registeredRPCByName(flow, request.rpcName);
69
- const context = new InvocationContext("rpc", flow, request.context, request.attributes, [], undefined, request.channelInfos);
101
+ const context = new InvocationContext("rpc", flow, request.context, request.attributes, [], undefined, request.channelInfos, cancellationSignal);
70
102
  const returned = await invokeRPC(flow, rpc, context, request.input);
71
103
  try {
72
104
  const result = rpcResult(rpc, returned);
@@ -74,9 +106,7 @@ export class WorkerDispatcher {
74
106
  output: rpc.options.outputCodec === undefined
75
107
  ? encodeUnknown(undefined)
76
108
  : encodeValue(rpc.options.outputCodec, result?.output),
77
- stepDecision: result?.nextSteps === undefined || result.nextSteps.length === 0
78
- ? undefined
79
- : ProtoStepDecision.create({ nextSteps: mapMovements(flow, result.nextSteps) }),
109
+ stepDecision: rpcDecision(flow, result),
80
110
  upsertAttributes: [...context.getAttributeWrites()],
81
111
  recordEvents: [...context.getEvents()],
82
112
  publishToChannel: [...context.getPublications()],
@@ -99,17 +129,26 @@ export class WorkerDispatcher {
99
129
  }
100
130
  async hydrateExecute(request) {
101
131
  const channelValues = request.conditionResults?.channelResults.flatMap((result) => result.values) ?? [];
132
+ const subFlowValues = request.conditionResults?.subFlowResults.flatMap((result) => result.results.map((completion) => completion.completedStepOutput)) ?? [];
133
+ const hasInput = request.stepInput !== undefined;
102
134
  const values = await this.hydrator.hydrateAll([
103
- request.stepInput,
135
+ ...(hasInput ? [request.stepInput] : []),
104
136
  ...request.attributes.map((entry) => entry.value),
105
137
  ...request.stepExeLocals.map((entry) => entry.value),
106
138
  ...channelValues,
139
+ ...subFlowValues,
107
140
  ]);
108
- let offset = 1;
141
+ let offset = hasInput ? 1 : 0;
109
142
  const attributes = replaceEntryValues(request.attributes, values.slice(offset, (offset += request.attributes.length)));
110
143
  const stepExeLocals = replaceEntryValues(request.stepExeLocals, values.slice(offset, (offset += request.stepExeLocals.length)));
111
144
  const conditionResults = replaceConditionValues(request.conditionResults, values.slice(offset));
112
- return { ...request, attributes, stepExeLocals, conditionResults };
145
+ return {
146
+ ...request,
147
+ stepInput: hasInput ? values[0] : undefined,
148
+ attributes,
149
+ stepExeLocals,
150
+ conditionResults,
151
+ };
113
152
  }
114
153
  async hydrateRPC(request) {
115
154
  const hasInput = request.input !== undefined;
@@ -142,14 +181,14 @@ function rpcResult(rpc, returned) {
142
181
  }
143
182
  return returned;
144
183
  }
145
- function mapWait(flow, wait) {
184
+ function mapWait(registry, flow, wait) {
146
185
  if (wait === undefined) {
147
186
  throw new TypeError("waitFor returned undefined");
148
187
  }
149
188
  if (wait.kind === "skipImmediately") {
150
189
  return undefined;
151
190
  }
152
- const mapper = new ConditionMapper(flow);
191
+ const mapper = new ConditionMapper(registry, flow);
153
192
  let waitingConditionType;
154
193
  const combinations = [];
155
194
  if (wait.kind === "allOf" || wait.kind === "anyOf") {
@@ -161,7 +200,7 @@ function mapWait(flow, wait) {
161
200
  ? WaitingConditionType.WAITING_CONDITION_TYPE_ALL_COMPLETED
162
201
  : WaitingConditionType.WAITING_CONDITION_TYPE_ANY_COMPLETED;
163
202
  for (const condition of wait.conditions) {
164
- mapper.add(condition);
203
+ mapper.add(condition, false);
165
204
  }
166
205
  }
167
206
  else {
@@ -169,7 +208,7 @@ function mapWait(flow, wait) {
169
208
  WaitingConditionType.WAITING_CONDITION_TYPE_ANY_COMBINATION_COMPLETED;
170
209
  for (const combination of wait.combinations) {
171
210
  combinations.push(ProtoConditionCombination.create({
172
- conditionIds: combination.conditions.map((condition) => mapper.add(condition)),
211
+ conditionIds: combination.conditions.map((condition) => mapper.add(condition, true)),
173
212
  }));
174
213
  }
175
214
  }
@@ -177,6 +216,7 @@ function mapWait(flow, wait) {
177
216
  waitingConditionType,
178
217
  timerConditions: mapper.timers,
179
218
  channelConditions: mapper.channels,
219
+ subFlowConditions: mapper.subFlows,
180
220
  conditionCombinations: combinations,
181
221
  });
182
222
  }
@@ -188,14 +228,14 @@ function mapDecision(flow, decision) {
188
228
  if (decision.movements.length === 0) {
189
229
  throw new TypeError("goToMulti requires a movement");
190
230
  }
191
- return ProtoStepDecision.create({ nextSteps: mapMovements(flow, decision.movements) });
231
+ return withCancellationSelection(flow, decision, ProtoStepDecision.create({ nextSteps: mapMovements(flow, decision.movements) }));
192
232
  }
193
233
  if (decision.kind === "deadEnd") {
194
- return ProtoStepDecision.create({
234
+ return withCancellationSelection(flow, decision, ProtoStepDecision.create({
195
235
  closeDecision: CloseDecision.create({
196
236
  closeDecisionType: CloseDecisionType.CLOSE_DECISION_TYPE_DEAD_END,
197
237
  }),
198
- });
238
+ }));
199
239
  }
200
240
  if (decision.kind === "forceCompleteIfChannelsEmpty") {
201
241
  const channels = decision.channels.map((channel) => {
@@ -204,26 +244,64 @@ function mapDecision(flow, decision) {
204
244
  }
205
245
  return channel.name;
206
246
  });
207
- return ProtoStepDecision.create({
247
+ return withCancellationSelection(flow, decision, ProtoStepDecision.create({
208
248
  nextSteps: [mapMovement(flow, decision.fallback)],
209
249
  closeDecision: CloseDecision.create({
210
250
  closeDecisionType: CloseDecisionType.CLOSE_DECISION_TYPE_FORCE_COMPLETE_ON_CHANNELS_EMPTY,
211
251
  conditionalChannelNames: channels,
212
252
  closeInput: encodeUnknown(decision.output),
213
253
  }),
214
- });
254
+ }));
215
255
  }
216
256
  const closeTypes = {
217
257
  gracefulComplete: CloseDecisionType.CLOSE_DECISION_TYPE_GRACEFUL_COMPLETE,
218
258
  forceComplete: CloseDecisionType.CLOSE_DECISION_TYPE_FORCE_COMPLETE,
219
259
  forceFail: CloseDecisionType.CLOSE_DECISION_TYPE_FORCE_FAIL,
220
260
  };
221
- return ProtoStepDecision.create({
261
+ const closeInput = decision.kind === "forceFail"
262
+ ? encodeUnknown(decision.reason)
263
+ : decision.output === undefined
264
+ ? undefined
265
+ : encodeUnknown(decision.output);
266
+ return withCancellationSelection(flow, decision, ProtoStepDecision.create({
222
267
  closeDecision: CloseDecision.create({
223
268
  closeDecisionType: closeTypes[decision.kind],
224
- closeInput: encodeUnknown(decision.kind === "forceFail" ? decision.reason : decision.output),
269
+ closeInput,
225
270
  }),
226
- });
271
+ }));
272
+ }
273
+ function withCancellationSelection(flow, decision, mapped) {
274
+ mapped.cancelStepTypes = mapCancellationSteps(flow, decision.cancelingSteps);
275
+ const globalTypes = new Set(mapped.cancelStepTypes);
276
+ mapped.cancelSiblingStepTypes = mapCancellationSteps(flow, decision.cancelingSiblingSteps).filter((stepType) => !globalTypes.has(stepType));
277
+ return mapped;
278
+ }
279
+ function mapCancellationSteps(flow, steps) {
280
+ const stepTypes = [];
281
+ const seen = new Set();
282
+ for (const step of steps ?? []) {
283
+ const target = flow.steps.find((candidate) => candidate.step === step);
284
+ if (target === undefined) {
285
+ throw new TypeError("cancellation Step must belong to the Flow");
286
+ }
287
+ if (seen.has(target.name)) {
288
+ continue;
289
+ }
290
+ seen.add(target.name);
291
+ stepTypes.push(target.name);
292
+ }
293
+ return stepTypes;
294
+ }
295
+ function rpcDecision(flow, result) {
296
+ if (result === undefined) {
297
+ return undefined;
298
+ }
299
+ const nextSteps = mapMovements(flow, result.nextSteps ?? []);
300
+ const cancelStepTypes = mapCancellationSteps(flow, result.cancelingSteps);
301
+ if (nextSteps.length === 0 && cancelStepTypes.length === 0) {
302
+ return undefined;
303
+ }
304
+ return ProtoStepDecision.create({ nextSteps, cancelStepTypes });
227
305
  }
228
306
  function mapMovements(flow, movements) {
229
307
  return movements.map((movement) => mapMovement(flow, movement));
@@ -251,6 +329,7 @@ function mapStepOptions(flow, options, skipWaitFor) {
251
329
  return ProtoStepOptions.create({
252
330
  waitForTimeoutSeconds: seconds(options?.waitForMethodTimeoutMs),
253
331
  executeTimeoutSeconds: seconds(options?.executeMethodTimeoutMs),
332
+ heartbeatTimeoutSeconds: heartbeatSeconds(options?.heartbeatTimeoutMs),
254
333
  waitForRetryPolicy: mapRetry(options?.waitForRetry),
255
334
  executeRetryPolicy: mapRetry(options?.executeRetry),
256
335
  waitForFailurePolicy: options?.waitForFailure === "proceed"
@@ -297,32 +376,42 @@ function mapRetry(retry) {
297
376
  };
298
377
  }
299
378
  class ConditionMapper {
379
+ registry;
300
380
  flow;
301
381
  timers = [];
302
382
  channels = [];
383
+ subFlows = [];
303
384
  ids = new Map();
304
385
  used = new Set();
305
- nextId = 0;
306
- constructor(flow) {
386
+ constructor(registry, flow) {
387
+ this.registry = registry;
307
388
  this.flow = flow;
308
389
  }
309
- add(condition) {
390
+ add(condition, idRequired) {
310
391
  const existing = this.ids.get(condition);
311
392
  if (existing !== undefined) {
312
393
  return existing;
313
394
  }
314
- const id = condition.conditionId ?? `${internalConditionPrefix}${this.nextId++}`;
315
- if (id === "" || this.used.has(id)) {
316
- throw new TypeError("duplicate or empty Condition ID");
395
+ const id = condition.conditionId ?? "";
396
+ if (idRequired && id === "") {
397
+ throw new TypeError("anyCombinationOf requires every Condition to have an ID");
398
+ }
399
+ if (condition.conditionId !== undefined && id === "") {
400
+ throw new TypeError("empty Condition ID");
401
+ }
402
+ if (id !== "" && this.used.has(id)) {
403
+ throw new TypeError("duplicate Condition ID");
404
+ }
405
+ if (id !== "") {
406
+ this.used.add(id);
317
407
  }
318
- this.used.add(id);
319
408
  if (condition.kind === "timer") {
320
409
  this.timers.push(TimerCondition.create({
321
410
  conditionId: id,
322
411
  durationSeconds: BigInt(seconds(condition.durationMs)),
323
412
  }));
324
413
  }
325
- else {
414
+ else if (condition.kind === "channel") {
326
415
  const registered = this.flow.persistence.get(condition.channelName ?? "");
327
416
  if (!(registered instanceof Channel) && !(registered instanceof ChannelMap)) {
328
417
  throw new TypeError(`Channel is not registered: ${condition.channelName ?? ""}`);
@@ -337,10 +426,141 @@ class ConditionMapper {
337
426
  atMost: condition.atMost,
338
427
  }));
339
428
  }
429
+ else {
430
+ const targetFlow = condition.subFlow;
431
+ if (targetFlow === undefined) {
432
+ throw new TypeError("SubFlow requires a target Flow");
433
+ }
434
+ const target = registeredFlow(this.registry, targetFlow);
435
+ const start = target.startStep;
436
+ if (start === undefined) {
437
+ throw new TypeError(`SubFlow ${target.name} has no starting Step`);
438
+ }
439
+ const options = condition.subFlowOptions ?? {};
440
+ this.subFlows.push(ProtoSubFlowCondition.create({
441
+ conditionId: id,
442
+ subFlowType: target.name,
443
+ startStepType: start.name,
444
+ stepInput: encodeValue(start.step.inputCodec, condition.subFlowInput),
445
+ stepOptions: mapStepOptions(target, start.step.getStepOptions?.(), start.step.waitFor === undefined),
446
+ options: mapSubFlowOptions(target, options),
447
+ subFlowIndex: this.subFlows.length,
448
+ }));
449
+ }
340
450
  this.ids.set(condition, id);
341
451
  return id;
342
452
  }
343
453
  }
454
+ function mapSubFlowOptions(target, options) {
455
+ const timeoutSeconds = seconds(options.timeoutMs);
456
+ const attributes = (options.attributes ?? []).map((initial) => {
457
+ if (target.persistence.get(initial.attribute.name) !== initial.attribute) {
458
+ throw new TypeError(`SubFlow Attribute does not belong to ${target.name}`);
459
+ }
460
+ let key;
461
+ if (initial.attribute instanceof AttributeMap) {
462
+ key = physicalName(initial.attribute.name, initial.instance);
463
+ }
464
+ else {
465
+ if (initial.instance !== undefined) {
466
+ throw new TypeError("static Attribute cannot use an instance");
467
+ }
468
+ key = initial.attribute.name;
469
+ }
470
+ return {
471
+ key,
472
+ value: encodeValue(initial.attribute.codec, initial.value),
473
+ indexConfig: mapIndex(initial.attribute.index),
474
+ syncConfig: mapAttributeStoreSync(initial.attribute),
475
+ };
476
+ });
477
+ const reusePolicy = options.reusePolicy === SubFlowReusePolicy.ATTACH
478
+ ? ProtoSubFlowReusePolicy.SUB_FLOW_REUSE_POLICY_ATTACH
479
+ : options.reusePolicy === SubFlowReusePolicy.ALWAYS_RESTART
480
+ ? ProtoSubFlowReusePolicy.SUB_FLOW_REUSE_POLICY_ALWAYS_RESTART
481
+ : ProtoSubFlowReusePolicy.SUB_FLOW_REUSE_POLICY_RESTART_IF_PREVIOUS_EXITS_ABNORMALLY;
482
+ return ProtoSubFlowOptions.create({
483
+ reusePolicy,
484
+ flowTimeoutSeconds: timeoutSeconds,
485
+ flowTimeoutPolicy: resolveFlowTimeoutPolicy(target, timeoutSeconds, options.timeoutPolicy),
486
+ flowStartDelaySeconds: seconds(options.startDelayMs),
487
+ retryPolicy: mapFlowRetry(options.retryPolicy),
488
+ attributes,
489
+ flowConfigOverride: mapSubFlowConfig(options.configOverride),
490
+ });
491
+ }
492
+ function resolveFlowTimeoutPolicy(flow, timeoutSeconds, policy) {
493
+ const requested = policy ?? FlowTimeoutPolicy.DEFAULT;
494
+ if (timeoutSeconds === 0) {
495
+ if (requested !== FlowTimeoutPolicy.DEFAULT) {
496
+ throw new RangeError("Flow timeout policy requires a positive timeout");
497
+ }
498
+ return ProtoFlowTimeoutPolicy.FLOW_TIMEOUT_POLICY_UNSPECIFIED;
499
+ }
500
+ const resolved = requested === FlowTimeoutPolicy.DEFAULT
501
+ ? flow.hasTimeoutHandler
502
+ ? FlowTimeoutPolicy.HANDLER
503
+ : FlowTimeoutPolicy.FAIL
504
+ : requested;
505
+ if (resolved === FlowTimeoutPolicy.HANDLER && !flow.hasTimeoutHandler) {
506
+ throw new TypeError(`Flow ${flow.name} does not implement handleTimeout`);
507
+ }
508
+ return {
509
+ [FlowTimeoutPolicy.DEFAULT]: ProtoFlowTimeoutPolicy.FLOW_TIMEOUT_POLICY_UNSPECIFIED,
510
+ [FlowTimeoutPolicy.FAIL]: ProtoFlowTimeoutPolicy.FLOW_TIMEOUT_POLICY_FAIL,
511
+ [FlowTimeoutPolicy.CANCEL]: ProtoFlowTimeoutPolicy.FLOW_TIMEOUT_POLICY_CANCEL,
512
+ [FlowTimeoutPolicy.HANDLER]: ProtoFlowTimeoutPolicy.FLOW_TIMEOUT_POLICY_HANDLER,
513
+ }[resolved];
514
+ }
515
+ function mapFlowRetry(retry) {
516
+ if (retry === undefined)
517
+ return undefined;
518
+ return FlowRetryPolicy.create({
519
+ initialIntervalSeconds: seconds(retry.initialIntervalMs),
520
+ backoffCoefficient: retry.backoffCoefficient ?? 0,
521
+ maximumIntervalSeconds: seconds(retry.maximumIntervalMs),
522
+ maximumAttempts: retry.maximumAttempts ?? 0,
523
+ });
524
+ }
525
+ function mapSubFlowConfig(config) {
526
+ if (config === undefined)
527
+ return undefined;
528
+ return ProtoFlowConfig.create({
529
+ activeStepSearchMode: config.activeStepSearchMode === ActiveStepSearchMode.ALL
530
+ ? ProtoActiveStepSearchMode.ACTIVE_STEP_SEARCH_MODE_ENABLED_FOR_ALL
531
+ : config.activeStepSearchMode === undefined
532
+ ? undefined
533
+ : ProtoActiveStepSearchMode.ACTIVE_STEP_SEARCH_MODE_UNSPECIFIED,
534
+ attributeSyncConfigName: mapAttributeStoreName(config),
535
+ continueAsNewThreshold: config.continueAsNewThreshold,
536
+ continueAsNewPageSizeInBytes: config.continueAsNewPageSizeBytes,
537
+ stepDurability: config.stepDurability === "sync"
538
+ ? ProtoStepDurability.STEP_DURABILITY_SYNC
539
+ : config.stepDurability === "async"
540
+ ? ProtoStepDurability.STEP_DURABILITY_ASYNC
541
+ : undefined,
542
+ workerTarget: config.workerTarget === undefined
543
+ ? undefined
544
+ : {
545
+ address: config.workerTarget.address,
546
+ isHeadlessAddress: config.workerTarget.headless ?? false,
547
+ },
548
+ });
549
+ }
550
+ function mapIndex(index) {
551
+ if (index === undefined)
552
+ return undefined;
553
+ const types = {
554
+ [IndexType.KEYWORD]: ProtoIndexType.INDEX_TYPE_KEYWORD,
555
+ [IndexType.FULL_TEXT]: ProtoIndexType.INDEX_TYPE_TEXT,
556
+ [IndexType.KEYWORD_ARRAY]: ProtoIndexType.INDEX_TYPE_KEYWORD_ARRAY,
557
+ [IndexType.INT]: ProtoIndexType.INDEX_TYPE_INT,
558
+ [IndexType.DOUBLE]: ProtoIndexType.INDEX_TYPE_DOUBLE,
559
+ [IndexType.BOOL]: ProtoIndexType.INDEX_TYPE_BOOL,
560
+ [IndexType.DATETIME]: ProtoIndexType.INDEX_TYPE_DATETIME,
561
+ };
562
+ return { enable: true, type: types[index.type], indexKey: index.indexKey ?? "" };
563
+ }
344
564
  function replaceEntryValues(entries, values) {
345
565
  if (entries.length !== values.length) {
346
566
  throw new TypeError("hydrated entry count does not match request");
@@ -361,10 +581,17 @@ function replaceConditionValues(results, values) {
361
581
  offset = next;
362
582
  return replaced;
363
583
  });
584
+ const subFlowResults = results.subFlowResults.map((result) => ({
585
+ ...result,
586
+ results: result.results.map((completion) => ({
587
+ ...completion,
588
+ completedStepOutput: values[offset++],
589
+ })),
590
+ }));
364
591
  if (offset !== values.length) {
365
592
  throw new TypeError("hydrated Condition value count does not match request");
366
593
  }
367
- return { ...results, channelResults };
594
+ return { ...results, channelResults, subFlowResults };
368
595
  }
369
596
  function requireValue(value, kind) {
370
597
  if (value?.kind === undefined) {
@@ -387,6 +614,13 @@ function seconds(milliseconds) {
387
614
  }
388
615
  return milliseconds / 1_000;
389
616
  }
617
+ function heartbeatSeconds(milliseconds) {
618
+ const value = seconds(milliseconds);
619
+ if (value > 2_147_483_647) {
620
+ throw new RangeError("heartbeat timeout exceeds int32 seconds");
621
+ }
622
+ return value;
623
+ }
390
624
  function invalidStepResult(flowType, stepType, method, failure) {
391
625
  if (failure instanceof ValueMappingError) {
392
626
  return failure;
@@ -1 +1 @@
1
- {"version":3,"file":"worker-dispatcher.js","sourceRoot":"","sources":["../../src/worker-dispatcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-dispatcher.js","sourceRoot":"","sources":["../../src/worker-dispatcher.ts"],"names":[],"mappings":"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"}
@@ -125,18 +125,34 @@ function syncAttributeIndexes(service, registry, timeoutMs) {
125
125
  function workerService(dispatcher) {
126
126
  return {
127
127
  invokeWaitForMethod(call, callback) {
128
- invoke(() => dispatcher.invokeWaitFor(call.request), callback);
128
+ invoke(call, (signal) => dispatcher.invokeWaitFor(call.request, signal), callback);
129
129
  },
130
130
  invokeExecuteMethod(call, callback) {
131
- invoke(() => dispatcher.invokeExecute(call.request), callback);
131
+ invoke(call, (signal) => dispatcher.invokeExecute(call.request, signal), callback);
132
132
  },
133
133
  invokeWorkerRpc(call, callback) {
134
- invoke(() => dispatcher.invokeRPC(call.request), callback);
134
+ invoke(call, (signal) => dispatcher.invokeRPC(call.request, signal), callback);
135
135
  },
136
136
  };
137
137
  }
138
- function invoke(invocation, callback) {
139
- invocation().then((response) => callback(null, response), (failure) => callback(workerServiceError(failure), null));
138
+ function invoke(call, invocation, callback) {
139
+ const controller = new AbortController();
140
+ const cancel = () => controller.abort();
141
+ call.once("cancelled", cancel);
142
+ if (call.cancelled) {
143
+ cancel();
144
+ }
145
+ invocation(controller.signal)
146
+ .then((response) => {
147
+ if (!controller.signal.aborted) {
148
+ callback(null, response);
149
+ }
150
+ }, (failure) => {
151
+ if (!controller.signal.aborted) {
152
+ callback(workerServiceError(failure), null);
153
+ }
154
+ })
155
+ .finally(() => call.off("cancelled", cancel));
140
156
  }
141
157
  function bind(server, address) {
142
158
  parseAddress(address);