@xsolla/payment-client-core 0.2.68 → 0.2.70
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/esm2022/lib/core/web-socket/centrifugo-web-socket.service.mjs +9 -2
- package/esm2022/lib/core/web-socket/nchan-web-socket.service.mjs +17 -3
- package/esm2022/lib/core/web-socket/web-socket.factory.mjs +1 -2
- package/fesm2022/xsolla-payment-client-core.mjs +24 -4
- package/fesm2022/xsolla-payment-client-core.mjs.map +1 -1
- package/lib/core/web-socket/nchan-web-socket.service.d.ts +1 -1
- package/package.json +1 -1
- package/xsolla-payment-client-core-0.2.70.tgz +0 -0
- package/xsolla-payment-client-core-0.2.68.tgz +0 -0
|
@@ -23,7 +23,7 @@ export class CentrifugoWebSocketService {
|
|
|
23
23
|
}
|
|
24
24
|
async open(url, channel) {
|
|
25
25
|
if (url === this.url && channel === this.channel) {
|
|
26
|
-
|
|
26
|
+
this.close();
|
|
27
27
|
}
|
|
28
28
|
try {
|
|
29
29
|
this.url = url;
|
|
@@ -43,6 +43,8 @@ export class CentrifugoWebSocketService {
|
|
|
43
43
|
return;
|
|
44
44
|
}
|
|
45
45
|
this.connection?.disconnect();
|
|
46
|
+
this.url = '';
|
|
47
|
+
this.channel = '';
|
|
46
48
|
}
|
|
47
49
|
get messages$() {
|
|
48
50
|
return (this.incomingMessages$
|
|
@@ -56,12 +58,14 @@ export class CentrifugoWebSocketService {
|
|
|
56
58
|
.asObservable()
|
|
57
59
|
.subscribe(next);
|
|
58
60
|
}
|
|
61
|
+
/* istanbul ignore next */
|
|
59
62
|
clearReconnectionTimer() {
|
|
60
63
|
if (this.reconnectionTimerId) {
|
|
61
64
|
clearTimeout(this.reconnectionTimerId);
|
|
62
65
|
this.reconnectionTimerId = null;
|
|
63
66
|
}
|
|
64
67
|
}
|
|
68
|
+
/* istanbul ignore next */
|
|
65
69
|
setFirstReconnectionTimeout() {
|
|
66
70
|
const min = CentrifugoWebSocketService.timeoutsMs.reconnection -
|
|
67
71
|
CentrifugoWebSocketService.timeoutsMs.reconnectionMaxDeviation;
|
|
@@ -70,14 +74,17 @@ export class CentrifugoWebSocketService {
|
|
|
70
74
|
this.reconnectionTimeoutMs =
|
|
71
75
|
Math.floor(Math.random() * (max - min + 1)) + min;
|
|
72
76
|
}
|
|
77
|
+
/* istanbul ignore next */
|
|
73
78
|
incrementReconnectionTimeout() {
|
|
74
79
|
this.reconnectionTimeoutMs =
|
|
75
80
|
this.reconnectionTimeoutMs *
|
|
76
81
|
CentrifugoWebSocketService.reconnectionTimeoutIncrementFactor;
|
|
77
82
|
}
|
|
83
|
+
/* istanbul ignore next */
|
|
78
84
|
async getCentrifugoClient() {
|
|
79
85
|
return import('centrifuge').then((module) => module.Centrifuge);
|
|
80
86
|
}
|
|
87
|
+
/* istanbul ignore next */
|
|
81
88
|
async createConnection(url, channel) {
|
|
82
89
|
if (this.isConnectionOpen || this.isConnecting) {
|
|
83
90
|
return;
|
|
@@ -197,4 +204,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
197
204
|
providedIn: 'root',
|
|
198
205
|
}]
|
|
199
206
|
}], ctorParameters: () => [{ type: i1.ElkLoggerService }] });
|
|
200
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VudHJpZnVnby13ZWItc29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS93ZWItc29ja2V0L2NlbnRyaWZ1Z28td2ViLXNvY2tldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBU3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFFL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7OztBQUtwRSxNQUFNLE9BQU8sMEJBQTBCO2FBQ2QsdUNBQWtDLEdBQUcsQ0FBQyxBQUFKLENBQUs7YUFJdEMsZUFBVSxHQUFHO1FBQ25DLFlBQVksRUFBRSxJQUFJO1FBQ2xCLHdCQUF3QixFQUFFLElBQUk7S0FDL0IsQUFIaUMsQ0FHaEM7SUFzQkYsWUFBb0MsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUEzQi9ELFNBQUksR0FBRyxtQkFBbUIsQ0FBQyxVQUFVLENBQUM7UUFRckMsd0JBQW1CLEdBQXlDLElBQUksQ0FBQztRQU9qRSxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFLWixzQkFBaUIsR0FDaEMsSUFBSSxPQUFPLEVBQXNCLENBQUM7UUFFbkIsdUNBQWtDLEdBQ2pELElBQUksT0FBTyxFQUFRLENBQUM7SUFFbUQsQ0FBQztJQUVuRSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQVcsRUFB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Q0FBQyxvQkFBb0IsRUFDekIsQ0FBQztZQUNELE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1FBQzVDLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOzhHQXJSVSwwQkFBMEI7a0hBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzsyRkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgdHlwZSB7XG4gIENlbnRyaWZ1Z2UsXG4gIERpc2Nvbm5lY3RlZENvbnRleHQsXG4gIFB1YmxpY2F0aW9uQ29udGV4dCxcbiAgU3Vic2NyaXB0aW9uIGFzIENlbnRyaWZ1Z2VTdWJzY3JpcHRpb24sXG59IGZyb20gJ2NlbnRyaWZ1Z2UnO1xuaW1wb3J0IHsgU3RyZWFtUG9zaXRpb24sIFN1YnNjcmlwdGlvbk9wdGlvbnMgfSBmcm9tICdjZW50cmlmdWdlL2J1aWxkL3R5cGVzJztcbmltcG9ydCB7IEVsa0xvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi9leGNlcHRpb25zLWhhbmRsaW5nL2Vsay9lbGstbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgV3NFcnJvciB9IGZyb20gJy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZXJyb3JzL3dzLWVycm9yLmNsYXNzJztcbmltcG9ydCB7IEVycm9yVGFncyB9IGZyb20gJy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZXJyb3JzL2Vsay1lcnJvci10eXBlcy5lbnVtJztcbmltcG9ydCB7IFdlYlNvY2tldENsaWVudCB9IGZyb20gJy4vd2ViLXNvY2tldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgV2ViU29ja2V0Q2xpZW50VHlwZSB9IGZyb20gJy4vd2ViLXNvY2tldC1jbGllbnQtdHlwZS5lbnVtJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENlbnRyaWZ1Z29XZWJTb2NrZXRTZXJ2aWNlIGltcGxlbWVudHMgV2ViU29ja2V0Q2xpZW50IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSByZWNvbm5lY3Rpb25UaW1lb3V0SW5jcmVtZW50RmFjdG9yID0gMjtcblxuICBwdWJsaWMgdHlwZSA9IFdlYlNvY2tldENsaWVudFR5cGUuY2VudHJpZnVnbztcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSB0aW1lb3V0c01zID0ge1xuICAgIHJlY29ubmVjdGlvbjogMTAwMCxcbiAgICByZWNvbm5lY3Rpb25NYXhEZXZpYXRpb246IDEwMDAsXG4gIH07XG5cbiAgcHJpdmF0ZSByZWNvbm5lY3Rpb25UaW1lb3V0TXMhOiBudW1iZXI7XG4gIHByaXZhdGUgcmVjb25uZWN0aW9uVGltZXJJZDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IG9wZW5Db25uZWN0aW9uVGltZXJJZDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgY29ubmVjdGlvbiE6IENlbnRyaWZ1Z2U7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uITogQ2VudHJpZnVnZVN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25Qb3NpdGlvbj86IFN0cmVhbVBvc2l0aW9uO1xuICBwcml2YXRlIGlzQ29ubmVjdGlvbk9wZW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBpc0Nvbm5lY3RpbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSB1cmwhOiBzdHJpbmc7XG4gIHByaXZhdGUgY2hhbm5lbCE6IHN0cmluZztcbiAgcHJpdmF0ZSBwcmV2U3Vic2NyaWJlZENoYW5uZWw/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpbmNvbWluZ01lc3NhZ2VzJDogU3ViamVjdDxQdWJsaWNhdGlvbkNvbnRleHQ+ID1cbiAgICBuZXcgU3ViamVjdDxQdWJsaWNhdGlvbkNvbnRleHQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdWNjZXNzZnVsUmVjb25uZWN0aW9uRXZlbnRzUHJveHkkOiBTdWJqZWN0PHZvaWQ+ID1cbiAgICBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGVsa0xvZ2dlclNlcnZpY2U6IEVsa0xvZ2dlclNlcnZpY2UpIHt9XG5cbiAgcHVibGljIGFzeW5jIG9wZW4odXJsOiBzdHJpbmcsIGNoYW5uZWw6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh1cmwgPT09IHRoaXMudXJsICYmIGNoYW5uZWwgPT09IHRoaXMuY2hhbm5lbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB0aGlzLnVybCA9IHVybDtcbiAgICAgIHRoaXMuY2hhbm5lbCA9IGNoYW5uZWw7XG4gICAgICBhd2FpdCB0aGlzLmNyZWF0ZUNvbm5lY3Rpb24odXJsLCBjaGFubmVsKTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBlcnJvciBpcyB1bmtub3duXG4gICAgICBjb25zdCBtZXNzYWdlID0gKGVycm9yPy5tZXNzYWdlIHx8IGVycm9yKSBhcyBzdHJpbmc7XG4gICAgICBjb25zdCB1bmtub3duRXJyb3IgPSBuZXcgV3NFcnJvcihcbiAgICAgICAgYHVua25vd24gd2Vic29ja2V0IGVycm9yOiAke21lc3NhZ2V9YCxcbiAgICAgICAgY2hhbm5lbFxuICAgICAgKTtcblxuICAgICAgdGhpcy5lbGtMb2dnZXJTZXJ2aWNlLmhhbmRsZUVycm9yKHVua25vd25FcnJvcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJSZWNvbm5lY3Rpb25UaW1lcigpO1xuXG4gICAgaWYgKCF0aGlzLmlzQ29ubmVjdGlvbk9wZW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNvbm5lY3Rpb24/LmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbWVzc2FnZXMkKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuaW5jb21pbmdNZXNzYWdlcyRcbiAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgIC8vIGV2ZW50IGRvbid0IHJlc3BlY3QgdHlwZSBmcm9tIGFyZ3VtZW50LCBpdCdzIHdlaXJkXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLXJldHVyblxuICAgICAgICAucGlwZShtYXAoKGV2ZW50KSA9PiBldmVudC5kYXRhKSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN1YnNjcmliZU9uU3VjY2Vzc2Z1bFJlY29ubmVjdGlvbihuZXh0PzogKCkgPT4gdm9pZCk6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuc3VjY2Vzc2Z1bFJlY29ubmVjdGlvbkV2ZW50c1Byb3h5JFxuICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAuc3Vic2NyaWJlKG5leHQpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhclJlY29ubmVjdGlvblRpbWVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlY29ubmVjdGlvblRpbWVySWQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnJlY29ubmVjdGlvblRpbWVySWQpO1xuICAgICAgdGhpcy5yZWNvbm5lY3Rpb25UaW1lcklkID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEZpcnN0UmVjb25uZWN0aW9uVGltZW91dCgpOiB2b2lkIHtcbiAgICBjb25zdCBtaW4gPVxuICAgICAgQ2VudHJpZnVnb1dlYlNvY2tldFNlcnZpY2UudGltZW91dHNNcy5yZWNvbm5lY3Rpb24gLVxuICAgICAgQ2VudHJpZnVnb1dlYlNvY2tldFNlcnZpY2UudGltZW91dHNNcy5yZWNvbm5lY3Rpb25NYXhEZXZpYXRpb247XG4gICAgY29uc3QgbWF4ID1cbiAgICAgIENlbnRyaWZ1Z29XZWJTb2NrZXRTZXJ2aWNlLnRpbWVvdXRzTXMucmVjb25uZWN0aW9uICtcbiAgICAgIENlbnRyaWZ1Z29XZWJTb2NrZXRTZXJ2aWNlLnRpbWVvdXRzTXMucmVjb25uZWN0aW9uTWF4RGV2aWF0aW9uO1xuICAgIHRoaXMucmVjb25uZWN0aW9uVGltZW91dE1zID1cbiAgICAgIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIChtYXggLSBtaW4gKyAxKSkgKyBtaW47XG4gIH1cblxuICBwcml2YXRlIGluY3JlbWVudFJlY29ubmVjdGlvblRpbWVvdXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZWNvbm5lY3Rpb25UaW1lb3V0TXMgPVxuICAgICAgdGhpcy5yZWNvbm5lY3Rpb25UaW1lb3V0TXMgKlxuICAgICAgQ2VudHJpZnVnb1dlYlNvY2tldFNlcnZpY2UucmVjb25uZWN0aW9uVGltZW91dEluY3JlbWVudEZhY3RvcjtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0Q2VudHJpZnVnb0NsaWVudCgpOiBQcm9taXNlPHR5cGVvZiBDZW50cmlmdWdlPiB7XG4gICAgcmV0dXJuIGltcG9ydCgnY2VudHJpZnVnZScpLnRoZW4oKG1vZHVsZSkgPT4gbW9kdWxlLkNlbnRyaWZ1Z2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjcmVhdGVDb25uZWN0aW9uKFxuICAgIHVybD86IHN0cmluZyxcbiAgICBjaGFubmVsPzogc3RyaW5nXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmlzQ29ubmVjdGlvbk9wZW4gfHwgdGhpcy5pc0Nvbm5lY3RpbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgY29uc3QgQ2VudHJpZnVnZUNsaWVudCA9IGF3YWl0IHRoaXMuZ2V0Q2VudHJpZnVnb0NsaWVudCgpO1xuXG4gICAgY29uc3Qgd2Vic29ja2V0VXJsID0gdXJsID8/IHRoaXMudXJsO1xuICAgIGNvbnN0IHdlYnNvY2tldENoYW5uZWwgPSBjaGFubmVsID8/IHRoaXMuY2hhbm5lbDtcblxuICAgIHRoaXMuY29ubmVjdGlvbiA9IG5ldyBDZW50cmlmdWdlQ2xpZW50KHdlYnNvY2tldFVybCwge1xuICAgICAgZGVidWc6IHRydWUsXG4gICAgICBtYXhSZWNvbm5lY3REZWxheTogMTUwMCxcbiAgICAgIG1heFNlcnZlclBpbmdEZWxheTogMTAwMCxcbiAgICB9KTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLmNvbm5lY3Rpb25cbiAgICAgICAgLm9uKCdjb25uZWN0aW5nJywgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNDb25uZWN0aW5nID0gdHJ1ZTtcbiAgICAgICAgfSlcbiAgICAgICAgLm9uKCdjb25uZWN0ZWQnLCAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5vbkNvbm5lY3QoKTtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5vbignZGlzY29ubmVjdGVkJywgKGN0eCkgPT4ge1xuICAgICAgICAgIHRoaXMub25EaXNjb25uZWN0KGN0eCwgd2Vic29ja2V0Q2hhbm5lbCk7XG4gICAgICAgICAgcmVqZWN0KCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5vbignZXJyb3InLCAoY3R4KSA9PiB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBjb2RlICR7Y3R4LmVycm9yLmNvZGV9IC0gJHtjdHguZXJyb3IubWVzc2FnZX1gO1xuXG4gICAgICAgICAgdGhpcy5lbGtMb2dnZXJTZXJ2aWNlLmxvZyhcbiAgICAgICAgICAgIGBjb25uZWN0aW9uIGVycm9yOiAke21lc3NhZ2V9YCxcbiAgICAgICAgICAgIFtFcnJvclRhZ3MuV1NdLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjaGFubmVsOiB3ZWJzb2NrZXRDaGFubmVsLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jb25uZWN0KCk7XG5cbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5jb25uZWN0aW9uLm5ld1N1YnNjcmlwdGlvbihcbiAgICAgICAgd2Vic29ja2V0Q2hhbm5lbCxcbiAgICAgICAgdGhpcy5nZXRTdWJzY3JpcHRpb25PcHRpb25zKHdlYnNvY2tldENoYW5uZWwpXG4gICAgICApO1xuXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvblxuICAgICAgICAub24oJ3N1YnNjcmliZWQnLCAoY3R4KSA9PiB7XG4gICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25Qb3NpdGlvbiA9IGN0eC5zdHJlYW1Qb3NpdGlvbjtcbiAgICAgICAgICB0aGlzLnByZXZTdWJzY3JpYmVkQ2hhbm5lbCA9IHdlYnNvY2tldENoYW5uZWw7XG4gICAgICAgIH0pXG4gICAgICAgIC5vbigncHVibGljYXRpb24nLCAoY3R4KSA9PiB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGN0eC5kYXRhIGFzIHN0cmluZztcblxuICAgICAgICAgIHRoaXMuZWxrTG9nZ2VyU2VydmljZS5sb2coXG4gICAgICAgICAgICBgd2Vic29ja2V0IG1lc3NhZ2UgcmVjZWl2ZWQ6ICR7bWVzc2FnZX1gLFxuICAgICAgICAgICAgW0Vycm9yVGFncy5XU10sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNoYW5uZWw6IHdlYnNvY2tldENoYW5uZWwsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHRoaXMuaW5jb21pbmdNZXNzYWdlcyQubmV4dChjdHgpO1xuICAgICAgICB9KVxuICAgICAgICAub24oJ2Vycm9yJywgKGN0eCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgY29kZSAke2N0eC5lcnJvci5jb2RlfSAtICR7Y3R4LmVycm9yLm1lc3NhZ2V9YDtcblxuICAgICAgICAgIHRoaXMuZWxrTG9nZ2VyU2VydmljZS5sb2coXG4gICAgICAgICAgICBgc3Vic2NyaXB0aW9uIGVycm9yOiAke21lc3NhZ2V9YCxcbiAgICAgICAgICAgIFtFcnJvclRhZ3MuV1NdLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjaGFubmVsOiB3ZWJzb2NrZXRDaGFubmVsLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH0pXG4gICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb25Db25uZWN0KCk6IHZvaWQge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLm9wZW5Db25uZWN0aW9uVGltZXJJZCk7XG4gICAgdGhpcy5pc0Nvbm5lY3RpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmlzQ29ubmVjdGlvbk9wZW4gPSB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkRpc2Nvbm5lY3QoXG4gICAgY3R4OiBEaXNjb25uZWN0ZWRDb250ZXh0LFxuICAgIHdlYnNvY2tldENoYW5uZWw6IHN0cmluZ1xuICApOiB2b2lkIHtcbiAgICB0aGlzLmlzQ29ubmVjdGluZyA9IGZhbHNlO1xuICAgIHRoaXMuaXNDb25uZWN0aW9uT3BlbiA9IGZhbHNlO1xuXG4gICAgLyogSWYgY29ubmVjdGlvbiBlcnJvciwgY2F1c2UgYW55IGNvbm5lY3Rpb24gZXJyb3IgaXNuJ3QgMCAqL1xuICAgIGlmIChjdHguY29kZSAhPT0gMCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBjb2RlICR7Y3R4LmNvZGV9IC0gJHtjdHgucmVhc29ufWA7XG5cbiAgICAgIHRoaXMuZWxrTG9nZ2VyU2VydmljZS5sb2coXG4gICAgICAgIGBkaXNjb25uZWN0ZWQgZXJyb3I6ICR7bWVzc2FnZX1gLFxuICAgICAgICBbRXJyb3JUYWdzLldTXSxcbiAgICAgICAge1xuICAgICAgICAgIGNoYW5uZWw6IHdlYnNvY2tldENoYW5uZWwsXG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICAgIChhc3luYyAoKSA9PiB7XG4gICAgICAgIGF3YWl0IHRoaXMud2FpdFdoaWxlTm90UmVjb25uZWN0KCk7XG4gICAgICB9KSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVjb25uZWN0KCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRoaXMuY2xlYXJSZWNvbm5lY3Rpb25UaW1lcigpO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICB0aGlzLnJlY29ubmVjdGlvblRpbWVySWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5jcmVhdGVDb25uZWN0aW9uKClcbiAgICAgICAgICAudGhlbigoKSA9PiByZXNvbHZlKHRydWUpKVxuICAgICAgICAgIC5jYXRjaCgoKSA9PiByZXNvbHZlKGZhbHNlKSk7XG4gICAgICAgIHRoaXMuaW5jcmVtZW50UmVjb25uZWN0aW9uVGltZW91dCgpO1xuICAgICAgfSwgdGhpcy5yZWNvbm5lY3Rpb25UaW1lb3V0TXMpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB3YWl0V2hpbGVOb3RSZWNvbm5lY3QoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jbGVhclJlY29ubmVjdGlvblRpbWVyKCk7XG4gICAgdGhpcy5zZXRGaXJzdFJlY29ubmVjdGlvblRpbWVvdXQoKTtcblxuICAgIGxldCBpc0Nvbm5lY3RlZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgYmVmb3JlVGltZXIgPSBwZXJmb3JtYW5jZS5ub3coKTtcblxuICAgIHdoaWxlICghaXNDb25uZWN0ZWQpIHtcbiAgICAgIGlzQ29ubmVjdGVkID0gYXdhaXQgdGhpcy5yZWNvbm5lY3QoKTtcbiAgICB9XG5cbiAgICBjb25zdCBhZnRlclRpbWVyID0gcGVyZm9ybWFuY2Uubm93KCk7XG5cbiAgICBjb25zdCB0aW1lckR1cmF0aW9uID0gYWZ0ZXJUaW1lciAtIGJlZm9yZVRpbWVyO1xuXG4gICAgdGhpcy5lbGtMb2dnZXJTZXJ2aWNlLmxvZyhcbiAgICAgIGBmYWxsYmFjayB0byByZWNvbm5lY3Rpb24gdGltZXI6IGR1cmF0aW9uICR7dGltZXJEdXJhdGlvbn1tc2AsXG4gICAgICBbRXJyb3JUYWdzLldTXSxcbiAgICAgIHtcbiAgICAgICAgY2hhbm5lbDogdGhpcy5jaGFubmVsLFxuICAgICAgfVxuICAgICk7XG5cbiAgICB0aGlzLnN1Y2Nlc3NmdWxSZWNvbm5lY3Rpb25FdmVudHNQcm94eSQubmV4dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTdWJzY3JpcHRpb25PcHRpb25zKFxuICAgIHdlYnNvY2tldENoYW5uZWw6IHN0cmluZ1xuICApOiBQYXJ0aWFsPFN1YnNjcmlwdGlvbk9wdGlvbnM+IHtcbiAgICBjb25zdCBvcHRpb25zOiBQYXJ0aWFsPFN1YnNjcmlwdGlvbk9wdGlvbnM+ID0ge1xuICAgICAgcmVjb3ZlcmFibGU6IHRydWUsXG4gICAgfTtcblxuICAgIGlmIChcbiAgICAgIHdlYnNvY2tldENoYW5uZWwgPT09IHRoaXMucHJldlN1YnNjcmliZWRDaGFubmVsICYmXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvblBvc2l0aW9uXG4gICAgKSB7XG4gICAgICBvcHRpb25zLnNpbmNlID0gdGhpcy5zdWJzY3JpcHRpb25Qb3NpdGlvbjtcbiAgICB9XG5cbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfVxufVxuIl19
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VudHJpZnVnby13ZWItc29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS93ZWItc29ja2V0L2NlbnRyaWZ1Z28td2ViLXNvY2tldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBU3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFFL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7OztBQUtwRSxNQUFNLE9BQU8sMEJBQTBCO2FBQ2QsdUNBQWtDLEdBQUcsQ0FBQyxBQUFKLENBQUs7YUFJdEMsZUFBVSxHQUFHO1FBQ25DLFlBQVksRUFBRSxJQUFJO1FBQ2xCLHdCQUF3QixFQUFFLElBQUk7S0FDL0IsQUFIaUMsQ0FHaEM7SUFzQkYsWUFBb0MsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUEzQi9ELFNBQUksR0FBRyxtQkFBbUIsQ0FBQyxVQUFVLENBQUM7UUFRckMsd0JBQW1CLEdBQXlDLElBQUksQ0FBQztRQU9qRSxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFLWixzQkFBaUIsR0FDaEMsSUFBSSxPQUFPLEVBQXNCLENBQUM7UUFFbkIsdUNBQWtDLEdBQ2pELElBQUksT0FBTyxFQUFRLENBQUM7SUFFbUQsQ0FBQztJQUVuRSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQVcsRUFB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LElBQUksRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFTyxzQkFBc0IsQ0FDNUIsZ0JBQXdCO1FBRXhCLE1BQU0sT0FBTyxHQUFpQztZQUM1QyxXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDO1FBRUYsSUFDRSxnQkFBZ0IsS0FBSyxJQUFJLENBQUMscUJBQXFCO1lBQy9DLElBQUksQ0FBQyxvQkFBb0IsRUFDekIsQ0FBQztZQUNELE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1FBQzVDLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOzhHQTdSVSwwQkFBMEI7a0hBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzsyRkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgdHlwZSB7XG4gIENlbnRyaWZ1Z2UsXG4gIERpc2Nvbm5lY3RlZENvbnRleHQsXG4gIFB1YmxpY2F0aW9uQ29udGV4dCxcbiAgU3Vic2NyaXB0aW9uIGFzIENlbnRyaWZ1Z2VTdWJzY3JpcHRpb24sXG59IGZyb20gJ2NlbnRyaWZ1Z2UnO1xuaW1wb3J0IHsgU3RyZWFtUG9zaXRpb24sIFN1YnNjcmlwdGlvbk9wdGlvbnMgfSBmcm9tICdjZW50cmlmdWdlL2J1aWxkL3R5cGVzJztcbmltcG9ydCB7IEVsa0xvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi9leGNlcHRpb25zLWhhbmRsaW5nL2Vsay9lbGstbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgV3NFcnJvciB9IGZyb20gJy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZXJyb3JzL3dzLWVycm9yLmNsYXNzJztcbmltcG9ydCB7IEVycm9yVGFncyB9IGZyb20gJy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZXJyb3JzL2Vsay1lcnJvci10eXBlcy5lbnVtJztcbmltcG9ydCB7IFdlYlNvY2tldENsaWVudCB9IGZyb20gJy4vd2ViLXNvY2tldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgV2ViU29ja2V0Q2xpZW50VHlwZSB9IGZyb20gJy4vd2ViLXNvY2tldC1jbGllbnQtdHlwZS5lbnVtJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENlbnRyaWZ1Z29XZWJTb2NrZXRTZXJ2aWNlIGltcGxlbWVudHMgV2ViU29ja2V0Q2xpZW50IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSByZWNvbm5lY3Rpb25UaW1lb3V0SW5jcmVtZW50RmFjdG9yID0gMjtcblxuICBwdWJsaWMgdHlwZSA9IFdlYlNvY2tldENsaWVudFR5cGUuY2VudHJpZnVnbztcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSB0aW1lb3V0c01zID0ge1xuICAgIHJlY29ubmVjdGlvbjogMTAwMCxcbiAgICByZWNvbm5lY3Rpb25NYXhEZXZpYXRpb246IDEwMDAsXG4gIH07XG5cbiAgcHJpdmF0ZSByZWNvbm5lY3Rpb25UaW1lb3V0TXMhOiBudW1iZXI7XG4gIHByaXZhdGUgcmVjb25uZWN0aW9uVGltZXJJZDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IG9wZW5Db25uZWN0aW9uVGltZXJJZDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgY29ubmVjdGlvbiE6IENlbnRyaWZ1Z2U7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uITogQ2VudHJpZnVnZVN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25Qb3NpdGlvbj86IFN0cmVhbVBvc2l0aW9uO1xuICBwcml2YXRlIGlzQ29ubmVjdGlvbk9wZW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBpc0Nvbm5lY3RpbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSB1cmwhOiBzdHJpbmc7XG4gIHByaXZhdGUgY2hhbm5lbCE6IHN0cmluZztcbiAgcHJpdmF0ZSBwcmV2U3Vic2NyaWJlZENoYW5uZWw/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpbmNvbWluZ01lc3NhZ2VzJDogU3ViamVjdDxQdWJsaWNhdGlvbkNvbnRleHQ+ID1cbiAgICBuZXcgU3ViamVjdDxQdWJsaWNhdGlvbkNvbnRleHQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdWNjZXNzZnVsUmVjb25uZWN0aW9uRXZlbnRzUHJveHkkOiBTdWJqZWN0PHZvaWQ+ID1cbiAgICBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGVsa0xvZ2dlclNlcnZpY2U6IEVsa0xvZ2dlclNlcnZpY2UpIHt9XG5cbiAgcHVibGljIGFzeW5jIG9wZW4odXJsOiBzdHJpbmcsIGNoYW5uZWw6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh1cmwgPT09IHRoaXMudXJsICYmIGNoYW5uZWwgPT09IHRoaXMuY2hhbm5lbCkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB0aGlzLnVybCA9IHVybDtcbiAgICAgIHRoaXMuY2hhbm5lbCA9IGNoYW5uZWw7XG4gICAgICBhd2FpdCB0aGlzLmNyZWF0ZUNvbm5lY3Rpb24odXJsLCBjaGFubmVsKTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBlcnJvciBpcyB1bmtub3duXG4gICAgICBjb25zdCBtZXNzYWdlID0gKGVycm9yPy5tZXNzYWdlIHx8IGVycm9yKSBhcyBzdHJpbmc7XG4gICAgICBjb25zdCB1bmtub3duRXJyb3IgPSBuZXcgV3NFcnJvcihcbiAgICAgICAgYHVua25vd24gd2Vic29ja2V0IGVycm9yOiAke21lc3NhZ2V9YCxcbiAgICAgICAgY2hhbm5lbFxuICAgICAgKTtcblxuICAgICAgdGhpcy5lbGtMb2dnZXJTZXJ2aWNlLmhhbmRsZUVycm9yKHVua25vd25FcnJvcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJSZWNvbm5lY3Rpb25UaW1lcigpO1xuXG4gICAgaWYgKCF0aGlzLmlzQ29ubmVjdGlvbk9wZW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNvbm5lY3Rpb24/LmRpc2Nvbm5lY3QoKTtcblxuICAgIHRoaXMudXJsID0gJyc7XG4gICAgdGhpcy5jaGFubmVsID0gJyc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1lc3NhZ2VzJCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmluY29taW5nTWVzc2FnZXMkXG4gICAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgICAvLyBldmVudCBkb24ndCByZXNwZWN0IHR5cGUgZnJvbSBhcmd1bWVudCwgaXQncyB3ZWlyZFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1yZXR1cm5cbiAgICAgICAgLnBpcGUobWFwKChldmVudCkgPT4gZXZlbnQuZGF0YSkpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJzY3JpYmVPblN1Y2Nlc3NmdWxSZWNvbm5lY3Rpb24obmV4dD86ICgpID0+IHZvaWQpOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzLnN1Y2Nlc3NmdWxSZWNvbm5lY3Rpb25FdmVudHNQcm94eSRcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnN1YnNjcmliZShuZXh0KTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHByaXZhdGUgY2xlYXJSZWNvbm5lY3Rpb25UaW1lcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNvbm5lY3Rpb25UaW1lcklkKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5yZWNvbm5lY3Rpb25UaW1lcklkKTtcbiAgICAgIHRoaXMucmVjb25uZWN0aW9uVGltZXJJZCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcHJpdmF0ZSBzZXRGaXJzdFJlY29ubmVjdGlvblRpbWVvdXQoKTogdm9pZCB7XG4gICAgY29uc3QgbWluID1cbiAgICAgIENlbnRyaWZ1Z29XZWJTb2NrZXRTZXJ2aWNlLnRpbWVvdXRzTXMucmVjb25uZWN0aW9uIC1cbiAgICAgIENlbnRyaWZ1Z29XZWJTb2NrZXRTZXJ2aWNlLnRpbWVvdXRzTXMucmVjb25uZWN0aW9uTWF4RGV2aWF0aW9uO1xuICAgIGNvbnN0IG1heCA9XG4gICAgICBDZW50cmlmdWdvV2ViU29ja2V0U2VydmljZS50aW1lb3V0c01zLnJlY29ubmVjdGlvbiArXG4gICAgICBDZW50cmlmdWdvV2ViU29ja2V0U2VydmljZS50aW1lb3V0c01zLnJlY29ubmVjdGlvbk1heERldmlhdGlvbjtcbiAgICB0aGlzLnJlY29ubmVjdGlvblRpbWVvdXRNcyA9XG4gICAgICBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluICsgMSkpICsgbWluO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcHJpdmF0ZSBpbmNyZW1lbnRSZWNvbm5lY3Rpb25UaW1lb3V0KCk6IHZvaWQge1xuICAgIHRoaXMucmVjb25uZWN0aW9uVGltZW91dE1zID1cbiAgICAgIHRoaXMucmVjb25uZWN0aW9uVGltZW91dE1zICpcbiAgICAgIENlbnRyaWZ1Z29XZWJTb2NrZXRTZXJ2aWNlLnJlY29ubmVjdGlvblRpbWVvdXRJbmNyZW1lbnRGYWN0b3I7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBwcml2YXRlIGFzeW5jIGdldENlbnRyaWZ1Z29DbGllbnQoKTogUHJvbWlzZTx0eXBlb2YgQ2VudHJpZnVnZT4ge1xuICAgIHJldHVybiBpbXBvcnQoJ2NlbnRyaWZ1Z2UnKS50aGVuKChtb2R1bGUpID0+IG1vZHVsZS5DZW50cmlmdWdlKTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlQ29ubmVjdGlvbihcbiAgICB1cmw/OiBzdHJpbmcsXG4gICAgY2hhbm5lbD86IHN0cmluZ1xuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5pc0Nvbm5lY3Rpb25PcGVuIHx8IHRoaXMuaXNDb25uZWN0aW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgIGNvbnN0IENlbnRyaWZ1Z2VDbGllbnQgPSBhd2FpdCB0aGlzLmdldENlbnRyaWZ1Z29DbGllbnQoKTtcblxuICAgIGNvbnN0IHdlYnNvY2tldFVybCA9IHVybCA/PyB0aGlzLnVybDtcbiAgICBjb25zdCB3ZWJzb2NrZXRDaGFubmVsID0gY2hhbm5lbCA/PyB0aGlzLmNoYW5uZWw7XG5cbiAgICB0aGlzLmNvbm5lY3Rpb24gPSBuZXcgQ2VudHJpZnVnZUNsaWVudCh3ZWJzb2NrZXRVcmwsIHtcbiAgICAgIGRlYnVnOiB0cnVlLFxuICAgICAgbWF4UmVjb25uZWN0RGVsYXk6IDE1MDAsXG4gICAgICBtYXhTZXJ2ZXJQaW5nRGVsYXk6IDEwMDAsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5jb25uZWN0aW9uXG4gICAgICAgIC5vbignY29ubmVjdGluZycsICgpID0+IHtcbiAgICAgICAgICB0aGlzLmlzQ29ubmVjdGluZyA9IHRydWU7XG4gICAgICAgIH0pXG4gICAgICAgIC5vbignY29ubmVjdGVkJywgKCkgPT4ge1xuICAgICAgICAgIHRoaXMub25Db25uZWN0KCk7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9KVxuICAgICAgICAub24oJ2Rpc2Nvbm5lY3RlZCcsIChjdHgpID0+IHtcbiAgICAgICAgICB0aGlzLm9uRGlzY29ubmVjdChjdHgsIHdlYnNvY2tldENoYW5uZWwpO1xuICAgICAgICAgIHJlamVjdCgpO1xuICAgICAgICB9KVxuICAgICAgICAub24oJ2Vycm9yJywgKGN0eCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgY29kZSAke2N0eC5lcnJvci5jb2RlfSAtICR7Y3R4LmVycm9yLm1lc3NhZ2V9YDtcblxuICAgICAgICAgIHRoaXMuZWxrTG9nZ2VyU2VydmljZS5sb2coXG4gICAgICAgICAgICBgY29ubmVjdGlvbiBlcnJvcjogJHttZXNzYWdlfWAsXG4gICAgICAgICAgICBbRXJyb3JUYWdzLldTXSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2hhbm5lbDogd2Vic29ja2V0Q2hhbm5lbCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9KVxuICAgICAgICAuY29ubmVjdCgpO1xuXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuY29ubmVjdGlvbi5uZXdTdWJzY3JpcHRpb24oXG4gICAgICAgIHdlYnNvY2tldENoYW5uZWwsXG4gICAgICAgIHRoaXMuZ2V0U3Vic2NyaXB0aW9uT3B0aW9ucyh3ZWJzb2NrZXRDaGFubmVsKVxuICAgICAgKTtcblxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25cbiAgICAgICAgLm9uKCdzdWJzY3JpYmVkJywgKGN0eCkgPT4ge1xuICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uUG9zaXRpb24gPSBjdHguc3RyZWFtUG9zaXRpb247XG4gICAgICAgICAgdGhpcy5wcmV2U3Vic2NyaWJlZENoYW5uZWwgPSB3ZWJzb2NrZXRDaGFubmVsO1xuICAgICAgICB9KVxuICAgICAgICAub24oJ3B1YmxpY2F0aW9uJywgKGN0eCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBjdHguZGF0YSBhcyBzdHJpbmc7XG5cbiAgICAgICAgICB0aGlzLmVsa0xvZ2dlclNlcnZpY2UubG9nKFxuICAgICAgICAgICAgYHdlYnNvY2tldCBtZXNzYWdlIHJlY2VpdmVkOiAke21lc3NhZ2V9YCxcbiAgICAgICAgICAgIFtFcnJvclRhZ3MuV1NdLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjaGFubmVsOiB3ZWJzb2NrZXRDaGFubmVsLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICB0aGlzLmluY29taW5nTWVzc2FnZXMkLm5leHQoY3R4KTtcbiAgICAgICAgfSlcbiAgICAgICAgLm9uKCdlcnJvcicsIChjdHgpID0+IHtcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYGNvZGUgJHtjdHguZXJyb3IuY29kZX0gLSAke2N0eC5lcnJvci5tZXNzYWdlfWA7XG5cbiAgICAgICAgICB0aGlzLmVsa0xvZ2dlclNlcnZpY2UubG9nKFxuICAgICAgICAgICAgYHN1YnNjcmlwdGlvbiBlcnJvcjogJHttZXNzYWdlfWAsXG4gICAgICAgICAgICBbRXJyb3JUYWdzLldTXSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2hhbm5lbDogd2Vic29ja2V0Q2hhbm5lbCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9KVxuICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9uQ29ubmVjdCgpOiB2b2lkIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5vcGVuQ29ubmVjdGlvblRpbWVySWQpO1xuICAgIHRoaXMuaXNDb25uZWN0aW5nID0gZmFsc2U7XG4gICAgdGhpcy5pc0Nvbm5lY3Rpb25PcGVuID0gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgb25EaXNjb25uZWN0KFxuICAgIGN0eDogRGlzY29ubmVjdGVkQ29udGV4dCxcbiAgICB3ZWJzb2NrZXRDaGFubmVsOiBzdHJpbmdcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5pc0Nvbm5lY3RpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmlzQ29ubmVjdGlvbk9wZW4gPSBmYWxzZTtcblxuICAgIC8qIElmIGNvbm5lY3Rpb24gZXJyb3IsIGNhdXNlIGFueSBjb25uZWN0aW9uIGVycm9yIGlzbid0IDAgKi9cbiAgICBpZiAoY3R4LmNvZGUgIT09IDApIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgY29kZSAke2N0eC5jb2RlfSAtICR7Y3R4LnJlYXNvbn1gO1xuXG4gICAgICB0aGlzLmVsa0xvZ2dlclNlcnZpY2UubG9nKFxuICAgICAgICBgZGlzY29ubmVjdGVkIGVycm9yOiAke21lc3NhZ2V9YCxcbiAgICAgICAgW0Vycm9yVGFncy5XU10sXG4gICAgICAgIHtcbiAgICAgICAgICBjaGFubmVsOiB3ZWJzb2NrZXRDaGFubmVsLFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICAoYXN5bmMgKCkgPT4ge1xuICAgICAgICBhd2FpdCB0aGlzLndhaXRXaGlsZU5vdFJlY29ubmVjdCgpO1xuICAgICAgfSkoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlY29ubmVjdCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB0aGlzLmNsZWFyUmVjb25uZWN0aW9uVGltZXIoKTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgdGhpcy5yZWNvbm5lY3Rpb25UaW1lcklkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY3JlYXRlQ29ubmVjdGlvbigpXG4gICAgICAgICAgLnRoZW4oKCkgPT4gcmVzb2x2ZSh0cnVlKSlcbiAgICAgICAgICAuY2F0Y2goKCkgPT4gcmVzb2x2ZShmYWxzZSkpO1xuICAgICAgICB0aGlzLmluY3JlbWVudFJlY29ubmVjdGlvblRpbWVvdXQoKTtcbiAgICAgIH0sIHRoaXMucmVjb25uZWN0aW9uVGltZW91dE1zKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgd2FpdFdoaWxlTm90UmVjb25uZWN0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuY2xlYXJSZWNvbm5lY3Rpb25UaW1lcigpO1xuICAgIHRoaXMuc2V0Rmlyc3RSZWNvbm5lY3Rpb25UaW1lb3V0KCk7XG5cbiAgICBsZXQgaXNDb25uZWN0ZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IGJlZm9yZVRpbWVyID0gcGVyZm9ybWFuY2Uubm93KCk7XG5cbiAgICB3aGlsZSAoIWlzQ29ubmVjdGVkKSB7XG4gICAgICBpc0Nvbm5lY3RlZCA9IGF3YWl0IHRoaXMucmVjb25uZWN0KCk7XG4gICAgfVxuXG4gICAgY29uc3QgYWZ0ZXJUaW1lciA9IHBlcmZvcm1hbmNlLm5vdygpO1xuXG4gICAgY29uc3QgdGltZXJEdXJhdGlvbiA9IGFmdGVyVGltZXIgLSBiZWZvcmVUaW1lcjtcblxuICAgIHRoaXMuZWxrTG9nZ2VyU2VydmljZS5sb2coXG4gICAgICBgZmFsbGJhY2sgdG8gcmVjb25uZWN0aW9uIHRpbWVyOiBkdXJhdGlvbiAke3RpbWVyRHVyYXRpb259bXNgLFxuICAgICAgW0Vycm9yVGFncy5XU10sXG4gICAgICB7XG4gICAgICAgIGNoYW5uZWw6IHRoaXMuY2hhbm5lbCxcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5zdWNjZXNzZnVsUmVjb25uZWN0aW9uRXZlbnRzUHJveHkkLm5leHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3Vic2NyaXB0aW9uT3B0aW9ucyhcbiAgICB3ZWJzb2NrZXRDaGFubmVsOiBzdHJpbmdcbiAgKTogUGFydGlhbDxTdWJzY3JpcHRpb25PcHRpb25zPiB7XG4gICAgY29uc3Qgb3B0aW9uczogUGFydGlhbDxTdWJzY3JpcHRpb25PcHRpb25zPiA9IHtcbiAgICAgIHJlY292ZXJhYmxlOiB0cnVlLFxuICAgIH07XG5cbiAgICBpZiAoXG4gICAgICB3ZWJzb2NrZXRDaGFubmVsID09PSB0aGlzLnByZXZTdWJzY3JpYmVkQ2hhbm5lbCAmJlxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25Qb3NpdGlvblxuICAgICkge1xuICAgICAgb3B0aW9ucy5zaW5jZSA9IHRoaXMuc3Vic2NyaXB0aW9uUG9zaXRpb247XG4gICAgfVxuXG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -6,6 +6,7 @@ import * as i0 from "@angular/core";
|
|
|
6
6
|
export class NchanWebSocketService {
|
|
7
7
|
constructor() {
|
|
8
8
|
this.type = WebSocketClientType.nchan;
|
|
9
|
+
this.openPromise = null;
|
|
9
10
|
this.reconnectionTimerId = null;
|
|
10
11
|
this.incomingMessages$ = new Subject();
|
|
11
12
|
this.successfulReconnectionEventsProxy$ = new Subject();
|
|
@@ -15,16 +16,21 @@ export class NchanWebSocketService {
|
|
|
15
16
|
reconnection: 1500,
|
|
16
17
|
reconnectionMaxDeviation: 1500,
|
|
17
18
|
}; }
|
|
18
|
-
async open() {
|
|
19
|
+
async open(url) {
|
|
20
|
+
if (url === this.url) {
|
|
21
|
+
this.close();
|
|
22
|
+
}
|
|
19
23
|
if (this.openPromise && !this.isClosed()) {
|
|
20
24
|
return this.openPromise;
|
|
21
25
|
}
|
|
26
|
+
this.url = url;
|
|
22
27
|
this.openPromise = this.createConnection()
|
|
23
28
|
.catch(async () => {
|
|
29
|
+
console.info('here');
|
|
24
30
|
return this.waitWhileNotReconnect();
|
|
25
31
|
})
|
|
26
32
|
.then(() => {
|
|
27
|
-
this.connection.onclose = async () => this.open();
|
|
33
|
+
this.connection.onclose = async () => this.open(url);
|
|
28
34
|
});
|
|
29
35
|
return this.openPromise;
|
|
30
36
|
}
|
|
@@ -35,6 +41,8 @@ export class NchanWebSocketService {
|
|
|
35
41
|
}
|
|
36
42
|
this.connection.onclose = null;
|
|
37
43
|
this.connection.close();
|
|
44
|
+
this.openPromise = null;
|
|
45
|
+
this.url = '';
|
|
38
46
|
}
|
|
39
47
|
get messages$() {
|
|
40
48
|
return this.incomingMessages$
|
|
@@ -52,12 +60,14 @@ export class NchanWebSocketService {
|
|
|
52
60
|
}
|
|
53
61
|
return [this.connection.CLOSED, this.connection.CLOSING].includes(this.connection.readyState);
|
|
54
62
|
}
|
|
63
|
+
/* istanbul ignore next */
|
|
55
64
|
clearReconnectionTimer() {
|
|
56
65
|
if (this.reconnectionTimerId) {
|
|
57
66
|
clearTimeout(this.reconnectionTimerId);
|
|
58
67
|
this.reconnectionTimerId = null;
|
|
59
68
|
}
|
|
60
69
|
}
|
|
70
|
+
/* istanbul ignore next */
|
|
61
71
|
setFirstReconnectionTimeout() {
|
|
62
72
|
const min = NchanWebSocketService.timeoutsMs.reconnection -
|
|
63
73
|
NchanWebSocketService.timeoutsMs.reconnectionMaxDeviation;
|
|
@@ -66,11 +76,13 @@ export class NchanWebSocketService {
|
|
|
66
76
|
this.reconnectionTimeoutMs =
|
|
67
77
|
Math.floor(Math.random() * (max - min + 1)) + min;
|
|
68
78
|
}
|
|
79
|
+
/* istanbul ignore next */
|
|
69
80
|
incrementReconnectionTimeout() {
|
|
70
81
|
this.reconnectionTimeoutMs =
|
|
71
82
|
this.reconnectionTimeoutMs *
|
|
72
83
|
NchanWebSocketService.reconnectionTimeoutIncrementFactor;
|
|
73
84
|
}
|
|
85
|
+
/* istanbul ignore next */
|
|
74
86
|
async createConnection() {
|
|
75
87
|
this.connection = new WebSocket(this.url);
|
|
76
88
|
this.connection.onmessage = this.incomingMessages$.next.bind(this.incomingMessages$);
|
|
@@ -84,6 +96,7 @@ export class NchanWebSocketService {
|
|
|
84
96
|
};
|
|
85
97
|
});
|
|
86
98
|
}
|
|
99
|
+
/* istanbul ignore next */
|
|
87
100
|
async reconnect() {
|
|
88
101
|
this.clearReconnectionTimer();
|
|
89
102
|
return new Promise((resolve) => {
|
|
@@ -95,6 +108,7 @@ export class NchanWebSocketService {
|
|
|
95
108
|
}, this.reconnectionTimeoutMs);
|
|
96
109
|
});
|
|
97
110
|
}
|
|
111
|
+
/* istanbul ignore next */
|
|
98
112
|
async waitWhileNotReconnect() {
|
|
99
113
|
this.clearReconnectionTimer();
|
|
100
114
|
this.setFirstReconnectionTimeout();
|
|
@@ -113,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
113
127
|
providedIn: 'root',
|
|
114
128
|
}]
|
|
115
129
|
}] });
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmNoYW4td2ViLXNvY2tldC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvd2ViLXNvY2tldC9uY2hhbi13ZWItc29ja2V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBS3BFLE1BQU0sT0FBTyxxQkFBcUI7SUFIbEM7UUFRUyxTQUFJLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDO1FBVWhDLHdCQUFtQixHQUF5QyxJQUFJLENBQUM7UUFNeEQsc0JBQWlCLEdBQ2hDLElBQUksT0FBTyxFQUFnQixDQUFDO1FBQ2IsdUNBQWtDLEdBQ2pELElBQUksT0FBTyxFQUFRLENBQUM7S0FzSHZCO2FBN0l3Qix1Q0FBa0MsR0FBRyxDQUFDLEFBQUosQ0FBSzthQU10QyxlQUFVLEdBQUc7UUFDbkMsWUFBWSxFQUFFLElBQUk7UUFDbEIsd0JBQXdCLEVBQUUsSUFBSTtLQUMvQixBQUhpQyxDQUdoQztJQWdCSyxLQUFLLENBQUMsSUFBSTtRQUNmLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ3pDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMxQixDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7YUFDdkMsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixF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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXZWJTb2NrZXRDbGllbnQgfSBmcm9tICcuL3dlYi1zb2NrZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFdlYlNvY2tldENsaWVudFR5cGUgfSBmcm9tICcuL3dlYi1zb2NrZXQtY2xpZW50LXR5cGUuZW51bSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBOY2hhbldlYlNvY2tldFNlcnZpY2UgaW1wbGVtZW50cyBXZWJTb2NrZXRDbGllbnQge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHJlY29ubmVjdGlvblRpbWVvdXRJbmNyZW1lbnRGYWN0b3IgPSAyO1xuXG4gIHB1YmxpYyB1cmwhOiBzdHJpbmc7XG5cbiAgcHVibGljIHR5cGUgPSBXZWJTb2NrZXRDbGllbnRUeXBlLm5jaGFuO1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IHRpbWVvdXRzTXMgPSB7XG4gICAgcmVjb25uZWN0aW9uOiAxNTAwLFxuICAgIHJlY29ubmVjdGlvbk1heERldmlhdGlvbjogMTUwMCxcbiAgfTtcblxuICBwcml2YXRlIG9wZW5Qcm9taXNlOiBQcm9taXNlPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgcmVjb25uZWN0aW9uVGltZW91dE1zITogbnVtYmVyO1xuICBwcml2YXRlIHJlY29ubmVjdGlvblRpbWVySWQ6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBvcGVuQ29ubmVjdGlvblRpbWVySWQ6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIGNvbm5lY3Rpb24hOiBXZWJTb2NrZXQ7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpbmNvbWluZ01lc3NhZ2VzJDogU3ViamVjdDxNZXNzYWdlRXZlbnQ+ID1cbiAgICBuZXcgU3ViamVjdDxNZXNzYWdlRXZlbnQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3VjY2Vzc2Z1bFJlY29ubmVjdGlvbkV2ZW50c1Byb3h5JDogU3ViamVjdDx2b2lkPiA9XG4gICAgbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwdWJsaWMgYXN5bmMgb3BlbigpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICBpZiAodGhpcy5vcGVuUHJvbWlzZSAmJiAhdGhpcy5pc0Nsb3NlZCgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5vcGVuUHJvbWlzZTtcbiAgICB9XG5cbiAgICB0aGlzLm9wZW5Qcm9taXNlID0gdGhpcy5jcmVhdGVDb25uZWN0aW9uKClcbiAgICAgIC5jYXRjaChhc3luYyAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLndhaXRXaGlsZU5vdFJlY29ubmVjdCgpO1xuICAgICAgfSlcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5jb25uZWN0aW9uLm9uY2xvc2UgPSBhc3luYyAoKSA9PiB0aGlzLm9wZW4oKTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMub3BlblByb21pc2U7XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhclJlY29ubmVjdGlvblRpbWVyKCk7XG5cbiAgICBpZiAodGhpcy5pc0Nsb3NlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jb25uZWN0aW9uLm9uY2xvc2UgPSBudWxsO1xuICAgIHRoaXMuY29ubmVjdGlvbi5jbG9zZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBtZXNzYWdlcyQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5pbmNvbWluZ01lc3NhZ2VzJFxuICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAucGlwZShtYXAoKGV2ZW50OiBNZXNzYWdlRXZlbnQ8c3RyaW5nPikgPT4gZXZlbnQuZGF0YSkpO1xuICB9XG5cbiAgcHVibGljIHN1YnNjcmliZU9uU3VjY2Vzc2Z1bFJlY29ubmVjdGlvbihuZXh0PzogKCkgPT4gdm9pZCk6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuc3VjY2Vzc2Z1bFJlY29ubmVjdGlvbkV2ZW50c1Byb3h5JFxuICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAuc3Vic2NyaWJlKG5leHQpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0Nsb3NlZCgpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuY29ubmVjdGlvbikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIFt0aGlzLmNvbm5lY3Rpb24uQ0xPU0VELCB0aGlzLmNvbm5lY3Rpb24uQ0xPU0lOR10gYXMgbnVtYmVyW11cbiAgICApLmluY2x1ZGVzKHRoaXMuY29ubmVjdGlvbi5yZWFkeVN0YXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJSZWNvbm5lY3Rpb25UaW1lcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNvbm5lY3Rpb25UaW1lcklkKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5yZWNvbm5lY3Rpb25UaW1lcklkKTtcbiAgICAgIHRoaXMucmVjb25uZWN0aW9uVGltZXJJZCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRGaXJzdFJlY29ubmVjdGlvblRpbWVvdXQoKTogdm9pZCB7XG4gICAgY29uc3QgbWluID1cbiAgICAgIE5jaGFuV2ViU29ja2V0U2VydmljZS50aW1lb3V0c01zLnJlY29ubmVjdGlvbiAtXG4gICAgICBOY2hhbldlYlNvY2tldFNlcnZpY2UudGltZW91dHNNcy5yZWNvbm5lY3Rpb25NYXhEZXZpYXRpb247XG4gICAgY29uc3QgbWF4ID1cbiAgICAgIE5jaGFuV2ViU29ja2V0U2VydmljZS50aW1lb3V0c01zLnJlY29ubmVjdGlvbiArXG4gICAgICBOY2hhbldlYlNvY2tldFNlcnZpY2UudGltZW91dHNNcy5yZWNvbm5lY3Rpb25NYXhEZXZpYXRpb247XG4gICAgdGhpcy5yZWNvbm5lY3Rpb25UaW1lb3V0TXMgPVxuICAgICAgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKG1heCAtIG1pbiArIDEpKSArIG1pbjtcbiAgfVxuXG4gIHByaXZhdGUgaW5jcmVtZW50UmVjb25uZWN0aW9uVGltZW91dCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlY29ubmVjdGlvblRpbWVvdXRNcyA9XG4gICAgICB0aGlzLnJlY29ubmVjdGlvblRpbWVvdXRNcyAqXG4gICAgICBOY2hhbldlYlNvY2tldFNlcnZpY2UucmVjb25uZWN0aW9uVGltZW91dEluY3JlbWVudEZhY3RvcjtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlQ29ubmVjdGlvbigpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICB0aGlzLmNvbm5lY3Rpb24gPSBuZXcgV2ViU29ja2V0KHRoaXMudXJsKTtcbiAgICB0aGlzLmNvbm5lY3Rpb24ub25tZXNzYWdlID0gdGhpcy5pbmNvbWluZ01lc3NhZ2VzJC5uZXh0LmJpbmQoXG4gICAgICB0aGlzLmluY29taW5nTWVzc2FnZXMkXG4gICAgKTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLmNvbm5lY3Rpb24ub25vcGVuID0gKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5vcGVuQ29ubmVjdGlvblRpbWVySWQpO1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9O1xuXG4gICAgICB0aGlzLmNvbm5lY3Rpb24ub25jbG9zZSA9ICgpID0+IHtcbiAgICAgICAgcmVqZWN0KCk7XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZWNvbm5lY3QoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdGhpcy5jbGVhclJlY29ubmVjdGlvblRpbWVyKCk7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIHRoaXMucmVjb25uZWN0aW9uVGltZXJJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmNyZWF0ZUNvbm5lY3Rpb24oKVxuICAgICAgICAgIC50aGVuKCgpID0+IHJlc29sdmUodHJ1ZSkpXG4gICAgICAgICAgLmNhdGNoKCgpID0+IHJlc29sdmUoZmFsc2UpKTtcbiAgICAgICAgdGhpcy5pbmNyZW1lbnRSZWNvbm5lY3Rpb25UaW1lb3V0KCk7XG4gICAgICB9LCB0aGlzLnJlY29ubmVjdGlvblRpbWVvdXRNcyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHdhaXRXaGlsZU5vdFJlY29ubmVjdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmNsZWFyUmVjb25uZWN0aW9uVGltZXIoKTtcbiAgICB0aGlzLnNldEZpcnN0UmVjb25uZWN0aW9uVGltZW91dCgpO1xuXG4gICAgbGV0IGlzQ29ubmVjdGVkID0gZmFsc2U7XG5cbiAgICB3aGlsZSAoIWlzQ29ubmVjdGVkKSB7XG4gICAgICBpc0Nvbm5lY3RlZCA9IGF3YWl0IHRoaXMucmVjb25uZWN0KCk7XG4gICAgfVxuXG4gICAgdGhpcy5zdWNjZXNzZnVsUmVjb25uZWN0aW9uRXZlbnRzUHJveHkkLm5leHQoKTtcbiAgfVxufVxuIl19
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmNoYW4td2ViLXNvY2tldC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvd2ViLXNvY2tldC9uY2hhbi13ZWItc29ja2V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBS3BFLE1BQU0sT0FBTyxxQkFBcUI7SUFIbEM7UUFRUyxTQUFJLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDO1FBT2hDLGdCQUFXLEdBQTRCLElBQUksQ0FBQztRQUc1Qyx3QkFBbUIsR0FBeUMsSUFBSSxDQUFDO1FBTXhELHNCQUFpQixHQUNoQyxJQUFJLE9BQU8sRUFBZ0IsQ0FBQztRQUNiLHVDQUFrQyxHQUNqRCxJQUFJLE9BQU8sRUFBUSxDQUFDO0tBdUl2QjthQTlKd0IsdUNBQWtDLEdBQUcsQ0FBQyxBQUFKLENBQUs7YUFNdEMsZUFBVSxHQUFHO1FBQ25DLFlBQVksRUFBRSxJQUFJO1FBQ2xCLHdCQUF3QixFQUFFLElBQUk7S0FDL0IsQUFIaUMsQ0FHaEM7SUFnQkssS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFXO1FBQzNCLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDekMsT0FBTyxJQUFJLENBQUMsV0FB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QjtJQUNsQixLQUFLLENBQUMscUJBQXFCO1FBQ2pDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1FBRW5DLElBQUksV0FBVyxHQUFHLEtBQUssQ0FBQztRQUV4QixPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDcEIsV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3ZDLENBQUM7UUFFRCxJQUFJLENBQUMsa0NBQWtDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakQsQ0FBQzs4R0E5SlUscUJBQXFCO2tIQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs7MkZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2ViU29ja2V0Q2xpZW50IH0gZnJvbSAnLi93ZWItc29ja2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBXZWJTb2NrZXRDbGllbnRUeXBlIH0gZnJvbSAnLi93ZWItc29ja2V0LWNsaWVudC10eXBlLmVudW0nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTmNoYW5XZWJTb2NrZXRTZXJ2aWNlIGltcGxlbWVudHMgV2ViU29ja2V0Q2xpZW50IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSByZWNvbm5lY3Rpb25UaW1lb3V0SW5jcmVtZW50RmFjdG9yID0gMjtcblxuICBwdWJsaWMgdXJsITogc3RyaW5nO1xuXG4gIHB1YmxpYyB0eXBlID0gV2ViU29ja2V0Q2xpZW50VHlwZS5uY2hhbjtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSB0aW1lb3V0c01zID0ge1xuICAgIHJlY29ubmVjdGlvbjogMTUwMCxcbiAgICByZWNvbm5lY3Rpb25NYXhEZXZpYXRpb246IDE1MDAsXG4gIH07XG5cbiAgcHJpdmF0ZSBvcGVuUHJvbWlzZTogUHJvbWlzZTx1bmtub3duPiB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgcmVjb25uZWN0aW9uVGltZW91dE1zITogbnVtYmVyO1xuICBwcml2YXRlIHJlY29ubmVjdGlvblRpbWVySWQ6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBvcGVuQ29ubmVjdGlvblRpbWVySWQ6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIGNvbm5lY3Rpb24hOiBXZWJTb2NrZXQ7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpbmNvbWluZ01lc3NhZ2VzJDogU3ViamVjdDxNZXNzYWdlRXZlbnQ+ID1cbiAgICBuZXcgU3ViamVjdDxNZXNzYWdlRXZlbnQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3VjY2Vzc2Z1bFJlY29ubmVjdGlvbkV2ZW50c1Byb3h5JDogU3ViamVjdDx2b2lkPiA9XG4gICAgbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwdWJsaWMgYXN5bmMgb3Blbih1cmw6IHN0cmluZyk6IFByb21pc2U8dW5rbm93bj4ge1xuICAgIGlmICh1cmwgPT09IHRoaXMudXJsKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3BlblByb21pc2UgJiYgIXRoaXMuaXNDbG9zZWQoKSkge1xuICAgICAgcmV0dXJuIHRoaXMub3BlblByb21pc2U7XG4gICAgfVxuXG4gICAgdGhpcy51cmwgPSB1cmw7XG5cbiAgICB0aGlzLm9wZW5Qcm9taXNlID0gdGhpcy5jcmVhdGVDb25uZWN0aW9uKClcbiAgICAgIC5jYXRjaChhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuaW5mbygnaGVyZScpO1xuICAgICAgICByZXR1cm4gdGhpcy53YWl0V2hpbGVOb3RSZWNvbm5lY3QoKTtcbiAgICAgIH0pXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuY29ubmVjdGlvbi5vbmNsb3NlID0gYXN5bmMgKCkgPT4gdGhpcy5vcGVuKHVybCk7XG4gICAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLm9wZW5Qcm9taXNlO1xuICB9XG5cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJSZWNvbm5lY3Rpb25UaW1lcigpO1xuXG4gICAgaWYgKHRoaXMuaXNDbG9zZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY29ubmVjdGlvbi5vbmNsb3NlID0gbnVsbDtcbiAgICB0aGlzLmNvbm5lY3Rpb24uY2xvc2UoKTtcblxuICAgIHRoaXMub3BlblByb21pc2UgPSBudWxsO1xuXG4gICAgdGhpcy51cmwgPSAnJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbWVzc2FnZXMkKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuaW5jb21pbmdNZXNzYWdlcyRcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUobWFwKChldmVudDogTWVzc2FnZUV2ZW50PHN0cmluZz4pID0+IGV2ZW50LmRhdGEpKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJzY3JpYmVPblN1Y2Nlc3NmdWxSZWNvbm5lY3Rpb24obmV4dD86ICgpID0+IHZvaWQpOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzLnN1Y2Nlc3NmdWxSZWNvbm5lY3Rpb25FdmVudHNQcm94eSRcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnN1YnNjcmliZShuZXh0KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNDbG9zZWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmNvbm5lY3Rpb24pIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICBbdGhpcy5jb25uZWN0aW9uLkNMT1NFRCwgdGhpcy5jb25uZWN0aW9uLkNMT1NJTkddIGFzIG51bWJlcltdXG4gICAgKS5pbmNsdWRlcyh0aGlzLmNvbm5lY3Rpb24ucmVhZHlTdGF0ZSk7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBwcml2YXRlIGNsZWFyUmVjb25uZWN0aW9uVGltZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb25uZWN0aW9uVGltZXJJZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMucmVjb25uZWN0aW9uVGltZXJJZCk7XG4gICAgICB0aGlzLnJlY29ubmVjdGlvblRpbWVySWQgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHByaXZhdGUgc2V0Rmlyc3RSZWNvbm5lY3Rpb25UaW1lb3V0KCk6IHZvaWQge1xuICAgIGNvbnN0IG1pbiA9XG4gICAgICBOY2hhbldlYlNvY2tldFNlcnZpY2UudGltZW91dHNNcy5yZWNvbm5lY3Rpb24gLVxuICAgICAgTmNoYW5XZWJTb2NrZXRTZXJ2aWNlLnRpbWVvdXRzTXMucmVjb25uZWN0aW9uTWF4RGV2aWF0aW9uO1xuICAgIGNvbnN0IG1heCA9XG4gICAgICBOY2hhbldlYlNvY2tldFNlcnZpY2UudGltZW91dHNNcy5yZWNvbm5lY3Rpb24gK1xuICAgICAgTmNoYW5XZWJTb2NrZXRTZXJ2aWNlLnRpbWVvdXRzTXMucmVjb25uZWN0aW9uTWF4RGV2aWF0aW9uO1xuICAgIHRoaXMucmVjb25uZWN0aW9uVGltZW91dE1zID1cbiAgICAgIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIChtYXggLSBtaW4gKyAxKSkgKyBtaW47XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBwcml2YXRlIGluY3JlbWVudFJlY29ubmVjdGlvblRpbWVvdXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZWNvbm5lY3Rpb25UaW1lb3V0TXMgPVxuICAgICAgdGhpcy5yZWNvbm5lY3Rpb25UaW1lb3V0TXMgKlxuICAgICAgTmNoYW5XZWJTb2NrZXRTZXJ2aWNlLnJlY29ubmVjdGlvblRpbWVvdXRJbmNyZW1lbnRGYWN0b3I7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBwcml2YXRlIGFzeW5jIGNyZWF0ZUNvbm5lY3Rpb24oKTogUHJvbWlzZTx1bmtub3duPiB7XG4gICAgdGhpcy5jb25uZWN0aW9uID0gbmV3IFdlYlNvY2tldCh0aGlzLnVybCk7XG4gICAgdGhpcy5jb25uZWN0aW9uLm9ubWVzc2FnZSA9IHRoaXMuaW5jb21pbmdNZXNzYWdlcyQubmV4dC5iaW5kKFxuICAgICAgdGhpcy5pbmNvbWluZ01lc3NhZ2VzJFxuICAgICk7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5jb25uZWN0aW9uLm9ub3BlbiA9ICgpID0+IHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMub3BlbkNvbm5lY3Rpb25UaW1lcklkKTtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfTtcblxuICAgICAgdGhpcy5jb25uZWN0aW9uLm9uY2xvc2UgPSAoKSA9PiB7XG4gICAgICAgIHJlamVjdCgpO1xuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHByaXZhdGUgYXN5bmMgcmVjb25uZWN0KCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRoaXMuY2xlYXJSZWNvbm5lY3Rpb25UaW1lcigpO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICB0aGlzLnJlY29ubmVjdGlvblRpbWVySWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5jcmVhdGVDb25uZWN0aW9uKClcbiAgICAgICAgICAudGhlbigoKSA9PiByZXNvbHZlKHRydWUpKVxuICAgICAgICAgIC5jYXRjaCgoKSA9PiByZXNvbHZlKGZhbHNlKSk7XG4gICAgICAgIHRoaXMuaW5jcmVtZW50UmVjb25uZWN0aW9uVGltZW91dCgpO1xuICAgICAgfSwgdGhpcy5yZWNvbm5lY3Rpb25UaW1lb3V0TXMpO1xuICAgIH0pO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcHJpdmF0ZSBhc3luYyB3YWl0V2hpbGVOb3RSZWNvbm5lY3QoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jbGVhclJlY29ubmVjdGlvblRpbWVyKCk7XG4gICAgdGhpcy5zZXRGaXJzdFJlY29ubmVjdGlvblRpbWVvdXQoKTtcblxuICAgIGxldCBpc0Nvbm5lY3RlZCA9IGZhbHNlO1xuXG4gICAgd2hpbGUgKCFpc0Nvbm5lY3RlZCkge1xuICAgICAgaXNDb25uZWN0ZWQgPSBhd2FpdCB0aGlzLnJlY29ubmVjdCgpO1xuICAgIH1cblxuICAgIHRoaXMuc3VjY2Vzc2Z1bFJlY29ubmVjdGlvbkV2ZW50c1Byb3h5JC5uZXh0KCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -13,7 +13,6 @@ export class WebSocketFactory {
|
|
|
13
13
|
if (clientType === WebSocketClientType.centrifugo) {
|
|
14
14
|
return this.centrifugoWebSocket;
|
|
15
15
|
}
|
|
16
|
-
this.nchanWebSocket.url = url;
|
|
17
16
|
return this.nchanWebSocket;
|
|
18
17
|
}
|
|
19
18
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WebSocketFactory, deps: [{ token: i1.NchanWebSocketService }, { token: i2.CentrifugoWebSocketService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
@@ -25,4 +24,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
25
24
|
providedIn: 'root',
|
|
26
25
|
}]
|
|
27
26
|
}], ctorParameters: () => [{ type: i1.NchanWebSocketService }, { type: i2.CentrifugoWebSocketService }] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLXNvY2tldC5mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvd2ViLXNvY2tldC93ZWItc29ja2V0LmZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7OztBQUVwRSw4RkFBOEY7QUFJOUYsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixZQUNtQixjQUFxQyxFQUNyQyxtQkFBK0M7UUFEL0MsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBQ3JDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBNEI7SUFDL0QsQ0FBQztJQUVHLHFCQUFxQixDQUMxQixHQUFXLEVBQ1gsVUFBK0I7UUFFL0IsSUFBSSxVQUFVLEtBQUssbUJBQW1CLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEQsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7UUFDbEMsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDOzhHQWZVLGdCQUFnQjtrSEFBaEIsZ0JBQWdCLGNBRmYsTUFBTTs7MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5jaGFuV2ViU29ja2V0U2VydmljZSB9IGZyb20gJy4vbmNoYW4td2ViLXNvY2tldC5zZXJ2aWNlJztcbmltcG9ydCB7IENlbnRyaWZ1Z29XZWJTb2NrZXRTZXJ2aWNlIH0gZnJvbSAnLi9jZW50cmlmdWdvLXdlYi1zb2NrZXQuc2VydmljZSc7XG5pbXBvcnQgeyBXZWJTb2NrZXRDbGllbnQgfSBmcm9tICcuL3dlYi1zb2NrZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFdlYlNvY2tldENsaWVudFR5cGUgfSBmcm9tICcuL3dlYi1zb2NrZXQtY2xpZW50LXR5cGUuZW51bSc7XG5cbi8vIEB0b2RvOiByZW1vdmUgdGhpcyBmYWN0b3J5IGFuZCBzd2l0Y2ggdG8gY2VudHJpZnVnbyBjbGllbnQgYWZ0ZXIgY2VudHJpZnVnbyBpc3N1ZXMgcmVzb2x2ZWRcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBXZWJTb2NrZXRGYWN0b3J5IHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmNoYW5XZWJTb2NrZXQ6IE5jaGFuV2ViU29ja2V0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNlbnRyaWZ1Z29XZWJTb2NrZXQ6IENlbnRyaWZ1Z29XZWJTb2NrZXRTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgY3JlYXRlV2ViU29ja2V0Q2xpZW50KFxuICAgIHVybDogc3RyaW5nLFxuICAgIGNsaWVudFR5cGU6IFdlYlNvY2tldENsaWVudFR5cGVcbiAgKTogV2ViU29ja2V0Q2xpZW50IHtcbiAgICBpZiAoY2xpZW50VHlwZSA9PT0gV2ViU29ja2V0Q2xpZW50VHlwZS5jZW50cmlmdWdvKSB7XG4gICAgICByZXR1cm4gdGhpcy5jZW50cmlmdWdvV2ViU29ja2V0O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLm5jaGFuV2ViU29ja2V0O1xuICB9XG59XG4iXX0=
|
|
@@ -5560,6 +5560,7 @@ var WebSocketClientType;
|
|
|
5560
5560
|
class NchanWebSocketService {
|
|
5561
5561
|
constructor() {
|
|
5562
5562
|
this.type = WebSocketClientType.nchan;
|
|
5563
|
+
this.openPromise = null;
|
|
5563
5564
|
this.reconnectionTimerId = null;
|
|
5564
5565
|
this.incomingMessages$ = new Subject();
|
|
5565
5566
|
this.successfulReconnectionEventsProxy$ = new Subject();
|
|
@@ -5569,16 +5570,21 @@ class NchanWebSocketService {
|
|
|
5569
5570
|
reconnection: 1500,
|
|
5570
5571
|
reconnectionMaxDeviation: 1500,
|
|
5571
5572
|
}; }
|
|
5572
|
-
async open() {
|
|
5573
|
+
async open(url) {
|
|
5574
|
+
if (url === this.url) {
|
|
5575
|
+
this.close();
|
|
5576
|
+
}
|
|
5573
5577
|
if (this.openPromise && !this.isClosed()) {
|
|
5574
5578
|
return this.openPromise;
|
|
5575
5579
|
}
|
|
5580
|
+
this.url = url;
|
|
5576
5581
|
this.openPromise = this.createConnection()
|
|
5577
5582
|
.catch(async () => {
|
|
5583
|
+
console.info('here');
|
|
5578
5584
|
return this.waitWhileNotReconnect();
|
|
5579
5585
|
})
|
|
5580
5586
|
.then(() => {
|
|
5581
|
-
this.connection.onclose = async () => this.open();
|
|
5587
|
+
this.connection.onclose = async () => this.open(url);
|
|
5582
5588
|
});
|
|
5583
5589
|
return this.openPromise;
|
|
5584
5590
|
}
|
|
@@ -5589,6 +5595,8 @@ class NchanWebSocketService {
|
|
|
5589
5595
|
}
|
|
5590
5596
|
this.connection.onclose = null;
|
|
5591
5597
|
this.connection.close();
|
|
5598
|
+
this.openPromise = null;
|
|
5599
|
+
this.url = '';
|
|
5592
5600
|
}
|
|
5593
5601
|
get messages$() {
|
|
5594
5602
|
return this.incomingMessages$
|
|
@@ -5606,12 +5614,14 @@ class NchanWebSocketService {
|
|
|
5606
5614
|
}
|
|
5607
5615
|
return [this.connection.CLOSED, this.connection.CLOSING].includes(this.connection.readyState);
|
|
5608
5616
|
}
|
|
5617
|
+
/* istanbul ignore next */
|
|
5609
5618
|
clearReconnectionTimer() {
|
|
5610
5619
|
if (this.reconnectionTimerId) {
|
|
5611
5620
|
clearTimeout(this.reconnectionTimerId);
|
|
5612
5621
|
this.reconnectionTimerId = null;
|
|
5613
5622
|
}
|
|
5614
5623
|
}
|
|
5624
|
+
/* istanbul ignore next */
|
|
5615
5625
|
setFirstReconnectionTimeout() {
|
|
5616
5626
|
const min = NchanWebSocketService.timeoutsMs.reconnection -
|
|
5617
5627
|
NchanWebSocketService.timeoutsMs.reconnectionMaxDeviation;
|
|
@@ -5620,11 +5630,13 @@ class NchanWebSocketService {
|
|
|
5620
5630
|
this.reconnectionTimeoutMs =
|
|
5621
5631
|
Math.floor(Math.random() * (max - min + 1)) + min;
|
|
5622
5632
|
}
|
|
5633
|
+
/* istanbul ignore next */
|
|
5623
5634
|
incrementReconnectionTimeout() {
|
|
5624
5635
|
this.reconnectionTimeoutMs =
|
|
5625
5636
|
this.reconnectionTimeoutMs *
|
|
5626
5637
|
NchanWebSocketService.reconnectionTimeoutIncrementFactor;
|
|
5627
5638
|
}
|
|
5639
|
+
/* istanbul ignore next */
|
|
5628
5640
|
async createConnection() {
|
|
5629
5641
|
this.connection = new WebSocket(this.url);
|
|
5630
5642
|
this.connection.onmessage = this.incomingMessages$.next.bind(this.incomingMessages$);
|
|
@@ -5638,6 +5650,7 @@ class NchanWebSocketService {
|
|
|
5638
5650
|
};
|
|
5639
5651
|
});
|
|
5640
5652
|
}
|
|
5653
|
+
/* istanbul ignore next */
|
|
5641
5654
|
async reconnect() {
|
|
5642
5655
|
this.clearReconnectionTimer();
|
|
5643
5656
|
return new Promise((resolve) => {
|
|
@@ -5649,6 +5662,7 @@ class NchanWebSocketService {
|
|
|
5649
5662
|
}, this.reconnectionTimeoutMs);
|
|
5650
5663
|
});
|
|
5651
5664
|
}
|
|
5665
|
+
/* istanbul ignore next */
|
|
5652
5666
|
async waitWhileNotReconnect() {
|
|
5653
5667
|
this.clearReconnectionTimer();
|
|
5654
5668
|
this.setFirstReconnectionTimeout();
|
|
@@ -5693,7 +5707,7 @@ class CentrifugoWebSocketService {
|
|
|
5693
5707
|
}
|
|
5694
5708
|
async open(url, channel) {
|
|
5695
5709
|
if (url === this.url && channel === this.channel) {
|
|
5696
|
-
|
|
5710
|
+
this.close();
|
|
5697
5711
|
}
|
|
5698
5712
|
try {
|
|
5699
5713
|
this.url = url;
|
|
@@ -5713,6 +5727,8 @@ class CentrifugoWebSocketService {
|
|
|
5713
5727
|
return;
|
|
5714
5728
|
}
|
|
5715
5729
|
this.connection?.disconnect();
|
|
5730
|
+
this.url = '';
|
|
5731
|
+
this.channel = '';
|
|
5716
5732
|
}
|
|
5717
5733
|
get messages$() {
|
|
5718
5734
|
return (this.incomingMessages$
|
|
@@ -5726,12 +5742,14 @@ class CentrifugoWebSocketService {
|
|
|
5726
5742
|
.asObservable()
|
|
5727
5743
|
.subscribe(next);
|
|
5728
5744
|
}
|
|
5745
|
+
/* istanbul ignore next */
|
|
5729
5746
|
clearReconnectionTimer() {
|
|
5730
5747
|
if (this.reconnectionTimerId) {
|
|
5731
5748
|
clearTimeout(this.reconnectionTimerId);
|
|
5732
5749
|
this.reconnectionTimerId = null;
|
|
5733
5750
|
}
|
|
5734
5751
|
}
|
|
5752
|
+
/* istanbul ignore next */
|
|
5735
5753
|
setFirstReconnectionTimeout() {
|
|
5736
5754
|
const min = CentrifugoWebSocketService.timeoutsMs.reconnection -
|
|
5737
5755
|
CentrifugoWebSocketService.timeoutsMs.reconnectionMaxDeviation;
|
|
@@ -5740,14 +5758,17 @@ class CentrifugoWebSocketService {
|
|
|
5740
5758
|
this.reconnectionTimeoutMs =
|
|
5741
5759
|
Math.floor(Math.random() * (max - min + 1)) + min;
|
|
5742
5760
|
}
|
|
5761
|
+
/* istanbul ignore next */
|
|
5743
5762
|
incrementReconnectionTimeout() {
|
|
5744
5763
|
this.reconnectionTimeoutMs =
|
|
5745
5764
|
this.reconnectionTimeoutMs *
|
|
5746
5765
|
CentrifugoWebSocketService.reconnectionTimeoutIncrementFactor;
|
|
5747
5766
|
}
|
|
5767
|
+
/* istanbul ignore next */
|
|
5748
5768
|
async getCentrifugoClient() {
|
|
5749
5769
|
return import('centrifuge').then((module) => module.Centrifuge);
|
|
5750
5770
|
}
|
|
5771
|
+
/* istanbul ignore next */
|
|
5751
5772
|
async createConnection(url, channel) {
|
|
5752
5773
|
if (this.isConnectionOpen || this.isConnecting) {
|
|
5753
5774
|
return;
|
|
@@ -5878,7 +5899,6 @@ class WebSocketFactory {
|
|
|
5878
5899
|
if (clientType === WebSocketClientType.centrifugo) {
|
|
5879
5900
|
return this.centrifugoWebSocket;
|
|
5880
5901
|
}
|
|
5881
|
-
this.nchanWebSocket.url = url;
|
|
5882
5902
|
return this.nchanWebSocket;
|
|
5883
5903
|
}
|
|
5884
5904
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WebSocketFactory, deps: [{ token: NchanWebSocketService }, { token: CentrifugoWebSocketService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|