@superdurable/dex 0.2.0 → 0.2.2

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.
@@ -12,6 +12,7 @@ export * from "./retry-after.js";
12
12
  export { rpc } from "./rpc.js";
13
13
  export type { RPC, RPCOptions, RPCResult } from "./rpc.js";
14
14
  export * from "./step.js";
15
+ export * from "./stream.js";
15
16
  export * from "./subflow.js";
16
17
  export * from "./wait.js";
17
18
  export * from "./worker.js";
package/dist/src/index.js CHANGED
@@ -16,6 +16,7 @@ export * from "./persistence.js";
16
16
  export * from "./retry-after.js";
17
17
  export { rpc } from "./rpc.js";
18
18
  export * from "./step.js";
19
+ export * from "./stream.js";
19
20
  export * from "./subflow.js";
20
21
  export * from "./wait.js";
21
22
  export * from "./worker.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,uDAAuD;AACvD,mEAAmE;AACnE,+CAA+C;AAC/C,EAAE;AACF,wDAAwD;AAExD,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,uDAAuD;AACvD,mEAAmE;AACnE,+CAA+C;AAC/C,EAAE;AACF,wDAAwD;AAExD,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
@@ -1,14 +1,17 @@
1
1
  import type { Codec } from "./codec.js";
2
+ import { FlowServiceClient } from "./gen/dex.js";
2
3
  import type { Context } from "./context.js";
3
4
  import { type AttributeWrite, type ChannelInfo, type ChannelMessage, type ConditionResults, type Context as ProtoContext, type KV } from "./gen/dex.js";
4
- import type { RegisteredFlow } from "./flow.js";
5
+ import { type RegisteredFlow } from "./flow.js";
5
6
  import { type FlowResult } from "./flow-result.js";
6
7
  import { AttributeMap, type Attribute } from "./persistence.js";
7
8
  import { ChannelMap, type Channel } from "./wait.js";
9
+ import type { Stream } from "./stream.js";
8
10
  export type InvocationMethod = "waitFor" | "execute" | "rpc";
9
11
  export declare class InvocationContext implements Context {
10
12
  private readonly method;
11
13
  private readonly flow;
14
+ private readonly flowService;
12
15
  private readonly conditionResults?;
13
16
  readonly flowId: string;
14
17
  readonly runId: string;
@@ -26,7 +29,9 @@ export declare class InvocationContext implements Context {
26
29
  private readonly events;
27
30
  private readonly eventNames;
28
31
  private readonly publications;
29
- constructor(method: InvocationMethod, flow: RegisteredFlow, metadata: ProtoContext | undefined, attributes: readonly KV[], locals?: readonly KV[], conditionResults?: ConditionResults | undefined, channelInfos?: Readonly<Record<string, ChannelInfo>>, cancellationSignal?: AbortSignal);
32
+ private readonly streamWrites;
33
+ constructor(method: InvocationMethod, flow: RegisteredFlow, flowService: InstanceType<typeof FlowServiceClient>, metadata: ProtoContext | undefined, attributes: readonly KV[], locals?: readonly KV[], conditionResults?: ConditionResults | undefined, channelInfos?: Readonly<Record<string, ChannelInfo>>, cancellationSignal?: AbortSignal);
34
+ writeStream<T>(stream: Stream<T>, value: T): Promise<void>;
30
35
  hasTimerFired(index?: number): boolean;
31
36
  waitForMethodFailed(): boolean;
32
37
  subFlowResult(index?: number): FlowResult;
@@ -7,6 +7,7 @@
7
7
  // SPDX-License-Identifier: LicenseRef-Super-Durable-1.0
8
8
  import { mapAttributeStoreSync } from "./attribute-store-sync.js";
9
9
  import { ConditionStatus, IndexType as ProtoIndexType, } from "./gen/dex.js";
10
+ import { requireFlowStream } from "./flow.js";
10
11
  import { createFlowResultFromProto } from "./flow-result.js";
11
12
  import { AttributeMap, IndexType } from "./persistence.js";
12
13
  import { decodeValue, deletionValue, encodeValue } from "./value-mapper.js";
@@ -15,6 +16,7 @@ import { ChannelMap } from "./wait.js";
15
16
  export class InvocationContext {
16
17
  method;
17
18
  flow;
19
+ flowService;
18
20
  conditionResults;
19
21
  flowId;
20
22
  runId;
@@ -32,9 +34,11 @@ export class InvocationContext {
32
34
  events = [];
33
35
  eventNames = new Set();
34
36
  publications = [];
35
- constructor(method, flow, metadata, attributes, locals = [], conditionResults, channelInfos = {}, cancellationSignal = new AbortController().signal) {
37
+ streamWrites = new Set();
38
+ constructor(method, flow, flowService, metadata, attributes, locals = [], conditionResults, channelInfos = {}, cancellationSignal = new AbortController().signal) {
36
39
  this.method = method;
37
40
  this.flow = flow;
41
+ this.flowService = flowService;
38
42
  this.conditionResults = conditionResults;
39
43
  if (metadata === undefined) {
40
44
  throw new TypeError("Worker request Context is required");
@@ -51,6 +55,30 @@ export class InvocationContext {
51
55
  this.locals = mapValues("step-execution local", locals);
52
56
  this.channelInfos = new Map(Object.entries(channelInfos));
53
57
  }
58
+ async writeStream(stream, value) {
59
+ if (this.method === "rpc") {
60
+ throw new TypeError("Stream writes require a Step Context");
61
+ }
62
+ requireFlowStream(this.flow, stream);
63
+ if (this.streamWrites.has(stream)) {
64
+ throw new TypeError(`Stream ${stream.name} was already written by this Step execution`);
65
+ }
66
+ this.streamWrites.add(stream);
67
+ try {
68
+ await writeStream(this.flowService, {
69
+ flowId: this.flowId,
70
+ flowType: this.flow.name,
71
+ streamName: stream.name,
72
+ maxEstimatedBytes: BigInt(stream.maxEstimatedBytes),
73
+ value: encodeValue(stream.codec, value),
74
+ idempotencyKey: `${this.runId}#${this.stepExecutionId}`,
75
+ });
76
+ }
77
+ catch (failure) {
78
+ this.streamWrites.delete(stream);
79
+ throw failure;
80
+ }
81
+ }
54
82
  hasTimerFired(index) {
55
83
  const results = this.conditionResults?.timerResults ?? [];
56
84
  if (index !== undefined) {
@@ -195,6 +223,17 @@ export class InvocationContext {
195
223
  }
196
224
  }
197
225
  }
226
+ function writeStream(service, request) {
227
+ return new Promise((resolve, reject) => {
228
+ service.writeStream(request, (error) => {
229
+ if (error !== null) {
230
+ reject(error);
231
+ return;
232
+ }
233
+ resolve();
234
+ });
235
+ });
236
+ }
198
237
  function definitionName(definition, instance) {
199
238
  if (definition instanceof AttributeMap || definition instanceof ChannelMap) {
200
239
  if (instance === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"invocation-context.js","sourceRoot":"","sources":["../../src/invocation-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invocation-context.js","sourceRoot":"","sources":["../../src/invocation-context.ts"],"names":[],"mappings":"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"}
@@ -49,13 +49,13 @@ export interface FlowConfig {
49
49
  /** Optional active-Step visibility indexing policy. */
50
50
  readonly activeStepSearchMode?: ActiveStepSearchMode;
51
51
  /**
52
- * Selects the server-configured Attribute Store receiving opted-in Attribute writes.
52
+ * Selects server-configured Attribute Stores receiving opted-in Attribute writes.
53
53
  *
54
- * Omit this property to preserve the existing Flow setting. An explicit empty string is sent with
55
- * presence and disables later synchronization. Projection is asynchronous and never rolls back Flow
56
- * Attribute writes when the external store update fails.
54
+ * Omit this property to preserve the existing Flow setting. An explicit empty array is sent with
55
+ * presence and disables later synchronization. Each enabled Attribute write is projected to every
56
+ * selected store; projection failures never roll back Flow Attribute writes.
57
57
  */
58
- readonly attributeStoreName?: string;
58
+ readonly attributeStoreNames?: readonly string[];
59
59
  /** Positive history-event threshold requesting continue-as-new. */
60
60
  readonly continueAsNewThreshold?: number;
61
61
  /** Positive history page-size budget in bytes for continue-as-new. */
@@ -1,6 +1,7 @@
1
1
  import type { Channel, ChannelMap } from "./wait.js";
2
2
  import type { Codec } from "./codec.js";
3
3
  import type { Context } from "./context.js";
4
+ import type { Stream } from "./stream.js";
4
5
  /** Selects how Dex indexes an Attribute for Flow search. */
5
6
  export declare const IndexType: Readonly<{
6
7
  /** Indexes an exact string value. */
@@ -151,10 +152,12 @@ export declare class AttributeMap<T> {
151
152
  */
152
153
  lock(instance: string): AttributeLock;
153
154
  }
154
- /** Declares the Attributes and Channels owned by a Flow type. */
155
+ /** Declares the Attributes, Channels, and Streams owned by a Flow type. */
155
156
  export interface PersistenceSchema {
156
157
  /** Singleton and map Attribute definitions with unique names. */
157
158
  readonly attributes?: readonly (Attribute<unknown> | AttributeMap<unknown>)[];
158
159
  /** Singleton and map Channel definitions with unique names. */
159
160
  readonly channels?: readonly (Channel<unknown> | ChannelMap<unknown>)[];
161
+ /** Best-effort Stream definitions with unique names. */
162
+ readonly streams?: readonly Stream<unknown>[];
160
163
  }
@@ -1 +1 @@
1
- {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../src/persistence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../src/persistence.ts"],"names":[],"mappings":"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"}
package/dist/src/rpc.d.ts CHANGED
@@ -2,7 +2,7 @@ import type { Codec } from "./codec.js";
2
2
  import type { Context } from "./context.js";
3
3
  import type { Flow } from "./flow.js";
4
4
  import type { AttributeLock } from "./persistence.js";
5
- import type { Step, StepMovement } from "./step.js";
5
+ import type { StepClass, StepMovement } from "./step.js";
6
6
  /**
7
7
  * Contains a typed RPC output and optional next-Step movements.
8
8
  * @typeParam Output - Value decoded for the Client caller.
@@ -13,7 +13,7 @@ export interface RPCResult<Output> {
13
13
  /** Step movements applied atomically with handler persistence writes. */
14
14
  readonly nextSteps?: readonly StepMovement<unknown>[];
15
15
  /** Registered Step types canceled before `nextSteps` are scheduled. */
16
- readonly cancelingSteps?: readonly Step<any>[];
16
+ readonly cancelingSteps?: readonly StepClass<any>[];
17
17
  }
18
18
  /**
19
19
  * Describes a typed, possibly asynchronous RPC handler.
@@ -21,8 +21,8 @@ export interface RetryPolicy {
21
21
  }
22
22
  /** Routes exhausted `execute` retries to a fallback Step. */
23
23
  export interface ExecuteFailure {
24
- /** Registered fallback Step. */
25
- readonly step: Step<unknown>;
24
+ /** Registered fallback Step class. */
25
+ readonly step: StepClass<any>;
26
26
  /** Options applied to the fallback movement. */
27
27
  readonly options?: StepOptions;
28
28
  }
@@ -31,11 +31,11 @@ export declare const ExecuteFailure: Readonly<{
31
31
  /**
32
32
  * Routes exhausted execution retries to another Step.
33
33
  * @typeParam Input - Fallback Step input type.
34
- * @param step - Registered fallback Step.
34
+ * @param step - Registered fallback Step class.
35
35
  * @param options - Optional options for the fallback movement.
36
36
  * @returns The failure-routing settings.
37
37
  */
38
- proceedTo<Input>(step: Step<Input>, options?: StepOptions): ExecuteFailure;
38
+ proceedTo<Input>(step: StepClass<Input>, options?: StepOptions): ExecuteFailure;
39
39
  }>;
40
40
  /** Configures timeouts, retries, durability, locks, and failure routing for a Step. */
41
41
  export interface StepOptions {
@@ -67,11 +67,13 @@ export interface StepOptions {
67
67
  *
68
68
  * @example
69
69
  * ```ts
70
- * const confirm: Step<{ id: string }> = {
71
- * getStepType: () => "Confirm",
72
- * waitFor: () => Wait.until(Timer.byDuration(1_000)),
73
- * execute: (_context, input) => forceComplete(input),
74
- * };
70
+ * class Confirm implements Step<{ id: string }> {
71
+ * public getStepType(): string { return "Confirm"; }
72
+ * public waitFor(): Wait { return Wait.until(Timer.byDuration(1_000)); }
73
+ * public execute(_context: Context, input: { id: string }): StepDecision {
74
+ * return forceComplete(input);
75
+ * }
76
+ * }
75
77
  * ```
76
78
  * @typeParam Input - Value passed by an incoming Step movement.
77
79
  */
@@ -109,6 +111,11 @@ export interface Step<Input> {
109
111
  */
110
112
  execute(context: Context, input: Input): StepDecision | Promise<StepDecision>;
111
113
  }
114
+ /**
115
+ * Identifies one registered Step implementation by its runtime class.
116
+ * @typeParam Input - Value accepted by the Step implementation.
117
+ */
118
+ export type StepClass<Input> = abstract new (...arguments_: any[]) => Step<Input>;
112
119
  interface StartStepDefinition<StartInput> {
113
120
  readonly step: Step<StartInput>;
114
121
  readonly isStartStep: true;
@@ -165,8 +172,8 @@ export declare class StepList<StartInput> {
165
172
  * @typeParam Input - Destination Step input type.
166
173
  */
167
174
  export interface StepMovement<Input> {
168
- /** Registered destination Step. */
169
- readonly step: Step<Input>;
175
+ /** Registered destination Step class. */
176
+ readonly step: StepClass<Input>;
170
177
  /** Value encoded for the destination Step. */
171
178
  readonly input: Input;
172
179
  /** Optional per-movement Step options. */
@@ -177,19 +184,19 @@ export declare const StepMovement: Readonly<{
177
184
  /**
178
185
  * Creates a movement to one Step.
179
186
  * @typeParam Input - Destination Step input type.
180
- * @param step - Registered destination Step.
187
+ * @param step - Registered destination Step class.
181
188
  * @param input - Typed destination input.
182
189
  * @param options - Optional per-movement options.
183
190
  * @returns The new Step movement.
184
191
  */
185
- of<Input>(step: Step<Input>, input: Input, options?: StepOptions): StepMovement<Input>;
192
+ of<Input>(step: StepClass<Input>, input: Input, options?: StepOptions): StepMovement<Input>;
186
193
  }>;
187
194
  /** Selects queued or active Step executions canceled by a decision. */
188
195
  export interface StepCancellationSelection {
189
196
  /** Registered Step types canceled across the current Flow. */
190
- readonly cancelingSteps?: readonly Step<any>[];
197
+ readonly cancelingSteps?: readonly StepClass<any>[];
191
198
  /** Registered Step types canceled only when they share the current scheduling source. */
192
- readonly cancelingSiblingSteps?: readonly Step<any>[];
199
+ readonly cancelingSiblingSteps?: readonly StepClass<any>[];
193
200
  }
194
201
  /** Describes the durable transition returned by `Step.execute`. */
195
202
  export type StepDecision = (Readonly<{
@@ -227,7 +234,7 @@ export type StepDecision = (Readonly<{
227
234
  * @param input - Typed destination input.
228
235
  * @returns A next decision containing one movement.
229
236
  */
230
- export declare const goTo: <Input>(step: Step<Input>, input: Input) => StepDecision;
237
+ export declare const goTo: <Input>(step: StepClass<Input>, input: Input) => StepDecision;
231
238
  /**
232
239
  * Creates a decision scheduling several next Steps.
233
240
  * @param movements - Typed movements applied in argument order.
@@ -272,18 +279,18 @@ export declare const deadEnd: () => StepDecision;
272
279
  * and absent executions are no-ops. Steps scheduled by the same decision are excluded.
273
280
  * Repeated calls take the union, and Flow-wide selection supersedes sibling selection.
274
281
  * @param decision - Decision to copy.
275
- * @param steps - Exact Step instances registered with the current Flow.
282
+ * @param steps - Step classes registered with the current Flow.
276
283
  * @returns A new decision containing the combined Flow-wide selectors.
277
284
  */
278
- export declare const withCancelingSteps: (decision: StepDecision, ...steps: readonly Step<any>[]) => StepDecision;
285
+ export declare const withCancelingSteps: (decision: StepDecision, ...steps: readonly StepClass<any>[]) => StepDecision;
279
286
  /**
280
287
  * Returns a copy selecting same-source executions of the supplied Step types.
281
288
  *
282
289
  * A sibling has the same `Context.fromStepExecutionId` as the execution returning
283
290
  * the decision. Snapshot and no-op behavior match {@link withCancelingSteps}.
284
291
  * @param decision - Decision to copy.
285
- * @param steps - Exact Step instances registered with the current Flow.
292
+ * @param steps - Step classes registered with the current Flow.
286
293
  * @returns A new decision containing the combined sibling selectors.
287
294
  */
288
- export declare const withCancelingSiblingSteps: (decision: StepDecision, ...steps: readonly Step<any>[]) => StepDecision;
295
+ export declare const withCancelingSiblingSteps: (decision: StepDecision, ...steps: readonly StepClass<any>[]) => StepDecision;
289
296
  export {};
package/dist/src/step.js CHANGED
@@ -10,7 +10,7 @@ export const ExecuteFailure = Object.freeze({
10
10
  /**
11
11
  * Routes exhausted execution retries to another Step.
12
12
  * @typeParam Input - Fallback Step input type.
13
- * @param step - Registered fallback Step.
13
+ * @param step - Registered fallback Step class.
14
14
  * @param options - Optional options for the fallback movement.
15
15
  * @returns The failure-routing settings.
16
16
  */
@@ -80,7 +80,7 @@ export const StepMovement = Object.freeze({
80
80
  /**
81
81
  * Creates a movement to one Step.
82
82
  * @typeParam Input - Destination Step input type.
83
- * @param step - Registered destination Step.
83
+ * @param step - Registered destination Step class.
84
84
  * @param input - Typed destination input.
85
85
  * @param options - Optional per-movement options.
86
86
  * @returns The new Step movement.
@@ -151,7 +151,7 @@ export const deadEnd = () => ({ kind: "deadEnd" });
151
151
  * and absent executions are no-ops. Steps scheduled by the same decision are excluded.
152
152
  * Repeated calls take the union, and Flow-wide selection supersedes sibling selection.
153
153
  * @param decision - Decision to copy.
154
- * @param steps - Exact Step instances registered with the current Flow.
154
+ * @param steps - Step classes registered with the current Flow.
155
155
  * @returns A new decision containing the combined Flow-wide selectors.
156
156
  */
157
157
  export const withCancelingSteps = (decision, ...steps) => {
@@ -165,7 +165,7 @@ export const withCancelingSteps = (decision, ...steps) => {
165
165
  * A sibling has the same `Context.fromStepExecutionId` as the execution returning
166
166
  * the decision. Snapshot and no-op behavior match {@link withCancelingSteps}.
167
167
  * @param decision - Decision to copy.
168
- * @param steps - Exact Step instances registered with the current Flow.
168
+ * @param steps - Step classes registered with the current Flow.
169
169
  * @returns A new decision containing the combined sibling selectors.
170
170
  */
171
171
  export const withCancelingSiblingSteps = (decision, ...steps) => ({
@@ -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,40 @@
1
+ import type { Codec } from "./codec.js";
2
+ import type { Context } from "./context.js";
3
+ /**
4
+ * Defines a typed, best-effort resumable message stream owned by one Flow type.
5
+ * @typeParam T - Message type encoded by the Stream codec.
6
+ */
7
+ export declare class Stream<T> {
8
+ readonly name: string;
9
+ readonly codec: Codec<T>;
10
+ readonly maxEstimatedBytes: number;
11
+ /**
12
+ * Creates a Stream definition for a PersistenceSchema.
13
+ * @param name - Non-empty logical name unique within the Flow.
14
+ * @param codec - Codec used for every Stream message.
15
+ * @param maxEstimatedBytes - Positive approximate byte budget shared by this Flow type's instances.
16
+ */
17
+ constructor(name: string, codec: Codec<T>, maxEstimatedBytes: number);
18
+ /**
19
+ * Appends one message immediately from the current Step execution.
20
+ *
21
+ * A Step execution may write once per Stream. Retries reuse the same server idempotency key.
22
+ * @param context - Current Step Context; RPC Contexts are rejected.
23
+ * @param value - Typed message to append.
24
+ */
25
+ write(context: Context, value: T): Promise<void>;
26
+ }
27
+ /**
28
+ * Describes one retained Stream message returned by Client.readStream.
29
+ * @typeParam T - Decoded application message type.
30
+ */
31
+ export interface StreamMessage<T> {
32
+ /** Decoded application message. */
33
+ readonly value: T;
34
+ /** Opaque token to pass unchanged to the next readStream call. */
35
+ readonly resumeToken: string;
36
+ /** Server-assigned UTC creation time. */
37
+ readonly createdTime: Date;
38
+ /** Client key or Step-generated runID#stepExecutionID key. */
39
+ readonly idempotencyKey: string;
40
+ }
@@ -0,0 +1,43 @@
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 { requireName } from "./validation.js";
9
+ /**
10
+ * Defines a typed, best-effort resumable message stream owned by one Flow type.
11
+ * @typeParam T - Message type encoded by the Stream codec.
12
+ */
13
+ export class Stream {
14
+ name;
15
+ codec;
16
+ maxEstimatedBytes;
17
+ /**
18
+ * Creates a Stream definition for a PersistenceSchema.
19
+ * @param name - Non-empty logical name unique within the Flow.
20
+ * @param codec - Codec used for every Stream message.
21
+ * @param maxEstimatedBytes - Positive approximate byte budget shared by this Flow type's instances.
22
+ */
23
+ constructor(name, codec, maxEstimatedBytes) {
24
+ this.name = name;
25
+ this.codec = codec;
26
+ this.maxEstimatedBytes = maxEstimatedBytes;
27
+ requireName(name);
28
+ if (!Number.isSafeInteger(maxEstimatedBytes) || maxEstimatedBytes <= 0) {
29
+ throw new RangeError("Stream maxEstimatedBytes must be a positive safe integer");
30
+ }
31
+ }
32
+ /**
33
+ * Appends one message immediately from the current Step execution.
34
+ *
35
+ * A Step execution may write once per Stream. Retries reuse the same server idempotency key.
36
+ * @param context - Current Step Context; RPC Contexts are rejected.
37
+ * @param value - Typed message to append.
38
+ */
39
+ async write(context, value) {
40
+ await context.writeStream(this, value);
41
+ }
42
+ }
43
+ //# sourceMappingURL=stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/stream.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,uDAAuD;AACvD,mEAAmE;AACnE,+CAA+C;AAC/C,EAAE;AACF,wDAAwD;AAIxD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;;GAGG;AACH,MAAM,OAAO,MAAM;IAQC;IACA;IACA;IATlB;;;;;OAKG;IACH,YACkB,IAAY,EACZ,KAAe,EACf,iBAAyB;QAFzB,SAAI,GAAJ,IAAI,CAAQ;QACZ,UAAK,GAAL,KAAK,CAAU;QACf,sBAAiB,GAAjB,iBAAiB,CAAQ;QAEzC,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,iBAAiB,IAAI,CAAC,EAAE,CAAC;YACvE,MAAM,IAAI,UAAU,CAAC,0DAA0D,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,KAAK,CAAC,OAAgB,EAAE,KAAQ;QAC3C,MAAM,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;CACF"}
@@ -1,10 +1,11 @@
1
- import { InvokeExecuteMethodResponse, InvokeWaitForMethodResponse, InvokeWorkerRPCResponse, type InvokeExecuteMethodRequest, type InvokeWaitForMethodRequest, type InvokeWorkerRPCRequest } from "./gen/dex.js";
1
+ import { InvokeExecuteMethodResponse, InvokeWaitForMethodResponse, InvokeWorkerRPCResponse, FlowServiceClient, type InvokeExecuteMethodRequest, type InvokeWaitForMethodRequest, type InvokeWorkerRPCRequest } from "./gen/dex.js";
2
2
  import { type Registry } from "./flow.js";
3
3
  import { type ValueHydrator } from "./value-mapper.js";
4
4
  export declare class WorkerDispatcher {
5
5
  private readonly registry;
6
6
  private readonly hydrator;
7
- constructor(registry: Registry, hydrator: ValueHydrator);
7
+ private readonly flowService;
8
+ constructor(registry: Registry, hydrator: ValueHydrator, flowService: InstanceType<typeof FlowServiceClient>);
8
9
  invokeWaitFor(original: InvokeWaitForMethodRequest, cancellationSignal?: AbortSignal): Promise<InvokeWaitForMethodResponse>;
9
10
  invokeExecute(original: InvokeExecuteMethodRequest, cancellationSignal?: AbortSignal): Promise<InvokeExecuteMethodResponse>;
10
11
  private invokeTimeoutHandler;
@@ -10,7 +10,7 @@ import { InvalidStepResultError, ValueMappingError } from "./errors.js";
10
10
  import { registeredFlowByName, registeredFlow, registeredRPCByName, registeredStep, } from "./flow.js";
11
11
  import { InvocationContext } from "./invocation-context.js";
12
12
  import { AttributeMap, IndexType } from "./persistence.js";
13
- import { mapAttributeStoreName, mapAttributeStoreSync } from "./attribute-store-sync.js";
13
+ import { mapAttributeStoreNames, mapAttributeStoreSync } from "./attribute-store-sync.js";
14
14
  import { ActiveStepSearchMode, FlowTimeoutPolicy } from "./options.js";
15
15
  import { SubFlowReusePolicy } from "./subflow.js";
16
16
  import { codecOrJson, decodeValue, encodeUnknown, encodeValue, } from "./value-mapper.js";
@@ -19,16 +19,18 @@ const timeoutHandlerStepType = "sys:timeout_handler";
19
19
  export class WorkerDispatcher {
20
20
  registry;
21
21
  hydrator;
22
- constructor(registry, hydrator) {
22
+ flowService;
23
+ constructor(registry, hydrator, flowService) {
23
24
  this.registry = registry;
24
25
  this.hydrator = hydrator;
26
+ this.flowService = flowService;
25
27
  }
26
28
  async invokeWaitFor(original, cancellationSignal = new AbortController().signal) {
27
29
  const request = await this.hydrateWaitFor(original);
28
30
  cancellationSignal.throwIfAborted();
29
31
  const flow = registeredFlowByName(this.registry, request.flowType);
30
32
  const step = registeredStep(flow, request.stepType);
31
- const context = new InvocationContext("waitFor", flow, request.context, request.attributes, [], undefined, {}, cancellationSignal);
33
+ const context = new InvocationContext("waitFor", flow, this.flowService, request.context, request.attributes, [], undefined, {}, cancellationSignal);
32
34
  const input = decodeValue(codecOrJson(step.step.inputCodec), requireValue(request.stepInput, "Step input"));
33
35
  if (step.step.waitFor === undefined) {
34
36
  throw new TypeError(`Step ${step.name} does not implement waitFor`);
@@ -55,7 +57,7 @@ export class WorkerDispatcher {
55
57
  return this.invokeTimeoutHandler(request, flow, cancellationSignal);
56
58
  }
57
59
  const step = registeredStep(flow, request.stepType);
58
- const context = new InvocationContext("execute", flow, request.context, request.attributes, request.stepExeLocals, request.conditionResults, {}, cancellationSignal);
60
+ const context = new InvocationContext("execute", flow, this.flowService, request.context, request.attributes, request.stepExeLocals, request.conditionResults, {}, cancellationSignal);
59
61
  const input = decodeValue(codecOrJson(step.step.inputCodec), requireValue(request.stepInput, "Step input"));
60
62
  const decision = await step.step.execute(context, input);
61
63
  try {
@@ -79,7 +81,7 @@ export class WorkerDispatcher {
79
81
  if (flow.flow.handleTimeout === undefined) {
80
82
  throw new TypeError(`Flow ${flow.name} does not implement handleTimeout`);
81
83
  }
82
- const context = new InvocationContext("execute", flow, request.context, request.attributes, request.stepExeLocals, request.conditionResults, {}, cancellationSignal);
84
+ const context = new InvocationContext("execute", flow, this.flowService, request.context, request.attributes, request.stepExeLocals, request.conditionResults, {}, cancellationSignal);
83
85
  const decision = await flow.flow.handleTimeout(context);
84
86
  return InvokeExecuteMethodResponse.create({
85
87
  stepDecision: mapDecision(flow, decision),
@@ -98,7 +100,7 @@ export class WorkerDispatcher {
98
100
  cancellationSignal.throwIfAborted();
99
101
  const flow = registeredFlowByName(this.registry, request.flowType);
100
102
  const rpc = registeredRPCByName(flow, request.rpcName);
101
- const context = new InvocationContext("rpc", flow, request.context, request.attributes, [], undefined, request.channelInfos, cancellationSignal);
103
+ const context = new InvocationContext("rpc", flow, this.flowService, request.context, request.attributes, [], undefined, request.channelInfos, cancellationSignal);
102
104
  const returned = await invokeRPC(flow, rpc, context, request.input);
103
105
  try {
104
106
  const result = rpcResult(rpc, returned);
@@ -282,7 +284,7 @@ function mapCancellationSteps(flow, steps) {
282
284
  const stepTypes = [];
283
285
  const seen = new Set();
284
286
  for (const step of steps ?? []) {
285
- const target = flow.steps.find((candidate) => candidate.step === step);
287
+ const target = flow.stepsByClass.get(step);
286
288
  if (target === undefined) {
287
289
  throw new TypeError("cancellation Step must belong to the Flow");
288
290
  }
@@ -309,7 +311,7 @@ function mapMovements(flow, movements) {
309
311
  return movements.map((movement) => mapMovement(flow, movement));
310
312
  }
311
313
  function mapMovement(flow, movement) {
312
- const target = flow.steps.find((candidate) => candidate.step === movement.step);
314
+ const target = flow.stepsByClass.get(movement.step);
313
315
  if (target === undefined) {
314
316
  throw new TypeError("Step movement target does not belong to Flow");
315
317
  }
@@ -323,7 +325,7 @@ function mapStepOptions(flow, options, skipWaitFor) {
323
325
  const failureTarget = options?.executeFailure?.step;
324
326
  const failureDefinition = failureTarget === undefined
325
327
  ? undefined
326
- : flow.steps.find((candidate) => candidate.step === failureTarget);
328
+ : flow.stepsByClass.get(failureTarget);
327
329
  if (failureTarget !== undefined && failureDefinition === undefined) {
328
330
  throw new TypeError("execute failure Step must belong to the Flow");
329
331
  }
@@ -533,7 +535,7 @@ function mapSubFlowConfig(config) {
533
535
  : config.activeStepSearchMode === undefined
534
536
  ? undefined
535
537
  : ProtoActiveStepSearchMode.ACTIVE_STEP_SEARCH_MODE_UNSPECIFIED,
536
- attributeSyncConfigName: mapAttributeStoreName(config),
538
+ attributeStoreNames: mapAttributeStoreNames(config),
537
539
  continueAsNewThreshold: config.continueAsNewThreshold,
538
540
  continueAsNewPageSizeInBytes: config.continueAsNewPageSizeBytes,
539
541
  stepDurability: config.stepDurability === "sync"