@superdurable/dex 0.2.7 → 0.2.9

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.
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../src/rpc.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,uDAAuD;AACvD,mEAAmE;AACnE,+CAA+C;AAC/C,EAAE;AACF,wDAAwD;AAOxD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAwD9C,MAAM,UAAU,GAAG,IAAI,OAAO,EAAkC,CAAC;AAgBjE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,GAAG,CAAC,UAAgC,EAAE;IACpD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,UAAU,CAAC,kCAAkC,CAAC,CAAC;IAC3D,CAAC;IACD,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACvD,OAAO,UACL,MAAc,EACd,QAAmD;QAEnD,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3C,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAmB;IAChD,MAAM,UAAU,GAAoB,EAAE,CAAC;IACvC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,IAAI,SAAS,GAAkB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAkB,CAAC;IAC5E,OAAO,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;QAC5D,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;YACzD,IAAI,IAAI,KAAK,aAAa,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrD,SAAS;YACX,CAAC;YACD,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,CAAC,wBAAwB,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,KAAgB,CAAC;YAClF,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;gBACjC,SAAS;YACX,CAAC;YACD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACvC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,SAAS;YACX,CAAC;YACD,UAAU,CAAC,IAAI,CAAC;gBACd,MAAM;gBACN,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI;gBAC1B,OAAO;gBACP,QAAQ,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;aACjE,CAAC,CAAC;QACL,CAAC;QACD,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,SAAS,CAAkB,CAAC;IAChE,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../src/rpc.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,uDAAuD;AACvD,mEAAmE;AACnE,+CAA+C;AAC/C,EAAE;AACF,wDAAwD;AAQxD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAoE9C,MAAM,UAAU,GAAG,IAAI,OAAO,EAAkC,CAAC;AAgBjE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,GAAG,CAAC,UAAgC,EAAE;IACpD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,UAAU,CAAC,kCAAkC,CAAC,CAAC;IAC3D,CAAC;IACD,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACvD,OAAO,UACL,MAAc,EACd,QAAmD;QAEnD,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3C,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAmB;IAChD,MAAM,UAAU,GAAoB,EAAE,CAAC;IACvC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,IAAI,SAAS,GAAkB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAkB,CAAC;IAC5E,OAAO,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;QAC5D,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;YACzD,IAAI,IAAI,KAAK,aAAa,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrD,SAAS;YACX,CAAC;YACD,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,CAAC,wBAAwB,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,KAAgB,CAAC;YAClF,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;gBACjC,SAAS;YACX,CAAC;YACD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACvC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,SAAS;YACX,CAAC;YACD,UAAU,CAAC,IAAI,CAAC;gBACd,MAAM;gBACN,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI;gBAC1B,OAAO;gBACP,QAAQ,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;aACjE,CAAC,CAAC;QACL,CAAC;QACD,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,SAAS,CAAkB,CAAC;IAChE,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -1,3 +1,6 @@
1
1
  export declare function requireName(name: string): string;
2
+ export declare function requirePersistenceDefinitionName(name: string): string;
3
+ export declare function requireMapInstance(instance: string): string;
4
+ export declare function physicalMapName(name: string, instance: string): string;
2
5
  export declare function requireConditionId(conditionId: string | undefined): void;
3
6
  export declare function validateChannelBounds(atLeast: number | undefined, atMost: number | undefined): void;
@@ -11,6 +11,25 @@ export function requireName(name) {
11
11
  }
12
12
  return name;
13
13
  }
14
+ export function requirePersistenceDefinitionName(name) {
15
+ requireName(name);
16
+ if (name.includes("/")) {
17
+ throw new TypeError("persistence definition names must not contain '/'");
18
+ }
19
+ return name;
20
+ }
21
+ export function requireMapInstance(instance) {
22
+ requireName(instance);
23
+ if (instance.includes("/")) {
24
+ throw new TypeError("map instances must not contain '/'");
25
+ }
26
+ return instance;
27
+ }
28
+ export function physicalMapName(name, instance) {
29
+ const requiredInstance = requireMapInstance(instance);
30
+ const encoded = encodeURIComponent(requiredInstance).replace(/[!'()*]/g, (character) => `%${character.charCodeAt(0).toString(16).toUpperCase()}`);
31
+ return `${name}/${encoded}`;
32
+ }
14
33
  export function requireConditionId(conditionId) {
15
34
  if (conditionId !== undefined && conditionId.length === 0) {
16
35
  throw new TypeError("condition ID must not be empty");
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,uDAAuD;AACvD,mEAAmE;AACnE,+CAA+C;AAC/C,EAAE;AACF,wDAAwD;AAExD,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,SAAS,CAAC,0BAA0B,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,WAA+B;IAChE,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,OAA2B,EAC3B,MAA0B;IAE1B,IAAI,OAAO,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAClD,MAAM,IAAI,UAAU,CAAC,oCAAoC,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,UAAU,CAAC,8BAA8B,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,UAAU,CAAC,6BAA6B,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,GAAG,OAAO,EAAE,CAAC;QACtE,MAAM,IAAI,UAAU,CAAC,kCAAkC,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,uDAAuD;AACvD,mEAAmE;AACnE,+CAA+C;AAC/C,EAAE;AACF,wDAAwD;AAExD,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,SAAS,CAAC,0BAA0B,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,IAAY;IAC3D,WAAW,CAAC,IAAI,CAAC,CAAC;IAClB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,SAAS,CAAC,mDAAmD,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtB,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,QAAgB;IAC5D,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,EAAE,CACrF,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CACzD,CAAC;IACF,OAAO,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,WAA+B;IAChE,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,OAA2B,EAC3B,MAA0B;IAE1B,IAAI,OAAO,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAClD,MAAM,IAAI,UAAU,CAAC,oCAAoC,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,UAAU,CAAC,8BAA8B,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,UAAU,CAAC,6BAA6B,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,GAAG,OAAO,EAAE,CAAC;QACtE,MAAM,IAAI,UAAU,CAAC,kCAAkC,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC"}
@@ -2,6 +2,13 @@ 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 { SubFlowOptions } from "./subflow.js";
5
+ /** Selects one ChannelMap instance's pending messages for an RPC snapshot. */
6
+ export interface ChannelMapLoad {
7
+ /** Exact ChannelMap definition registered with the Flow. */
8
+ readonly channelMap: ChannelMap<unknown>;
9
+ /** One slash-free logical instance key. */
10
+ readonly instance: string;
11
+ }
5
12
  /** Describes one durable Timer, Channel, or SubFlow readiness condition. */
6
13
  export interface Condition {
7
14
  /** Condition family interpreted by Dex. */
@@ -12,7 +19,7 @@ export interface Condition {
12
19
  readonly durationMs?: number;
13
20
  /** Physical Channel name for a Channel condition. */
14
21
  readonly channelName?: string;
15
- /** ChannelMap instance for a map condition. */
22
+ /** The ChannelMap instance for a map condition. Slash is prohibited because it is a reserved character. */
16
23
  readonly instance?: string;
17
24
  /** Inclusive lower queued-value bound. */
18
25
  readonly atLeast?: number;
@@ -49,6 +56,16 @@ export declare const Timer: Readonly<{
49
56
  */
50
57
  byDuration(durationMs: number, conditionId?: string): Condition;
51
58
  }>;
59
+ /**
60
+ * Identifies one typed value that is still pending in a Channel.
61
+ * @typeParam T - Decoded Channel value type.
62
+ */
63
+ export interface ChannelMessage<T> {
64
+ /** UUIDv7 assigned by Dex when the message was published. */
65
+ readonly messageId: string;
66
+ /** Decoded Channel value. */
67
+ readonly value: T;
68
+ }
52
69
  /**
53
70
  * Defines a typed, durable singleton message stream owned by a Flow.
54
71
  * @typeParam T - Type of every published value.
@@ -58,7 +75,7 @@ export declare class Channel<T> {
58
75
  readonly codec: Codec<T>;
59
76
  /**
60
77
  * Creates a Channel definition.
61
- * @param name - Non-empty name unique within the Flow.
78
+ * @param name - Non-empty name without `/`, unique within the Flow.
62
79
  * @param codec - Element codec.
63
80
  */
64
81
  constructor(name: string, codec: Codec<T>);
@@ -68,12 +85,32 @@ export declare class Channel<T> {
68
85
  * @param value - Typed value to append.
69
86
  */
70
87
  publish(context: Context, value: T): void;
88
+ /**
89
+ * Stages deletion of one pending message from an RPC.
90
+ * @param context - Current RPC Context.
91
+ * @param messageId - Non-empty server-assigned message ID.
92
+ */
93
+ delete(context: Context, messageId: string): void;
71
94
  /**
72
95
  * Returns the current queued value count.
73
96
  * @param context - Current Step or RPC Context.
74
97
  * @returns Non-negative queued value count.
75
98
  */
76
99
  size(context: Context): number;
100
+ /**
101
+ * Returns the loaded pending-message snapshot in FIFO order.
102
+ * @param context - Current RPC Context.
103
+ * @returns Immutable pending message IDs and decoded values.
104
+ * @throws {@link StateNotLoadedError} when the RPC did not load this Channel.
105
+ */
106
+ pendingMessages(context: Context): readonly ChannelMessage<T>[];
107
+ /**
108
+ * Finds one message in the loaded pending snapshot.
109
+ * @param context - Current RPC Context.
110
+ * @param messageId - Server-assigned message ID.
111
+ * @returns The matching message, or `undefined` when absent from the snapshot.
112
+ */
113
+ findPendingMessage(context: Context, messageId: string): ChannelMessage<T> | undefined;
77
114
  /**
78
115
  * Returns values selected by this Step's satisfied condition.
79
116
  * @param context - Current Step Context.
@@ -101,7 +138,8 @@ export declare class Channel<T> {
101
138
  */
102
139
  atLeast(count: number, conditionId?: string): Condition;
103
140
  /**
104
- * Creates a condition consuming at most `count` available values.
141
+ * Creates a non-blocking condition consuming up to `count` queued values.
142
+ * When its surrounding Wait completes, it consumes values queued then; an empty queue yields none.
105
143
  * @param count - Inclusive non-negative upper bound.
106
144
  * @param conditionId - Optional stable condition identifier.
107
145
  * @returns A condition without a positive lower bound.
@@ -109,6 +147,8 @@ export declare class Channel<T> {
109
147
  atMost(count: number, conditionId?: string): Condition;
110
148
  /**
111
149
  * Creates a bounded condition for queued Channel values.
150
+ * Dex waits only for `atLeast`, then consumes currently queued values up to `atMost`.
151
+ * Omitting `atLeast` makes the condition complete immediately.
112
152
  * @param atLeast - Optional inclusive lower bound.
113
153
  * @param atMost - Optional inclusive upper bound.
114
154
  * @param conditionId - Optional stable condition identifier.
@@ -118,6 +158,7 @@ export declare class Channel<T> {
118
158
  }
119
159
  /**
120
160
  * Defines keyed Channel instances that share one typed schema.
161
+ * Instance keys must be non-empty and must not contain `/`.
121
162
  * @typeParam T - Type of every published value.
122
163
  */
123
164
  export declare class ChannelMap<T> {
@@ -125,24 +166,53 @@ export declare class ChannelMap<T> {
125
166
  readonly codec: Codec<T>;
126
167
  /**
127
168
  * Creates a ChannelMap definition.
128
- * @param name - Non-empty name unique within the Flow.
169
+ * @param name - Non-empty name without `/`, unique within the Flow.
129
170
  * @param codec - Element codec shared by every instance.
130
171
  */
131
172
  constructor(name: string, codec: Codec<T>);
132
173
  /**
133
174
  * Stages one value for a ChannelMap instance.
134
175
  * @param context - Current Step or RPC Context.
135
- * @param instance - Non-empty logical map key.
176
+ * @param instance - The map instance. Slash is prohibited because it is a reserved character.
136
177
  * @param value - Typed value to append.
137
178
  */
138
179
  publish(context: Context, instance: string, value: T): void;
180
+ /**
181
+ * Stages deletion of one pending message from a ChannelMap instance in an RPC.
182
+ * @param context - Current RPC Context.
183
+ * @param instance - The ChannelMap instance. Slash is prohibited because it is a reserved character.
184
+ * @param messageId - Non-empty server-assigned message ID.
185
+ */
186
+ delete(context: Context, instance: string, messageId: string): void;
139
187
  /**
140
188
  * Returns one instance's queued value count.
141
189
  * @param context - Current Step or RPC Context.
142
- * @param instance - Non-empty logical map key.
190
+ * @param instance - The map instance. Slash is prohibited because it is a reserved character.
143
191
  * @returns Non-negative queued value count.
144
192
  */
145
193
  size(context: Context, instance: string): number;
194
+ /**
195
+ * Selects one instance's pending messages for an RPC snapshot.
196
+ * @param instance - Non-empty logical instance key. The SDK escapes it for the protocol.
197
+ * @returns An exact instance load for {@link RPCOptions.loadChannelMapInstances}.
198
+ */
199
+ loadMessages(instance: string): ChannelMapLoad;
200
+ /**
201
+ * Returns one loaded instance snapshot in FIFO order.
202
+ * @param context - Current RPC Context.
203
+ * @param instance - Logical ChannelMap instance.
204
+ * @returns Immutable pending message IDs and decoded values.
205
+ * @throws {@link StateNotLoadedError} when the RPC did not load this instance or map.
206
+ */
207
+ pendingMessages(context: Context, instance: string): readonly ChannelMessage<T>[];
208
+ /**
209
+ * Finds one instance message in the loaded pending snapshot.
210
+ * @param context - Current RPC Context.
211
+ * @param instance - Logical ChannelMap instance.
212
+ * @param messageId - Server-assigned message ID.
213
+ * @returns The matching message, or `undefined` when absent from the snapshot.
214
+ */
215
+ findPendingMessage(context: Context, instance: string, messageId: string): ChannelMessage<T> | undefined;
146
216
  /**
147
217
  * Returns the number of non-empty instances visible to the current RPC.
148
218
  * @param context - Current RPC Context.
@@ -158,20 +228,20 @@ export declare class ChannelMap<T> {
158
228
  /**
159
229
  * Returns values selected for one instance by the satisfied condition.
160
230
  * @param context - Current Step Context.
161
- * @param instance - Non-empty logical map key.
231
+ * @param instance - The map instance. Slash is prohibited because it is a reserved character.
162
232
  * @returns Ordered values for this Step execution.
163
233
  */
164
234
  results(context: Context, instance: string): readonly T[];
165
235
  /**
166
236
  * Creates an instance condition consuming exactly one value.
167
- * @param instance - Non-empty logical map key.
237
+ * @param instance - The map instance. Slash is prohibited because it is a reserved character.
168
238
  * @param conditionId - Optional stable condition identifier.
169
239
  * @returns An exact-one instance condition.
170
240
  */
171
241
  forOne(instance: string, conditionId?: string): Condition;
172
242
  /**
173
243
  * Creates an instance condition consuming exactly `count` values.
174
- * @param instance - Non-empty logical map key.
244
+ * @param instance - The map instance. Slash is prohibited because it is a reserved character.
175
245
  * @param count - Required non-negative count.
176
246
  * @param conditionId - Optional stable condition identifier.
177
247
  * @returns A condition with equal bounds.
@@ -179,15 +249,16 @@ export declare class ChannelMap<T> {
179
249
  forN(instance: string, count: number, conditionId?: string): Condition;
180
250
  /**
181
251
  * Creates an instance condition requiring at least `count` values.
182
- * @param instance - Non-empty logical map key.
252
+ * @param instance - The map instance. Slash is prohibited because it is a reserved character.
183
253
  * @param count - Inclusive non-negative lower bound.
184
254
  * @param conditionId - Optional stable condition identifier.
185
255
  * @returns A condition without an upper bound.
186
256
  */
187
257
  atLeast(instance: string, count: number, conditionId?: string): Condition;
188
258
  /**
189
- * Creates an instance condition consuming at most `count` values.
190
- * @param instance - Non-empty logical map key.
259
+ * Creates a non-blocking instance condition consuming up to `count` queued values.
260
+ * When its surrounding Wait completes, it consumes values queued then; an empty queue yields none.
261
+ * @param instance - The map instance. Slash is prohibited because it is a reserved character.
191
262
  * @param count - Inclusive non-negative upper bound.
192
263
  * @param conditionId - Optional stable condition identifier.
193
264
  * @returns A condition without a positive lower bound.
@@ -195,7 +266,9 @@ export declare class ChannelMap<T> {
195
266
  atMost(instance: string, count: number, conditionId?: string): Condition;
196
267
  /**
197
268
  * Creates a bounded condition for one ChannelMap instance.
198
- * @param instance - Non-empty logical map key.
269
+ * Dex waits only for `atLeast`, then consumes currently queued values up to `atMost`.
270
+ * Omitting `atLeast` makes the condition complete immediately.
271
+ * @param instance - The map instance. Slash is prohibited because it is a reserved character.
199
272
  * @param atLeast - Optional inclusive lower bound.
200
273
  * @param atMost - Optional inclusive upper bound.
201
274
  * @param conditionId - Optional stable condition identifier.
@@ -210,8 +283,8 @@ export declare class ChannelMap<T> {
210
283
  * ```ts
211
284
  * const approvals = new Channel("approvals", stringCodec);
212
285
  * const wait = Wait.anyOf(
213
- * approvals.forOne("approved"),
214
- * Timer.byDuration(5 * 60_000, "timeout"),
286
+ * approvals.forOne(),
287
+ * Timer.byDuration(5 * 60_000),
215
288
  * );
216
289
  * ```
217
290
  */
@@ -232,24 +305,34 @@ export declare const Wait: Readonly<{
232
305
  skipImmediately(): Wait;
233
306
  /**
234
307
  * Creates a Wait for one condition.
308
+ * The Condition does not need a condition ID.
235
309
  * @param condition - The only readiness condition.
236
310
  * @returns An all-of Wait with the condition.
237
311
  */
238
312
  until(condition: Condition): Wait;
239
313
  /**
240
314
  * Creates a Wait requiring every condition.
315
+ * This combinator does not require condition IDs. Every Condition in
316
+ * `anyCombinationOf` does require one.
241
317
  * @param conditions - Conditions evaluated as one all-of group.
242
318
  * @returns An all-of Wait.
243
319
  */
244
320
  allOf(...conditions: readonly Condition[]): Wait;
245
321
  /**
246
322
  * Creates a Wait that continues when any condition is ready.
323
+ * Conditions do not need condition IDs. Read Channel results from the Channel
324
+ * definition and inspect Timer outcomes through `Context`.
325
+ *
326
+ * Channel consumption is not greedy across alternatives: only the selected condition consumes.
327
+ * Other ready Channel conditions consume nothing.
247
328
  * @param conditions - Alternative readiness conditions.
248
329
  * @returns An any-of Wait.
249
330
  */
250
331
  anyOf(...conditions: readonly Condition[]): Wait;
251
332
  /**
252
333
  * Creates a Wait accepting any complete condition combination.
334
+ * Channel consumption is limited to conditions in the selected combination.
335
+ * Conditions belonging only to other ready combinations consume nothing.
253
336
  * Every Condition requires a non-empty user ID; the same instance may be reused.
254
337
  * @param combinations - Alternative all-of condition groups.
255
338
  * @returns An any-combination Wait.
package/dist/src/wait.js CHANGED
@@ -5,7 +5,7 @@
5
5
  // See the LICENSE file in the repository root.
6
6
  //
7
7
  // SPDX-License-Identifier: LicenseRef-Super-Durable-1.0
8
- import { requireConditionId, requireName, validateChannelBounds, } from "./validation.js";
8
+ import { requireConditionId, requireMapInstance, requireName, requirePersistenceDefinitionName, validateChannelBounds, } from "./validation.js";
9
9
  /** Creates all-of Condition groups for `Wait.anyCombinationOf`. */
10
10
  export const ConditionCombination = Object.freeze({
11
11
  /**
@@ -46,13 +46,13 @@ export class Channel {
46
46
  codec;
47
47
  /**
48
48
  * Creates a Channel definition.
49
- * @param name - Non-empty name unique within the Flow.
49
+ * @param name - Non-empty name without `/`, unique within the Flow.
50
50
  * @param codec - Element codec.
51
51
  */
52
52
  constructor(name, codec) {
53
53
  this.name = name;
54
54
  this.codec = codec;
55
- requireName(name);
55
+ requirePersistenceDefinitionName(name);
56
56
  }
57
57
  /**
58
58
  * Stages one value to append with the current decision.
@@ -62,6 +62,14 @@ export class Channel {
62
62
  publish(context, value) {
63
63
  context.publish(this, value);
64
64
  }
65
+ /**
66
+ * Stages deletion of one pending message from an RPC.
67
+ * @param context - Current RPC Context.
68
+ * @param messageId - Non-empty server-assigned message ID.
69
+ */
70
+ delete(context, messageId) {
71
+ context.deleteChannelMessage(this, messageId);
72
+ }
65
73
  /**
66
74
  * Returns the current queued value count.
67
75
  * @param context - Current Step or RPC Context.
@@ -70,6 +78,25 @@ export class Channel {
70
78
  size(context) {
71
79
  return context.channelSize(this);
72
80
  }
81
+ /**
82
+ * Returns the loaded pending-message snapshot in FIFO order.
83
+ * @param context - Current RPC Context.
84
+ * @returns Immutable pending message IDs and decoded values.
85
+ * @throws {@link StateNotLoadedError} when the RPC did not load this Channel.
86
+ */
87
+ pendingMessages(context) {
88
+ return context.pendingChannelMessages(this);
89
+ }
90
+ /**
91
+ * Finds one message in the loaded pending snapshot.
92
+ * @param context - Current RPC Context.
93
+ * @param messageId - Server-assigned message ID.
94
+ * @returns The matching message, or `undefined` when absent from the snapshot.
95
+ */
96
+ findPendingMessage(context, messageId) {
97
+ const requiredId = requireName(messageId);
98
+ return this.pendingMessages(context).find((message) => message.messageId === requiredId);
99
+ }
73
100
  /**
74
101
  * Returns values selected by this Step's satisfied condition.
75
102
  * @param context - Current Step Context.
@@ -105,7 +132,8 @@ export class Channel {
105
132
  return this.range(count, undefined, conditionId);
106
133
  }
107
134
  /**
108
- * Creates a condition consuming at most `count` available values.
135
+ * Creates a non-blocking condition consuming up to `count` queued values.
136
+ * When its surrounding Wait completes, it consumes values queued then; an empty queue yields none.
109
137
  * @param count - Inclusive non-negative upper bound.
110
138
  * @param conditionId - Optional stable condition identifier.
111
139
  * @returns A condition without a positive lower bound.
@@ -115,6 +143,8 @@ export class Channel {
115
143
  }
116
144
  /**
117
145
  * Creates a bounded condition for queued Channel values.
146
+ * Dex waits only for `atLeast`, then consumes currently queued values up to `atMost`.
147
+ * Omitting `atLeast` makes the condition complete immediately.
118
148
  * @param atLeast - Optional inclusive lower bound.
119
149
  * @param atMost - Optional inclusive upper bound.
120
150
  * @param conditionId - Optional stable condition identifier.
@@ -134,6 +164,7 @@ export class Channel {
134
164
  }
135
165
  /**
136
166
  * Defines keyed Channel instances that share one typed schema.
167
+ * Instance keys must be non-empty and must not contain `/`.
137
168
  * @typeParam T - Type of every published value.
138
169
  */
139
170
  export class ChannelMap {
@@ -141,32 +172,71 @@ export class ChannelMap {
141
172
  codec;
142
173
  /**
143
174
  * Creates a ChannelMap definition.
144
- * @param name - Non-empty name unique within the Flow.
175
+ * @param name - Non-empty name without `/`, unique within the Flow.
145
176
  * @param codec - Element codec shared by every instance.
146
177
  */
147
178
  constructor(name, codec) {
148
179
  this.name = name;
149
180
  this.codec = codec;
150
- requireName(name);
181
+ requirePersistenceDefinitionName(name);
151
182
  }
152
183
  /**
153
184
  * Stages one value for a ChannelMap instance.
154
185
  * @param context - Current Step or RPC Context.
155
- * @param instance - Non-empty logical map key.
186
+ * @param instance - The map instance. Slash is prohibited because it is a reserved character.
156
187
  * @param value - Typed value to append.
157
188
  */
158
189
  publish(context, instance, value) {
159
190
  context.publish(this, value, instance);
160
191
  }
192
+ /**
193
+ * Stages deletion of one pending message from a ChannelMap instance in an RPC.
194
+ * @param context - Current RPC Context.
195
+ * @param instance - The ChannelMap instance. Slash is prohibited because it is a reserved character.
196
+ * @param messageId - Non-empty server-assigned message ID.
197
+ */
198
+ delete(context, instance, messageId) {
199
+ context.deleteChannelMessage(this, messageId, instance);
200
+ }
161
201
  /**
162
202
  * Returns one instance's queued value count.
163
203
  * @param context - Current Step or RPC Context.
164
- * @param instance - Non-empty logical map key.
204
+ * @param instance - The map instance. Slash is prohibited because it is a reserved character.
165
205
  * @returns Non-negative queued value count.
166
206
  */
167
207
  size(context, instance) {
168
208
  return context.channelSize(this, instance);
169
209
  }
210
+ /**
211
+ * Selects one instance's pending messages for an RPC snapshot.
212
+ * @param instance - Non-empty logical instance key. The SDK escapes it for the protocol.
213
+ * @returns An exact instance load for {@link RPCOptions.loadChannelMapInstances}.
214
+ */
215
+ loadMessages(instance) {
216
+ requireMapInstance(instance);
217
+ return { channelMap: this, instance };
218
+ }
219
+ /**
220
+ * Returns one loaded instance snapshot in FIFO order.
221
+ * @param context - Current RPC Context.
222
+ * @param instance - Logical ChannelMap instance.
223
+ * @returns Immutable pending message IDs and decoded values.
224
+ * @throws {@link StateNotLoadedError} when the RPC did not load this instance or map.
225
+ */
226
+ pendingMessages(context, instance) {
227
+ return context.pendingChannelMessages(this, instance);
228
+ }
229
+ /**
230
+ * Finds one instance message in the loaded pending snapshot.
231
+ * @param context - Current RPC Context.
232
+ * @param instance - Logical ChannelMap instance.
233
+ * @param messageId - Server-assigned message ID.
234
+ * @returns The matching message, or `undefined` when absent from the snapshot.
235
+ */
236
+ findPendingMessage(context, instance, messageId) {
237
+ const requiredId = requireName(messageId);
238
+ return this.pendingMessages(context, instance).find((message) => message.messageId === requiredId);
239
+ }
170
240
  /**
171
241
  * Returns the number of non-empty instances visible to the current RPC.
172
242
  * @param context - Current RPC Context.
@@ -186,7 +256,7 @@ export class ChannelMap {
186
256
  /**
187
257
  * Returns values selected for one instance by the satisfied condition.
188
258
  * @param context - Current Step Context.
189
- * @param instance - Non-empty logical map key.
259
+ * @param instance - The map instance. Slash is prohibited because it is a reserved character.
190
260
  * @returns Ordered values for this Step execution.
191
261
  */
192
262
  results(context, instance) {
@@ -194,7 +264,7 @@ export class ChannelMap {
194
264
  }
195
265
  /**
196
266
  * Creates an instance condition consuming exactly one value.
197
- * @param instance - Non-empty logical map key.
267
+ * @param instance - The map instance. Slash is prohibited because it is a reserved character.
198
268
  * @param conditionId - Optional stable condition identifier.
199
269
  * @returns An exact-one instance condition.
200
270
  */
@@ -203,7 +273,7 @@ export class ChannelMap {
203
273
  }
204
274
  /**
205
275
  * Creates an instance condition consuming exactly `count` values.
206
- * @param instance - Non-empty logical map key.
276
+ * @param instance - The map instance. Slash is prohibited because it is a reserved character.
207
277
  * @param count - Required non-negative count.
208
278
  * @param conditionId - Optional stable condition identifier.
209
279
  * @returns A condition with equal bounds.
@@ -213,7 +283,7 @@ export class ChannelMap {
213
283
  }
214
284
  /**
215
285
  * Creates an instance condition requiring at least `count` values.
216
- * @param instance - Non-empty logical map key.
286
+ * @param instance - The map instance. Slash is prohibited because it is a reserved character.
217
287
  * @param count - Inclusive non-negative lower bound.
218
288
  * @param conditionId - Optional stable condition identifier.
219
289
  * @returns A condition without an upper bound.
@@ -222,8 +292,9 @@ export class ChannelMap {
222
292
  return this.range(instance, count, undefined, conditionId);
223
293
  }
224
294
  /**
225
- * Creates an instance condition consuming at most `count` values.
226
- * @param instance - Non-empty logical map key.
295
+ * Creates a non-blocking instance condition consuming up to `count` queued values.
296
+ * When its surrounding Wait completes, it consumes values queued then; an empty queue yields none.
297
+ * @param instance - The map instance. Slash is prohibited because it is a reserved character.
227
298
  * @param count - Inclusive non-negative upper bound.
228
299
  * @param conditionId - Optional stable condition identifier.
229
300
  * @returns A condition without a positive lower bound.
@@ -233,7 +304,9 @@ export class ChannelMap {
233
304
  }
234
305
  /**
235
306
  * Creates a bounded condition for one ChannelMap instance.
236
- * @param instance - Non-empty logical map key.
307
+ * Dex waits only for `atLeast`, then consumes currently queued values up to `atMost`.
308
+ * Omitting `atLeast` makes the condition complete immediately.
309
+ * @param instance - The map instance. Slash is prohibited because it is a reserved character.
237
310
  * @param atLeast - Optional inclusive lower bound.
238
311
  * @param atMost - Optional inclusive upper bound.
239
312
  * @param conditionId - Optional stable condition identifier.
@@ -242,6 +315,7 @@ export class ChannelMap {
242
315
  range(instance, atLeast, atMost, conditionId) {
243
316
  validateChannelBounds(atLeast, atMost);
244
317
  requireConditionId(conditionId);
318
+ requireMapInstance(instance);
245
319
  return {
246
320
  kind: "channel",
247
321
  channelName: this.name,
@@ -263,6 +337,7 @@ export const Wait = Object.freeze({
263
337
  },
264
338
  /**
265
339
  * Creates a Wait for one condition.
340
+ * The Condition does not need a condition ID.
266
341
  * @param condition - The only readiness condition.
267
342
  * @returns An all-of Wait with the condition.
268
343
  */
@@ -271,6 +346,8 @@ export const Wait = Object.freeze({
271
346
  },
272
347
  /**
273
348
  * Creates a Wait requiring every condition.
349
+ * This combinator does not require condition IDs. Every Condition in
350
+ * `anyCombinationOf` does require one.
274
351
  * @param conditions - Conditions evaluated as one all-of group.
275
352
  * @returns An all-of Wait.
276
353
  */
@@ -279,6 +356,11 @@ export const Wait = Object.freeze({
279
356
  },
280
357
  /**
281
358
  * Creates a Wait that continues when any condition is ready.
359
+ * Conditions do not need condition IDs. Read Channel results from the Channel
360
+ * definition and inspect Timer outcomes through `Context`.
361
+ *
362
+ * Channel consumption is not greedy across alternatives: only the selected condition consumes.
363
+ * Other ready Channel conditions consume nothing.
282
364
  * @param conditions - Alternative readiness conditions.
283
365
  * @returns An any-of Wait.
284
366
  */
@@ -287,6 +369,8 @@ export const Wait = Object.freeze({
287
369
  },
288
370
  /**
289
371
  * Creates a Wait accepting any complete condition combination.
372
+ * Channel consumption is limited to conditions in the selected combination.
373
+ * Conditions belonging only to other ready combinations consume nothing.
290
374
  * Every Condition requires a non-empty user ID; the same instance may be reused.
291
375
  * @param combinations - Alternative all-of condition groups.
292
376
  * @returns An any-combination Wait.
@@ -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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"}