@enbox/dwn-clients 0.4.4 → 0.4.6
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.
- package/dist/esm/dwn-rpc-error.js +45 -0
- package/dist/esm/dwn-rpc-error.js.map +1 -0
- package/dist/esm/http-dwn-rpc-client.js +109 -50
- package/dist/esm/http-dwn-rpc-client.js.map +1 -1
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/json-rpc-socket.js +5 -5
- package/dist/esm/json-rpc-socket.js.map +1 -1
- package/dist/esm/readable-stream.js +68 -0
- package/dist/esm/readable-stream.js.map +1 -0
- package/dist/esm/replication-apply-result.js +105 -0
- package/dist/esm/replication-apply-result.js.map +1 -0
- package/dist/esm/rpc-client.js +10 -5
- package/dist/esm/rpc-client.js.map +1 -1
- package/dist/esm/web-socket-clients.js +152 -17
- package/dist/esm/web-socket-clients.js.map +1 -1
- package/dist/esm/ws-payload-size.js +12 -0
- package/dist/esm/ws-payload-size.js.map +1 -0
- package/dist/types/dwn-rpc-error.d.ts +18 -0
- package/dist/types/dwn-rpc-error.d.ts.map +1 -0
- package/dist/types/dwn-rpc-types.d.ts +37 -1
- package/dist/types/dwn-rpc-types.d.ts.map +1 -1
- package/dist/types/http-dwn-rpc-client.d.ts +3 -3
- package/dist/types/http-dwn-rpc-client.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/json-rpc-socket.d.ts.map +1 -1
- package/dist/types/readable-stream.d.ts +6 -0
- package/dist/types/readable-stream.d.ts.map +1 -0
- package/dist/types/replication-apply-result.d.ts +3 -0
- package/dist/types/replication-apply-result.d.ts.map +1 -0
- package/dist/types/rpc-client.d.ts +3 -2
- package/dist/types/rpc-client.d.ts.map +1 -1
- package/dist/types/web-socket-clients.d.ts +14 -1
- package/dist/types/web-socket-clients.d.ts.map +1 -1
- package/dist/types/ws-payload-size.d.ts +6 -0
- package/dist/types/ws-payload-size.d.ts.map +1 -0
- package/package.json +4 -4
- package/src/dwn-rpc-error.ts +52 -0
- package/src/dwn-rpc-types.ts +52 -1
- package/src/http-dwn-rpc-client.ts +132 -58
- package/src/index.ts +3 -0
- package/src/json-rpc-socket.ts +5 -6
- package/src/readable-stream.ts +59 -0
- package/src/replication-apply-result.ts +124 -0
- package/src/rpc-client.ts +16 -5
- package/src/web-socket-clients.ts +210 -19
- package/src/ws-payload-size.ts +14 -0
package/dist/esm/rpc-client.js
CHANGED
|
@@ -58,6 +58,16 @@ export class EnboxRpcClient {
|
|
|
58
58
|
}
|
|
59
59
|
return transportClient.sendDwnRequest(request);
|
|
60
60
|
}
|
|
61
|
+
applyReplicatedMessage(request) {
|
|
62
|
+
const url = new URL(request.dwnUrl);
|
|
63
|
+
const transportClient = this.transportClients.get(url.protocol);
|
|
64
|
+
if (!transportClient) {
|
|
65
|
+
const error = new Error(`no ${url.protocol} transport client available`);
|
|
66
|
+
error.name = 'NO_TRANSPORT_CLIENT';
|
|
67
|
+
throw error;
|
|
68
|
+
}
|
|
69
|
+
return transportClient.applyReplicatedMessage(request);
|
|
70
|
+
}
|
|
61
71
|
getServerInfo(dwnUrl) {
|
|
62
72
|
return __awaiter(this, void 0, void 0, function* () {
|
|
63
73
|
// will throw if url is invalid
|
|
@@ -114,10 +124,5 @@ export class WebSocketEnboxRpcClient extends WebSocketDwnRpcClient {
|
|
|
114
124
|
throw new Error(`not implemented for transports [${this.transportProtocols.join(', ')}]`);
|
|
115
125
|
});
|
|
116
126
|
}
|
|
117
|
-
getServerInfo(_dwnUrl) {
|
|
118
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
119
|
-
throw new Error(`not implemented for transports [${this.transportProtocols.join(', ')}]`);
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
127
|
}
|
|
123
128
|
//# sourceMappingURL=rpc-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-client.js","sourceRoot":"","sources":["../../src/rpc-client.ts"],"names":[],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"rpc-client.js","sourceRoot":"","sources":["../../src/rpc-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,20 @@ 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 {
|
|
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);
|
|
19
|
+
function connectionCacheKey(url) {
|
|
20
|
+
return stripTrailingSlash(url.toString());
|
|
21
|
+
}
|
|
22
|
+
function stripTrailingSlash(url) {
|
|
23
|
+
return url.endsWith('/') ? url.slice(0, -1) : url;
|
|
24
|
+
}
|
|
13
25
|
function shouldReplaceLastCursor(current, candidate) {
|
|
14
26
|
if (current === undefined) {
|
|
15
27
|
return true;
|
|
@@ -21,6 +33,9 @@ function shouldReplaceLastCursor(current, candidate) {
|
|
|
21
33
|
}
|
|
22
34
|
export class WebSocketDwnRpcClient {
|
|
23
35
|
get transportProtocols() { return ['ws:', 'wss:']; }
|
|
36
|
+
constructor(serverInfoRpc = new HttpDwnRpcClient()) {
|
|
37
|
+
this.serverInfoRpc = serverInfoRpc;
|
|
38
|
+
}
|
|
24
39
|
sendDwnRequest(request) {
|
|
25
40
|
return __awaiter(this, void 0, void 0, function* () {
|
|
26
41
|
// validate that the dwn URL provided is a valid WebSocket URL
|
|
@@ -28,18 +43,7 @@ export class WebSocketDwnRpcClient {
|
|
|
28
43
|
if (url.protocol !== 'ws:' && url.protocol !== 'wss:') {
|
|
29
44
|
throw new Error(`Invalid websocket protocol ${url.protocol}`);
|
|
30
45
|
}
|
|
31
|
-
|
|
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);
|
|
46
|
+
const connection = yield WebSocketDwnRpcClient.getConnection(request.dwnUrl);
|
|
43
47
|
const { targetDid, message, subscription } = request;
|
|
44
48
|
if (subscription) {
|
|
45
49
|
return WebSocketDwnRpcClient.subscriptionRequest(connection, targetDid, message, subscription.handler, subscription.resubscribeFactory);
|
|
@@ -47,17 +51,71 @@ export class WebSocketDwnRpcClient {
|
|
|
47
51
|
return WebSocketDwnRpcClient.processMessage(connection, targetDid, message);
|
|
48
52
|
});
|
|
49
53
|
}
|
|
54
|
+
applyReplicatedMessage(request) {
|
|
55
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
56
|
+
WebSocketDwnRpcClient.assertReplicatedApplyDataIsPresent(request);
|
|
57
|
+
const maxPayloadBytes = yield this.maxPayloadBytesForReplicatedApply(request);
|
|
58
|
+
WebSocketDwnRpcClient.assertReplicatedApplyDataSizeIsSupported(request, maxPayloadBytes);
|
|
59
|
+
const connection = yield WebSocketDwnRpcClient.getConnection(request.dwnUrl);
|
|
60
|
+
const encodedData = request.data === undefined ? undefined : yield dataToBase64Url(request.data);
|
|
61
|
+
return WebSocketDwnRpcClient.applyReplicatedMessage(connection, request.targetDid, request.message, encodedData, maxPayloadBytes);
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
getServerInfo(dwnUrl) {
|
|
65
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
66
|
+
return this.serverInfoRpc.getServerInfo(httpUrlForWsDwnUrl(dwnUrl));
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
maxPayloadBytesForReplicatedApply(request) {
|
|
70
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
71
|
+
const dataSize = recordsWriteDataSize(request.message);
|
|
72
|
+
if (dataSize === undefined) {
|
|
73
|
+
return DEFAULT_MAX_WS_JSON_RPC_PAYLOAD_BYTES;
|
|
74
|
+
}
|
|
75
|
+
const serverInfo = yield this.getServerInfo(request.dwnUrl);
|
|
76
|
+
return maxWsJsonRpcPayloadBytes(serverInfo.maxFileSize);
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
static getConnection(dwnUrl) {
|
|
80
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
81
|
+
const url = new URL(dwnUrl);
|
|
82
|
+
if (url.protocol !== 'ws:' && url.protocol !== 'wss:') {
|
|
83
|
+
throw new Error(`Invalid websocket protocol ${url.protocol}`);
|
|
84
|
+
}
|
|
85
|
+
const key = connectionCacheKey(url);
|
|
86
|
+
const existing = WebSocketDwnRpcClient.connections.get(key);
|
|
87
|
+
if (existing !== undefined) {
|
|
88
|
+
return existing;
|
|
89
|
+
}
|
|
90
|
+
let pending = WebSocketDwnRpcClient.pendingConnections.get(key);
|
|
91
|
+
if (pending === undefined) {
|
|
92
|
+
pending = WebSocketDwnRpcClient.createConnection(url)
|
|
93
|
+
.then((connection) => {
|
|
94
|
+
WebSocketDwnRpcClient.connections.set(key, connection);
|
|
95
|
+
return connection;
|
|
96
|
+
})
|
|
97
|
+
.catch((error) => {
|
|
98
|
+
throw new Error(`Error connecting to ${key}: ${error.message}`);
|
|
99
|
+
})
|
|
100
|
+
.finally(() => {
|
|
101
|
+
WebSocketDwnRpcClient.pendingConnections.delete(key);
|
|
102
|
+
});
|
|
103
|
+
WebSocketDwnRpcClient.pendingConnections.set(key, pending);
|
|
104
|
+
}
|
|
105
|
+
return pending;
|
|
106
|
+
});
|
|
107
|
+
}
|
|
50
108
|
/**
|
|
51
109
|
* Creates a new `SocketConnection` with lifecycle wiring for reconnection.
|
|
52
110
|
*/
|
|
53
111
|
static createConnection(url) {
|
|
54
112
|
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
-
const
|
|
113
|
+
const key = connectionCacheKey(url);
|
|
56
114
|
const subscriptions = new Map();
|
|
57
115
|
const socket = yield JsonRpcSocket.connect(url.toString(), {
|
|
58
116
|
onclose: () => {
|
|
59
117
|
// Remove the stale connection from the map so new requests create a fresh one.
|
|
60
|
-
WebSocketDwnRpcClient.connections.delete(
|
|
118
|
+
WebSocketDwnRpcClient.connections.delete(key);
|
|
61
119
|
// Notify all subscription handlers of disconnection.
|
|
62
120
|
for (const tracked of subscriptions.values()) {
|
|
63
121
|
tracked.handler({ type: 'disconnected' });
|
|
@@ -71,7 +129,7 @@ export class WebSocketDwnRpcClient {
|
|
|
71
129
|
onreconnected: () => {
|
|
72
130
|
// Re-register this connection in the map (it was deleted on close).
|
|
73
131
|
const conn = { socket, subscriptions, url: url.toString() };
|
|
74
|
-
WebSocketDwnRpcClient.connections.set(
|
|
132
|
+
WebSocketDwnRpcClient.connections.set(key, conn);
|
|
75
133
|
// Resubscribe all tracked subscriptions with their last known cursor.
|
|
76
134
|
WebSocketDwnRpcClient.resubscribeAll(conn);
|
|
77
135
|
},
|
|
@@ -92,6 +150,21 @@ export class WebSocketDwnRpcClient {
|
|
|
92
150
|
return result.reply;
|
|
93
151
|
});
|
|
94
152
|
}
|
|
153
|
+
static applyReplicatedMessage(connection_1, target_1, message_1, encodedData_1) {
|
|
154
|
+
return __awaiter(this, arguments, void 0, function* (connection, target, message, encodedData, maxPayloadBytes = DEFAULT_MAX_WS_JSON_RPC_PAYLOAD_BYTES) {
|
|
155
|
+
const requestId = CryptoUtils.randomUuid();
|
|
156
|
+
const request = createJsonRpcRequest(requestId, 'dwn.applyReplicatedMessage', Object.assign({ target,
|
|
157
|
+
message }, (encodedData === undefined ? {} : { encodedData })));
|
|
158
|
+
WebSocketDwnRpcClient.assertPayloadFitsFrame(request, encodedData, maxPayloadBytes);
|
|
159
|
+
const { socket } = connection;
|
|
160
|
+
const response = yield socket.request(request);
|
|
161
|
+
const { error, result } = response;
|
|
162
|
+
if (error !== undefined) {
|
|
163
|
+
throw new DwnRpcError(error.code, error.message, error.data);
|
|
164
|
+
}
|
|
165
|
+
return parseReplicationApplyResult(result.result);
|
|
166
|
+
});
|
|
167
|
+
}
|
|
95
168
|
static subscriptionRequest(connection, target, message, handler, resubscribeFactory) {
|
|
96
169
|
return __awaiter(this, void 0, void 0, function* () {
|
|
97
170
|
const requestId = CryptoUtils.randomUuid();
|
|
@@ -200,7 +273,69 @@ export class WebSocketDwnRpcClient {
|
|
|
200
273
|
}
|
|
201
274
|
});
|
|
202
275
|
}
|
|
276
|
+
static assertReplicatedApplyDataIsPresent(request) {
|
|
277
|
+
const dataSize = recordsWriteDataSize(request.message);
|
|
278
|
+
if (dataSize !== undefined && dataSize > 0 && request.data === undefined) {
|
|
279
|
+
throw new DwnRpcError(JsonRpcErrorCodes.InvalidParams, 'data-bearing RecordsWrite replicated apply over WebSocket requires encoded data');
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
static assertReplicatedApplyDataSizeIsSupported(request, maxPayloadBytes) {
|
|
283
|
+
const dataSize = recordsWriteDataSize(request.message);
|
|
284
|
+
if (dataSize !== undefined && maxWsJsonRpcPayloadBytes(dataSize) > maxPayloadBytes) {
|
|
285
|
+
throw new DwnRpcError(JsonRpcErrorCodes.InvalidParams, `RecordsWrite replicated apply data is too large for WebSocket JSON-RPC framing`);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
static assertPayloadFitsFrame(request, encodedData, maxPayloadBytes) {
|
|
289
|
+
const payloadBytes = estimatedJsonRpcPayloadBytes(request, encodedData);
|
|
290
|
+
if (payloadBytes > maxPayloadBytes) {
|
|
291
|
+
throw new DwnRpcError(JsonRpcErrorCodes.InvalidParams, `replicated apply JSON-RPC payload is too large for WebSocket transport`);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
203
294
|
}
|
|
204
|
-
// a map of
|
|
295
|
+
// a map of normalized DWN WebSocket endpoint URLs to WebSocket connections
|
|
205
296
|
WebSocketDwnRpcClient.connections = new Map();
|
|
297
|
+
WebSocketDwnRpcClient.pendingConnections = new Map();
|
|
298
|
+
function httpUrlForWsDwnUrl(dwnUrl) {
|
|
299
|
+
const url = new URL(dwnUrl);
|
|
300
|
+
if (url.protocol === 'ws:') {
|
|
301
|
+
url.protocol = 'http:';
|
|
302
|
+
}
|
|
303
|
+
else if (url.protocol === 'wss:') {
|
|
304
|
+
url.protocol = 'https:';
|
|
305
|
+
}
|
|
306
|
+
return url.toString();
|
|
307
|
+
}
|
|
308
|
+
function estimatedJsonRpcPayloadBytes(request, encodedData) {
|
|
309
|
+
if (encodedData === undefined) {
|
|
310
|
+
return utf8ByteLength(JSON.stringify(request));
|
|
311
|
+
}
|
|
312
|
+
const params = request.params;
|
|
313
|
+
const requestWithoutData = Object.assign(Object.assign({}, request), { params: Object.assign(Object.assign({}, params), { encodedData: '' }) });
|
|
314
|
+
return utf8ByteLength(JSON.stringify(requestWithoutData)) + encodedData.length;
|
|
315
|
+
}
|
|
316
|
+
function utf8ByteLength(text) {
|
|
317
|
+
return new TextEncoder().encode(text).byteLength;
|
|
318
|
+
}
|
|
319
|
+
function dataToBase64Url(data) {
|
|
320
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
321
|
+
if (data instanceof Blob) {
|
|
322
|
+
return Encoder.bytesToBase64Url(new Uint8Array(yield data.arrayBuffer()));
|
|
323
|
+
}
|
|
324
|
+
if (data instanceof ReadableStream) {
|
|
325
|
+
return Encoder.bytesToBase64Url(yield DataStream.toBytes(data));
|
|
326
|
+
}
|
|
327
|
+
if (data instanceof Uint8Array) {
|
|
328
|
+
return Encoder.bytesToBase64Url(data);
|
|
329
|
+
}
|
|
330
|
+
return Encoder.bytesToBase64Url(new Uint8Array(yield new Blob([data]).arrayBuffer()));
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
function recordsWriteDataSize(message) {
|
|
334
|
+
const descriptor = message.descriptor;
|
|
335
|
+
return (descriptor === null || descriptor === void 0 ? void 0 : descriptor.interface) === 'Records' &&
|
|
336
|
+
descriptor.method === 'Write' &&
|
|
337
|
+
typeof descriptor.dataSize === 'number'
|
|
338
|
+
? descriptor.dataSize
|
|
339
|
+
: undefined;
|
|
340
|
+
}
|
|
206
341
|
//# 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,
|
|
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 {
|
|
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.
|
|
@@ -22,10 +23,9 @@ export declare class HttpDwnRpcClient implements DwnRpc {
|
|
|
22
23
|
private readonly serverInfoCache;
|
|
23
24
|
private readonly _retryOptions;
|
|
24
25
|
constructor(serverInfoCache?: DwnServerInfoCache, retryOptions?: HttpRetryOptions);
|
|
25
|
-
/** Detects whether the current runtime is Bun (vs a browser). */
|
|
26
|
-
static isBunRuntime(): boolean;
|
|
27
26
|
get transportProtocols(): string[];
|
|
28
27
|
sendDwnRequest(request: DwnRpcRequest): Promise<DwnRpcResponse>;
|
|
28
|
+
applyReplicatedMessage(request: DwnReplicationApplyRequest): Promise<ReplicationApplyResult>;
|
|
29
29
|
getServerInfo(dwnUrl: string): Promise<ServerInfo>;
|
|
30
30
|
/**
|
|
31
31
|
* 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;
|
|
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;AAiGF;;;;;;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,IAAI,kBAAkB,IAAI,MAAM,EAAE,CAAgC;IAE5D,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IA0F/D,sBAAsB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAiD5F,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA8CxD;;;;OAIG;YACW,cAAc;CAyC7B"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -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';
|
|
@@ -6,8 +7,10 @@ export * from './json-rpc.js';
|
|
|
6
7
|
export * from './json-rpc-socket.js';
|
|
7
8
|
export * from './provider-directory-types.js';
|
|
8
9
|
export * from './rate-limit-error.js';
|
|
10
|
+
export * from './readable-stream.js';
|
|
9
11
|
export * from './registration-types.js';
|
|
10
12
|
export * from './rpc-client.js';
|
|
11
13
|
export * from './server-info-types.js';
|
|
14
|
+
export * from './ws-payload-size.js';
|
|
12
15
|
export * from './web-socket-clients.js';
|
|
13
16
|
//# 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;
|
|
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,sBAAsB,CAAC;AACrC,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;
|
|
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,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wraps runtime-provided streams in a standard `ReadableStream` so downstream
|
|
3
|
+
* consumers see consistent reader behavior across Bun and browsers.
|
|
4
|
+
*/
|
|
5
|
+
export declare function normalizeReadableStream(readableStream: ReadableStream<Uint8Array>): ReadableStream<Uint8Array>;
|
|
6
|
+
//# sourceMappingURL=readable-stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readable-stream.d.ts","sourceRoot":"","sources":["../../src/readable-stream.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,cAAc,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,CAgD9G"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replication-apply-result.d.ts","sourceRoot":"","sources":["../../src/replication-apply-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgC,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAO9F,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,CA6BlF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
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;
|
|
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,
|
|
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;AAmE3B,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;IA+BlC;;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"}
|