@superdurable/dex 0.2.8 → 0.2.10

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,10 +1,10 @@
1
1
  import type { Codec } from "./codec.js";
2
2
  import type { AsyncContext } from "./context.js";
3
- import { type AttributeWrite, type ChannelInfo, type ChannelMessage as ProtoChannelMessage, type ChannelMessageDeletion, type ConditionResults, type Context as ProtoContext, type KV, type StepStreamWrite, type Value } from "./gen/dex.js";
3
+ import { type AttributeWrite, type ChannelInfo, type ChannelMessage as ProtoChannelMessage, type ChannelValues, type ChannelMessageDeletion, type ConditionResults, type Context as ProtoContext, type KV, type StepStreamWrite, type Value } from "./gen/dex.js";
4
4
  import { type RegisteredFlow } from "./flow.js";
5
5
  import { type FlowResult } from "./flow-result.js";
6
6
  import { AttributeMap, type Attribute } from "./persistence.js";
7
- import { ChannelMap, type Channel } from "./wait.js";
7
+ import { ChannelMap, type Channel, type ChannelMessage } from "./wait.js";
8
8
  import type { Stream } from "./stream.js";
9
9
  export type InvocationMethod = "waitFor" | "execute" | "rpc";
10
10
  export interface StepOutputEmitter {
@@ -31,6 +31,10 @@ export declare class InvocationContext implements AsyncContext {
31
31
  private readonly attributes;
32
32
  private readonly locals;
33
33
  private readonly channelInfos;
34
+ private readonly loadedChannelMessages;
35
+ private readonly loadedAttributeMapInstances;
36
+ private readonly loadedChannelNames;
37
+ private readonly loadedChannelMapInstances;
34
38
  private readonly attributeWrites;
35
39
  private readonly localWrites;
36
40
  private readonly events;
@@ -40,7 +44,7 @@ export declare class InvocationContext implements AsyncContext {
40
44
  private readonly lastHeartbeatValue;
41
45
  private readonly stepOutputFinalizers;
42
46
  private stepOutputsFinalized;
43
- constructor(method: InvocationMethod, flow: RegisteredFlow, metadata: ProtoContext | undefined, attributes: readonly KV[], locals?: readonly KV[], conditionResults?: ConditionResults | undefined, channelInfos?: Readonly<Record<string, ChannelInfo>>, cancellationSignal?: AbortSignal, stepOutput?: StepOutputEmitter | undefined);
47
+ constructor(method: InvocationMethod, flow: RegisteredFlow, metadata: ProtoContext | undefined, attributes: readonly KV[], locals?: readonly KV[], conditionResults?: ConditionResults | undefined, channelInfos?: Readonly<Record<string, ChannelInfo>>, cancellationSignal?: AbortSignal, stepOutput?: StepOutputEmitter | undefined, loadedChannelMessages?: Readonly<Record<string, ChannelValues>>, loadedAttributeMapInstances?: readonly string[], loadedChannelNames?: readonly string[], loadedChannelMapInstances?: readonly string[]);
44
48
  hasLastHeartbeatValue(): boolean;
45
49
  getLastHeartbeatValue<T = unknown>(codec?: Codec<T>): T | undefined;
46
50
  recordHeartbeat<T>(value: T | undefined, codec?: Codec<T>): Promise<void>;
@@ -63,6 +67,7 @@ export declare class InvocationContext implements AsyncContext {
63
67
  publish<T>(channel: Channel<T> | ChannelMap<T>, value: T, instance?: string): void;
64
68
  deleteChannelMessage(channel: Channel<unknown> | ChannelMap<unknown>, messageId: string, instance?: string): void;
65
69
  channelSize(channel: Channel<unknown> | ChannelMap<unknown>, instance?: string): number;
70
+ pendingChannelMessages<T>(channel: Channel<T> | ChannelMap<T>, instance?: string): readonly ChannelMessage<T>[];
66
71
  channelMapKeys(channel: ChannelMap<unknown>): readonly string[];
67
72
  channelResults<T>(channel: Channel<T> | ChannelMap<T>, instance?: string): readonly T[];
68
73
  getAttributeWrites(): readonly AttributeWrite[];
@@ -11,7 +11,8 @@ import { requireFlowStream } from "./flow.js";
11
11
  import { createFlowResultFromProto } from "./flow-result.js";
12
12
  import { AttributeMap, IndexType } from "./persistence.js";
13
13
  import { codecOrJson, decodeValue, deletionValue, encodeValue } from "./value-mapper.js";
14
- import { requireName } from "./validation.js";
14
+ import { AttributeMapNotLoadedError, ChannelMessagesNotLoadedError, } from "./errors.js";
15
+ import { physicalMapName, requireMapInstance, requireName } from "./validation.js";
15
16
  import { ChannelMap } from "./wait.js";
16
17
  export class InvocationContext {
17
18
  method;
@@ -29,6 +30,10 @@ export class InvocationContext {
29
30
  attributes;
30
31
  locals;
31
32
  channelInfos;
33
+ loadedChannelMessages;
34
+ loadedAttributeMapInstances;
35
+ loadedChannelNames;
36
+ loadedChannelMapInstances;
32
37
  attributeWrites = new Map();
33
38
  localWrites = new Map();
34
39
  events = [];
@@ -38,7 +43,7 @@ export class InvocationContext {
38
43
  lastHeartbeatValue;
39
44
  stepOutputFinalizers = [];
40
45
  stepOutputsFinalized = false;
41
- constructor(method, flow, metadata, attributes, locals = [], conditionResults, channelInfos = {}, cancellationSignal = new AbortController().signal, stepOutput) {
46
+ constructor(method, flow, metadata, attributes, locals = [], conditionResults, channelInfos = {}, cancellationSignal = new AbortController().signal, stepOutput, loadedChannelMessages = {}, loadedAttributeMapInstances = [], loadedChannelNames = [], loadedChannelMapInstances = []) {
42
47
  this.method = method;
43
48
  this.flow = flow;
44
49
  this.conditionResults = conditionResults;
@@ -58,6 +63,10 @@ export class InvocationContext {
58
63
  this.attributes = mapValues("Attribute", attributes);
59
64
  this.locals = mapValues("step-execution local", locals);
60
65
  this.channelInfos = new Map(Object.entries(channelInfos));
66
+ this.loadedChannelMessages = loadedChannelMessages;
67
+ this.loadedAttributeMapInstances = new Set(loadedAttributeMapInstances);
68
+ this.loadedChannelNames = new Set(loadedChannelNames);
69
+ this.loadedChannelMapInstances = new Set(loadedChannelMapInstances);
61
70
  cancellationSignal.addEventListener("abort", () => this.cancelStepOutputs(), { once: true });
62
71
  }
63
72
  hasLastHeartbeatValue() {
@@ -178,6 +187,11 @@ export class InvocationContext {
178
187
  getAttribute(attribute, instance) {
179
188
  this.requireRegistered(attribute);
180
189
  const key = definitionName(attribute, instance);
190
+ if (this.method === "rpc" &&
191
+ attribute instanceof AttributeMap &&
192
+ !mapInstanceLoaded(this.loadedAttributeMapInstances, attribute.name, key)) {
193
+ throw new AttributeMapNotLoadedError(`AttributeMap instance was not loaded for RPC: ${key}`);
194
+ }
181
195
  const write = this.attributeWrites.get(key)?.value;
182
196
  if (write?.kind?.$case === "nullValue") {
183
197
  return defaultValue(attribute.codec);
@@ -207,6 +221,9 @@ export class InvocationContext {
207
221
  }
208
222
  attributeMapKeys(attribute) {
209
223
  this.requireRegistered(attribute);
224
+ if (this.method === "rpc" && !this.loadedAttributeMapInstances.has(`${attribute.name}/`)) {
225
+ throw new AttributeMapNotLoadedError(`all AttributeMap instances were not loaded for RPC: ${attribute.name}`);
226
+ }
210
227
  const prefix = `${attribute.name}/`;
211
228
  const physicalKeys = new Set([...this.attributes.keys()].filter((key) => key.startsWith(prefix)));
212
229
  for (const [key, write] of this.attributeWrites) {
@@ -221,7 +238,7 @@ export class InvocationContext {
221
238
  }
222
239
  }
223
240
  return [...physicalKeys]
224
- .map((key) => decodeURIComponent(key.slice(prefix.length)))
241
+ .map((key) => requireMapInstance(decodeURIComponent(key.slice(prefix.length))))
225
242
  .sort();
226
243
  }
227
244
  publish(channel, value, instance) {
@@ -252,6 +269,28 @@ export class InvocationContext {
252
269
  this.requireRegistered(channel);
253
270
  return this.channelInfos.get(definitionName(channel, instance))?.size ?? 0;
254
271
  }
272
+ pendingChannelMessages(channel, instance) {
273
+ if (this.method !== "rpc") {
274
+ throw new TypeError("pending Channel messages require an RPC Context");
275
+ }
276
+ this.requireRegistered(channel);
277
+ const name = definitionName(channel, instance);
278
+ const isLoaded = channel instanceof ChannelMap
279
+ ? mapInstanceLoaded(this.loadedChannelMapInstances, channel.name, name)
280
+ : this.loadedChannelNames.has(name);
281
+ if (!isLoaded) {
282
+ throw new ChannelMessagesNotLoadedError(`Channel messages were not loaded for RPC: ${name}`);
283
+ }
284
+ return (this.loadedChannelMessages[name]?.messages ?? []).map((message) => {
285
+ if (message.value === undefined) {
286
+ throw new TypeError(`Channel message has no Value: ${message.messageId}`);
287
+ }
288
+ return {
289
+ messageId: message.messageId,
290
+ value: decodeValue(channel.codec, message.value),
291
+ };
292
+ });
293
+ }
255
294
  channelMapKeys(channel) {
256
295
  this.requireRegistered(channel);
257
296
  if (this.method !== "rpc") {
@@ -260,7 +299,7 @@ export class InvocationContext {
260
299
  const prefix = `${channel.name}/`;
261
300
  return [...this.channelInfos]
262
301
  .filter(([key, info]) => key.startsWith(prefix) && info.size > 0)
263
- .map(([key]) => decodeURIComponent(key.slice(prefix.length)))
302
+ .map(([key]) => requireMapInstance(decodeURIComponent(key.slice(prefix.length))))
264
303
  .sort();
265
304
  }
266
305
  channelResults(channel, instance) {
@@ -297,16 +336,15 @@ function definitionName(definition, instance) {
297
336
  if (instance === undefined) {
298
337
  throw new TypeError(`map definition ${definition.name} requires an instance`);
299
338
  }
300
- requireName(instance);
301
- return `${definition.name}/${encodeURIComponent(instance).replace(/[!'()*]/g, encodeCharacter)}`;
339
+ return physicalMapName(definition.name, instance);
302
340
  }
303
341
  if (instance !== undefined) {
304
342
  throw new TypeError(`static definition ${definition.name} cannot use an instance`);
305
343
  }
306
344
  return definition.name;
307
345
  }
308
- function encodeCharacter(character) {
309
- return `%${character.charCodeAt(0).toString(16).toUpperCase()}`;
346
+ function mapInstanceLoaded(instances, name, physical) {
347
+ return instances.has(`${name}/`) || instances.has(physical);
310
348
  }
311
349
  function mapValues(kind, entries) {
312
350
  const values = new Map();
@@ -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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"}
@@ -72,7 +72,7 @@ export interface FlowConfig {
72
72
  export interface InitialAttribute<T> {
73
73
  /** Registered singleton Attribute or AttributeMap definition. */
74
74
  readonly attribute: Attribute<T> | AttributeMap<T>;
75
- /** Required non-empty map key; omitted for a singleton Attribute. */
75
+ /** The map instance. Omit it for a singleton Attribute. Slash is prohibited because it is a reserved character. */
76
76
  readonly instance?: string;
77
77
  /** Typed initial value. */
78
78
  readonly value: T;
@@ -91,7 +91,7 @@ export declare const InitialAttribute: Readonly<{
91
91
  * Creates an AttributeMap instance initialization.
92
92
  * @typeParam T - Attribute value type.
93
93
  * @param attribute - Registered AttributeMap.
94
- * @param instance - Non-empty logical map key.
94
+ * @param instance - The map instance. Slash is prohibited because it is a reserved character.
95
95
  * @param value - Typed initial value.
96
96
  * @returns The AttributeMap initialization value.
97
97
  */
@@ -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 { requireName } from "./validation.js";
8
+ import { requireMapInstance, requireName } from "./validation.js";
9
9
  /** Controls which active Steps are included in Flow search indexing. */
10
10
  export const ActiveStepSearchMode = Object.freeze({
11
11
  /** Uses the Dex server's current default policy. */
@@ -53,12 +53,12 @@ export const InitialAttribute = Object.freeze({
53
53
  * Creates an AttributeMap instance initialization.
54
54
  * @typeParam T - Attribute value type.
55
55
  * @param attribute - Registered AttributeMap.
56
- * @param instance - Non-empty logical map key.
56
+ * @param instance - The map instance. Slash is prohibited because it is a reserved character.
57
57
  * @param value - Typed initial value.
58
58
  * @returns The AttributeMap initialization value.
59
59
  */
60
60
  mapValue(attribute, instance, value) {
61
- requireName(instance);
61
+ requireMapInstance(instance);
62
62
  return { attribute, instance, value };
63
63
  },
64
64
  });
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/options.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;AAU9C,wEAAwE;AACxE,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC;IAChD,oDAAoD;IACpD,OAAO,EAAE,SAAS;IAClB,iCAAiC;IACjC,GAAG,EAAE,KAAK;CACF,CAAC,CAAC;AAMZ,wEAAwE;AACxE,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;IACzC,kDAAkD;IAClD,OAAO,EAAE,SAAS;IAClB,0DAA0D;IAC1D,wBAAwB,EAAE,uBAAuB;IACjD,yCAAyC;IACzC,oBAAoB,EAAE,mBAAmB;IACzC,gEAAgE;IAChE,0BAA0B,EAAE,yBAAyB;IACrD,6CAA6C;IAC7C,QAAQ,EAAE,UAAU;CACZ,CAAC,CAAC;AAKZ,2EAA2E;AAC3E,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7C,sEAAsE;IACtE,OAAO,EAAE,SAAS;IAClB,wEAAwE;IACxE,IAAI,EAAE,MAAM;IACZ,yCAAyC;IACzC,MAAM,EAAE,QAAQ;IAChB,qFAAqF;IACrF,OAAO,EAAE,SAAS;CACV,CAAC,CAAC;AAyCZ,+EAA+E;AAC/E,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC5C;;;;;;OAMG;IACH,EAAE,CAAI,SAAuB,EAAE,KAAQ;QACrC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC9B,CAAC;IACD;;;;;;;OAOG;IACH,QAAQ,CACN,SAA0B,EAC1B,QAAgB,EAChB,KAAQ;QAER,WAAW,CAAC,QAAQ,CAAC,CAAC;QACtB,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACxC,CAAC;CACF,CAAC,CAAC;AAkGH,yDAAyD;AACzD,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3C;;;;;OAKG;IACH,EAAE,CAAC,QAAgB,EAAE,MAAe;QAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC;IAC3C,CAAC;CACF,CAAC,CAAC;AAUH,kEAAkE;AAClE,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;IACnC;;;;OAIG;IACH,aAAa,CAAC,WAAmB;QAC/B,WAAW,CAAC,WAAW,CAAC,CAAC;QACzB,OAAO,EAAE,WAAW,EAAE,CAAC;IACzB,CAAC;IACD;;;;OAIG;IACH,gBAAgB,CAAC,cAAsB;QACrC,OAAO,EAAE,cAAc,EAAE,CAAC;IAC5B,CAAC;CACF,CAAC,CAAC;AAEH,6EAA6E;AAC7E,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1C,+CAA+C;IAC/C,SAAS,EAAE,WAAW;IACtB,0DAA0D;IAC1D,kBAAkB,EAAE,kBAAkB;IACtC,sDAAsD;IACtD,SAAS,EAAE,UAAU;IACrB,8CAA8C;IAC9C,iBAAiB,EAAE,iBAAiB;CAC5B,CAAC,CAAC;AAKZ,6EAA6E;AAC7E,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC;IAChD,8CAA8C;IAC9C,QAAQ,EAAE,SAAS;IACnB,2EAA2E;IAC3E,OAAO,EAAE,SAAS;CACV,CAAC,CAAC;AAuBZ,+CAA+C;AAC/C,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,yCAAyC;IACzC,MAAM,EAAE,QAAQ;IAChB,oCAAoC;IACpC,SAAS,EAAE,WAAW;IACtB,iCAAiC;IACjC,IAAI,EAAE,MAAM;CACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/options.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,13 @@ import type { Channel, ChannelMap } from "./wait.js";
2
2
  import type { Codec } from "./codec.js";
3
3
  import type { Context } from "./context.js";
4
4
  import type { Stream } from "./stream.js";
5
+ /** Selects one AttributeMap instance for an RPC snapshot. */
6
+ export interface AttributeMapLoad {
7
+ /** Exact AttributeMap definition registered with the Flow. */
8
+ readonly attributeMap: AttributeMap<unknown>;
9
+ /** One slash-free logical instance key. */
10
+ readonly instance: string;
11
+ }
5
12
  /** Selects how Dex indexes an Attribute for Flow search. */
6
13
  export declare const IndexType: Readonly<{
7
14
  /** Indexes an exact string value. */
@@ -90,7 +97,8 @@ export declare class Attribute<T> {
90
97
  lock(): AttributeLock;
91
98
  }
92
99
  /**
93
- * Defines a typed family of durable values keyed by map instance.
100
+ * Defines a typed family of durable values keyed by instance.
101
+ * Slash is prohibited in instance keys because it is a reserved character.
94
102
  * @typeParam T - Value encoded for every map instance.
95
103
  */
96
104
  export declare class AttributeMap<T> {
@@ -107,23 +115,29 @@ export declare class AttributeMap<T> {
107
115
  /**
108
116
  * Reads one map instance from handler decision state.
109
117
  * @param context - Current Step or RPC Context.
110
- * @param instance - Non-empty logical map key.
118
+ * @param instance - The map instance. Slash is prohibited because it is a reserved character.
111
119
  * @returns The decoded instance value.
112
120
  */
113
121
  get(context: Context, instance: string): T;
114
122
  /**
115
123
  * Stages one map-instance write.
116
124
  * @param context - Current Step or RPC Context.
117
- * @param instance - Non-empty logical map key.
125
+ * @param instance - The map instance. Slash is prohibited because it is a reserved character.
118
126
  * @param value - Typed value to persist.
119
127
  */
120
128
  set(context: Context, instance: string, value: T): void;
121
129
  /**
122
130
  * Stages deletion of one map instance.
123
131
  * @param context - Current Step or RPC Context.
124
- * @param instance - Non-empty logical map key.
132
+ * @param instance - The map instance. Slash is prohibited because it is a reserved character.
125
133
  */
126
134
  delete(context: Context, instance: string): void;
135
+ /**
136
+ * Selects one logical instance for an RPC snapshot.
137
+ * @param instance - Non-empty logical map key. The SDK escapes it for the protocol.
138
+ * @returns An exact instance load for {@link RPCOptions.loadAttributeMapInstances}.
139
+ */
140
+ load(instance: string): AttributeMapLoad;
127
141
  /**
128
142
  * Returns the number of existing instances, including buffered writes.
129
143
  * @param context - Current Step or RPC Context.
@@ -147,7 +161,7 @@ export declare class AttributeMap<T> {
147
161
  syncToAttributeStore(): AttributeMap<T>;
148
162
  /**
149
163
  * Creates a lock request scoped to one map instance.
150
- * @param instance - Non-empty logical map key.
164
+ * @param instance - The map instance. Slash is prohibited because it is a reserved character.
151
165
  * @returns A lock for the requested instance.
152
166
  */
153
167
  lock(instance: string): AttributeLock;
@@ -6,7 +6,7 @@
6
6
  //
7
7
  // SPDX-License-Identifier: LicenseRef-Super-Durable-1.0
8
8
  import { markAttributeStoreSynced } from "./attribute-store-sync.js";
9
- import { requirePersistenceDefinitionName, requireName } from "./validation.js";
9
+ import { requireMapInstance, requirePersistenceDefinitionName } from "./validation.js";
10
10
  /** Selects how Dex indexes an Attribute for Flow search. */
11
11
  export const IndexType = Object.freeze({
12
12
  /** Indexes an exact string value. */
@@ -94,7 +94,8 @@ export class Attribute {
94
94
  }
95
95
  }
96
96
  /**
97
- * Defines a typed family of durable values keyed by map instance.
97
+ * Defines a typed family of durable values keyed by instance.
98
+ * Slash is prohibited in instance keys because it is a reserved character.
98
99
  * @typeParam T - Value encoded for every map instance.
99
100
  */
100
101
  export class AttributeMap {
@@ -116,7 +117,7 @@ export class AttributeMap {
116
117
  /**
117
118
  * Reads one map instance from handler decision state.
118
119
  * @param context - Current Step or RPC Context.
119
- * @param instance - Non-empty logical map key.
120
+ * @param instance - The map instance. Slash is prohibited because it is a reserved character.
120
121
  * @returns The decoded instance value.
121
122
  */
122
123
  get(context, instance) {
@@ -125,7 +126,7 @@ export class AttributeMap {
125
126
  /**
126
127
  * Stages one map-instance write.
127
128
  * @param context - Current Step or RPC Context.
128
- * @param instance - Non-empty logical map key.
129
+ * @param instance - The map instance. Slash is prohibited because it is a reserved character.
129
130
  * @param value - Typed value to persist.
130
131
  */
131
132
  set(context, instance, value) {
@@ -134,11 +135,20 @@ export class AttributeMap {
134
135
  /**
135
136
  * Stages deletion of one map instance.
136
137
  * @param context - Current Step or RPC Context.
137
- * @param instance - Non-empty logical map key.
138
+ * @param instance - The map instance. Slash is prohibited because it is a reserved character.
138
139
  */
139
140
  delete(context, instance) {
140
141
  context.deleteAttribute(this, instance);
141
142
  }
143
+ /**
144
+ * Selects one logical instance for an RPC snapshot.
145
+ * @param instance - Non-empty logical map key. The SDK escapes it for the protocol.
146
+ * @returns An exact instance load for {@link RPCOptions.loadAttributeMapInstances}.
147
+ */
148
+ load(instance) {
149
+ requireMapInstance(instance);
150
+ return { attributeMap: this, instance };
151
+ }
142
152
  /**
143
153
  * Returns the number of existing instances, including buffered writes.
144
154
  * @param context - Current Step or RPC Context.
@@ -168,11 +178,11 @@ export class AttributeMap {
168
178
  }
169
179
  /**
170
180
  * Creates a lock request scoped to one map instance.
171
- * @param instance - Non-empty logical map key.
181
+ * @param instance - The map instance. Slash is prohibited because it is a reserved character.
172
182
  * @returns A lock for the requested instance.
173
183
  */
174
184
  lock(instance) {
175
- requireName(instance);
185
+ requireMapInstance(instance);
176
186
  return { attribute: this, instance };
177
187
  }
178
188
  }
@@ -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
@@ -1,7 +1,8 @@
1
1
  import type { Codec } from "./codec.js";
2
2
  import type { Context } from "./context.js";
3
3
  import type { Flow } from "./flow.js";
4
- import type { AttributeLock } from "./persistence.js";
4
+ import type { AttributeLock, AttributeMap, AttributeMapLoad } from "./persistence.js";
5
+ import type { Channel, ChannelMap, ChannelMapLoad } from "./wait.js";
5
6
  import type { StepClass, StepMovement } from "./step.js";
6
7
  /**
7
8
  * Contains a typed RPC output and optional next-Step movements.
@@ -45,6 +46,16 @@ export interface RPCOptions<Input = unknown, Output = unknown> {
45
46
  readonly lockAttributes?: readonly AttributeLock[];
46
47
  /** Requests transactional reads and writes even when no Attribute lock is configured. */
47
48
  readonly isTransactional?: boolean;
49
+ /** AttributeMaps whose current instances are included in the RPC snapshot. */
50
+ readonly loadAttributeMaps?: readonly AttributeMap<unknown>[];
51
+ /** Exact AttributeMap instances included in the RPC snapshot. */
52
+ readonly loadAttributeMapInstances?: readonly AttributeMapLoad[];
53
+ /** Singleton Channel pending messages included in the RPC snapshot. */
54
+ readonly loadChannels?: readonly Channel<unknown>[];
55
+ /** ChannelMaps whose current instance messages are included in the RPC snapshot. */
56
+ readonly loadChannelMaps?: readonly ChannelMap<unknown>[];
57
+ /** Exact ChannelMap instance messages included in the RPC snapshot. */
58
+ readonly loadChannelMapInstances?: readonly ChannelMapLoad[];
48
59
  }
49
60
  export interface RegisteredRPC {
50
61
  readonly method: Function;
@@ -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;AA0D9C,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,4 +1,6 @@
1
1
  export declare function requireName(name: string): string;
2
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;
3
5
  export declare function requireConditionId(conditionId: string | undefined): void;
4
6
  export declare function validateChannelBounds(atLeast: number | undefined, atMost: number | undefined): void;
@@ -18,6 +18,18 @@ export function requirePersistenceDefinitionName(name) {
18
18
  }
19
19
  return name;
20
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
+ }
21
33
  export function requireConditionId(conditionId) {
22
34
  if (conditionId !== undefined && conditionId.length === 0) {
23
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,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,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"}