@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
package/dist/src/step.js CHANGED
@@ -132,7 +132,7 @@ export const forceComplete = (output) => ({ kind: "forceComplete", output });
132
132
  * @param channels - Registered Channel definitions to inspect.
133
133
  * @returns A conditional force-completion decision.
134
134
  */
135
- export const forceCompleteWhenChannelsEmpty = (output, fallback, ...channels) => ({ kind: "forceCompleteIfChannelsEmpty", output, fallback, channels });
135
+ export const forceCompleteIfChannelsEmpty = (output, fallback, ...channels) => ({ kind: "forceCompleteIfChannelsEmpty", output, fallback, channels });
136
136
  /**
137
137
  * Requests immediate Flow failure.
138
138
  * @param reason - Non-empty application-readable failure detail.
@@ -144,4 +144,41 @@ export const forceFail = (reason) => ({ kind: "forceFail", reason });
144
144
  * @returns A decision ending this path without closing the Flow.
145
145
  */
146
146
  export const deadEnd = () => ({ kind: "deadEnd" });
147
+ /**
148
+ * Returns a copy selecting every current execution of the supplied Step types.
149
+ *
150
+ * Dex resolves one snapshot after `execute` succeeds. Finished, already-canceled,
151
+ * and absent executions are no-ops. Steps scheduled by the same decision are excluded.
152
+ * Repeated calls take the union, and Flow-wide selection supersedes sibling selection.
153
+ * @param decision - Decision to copy.
154
+ * @param steps - Exact Step instances registered with the current Flow.
155
+ * @returns A new decision containing the combined Flow-wide selectors.
156
+ */
157
+ export const withCancelingSteps = (decision, ...steps) => {
158
+ const cancelingSteps = unionSteps(decision.cancelingSteps, steps);
159
+ const cancelingSiblingSteps = (decision.cancelingSiblingSteps ?? []).filter((step) => !cancelingSteps.includes(step));
160
+ return { ...decision, cancelingSteps, cancelingSiblingSteps };
161
+ };
162
+ /**
163
+ * Returns a copy selecting same-source executions of the supplied Step types.
164
+ *
165
+ * A sibling has the same `Context.fromStepExecutionId` as the execution returning
166
+ * the decision. Snapshot and no-op behavior match {@link withCancelingSteps}.
167
+ * @param decision - Decision to copy.
168
+ * @param steps - Exact Step instances registered with the current Flow.
169
+ * @returns A new decision containing the combined sibling selectors.
170
+ */
171
+ export const withCancelingSiblingSteps = (decision, ...steps) => ({
172
+ ...decision,
173
+ cancelingSiblingSteps: unionSteps(decision.cancelingSiblingSteps, steps).filter((step) => !(decision.cancelingSteps ?? []).includes(step)),
174
+ });
175
+ function unionSteps(existing, added) {
176
+ const combined = [...(existing ?? [])];
177
+ for (const step of added) {
178
+ if (!combined.includes(step)) {
179
+ combined.push(step);
180
+ }
181
+ }
182
+ return combined;
183
+ }
147
184
  //# sourceMappingURL=step.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"step.js","sourceRoot":"","sources":["../../src/step.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"step.js","sourceRoot":"","sources":["../../src/step.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import type { Context } from "./context.js";
2
+ import type { Flow } from "./flow.js";
3
+ import type { FlowResult } from "./flow-result.js";
4
+ import type { FlowConfig, FlowTimeoutPolicy, InitialAttribute } from "./options.js";
5
+ import type { RetryPolicy } from "./step.js";
6
+ import type { Condition } from "./wait.js";
7
+ /** Controls how a generated SubFlow Flow ID resolves an existing execution. */
8
+ export declare const SubFlowReusePolicy: Readonly<{
9
+ /** Attaches to a running execution or returns its existing terminal result. */
10
+ readonly ATTACH: "attach";
11
+ /** Restarts abnormal executions, attaches while running, and returns completed results. */
12
+ readonly RESTART_IF_PREVIOUS_EXITS_ABNORMALLY: "restartIfPreviousExitsAbnormally";
13
+ /** Replaces any different existing execution, including a running one. */
14
+ readonly ALWAYS_RESTART: "alwaysRestart";
15
+ }>;
16
+ /** Represents a value from {@link SubFlowReusePolicy}. */
17
+ export type SubFlowReusePolicy = (typeof SubFlowReusePolicy)[keyof typeof SubFlowReusePolicy];
18
+ /** Configures one durable SubFlow condition. All durations use milliseconds. */
19
+ export interface SubFlowOptions {
20
+ /** Maximum SubFlow lifetime; normal Flow defaults apply when omitted. */
21
+ readonly timeoutMs?: number;
22
+ /** Action taken when a positive timeout expires; defaults from the target Flow's hook. */
23
+ readonly timeoutPolicy?: FlowTimeoutPolicy;
24
+ /** Delay before the SubFlow starting Step, in milliseconds. */
25
+ readonly startDelayMs?: number;
26
+ /** Whole-Flow retry behavior after abnormal completion. */
27
+ readonly retryPolicy?: RetryPolicy;
28
+ /** Initial Attributes owned by the target SubFlow. */
29
+ readonly attributes?: readonly InitialAttribute<any>[];
30
+ /** Fields applied over the inherited parent Flow configuration. */
31
+ readonly configOverride?: FlowConfig;
32
+ /** Existing-execution policy; defaults to abnormal restart. */
33
+ readonly reusePolicy?: SubFlowReusePolicy;
34
+ /** Stable condition ID required by `Wait.anyCombinationOf`. */
35
+ readonly conditionId?: string;
36
+ }
37
+ /** Creates durable SubFlow conditions and reads their Execute results. */
38
+ export declare const SubFlow: Readonly<{
39
+ /**
40
+ * Creates a condition that starts or reuses a registered Flow and awaits completion.
41
+ * @typeParam Input - Target starting Step input type.
42
+ * @param flow - Exact target Flow instance registered by the Worker.
43
+ * @param input - Input accepted by its starting Step.
44
+ * @param options - Optional timing, retry, Attribute, configuration, reuse, and ID settings.
45
+ * @returns A durable SubFlow condition accepted by Wait factories.
46
+ */
47
+ run<Input>(flow: Flow<Input>, input: Input, options?: SubFlowOptions): Condition;
48
+ /**
49
+ * Returns one stable-indexed SubFlow result during Step execute.
50
+ * @param context - Current Dex Execute context.
51
+ * @param index - Zero-based SubFlow order; defaults to zero.
52
+ * @returns A terminal result or an AnyOf loser's running snapshot.
53
+ */
54
+ getConditionResults(context: Context, index?: number): FlowResult;
55
+ /**
56
+ * Returns one generated SubFlow Flow ID during Step execute.
57
+ * @param context - Current Dex Execute context.
58
+ * @param index - Zero-based SubFlow order; defaults to zero.
59
+ * @returns An addressable Flow ID suitable for `Client.stopFlow`.
60
+ */
61
+ getFlowId(context: Context, index?: number): string;
62
+ }>;
@@ -0,0 +1,62 @@
1
+ // Copyright (c) 2026 Super Durable, Inc.
2
+ //
3
+ // Licensed under the Super Durable Source License 1.0.
4
+ // You may not use this file except in compliance with the License.
5
+ // See the LICENSE file in the repository root.
6
+ //
7
+ // SPDX-License-Identifier: LicenseRef-Super-Durable-1.0
8
+ import { InvocationContext } from "./invocation-context.js";
9
+ /** Controls how a generated SubFlow Flow ID resolves an existing execution. */
10
+ export const SubFlowReusePolicy = Object.freeze({
11
+ /** Attaches to a running execution or returns its existing terminal result. */
12
+ ATTACH: "attach",
13
+ /** Restarts abnormal executions, attaches while running, and returns completed results. */
14
+ RESTART_IF_PREVIOUS_EXITS_ABNORMALLY: "restartIfPreviousExitsAbnormally",
15
+ /** Replaces any different existing execution, including a running one. */
16
+ ALWAYS_RESTART: "alwaysRestart",
17
+ });
18
+ /** Creates durable SubFlow conditions and reads their Execute results. */
19
+ export const SubFlow = Object.freeze({
20
+ /**
21
+ * Creates a condition that starts or reuses a registered Flow and awaits completion.
22
+ * @typeParam Input - Target starting Step input type.
23
+ * @param flow - Exact target Flow instance registered by the Worker.
24
+ * @param input - Input accepted by its starting Step.
25
+ * @param options - Optional timing, retry, Attribute, configuration, reuse, and ID settings.
26
+ * @returns A durable SubFlow condition accepted by Wait factories.
27
+ */
28
+ run(flow, input, options = {}) {
29
+ return Object.freeze({
30
+ kind: "subFlow",
31
+ subFlow: flow,
32
+ subFlowInput: input,
33
+ subFlowOptions: options,
34
+ ...(options.conditionId === undefined ? {} : { conditionId: options.conditionId }),
35
+ });
36
+ },
37
+ /**
38
+ * Returns one stable-indexed SubFlow result during Step execute.
39
+ * @param context - Current Dex Execute context.
40
+ * @param index - Zero-based SubFlow order; defaults to zero.
41
+ * @returns A terminal result or an AnyOf loser's running snapshot.
42
+ */
43
+ getConditionResults(context, index = 0) {
44
+ return invocation(context).subFlowResult(index);
45
+ },
46
+ /**
47
+ * Returns one generated SubFlow Flow ID during Step execute.
48
+ * @param context - Current Dex Execute context.
49
+ * @param index - Zero-based SubFlow order; defaults to zero.
50
+ * @returns An addressable Flow ID suitable for `Client.stopFlow`.
51
+ */
52
+ getFlowId(context, index = 0) {
53
+ return invocation(context).subFlowId(index);
54
+ },
55
+ });
56
+ function invocation(context) {
57
+ if (!(context instanceof InvocationContext)) {
58
+ throw new TypeError("SubFlow access requires a Dex invocation Context");
59
+ }
60
+ return context;
61
+ }
62
+ //# sourceMappingURL=subflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subflow.js","sourceRoot":"","sources":["../../src/subflow.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,uDAAuD;AACvD,mEAAmE;AACnE,+CAA+C;AAC/C,EAAE;AACF,wDAAwD;AAKxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAK5D,+EAA+E;AAC/E,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9C,+EAA+E;IAC/E,MAAM,EAAE,QAAQ;IAChB,2FAA2F;IAC3F,oCAAoC,EAAE,kCAAkC;IACxE,0EAA0E;IAC1E,cAAc,EAAE,eAAe;CACvB,CAAC,CAAC;AA0BZ,0EAA0E;AAC1E,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;IACnC;;;;;;;OAOG;IACH,GAAG,CAAQ,IAAiB,EAAE,KAAY,EAAE,UAA0B,EAAE;QACtE,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,SAAkB;YACxB,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,OAAO;YACvB,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;SACnF,CAAC,CAAC;IACL,CAAC;IACD;;;;;OAKG;IACH,mBAAmB,CAAC,OAAgB,EAAE,KAAK,GAAG,CAAC;QAC7C,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IACD;;;;;OAKG;IACH,SAAS,CAAC,OAAgB,EAAE,KAAK,GAAG,CAAC;QACnC,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;CACF,CAAC,CAAC;AAEH,SAAS,UAAU,CAAC,OAAgB;IAClC,IAAI,CAAC,CAAC,OAAO,YAAY,iBAAiB,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,SAAS,CAAC,kDAAkD,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,9 +1,11 @@
1
1
  import type { Codec } from "./codec.js";
2
2
  import type { Context } from "./context.js";
3
- /** Describes one durable Timer or Channel readiness condition. */
3
+ import type { Flow } from "./flow.js";
4
+ import type { SubFlowOptions } from "./subflow.js";
5
+ /** Describes one durable Timer, Channel, or SubFlow readiness condition. */
4
6
  export interface Condition {
5
7
  /** Condition family interpreted by Dex. */
6
- readonly kind: "timer" | "channel";
8
+ readonly kind: "timer" | "channel" | "subFlow";
7
9
  /** Optional stable ID unique within the Wait tree. */
8
10
  readonly conditionId?: string;
9
11
  /** Timer delay in non-negative milliseconds. */
@@ -16,6 +18,12 @@ export interface Condition {
16
18
  readonly atLeast?: number;
17
19
  /** Inclusive upper queued-value bound. */
18
20
  readonly atMost?: number;
21
+ /** Exact registered Flow instance targeted by a SubFlow condition. */
22
+ readonly subFlow?: Flow<any>;
23
+ /** Starting Step input for a SubFlow condition. */
24
+ readonly subFlowInput?: unknown;
25
+ /** Start, reuse, and condition options for a SubFlow condition. */
26
+ readonly subFlowOptions?: SubFlowOptions;
19
27
  }
20
28
  /** Groups Conditions that must become ready together. */
21
29
  export interface ConditionCombination {
@@ -135,6 +143,18 @@ export declare class ChannelMap<T> {
135
143
  * @returns Non-negative queued value count.
136
144
  */
137
145
  size(context: Context, instance: string): number;
146
+ /**
147
+ * Returns the number of non-empty instances visible to the current RPC.
148
+ * @param context - Current RPC Context.
149
+ * @returns The number of keys after including publications buffered by this RPC.
150
+ */
151
+ getMapSize(context: Context): number;
152
+ /**
153
+ * Returns decoded non-empty instance keys in ascending order.
154
+ * @param context - Current RPC Context.
155
+ * @returns Keys including publications buffered by the current RPC.
156
+ */
157
+ getAllInstanceKeys(context: Context): readonly string[];
138
158
  /**
139
159
  * Returns values selected for one instance by the satisfied condition.
140
160
  * @param context - Current Step Context.
@@ -230,6 +250,7 @@ export declare const Wait: Readonly<{
230
250
  anyOf(...conditions: readonly Condition[]): Wait;
231
251
  /**
232
252
  * Creates a Wait accepting any complete condition combination.
253
+ * Every Condition requires a non-empty user ID; the same instance may be reused.
233
254
  * @param combinations - Alternative all-of condition groups.
234
255
  * @returns An any-combination Wait.
235
256
  */
package/dist/src/wait.js CHANGED
@@ -167,6 +167,22 @@ export class ChannelMap {
167
167
  size(context, instance) {
168
168
  return context.channelSize(this, instance);
169
169
  }
170
+ /**
171
+ * Returns the number of non-empty instances visible to the current RPC.
172
+ * @param context - Current RPC Context.
173
+ * @returns The number of keys after including publications buffered by this RPC.
174
+ */
175
+ getMapSize(context) {
176
+ return this.getAllInstanceKeys(context).length;
177
+ }
178
+ /**
179
+ * Returns decoded non-empty instance keys in ascending order.
180
+ * @param context - Current RPC Context.
181
+ * @returns Keys including publications buffered by the current RPC.
182
+ */
183
+ getAllInstanceKeys(context) {
184
+ return context.channelMapKeys(this);
185
+ }
170
186
  /**
171
187
  * Returns values selected for one instance by the satisfied condition.
172
188
  * @param context - Current Step Context.
@@ -271,6 +287,7 @@ export const Wait = Object.freeze({
271
287
  },
272
288
  /**
273
289
  * Creates a Wait accepting any complete condition combination.
290
+ * Every Condition requires a non-empty user ID; the same instance may be reused.
274
291
  * @param combinations - Alternative all-of condition groups.
275
292
  * @returns An any-combination Wait.
276
293
  */
@@ -1 +1 @@
1
- {"version":3,"file":"wait.js","sourceRoot":"","sources":["../../src/wait.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wait.js","sourceRoot":"","sources":["../../src/wait.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,10 @@ export declare class WorkerDispatcher {
5
5
  private readonly registry;
6
6
  private readonly hydrator;
7
7
  constructor(registry: Registry, hydrator: ValueHydrator);
8
- invokeWaitFor(original: InvokeWaitForMethodRequest): Promise<InvokeWaitForMethodResponse>;
9
- invokeExecute(original: InvokeExecuteMethodRequest): Promise<InvokeExecuteMethodResponse>;
10
- invokeRPC(original: InvokeWorkerRPCRequest): Promise<InvokeWorkerRPCResponse>;
8
+ invokeWaitFor(original: InvokeWaitForMethodRequest, cancellationSignal?: AbortSignal): Promise<InvokeWaitForMethodResponse>;
9
+ invokeExecute(original: InvokeExecuteMethodRequest, cancellationSignal?: AbortSignal): Promise<InvokeExecuteMethodResponse>;
10
+ private invokeTimeoutHandler;
11
+ invokeRPC(original: InvokeWorkerRPCRequest, cancellationSignal?: AbortSignal): Promise<InvokeWorkerRPCResponse>;
11
12
  private hydrateWaitFor;
12
13
  private hydrateExecute;
13
14
  private hydrateRPC;