@superdurable/dex 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/README.md +82 -3
  2. package/dist/src/attribute-store-sync.d.ts +5 -0
  3. package/dist/src/attribute-store-sync.js +19 -0
  4. package/dist/src/attribute-store-sync.js.map +1 -0
  5. package/dist/src/blob-cache.d.ts +36 -0
  6. package/dist/src/blob-cache.js +13 -0
  7. package/dist/src/blob-cache.js.map +1 -1
  8. package/dist/src/client.d.ts +186 -5
  9. package/dist/src/client.js +174 -33
  10. package/dist/src/client.js.map +1 -1
  11. package/dist/src/codec.d.ts +73 -0
  12. package/dist/src/codec.js +23 -0
  13. package/dist/src/codec.js.map +1 -1
  14. package/dist/src/context.d.ts +80 -0
  15. package/dist/src/errors.d.ts +122 -6
  16. package/dist/src/errors.js +139 -9
  17. package/dist/src/errors.js.map +1 -1
  18. package/dist/src/flow.d.ts +36 -1
  19. package/dist/src/flow.js +96 -28
  20. package/dist/src/flow.js.map +1 -1
  21. package/dist/src/gen/dex.d.ts +58 -9
  22. package/dist/src/gen/dex.js +417 -55
  23. package/dist/src/gen/dex.js.map +1 -1
  24. package/dist/src/grpc-status.d.ts +5 -4
  25. package/dist/src/grpc-status.js +52 -6
  26. package/dist/src/grpc-status.js.map +1 -1
  27. package/dist/src/invocation-context.js +3 -0
  28. package/dist/src/invocation-context.js.map +1 -1
  29. package/dist/src/options.d.ts +162 -0
  30. package/dist/src/options.js +53 -0
  31. package/dist/src/options.js.map +1 -1
  32. package/dist/src/persistence.d.ts +103 -0
  33. package/dist/src/persistence.js +98 -0
  34. package/dist/src/persistence.js.map +1 -1
  35. package/dist/src/rpc.d.ts +58 -5
  36. package/dist/src/rpc.js +17 -0
  37. package/dist/src/rpc.js.map +1 -1
  38. package/dist/src/step.d.ts +164 -2
  39. package/dist/src/step.js +85 -0
  40. package/dist/src/step.js.map +1 -1
  41. package/dist/src/value-mapper.d.ts +1 -0
  42. package/dist/src/value-mapper.js +75 -14
  43. package/dist/src/value-mapper.js.map +1 -1
  44. package/dist/src/wait.d.ts +180 -0
  45. package/dist/src/wait.js +157 -0
  46. package/dist/src/wait.js.map +1 -1
  47. package/dist/src/worker-dispatcher.js +55 -29
  48. package/dist/src/worker-dispatcher.js.map +1 -1
  49. package/dist/src/worker.d.ts +30 -1
  50. package/dist/src/worker.js +48 -2
  51. package/dist/src/worker.js.map +1 -1
  52. package/native/linux-aarch64/dex_blob_cache_node.node +0 -0
  53. package/native/linux-x86_64/dex_blob_cache_node.node +0 -0
  54. package/native/macos-aarch64/dex_blob_cache_node.node +0 -0
  55. package/native/macos-x86_64/dex_blob_cache_node.node +0 -0
  56. package/native/windows-x86_64/dex_blob_cache_node.node +0 -0
  57. package/package.json +2 -1
@@ -5,23 +5,45 @@
5
5
  // See the LICENSE file in the repository root.
6
6
  //
7
7
  // SPDX-License-Identifier: LicenseRef-Super-Durable-1.0
8
- import { credentials, status as GrpcStatus } from "@grpc/grpc-js";
8
+ import { credentials } from "@grpc/grpc-js";
9
+ import { mapAttributeStoreName, mapAttributeStoreSync } from "./attribute-store-sync.js";
9
10
  import { ActiveStepSearchMode as ProtoActiveStepSearchMode, FlowErrorType as ProtoFlowErrorType, FlowResetType as ProtoFlowResetType, FlowServiceClient, FlowStatus as ProtoFlowStatus, IdReusePolicy as ProtoIdReusePolicy, IndexType as ProtoIndexType, ExecuteMethodFailurePolicy, StartFlowRequest, StepDurability as ProtoStepDurability, StepOptions as ProtoStepOptions, StopType as ProtoStopType, WaitForMethodFailurePolicy, } from "./gen/dex.js";
10
- import { DexError, ErrorSubStatus, FlowErrorType, FlowUncompletedError, LongPollTimeoutError, } from "./errors.js";
11
+ import { FlowErrorType, FlowUncompletedError } from "./errors.js";
11
12
  import { registeredFlow, registeredRPC, } from "./flow.js";
12
13
  import { translateServiceError } from "./grpc-status.js";
13
14
  import { ActiveStepSearchMode, IdReusePolicy, ResetType, StopType, } from "./options.js";
14
15
  import { AttributeMap, IndexType } from "./persistence.js";
15
16
  import { requireName } from "./validation.js";
16
- import { decodeValue, encodeValue, ValueHydrator } from "./value-mapper.js";
17
+ import { decodeUnknown, decodeValue, encodeValue, ValueHydrator } from "./value-mapper.js";
17
18
  import { ChannelMap } from "./wait.js";
18
19
  const defaultServerAddress = "localhost:8801";
20
+ /**
21
+ * Calls Dex FlowService through registered, typed Flow definitions.
22
+ *
23
+ * Methods perform asynchronous gRPC I/O. A Client owns its service connection but
24
+ * not its Registry or BlobCache; call `close` during application shutdown.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * const client = new Client(registry, cache);
29
+ * try {
30
+ * const runId = await client.startFlow(orders, "order-42", input);
31
+ * const result = await client.waitForFlow("order-42", orderResultCodec);
32
+ * } finally { await client.close(); }
33
+ * ```
34
+ */
19
35
  export class Client {
20
36
  registry;
21
37
  blobCache;
22
38
  options;
23
39
  service;
24
40
  hydrator;
41
+ /**
42
+ * Constructs a Client and lazy plaintext gRPC connection.
43
+ * @param registry - Flow definitions used for validation and routing.
44
+ * @param blobCache - Open cache used to hydrate large response values.
45
+ * @param options - Service address and default Worker target.
46
+ */
25
47
  constructor(registry, blobCache, options = {}) {
26
48
  this.registry = registry;
27
49
  this.blobCache = blobCache;
@@ -29,6 +51,17 @@ export class Client {
29
51
  this.service = new FlowServiceClient(options.serverAddress ?? defaultServerAddress, credentials.createInsecure());
30
52
  this.hydrator = new ValueHydrator(this.service, blobCache);
31
53
  }
54
+ /**
55
+ * Starts a Flow and returns after Dex accepts it.
56
+ * @typeParam StartInput - Starting Step input type.
57
+ * @param flow - Exact Flow instance registered with this Client.
58
+ * @param flowId - Non-empty application ID stable across runs.
59
+ * @param input - Starting Step input, or `undefined` when no start Step exists.
60
+ * @param options - Timeout, reuse, retry, configuration, and initial state.
61
+ * @returns The server-assigned run ID.
62
+ * @throws {@link FlowAlreadyStartedError} when reuse policy rejects the Flow ID.
63
+ * @throws {@link FlowDefinitionError} when `flow` is not registered.
64
+ */
32
65
  async startFlow(flow, flowId, input, options = {}) {
33
66
  const registered = registeredFlow(this.registry, flow);
34
67
  const request = StartFlowRequest.create({
@@ -45,6 +78,7 @@ export class Client {
45
78
  key: physicalName(initial.attribute.name, initial.instance),
46
79
  value: encodeValue(initial.attribute.codec, initial.value),
47
80
  indexConfig: mapIndex(initial.attribute.index),
81
+ syncConfig: mapAttributeStoreSync(initial.attribute),
48
82
  })),
49
83
  flowConfigOverride: mapFlowConfig(options.configOverride, this.options),
50
84
  flowAlreadyStartedOptions: {
@@ -62,13 +96,23 @@ export class Client {
62
96
  request.stepInput = encodeValue(registered.startStep.step.inputCodec, input);
63
97
  request.stepOptions = mapStepOptions(registered.startStep.step.getStepOptions?.(), registered.startStep.step.waitFor === undefined, registered);
64
98
  }
65
- return (await unary((callback) => this.service.startFlow(request, callback)))
99
+ return (await unary({ operation: "startFlow", flowId, requirement: "none" }, (callback) => this.service.startFlow(request, callback)))
66
100
  .runId;
67
101
  }
102
+ /**
103
+ * Dispatches a registered RPC using its decorator codecs and locks.
104
+ * @param rpcMethod - Bound registered RPC method.
105
+ * @param flowId - Non-empty target Flow ID.
106
+ * @param inputOrRunId - Typed input, or run ID for an input-free RPC.
107
+ * @param runId - Exact run for an input-bearing RPC; targets the active run when omitted.
108
+ * @returns Decoded output, or `undefined` for an output-free RPC.
109
+ * @throws {@link RpcLockConflictError} when locks cannot be acquired.
110
+ * @throws {@link WorkerInvocationError} when the application handler fails.
111
+ */
68
112
  async invokeRPC(rpcMethod, flowId, inputOrRunId, runId = "") {
69
113
  const rpc = registeredRPC(this.registry, rpcMethod);
70
114
  const hasInput = rpc.options.inputCodec !== undefined;
71
- const response = await unary((callback) => this.service.invokeRpc({
115
+ const response = await unary({ operation: "invokeRPC", flowId, requirement: "active" }, (callback) => this.service.invokeRpc({
72
116
  flowId: requireName(flowId),
73
117
  runId: hasInput ? runId : inputOrRunId ?? "",
74
118
  rpcName: rpc.name,
@@ -84,9 +128,17 @@ export class Client {
84
128
  }
85
129
  return decodeValue(rpc.options.outputCodec, await this.hydrator.hydrate(response.output));
86
130
  }
131
+ /**
132
+ * Reads and decodes a singleton or map Attribute.
133
+ * @param flowId - Non-empty existing Flow ID.
134
+ * @param attribute - Typed Attribute definition.
135
+ * @param instanceOrRunId - Map instance, or singleton run ID.
136
+ * @param runId - Exact run for a map read.
137
+ * @returns The decoded value, or `undefined` when unset.
138
+ */
87
139
  async getAttribute(flowId, attribute, instanceOrRunId = "", runId = "") {
88
140
  const isMap = attribute instanceof AttributeMap;
89
- const response = await unary((callback) => this.service.getAttributes({
141
+ const response = await unary({ operation: "getAttribute", flowId, requirement: "existing" }, (callback) => this.service.getAttributes({
90
142
  flowId: requireName(flowId),
91
143
  runId: isMap ? runId : instanceOrRunId,
92
144
  keys: [physicalName(attribute.name, isMap ? instanceOrRunId : undefined)],
@@ -98,11 +150,20 @@ export class Client {
98
150
  }
99
151
  return decodeValue(attribute.codec, await this.hydrator.hydrate(value));
100
152
  }
153
+ /**
154
+ * Encodes and writes a singleton or map Attribute.
155
+ * @param flowId - Non-empty active Flow ID.
156
+ * @param attribute - Typed Attribute definition.
157
+ * @param instanceOrValue - Map instance or singleton value.
158
+ * @param valueOrRunId - Map value or singleton run ID.
159
+ * @param runId - Exact run for a map write.
160
+ * @returns A promise resolved after Dex applies the write.
161
+ */
101
162
  async setAttribute(flowId, attribute, instanceOrValue, valueOrRunId, runId = "") {
102
163
  const isMap = attribute instanceof AttributeMap;
103
164
  const instance = isMap ? String(instanceOrValue) : undefined;
104
165
  const value = isMap ? valueOrRunId : instanceOrValue;
105
- await unary((callback) => this.service.setAttributes({
166
+ await unary({ operation: "setAttribute", flowId, requirement: "active" }, (callback) => this.service.setAttributes({
106
167
  flowId: requireName(flowId),
107
168
  runId: isMap ? runId : typeof valueOrRunId === "string" ? valueOrRunId : "",
108
169
  attributes: [
@@ -110,16 +171,24 @@ export class Client {
110
171
  key: physicalName(attribute.name, instance),
111
172
  value: encodeValue(attribute.codec, value),
112
173
  indexConfig: mapIndex(attribute.index),
174
+ syncConfig: mapAttributeStoreSync(attribute),
113
175
  },
114
176
  ],
115
177
  requestId: crypto.randomUUID(),
116
178
  }, callback));
117
179
  }
180
+ /**
181
+ * Encodes and publishes a singleton or map Channel batch.
182
+ * @param flowId - Non-empty active Flow ID.
183
+ * @param channel - Typed Channel definition.
184
+ * @param instanceAndValues - Optional map instance followed by values.
185
+ * @returns A promise resolved after Dex accepts the batch.
186
+ */
118
187
  async publish(flowId, channel, ...instanceAndValues) {
119
188
  const isMap = channel instanceof ChannelMap;
120
189
  const instance = isMap ? String(instanceAndValues[0]) : undefined;
121
190
  const values = isMap ? instanceAndValues.slice(1) : instanceAndValues;
122
- await unary((callback) => this.service.publishToChannel({
191
+ await unary({ operation: "publish", flowId, requirement: "active" }, (callback) => this.service.publishToChannel({
123
192
  flowId: requireName(flowId),
124
193
  runId: "",
125
194
  messages: values.map((value) => ({
@@ -128,24 +197,22 @@ export class Client {
128
197
  })),
129
198
  }, callback));
130
199
  }
200
+ /**
201
+ * Long-polls until a Flow closes and optionally decodes output.
202
+ * @param flowId - Non-empty existing Flow ID.
203
+ * @param outputCodec - Optional codec for the latest output.
204
+ * @param timeoutMs - Optional server-side long-poll duration in milliseconds.
205
+ * @returns Decoded output, or `undefined` when no codec was requested.
206
+ * @throws {@link LongPollTimeoutError} when the Flow remains open at timeout.
207
+ * @throws {@link FlowUncompletedError} for a non-successful terminal status.
208
+ */
131
209
  async waitForFlow(flowId, outputCodec, timeoutMs) {
132
- let response;
133
- try {
134
- response = await unary((callback) => this.service.waitForFlow({
135
- flowId: requireName(flowId),
136
- runId: "",
137
- needsResults: outputCodec !== undefined,
138
- waitTimeSeconds: seconds(timeoutMs),
139
- }, callback));
140
- }
141
- catch (failure) {
142
- if (failure instanceof DexError &&
143
- (failure.code === GrpcStatus.DEADLINE_EXCEEDED ||
144
- failure.subStatus === ErrorSubStatus.LONG_POLL_TIMEOUT)) {
145
- throw new LongPollTimeoutError(flowId, { cause: failure });
146
- }
147
- throw failure;
148
- }
210
+ const response = await unary({ operation: "waitForFlow", flowId, requirement: "existing" }, (callback) => this.service.waitForFlow({
211
+ flowId: requireName(flowId),
212
+ runId: "",
213
+ needsResults: outputCodec !== undefined,
214
+ waitTimeSeconds: seconds(timeoutMs),
215
+ }, callback));
149
216
  if (response.flowStatus !== ProtoFlowStatus.FLOW_STATUS_COMPLETED) {
150
217
  const summary = await this.describeFlow(flowId);
151
218
  const results = await this.hydrator.hydrateAll(response.results.map((result) => result.completedStepOutput));
@@ -162,16 +229,27 @@ export class Client {
162
229
  }
163
230
  throw new TypeError(`Flow ${flowId} completed without an output`);
164
231
  }
232
+ /**
233
+ * Requests cancellation, termination, or failure of an active Flow.
234
+ * The promise resolves after acceptance and does not await terminal status.
235
+ * @param flowId - Non-empty active Flow ID.
236
+ * @param options - Stop mode and optional recorded reason.
237
+ */
165
238
  async stopFlow(flowId, options = {}) {
166
- await unary((callback) => this.service.stopFlow({
239
+ await unary({ operation: "stopFlow", flowId, requirement: "active" }, (callback) => this.service.stopFlow({
167
240
  flowId: requireName(flowId),
168
241
  runId: "",
169
242
  reason: options.reason ?? "",
170
243
  stopType: mapStopType(options.type),
171
244
  }, callback));
172
245
  }
246
+ /**
247
+ * Returns summary metadata for the current or latest Flow run.
248
+ * @param flowId - Non-empty existing Flow ID.
249
+ * @returns Flow ID, run ID, type, status, and UTC start time.
250
+ */
173
251
  async describeFlow(flowId) {
174
- const response = await unary((callback) => this.service.getFlowSummary({ flowId: requireName(flowId), runId: "" }, callback));
252
+ const response = await unary({ operation: "describeFlow", flowId, requirement: "existing" }, (callback) => this.service.getFlowSummary({ flowId: requireName(flowId), runId: "" }, callback));
175
253
  if (response.flowExecutionId === undefined || response.startTime === undefined) {
176
254
  throw new TypeError(`Dex returned an incomplete summary for Flow ${flowId}`);
177
255
  }
@@ -183,8 +261,47 @@ export class Client {
183
261
  startedAt: response.startTime,
184
262
  };
185
263
  }
264
+ /**
265
+ * Returns one page of Flow runs matching a visibility query.
266
+ * @param query - Dex visibility query; empty uses server defaults.
267
+ * @param pageSize - Non-negative requested maximum result count.
268
+ * @param nextPageToken - Opaque token from the preceding page, or empty first.
269
+ * @returns Server-ordered entries and the next-page token.
270
+ */
271
+ async searchFlows(query, pageSize, nextPageToken = "") {
272
+ if (pageSize < 0) {
273
+ throw new RangeError("search page size must not be negative");
274
+ }
275
+ const response = await unary({ operation: "searchFlows", requirement: "none" }, (callback) => this.service.searchFlows({ query, pageSize, nextPageToken }, callback));
276
+ const flows = await Promise.all(response.flowRuns.map((entry) => this.mapSearchEntry(entry)));
277
+ return { flows, nextPageToken: response.nextPageToken };
278
+ }
279
+ async mapSearchEntry(entry) {
280
+ if (entry.startTime === undefined) {
281
+ throw new TypeError(`Dex returned a search entry without a start time for Flow ${entry.flowId}`);
282
+ }
283
+ const indexedAttributes = new Map();
284
+ for (const attribute of entry.indexedAttributes) {
285
+ indexedAttributes.set(attribute.key, decodeUnknown(await this.hydrator.hydrate(attribute.value)));
286
+ }
287
+ return {
288
+ flowId: entry.flowId,
289
+ runId: entry.runId,
290
+ flowType: entry.flowType,
291
+ status: mapFlowStatus(entry.flowStatus),
292
+ startedAt: entry.startTime,
293
+ closedAt: entry.closeTime,
294
+ indexedAttributes,
295
+ };
296
+ }
297
+ /**
298
+ * Creates a new run from a selected point in existing Flow history.
299
+ * @param flowId - Non-empty Flow ID whose history is reset.
300
+ * @param options - Reset selector, reason, and replay controls.
301
+ * @returns The new server-assigned run ID; the Flow ID remains unchanged.
302
+ */
186
303
  async resetFlow(flowId, options) {
187
- const response = await unary((callback) => this.service.resetFlow({
304
+ const response = await unary({ operation: "resetFlow", flowId, requirement: "existing" }, (callback) => this.service.resetFlow({
188
305
  flowId: requireName(flowId),
189
306
  runId: "",
190
307
  resetType: mapResetType(options.type),
@@ -198,8 +315,14 @@ export class Client {
198
315
  }, callback));
199
316
  return response.runId;
200
317
  }
318
+ /**
319
+ * Makes one waiting Timer condition immediately ready.
320
+ * @param flowId - Non-empty active Flow ID.
321
+ * @param stepExecutionId - Step type and positive execution number.
322
+ * @param timerId - Exactly one Timer condition ID or zero-based index.
323
+ */
201
324
  async skipTimer(flowId, stepExecutionId, timerId) {
202
- await unary((callback) => this.service.skipTimer({
325
+ await unary({ operation: "skipTimer", flowId, requirement: "active" }, (callback) => this.service.skipTimer({
203
326
  flowId: requireName(flowId),
204
327
  runId: "",
205
328
  stepExecutionId: `${stepExecutionId.stepType}-${stepExecutionId.number ?? 1}`,
@@ -207,8 +330,15 @@ export class Client {
207
330
  timerConditionIndex: timerId.conditionIndex,
208
331
  }, callback));
209
332
  }
333
+ /**
334
+ * Long-polls until one Step execution completes.
335
+ * @param flowId - Non-empty active Flow ID.
336
+ * @param stepExecutionId - Step type and positive execution number.
337
+ * @param timeoutMs - Non-negative server-side wait duration in milliseconds.
338
+ * @throws {@link LongPollTimeoutError} when completion is not observed in time.
339
+ */
210
340
  async waitForStepCompletion(flowId, stepExecutionId, timeoutMs) {
211
- await unary((callback) => this.service.waitForStepCompletion({
341
+ await unary({ operation: "waitForStepCompletion", flowId, requirement: "active" }, (callback) => this.service.waitForStepCompletion({
212
342
  flowId: requireName(flowId),
213
343
  stepType: stepExecutionId.stepType,
214
344
  stepExecutionNumber: String(stepExecutionId.number ?? 1),
@@ -216,13 +346,23 @@ export class Client {
216
346
  requestId: crypto.randomUUID(),
217
347
  }, callback));
218
348
  }
349
+ /**
350
+ * Replaces mutable configuration for an active Flow.
351
+ * The update affects later decisions and does not recall dispatched work.
352
+ * @param flowId - Non-empty active Flow ID.
353
+ * @param config - New optional Flow configuration fields.
354
+ */
219
355
  async updateFlowConfig(flowId, config) {
220
- await unary((callback) => this.service.updateFlowConfig({
356
+ await unary({ operation: "updateFlowConfig", flowId, requirement: "active" }, (callback) => this.service.updateFlowConfig({
221
357
  flowId: requireName(flowId),
222
358
  runId: "",
223
359
  flowConfig: mapFlowConfig(config, this.options),
224
360
  }, callback));
225
361
  }
362
+ /**
363
+ * Closes the owned FlowService connection.
364
+ * Registry and BlobCache ownership remains with the caller.
365
+ */
226
366
  async close() {
227
367
  this.service.close();
228
368
  }
@@ -294,6 +434,7 @@ function mapFlowConfig(config, clientOptions) {
294
434
  : config.activeStepSearchMode === ActiveStepSearchMode.ALL
295
435
  ? ProtoActiveStepSearchMode.ACTIVE_STEP_SEARCH_MODE_ENABLED_FOR_ALL
296
436
  : ProtoActiveStepSearchMode.ACTIVE_STEP_SEARCH_MODE_UNSPECIFIED,
437
+ attributeSyncConfigName: mapAttributeStoreName(config),
297
438
  continueAsNewThreshold: config?.continueAsNewThreshold,
298
439
  continueAsNewPageSizeInBytes: config?.continueAsNewPageSizeBytes,
299
440
  stepDurability: config?.stepDurability === undefined ? undefined : mapDurability(config.stepDurability),
@@ -427,11 +568,11 @@ function number64(value) {
427
568
  }
428
569
  return number;
429
570
  }
430
- function unary(invoke) {
571
+ function unary(target, invoke) {
431
572
  return new Promise((resolve, reject) => {
432
573
  invoke((error, response) => {
433
574
  if (error !== null) {
434
- reject(translateServiceError(error));
575
+ reject(translateServiceError(error, target.operation, target.flowId, target.requirement));
435
576
  return;
436
577
  }
437
578
  resolve(response);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
@@ -1,38 +1,111 @@
1
+ /** Identifies the protocol representation carried by an encoded {@link Value}. */
1
2
  export type WireKind = "string" | "bool" | "int64" | "double" | "bytes" | "json";
3
+ /** Contains one validated SDK value before protocol mapping. */
2
4
  export type Value = Readonly<{
5
+ /** String wire discriminator. */
3
6
  kind: "string";
7
+ /** Valid UTF-8 application text. */
4
8
  data: string;
5
9
  }> | Readonly<{
10
+ /** Boolean wire discriminator. */
6
11
  kind: "bool";
12
+ /** Boolean scalar payload. */
7
13
  data: boolean;
8
14
  }> | Readonly<{
15
+ /** Signed-integer wire discriminator. */
9
16
  kind: "int64";
17
+ /** Signed 64-bit integer payload. */
10
18
  data: bigint;
11
19
  }> | Readonly<{
20
+ /** Floating-point wire discriminator. */
12
21
  kind: "double";
22
+ /** Finite IEEE-754 number payload. */
13
23
  data: number;
14
24
  }> | Readonly<{
25
+ /** Raw-bytes wire discriminator. */
15
26
  kind: "bytes";
27
+ /** Uninterpreted byte payload. */
16
28
  data: Uint8Array;
17
29
  }> | Readonly<{
30
+ /** JSON wire discriminator. */
18
31
  kind: "json";
32
+ /** Valid JSON document text. */
19
33
  data: string;
20
34
  }>;
35
+ /**
36
+ * Converts between an application type and one Dex wire representation.
37
+ * Implementations should be deterministic so durable replay sees identical values.
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * type Order = { id: string };
42
+ * const orderCodec = jsonCodec<Order>({
43
+ * typeName: "Order",
44
+ * decode(value) {
45
+ * if (typeof value !== "object" || value === null ||
46
+ * !("id" in value) || typeof value.id !== "string") {
47
+ * throw new TypeError("invalid Order");
48
+ * }
49
+ * return { id: value.id };
50
+ * },
51
+ * });
52
+ * const encoded = orderCodec.encode({ id: "order-42" });
53
+ * ```
54
+ * @typeParam T - Application value type encoded by this codec.
55
+ */
21
56
  export interface Codec<T> {
57
+ /** Stable application-facing name used in mapping errors. */
22
58
  readonly typeName: string;
59
+ /** Wire kind normally emitted and accepted by the codec. */
23
60
  readonly wireKind: WireKind;
61
+ /**
62
+ * Encodes one application value.
63
+ * @param value - Typed value to encode.
64
+ * @returns A validated Dex Value.
65
+ */
24
66
  encode(value: T): Value;
67
+ /**
68
+ * Decodes one protocol value.
69
+ * @param value - Value to validate and decode.
70
+ * @returns The decoded application value.
71
+ */
25
72
  decode(value: Value): T;
26
73
  }
74
+ /** Built-in UTF-8 string codec. */
27
75
  export declare const stringCodec: Codec<string>;
76
+ /** Built-in strict Boolean codec. */
28
77
  export declare const booleanCodec: Codec<boolean>;
78
+ /** Built-in signed 64-bit bigint codec. */
29
79
  export declare const int64Codec: Codec<bigint>;
80
+ /** Built-in finite IEEE-754 number codec. */
30
81
  export declare const doubleCodec: Codec<number>;
82
+ /** Built-in byte-array codec that copies values in both directions. */
31
83
  export declare const bytesCodec: Codec<Uint8Array>;
84
+ /** Built-in void codec represented as JSON `null`. */
32
85
  export declare const voidCodec: Codec<void>;
86
+ /**
87
+ * Wraps a codec so JSON `null` represents `undefined`.
88
+ * @typeParam T - Defined application value type.
89
+ * @param codec - Codec used for defined values.
90
+ * @returns A codec accepting the original type or `undefined`.
91
+ */
33
92
  export declare function optionalCodec<T>(codec: Codec<T>): Codec<T | undefined>;
93
+ /**
94
+ * Creates a deterministic JSON codec with application conversion hooks.
95
+ *
96
+ * JSON.stringify semantics apply; `undefined`, cycles, and unsupported bigint values
97
+ * fail during encoding. The decoder receives parsed, untrusted JSON data.
98
+ *
99
+ * @typeParam T - Application value type.
100
+ * @param options - Stable name plus JSON conversion hooks.
101
+ * @returns A JSON-wire codec for `T`.
102
+ * @throws {@link TypeError} when encoding produces `undefined`.
103
+ */
34
104
  export declare function jsonCodec<T>(options: {
105
+ /** Stable type name used in mapping errors. */
35
106
  readonly typeName: string;
107
+ /** Validates and converts parsed JSON-compatible data. */
36
108
  readonly decode: (value: unknown) => T;
109
+ /** Converts an application value to JSON-compatible data; identity by default. */
37
110
  readonly encode?: (value: T) => unknown;
38
111
  }): Codec<T>;
package/dist/src/codec.js CHANGED
@@ -5,18 +5,21 @@
5
5
  // See the LICENSE file in the repository root.
6
6
  //
7
7
  // SPDX-License-Identifier: LicenseRef-Super-Durable-1.0
8
+ /** Built-in UTF-8 string codec. */
8
9
  export const stringCodec = {
9
10
  typeName: "string",
10
11
  wireKind: "string",
11
12
  encode: (value) => ({ kind: "string", data: value }),
12
13
  decode: (value) => requireKind(value, "string").data,
13
14
  };
15
+ /** Built-in strict Boolean codec. */
14
16
  export const booleanCodec = {
15
17
  typeName: "boolean",
16
18
  wireKind: "bool",
17
19
  encode: (value) => ({ kind: "bool", data: value }),
18
20
  decode: (value) => requireKind(value, "bool").data,
19
21
  };
22
+ /** Built-in signed 64-bit bigint codec. */
20
23
  export const int64Codec = {
21
24
  typeName: "bigint",
22
25
  wireKind: "int64",
@@ -28,6 +31,7 @@ export const int64Codec = {
28
31
  },
29
32
  decode: (value) => requireKind(value, "int64").data,
30
33
  };
34
+ /** Built-in finite IEEE-754 number codec. */
31
35
  export const doubleCodec = {
32
36
  typeName: "number",
33
37
  wireKind: "double",
@@ -39,12 +43,14 @@ export const doubleCodec = {
39
43
  },
40
44
  decode: (value) => requireKind(value, "double").data,
41
45
  };
46
+ /** Built-in byte-array codec that copies values in both directions. */
42
47
  export const bytesCodec = {
43
48
  typeName: "Uint8Array",
44
49
  wireKind: "bytes",
45
50
  encode: (value) => ({ kind: "bytes", data: value.slice() }),
46
51
  decode: (value) => requireKind(value, "bytes").data.slice(),
47
52
  };
53
+ /** Built-in void codec represented as JSON `null`. */
48
54
  export const voidCodec = {
49
55
  typeName: "void",
50
56
  wireKind: "json",
@@ -55,6 +61,12 @@ export const voidCodec = {
55
61
  }
56
62
  },
57
63
  };
64
+ /**
65
+ * Wraps a codec so JSON `null` represents `undefined`.
66
+ * @typeParam T - Defined application value type.
67
+ * @param codec - Codec used for defined values.
68
+ * @returns A codec accepting the original type or `undefined`.
69
+ */
58
70
  export function optionalCodec(codec) {
59
71
  return {
60
72
  typeName: `${codec.typeName} | undefined`,
@@ -63,6 +75,17 @@ export function optionalCodec(codec) {
63
75
  decode: (value) => value.kind === "json" && value.data === "null" ? undefined : codec.decode(value),
64
76
  };
65
77
  }
78
+ /**
79
+ * Creates a deterministic JSON codec with application conversion hooks.
80
+ *
81
+ * JSON.stringify semantics apply; `undefined`, cycles, and unsupported bigint values
82
+ * fail during encoding. The decoder receives parsed, untrusted JSON data.
83
+ *
84
+ * @typeParam T - Application value type.
85
+ * @param options - Stable name plus JSON conversion hooks.
86
+ * @returns A JSON-wire codec for `T`.
87
+ * @throws {@link TypeError} when encoding produces `undefined`.
88
+ */
66
89
  export function jsonCodec(options) {
67
90
  return {
68
91
  typeName: options.typeName,
@@ -1 +1 @@
1
- {"version":3,"file":"codec.js","sourceRoot":"","sources":["../../src/codec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codec.js","sourceRoot":"","sources":["../../src/codec.ts"],"names":[],"mappings":"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"}