@enbox/dwn-clients 0.4.4 → 0.4.5

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 (43) hide show
  1. package/dist/esm/dwn-rpc-error.js +45 -0
  2. package/dist/esm/dwn-rpc-error.js.map +1 -0
  3. package/dist/esm/http-dwn-rpc-client.js +67 -5
  4. package/dist/esm/http-dwn-rpc-client.js.map +1 -1
  5. package/dist/esm/index.js +2 -0
  6. package/dist/esm/index.js.map +1 -1
  7. package/dist/esm/json-rpc-socket.js +5 -5
  8. package/dist/esm/json-rpc-socket.js.map +1 -1
  9. package/dist/esm/replication-apply-result.js +79 -0
  10. package/dist/esm/replication-apply-result.js.map +1 -0
  11. package/dist/esm/rpc-client.js +10 -5
  12. package/dist/esm/rpc-client.js.map +1 -1
  13. package/dist/esm/web-socket-clients.js +141 -13
  14. package/dist/esm/web-socket-clients.js.map +1 -1
  15. package/dist/esm/ws-payload-size.js +12 -0
  16. package/dist/esm/ws-payload-size.js.map +1 -0
  17. package/dist/types/dwn-rpc-error.d.ts +18 -0
  18. package/dist/types/dwn-rpc-error.d.ts.map +1 -0
  19. package/dist/types/dwn-rpc-types.d.ts +37 -1
  20. package/dist/types/dwn-rpc-types.d.ts.map +1 -1
  21. package/dist/types/http-dwn-rpc-client.d.ts +3 -1
  22. package/dist/types/http-dwn-rpc-client.d.ts.map +1 -1
  23. package/dist/types/index.d.ts +2 -0
  24. package/dist/types/index.d.ts.map +1 -1
  25. package/dist/types/json-rpc-socket.d.ts.map +1 -1
  26. package/dist/types/replication-apply-result.d.ts +3 -0
  27. package/dist/types/replication-apply-result.d.ts.map +1 -0
  28. package/dist/types/rpc-client.d.ts +3 -2
  29. package/dist/types/rpc-client.d.ts.map +1 -1
  30. package/dist/types/web-socket-clients.d.ts +14 -1
  31. package/dist/types/web-socket-clients.d.ts.map +1 -1
  32. package/dist/types/ws-payload-size.d.ts +6 -0
  33. package/dist/types/ws-payload-size.d.ts.map +1 -0
  34. package/package.json +2 -2
  35. package/src/dwn-rpc-error.ts +52 -0
  36. package/src/dwn-rpc-types.ts +52 -1
  37. package/src/http-dwn-rpc-client.ts +78 -5
  38. package/src/index.ts +2 -0
  39. package/src/json-rpc-socket.ts +5 -6
  40. package/src/replication-apply-result.ts +92 -0
  41. package/src/rpc-client.ts +16 -5
  42. package/src/web-socket-clients.ts +197 -15
  43. package/src/ws-payload-size.ts +14 -0
@@ -8,8 +8,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { CryptoUtils } from '@enbox/crypto';
11
+ import { DwnRpcError } from './dwn-rpc-error.js';
12
+ import { HttpDwnRpcClient } from './http-dwn-rpc-client.js';
11
13
  import { JsonRpcSocket } from './json-rpc-socket.js';
12
- import { createJsonRpcAck, createJsonRpcRequest, createJsonRpcSubscriptionRequest } from './json-rpc.js';
14
+ import { parseReplicationApplyResult } from './replication-apply-result.js';
15
+ import { createJsonRpcAck, createJsonRpcRequest, createJsonRpcSubscriptionRequest, JsonRpcErrorCodes } from './json-rpc.js';
16
+ import { DataStream, Encoder } from '@enbox/dwn-sdk-js';
17
+ import { DEFAULT_MAX_WS_RAW_RECORD_DATA_BYTES, maxWsJsonRpcPayloadBytes } from './ws-payload-size.js';
18
+ const DEFAULT_MAX_WS_JSON_RPC_PAYLOAD_BYTES = maxWsJsonRpcPayloadBytes(DEFAULT_MAX_WS_RAW_RECORD_DATA_BYTES);
13
19
  function shouldReplaceLastCursor(current, candidate) {
14
20
  if (current === undefined) {
15
21
  return true;
@@ -21,6 +27,9 @@ function shouldReplaceLastCursor(current, candidate) {
21
27
  }
22
28
  export class WebSocketDwnRpcClient {
23
29
  get transportProtocols() { return ['ws:', 'wss:']; }
30
+ constructor(serverInfoRpc = new HttpDwnRpcClient()) {
31
+ this.serverInfoRpc = serverInfoRpc;
32
+ }
24
33
  sendDwnRequest(request) {
25
34
  return __awaiter(this, void 0, void 0, function* () {
26
35
  // validate that the dwn URL provided is a valid WebSocket URL
@@ -28,18 +37,7 @@ export class WebSocketDwnRpcClient {
28
37
  if (url.protocol !== 'ws:' && url.protocol !== 'wss:') {
29
38
  throw new Error(`Invalid websocket protocol ${url.protocol}`);
30
39
  }
31
- // check if there is already a connection to this host, if it does not exist, initiate a new connection
32
- const hasConnection = WebSocketDwnRpcClient.connections.has(url.host);
33
- if (!hasConnection) {
34
- try {
35
- const connection = yield WebSocketDwnRpcClient.createConnection(url);
36
- WebSocketDwnRpcClient.connections.set(url.host, connection);
37
- }
38
- catch (error) {
39
- throw new Error(`Error connecting to ${url.host}: ${error.message}`);
40
- }
41
- }
42
- const connection = WebSocketDwnRpcClient.connections.get(url.host);
40
+ const connection = yield WebSocketDwnRpcClient.getConnection(request.dwnUrl);
43
41
  const { targetDid, message, subscription } = request;
44
42
  if (subscription) {
45
43
  return WebSocketDwnRpcClient.subscriptionRequest(connection, targetDid, message, subscription.handler, subscription.resubscribeFactory);
@@ -47,6 +45,59 @@ export class WebSocketDwnRpcClient {
47
45
  return WebSocketDwnRpcClient.processMessage(connection, targetDid, message);
48
46
  });
49
47
  }
48
+ applyReplicatedMessage(request) {
49
+ return __awaiter(this, void 0, void 0, function* () {
50
+ WebSocketDwnRpcClient.assertReplicatedApplyDataIsPresent(request);
51
+ const maxPayloadBytes = yield this.maxPayloadBytesForReplicatedApply(request);
52
+ WebSocketDwnRpcClient.assertReplicatedApplyDataSizeIsSupported(request, maxPayloadBytes);
53
+ const connection = yield WebSocketDwnRpcClient.getConnection(request.dwnUrl);
54
+ const encodedData = request.data === undefined ? undefined : yield dataToBase64Url(request.data);
55
+ return WebSocketDwnRpcClient.applyReplicatedMessage(connection, request.targetDid, request.message, encodedData, maxPayloadBytes);
56
+ });
57
+ }
58
+ getServerInfo(dwnUrl) {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ return this.serverInfoRpc.getServerInfo(httpUrlForWsDwnUrl(dwnUrl));
61
+ });
62
+ }
63
+ maxPayloadBytesForReplicatedApply(request) {
64
+ return __awaiter(this, void 0, void 0, function* () {
65
+ const dataSize = recordsWriteDataSize(request.message);
66
+ if (dataSize === undefined) {
67
+ return DEFAULT_MAX_WS_JSON_RPC_PAYLOAD_BYTES;
68
+ }
69
+ const serverInfo = yield this.getServerInfo(request.dwnUrl);
70
+ return maxWsJsonRpcPayloadBytes(serverInfo.maxFileSize);
71
+ });
72
+ }
73
+ static getConnection(dwnUrl) {
74
+ return __awaiter(this, void 0, void 0, function* () {
75
+ const url = new URL(dwnUrl);
76
+ if (url.protocol !== 'ws:' && url.protocol !== 'wss:') {
77
+ throw new Error(`Invalid websocket protocol ${url.protocol}`);
78
+ }
79
+ const existing = WebSocketDwnRpcClient.connections.get(url.host);
80
+ if (existing !== undefined) {
81
+ return existing;
82
+ }
83
+ let pending = WebSocketDwnRpcClient.pendingConnections.get(url.host);
84
+ if (pending === undefined) {
85
+ pending = WebSocketDwnRpcClient.createConnection(url)
86
+ .then((connection) => {
87
+ WebSocketDwnRpcClient.connections.set(url.host, connection);
88
+ return connection;
89
+ })
90
+ .catch((error) => {
91
+ throw new Error(`Error connecting to ${url.host}: ${error.message}`);
92
+ })
93
+ .finally(() => {
94
+ WebSocketDwnRpcClient.pendingConnections.delete(url.host);
95
+ });
96
+ WebSocketDwnRpcClient.pendingConnections.set(url.host, pending);
97
+ }
98
+ return pending;
99
+ });
100
+ }
50
101
  /**
51
102
  * Creates a new `SocketConnection` with lifecycle wiring for reconnection.
52
103
  */
@@ -92,6 +143,21 @@ export class WebSocketDwnRpcClient {
92
143
  return result.reply;
93
144
  });
94
145
  }
146
+ static applyReplicatedMessage(connection_1, target_1, message_1, encodedData_1) {
147
+ return __awaiter(this, arguments, void 0, function* (connection, target, message, encodedData, maxPayloadBytes = DEFAULT_MAX_WS_JSON_RPC_PAYLOAD_BYTES) {
148
+ const requestId = CryptoUtils.randomUuid();
149
+ const request = createJsonRpcRequest(requestId, 'dwn.applyReplicatedMessage', Object.assign({ target,
150
+ message }, (encodedData === undefined ? {} : { encodedData })));
151
+ WebSocketDwnRpcClient.assertPayloadFitsFrame(request, encodedData, maxPayloadBytes);
152
+ const { socket } = connection;
153
+ const response = yield socket.request(request);
154
+ const { error, result } = response;
155
+ if (error !== undefined) {
156
+ throw new DwnRpcError(error.code, error.message, error.data);
157
+ }
158
+ return parseReplicationApplyResult(result.result);
159
+ });
160
+ }
95
161
  static subscriptionRequest(connection, target, message, handler, resubscribeFactory) {
96
162
  return __awaiter(this, void 0, void 0, function* () {
97
163
  const requestId = CryptoUtils.randomUuid();
@@ -200,7 +266,69 @@ export class WebSocketDwnRpcClient {
200
266
  }
201
267
  });
202
268
  }
269
+ static assertReplicatedApplyDataIsPresent(request) {
270
+ const dataSize = recordsWriteDataSize(request.message);
271
+ if (dataSize !== undefined && dataSize > 0 && request.data === undefined) {
272
+ throw new DwnRpcError(JsonRpcErrorCodes.InvalidParams, 'data-bearing RecordsWrite replicated apply over WebSocket requires encoded data');
273
+ }
274
+ }
275
+ static assertReplicatedApplyDataSizeIsSupported(request, maxPayloadBytes) {
276
+ const dataSize = recordsWriteDataSize(request.message);
277
+ if (dataSize !== undefined && maxWsJsonRpcPayloadBytes(dataSize) > maxPayloadBytes) {
278
+ throw new DwnRpcError(JsonRpcErrorCodes.InvalidParams, `RecordsWrite replicated apply data is too large for WebSocket JSON-RPC framing`);
279
+ }
280
+ }
281
+ static assertPayloadFitsFrame(request, encodedData, maxPayloadBytes) {
282
+ const payloadBytes = estimatedJsonRpcPayloadBytes(request, encodedData);
283
+ if (payloadBytes > maxPayloadBytes) {
284
+ throw new DwnRpcError(JsonRpcErrorCodes.InvalidParams, `replicated apply JSON-RPC payload is too large for WebSocket transport`);
285
+ }
286
+ }
203
287
  }
204
288
  // a map of dwn host to WebSocket connection
205
289
  WebSocketDwnRpcClient.connections = new Map();
290
+ WebSocketDwnRpcClient.pendingConnections = new Map();
291
+ function httpUrlForWsDwnUrl(dwnUrl) {
292
+ const url = new URL(dwnUrl);
293
+ if (url.protocol === 'ws:') {
294
+ url.protocol = 'http:';
295
+ }
296
+ else if (url.protocol === 'wss:') {
297
+ url.protocol = 'https:';
298
+ }
299
+ return url.toString();
300
+ }
301
+ function estimatedJsonRpcPayloadBytes(request, encodedData) {
302
+ if (encodedData === undefined) {
303
+ return utf8ByteLength(JSON.stringify(request));
304
+ }
305
+ const params = request.params;
306
+ const requestWithoutData = Object.assign(Object.assign({}, request), { params: Object.assign(Object.assign({}, params), { encodedData: '' }) });
307
+ return utf8ByteLength(JSON.stringify(requestWithoutData)) + encodedData.length;
308
+ }
309
+ function utf8ByteLength(text) {
310
+ return new TextEncoder().encode(text).byteLength;
311
+ }
312
+ function dataToBase64Url(data) {
313
+ return __awaiter(this, void 0, void 0, function* () {
314
+ if (data instanceof Blob) {
315
+ return Encoder.bytesToBase64Url(new Uint8Array(yield data.arrayBuffer()));
316
+ }
317
+ if (data instanceof ReadableStream) {
318
+ return Encoder.bytesToBase64Url(yield DataStream.toBytes(data));
319
+ }
320
+ if (data instanceof Uint8Array) {
321
+ return Encoder.bytesToBase64Url(data);
322
+ }
323
+ return Encoder.bytesToBase64Url(new Uint8Array(yield new Blob([data]).arrayBuffer()));
324
+ });
325
+ }
326
+ function recordsWriteDataSize(message) {
327
+ const descriptor = message.descriptor;
328
+ return (descriptor === null || descriptor === void 0 ? void 0 : descriptor.interface) === 'Records' &&
329
+ descriptor.method === 'Write' &&
330
+ typeof descriptor.dataSize === 'number'
331
+ ? descriptor.dataSize
332
+ : undefined;
333
+ }
206
334
  //# sourceMappingURL=web-socket-clients.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"web-socket-clients.js","sourceRoot":"","sources":["../../src/web-socket-clients.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web-socket-clients.js","sourceRoot":"","sources":["../../src/web-socket-clients.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export const DEFAULT_MAX_WS_RAW_RECORD_DATA_BYTES = 100 * 1024 * 1024;
2
+ export const WS_JSON_RPC_ENVELOPE_BYTES = 64 * 1024;
3
+ export function base64UrlEncodedLength(byteLength) {
4
+ return Math.ceil(byteLength / 3) * 4;
5
+ }
6
+ export function estimatedWsJsonRpcPayloadBytes(rawDataSize) {
7
+ return base64UrlEncodedLength(rawDataSize) + WS_JSON_RPC_ENVELOPE_BYTES;
8
+ }
9
+ export function maxWsJsonRpcPayloadBytes(maxRecordDataSize) {
10
+ return estimatedWsJsonRpcPayloadBytes(maxRecordDataSize);
11
+ }
12
+ //# sourceMappingURL=ws-payload-size.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws-payload-size.js","sourceRoot":"","sources":["../../src/ws-payload-size.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oCAAoC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AACtE,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,GAAG,IAAI,CAAC;AAEpD,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACvD,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,WAAmB;IAChE,OAAO,sBAAsB,CAAC,WAAW,CAAC,GAAG,0BAA0B,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,iBAAyB;IAChE,OAAO,8BAA8B,CAAC,iBAAiB,CAAC,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { JsonRpcErrorCodes } from './json-rpc.js';
2
+ /**
3
+ * Error surfaced by DWN JSON-RPC transports when the server returns a typed
4
+ * JSON-RPC error envelope.
5
+ */
6
+ export declare class DwnRpcError extends Error {
7
+ readonly code: JsonRpcErrorCodes;
8
+ readonly data?: unknown;
9
+ readonly terminal: boolean;
10
+ constructor(code: JsonRpcErrorCodes, message: string, data?: unknown);
11
+ }
12
+ /**
13
+ * JSON-RPC errors that represent deterministic request rejection before DWN
14
+ * replicated admission can run. Internal/server/transport/rate-limit errors
15
+ * remain retryable.
16
+ */
17
+ export declare function isTerminalJsonRpcErrorCode(code: JsonRpcErrorCodes, message?: string, data?: unknown): boolean;
18
+ //# sourceMappingURL=dwn-rpc-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dwn-rpc-error.d.ts","sourceRoot":"","sources":["../../src/dwn-rpc-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD;;;GAGG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC,SAAgB,IAAI,EAAE,iBAAiB,CAAC;IACxC,SAAgB,IAAI,CAAC,EAAE,OAAO,CAAC;IAC/B,SAAgB,QAAQ,EAAE,OAAO,CAAC;gBAEtB,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;CAOrE;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,SAAK,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAgBzG"}
@@ -1,4 +1,4 @@
1
- import type { GenericMessage, ProgressToken, RecordsReadReply, SubscriptionMessage, UnionMessageReply } from '@enbox/dwn-sdk-js';
1
+ import type { GenericMessage, ProgressToken, RecordsReadReply, ReplicationApplyResult, SubscriptionMessage, UnionMessageReply } from '@enbox/dwn-sdk-js';
2
2
  export interface SerializableDwnMessage {
3
3
  toJSON(): string;
4
4
  }
@@ -56,6 +56,14 @@ export interface DwnRpc {
56
56
  * @returns A promise that resolves to the response from the DWN server.
57
57
  */
58
58
  sendDwnRequest(request: DwnRpcRequest): Promise<DwnRpcResponse>;
59
+ /**
60
+ * Applies a replicated message through the DWN server's replication entry point.
61
+ *
62
+ * This differs from `sendDwnRequest()` in duplicate replay handling: the server
63
+ * calls `Dwn.applyReplicatedMessage()`, which repairs missing replication index
64
+ * entries when the message store already contains the exact message.
65
+ */
66
+ applyReplicatedMessage(request: DwnReplicationApplyRequest): Promise<ReplicationApplyResult>;
59
67
  }
60
68
  /**
61
69
  * Represents a JSON RPC request to a DWN server, including the URL, target DID, the message to be
@@ -85,6 +93,12 @@ export type DwnRpcRequest = {
85
93
  * this field (subscription cancellation is handled separately).
86
94
  */
87
95
  signal?: AbortSignal;
96
+ /**
97
+ * Optional HTTP per-attempt timeout in milliseconds. When supplied, this
98
+ * replaces the transport default timeout; use this for legitimate large
99
+ * uploads that need more than the default budget.
100
+ */
101
+ timeoutMs?: number;
88
102
  /**
89
103
  * Subscription options — only set for subscribe requests.
90
104
  * Groups the handler, resubscribe factory, and any future subscription
@@ -102,6 +116,28 @@ export type DwnRpcRequest = {
102
116
  resubscribeFactory?: ResubscribeFactory;
103
117
  };
104
118
  };
119
+ /**
120
+ * Represents a JSON RPC request to apply a replicated DWN message through the
121
+ * server-side replication entry point.
122
+ */
123
+ export type DwnReplicationApplyRequest = {
124
+ /** Optional data to be sent with the request. */
125
+ data?: any;
126
+ /** The URL of the DWN server to which the request is sent. */
127
+ dwnUrl: string;
128
+ /** The replicated message to apply. */
129
+ message: GenericMessage | SerializableDwnMessage;
130
+ /** The DID of the target tenant to which the message is addressed. */
131
+ targetDid: string;
132
+ /** Optional caller-provided abort signal. Honoured by the HTTP transport. */
133
+ signal?: AbortSignal;
134
+ /**
135
+ * Optional HTTP per-attempt timeout in milliseconds. When omitted, HTTP
136
+ * replicated apply uses a larger default for data-bearing RecordsWrite
137
+ * messages so large sync uploads are not aborted by the normal short budget.
138
+ */
139
+ timeoutMs?: number;
140
+ };
105
141
  /**
106
142
  * Represents the JSON RPC response from a DWN server to a request, combining the results of various
107
143
  * DWN operations.
@@ -1 +1 @@
1
- {"version":3,"file":"dwn-rpc-types.d.ts","sourceRoot":"","sources":["../../src/dwn-rpc-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEjI,MAAM,WAAW,sBAAsB;IACrC,MAAM,IAAI,MAAM,CAAC;CAClB;AAUD,4DAA4D;AAC5D,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAG,cAAc,CAAC;CACvB,CAAC;AAEF,2DAA2D;AAC3D,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wFAAwF;AACxF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAG,aAAa,CAAC;CACtB,CAAC;AAEF,kFAAkF;AAClF,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,GAAG,qBAAqB,GAAG,oBAAoB,CAAC;AAEpG;;;;;;;GAOG;AACH,MAAM,MAAM,sBAAsB,GAAG,mBAAmB,GAAG,gBAAgB,CAAC;AAE5E;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAC;AAE/E;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,MAAM,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;AAErF;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB;;;OAGG;IACH,IAAI,kBAAkB,IAAI,MAAM,EAAE,CAAA;IAElC;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;CAChE;AAGD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,iDAAiD;IACjD,IAAI,CAAC,EAAE,GAAG,CAAC;IAEX,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IAEf,8FAA8F;IAC9F,OAAO,EAAE,sBAAsB,GAAG,GAAG,CAAC;IAEtC,+DAA+D;IAC/D,SAAS,EAAE,MAAM,CAAC;IAElB;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB;;;;OAIG;IACH,YAAY,CAAC,EAAE;QACb,kFAAkF;QAClF,OAAO,EAAE,sBAAsB,CAAC;QAEhC;;;;;WAKG;QACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;KACzC,CAAC;CACH,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,iBAAiB,GAAG,gBAAgB,CAAC"}
1
+ {"version":3,"file":"dwn-rpc-types.d.ts","sourceRoot":"","sources":["../../src/dwn-rpc-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,sBAAsB;IACrC,MAAM,IAAI,MAAM,CAAC;CAClB;AAUD,4DAA4D;AAC5D,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAG,cAAc,CAAC;CACvB,CAAC;AAEF,2DAA2D;AAC3D,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wFAAwF;AACxF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAG,aAAa,CAAC;CACtB,CAAC;AAEF,kFAAkF;AAClF,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,GAAG,qBAAqB,GAAG,oBAAoB,CAAC;AAEpG;;;;;;;GAOG;AACH,MAAM,MAAM,sBAAsB,GAAG,mBAAmB,GAAG,gBAAgB,CAAC;AAE5E;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAC;AAE/E;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,MAAM,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;AAErF;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB;;;OAGG;IACH,IAAI,kBAAkB,IAAI,MAAM,EAAE,CAAA;IAElC;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IAE/D;;;;;;OAMG;IACH,sBAAsB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAA;CAC7F;AAGD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,iDAAiD;IACjD,IAAI,CAAC,EAAE,GAAG,CAAC;IAEX,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IAEf,8FAA8F;IAC9F,OAAO,EAAE,sBAAsB,GAAG,GAAG,CAAC;IAEtC,+DAA+D;IAC/D,SAAS,EAAE,MAAM,CAAC;IAElB;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,YAAY,CAAC,EAAE;QACb,kFAAkF;QAClF,OAAO,EAAE,sBAAsB,CAAC;QAEhC;;;;;WAKG;QACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;KACzC,CAAC;CACH,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACvC,iDAAiD;IACjD,IAAI,CAAC,EAAE,GAAG,CAAC;IAEX,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IAEf,uCAAuC;IACvC,OAAO,EAAE,cAAc,GAAG,sBAAsB,CAAC;IAEjD,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;IAElB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,iBAAiB,GAAG,gBAAgB,CAAC"}
@@ -1,4 +1,5 @@
1
- import type { DwnRpc, DwnRpcRequest, DwnRpcResponse } from './dwn-rpc-types.js';
1
+ import type { ReplicationApplyResult } from '@enbox/dwn-sdk-js';
2
+ import type { DwnReplicationApplyRequest, DwnRpc, DwnRpcRequest, DwnRpcResponse } from './dwn-rpc-types.js';
2
3
  import type { DwnServerInfoCache, ServerInfo } from './server-info-types.js';
3
4
  /**
4
5
  * Options for controlling HTTP retry behaviour.
@@ -26,6 +27,7 @@ export declare class HttpDwnRpcClient implements DwnRpc {
26
27
  static isBunRuntime(): boolean;
27
28
  get transportProtocols(): string[];
28
29
  sendDwnRequest(request: DwnRpcRequest): Promise<DwnRpcResponse>;
30
+ applyReplicatedMessage(request: DwnReplicationApplyRequest): Promise<ReplicationApplyResult>;
29
31
  getServerInfo(dwnUrl: string): Promise<ServerInfo>;
30
32
  /**
31
33
  * Wrapper around `fetch()` that retries on transient network errors and
@@ -1 +1 @@
1
- {"version":3,"file":"http-dwn-rpc-client.d.ts","sourceRoot":"","sources":["../../src/http-dwn-rpc-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AA4B7E;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAuDF;;;;;;GAMG;AACH,qBAAa,gBAAiB,YAAW,MAAM;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6B;gBAE/C,eAAe,CAAC,EAAE,kBAAkB,EAAE,YAAY,CAAC,EAAE,gBAAgB;IASjF,iEAAiE;IACjE,MAAM,CAAC,YAAY,IAAI,OAAO;IAI9B,IAAI,kBAAkB,IAAI,MAAM,EAAE,CAAgC;IAE5D,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IA4G/D,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA8CxD;;;;OAIG;YACW,cAAc;CAgD7B"}
1
+ {"version":3,"file":"http-dwn-rpc-client.d.ts","sourceRoot":"","sources":["../../src/http-dwn-rpc-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC5G,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAiC7E;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAuDF;;;;;;GAMG;AACH,qBAAa,gBAAiB,YAAW,MAAM;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6B;gBAE/C,eAAe,CAAC,EAAE,kBAAkB,EAAE,YAAY,CAAC,EAAE,gBAAgB;IASjF,iEAAiE;IACjE,MAAM,CAAC,YAAY,IAAI,OAAO;IAI9B,IAAI,kBAAkB,IAAI,MAAM,EAAE,CAAgC;IAE5D,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IA4G/D,sBAAsB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA2D5F,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA8CxD;;;;OAIG;YACW,cAAc;CAiD7B"}
@@ -1,4 +1,5 @@
1
1
  export * from './dwn-registrar.js';
2
+ export * from './dwn-rpc-error.js';
2
3
  export * from './dwn-rpc-types.js';
3
4
  export * from './dwn-server-info-cache-memory.js';
4
5
  export * from './http-dwn-rpc-client.js';
@@ -9,5 +10,6 @@ export * from './rate-limit-error.js';
9
10
  export * from './registration-types.js';
10
11
  export * from './rpc-client.js';
11
12
  export * from './server-info-types.js';
13
+ export * from './ws-payload-size.js';
12
14
  export * from './web-socket-clients.js';
13
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,yBAAyB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"json-rpc-socket.d.ts","sourceRoot":"","sources":["../../src/json-rpc-socket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAsChF,MAAM,WAAW,oBAAoB;IACnC,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,oCAAoC;IACpC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAEhC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,mEAAmE;IACnE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,4DAA4D;IAC5D,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAE3C,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAE3B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,qBAAa,aAAa;IAwCtB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ,CAAC,eAAe;IAxClC;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6D;IAE7F;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA6B;IAEpE,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAE/C,8DAA8D;IAC9D,OAAO,CAAC,YAAY,CAAS;IAE7B,+DAA+D;IAC/D,OAAO,CAAC,YAAY,CAAS;IAE7B,iDAAiD;IACjD,OAAO,CAAC,YAAY,CAAS;IAE7B,gCAAgC;IAChC,OAAO,CAAC,kBAAkB,CAA6C;IAEvE,2EAA2E;IAC3E,OAAO,CAAC,iBAAiB,CAA4C;IAErE,2CAA2C;IAC3C,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO;IAWP,iDAAiD;IACjD,IAAW,WAAW,IAAI,OAAO,CAEhC;WAEmB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,aAAa,CAAC;IAmBpG;;OAEG;IACI,KAAK,IAAI,IAAI;IAOpB;;OAEG;IACU,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAyBvE;;;OAGG;IACU,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC;QACtG,QAAQ,EAAE,eAAe,CAAC;QAC1B,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;KAC5B,CAAC;IA2DH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;IACI,IAAI,CAAC,OAAO,EAAE,cAAc,GAAE,IAAI;IAQzC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IA+B9B;;;OAGG;IACH,OAAO,CAAC,UAAU;IAuClB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAmB7B;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAuDtB,gEAAgE;IAChE,OAAO,CAAC,aAAa;IAgBrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAqDzB"}
1
+ {"version":3,"file":"json-rpc-socket.d.ts","sourceRoot":"","sources":["../../src/json-rpc-socket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAsChF,MAAM,WAAW,oBAAoB;IACnC,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,oCAAoC;IACpC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAEhC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,mEAAmE;IACnE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,4DAA4D;IAC5D,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAE3C,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAE3B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,qBAAa,aAAa;IAwCtB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ,CAAC,eAAe;IAxClC;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6D;IAE7F;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA6B;IAEpE,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAE/C,8DAA8D;IAC9D,OAAO,CAAC,YAAY,CAAS;IAE7B,+DAA+D;IAC/D,OAAO,CAAC,YAAY,CAAS;IAE7B,iDAAiD;IACjD,OAAO,CAAC,YAAY,CAAS;IAE7B,gCAAgC;IAChC,OAAO,CAAC,kBAAkB,CAA6C;IAEvE,2EAA2E;IAC3E,OAAO,CAAC,iBAAiB,CAA4C;IAErE,2CAA2C;IAC3C,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO;IAWP,iDAAiD;IACjD,IAAW,WAAW,IAAI,OAAO,CAEhC;WAEmB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,aAAa,CAAC;IAmBpG;;OAEG;IACI,KAAK,IAAI,IAAI;IAOpB;;OAEG;IACU,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAwBvE;;;OAGG;IACU,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC;QACtG,QAAQ,EAAE,eAAe,CAAC;QAC1B,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;KAC5B,CAAC;IA2DH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;IACI,IAAI,CAAC,OAAO,EAAE,cAAc,GAAE,IAAI;IAQzC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IA+B9B;;;OAGG;IACH,OAAO,CAAC,UAAU;IAuClB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAmB7B;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAuDtB,gEAAgE;IAChE,OAAO,CAAC,aAAa;IAgBrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAqDzB"}
@@ -0,0 +1,3 @@
1
+ import type { ReplicationApplyResult } from '@enbox/dwn-sdk-js';
2
+ export declare function parseReplicationApplyResult(value: unknown): ReplicationApplyResult;
3
+ //# sourceMappingURL=replication-apply-result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replication-apply-result.d.ts","sourceRoot":"","sources":["../../src/replication-apply-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAO/E,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,CA4BlF"}
@@ -1,4 +1,5 @@
1
- import type { DwnRpc, DwnRpcRequest, DwnRpcResponse } from './dwn-rpc-types.js';
1
+ import type { ReplicationApplyResult } from '@enbox/dwn-sdk-js';
2
+ import type { DwnReplicationApplyRequest, DwnRpc, DwnRpcRequest, DwnRpcResponse } from './dwn-rpc-types.js';
2
3
  import type { DwnServerInfoRpc, ServerInfo } from './server-info-types.js';
3
4
  import { HttpDwnRpcClient } from './http-dwn-rpc-client.js';
4
5
  import { WebSocketDwnRpcClient } from './web-socket-clients.js';
@@ -39,6 +40,7 @@ export declare class EnboxRpcClient implements EnboxRpc {
39
40
  get transportProtocols(): string[];
40
41
  sendDidRequest(request: DidRpcRequest): Promise<DidRpcResponse>;
41
42
  sendDwnRequest(request: DwnRpcRequest): Promise<DwnRpcResponse>;
43
+ applyReplicatedMessage(request: DwnReplicationApplyRequest): Promise<ReplicationApplyResult>;
42
44
  getServerInfo(dwnUrl: string): Promise<ServerInfo>;
43
45
  }
44
46
  export declare class HttpEnboxRpcClient extends HttpDwnRpcClient implements EnboxRpc {
@@ -46,6 +48,5 @@ export declare class HttpEnboxRpcClient extends HttpDwnRpcClient implements Enbo
46
48
  }
47
49
  export declare class WebSocketEnboxRpcClient extends WebSocketDwnRpcClient implements EnboxRpc {
48
50
  sendDidRequest(_request: DidRpcRequest): Promise<DidRpcResponse>;
49
- getServerInfo(_dwnUrl: string): Promise<ServerInfo>;
50
51
  }
51
52
  //# sourceMappingURL=rpc-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-client.d.ts","sourceRoot":"","sources":["../../src/rpc-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAI3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,IAAI,kBAAkB,IAAI,MAAM,EAAE,CAAA;IAClC,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;CAChE;AAED,oBAAY,YAAY;IACtB,MAAM,eAAe;IACrB,OAAO,gBAAgB;CACxB;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,QAAS,SAAQ,MAAM,EAAE,MAAM,EAAE,gBAAgB;CAAG;AAErE;;GAEG;AACH,qBAAa,cAAe,YAAW,QAAQ;IAC7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAwB;gBAE7C,OAAO,GAAE,QAAQ,EAAO;IAcpC,IAAI,kBAAkB,IAAI,MAAM,EAAE,CAEjC;IAEK,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAerE,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAezD,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAczD;AAED,qBAAa,kBAAmB,SAAQ,gBAAiB,YAAW,QAAQ;IACpE,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;CAoCtE;AAED,qBAAa,uBAAwB,SAAQ,qBAAsB,YAAW,QAAQ;IAC9E,cAAc,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAIhE,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAG1D"}
1
+ {"version":3,"file":"rpc-client.d.ts","sourceRoot":"","sources":["../../src/rpc-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC5G,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAI3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,IAAI,kBAAkB,IAAI,MAAM,EAAE,CAAA;IAClC,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;CAChE;AAED,oBAAY,YAAY;IACtB,MAAM,eAAe;IACrB,OAAO,gBAAgB;CACxB;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,QAAS,SAAQ,MAAM,EAAE,MAAM,EAAE,gBAAgB;CAAG;AAErE;;GAEG;AACH,qBAAa,cAAe,YAAW,QAAQ;IAC7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAwB;gBAE7C,OAAO,GAAE,QAAQ,EAAO;IAcpC,IAAI,kBAAkB,IAAI,MAAM,EAAE,CAEjC;IAEK,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAerE,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAe/D,sBAAsB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,sBAAsB,CAAC;IActF,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAczD;AAED,qBAAa,kBAAmB,SAAQ,gBAAiB,YAAW,QAAQ;IACpE,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;CAoCtE;AAED,qBAAa,uBAAwB,SAAQ,qBAAsB,YAAW,QAAQ;IAC9E,cAAc,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;CAGvE"}
@@ -1,13 +1,23 @@
1
- import type { DwnRpc, DwnRpcRequest, DwnRpcResponse } from './dwn-rpc-types.js';
1
+ import type { DwnReplicationApplyRequest, DwnRpc, DwnRpcRequest, DwnRpcResponse } from './dwn-rpc-types.js';
2
+ import type { DwnServerInfoRpc, ServerInfo } from './server-info-types.js';
3
+ import type { ReplicationApplyResult } from '@enbox/dwn-sdk-js';
2
4
  export declare class WebSocketDwnRpcClient implements DwnRpc {
5
+ private readonly serverInfoRpc;
3
6
  get transportProtocols(): string[];
4
7
  private static readonly connections;
8
+ private static readonly pendingConnections;
9
+ constructor(serverInfoRpc?: DwnServerInfoRpc);
5
10
  sendDwnRequest(request: DwnRpcRequest): Promise<DwnRpcResponse>;
11
+ applyReplicatedMessage(request: DwnReplicationApplyRequest): Promise<ReplicationApplyResult>;
12
+ getServerInfo(dwnUrl: string): Promise<ServerInfo>;
13
+ private maxPayloadBytesForReplicatedApply;
14
+ private static getConnection;
6
15
  /**
7
16
  * Creates a new `SocketConnection` with lifecycle wiring for reconnection.
8
17
  */
9
18
  private static createConnection;
10
19
  private static processMessage;
20
+ private static applyReplicatedMessage;
11
21
  private static subscriptionRequest;
12
22
  /**
13
23
  * Resubscribes all tracked subscriptions on a reconnected socket.
@@ -16,5 +26,8 @@ export declare class WebSocketDwnRpcClient implements DwnRpc {
16
26
  * for anonymous/unsigned subscriptions.
17
27
  */
18
28
  private static resubscribeAll;
29
+ private static assertReplicatedApplyDataIsPresent;
30
+ private static assertReplicatedApplyDataSizeIsSupported;
31
+ private static assertPayloadFitsFrame;
19
32
  }
20
33
  //# sourceMappingURL=web-socket-clients.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"web-socket-clients.d.ts","sourceRoot":"","sources":["../../src/web-socket-clients.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAA8C,MAAM,oBAAoB,CAAC;AAqD5H,qBAAa,qBAAsB,YAAW,MAAM;IAClD,IAAW,kBAAkB,IAAI,MAAM,EAAE,CAA4B;IAErE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAuC;IAEpE,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IA+BrE;;OAEG;mBACkB,gBAAgB;mBAkChB,cAAc;mBAiBd,mBAAmB;IA2FxC;;;;;OAKG;mBACkB,cAAc;CAmCpC"}
1
+ {"version":3,"file":"web-socket-clients.d.ts","sourceRoot":"","sources":["../../src/web-socket-clients.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,MAAM,EACN,aAAa,EACb,cAAc,EAGf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,KAAK,EAIV,sBAAsB,EAGvB,MAAM,mBAAmB,CAAC;AA2D3B,qBAAa,qBAAsB,YAAW,MAAM;IAM/B,OAAO,CAAC,QAAQ,CAAC,aAAa;IALjD,IAAW,kBAAkB,IAAI,MAAM,EAAE,CAA4B;IAErE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAuC;IAC1E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAgD;gBAEtD,aAAa,GAAE,gBAAyC;IAEtF,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAoB/D,sBAAsB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAS5F,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;YAI1C,iCAAiC;mBAU1B,aAAa;IA8BlC;;OAEG;mBACkB,gBAAgB;mBAkChB,cAAc;mBAiBd,sBAAsB;mBA0BtB,mBAAmB;IA2FxC;;;;;OAKG;mBACkB,cAAc;IAoCnC,OAAO,CAAC,MAAM,CAAC,kCAAkC;IAUjD,OAAO,CAAC,MAAM,CAAC,wCAAwC;IAUvD,OAAO,CAAC,MAAM,CAAC,sBAAsB;CAatC"}
@@ -0,0 +1,6 @@
1
+ export declare const DEFAULT_MAX_WS_RAW_RECORD_DATA_BYTES: number;
2
+ export declare const WS_JSON_RPC_ENVELOPE_BYTES: number;
3
+ export declare function base64UrlEncodedLength(byteLength: number): number;
4
+ export declare function estimatedWsJsonRpcPayloadBytes(rawDataSize: number): number;
5
+ export declare function maxWsJsonRpcPayloadBytes(maxRecordDataSize: number): number;
6
+ //# sourceMappingURL=ws-payload-size.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws-payload-size.d.ts","sourceRoot":"","sources":["../../src/ws-payload-size.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oCAAoC,QAAoB,CAAC;AACtE,eAAO,MAAM,0BAA0B,QAAY,CAAC;AAEpD,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,wBAAgB,8BAA8B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED,wBAAgB,wBAAwB,CAAC,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAE1E"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enbox/dwn-clients",
3
- "version": "0.4.4",
3
+ "version": "0.4.5",
4
4
  "type": "module",
5
5
  "main": "./dist/esm/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -48,7 +48,7 @@
48
48
  "dependencies": {
49
49
  "@enbox/common": "0.1.1",
50
50
  "@enbox/crypto": "0.1.1",
51
- "@enbox/dwn-sdk-js": "0.3.9",
51
+ "@enbox/dwn-sdk-js": "0.4.0",
52
52
  "ms": "2.1.3"
53
53
  },
54
54
  "devDependencies": {
@@ -0,0 +1,52 @@
1
+ import { JsonRpcErrorCodes } from './json-rpc.js';
2
+
3
+ /**
4
+ * Error surfaced by DWN JSON-RPC transports when the server returns a typed
5
+ * JSON-RPC error envelope.
6
+ */
7
+ export class DwnRpcError extends Error {
8
+ public readonly code: JsonRpcErrorCodes;
9
+ public readonly data?: unknown;
10
+ public readonly terminal: boolean;
11
+
12
+ constructor(code: JsonRpcErrorCodes, message: string, data?: unknown) {
13
+ super(`(${code}) - ${message}`);
14
+ this.name = 'DwnRpcError';
15
+ this.code = code;
16
+ this.data = data;
17
+ this.terminal = isTerminalJsonRpcErrorCode(code, message, data);
18
+ }
19
+ }
20
+
21
+ /**
22
+ * JSON-RPC errors that represent deterministic request rejection before DWN
23
+ * replicated admission can run. Internal/server/transport/rate-limit errors
24
+ * remain retryable.
25
+ */
26
+ export function isTerminalJsonRpcErrorCode(code: JsonRpcErrorCodes, message = '', data?: unknown): boolean {
27
+ if (isQuotaExceededError(message, data)) {
28
+ return false;
29
+ }
30
+
31
+ switch (code) {
32
+ case JsonRpcErrorCodes.InvalidRequest:
33
+ case JsonRpcErrorCodes.InvalidParams:
34
+ case JsonRpcErrorCodes.BadRequest:
35
+ case JsonRpcErrorCodes.Unauthorized:
36
+ case JsonRpcErrorCodes.Forbidden:
37
+ case JsonRpcErrorCodes.Conflict:
38
+ return true;
39
+ default:
40
+ return false;
41
+ }
42
+ }
43
+
44
+ function isQuotaExceededError(message: string, data: unknown): boolean {
45
+ const code = typeof data === 'object' && data !== null && 'code' in data
46
+ ? (data as { code?: unknown }).code
47
+ : undefined;
48
+ return code === 'TenantMessageQuotaExceeded' ||
49
+ code === 'TenantStorageQuotaExceeded' ||
50
+ message.includes('TenantMessageQuotaExceeded') ||
51
+ message.includes('TenantStorageQuotaExceeded');
52
+ }