gateio-api 1.1.11 → 1.2.0
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/README.md +93 -86
- package/dist/cjs/WebsocketAPIClient.d.ts +136 -0
- package/dist/cjs/WebsocketAPIClient.js +197 -0
- package/dist/cjs/WebsocketAPIClient.js.map +1 -0
- package/dist/cjs/WebsocketClient.d.ts +14 -2
- package/dist/cjs/WebsocketClient.js +102 -20
- package/dist/cjs/WebsocketClient.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/BaseRestClient.js +17 -0
- package/dist/cjs/lib/BaseRestClient.js.map +1 -1
- package/dist/cjs/lib/BaseWSClient.d.ts +14 -3
- package/dist/cjs/lib/BaseWSClient.js +95 -24
- package/dist/cjs/lib/BaseWSClient.js.map +1 -1
- package/dist/cjs/lib/logger.d.ts +1 -0
- package/dist/cjs/lib/requestUtils.d.ts +11 -0
- package/dist/cjs/lib/requestUtils.js.map +1 -1
- package/dist/cjs/lib/websocket/WsStore.d.ts +13 -2
- package/dist/cjs/lib/websocket/WsStore.js +44 -19
- package/dist/cjs/lib/websocket/WsStore.js.map +1 -1
- package/dist/cjs/lib/websocket/WsStore.types.d.ts +10 -3
- package/dist/cjs/lib/websocket/WsStore.types.js +1 -1
- package/dist/cjs/lib/websocket/WsStore.types.js.map +1 -1
- package/dist/cjs/types/websockets/wsAPI.d.ts +193 -38
- package/dist/cjs/types/websockets/wsAPI.js +0 -5
- package/dist/cjs/types/websockets/wsAPI.js.map +1 -1
- package/dist/mjs/WebsocketAPIClient.d.ts +136 -0
- package/dist/mjs/WebsocketAPIClient.js +193 -0
- package/dist/mjs/WebsocketAPIClient.js.map +1 -0
- package/dist/mjs/WebsocketClient.d.ts +14 -2
- package/dist/mjs/WebsocketClient.js +102 -20
- package/dist/mjs/WebsocketClient.js.map +1 -1
- package/dist/mjs/index.d.ts +1 -0
- package/dist/mjs/index.js +1 -0
- package/dist/mjs/index.js.map +1 -1
- package/dist/mjs/lib/BaseRestClient.js +17 -0
- package/dist/mjs/lib/BaseRestClient.js.map +1 -1
- package/dist/mjs/lib/BaseWSClient.d.ts +14 -3
- package/dist/mjs/lib/BaseWSClient.js +95 -24
- package/dist/mjs/lib/BaseWSClient.js.map +1 -1
- package/dist/mjs/lib/logger.d.ts +1 -0
- package/dist/mjs/lib/requestUtils.d.ts +11 -0
- package/dist/mjs/lib/requestUtils.js.map +1 -1
- package/dist/mjs/lib/websocket/WsStore.d.ts +13 -2
- package/dist/mjs/lib/websocket/WsStore.js +39 -14
- package/dist/mjs/lib/websocket/WsStore.js.map +1 -1
- package/dist/mjs/lib/websocket/WsStore.types.d.ts +10 -3
- package/dist/mjs/lib/websocket/WsStore.types.js +1 -1
- package/dist/mjs/lib/websocket/WsStore.types.js.map +1 -1
- package/dist/mjs/types/websockets/wsAPI.d.ts +193 -38
- package/dist/mjs/types/websockets/wsAPI.js +0 -5
- package/dist/mjs/types/websockets/wsAPI.js.map +1 -1
- package/package.json +6 -2
|
@@ -40,6 +40,7 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
40
40
|
logger;
|
|
41
41
|
options;
|
|
42
42
|
wsApiRequestId = 0;
|
|
43
|
+
timeOffsetMs = 0;
|
|
43
44
|
constructor(options, logger) {
|
|
44
45
|
super();
|
|
45
46
|
this.logger = logger || DefaultLogger;
|
|
@@ -66,6 +67,13 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
66
67
|
getNewRequestId() {
|
|
67
68
|
return `${++this.wsApiRequestId}`;
|
|
68
69
|
}
|
|
70
|
+
getTimeOffsetMs() {
|
|
71
|
+
return this.timeOffsetMs;
|
|
72
|
+
}
|
|
73
|
+
// TODO: not implemented
|
|
74
|
+
setTimeOffsetMs(newOffset) {
|
|
75
|
+
this.timeOffsetMs = newOffset;
|
|
76
|
+
}
|
|
69
77
|
/**
|
|
70
78
|
* Don't call directly! Use subscribe() instead!
|
|
71
79
|
*
|
|
@@ -190,11 +198,11 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
190
198
|
try {
|
|
191
199
|
if (this.wsStore.isWsOpen(wsKey)) {
|
|
192
200
|
this.logger.error('Refused to connect to ws with existing active connection', { ...WS_LOGGER_CATEGORY, wsKey });
|
|
193
|
-
return { wsKey };
|
|
201
|
+
return { wsKey, ws: this.wsStore.getWs(wsKey) };
|
|
194
202
|
}
|
|
195
203
|
if (this.wsStore.isConnectionState(wsKey, WsConnectionStateEnum.CONNECTING)) {
|
|
196
204
|
this.logger.error('Refused to connect to ws, connection attempt already active', { ...WS_LOGGER_CATEGORY, wsKey });
|
|
197
|
-
return;
|
|
205
|
+
return this.wsStore.getConnectionInProgressPromise(wsKey)?.promise;
|
|
198
206
|
}
|
|
199
207
|
if (!this.wsStore.getConnectionState(wsKey) ||
|
|
200
208
|
this.wsStore.isConnectionState(wsKey, WsConnectionStateEnum.INITIAL)) {
|
|
@@ -206,12 +214,12 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
206
214
|
const url = this.getWsUrl(wsKey);
|
|
207
215
|
const ws = this.connectToWsUrl(url, wsKey);
|
|
208
216
|
this.wsStore.setWs(wsKey, ws);
|
|
209
|
-
return this.wsStore.getConnectionInProgressPromise(wsKey)?.promise;
|
|
210
217
|
}
|
|
211
218
|
catch (err) {
|
|
212
219
|
this.parseWsError('Connection failed', err, wsKey);
|
|
213
220
|
this.reconnectWithDelay(wsKey, this.options.reconnectTimeout);
|
|
214
221
|
}
|
|
222
|
+
return this.wsStore.getConnectionInProgressPromise(wsKey)?.promise;
|
|
215
223
|
}
|
|
216
224
|
connectToWsUrl(url, wsKey) {
|
|
217
225
|
this.logger.trace(`Opening WS connection to URL: ${url}`, {
|
|
@@ -219,7 +227,7 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
219
227
|
wsKey,
|
|
220
228
|
});
|
|
221
229
|
const ws = new WebSocket(url, undefined);
|
|
222
|
-
ws.onopen = (event) => this.onWsOpen(event, wsKey);
|
|
230
|
+
ws.onopen = (event) => this.onWsOpen(event, wsKey, url, ws);
|
|
223
231
|
ws.onmessage = (event) => this.onWsMessage(event, wsKey, ws);
|
|
224
232
|
ws.onerror = (event) => this.parseWsError('websocket error', event, wsKey);
|
|
225
233
|
ws.onclose = (event) => this.onWsClose(event, wsKey);
|
|
@@ -253,9 +261,14 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
253
261
|
...WS_LOGGER_CATEGORY,
|
|
254
262
|
wsKey,
|
|
255
263
|
});
|
|
264
|
+
await this.assertIsConnected(wsKey);
|
|
265
|
+
if (!this.wsStore.getAuthenticationInProgressPromise(wsKey)) {
|
|
266
|
+
this.wsStore.createAuthenticationInProgressPromise(wsKey, false);
|
|
267
|
+
}
|
|
256
268
|
const request = await this.getWsAuthRequestEvent(wsKey);
|
|
257
269
|
// console.log('ws auth req', request);
|
|
258
|
-
|
|
270
|
+
this.tryWsSend(wsKey, JSON.stringify(request));
|
|
271
|
+
return this.wsStore.getAuthenticationInProgressPromise(wsKey)?.promise;
|
|
259
272
|
}
|
|
260
273
|
catch (e) {
|
|
261
274
|
this.logger.trace(e, { ...WS_LOGGER_CATEGORY, wsKey });
|
|
@@ -362,7 +375,7 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
362
375
|
/**
|
|
363
376
|
* Try sending a string event on a WS connection (identified by the WS Key)
|
|
364
377
|
*/
|
|
365
|
-
tryWsSend(wsKey, wsMessage) {
|
|
378
|
+
tryWsSend(wsKey, wsMessage, throwExceptions) {
|
|
366
379
|
try {
|
|
367
380
|
this.logger.trace(`Sending upstream ws message: `, {
|
|
368
381
|
...WS_LOGGER_CATEGORY,
|
|
@@ -385,23 +398,27 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
385
398
|
wsKey,
|
|
386
399
|
exception: e,
|
|
387
400
|
});
|
|
401
|
+
if (throwExceptions) {
|
|
402
|
+
throw e;
|
|
403
|
+
}
|
|
388
404
|
}
|
|
389
405
|
}
|
|
390
|
-
async onWsOpen(event, wsKey) {
|
|
406
|
+
async onWsOpen(event, wsKey, url, ws) {
|
|
407
|
+
const isFreshConnectionAttempt = this.wsStore.isConnectionState(wsKey, WsConnectionStateEnum.CONNECTING);
|
|
391
408
|
const didReconnectSuccessfully = this.wsStore.isConnectionState(wsKey, WsConnectionStateEnum.RECONNECTING);
|
|
392
|
-
if (
|
|
409
|
+
if (isFreshConnectionAttempt) {
|
|
393
410
|
this.logger.info('Websocket connected', {
|
|
394
411
|
...WS_LOGGER_CATEGORY,
|
|
395
412
|
wsKey,
|
|
396
413
|
});
|
|
397
|
-
this.emit('open', { wsKey, event });
|
|
414
|
+
this.emit('open', { wsKey, event, wsUrl: url, ws });
|
|
398
415
|
}
|
|
399
416
|
else if (didReconnectSuccessfully) {
|
|
400
417
|
this.logger.info('Websocket reconnected', {
|
|
401
418
|
...WS_LOGGER_CATEGORY,
|
|
402
419
|
wsKey,
|
|
403
420
|
});
|
|
404
|
-
this.emit('reconnected', { wsKey, event });
|
|
421
|
+
this.emit('reconnected', { wsKey, event, wsUrl: url, ws });
|
|
405
422
|
}
|
|
406
423
|
this.setWsState(wsKey, WsConnectionStateEnum.CONNECTED);
|
|
407
424
|
this.logger.trace(`Enabled ping timer`, { ...WS_LOGGER_CATEGORY, wsKey });
|
|
@@ -411,6 +428,7 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
411
428
|
const connectionInProgressPromise = this.wsStore.getConnectionInProgressPromise(wsKey);
|
|
412
429
|
if (connectionInProgressPromise?.resolve) {
|
|
413
430
|
connectionInProgressPromise.resolve({
|
|
431
|
+
ws,
|
|
414
432
|
wsKey,
|
|
415
433
|
});
|
|
416
434
|
}
|
|
@@ -421,9 +439,9 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
421
439
|
// Remove before resolving, in case there's more requests queued
|
|
422
440
|
this.wsStore.removeConnectingInProgressPromise(wsKey);
|
|
423
441
|
// Some websockets require an auth packet to be sent after opening the connection
|
|
424
|
-
if (this.
|
|
442
|
+
if (this.isAuthOnConnectWsKey(wsKey) &&
|
|
425
443
|
this.options.authPrivateConnectionsOnConnect) {
|
|
426
|
-
await this.
|
|
444
|
+
await this.assertIsAuthenticated(wsKey);
|
|
427
445
|
}
|
|
428
446
|
// Reconnect to topics known before it connected
|
|
429
447
|
const { privateReqs, publicReqs } = this.sortTopicRequestsIntoPublicPrivate([...this.wsStore.getTopics(wsKey)], wsKey);
|
|
@@ -474,6 +492,22 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
474
492
|
onWsAuthenticated(wsKey, event) {
|
|
475
493
|
const wsState = this.wsStore.get(wsKey, true);
|
|
476
494
|
wsState.isAuthenticated = true;
|
|
495
|
+
// Resolve & cleanup deferred "auth attempt in progress" promise
|
|
496
|
+
try {
|
|
497
|
+
const inProgressPromise = this.wsStore.getAuthenticationInProgressPromise(wsKey);
|
|
498
|
+
if (inProgressPromise?.resolve) {
|
|
499
|
+
inProgressPromise.resolve({
|
|
500
|
+
wsKey,
|
|
501
|
+
event,
|
|
502
|
+
ws: wsState.ws,
|
|
503
|
+
});
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
catch (e) {
|
|
507
|
+
this.logger.error('Exception trying to resolve "authenticationInProgress" promise', e);
|
|
508
|
+
}
|
|
509
|
+
// Remove before continuing, in case there's more requests queued
|
|
510
|
+
this.wsStore.removeAuthenticationInProgressPromise(wsKey);
|
|
477
511
|
if (this.options.authPrivateConnectionsOnConnect) {
|
|
478
512
|
const topics = [...this.wsStore.getTopics(wsKey)];
|
|
479
513
|
const privateTopics = topics.filter((topic) => this.isPrivateTopicRequest(topic, wsKey));
|
|
@@ -565,7 +599,11 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
565
599
|
...WS_LOGGER_CATEGORY,
|
|
566
600
|
wsKey,
|
|
567
601
|
});
|
|
602
|
+
const wsState = this.wsStore.get(wsKey, true);
|
|
603
|
+
wsState.isAuthenticated = false;
|
|
568
604
|
if (this.wsStore.getConnectionState(wsKey) !== WsConnectionStateEnum.CLOSING) {
|
|
605
|
+
// unintentional close, attempt recovery
|
|
606
|
+
this.logger.trace(`onWsClose(${wsKey}): rejecting all deferred promises...`);
|
|
569
607
|
// clean up any pending promises for this connection
|
|
570
608
|
this.getWsStore().rejectAllDeferredPromises(wsKey, 'connection lost, reconnecting');
|
|
571
609
|
this.setWsState(wsKey, WsConnectionStateEnum.INITIAL);
|
|
@@ -573,9 +611,14 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
573
611
|
this.emit('reconnect', { wsKey, event });
|
|
574
612
|
}
|
|
575
613
|
else {
|
|
614
|
+
// intentional close - clean up
|
|
615
|
+
// clean up any pending promises for this connection
|
|
616
|
+
this.logger.trace(`onWsClose(${wsKey}): rejecting all deferred promises...`);
|
|
576
617
|
// clean up any pending promises for this connection
|
|
577
618
|
this.getWsStore().rejectAllDeferredPromises(wsKey, 'disconnected');
|
|
578
619
|
this.setWsState(wsKey, WsConnectionStateEnum.INITIAL);
|
|
620
|
+
// This was an intentional close, delete all state for this connection, as if it never existed:
|
|
621
|
+
this.wsStore.delete(wsKey);
|
|
579
622
|
this.emit('close', { wsKey, event });
|
|
580
623
|
}
|
|
581
624
|
}
|
|
@@ -589,21 +632,49 @@ export class BaseWebsocketClient extends EventEmitter {
|
|
|
589
632
|
* Promise-driven method to assert that a ws has successfully connected (will await until connection is open)
|
|
590
633
|
*/
|
|
591
634
|
async assertIsConnected(wsKey) {
|
|
635
|
+
const isConnected = this.getWsStore().isConnectionState(wsKey, WsConnectionStateEnum.CONNECTED);
|
|
636
|
+
if (isConnected) {
|
|
637
|
+
return true;
|
|
638
|
+
}
|
|
639
|
+
const inProgressPromise = this.getWsStore().getConnectionInProgressPromise(wsKey);
|
|
640
|
+
// Already in progress? Await shared promise and retry
|
|
641
|
+
if (inProgressPromise) {
|
|
642
|
+
this.logger.trace('assertIsConnected(): awaiting...');
|
|
643
|
+
await inProgressPromise.promise;
|
|
644
|
+
this.logger.trace('assertIsConnected(): awaiting...connected!');
|
|
645
|
+
return inProgressPromise.promise;
|
|
646
|
+
}
|
|
647
|
+
// Start connection, it should automatically store/return a promise.
|
|
648
|
+
this.logger.trace('assertIsConnected(): connecting...');
|
|
649
|
+
await this.connect(wsKey);
|
|
650
|
+
this.logger.trace('assertIsConnected(): connecting...newly connected!');
|
|
651
|
+
}
|
|
652
|
+
/**
|
|
653
|
+
* Promise-driven method to assert that a ws has been successfully authenticated (will await until auth is confirmed)
|
|
654
|
+
*/
|
|
655
|
+
async assertIsAuthenticated(wsKey) {
|
|
592
656
|
const isConnected = this.getWsStore().isConnectionState(wsKey, WsConnectionStateEnum.CONNECTED);
|
|
593
657
|
if (!isConnected) {
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
658
|
+
this.logger.trace('assertIsAuthenticated(): connecting...');
|
|
659
|
+
await this.assertIsConnected(wsKey);
|
|
660
|
+
}
|
|
661
|
+
const inProgressPromise = this.getWsStore().getAuthenticationInProgressPromise(wsKey);
|
|
662
|
+
// Already in progress? Await shared promise and retry
|
|
663
|
+
if (inProgressPromise) {
|
|
664
|
+
this.logger.trace('assertIsAuthenticated(): awaiting...');
|
|
665
|
+
await inProgressPromise.promise;
|
|
666
|
+
this.logger.trace('assertIsAuthenticated(): authenticated!');
|
|
667
|
+
return;
|
|
668
|
+
}
|
|
669
|
+
const isAuthenticated = this.wsStore.get(wsKey)?.isAuthenticated;
|
|
670
|
+
if (isAuthenticated) {
|
|
671
|
+
// this.logger.trace('assertIsAuthenticated(): ok');
|
|
672
|
+
return;
|
|
606
673
|
}
|
|
674
|
+
// Start authentication, it should automatically store/return a promise.
|
|
675
|
+
this.logger.trace('assertIsAuthenticated(): authenticating...');
|
|
676
|
+
await this.sendAuthRequest(wsKey);
|
|
677
|
+
this.logger.trace('assertIsAuthenticated(): newly authenticated!');
|
|
607
678
|
}
|
|
608
679
|
}
|
|
609
680
|
//# sourceMappingURL=BaseWSClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseWSClient.js","sourceRoot":"","sources":["../../../src/lib/BaseWSClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BaseWSClient.js","sourceRoot":"","sources":["../../../src/lib/BaseWSClient.ts"],"names":[],"mappings":"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"}
|
package/dist/mjs/lib/logger.d.ts
CHANGED
|
@@ -20,6 +20,17 @@ export interface RestClientOptions {
|
|
|
20
20
|
baseUrlKey?: GateBaseUrlKey;
|
|
21
21
|
/** Default: true. whether to try and post-process request exceptions (and throw them). */
|
|
22
22
|
parseExceptions?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Enable keep alive for REST API requests (via axios).
|
|
25
|
+
* See: https://github.com/tiagosiebler/bybit-api/issues/368
|
|
26
|
+
*/
|
|
27
|
+
keepAlive?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* When using HTTP KeepAlive, how often to send TCP KeepAlive packets over sockets being kept alive. Default = 1000.
|
|
30
|
+
* Only relevant if keepAlive is set to true.
|
|
31
|
+
* Default: 1000 (defaults comes from https agent)
|
|
32
|
+
*/
|
|
33
|
+
keepAliveMsecs?: number;
|
|
23
34
|
/**
|
|
24
35
|
* Allows you to provide a custom "signMessage" function, e.g. to use node's much faster createHmac method
|
|
25
36
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestUtils.js","sourceRoot":"","sources":["../../../src/lib/requestUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"requestUtils.js","sourceRoot":"","sources":["../../../src/lib/requestUtils.ts"],"names":[],"mappings":"AAqDA,MAAM,UAAU,eAAe,CAC7B,MAAS,EACT,iBAAsC,EACtC,YAAqB,EACrB,UAAkB;IAElB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;SACpC,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,iBAAiB,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE,CAAC;YAC/D,MAAM,IAAI,KAAK,CACb,uDAAuD,CACxD,CAAC;QACJ,CAAC;QACD,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACtE,OAAO,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;IAClC,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,iCAAiC;IACjC,OAAO,WAAW,CAAC,CAAC,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;AAC9D,CAAC;AAED,MAAM,cAAc,GAAmC;IACrD,IAAI,EAAE,8BAA8B;IACpC,sBAAsB,EAAE,iCAAiC;IACzD,cAAc,EAAE,yCAAyC;CAC1D,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,iBAAoC;IACjE,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;QAC9B,OAAO,iBAAiB,CAAC,OAAO,CAAC;IACnC,CAAC;IAED,IAAI,iBAAiB,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,cAAc,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,cAAc,CAAC,IAAI,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC;AAQxC,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAG,GAAuB,CAAC;IACxC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC;AAC9E,CAAC"}
|
|
@@ -5,14 +5,15 @@ import { DeferredPromise, WSConnectedResult, WsConnectionStateEnum, WsStoredStat
|
|
|
5
5
|
* Simple comparison of two objects, only checks 1-level deep (nested objects won't match)
|
|
6
6
|
*/
|
|
7
7
|
export declare function isDeepObjectMatch(object1: unknown, object2: unknown): boolean;
|
|
8
|
-
declare const DEFERRED_PROMISE_REF: {
|
|
8
|
+
export declare const DEFERRED_PROMISE_REF: {
|
|
9
9
|
readonly CONNECTION_IN_PROGRESS: "CONNECTION_IN_PROGRESS";
|
|
10
|
+
readonly AUTHENTICATION_IN_PROGRESS: "AUTHENTICATION_IN_PROGRESS";
|
|
10
11
|
};
|
|
11
12
|
type DeferredPromiseRef = (typeof DEFERRED_PROMISE_REF)[keyof typeof DEFERRED_PROMISE_REF];
|
|
12
13
|
export declare class WsStore<WsKey extends string, TWSTopicSubscribeEventArgs extends string | object> {
|
|
13
14
|
private wsState;
|
|
14
15
|
private logger;
|
|
15
|
-
constructor(logger:
|
|
16
|
+
constructor(logger: DefaultLogger);
|
|
16
17
|
/** Get WS stored state for key, optionally create if missing */
|
|
17
18
|
get(key: WsKey, createIfMissing?: true): WsStoredState<TWSTopicSubscribeEventArgs>;
|
|
18
19
|
get(key: WsKey, createIfMissing?: false): WsStoredState<TWSTopicSubscribeEventArgs> | undefined;
|
|
@@ -22,6 +23,9 @@ export declare class WsStore<WsKey extends string, TWSTopicSubscribeEventArgs ex
|
|
|
22
23
|
hasExistingActiveConnection(key: WsKey): boolean;
|
|
23
24
|
getWs(key: WsKey): WebSocket | undefined;
|
|
24
25
|
setWs(key: WsKey, wsConnection: WebSocket): WebSocket;
|
|
26
|
+
/**
|
|
27
|
+
* deferred promises
|
|
28
|
+
*/
|
|
25
29
|
getDeferredPromise<TSuccessResult = any>(wsKey: WsKey, promiseRef: string | DeferredPromiseRef): DeferredPromise<TSuccessResult> | undefined;
|
|
26
30
|
createDeferredPromise<TSuccessResult = any>(wsKey: WsKey, promiseRef: string | DeferredPromiseRef, throwIfExists: boolean): DeferredPromise<TSuccessResult>;
|
|
27
31
|
resolveDeferredPromise(wsKey: WsKey, promiseRef: string | DeferredPromiseRef, value: unknown, removeAfter: boolean): void;
|
|
@@ -30,14 +34,21 @@ export declare class WsStore<WsKey extends string, TWSTopicSubscribeEventArgs ex
|
|
|
30
34
|
rejectAllDeferredPromises(wsKey: WsKey, reason: string): void;
|
|
31
35
|
/** Get promise designed to track a connection attempt in progress. Resolves once connected. */
|
|
32
36
|
getConnectionInProgressPromise(wsKey: WsKey): DeferredPromise<WSConnectedResult> | undefined;
|
|
37
|
+
getAuthenticationInProgressPromise(wsKey: WsKey): DeferredPromise<WSConnectedResult & {
|
|
38
|
+
event: any;
|
|
39
|
+
}> | undefined;
|
|
33
40
|
/**
|
|
34
41
|
* Create a deferred promise designed to track a connection attempt in progress.
|
|
35
42
|
*
|
|
36
43
|
* Will throw if existing promise is found.
|
|
37
44
|
*/
|
|
38
45
|
createConnectionInProgressPromise(wsKey: WsKey, throwIfExists: boolean): DeferredPromise<WSConnectedResult>;
|
|
46
|
+
createAuthenticationInProgressPromise(wsKey: WsKey, throwIfExists: boolean): DeferredPromise<WSConnectedResult & {
|
|
47
|
+
event: any;
|
|
48
|
+
}>;
|
|
39
49
|
/** Remove promise designed to track a connection attempt in progress */
|
|
40
50
|
removeConnectingInProgressPromise(wsKey: WsKey): void;
|
|
51
|
+
removeAuthenticationInProgressPromise(wsKey: WsKey): void;
|
|
41
52
|
isWsOpen(key: WsKey): boolean;
|
|
42
53
|
getConnectionState(key: WsKey): WsConnectionStateEnum;
|
|
43
54
|
setConnectionState(key: WsKey, state: WsConnectionStateEnum): void;
|
|
@@ -19,8 +19,9 @@ export function isDeepObjectMatch(object1, object2) {
|
|
|
19
19
|
}
|
|
20
20
|
return true;
|
|
21
21
|
}
|
|
22
|
-
const DEFERRED_PROMISE_REF = {
|
|
22
|
+
export const DEFERRED_PROMISE_REF = {
|
|
23
23
|
CONNECTION_IN_PROGRESS: 'CONNECTION_IN_PROGRESS',
|
|
24
|
+
AUTHENTICATION_IN_PROGRESS: 'AUTHENTICATION_IN_PROGRESS',
|
|
24
25
|
};
|
|
25
26
|
export class WsStore {
|
|
26
27
|
wsState = {};
|
|
@@ -73,6 +74,9 @@ export class WsStore {
|
|
|
73
74
|
this.get(key, true).ws = wsConnection;
|
|
74
75
|
return wsConnection;
|
|
75
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* deferred promises
|
|
79
|
+
*/
|
|
76
80
|
getDeferredPromise(wsKey, promiseRef) {
|
|
77
81
|
const storeForKey = this.get(wsKey);
|
|
78
82
|
if (!storeForKey) {
|
|
@@ -117,7 +121,13 @@ export class WsStore {
|
|
|
117
121
|
rejectDeferredPromise(wsKey, promiseRef, value, removeAfter) {
|
|
118
122
|
const promise = this.getDeferredPromise(wsKey, promiseRef);
|
|
119
123
|
if (promise?.reject) {
|
|
120
|
-
|
|
124
|
+
this.logger.trace(`rejectDeferredPromise(): rejecting ${wsKey}/${promiseRef}`, value);
|
|
125
|
+
if (typeof value === 'string') {
|
|
126
|
+
promise.reject(new Error(value));
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
promise.reject(value);
|
|
130
|
+
}
|
|
121
131
|
}
|
|
122
132
|
if (removeAfter) {
|
|
123
133
|
this.removeDeferredPromise(wsKey, promiseRef);
|
|
@@ -150,10 +160,11 @@ export class WsStore {
|
|
|
150
160
|
continue;
|
|
151
161
|
}
|
|
152
162
|
try {
|
|
163
|
+
this.logger.trace(`rejectAllDeferredPromises(): rejecting ${wsKey}/${promiseRef}/${reason}`);
|
|
153
164
|
this.rejectDeferredPromise(wsKey, promiseRef, reason, true);
|
|
154
165
|
}
|
|
155
166
|
catch (e) {
|
|
156
|
-
this.logger.error(
|
|
167
|
+
this.logger.error('rejectAllDeferredPromises(): Exception rejecting deferred promise', { wsKey: wsKey, reason, promiseRef, exception: e });
|
|
157
168
|
}
|
|
158
169
|
}
|
|
159
170
|
}
|
|
@@ -161,6 +172,9 @@ export class WsStore {
|
|
|
161
172
|
getConnectionInProgressPromise(wsKey) {
|
|
162
173
|
return this.getDeferredPromise(wsKey, DEFERRED_PROMISE_REF.CONNECTION_IN_PROGRESS);
|
|
163
174
|
}
|
|
175
|
+
getAuthenticationInProgressPromise(wsKey) {
|
|
176
|
+
return this.getDeferredPromise(wsKey, DEFERRED_PROMISE_REF.AUTHENTICATION_IN_PROGRESS);
|
|
177
|
+
}
|
|
164
178
|
/**
|
|
165
179
|
* Create a deferred promise designed to track a connection attempt in progress.
|
|
166
180
|
*
|
|
@@ -169,10 +183,16 @@ export class WsStore {
|
|
|
169
183
|
createConnectionInProgressPromise(wsKey, throwIfExists) {
|
|
170
184
|
return this.createDeferredPromise(wsKey, DEFERRED_PROMISE_REF.CONNECTION_IN_PROGRESS, throwIfExists);
|
|
171
185
|
}
|
|
186
|
+
createAuthenticationInProgressPromise(wsKey, throwIfExists) {
|
|
187
|
+
return this.createDeferredPromise(wsKey, DEFERRED_PROMISE_REF.AUTHENTICATION_IN_PROGRESS, throwIfExists);
|
|
188
|
+
}
|
|
172
189
|
/** Remove promise designed to track a connection attempt in progress */
|
|
173
190
|
removeConnectingInProgressPromise(wsKey) {
|
|
174
191
|
return this.removeDeferredPromise(wsKey, DEFERRED_PROMISE_REF.CONNECTION_IN_PROGRESS);
|
|
175
192
|
}
|
|
193
|
+
removeAuthenticationInProgressPromise(wsKey) {
|
|
194
|
+
return this.removeDeferredPromise(wsKey, DEFERRED_PROMISE_REF.AUTHENTICATION_IN_PROGRESS);
|
|
195
|
+
}
|
|
176
196
|
/* connection state */
|
|
177
197
|
isWsOpen(key) {
|
|
178
198
|
const existingConnection = this.getWs(key);
|
|
@@ -184,6 +204,7 @@ export class WsStore {
|
|
|
184
204
|
}
|
|
185
205
|
setConnectionState(key, state) {
|
|
186
206
|
this.get(key, true).connectionState = state;
|
|
207
|
+
this.get(key, true).connectionStateChangedAt = new Date();
|
|
187
208
|
}
|
|
188
209
|
isConnectionState(key, state) {
|
|
189
210
|
return this.getConnectionState(key) === state;
|
|
@@ -196,6 +217,21 @@ export class WsStore {
|
|
|
196
217
|
isConnectionAttemptInProgress(key) {
|
|
197
218
|
const isConnectionInProgress = this.isConnectionState(key, WsConnectionStateEnum.CONNECTING) ||
|
|
198
219
|
this.isConnectionState(key, WsConnectionStateEnum.RECONNECTING);
|
|
220
|
+
if (isConnectionInProgress) {
|
|
221
|
+
const wsState = this.get(key, true);
|
|
222
|
+
const stateLastChangedAt = wsState?.connectionStateChangedAt;
|
|
223
|
+
const stateChangedAtTimestamp = stateLastChangedAt?.getTime();
|
|
224
|
+
if (stateChangedAtTimestamp) {
|
|
225
|
+
const timestampNow = new Date().getTime();
|
|
226
|
+
const stateChangedTimeAgo = timestampNow - stateChangedAtTimestamp;
|
|
227
|
+
const stateChangeTimeout = 15000; // allow a max 15 second timeout since the last state change before assuming stuck;
|
|
228
|
+
if (stateChangedTimeAgo >= stateChangeTimeout) {
|
|
229
|
+
const msg = 'State change timed out, reconnect workflow stuck?';
|
|
230
|
+
this.logger.error(msg, { key, wsState });
|
|
231
|
+
this.setConnectionState(key, WsConnectionStateEnum.ERROR);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
199
235
|
return isConnectionInProgress;
|
|
200
236
|
}
|
|
201
237
|
/* subscribed topics */
|
|
@@ -209,7 +245,6 @@ export class WsStore {
|
|
|
209
245
|
}
|
|
210
246
|
return result;
|
|
211
247
|
}
|
|
212
|
-
// Since topics are objects we can't rely on the set to detect duplicates
|
|
213
248
|
/**
|
|
214
249
|
* Find matching "topic" request from the store
|
|
215
250
|
* @param key
|
|
@@ -217,9 +252,6 @@ export class WsStore {
|
|
|
217
252
|
* @returns
|
|
218
253
|
*/
|
|
219
254
|
getMatchingTopic(key, topic) {
|
|
220
|
-
// if (typeof topic === 'string') {
|
|
221
|
-
// return this.getMatchingTopic(key, { channel: topic });
|
|
222
|
-
// }
|
|
223
255
|
const allTopics = this.getTopics(key).values();
|
|
224
256
|
for (const storedTopic of allTopics) {
|
|
225
257
|
if (isDeepObjectMatch(topic, storedTopic)) {
|
|
@@ -228,13 +260,6 @@ export class WsStore {
|
|
|
228
260
|
}
|
|
229
261
|
}
|
|
230
262
|
addTopic(key, topic) {
|
|
231
|
-
// if (typeof topic === 'string') {
|
|
232
|
-
// return this.addTopic(key, {
|
|
233
|
-
// instType: 'sp',
|
|
234
|
-
// channel: topic,
|
|
235
|
-
// instId: 'default',
|
|
236
|
-
// };
|
|
237
|
-
// }
|
|
238
263
|
// Check for duplicate topic. If already tracked, don't store this one
|
|
239
264
|
const existingTopic = this.getMatchingTopic(key, topic);
|
|
240
265
|
if (existingTopic) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WsStore.js","sourceRoot":"","sources":["../../../../src/lib/websocket/WsStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAGL,qBAAqB,GAEtB,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAgB,EAAE,OAAgB;IAClE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC/D,OAAO,OAAO,KAAK,OAAO,CAAC;IAC7B,CAAC;IAED,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC/D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAI,OAAe,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,MAAM,GAAI,OAAe,CAAC,GAAG,CAAC,CAAC;QAErC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,oBAAoB,GAAG;
|
|
1
|
+
{"version":3,"file":"WsStore.js","sourceRoot":"","sources":["../../../../src/lib/websocket/WsStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,8 @@ export declare enum WsConnectionStateEnum {
|
|
|
5
5
|
CONNECTING = 1,
|
|
6
6
|
CONNECTED = 2,
|
|
7
7
|
CLOSING = 3,
|
|
8
|
-
RECONNECTING = 4
|
|
8
|
+
RECONNECTING = 4,
|
|
9
|
+
ERROR = 5
|
|
9
10
|
}
|
|
10
11
|
export interface DeferredPromise<TSuccess = any, TError = any> {
|
|
11
12
|
resolve?: (value: TSuccess) => TSuccess;
|
|
@@ -14,12 +15,14 @@ export interface DeferredPromise<TSuccess = any, TError = any> {
|
|
|
14
15
|
}
|
|
15
16
|
export interface WSConnectedResult {
|
|
16
17
|
wsKey: string;
|
|
18
|
+
ws: WebSocket;
|
|
17
19
|
}
|
|
18
20
|
export interface WsStoredState<TWSTopicSubscribeEvent extends string | object> {
|
|
19
21
|
/** The currently active websocket connection */
|
|
20
22
|
ws?: WebSocket;
|
|
21
23
|
/** The current lifecycle state of the connection (enum) */
|
|
22
24
|
connectionState?: WsConnectionStateEnum;
|
|
25
|
+
connectionStateChangedAt?: Date;
|
|
23
26
|
/** A timer that will send an upstream heartbeat (ping) when it expires */
|
|
24
27
|
activePingTimer?: ReturnType<typeof setTimeout> | undefined;
|
|
25
28
|
/** A timer tracking that an upstream heartbeat was sent, expecting a reply before it expires */
|
|
@@ -35,12 +38,16 @@ export interface WsStoredState<TWSTopicSubscribeEvent extends string | object> {
|
|
|
35
38
|
/**
|
|
36
39
|
* All the topics we are expected to be subscribed to on this connection (and we automatically resubscribe to if the connection drops)
|
|
37
40
|
*
|
|
38
|
-
* A "Set" and a deep-object-match are used to ensure we only subscribe to a
|
|
41
|
+
* A "Set" and a deep-object-match are used to ensure we only subscribe to a
|
|
42
|
+
* topic once (tracking a list of unique topics we're expected to be connected to)
|
|
39
43
|
*/
|
|
40
44
|
subscribedTopics: Set<TWSTopicSubscribeEvent>;
|
|
41
45
|
/** Whether this connection has completed authentication (only applies to private connections) */
|
|
42
46
|
isAuthenticated?: boolean;
|
|
43
|
-
/**
|
|
47
|
+
/**
|
|
48
|
+
* Whether this connection has completed authentication before for the Websocket API, so it k
|
|
49
|
+
* nows to automatically reauth if reconnected
|
|
50
|
+
*/
|
|
44
51
|
didAuthWSAPI?: boolean;
|
|
45
52
|
/** To reauthenticate on the WS API, which channel do we send to? */
|
|
46
53
|
WSAPIAuthChannel?: string;
|