@spine-event-engine/delivery-client 2.0.0-snapshot.21 → 2.0.0-snapshot.22

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,30 +1,124 @@
1
1
  import { toBinary } from "@bufbuild/protobuf";
2
- import { type Any } from "@bufbuild/protobuf/wkt";
2
+ import { type Any, type Timestamp } from "@bufbuild/protobuf/wkt";
3
3
  import type { InboxMessage, InboxMessageId } from "@spine-event-engine/server";
4
4
  import { ShardIndex } from "@spine-event-engine/server";
5
5
  import { type ExpiredSession, type ShardInfo, type ShardInfoUpdate, type ShardPickedUp, ShardStatus } from "@spine-event-engine/proto/delivery-server";
6
6
  import { InboxLabel, InboxMessageStatus, type InboxMessage as WireInboxMessage, type ShardIndex as WireShardIndex, type WorkerId } from "@spine-event-engine/proto/delivery";
7
7
  import { DeliveryProtocolError, type DeliveryClientOptions, type DeliveryWorkerId, type ReleasedShardSession, type RemoteShardObservation, type RemoteShardSession } from "../client/types.js";
8
8
  type DeliveryMessageCodecApi = Readonly<{
9
+ /**
10
+ * Encodes one bounded, single-shard inbox batch.
11
+ *
12
+ * @param messages Supplies the messages to encode.
13
+ * @returns The encoded messages, their IDs, and their common shard.
14
+ */
9
15
  encodeBatch(messages: readonly InboxMessage[]): {
10
16
  readonly ids: readonly string[];
11
17
  readonly shard: WireShardIndex;
12
18
  readonly messages: WireInboxMessage[];
13
19
  };
20
+ /**
21
+ * Encodes an inbox message for the delivery server.
22
+ *
23
+ * @param message Supplies the message to encode.
24
+ * @returns The validated wire message.
25
+ */
14
26
  encode(message: InboxMessage): WireInboxMessage;
27
+ /**
28
+ * Decodes an inbox message and confirms its expected shard.
29
+ *
30
+ * @param message Supplies the wire message.
31
+ * @param expectedShard Identifies the requested shard.
32
+ * @returns The detached immutable inbox message.
33
+ */
15
34
  decode(message: WireInboxMessage, expectedShard: ShardIndex): InboxMessage;
35
+ /**
36
+ * Validates the wire identifiers and requested shard before decoding the payload.
37
+ * @param message The wire inbox record.
38
+ * @param expectedShard The shard requested by the caller.
39
+ * @returns Validated identifiers and shard.
40
+ */
41
+ validatedParts(message: WireInboxMessage, expectedShard: ShardIndex): {
42
+ readonly id: NonNullable<WireInboxMessage["id"]>;
43
+ readonly inboxId: NonNullable<WireInboxMessage["inboxId"]>;
44
+ readonly entityId: Any;
45
+ readonly signalId: NonNullable<WireInboxMessage["signalId"]>;
46
+ readonly whenReceived: NonNullable<WireInboxMessage["whenReceived"]>;
47
+ readonly shard: ShardIndex;
48
+ };
49
+ /**
50
+ * Validates and returns an inbox message identifier.
51
+ *
52
+ * @param id Supplies the identifier to encode.
53
+ * @returns The identifier value.
54
+ */
16
55
  encodeId(id: InboxMessageId): string;
56
+ /**
57
+ * Copies an inbox message for later exact-snapshot checks.
58
+ *
59
+ * @param value Supplies the message to copy.
60
+ * @returns A detached immutable message.
61
+ */
17
62
  snapshot(value: InboxMessage): InboxMessage;
63
+ /**
64
+ * Parses an inbox target identifier.
65
+ *
66
+ * @param inbox Supplies the inbox identifier.
67
+ * @returns The type URL and serialized target ID.
68
+ */
18
69
  target(inbox: InboxMessage["inboxId"]): {
19
70
  typeUrl: string;
20
71
  value: Uint8Array;
21
72
  };
73
+ /**
74
+ * Decodes an inbox target identifier while preserving plain framework IDs.
75
+ *
76
+ * @param typeUrl Identifies the wire entity-ID message.
77
+ * @param value Contains the serialized entity-ID message.
78
+ * @returns The framework target identifier.
79
+ */
22
80
  decodeTarget(typeUrl: string, value: Uint8Array): Any;
81
+ /**
82
+ * Encodes a delivered signal payload.
83
+ *
84
+ * @param signal Supplies the optional serialized signal.
85
+ * @returns The wire payload union.
86
+ */
23
87
  payload(signal: InboxMessage["signal"]): WireInboxMessage["payload"];
88
+ /**
89
+ * Encodes an inbox label.
90
+ *
91
+ * @param value Supplies the label.
92
+ * @returns The wire enum value.
93
+ */
24
94
  label(value: InboxMessage["label"]): InboxLabel;
95
+ /**
96
+ * Encodes an inbox status.
97
+ *
98
+ * @param value Supplies the status.
99
+ * @returns The wire enum value.
100
+ */
25
101
  status(value: InboxMessage["status"]): InboxMessageStatus;
102
+ /**
103
+ * Decodes a delivered signal payload.
104
+ *
105
+ * @param message Supplies the wire message.
106
+ * @returns The immutable serialized signal.
107
+ */
26
108
  decodePayload(message: WireInboxMessage): NonNullable<InboxMessage["signal"]>;
109
+ /**
110
+ * Decodes an inbox label.
111
+ *
112
+ * @param value Supplies the wire enum value.
113
+ * @returns The domain label.
114
+ */
27
115
  decodeLabel(value: InboxLabel): InboxMessage["label"];
116
+ /**
117
+ * Decodes an inbox status.
118
+ *
119
+ * @param value Supplies the wire enum value.
120
+ * @returns The domain status.
121
+ */
28
122
  decodeStatus(value: InboxMessageStatus): InboxMessage["status"];
29
123
  }>;
30
124
  /**
@@ -32,12 +126,56 @@ type DeliveryMessageCodecApi = Readonly<{
32
126
  */
33
127
  declare const DeliveryMessageCodec: DeliveryMessageCodecApi;
34
128
  type DeliveryShardCodecApi = Readonly<{
129
+ /**
130
+ * Decodes an administrative shard observation.
131
+ *
132
+ * @param value Supplies the wire observation.
133
+ * @returns The immutable remote observation.
134
+ */
35
135
  decodeObservation(value: ShardInfo): RemoteShardObservation;
136
+ /**
137
+ * Decodes an administrative shard update.
138
+ *
139
+ * @param value Supplies the wire update.
140
+ * @returns The immutable remote observation.
141
+ */
36
142
  decodeUpdate(value: ShardInfoUpdate): RemoteShardObservation;
143
+ /**
144
+ * Encodes a shard index.
145
+ *
146
+ * @param value Supplies the shard index.
147
+ * @returns The wire shard index.
148
+ */
37
149
  encode(value: ShardIndex): WireShardIndex;
150
+ /**
151
+ * Copies a shard index.
152
+ *
153
+ * @param value Supplies the shard index.
154
+ * @returns The detached shard index.
155
+ */
38
156
  snapshot(value: ShardIndex): ShardIndex;
157
+ /**
158
+ * Encodes a delivery worker identifier.
159
+ *
160
+ * @param value Supplies the worker identifier.
161
+ * @returns The wire worker identifier.
162
+ */
39
163
  encodeWorker(value: DeliveryWorkerId): WorkerId;
164
+ /**
165
+ * Decodes a successful exclusive pickup.
166
+ *
167
+ * @param value Supplies the pickup response.
168
+ * @param expectedShard Identifies the requested shard.
169
+ * @param expectedWorker Identifies the requesting worker.
170
+ * @returns The immutable exclusive session.
171
+ */
40
172
  decodePicked(value: ShardPickedUp, expectedShard: ShardIndex, expectedWorker: DeliveryWorkerId): RemoteShardSession;
173
+ /**
174
+ * Validates an already-picked response.
175
+ *
176
+ * @param value Supplies the response fields.
177
+ * @param expectedShard Identifies the requested shard.
178
+ */
41
179
  validatePicked(value: {
42
180
  shard?: {
43
181
  index: number;
@@ -54,16 +192,46 @@ type DeliveryShardCodecApi = Readonly<{
54
192
  nanos: number;
55
193
  } | undefined;
56
194
  }, expectedShard: ShardIndex): void;
195
+ /**
196
+ * Decodes an expired exclusive session.
197
+ *
198
+ * @param value Supplies the expired-session response.
199
+ * @returns The immutable released session.
200
+ */
57
201
  decodeReleased(value: ExpiredSession): ReleasedShardSession;
202
+ /**
203
+ * Converts a protocol timestamp to a Date, truncating nanos to milliseconds.
204
+ *
205
+ * @param value Supplies the timestamp fields.
206
+ * @returns The decoded date.
207
+ */
58
208
  date(value: {
59
209
  seconds: bigint;
60
210
  nanos: number;
61
211
  }): Date;
212
+ /**
213
+ * Decodes a shard status.
214
+ *
215
+ * @param value Supplies the wire status.
216
+ * @returns The remote observation status.
217
+ */
62
218
  status(value: ShardStatus): RemoteShardObservation["status"];
219
+ /**
220
+ * Decodes a shard index.
221
+ *
222
+ * @param value Supplies the wire shard index.
223
+ * @returns The validated shard index.
224
+ */
63
225
  decode(value: {
64
226
  index: number;
65
227
  ofTotal: number;
66
228
  }): ShardIndex;
229
+ /**
230
+ * Decodes a worker identifier.
231
+ *
232
+ * @param value Supplies the wire worker identifier.
233
+ * @returns The immutable worker identifier.
234
+ */
67
235
  decodeWorker(value: {
68
236
  nodeId?: {
69
237
  value: string;
@@ -76,27 +244,116 @@ type DeliveryShardCodecApi = Readonly<{
76
244
  */
77
245
  declare const DeliveryShardCodec: DeliveryShardCodecApi;
78
246
  type DeliveryRequestCodecApi = Readonly<{
247
+ /**
248
+ * Encodes an inactivity duration.
249
+ *
250
+ * @param value Supplies milliseconds.
251
+ * @returns The protocol duration fields.
252
+ */
79
253
  duration(value: number): {
80
254
  seconds: bigint;
81
255
  nanos: number;
82
256
  };
83
- timestamp(value: Date): {
257
+ /**
258
+ * Validates and preserves Protobuf Timestamp nanos.
259
+ *
260
+ * @param value Supplies an occurrence Timestamp.
261
+ * @returns The protocol timestamp fields.
262
+ */
263
+ timestamp(value: Timestamp): {
264
+ seconds: bigint;
265
+ nanos: number;
266
+ };
267
+ /**
268
+ * Converts a Date retention deadline to Protobuf timestamp fields.
269
+ * @param value Supplies the retention deadline.
270
+ * @returns The protocol timestamp fields at millisecond precision.
271
+ */
272
+ expiry(value: Date): {
84
273
  seconds: bigint;
85
274
  nanos: number;
86
275
  };
276
+ /**
277
+ * Creates a protocol-validation error.
278
+ *
279
+ * @returns The protocol error.
280
+ */
87
281
  protocol(): DeliveryProtocolError;
282
+ /**
283
+ * Creates Connect call options.
284
+ *
285
+ * @param signal Supplies the optional cancellation signal.
286
+ * @param timeoutMs Supplies the validated timeout.
287
+ * @returns The call options.
288
+ */
88
289
  callOptions(signal: AbortSignal | undefined, timeoutMs?: number): {
89
290
  readonly timeoutMs?: number;
90
291
  readonly signal?: AbortSignal;
91
292
  };
293
+ /**
294
+ * Validates a page size.
295
+ *
296
+ * @param value Supplies the page size.
297
+ * @returns The validated page size.
298
+ */
92
299
  pageSize(value: number): number;
300
+ /**
301
+ * Validates an integer in an inclusive range.
302
+ *
303
+ * @param value Supplies the number to validate.
304
+ * @param minimum Defines the inclusive lower bound.
305
+ * @param maximum Defines the inclusive upper bound.
306
+ * @param name Names the value in validation errors.
307
+ * @returns The validated value.
308
+ */
93
309
  bounded(value: number, minimum: number, maximum: number, name: string): number;
310
+ /**
311
+ * Normalizes client options to bounded immutable values.
312
+ *
313
+ * @param options Supplies the optional client settings.
314
+ * @returns The normalized settings.
315
+ */
94
316
  normalize(options: DeliveryClientOptions): DeliveryClientOptions;
317
+ /**
318
+ * Validates a delivery service base URL.
319
+ *
320
+ * @param value Supplies the URL.
321
+ */
95
322
  baseUrl(value: string): void;
323
+ /**
324
+ * Rejects an oversized RPC request.
325
+ *
326
+ * @param schema Supplies the message schema.
327
+ * @param value Supplies the message value.
328
+ */
96
329
  requestBytes(schema: Parameters<typeof toBinary>[0], value: Parameters<typeof toBinary>[1]): void;
330
+ /**
331
+ * Rejects an oversized RPC response when it can be re-encoded.
332
+ *
333
+ * @param schema Supplies the message schema.
334
+ * @param value Supplies the message value.
335
+ */
97
336
  responseBytes(schema: Parameters<typeof toBinary>[0], value: Parameters<typeof toBinary>[1]): void;
337
+ /**
338
+ * Validates read retry count.
339
+ *
340
+ * @param value Supplies the retry count.
341
+ * @returns The validated count.
342
+ */
98
343
  retries(value: number): number;
344
+ /**
345
+ * Validates retry backoff milliseconds.
346
+ *
347
+ * @param value Supplies the backoff.
348
+ * @returns The validated backoff.
349
+ */
99
350
  backoff(value: number): number;
351
+ /**
352
+ * Validates RPC timeout milliseconds.
353
+ *
354
+ * @param value Supplies the timeout.
355
+ * @returns The validated timeout.
356
+ */
100
357
  timeout(value: number): number;
101
358
  }>;
102
359
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../src/wire/codec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../src/wire/codec.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@
12
12
  * the License.
13
13
  */
14
14
  import { create, fromBinary, toBinary } from "@bufbuild/protobuf";
15
- import { AnySchema, Int32ValueSchema, Int64ValueSchema, StringValueSchema, } from "@bufbuild/protobuf/wkt";
15
+ import { AnySchema, Int32ValueSchema, Int64ValueSchema, StringValueSchema, TimestampSchema, } from "@bufbuild/protobuf/wkt";
16
16
  import { ShardIndex } from "@spine-event-engine/server";
17
17
  import { CommandSchema, EventSchema } from "@spine-event-engine/proto";
18
18
  import { ShardStatus, } from "@spine-event-engine/proto/delivery-server";
@@ -23,6 +23,18 @@ import { DeliveryProtocolError, MAX_DELIVERY_BATCH_MESSAGES, MAX_DELIVERY_RPC_BY
23
23
  */
24
24
  const DeliveryValues = Object.freeze({
25
25
  // prettier-ignore
26
+ /**
27
+ * Validates the signal identity and version of an inbox write.
28
+ * @param message The inbox write input to validate.
29
+ */
30
+ validateSignalVersion(message) {
31
+ if (typeof message.signalId !== "string" || !DeliveryValues.hasText(message.signalId))
32
+ throw new TypeError("Delivery inbox signal ID is invalid.");
33
+ if (typeof message.version !== "bigint" ||
34
+ message.version < 0n ||
35
+ message.version > BigInt(0x7fffffff))
36
+ throw new TypeError("Delivery inbox message version is invalid.");
37
+ },
26
38
  /**
27
39
  * Determines whether a text value contains non-whitespace characters.
28
40
  *
@@ -33,7 +45,7 @@ const DeliveryValues = Object.freeze({
33
45
  return value.trim().length > 0;
34
46
  },
35
47
  /**
36
- * Counts bytes in a UTF-8 text value.
48
+ * Calculates the encoded UTF-8 byte length used by wire limits.
37
49
  *
38
50
  * @param value Supplies the text value.
39
51
  * @returns The UTF-8 byte count.
@@ -42,8 +54,9 @@ const DeliveryValues = Object.freeze({
42
54
  return new TextEncoder().encode(value).byteLength;
43
55
  },
44
56
  /**
45
- * Freezes an object before returning it.
46
- * @typeParam Value Describes the object type.
57
+ * Returns the same object after preventing changes to its direct properties.
58
+ *
59
+ * @typeParam Value The object type preserved by the shallow freeze.
47
60
  * @param value Supplies the object to freeze.
48
61
  * @returns The frozen object.
49
62
  */
@@ -80,6 +93,12 @@ const DeliveryValues = Object.freeze({
80
93
  },
81
94
  });
82
95
  const DeliveryTargetIds = Object.freeze({
96
+ /**
97
+ * Checks known Protobuf target identifier encodings before delivery serialization.
98
+ *
99
+ * @param typeUrl The typeUrl value used by this operation.
100
+ * @param value The serialized target identifier to validate.
101
+ */
83
102
  validate(typeUrl, value) {
84
103
  switch (typeUrl) {
85
104
  case "type.googleapis.com/google.protobuf.StringValue":
@@ -141,15 +160,8 @@ const DeliveryMessageCodec = Object.freeze({
141
160
  throw new TypeError("Delivery inbox message shard is invalid.");
142
161
  const target = DeliveryMessageCodec.target(message.inboxId);
143
162
  const whenReceived = DeliveryRequestCodec.timestamp(message.whenReceived);
144
- const keepUntil = message.keepUntil === undefined
145
- ? undefined
146
- : DeliveryRequestCodec.timestamp(message.keepUntil);
147
- if (typeof message.signalId !== "string" || !DeliveryValues.hasText(message.signalId))
148
- throw new TypeError("Delivery inbox signal ID is invalid.");
149
- if (typeof message.version !== "bigint" ||
150
- message.version < 0n ||
151
- message.version > BigInt(0x7fffffff))
152
- throw new TypeError("Delivery inbox message version is invalid.");
163
+ const keepUntil = message.keepUntil === undefined ? undefined : DeliveryRequestCodec.expiry(message.keepUntil);
164
+ DeliveryValues.validateSignalVersion(message);
153
165
  return create(InboxMessageSchema, {
154
166
  id: create(InboxMessageIdSchema, { uuid: id, index: shard }),
155
167
  signalId: create(InboxSignalIdSchema, { value: message.signalId }),
@@ -173,6 +185,31 @@ const DeliveryMessageCodec = Object.freeze({
173
185
  * @returns The detached immutable inbox message.
174
186
  */
175
187
  decode(message, expectedShard) {
188
+ const { id, inboxId, entityId, signalId, whenReceived, shard } = DeliveryMessageCodec.validatedParts(message, expectedShard);
189
+ const keepUntil = message.keepUntil === undefined ? undefined : DeliveryShardCodec.date(message.keepUntil);
190
+ if (!Number.isSafeInteger(message.version) || message.version < 0)
191
+ throw DeliveryRequestCodec.protocol();
192
+ const targetId = DeliveryMessageCodec.decodeTarget(entityId.typeUrl, entityId.value);
193
+ return DeliveryValues.freeze({
194
+ id: DeliveryValues.freeze({ value: id.uuid, shard }),
195
+ inboxId: DeliveryValues.freeze({ targetId, targetTypeUrl: inboxId.typeUrl }),
196
+ signalId: signalId.value,
197
+ signal: DeliveryMessageCodec.decodePayload(message),
198
+ label: DeliveryMessageCodec.decodeLabel(message.label),
199
+ status: DeliveryMessageCodec.decodeStatus(message.status),
200
+ shard,
201
+ whenReceived: create(TimestampSchema, DeliveryRequestCodec.timestamp(whenReceived)),
202
+ version: BigInt(message.version),
203
+ ...(keepUntil === undefined ? {} : { keepUntil }),
204
+ });
205
+ },
206
+ /**
207
+ * Validates the wire identifiers and requested shard before decoding the payload.
208
+ * @param message The wire inbox record.
209
+ * @param expectedShard The shard requested by the caller.
210
+ * @returns Validated identifiers and shard.
211
+ */
212
+ validatedParts(message, expectedShard) {
176
213
  const id = message.id;
177
214
  const inboxId = message.inboxId;
178
215
  const entityId = inboxId?.entityId?.id;
@@ -190,25 +227,14 @@ const DeliveryMessageCodec = Object.freeze({
190
227
  const shard = DeliveryShardCodec.decode(id.index);
191
228
  if (shard.index !== expectedShard.index || shard.ofTotal !== expectedShard.ofTotal)
192
229
  throw DeliveryRequestCodec.protocol();
193
- const keepUntil = message.keepUntil === undefined ? undefined : DeliveryShardCodec.date(message.keepUntil);
194
- if (!Number.isSafeInteger(message.version) || message.version < 0)
195
- throw DeliveryRequestCodec.protocol();
196
- const targetId = DeliveryMessageCodec.decodeTarget(entityId.typeUrl, entityId.value);
197
- return DeliveryValues.freeze({
198
- id: DeliveryValues.freeze({ value: id.uuid, shard }),
199
- inboxId: DeliveryValues.freeze({
200
- targetId,
201
- targetTypeUrl: inboxId.typeUrl,
202
- }),
203
- signalId: message.signalId.value,
204
- signal: DeliveryMessageCodec.decodePayload(message),
205
- label: DeliveryMessageCodec.decodeLabel(message.label),
206
- status: DeliveryMessageCodec.decodeStatus(message.status),
230
+ return {
231
+ id,
232
+ inboxId,
233
+ entityId,
234
+ signalId: message.signalId,
235
+ whenReceived: message.whenReceived,
207
236
  shard,
208
- whenReceived: DeliveryShardCodec.date(message.whenReceived),
209
- version: BigInt(message.version),
210
- ...(keepUntil === undefined ? {} : { keepUntil }),
211
- });
237
+ };
212
238
  },
213
239
  /**
214
240
  * Validates and returns an inbox message identifier.
@@ -252,7 +278,7 @@ const DeliveryMessageCodec = Object.freeze({
252
278
  label: value.label,
253
279
  status: value.status,
254
280
  shard: DeliveryShardCodec.snapshot(value.shard),
255
- whenReceived: new Date(value.whenReceived.getTime()),
281
+ whenReceived: create(TimestampSchema, DeliveryRequestCodec.timestamp(value.whenReceived)),
256
282
  version: value.version,
257
283
  ...(value.keepUntil === undefined ? {} : { keepUntil: new Date(value.keepUntil.getTime()) }),
258
284
  });
@@ -550,7 +576,7 @@ const DeliveryShardCodec = Object.freeze({
550
576
  });
551
577
  },
552
578
  /**
553
- * Decodes a protocol timestamp.
579
+ * Converts a protocol timestamp to a Date, truncating nanos to milliseconds.
554
580
  *
555
581
  * @param value Supplies the timestamp fields.
556
582
  * @returns The decoded date.
@@ -628,13 +654,28 @@ const DeliveryRequestCodec = Object.freeze({
628
654
  return { seconds: BigInt(Math.floor(value / 1000)), nanos: (value % 1000) * 1_000_000 };
629
655
  },
630
656
  /**
631
- * Encodes a date timestamp.
657
+ * Validates and preserves Protobuf Timestamp nanos.
632
658
  *
633
- * @param value Supplies the date.
659
+ * @param value Supplies an occurrence Timestamp.
634
660
  * @returns The protocol timestamp fields.
635
661
  */
636
662
  timestamp(value) {
637
- if (!(value instanceof Date) || Number.isNaN(value.getTime()))
663
+ if (value?.$typeName !== TimestampSchema.typeName ||
664
+ value.seconds < -62135596800n ||
665
+ value.seconds > 253402300799n ||
666
+ !Number.isInteger(value.nanos) ||
667
+ value.nanos < 0 ||
668
+ value.nanos >= 1_000_000_000)
669
+ throw new TypeError("Delivery inbox timestamp is invalid.");
670
+ return { seconds: value.seconds, nanos: value.nanos };
671
+ },
672
+ /**
673
+ * Converts a finite Date retention deadline to Protobuf timestamp fields.
674
+ * @param value Supplies the retention deadline.
675
+ * @returns The protocol timestamp fields at millisecond precision.
676
+ */
677
+ expiry(value) {
678
+ if (Number.isNaN(value.getTime()))
638
679
  throw new TypeError("Delivery inbox timestamp is invalid.");
639
680
  const millis = value.getTime();
640
681
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"codec.js","sourceRoot":"","sources":["../../src/wire/codec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codec.js","sourceRoot":"","sources":["../../src/wire/codec.ts"],"names":[],"mappings":"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"}