@enbox/dwn-clients 0.0.5 → 0.0.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-registrar.js +81 -0
- package/dist/esm/dwn-registrar.js.map +1 -1
- package/dist/esm/http-dwn-rpc-client.js +5 -1
- package/dist/esm/http-dwn-rpc-client.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/json-rpc-socket.js +187 -35
- package/dist/esm/json-rpc-socket.js.map +1 -1
- package/dist/esm/json-rpc.js +12 -0
- package/dist/esm/json-rpc.js.map +1 -1
- package/dist/esm/provider-directory-types.js +2 -0
- package/dist/esm/provider-directory-types.js.map +1 -0
- package/dist/esm/web-socket-clients.js +102 -16
- package/dist/esm/web-socket-clients.js.map +1 -1
- package/dist/types/dwn-registrar.d.ts +29 -0
- package/dist/types/dwn-registrar.d.ts.map +1 -1
- package/dist/types/dwn-rpc-types.d.ts +54 -4
- package/dist/types/dwn-rpc-types.d.ts.map +1 -1
- package/dist/types/http-dwn-rpc-client.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/json-rpc-socket.d.ts +63 -0
- package/dist/types/json-rpc-socket.d.ts.map +1 -1
- package/dist/types/json-rpc.d.ts +5 -0
- package/dist/types/json-rpc.d.ts.map +1 -1
- package/dist/types/provider-directory-types.d.ts +40 -0
- package/dist/types/provider-directory-types.d.ts.map +1 -0
- package/dist/types/registration-types.d.ts +46 -2
- package/dist/types/registration-types.d.ts.map +1 -1
- package/dist/types/server-info-types.d.ts +26 -0
- package/dist/types/server-info-types.d.ts.map +1 -1
- package/dist/types/web-socket-clients.d.ts +12 -2
- package/dist/types/web-socket-clients.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/dwn-registrar.ts +98 -1
- package/src/dwn-rpc-types.ts +69 -4
- package/src/http-dwn-rpc-client.ts +7 -1
- package/src/index.ts +1 -0
- package/src/json-rpc-socket.ts +244 -36
- package/src/json-rpc.ts +16 -0
- package/src/provider-directory-types.ts +41 -0
- package/src/registration-types.ts +50 -3
- package/src/server-info-types.ts +27 -0
- package/src/web-socket-clients.ts +156 -20
|
@@ -115,5 +115,86 @@ export class DwnRegistrar {
|
|
|
115
115
|
return hexString;
|
|
116
116
|
});
|
|
117
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* Exchange an authorization code (from the provider's auth redirect) for a registration token.
|
|
120
|
+
* The wallet calls this after the user completes the provider's auth flow.
|
|
121
|
+
*
|
|
122
|
+
* @param tokenUrl - The provider's token endpoint URL (from ServerInfo.providerAuth.tokenUrl)
|
|
123
|
+
* @param code - The authorization code from the provider redirect
|
|
124
|
+
* @param redirectUri - The redirect URI used in the authorize request (must match exactly)
|
|
125
|
+
* @returns Token exchange response containing the registration token and optional refresh token
|
|
126
|
+
*/
|
|
127
|
+
static exchangeAuthCode(tokenUrl, code, redirectUri) {
|
|
128
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
129
|
+
const response = yield fetch(tokenUrl, {
|
|
130
|
+
method: 'POST',
|
|
131
|
+
headers: { 'Content-Type': 'application/json' },
|
|
132
|
+
body: JSON.stringify({
|
|
133
|
+
grantType: 'authorization_code',
|
|
134
|
+
code,
|
|
135
|
+
redirectUri,
|
|
136
|
+
}),
|
|
137
|
+
});
|
|
138
|
+
if (response.status !== 200) {
|
|
139
|
+
const errorText = yield response.text();
|
|
140
|
+
throw new Error(`DwnRegistrar: Token exchange failed (${response.status}): ${errorText}`);
|
|
141
|
+
}
|
|
142
|
+
return response.json();
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Refresh an expired registration token using a refresh token.
|
|
147
|
+
*
|
|
148
|
+
* @param refreshUrl - The provider's refresh endpoint URL (from ServerInfo.providerAuth.refreshUrl)
|
|
149
|
+
* @param refreshToken - The refresh token from a previous token exchange
|
|
150
|
+
* @returns New token exchange response with fresh registration token
|
|
151
|
+
*/
|
|
152
|
+
static refreshRegistrationToken(refreshUrl, refreshToken) {
|
|
153
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
154
|
+
const response = yield fetch(refreshUrl, {
|
|
155
|
+
method: 'POST',
|
|
156
|
+
headers: { 'Content-Type': 'application/json' },
|
|
157
|
+
body: JSON.stringify({
|
|
158
|
+
grantType: 'refresh_token',
|
|
159
|
+
refreshToken,
|
|
160
|
+
}),
|
|
161
|
+
});
|
|
162
|
+
if (response.status !== 200) {
|
|
163
|
+
const errorText = yield response.text();
|
|
164
|
+
throw new Error(`DwnRegistrar: Token refresh failed (${response.status}): ${errorText}`);
|
|
165
|
+
}
|
|
166
|
+
return response.json();
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Register a DID as a tenant on a DWN server using a provider auth registration token.
|
|
171
|
+
* This is the paid-tier alternative to the PoW-based {@link registerTenant}.
|
|
172
|
+
*
|
|
173
|
+
* @param dwnEndpoint - The DWN server base URL
|
|
174
|
+
* @param did - The DID to register as a tenant
|
|
175
|
+
* @param registrationToken - The opaque registration token from the provider
|
|
176
|
+
* @param termsOfServiceHash - Optional ToS hash if the server requires it alongside provider auth
|
|
177
|
+
*/
|
|
178
|
+
static registerTenantWithToken(dwnEndpoint, did, registrationToken, termsOfServiceHash) {
|
|
179
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
180
|
+
const registrationEndpoint = concatenateUrl(dwnEndpoint, 'registration');
|
|
181
|
+
const registrationRequest = {
|
|
182
|
+
providerAuth: { registrationToken },
|
|
183
|
+
registrationData: {
|
|
184
|
+
did,
|
|
185
|
+
termsOfServiceHash,
|
|
186
|
+
},
|
|
187
|
+
};
|
|
188
|
+
const response = yield fetch(registrationEndpoint, {
|
|
189
|
+
method: 'POST',
|
|
190
|
+
headers: { 'Content-Type': 'application/json' },
|
|
191
|
+
body: JSON.stringify(registrationRequest),
|
|
192
|
+
});
|
|
193
|
+
if (response.status !== 200) {
|
|
194
|
+
const errorText = yield response.text();
|
|
195
|
+
throw new Error(`DwnRegistrar: Provider auth registration failed (${response.status}): ${errorText}`);
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
}
|
|
118
199
|
}
|
|
119
200
|
//# sourceMappingURL=dwn-registrar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dwn-registrar.js","sourceRoot":"","sources":["../../src/dwn-registrar.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dwn-registrar.js","sourceRoot":"","sources":["../../src/dwn-registrar.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,7 +56,11 @@ export class HttpDwnRpcClient {
|
|
|
56
56
|
}
|
|
57
57
|
else {
|
|
58
58
|
const responseBody = yield resp.text();
|
|
59
|
-
|
|
59
|
+
const jsonRpcResponse = parseJson(responseBody);
|
|
60
|
+
if (jsonRpcResponse == null) {
|
|
61
|
+
throw new Error(`failed to parse json rpc response. dwn url: ${request.dwnUrl}, status: ${resp.status}`);
|
|
62
|
+
}
|
|
63
|
+
dwnRpcResponse = jsonRpcResponse;
|
|
60
64
|
}
|
|
61
65
|
if (dwnRpcResponse.error) {
|
|
62
66
|
const { code, message } = dwnRpcResponse.error;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-dwn-rpc-client.js","sourceRoot":"","sources":["../../src/http-dwn-rpc-client.ts"],"names":[],"mappings":";;;;;;;;;AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAEhE;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAE3B,YAAY,eAAoC;QAC9C,IAAI,CAAC,eAAe,GAAG,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,IAAI,wBAAwB,EAAE,CAAC;IAC3E,CAAC;IAED,IAAI,kBAAkB,KAAe,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE5D,cAAc,CAAC,OAAsB;;YACzC,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC;YAC3C,MAAM,cAAc,GAAG,oBAAoB,CAAC,SAAS,EAAE,oBAAoB,EAAE;gBAC3E,MAAM,EAAI,OAAO,CAAC,SAAS;gBAC3B,OAAO,EAAG,OAAO,CAAC,OAAO;aAC1B,CAAC,CAAC;YAEH,MAAM,cAAc,GAA2B;gBAC7C,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;aAC9C,CAAC;YAEF,MAAM,SAAS,GAAgB;gBAC7B,MAAM,EAAI,MAAM;gBAChB,OAAO,EAAG,cAAc;aACzB,CAAC;YAEF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,cAAc,CAAC,cAAc,CAAC,GAAG,0BAA0B,CAAC;gBAC5D,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBAE9B,6EAA6E;gBAC7E,+EAA+E;gBAC/E,mEAAmE;gBAClE,SAAqC,CAAC,MAAM,GAAG,MAAM,CAAC;YACzD,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACpD,IAAI,cAA+B,CAAC;YAEpC,4EAA4E;YAC5E,4EAA4E;YAC5E,wCAAwC;YACxC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAEvD,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAE,CAAoB,CAAC;gBAExF,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC;oBAC5B,MAAM,IAAI,KAAK,CAAC,+CAA+C,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;gBACnF,CAAC;gBAED,cAAc,GAAG,eAAe,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gBACvC,
|
|
1
|
+
{"version":3,"file":"http-dwn-rpc-client.js","sourceRoot":"","sources":["../../src/http-dwn-rpc-client.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -4,6 +4,7 @@ export * from './dwn-server-info-cache-memory.js';
|
|
|
4
4
|
export * from './http-dwn-rpc-client.js';
|
|
5
5
|
export * from './json-rpc.js';
|
|
6
6
|
export * from './json-rpc-socket.js';
|
|
7
|
+
export * from './provider-directory-types.js';
|
|
7
8
|
export * from './registration-types.js';
|
|
8
9
|
export * from './rpc-client.js';
|
|
9
10
|
export * from './server-info-types.js';
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","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,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","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,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC"}
|
|
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { CryptoUtils } from '@enbox/crypto';
|
|
11
|
-
import { createJsonRpcSubscriptionRequest, parseJson } from './json-rpc.js';
|
|
11
|
+
import { createJsonRpcSubscriptionRequest, JsonRpcErrorCodes, parseJson } from './json-rpc.js';
|
|
12
12
|
/**
|
|
13
13
|
* Converts WebSocket message data to a string.
|
|
14
14
|
* Bun's native WebSocket delivers `event.data` as an `ArrayBuffer`,
|
|
@@ -30,55 +30,71 @@ function toText(data) {
|
|
|
30
30
|
// These were arbitrarily chosen, but can be modified via connect options
|
|
31
31
|
const CONNECT_TIMEOUT = 3000;
|
|
32
32
|
const RESPONSE_TIMEOUT = 30000;
|
|
33
|
+
/** Default reconnection settings. */
|
|
34
|
+
const DEFAULT_BASE_RECONNECT_DELAY = 1000;
|
|
35
|
+
const DEFAULT_MAX_RECONNECT_DELAY = 30000;
|
|
36
|
+
const DEFAULT_MAX_RECONNECT_ATTEMPTS = Infinity;
|
|
33
37
|
/**
|
|
34
38
|
* JSON RPC Socket Client for WebSocket request/response and long-running subscriptions.
|
|
39
|
+
*
|
|
40
|
+
* Supports automatic reconnection with exponential backoff when the connection
|
|
41
|
+
* drops unexpectedly. Subscription message handlers survive reconnection — they
|
|
42
|
+
* are re-registered on the new underlying socket automatically.
|
|
35
43
|
*/
|
|
36
44
|
export class JsonRpcSocket {
|
|
37
|
-
constructor(socket, responseTimeout) {
|
|
45
|
+
constructor(socket, responseTimeout, url, options) {
|
|
38
46
|
this.socket = socket;
|
|
39
47
|
this.responseTimeout = responseTimeout;
|
|
48
|
+
/**
|
|
49
|
+
* Map of JSON-RPC id → message handler. For one-shot `request()` calls, the
|
|
50
|
+
* handler is added before sending and removed on response or timeout.
|
|
51
|
+
* For subscriptions, the handler lives until explicitly closed.
|
|
52
|
+
*/
|
|
40
53
|
this.messageHandlers = new Map();
|
|
54
|
+
/**
|
|
55
|
+
* Set of JSON-RPC ids that belong to subscription handlers (as opposed to
|
|
56
|
+
* one-shot request handlers). Subscription handlers survive reconnection;
|
|
57
|
+
* one-shot handlers are rejected on unexpected close.
|
|
58
|
+
*/
|
|
59
|
+
this.subscriptionHandlerIds = new Set();
|
|
60
|
+
/** Whether `close()` was called intentionally by the user. */
|
|
61
|
+
this.closedByUser = false;
|
|
62
|
+
/** Whether a reconnection attempt is currently in progress. */
|
|
63
|
+
this.reconnecting = false;
|
|
64
|
+
/** Whether the socket is currently connected. */
|
|
65
|
+
this._isConnected = false;
|
|
66
|
+
this.url = url;
|
|
67
|
+
this.options = options;
|
|
68
|
+
this._isConnected = true;
|
|
69
|
+
}
|
|
70
|
+
/** Whether the socket is currently connected. */
|
|
71
|
+
get isConnected() {
|
|
72
|
+
return this._isConnected;
|
|
41
73
|
}
|
|
42
74
|
static connect(url_1) {
|
|
43
75
|
return __awaiter(this, arguments, void 0, function* (url, options = {}) {
|
|
44
|
-
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
socket.onclose = onclose;
|
|
76
|
+
var _a;
|
|
77
|
+
const { connectTimeout = CONNECT_TIMEOUT, responseTimeout = RESPONSE_TIMEOUT } = options;
|
|
78
|
+
let socket;
|
|
79
|
+
try {
|
|
80
|
+
socket = yield JsonRpcSocket.createWebSocket(url, connectTimeout);
|
|
53
81
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
socket.onerror = onerror;
|
|
82
|
+
catch (error) {
|
|
83
|
+
// Notify the onerror handler if one was provided, even for connection-time errors.
|
|
84
|
+
(_a = options.onerror) === null || _a === void 0 ? void 0 : _a.call(options, error);
|
|
85
|
+
throw error;
|
|
61
86
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
socket.addEventListener('message', (event) => {
|
|
66
|
-
const jsonRpcResponse = parseJson(toText(event.data));
|
|
67
|
-
const handler = jsonRpcSocket.messageHandlers.get(jsonRpcResponse.id);
|
|
68
|
-
if (handler) {
|
|
69
|
-
handler(event);
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
resolve(jsonRpcSocket);
|
|
73
|
-
});
|
|
74
|
-
socket.addEventListener('error', (error) => {
|
|
75
|
-
reject(error);
|
|
76
|
-
});
|
|
77
|
-
setTimeout(() => reject(new Error('connect timed out')), connectTimeout);
|
|
78
|
-
});
|
|
87
|
+
const jsonRpcSocket = new JsonRpcSocket(socket, responseTimeout, url, options);
|
|
88
|
+
jsonRpcSocket.wireSocket(socket);
|
|
89
|
+
return jsonRpcSocket;
|
|
79
90
|
});
|
|
80
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Closes the socket and stops reconnection attempts.
|
|
94
|
+
*/
|
|
81
95
|
close() {
|
|
96
|
+
this.closedByUser = true;
|
|
97
|
+
this._isConnected = false;
|
|
82
98
|
this.socket.close();
|
|
83
99
|
}
|
|
84
100
|
/**
|
|
@@ -130,6 +146,7 @@ export class JsonRpcSocket {
|
|
|
130
146
|
if (jsonRpcResponse.error !== undefined) {
|
|
131
147
|
// remove the event listener upon receipt of a JSON RPC Error.
|
|
132
148
|
this.messageHandlers.delete(subscriptionId);
|
|
149
|
+
this.subscriptionHandlerIds.delete(subscriptionId);
|
|
133
150
|
this.closeSubscription(subscriptionId).catch(() => {
|
|
134
151
|
// swallow timeout errors; the subscription is already cleaned up locally.
|
|
135
152
|
});
|
|
@@ -138,6 +155,7 @@ export class JsonRpcSocket {
|
|
|
138
155
|
}
|
|
139
156
|
};
|
|
140
157
|
this.messageHandlers.set(subscriptionId, socketEventListener);
|
|
158
|
+
this.subscriptionHandlerIds.add(subscriptionId);
|
|
141
159
|
const response = yield this.request(request);
|
|
142
160
|
if (response.error) {
|
|
143
161
|
// Restore the previous handler if one existed, otherwise clean up.
|
|
@@ -146,12 +164,14 @@ export class JsonRpcSocket {
|
|
|
146
164
|
}
|
|
147
165
|
else {
|
|
148
166
|
this.messageHandlers.delete(subscriptionId);
|
|
167
|
+
this.subscriptionHandlerIds.delete(subscriptionId);
|
|
149
168
|
}
|
|
150
169
|
return { response };
|
|
151
170
|
}
|
|
152
171
|
// clean up listener and create a `rpc.subscribe.close` message to use when closing this JSON RPC subscription
|
|
153
172
|
const close = () => __awaiter(this, void 0, void 0, function* () {
|
|
154
173
|
this.messageHandlers.delete(subscriptionId);
|
|
174
|
+
this.subscriptionHandlerIds.delete(subscriptionId);
|
|
155
175
|
yield this.closeSubscription(subscriptionId);
|
|
156
176
|
});
|
|
157
177
|
return {
|
|
@@ -171,5 +191,137 @@ export class JsonRpcSocket {
|
|
|
171
191
|
send(request) {
|
|
172
192
|
this.socket.send(JSON.stringify(request));
|
|
173
193
|
}
|
|
194
|
+
// ---------------------------------------------------------------------------
|
|
195
|
+
// Internal: socket wiring and reconnection
|
|
196
|
+
// ---------------------------------------------------------------------------
|
|
197
|
+
/**
|
|
198
|
+
* Creates and connects a raw WebSocket, resolving when `open` fires.
|
|
199
|
+
*/
|
|
200
|
+
static createWebSocket(url, connectTimeout) {
|
|
201
|
+
return new Promise((resolve, reject) => {
|
|
202
|
+
const ws = new WebSocket(url);
|
|
203
|
+
const onOpen = () => {
|
|
204
|
+
cleanup();
|
|
205
|
+
resolve(ws);
|
|
206
|
+
};
|
|
207
|
+
const onError = (error) => {
|
|
208
|
+
cleanup();
|
|
209
|
+
reject(error);
|
|
210
|
+
};
|
|
211
|
+
const timer = setTimeout(() => {
|
|
212
|
+
cleanup();
|
|
213
|
+
ws.close();
|
|
214
|
+
reject(new Error('connect timed out'));
|
|
215
|
+
}, connectTimeout);
|
|
216
|
+
const cleanup = () => {
|
|
217
|
+
clearTimeout(timer);
|
|
218
|
+
ws.removeEventListener('open', onOpen);
|
|
219
|
+
ws.removeEventListener('error', onError);
|
|
220
|
+
};
|
|
221
|
+
ws.addEventListener('open', onOpen);
|
|
222
|
+
ws.addEventListener('error', onError);
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Wires the `onmessage`, `onclose`, and `onerror` handlers for a given
|
|
227
|
+
* WebSocket instance. Called both on initial connect and on reconnect.
|
|
228
|
+
*/
|
|
229
|
+
wireSocket(ws) {
|
|
230
|
+
ws.addEventListener('message', (event) => {
|
|
231
|
+
const jsonRpcResponse = parseJson(toText(event.data));
|
|
232
|
+
if (jsonRpcResponse === null) {
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
const handler = this.messageHandlers.get(jsonRpcResponse.id);
|
|
236
|
+
if (handler) {
|
|
237
|
+
handler(event);
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
ws.addEventListener('close', () => {
|
|
241
|
+
var _a, _b, _c, _d, _e;
|
|
242
|
+
this._isConnected = false;
|
|
243
|
+
if (this.closedByUser) {
|
|
244
|
+
(_b = (_a = this.options).onclose) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
// Reject all pending one-shot request handlers (non-subscription).
|
|
248
|
+
this.rejectPendingRequests();
|
|
249
|
+
// Notify the user handler if present.
|
|
250
|
+
(_d = (_c = this.options).onclose) === null || _d === void 0 ? void 0 : _d.call(_c);
|
|
251
|
+
// Attempt reconnection if enabled.
|
|
252
|
+
const autoReconnect = (_e = this.options.autoReconnect) !== null && _e !== void 0 ? _e : true;
|
|
253
|
+
if (autoReconnect && !this.reconnecting) {
|
|
254
|
+
this.attemptReconnect();
|
|
255
|
+
}
|
|
256
|
+
});
|
|
257
|
+
ws.addEventListener('error', (error) => {
|
|
258
|
+
var _a, _b;
|
|
259
|
+
(_b = (_a = this.options).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, error);
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Rejects all pending one-shot request handlers (those not in `subscriptionHandlerIds`)
|
|
264
|
+
* by synthesizing a transport error event.
|
|
265
|
+
*/
|
|
266
|
+
rejectPendingRequests() {
|
|
267
|
+
for (const [id, handler] of this.messageHandlers) {
|
|
268
|
+
if (!this.subscriptionHandlerIds.has(id)) {
|
|
269
|
+
// Synthesize an error response to reject the pending promise.
|
|
270
|
+
const errorData = JSON.stringify({
|
|
271
|
+
jsonrpc: '2.0',
|
|
272
|
+
id,
|
|
273
|
+
error: { code: JsonRpcErrorCodes.TransportError, message: 'WebSocket connection closed unexpectedly' },
|
|
274
|
+
});
|
|
275
|
+
handler({ data: errorData });
|
|
276
|
+
this.messageHandlers.delete(id);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Exponential backoff reconnection loop with jitter.
|
|
282
|
+
*/
|
|
283
|
+
attemptReconnect() {
|
|
284
|
+
var _a, _b, _c, _d;
|
|
285
|
+
this.reconnecting = true;
|
|
286
|
+
const baseDelay = (_a = this.options.baseReconnectDelay) !== null && _a !== void 0 ? _a : DEFAULT_BASE_RECONNECT_DELAY;
|
|
287
|
+
const maxDelay = (_b = this.options.maxReconnectDelay) !== null && _b !== void 0 ? _b : DEFAULT_MAX_RECONNECT_DELAY;
|
|
288
|
+
const maxAttempts = (_c = this.options.maxReconnectAttempts) !== null && _c !== void 0 ? _c : DEFAULT_MAX_RECONNECT_ATTEMPTS;
|
|
289
|
+
const connectTimeout = (_d = this.options.connectTimeout) !== null && _d !== void 0 ? _d : CONNECT_TIMEOUT;
|
|
290
|
+
let attempt = 0;
|
|
291
|
+
const tryReconnect = () => __awaiter(this, void 0, void 0, function* () {
|
|
292
|
+
var _a, _b, _c, _d;
|
|
293
|
+
if (this.closedByUser) {
|
|
294
|
+
this.reconnecting = false;
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
297
|
+
attempt++;
|
|
298
|
+
if (attempt > maxAttempts) {
|
|
299
|
+
this.reconnecting = false;
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
302
|
+
(_b = (_a = this.options).onreconnecting) === null || _b === void 0 ? void 0 : _b.call(_a, attempt);
|
|
303
|
+
// Exponential backoff with jitter: delay = min(baseDelay * 2^(attempt-1), maxDelay) * (0.5 + random*0.5)
|
|
304
|
+
const expDelay = Math.min(baseDelay * Math.pow(2, attempt - 1), maxDelay);
|
|
305
|
+
const jitteredDelay = expDelay * (0.5 + Math.random() * 0.5);
|
|
306
|
+
yield new Promise(resolve => setTimeout(resolve, jitteredDelay));
|
|
307
|
+
if (this.closedByUser) {
|
|
308
|
+
this.reconnecting = false;
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
311
|
+
try {
|
|
312
|
+
const newSocket = yield JsonRpcSocket.createWebSocket(this.url, connectTimeout);
|
|
313
|
+
this.socket = newSocket;
|
|
314
|
+
this._isConnected = true;
|
|
315
|
+
this.reconnecting = false;
|
|
316
|
+
this.wireSocket(newSocket);
|
|
317
|
+
(_d = (_c = this.options).onreconnected) === null || _d === void 0 ? void 0 : _d.call(_c);
|
|
318
|
+
}
|
|
319
|
+
catch (_e) {
|
|
320
|
+
// Connection failed — retry.
|
|
321
|
+
yield tryReconnect();
|
|
322
|
+
}
|
|
323
|
+
});
|
|
324
|
+
tryReconnect();
|
|
325
|
+
}
|
|
174
326
|
}
|
|
175
327
|
//# sourceMappingURL=json-rpc-socket.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-rpc-socket.js","sourceRoot":"","sources":["../../src/json-rpc-socket.ts"],"names":[],"mappings":";;;;;;;;;AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,gCAAgC,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"json-rpc-socket.js","sourceRoot":"","sources":["../../src/json-rpc-socket.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/json-rpc.js
CHANGED
|
@@ -56,6 +56,18 @@ export const createJsonRpcSubscriptionRequest = (id, method, params, subscriptio
|
|
|
56
56
|
}
|
|
57
57
|
};
|
|
58
58
|
};
|
|
59
|
+
/**
|
|
60
|
+
* Creates a JSON-RPC notification to acknowledge receipt of subscription events
|
|
61
|
+
* up to the given cursor. No `id` is set because no response is expected.
|
|
62
|
+
*/
|
|
63
|
+
export const createJsonRpcAck = (subscriptionId, cursor) => {
|
|
64
|
+
return {
|
|
65
|
+
jsonrpc: '2.0',
|
|
66
|
+
method: 'rpc.ack',
|
|
67
|
+
params: { cursor },
|
|
68
|
+
subscription: { id: subscriptionId },
|
|
69
|
+
};
|
|
70
|
+
};
|
|
59
71
|
export const createJsonRpcSuccessResponse = (id, result) => {
|
|
60
72
|
return {
|
|
61
73
|
jsonrpc: '2.0',
|
package/dist/esm/json-rpc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-rpc.js","sourceRoot":"","sources":["../../src/json-rpc.ts"],"names":[],"mappings":"AAyBA,MAAM,CAAN,IAAY,iBAcX;AAdD,WAAY,iBAAiB;IAC3B,kCAAkC;IAClC,kFAAuB,CAAA;IACvB,kFAAuB,CAAA;IACvB,gFAAsB,CAAA;IACtB,gFAAsB,CAAA;IACtB,0EAAmB,CAAA;IACnB,kFAAuB,CAAA;IAEvB,qBAAqB;IACrB,0EAAmB,CAAA;IACnB,8EAAqB,CAAA;IACrB,wEAAkB,CAAA;IAClB,sEAAiB,CAAA;AACnB,CAAC,EAdW,iBAAiB,KAAjB,iBAAiB,QAc5B;AAkBD,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,EAAa,EACb,IAAuB,EACvB,OAAe,EACf,IAAU,EACY,EAAE;IACxB,MAAM,KAAK,GAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC9C,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACpB,CAAC;IACD,OAAO;QACL,OAAO,EAAE,KAAK;QACd,EAAE;QACF,KAAK;KACN,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,MAAc,EACd,MAAY,EACI,EAAE;IAClB,OAAO;QACL,OAAO,EAAE,KAAK;QACd,MAAM;QACN,MAAM;KACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,EAAa,EACb,MAAc,EACd,MAAsB,EACN,EAAE;IAClB,OAAO;QACL,OAAO,EAAE,KAAK;QACd,EAAE;QACF,MAAM;QACN,MAAM;KACP,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,EAAa,EACb,MAAc,EACd,MAAY,EACZ,cAA0B,EACV,EAAE;IAClB,OAAO;QACL,OAAO,EAAQ,KAAK;QACpB,EAAE;QACF,MAAM;QACN,MAAM;QACN,YAAY,EAAG;YACb,EAAE,EAAE,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,IAAI;SAC3B;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,EAAa,EACb,MAAY,EACY,EAAE;IAC1B,OAAO;QACL,OAAO,EAAG,KAAK;QACf,EAAE;QACF,MAAM,EAAI,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,IAAI;KACzB,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"json-rpc.js","sourceRoot":"","sources":["../../src/json-rpc.ts"],"names":[],"mappings":"AAyBA,MAAM,CAAN,IAAY,iBAcX;AAdD,WAAY,iBAAiB;IAC3B,kCAAkC;IAClC,kFAAuB,CAAA;IACvB,kFAAuB,CAAA;IACvB,gFAAsB,CAAA;IACtB,gFAAsB,CAAA;IACtB,0EAAmB,CAAA;IACnB,kFAAuB,CAAA;IAEvB,qBAAqB;IACrB,0EAAmB,CAAA;IACnB,8EAAqB,CAAA;IACrB,wEAAkB,CAAA;IAClB,sEAAiB,CAAA;AACnB,CAAC,EAdW,iBAAiB,KAAjB,iBAAiB,QAc5B;AAkBD,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,EAAa,EACb,IAAuB,EACvB,OAAe,EACf,IAAU,EACY,EAAE;IACxB,MAAM,KAAK,GAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC9C,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACpB,CAAC;IACD,OAAO;QACL,OAAO,EAAE,KAAK;QACd,EAAE;QACF,KAAK;KACN,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,MAAc,EACd,MAAY,EACI,EAAE;IAClB,OAAO;QACL,OAAO,EAAE,KAAK;QACd,MAAM;QACN,MAAM;KACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,EAAa,EACb,MAAc,EACd,MAAsB,EACN,EAAE;IAClB,OAAO;QACL,OAAO,EAAE,KAAK;QACd,EAAE;QACF,MAAM;QACN,MAAM;KACP,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,EAAa,EACb,MAAc,EACd,MAAY,EACZ,cAA0B,EACV,EAAE;IAClB,OAAO;QACL,OAAO,EAAQ,KAAK;QACpB,EAAE;QACF,MAAM;QACN,MAAM;QACN,YAAY,EAAG;YACb,EAAE,EAAE,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,IAAI;SAC3B;KACF,CAAC;AACJ,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,cAAyB,EACzB,MAAc,EACE,EAAE;IAClB,OAAO;QACL,OAAO,EAAQ,KAAK;QACpB,MAAM,EAAS,SAAS;QACxB,MAAM,EAAS,EAAE,MAAM,EAAE;QACzB,YAAY,EAAG,EAAE,EAAE,EAAE,cAAc,EAAE;KACtC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,EAAa,EACb,MAAY,EACY,EAAE;IAC1B,OAAO;QACL,OAAO,EAAG,KAAK;QACf,EAAE;QACF,MAAM,EAAI,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,IAAI;KACzB,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-directory-types.js","sourceRoot":"","sources":["../../src/provider-directory-types.ts"],"names":[],"mappings":""}
|