@xsolla/payment-client-core 0.0.5 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/esm2020/lib/core/exceptions-handling/elk/additional-info.interface.mjs +2 -0
  2. package/esm2020/lib/core/exceptions-handling/elk/elk-logger.service.mjs +120 -0
  3. package/esm2020/lib/core/exceptions-handling/elk/error-without-meta-fields.interface.mjs +2 -0
  4. package/esm2020/lib/core/exceptions-handling/elk/log-message.interface.mjs +2 -0
  5. package/esm2020/lib/core/exceptions-handling/errors/elk-error-types.enum.mjs +13 -0
  6. package/esm2020/lib/core/exceptions-handling/errors/tagged-error.class.mjs +16 -0
  7. package/esm2020/lib/core/exceptions-handling/errors/ws-error.class.mjs +10 -0
  8. package/esm2020/lib/core/payment/actions/action-type-command.map.mjs +2 -1
  9. package/esm2020/lib/core/payment/actions/check-status/check-status.action.class.mjs +16 -0
  10. package/esm2020/lib/core/payment/actions/check-status/check-status.action.token.mjs +11 -0
  11. package/esm2020/lib/core/payment/actions/check-status/check-status.action.type.mjs +1 -1
  12. package/esm2020/lib/core/payment/actions/next-action.interface.mjs +1 -1
  13. package/esm2020/lib/core/payment/actions/next-action.service.mjs +9 -1
  14. package/esm2020/lib/core/payment/actions/next-actions.mjs +8 -2
  15. package/esm2020/lib/core/payment/actions/status-updated/status-updated.action.class.mjs +13 -0
  16. package/esm2020/lib/core/payment/actions/status-updated/status-updated.action.token.mjs +11 -0
  17. package/esm2020/lib/core/payment/actions/status-updated/status-updated.action.type.mjs +2 -0
  18. package/esm2020/lib/core/payment/payment.interface.mjs +1 -1
  19. package/esm2020/lib/core/payment/payment.service.mjs +13 -7
  20. package/esm2020/lib/core/payment/status/check-status/check-status.service.mjs +56 -0
  21. package/esm2020/lib/core/payment/status/check-status/request/check-status-request.class.mjs +16 -0
  22. package/esm2020/lib/core/payment/status/check-status/request/check-status-request.token.mjs +8 -0
  23. package/esm2020/lib/core/payment/status/check-status/response/check-status-response.class.mjs +9 -0
  24. package/esm2020/lib/core/payment/status/check-status/response/check-status-response.token.mjs +8 -0
  25. package/esm2020/lib/core/payment/status/listen-status/listen-status.service.mjs +112 -0
  26. package/esm2020/lib/core/payment/status/status-groups.mjs +7 -0
  27. package/esm2020/lib/core/payment/status/status-params.interface.mjs +2 -0
  28. package/esm2020/lib/core/payment/status/status-request/request/status-request.class.mjs +22 -0
  29. package/esm2020/lib/core/payment/status/status-request/request/status-request.token.mjs +8 -0
  30. package/esm2020/lib/core/payment/status/status-request/response/status-response.class.mjs +96 -0
  31. package/esm2020/lib/core/payment/status/status-request/response/status-response.token.mjs +8 -0
  32. package/esm2020/lib/core/payment/status/status-request/status-request-params.interface.mjs +2 -0
  33. package/esm2020/lib/core/payment/status/status-request/status-request.service.mjs +68 -0
  34. package/esm2020/lib/core/payment/status/status-settings.interface.mjs +2 -0
  35. package/esm2020/lib/core/payment/status/status-updated.interface.mjs +2 -0
  36. package/esm2020/lib/core/payment/status/status.interface.mjs +1 -1
  37. package/esm2020/lib/core/payment/status/status.service.mjs +38 -0
  38. package/esm2020/lib/core/payment/status/websocket-status/websocket-status.enum.mjs +6 -0
  39. package/esm2020/lib/core/payment/status/websocket-status/websocket-status.service.mjs +76 -0
  40. package/esm2020/lib/core/payment/xps-api-part.abstract.mjs +19 -0
  41. package/esm2020/lib/core/properties.type.mjs +2 -0
  42. package/esm2020/lib/core/web-socket/centrifugo-web-socket.service.mjs +200 -0
  43. package/esm2020/lib/core/web-socket/nchan-web-socket.service.mjs +116 -0
  44. package/esm2020/lib/core/web-socket/web-socket-client-type.enum.mjs +6 -0
  45. package/esm2020/lib/core/web-socket/web-socket.factory.mjs +28 -0
  46. package/esm2020/lib/core/web-socket/web-socket.interface.mjs +2 -0
  47. package/esm2020/lib/core-library.module.mjs +13 -1
  48. package/esm2020/lib/core-library.service.mjs +8 -5
  49. package/fesm2015/xsolla-payment-client-core.mjs +1117 -13
  50. package/fesm2015/xsolla-payment-client-core.mjs.map +1 -1
  51. package/fesm2020/xsolla-payment-client-core.mjs +1079 -13
  52. package/fesm2020/xsolla-payment-client-core.mjs.map +1 -1
  53. package/lib/core/exceptions-handling/elk/additional-info.interface.d.ts +19 -0
  54. package/lib/core/exceptions-handling/elk/elk-logger.service.d.ts +27 -0
  55. package/lib/core/exceptions-handling/elk/error-without-meta-fields.interface.d.ts +8 -0
  56. package/lib/core/exceptions-handling/elk/log-message.interface.d.ts +8 -0
  57. package/lib/core/exceptions-handling/errors/elk-error-types.enum.d.ts +11 -0
  58. package/lib/core/exceptions-handling/errors/tagged-error.class.d.ts +10 -0
  59. package/lib/core/exceptions-handling/errors/ws-error.class.d.ts +5 -0
  60. package/lib/core/payment/actions/check-status/check-status.action.class.d.ts +8 -0
  61. package/lib/core/payment/actions/check-status/check-status.action.token.d.ts +4 -0
  62. package/lib/core/payment/actions/check-status/check-status.action.type.d.ts +9 -9
  63. package/lib/core/payment/actions/next-action.interface.d.ts +2 -1
  64. package/lib/core/payment/actions/next-action.service.d.ts +4 -0
  65. package/lib/core/payment/actions/status-updated/status-updated.action.class.d.ts +8 -0
  66. package/lib/core/payment/actions/status-updated/status-updated.action.token.d.ts +4 -0
  67. package/lib/core/payment/actions/status-updated/status-updated.action.type.d.ts +11 -0
  68. package/lib/core/payment/payment.interface.d.ts +6 -3
  69. package/lib/core/payment/payment.service.d.ts +6 -2
  70. package/lib/core/payment/status/check-status/check-status.service.d.ts +20 -0
  71. package/lib/core/payment/status/check-status/request/check-status-request.class.d.ts +8 -0
  72. package/lib/core/payment/status/check-status/request/check-status-request.token.d.ts +6 -0
  73. package/lib/core/payment/status/check-status/response/check-status-response.class.d.ts +8 -0
  74. package/lib/core/payment/status/check-status/response/check-status-response.token.d.ts +7 -0
  75. package/lib/core/payment/status/listen-status/listen-status.service.d.ts +28 -0
  76. package/lib/core/payment/status/status-groups.d.ts +5 -0
  77. package/lib/core/payment/status/status-params.interface.d.ts +9 -0
  78. package/lib/core/payment/status/status-request/request/status-request.class.d.ts +17 -0
  79. package/lib/core/payment/status/status-request/request/status-request.token.d.ts +6 -0
  80. package/lib/core/payment/status/status-request/response/status-response.class.d.ts +14 -0
  81. package/lib/core/payment/status/status-request/response/status-response.token.d.ts +7 -0
  82. package/lib/core/payment/status/status-request/status-request-params.interface.d.ts +10 -0
  83. package/lib/core/payment/status/status-request/status-request.service.d.ts +21 -0
  84. package/lib/core/payment/status/status-settings.interface.d.ts +13 -0
  85. package/lib/core/payment/status/status-updated.interface.d.ts +6 -0
  86. package/lib/core/payment/status/status.interface.d.ts +0 -1
  87. package/lib/core/payment/status/status.service.d.ts +16 -0
  88. package/lib/core/payment/status/websocket-status/websocket-status.enum.d.ts +4 -0
  89. package/lib/core/payment/status/websocket-status/websocket-status.service.d.ts +24 -0
  90. package/lib/core/payment/xps-api-part.abstract.d.ts +8 -0
  91. package/lib/core/properties.type.d.ts +3 -0
  92. package/lib/core/web-socket/centrifugo-web-socket.service.d.ts +41 -0
  93. package/lib/core/web-socket/nchan-web-socket.service.d.ts +30 -0
  94. package/lib/core/web-socket/web-socket-client-type.enum.d.ts +4 -0
  95. package/lib/core/web-socket/web-socket.factory.d.ts +13 -0
  96. package/lib/core/web-socket/web-socket.interface.d.ts +9 -0
  97. package/lib/core-library.service.d.ts +3 -1
  98. package/package.json +12 -4
  99. package/xsolla-payment-client-core-0.0.7.tgz +0 -0
  100. package/xsolla-payment-client-core-0.0.5.tgz +0 -0
@@ -0,0 +1,200 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { map } from 'rxjs/operators';
4
+ import { WsError } from '../exceptions-handling/errors/ws-error.class';
5
+ import { ErrorTags } from '../exceptions-handling/errors/elk-error-types.enum';
6
+ import { WebSocketClientType } from './web-socket-client-type.enum';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../exceptions-handling/elk/elk-logger.service";
9
+ export class CentrifugoWebSocketService {
10
+ constructor(elkLoggerService) {
11
+ this.elkLoggerService = elkLoggerService;
12
+ this.type = WebSocketClientType.centrifugo;
13
+ this.reconnectionTimerId = null;
14
+ this.isConnectionOpen = false;
15
+ this.isConnecting = false;
16
+ this.incomingMessages$ = new Subject();
17
+ this.successfulReconnectionEventsProxy$ = new Subject();
18
+ }
19
+ async open(url, channel) {
20
+ if (url === this.url && channel === this.channel) {
21
+ return;
22
+ }
23
+ try {
24
+ this.url = url;
25
+ this.channel = channel;
26
+ await this.createConnection(url, channel);
27
+ }
28
+ catch (error) {
29
+ // @ts-expect-error error is unknown
30
+ const message = (error?.message || error);
31
+ const unknownError = new WsError(`unknown websocket error: ${message}`, channel);
32
+ this.elkLoggerService.handleError(unknownError);
33
+ }
34
+ }
35
+ close() {
36
+ this.clearReconnectionTimer();
37
+ if (!this.isConnectionOpen) {
38
+ return;
39
+ }
40
+ this.connection.disconnect();
41
+ }
42
+ get messages$() {
43
+ return (this.incomingMessages$
44
+ .asObservable()
45
+ // event don't respect type from argument, it's weird
46
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
47
+ .pipe(map((event) => event.data)));
48
+ }
49
+ subscribeOnSuccessfulReconnection(next) {
50
+ return this.successfulReconnectionEventsProxy$
51
+ .asObservable()
52
+ .subscribe(next);
53
+ }
54
+ clearReconnectionTimer() {
55
+ if (this.reconnectionTimerId) {
56
+ clearTimeout(this.reconnectionTimerId);
57
+ this.reconnectionTimerId = null;
58
+ }
59
+ }
60
+ setFirstReconnectionTimeout() {
61
+ const min = CentrifugoWebSocketService.timeoutsMs.reconnection -
62
+ CentrifugoWebSocketService.timeoutsMs.reconnectionMaxDeviation;
63
+ const max = CentrifugoWebSocketService.timeoutsMs.reconnection +
64
+ CentrifugoWebSocketService.timeoutsMs.reconnectionMaxDeviation;
65
+ this.reconnectionTimeoutMs =
66
+ Math.floor(Math.random() * (max - min + 1)) + min;
67
+ }
68
+ incrementReconnectionTimeout() {
69
+ this.reconnectionTimeoutMs =
70
+ this.reconnectionTimeoutMs *
71
+ CentrifugoWebSocketService.reconnectionTimeoutIncrementFactor;
72
+ }
73
+ async getCentrifugoClient() {
74
+ return import('centrifuge').then((module) => module.Centrifuge);
75
+ }
76
+ async createConnection(url, channel) {
77
+ if (this.isConnectionOpen || this.isConnecting) {
78
+ return;
79
+ }
80
+ // eslint-disable-next-line @typescript-eslint/naming-convention
81
+ const CentrifugeClient = await this.getCentrifugoClient();
82
+ const websocketUrl = url ?? this.url;
83
+ const websocketChannel = channel ?? this.channel;
84
+ this.connection = new CentrifugeClient(websocketUrl, {
85
+ debug: true,
86
+ maxReconnectDelay: 1500,
87
+ maxServerPingDelay: 1000,
88
+ });
89
+ return new Promise((resolve, reject) => {
90
+ this.connection
91
+ .on('connecting', () => {
92
+ this.isConnecting = true;
93
+ })
94
+ .on('connected', () => {
95
+ this.onConnect();
96
+ resolve();
97
+ })
98
+ .on('disconnected', (ctx) => {
99
+ this.onDisconnect(ctx, websocketChannel);
100
+ reject();
101
+ })
102
+ .on('error', (ctx) => {
103
+ const message = `code ${ctx.error.code} - ${ctx.error.message}`;
104
+ this.elkLoggerService.log(`connection error: ${message}`, [ErrorTags.WS], {
105
+ channel: websocketChannel,
106
+ });
107
+ })
108
+ .connect();
109
+ this.subscription = this.connection.newSubscription(websocketChannel, this.getSubscriptionOptions(websocketChannel));
110
+ this.subscription
111
+ .on('subscribed', (ctx) => {
112
+ this.subscriptionPosition = ctx.streamPosition;
113
+ this.prevSubscribedChannel = websocketChannel;
114
+ })
115
+ .on('publication', (ctx) => {
116
+ const message = ctx.data;
117
+ this.elkLoggerService.log(`websocket message received: ${message}`, [ErrorTags.WS], {
118
+ channel: websocketChannel,
119
+ });
120
+ this.incomingMessages$.next(ctx);
121
+ })
122
+ .on('error', (ctx) => {
123
+ const message = `code ${ctx.error.code} - ${ctx.error.message}`;
124
+ this.elkLoggerService.log(`subscription error: ${message}`, [ErrorTags.WS], {
125
+ channel: websocketChannel,
126
+ });
127
+ })
128
+ .subscribe();
129
+ });
130
+ }
131
+ onConnect() {
132
+ clearTimeout(this.openConnectionTimerId);
133
+ this.isConnecting = false;
134
+ this.isConnectionOpen = true;
135
+ }
136
+ onDisconnect(ctx, websocketChannel) {
137
+ this.isConnecting = false;
138
+ this.isConnectionOpen = false;
139
+ /* If connection error, cause any connection error isn't 0 */
140
+ if (ctx.code !== 0) {
141
+ const message = `code ${ctx.code} - ${ctx.reason}`;
142
+ this.elkLoggerService.log(`disconnected error: ${message}`, [ErrorTags.WS], {
143
+ channel: websocketChannel,
144
+ });
145
+ (async () => {
146
+ await this.waitWhileNotReconnect();
147
+ })();
148
+ }
149
+ }
150
+ async reconnect() {
151
+ this.clearReconnectionTimer();
152
+ return new Promise((resolve) => {
153
+ this.reconnectionTimerId = setTimeout(() => {
154
+ this.createConnection()
155
+ .then(() => resolve(true))
156
+ .catch(() => resolve(false));
157
+ this.incrementReconnectionTimeout();
158
+ }, this.reconnectionTimeoutMs);
159
+ });
160
+ }
161
+ async waitWhileNotReconnect() {
162
+ this.clearReconnectionTimer();
163
+ this.setFirstReconnectionTimeout();
164
+ let isConnected = false;
165
+ const beforeTimer = performance.now();
166
+ while (!isConnected) {
167
+ isConnected = await this.reconnect();
168
+ }
169
+ const afterTimer = performance.now();
170
+ const timerDuration = afterTimer - beforeTimer;
171
+ this.elkLoggerService.log(`fallback to reconnection timer: duration ${timerDuration}ms`, [ErrorTags.WS], {
172
+ channel: this.channel,
173
+ });
174
+ this.successfulReconnectionEventsProxy$.next();
175
+ }
176
+ getSubscriptionOptions(websocketChannel) {
177
+ const options = {
178
+ recoverable: true,
179
+ };
180
+ if (websocketChannel === this.prevSubscribedChannel &&
181
+ this.subscriptionPosition) {
182
+ options.since = this.subscriptionPosition;
183
+ }
184
+ return options;
185
+ }
186
+ }
187
+ CentrifugoWebSocketService.reconnectionTimeoutIncrementFactor = 2;
188
+ CentrifugoWebSocketService.timeoutsMs = {
189
+ reconnection: 1000,
190
+ reconnectionMaxDeviation: 1000,
191
+ };
192
+ CentrifugoWebSocketService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CentrifugoWebSocketService, deps: [{ token: i1.ElkLoggerService }], target: i0.ɵɵFactoryTarget.Injectable });
193
+ CentrifugoWebSocketService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CentrifugoWebSocketService, providedIn: 'root' });
194
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CentrifugoWebSocketService, decorators: [{
195
+ type: Injectable,
196
+ args: [{
197
+ providedIn: 'root',
198
+ }]
199
+ }], ctorParameters: function () { return [{ type: i1.ElkLoggerService }]; } });
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VudHJpZnVnby13ZWItc29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS93ZWItc29ja2V0L2NlbnRyaWZ1Z28td2ViLXNvY2tldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBU3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFFL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7OztBQUtwRSxNQUFNLE9BQU8sMEJBQTBCO0lBOEJyQyxZQUFvQyxnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQTNCL0QsU0FBSSxHQUFHLG1CQUFtQixDQUFDLFVBQVUsQ0FBQztRQVFyQyx3QkFBbUIsR0FBeUMsSUFBSSxDQUFDO1FBT2pFLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUtaLHNCQUFpQixHQUNoQyxJQUFJLE9BQU8sRUFBc0IsQ0FBQztRQUVuQix1Q0FBa0MsR0FDakQsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUVtRCxDQUFDO0lBRW5FLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBVyxFQUFFLE9BQWU7UUFDNUMsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLEdBQUcsSUFBSSxPQUFPLEtBQUssSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoRCxPQUFPO1NBQ1I7UUFFRCxJQUFJO1lBQ0Ys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QUFJO0NBQy9CLENBQUM7dUhBUlMsMEJBQTBCOzJIQUExQiwwQkFBMEIsY0FGekIsTUFBTTsyRkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgdHlwZSB7XG4gIENlbnRyaWZ1Z2UsXG4gIERpc2Nvbm5lY3RlZENvbnRleHQsXG4gIFB1YmxpY2F0aW9uQ29udGV4dCxcbiAgU3Vic2NyaXB0aW9uIGFzIENlbnRyaWZ1Z2VTdWJzY3JpcHRpb24sXG59IGZyb20gJ2NlbnRyaWZ1Z2UnO1xuaW1wb3J0IHsgU3RyZWFtUG9zaXRpb24sIFN1YnNjcmlwdGlvbk9wdGlvbnMgfSBmcm9tICdjZW50cmlmdWdlL2J1aWxkL3R5cGVzJztcbmltcG9ydCB7IEVsa0xvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi9leGNlcHRpb25zLWhhbmRsaW5nL2Vsay9lbGstbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgV3NFcnJvciB9IGZyb20gJy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZXJyb3JzL3dzLWVycm9yLmNsYXNzJztcbmltcG9ydCB7IEVycm9yVGFncyB9IGZyb20gJy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZXJyb3JzL2Vsay1lcnJvci10eXBlcy5lbnVtJztcbmltcG9ydCB7IFdlYlNvY2tldENsaWVudCB9IGZyb20gJy4vd2ViLXNvY2tldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgV2ViU29ja2V0Q2xpZW50VHlwZSB9IGZyb20gJy4vd2ViLXNvY2tldC1jbGllbnQtdHlwZS5lbnVtJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENlbnRyaWZ1Z29XZWJTb2NrZXRTZXJ2aWNlIGltcGxlbWVudHMgV2ViU29ja2V0Q2xpZW50IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSByZWNvbm5lY3Rpb25UaW1lb3V0SW5jcmVtZW50RmFjdG9yID0gMjtcblxuICBwdWJsaWMgdHlwZSA9IFdlYlNvY2tldENsaWVudFR5cGUuY2VudHJpZnVnbztcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSB0aW1lb3V0c01zID0ge1xuICAgIHJlY29ubmVjdGlvbjogMTAwMCxcbiAgICByZWNvbm5lY3Rpb25NYXhEZXZpYXRpb246IDEwMDAsXG4gIH07XG5cbiAgcHJpdmF0ZSByZWNvbm5lY3Rpb25UaW1lb3V0TXMhOiBudW1iZXI7XG4gIHByaXZhdGUgcmVjb25uZWN0aW9uVGltZXJJZDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IG9wZW5Db25uZWN0aW9uVGltZXJJZDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgY29ubmVjdGlvbiE6IENlbnRyaWZ1Z2U7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uITogQ2VudHJpZnVnZVN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25Qb3NpdGlvbj86IFN0cmVhbVBvc2l0aW9uO1xuICBwcml2YXRlIGlzQ29ubmVjdGlvbk9wZW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBpc0Nvbm5lY3RpbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSB1cmwhOiBzdHJpbmc7XG4gIHByaXZhdGUgY2hhbm5lbCE6IHN0cmluZztcbiAgcHJpdmF0ZSBwcmV2U3Vic2NyaWJlZENoYW5uZWw/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpbmNvbWluZ01lc3NhZ2VzJDogU3ViamVjdDxQdWJsaWNhdGlvbkNvbnRleHQ+ID1cbiAgICBuZXcgU3ViamVjdDxQdWJsaWNhdGlvbkNvbnRleHQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdWNjZXNzZnVsUmVjb25uZWN0aW9uRXZlbnRzUHJveHkkOiBTdWJqZWN0PHZvaWQ+ID1cbiAgICBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGVsa0xvZ2dlclNlcnZpY2U6IEVsa0xvZ2dlclNlcnZpY2UpIHt9XG5cbiAgcHVibGljIGFzeW5jIG9wZW4odXJsOiBzdHJpbmcsIGNoYW5uZWw6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh1cmwgPT09IHRoaXMudXJsICYmIGNoYW5uZWwgPT09IHRoaXMuY2hhbm5lbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB0aGlzLnVybCA9IHVybDtcbiAgICAgIHRoaXMuY2hhbm5lbCA9IGNoYW5uZWw7XG4gICAgICBhd2FpdCB0aGlzLmNyZWF0ZUNvbm5lY3Rpb24odXJsLCBjaGFubmVsKTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBlcnJvciBpcyB1bmtub3duXG4gICAgICBjb25zdCBtZXNzYWdlID0gKGVycm9yPy5tZXNzYWdlIHx8IGVycm9yKSBhcyBzdHJpbmc7XG4gICAgICBjb25zdCB1bmtub3duRXJyb3IgPSBuZXcgV3NFcnJvcihcbiAgICAgICAgYHVua25vd24gd2Vic29ja2V0IGVycm9yOiAke21lc3NhZ2V9YCxcbiAgICAgICAgY2hhbm5lbFxuICAgICAgKTtcblxuICAgICAgdGhpcy5lbGtMb2dnZXJTZXJ2aWNlLmhhbmRsZUVycm9yKHVua25vd25FcnJvcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJSZWNvbm5lY3Rpb25UaW1lcigpO1xuXG4gICAgaWYgKCF0aGlzLmlzQ29ubmVjdGlvbk9wZW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNvbm5lY3Rpb24uZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgcHVibGljIGdldCBtZXNzYWdlcyQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pbmNvbWluZ01lc3NhZ2VzJFxuICAgICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgLy8gZXZlbnQgZG9uJ3QgcmVzcGVjdCB0eXBlIGZyb20gYXJndW1lbnQsIGl0J3Mgd2VpcmRcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtcmV0dXJuXG4gICAgICAgIC5waXBlKG1hcCgoZXZlbnQpID0+IGV2ZW50LmRhdGEpKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3Vic2NyaWJlT25TdWNjZXNzZnVsUmVjb25uZWN0aW9uKG5leHQ/OiAoKSA9PiB2b2lkKTogU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5zdWNjZXNzZnVsUmVjb25uZWN0aW9uRXZlbnRzUHJveHkkXG4gICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgIC5zdWJzY3JpYmUobmV4dCk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyUmVjb25uZWN0aW9uVGltZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb25uZWN0aW9uVGltZXJJZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMucmVjb25uZWN0aW9uVGltZXJJZCk7XG4gICAgICB0aGlzLnJlY29ubmVjdGlvblRpbWVySWQgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0Rmlyc3RSZWNvbm5lY3Rpb25UaW1lb3V0KCk6IHZvaWQge1xuICAgIGNvbnN0IG1pbiA9XG4gICAgICBDZW50cmlmdWdvV2ViU29ja2V0U2VydmljZS50aW1lb3V0c01zLnJlY29ubmVjdGlvbiAtXG4gICAgICBDZW50cmlmdWdvV2ViU29ja2V0U2VydmljZS50aW1lb3V0c01zLnJlY29ubmVjdGlvbk1heERldmlhdGlvbjtcbiAgICBjb25zdCBtYXggPVxuICAgICAgQ2VudHJpZnVnb1dlYlNvY2tldFNlcnZpY2UudGltZW91dHNNcy5yZWNvbm5lY3Rpb24gK1xuICAgICAgQ2VudHJpZnVnb1dlYlNvY2tldFNlcnZpY2UudGltZW91dHNNcy5yZWNvbm5lY3Rpb25NYXhEZXZpYXRpb247XG4gICAgdGhpcy5yZWNvbm5lY3Rpb25UaW1lb3V0TXMgPVxuICAgICAgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKG1heCAtIG1pbiArIDEpKSArIG1pbjtcbiAgfVxuXG4gIHByaXZhdGUgaW5jcmVtZW50UmVjb25uZWN0aW9uVGltZW91dCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlY29ubmVjdGlvblRpbWVvdXRNcyA9XG4gICAgICB0aGlzLnJlY29ubmVjdGlvblRpbWVvdXRNcyAqXG4gICAgICBDZW50cmlmdWdvV2ViU29ja2V0U2VydmljZS5yZWNvbm5lY3Rpb25UaW1lb3V0SW5jcmVtZW50RmFjdG9yO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRDZW50cmlmdWdvQ2xpZW50KCk6IFByb21pc2U8dHlwZW9mIENlbnRyaWZ1Z2U+IHtcbiAgICByZXR1cm4gaW1wb3J0KCdjZW50cmlmdWdlJykudGhlbigobW9kdWxlKSA9PiBtb2R1bGUuQ2VudHJpZnVnZSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNyZWF0ZUNvbm5lY3Rpb24oXG4gICAgdXJsPzogc3RyaW5nLFxuICAgIGNoYW5uZWw/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuaXNDb25uZWN0aW9uT3BlbiB8fCB0aGlzLmlzQ29ubmVjdGluZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICBjb25zdCBDZW50cmlmdWdlQ2xpZW50ID0gYXdhaXQgdGhpcy5nZXRDZW50cmlmdWdvQ2xpZW50KCk7XG5cbiAgICBjb25zdCB3ZWJzb2NrZXRVcmwgPSB1cmwgPz8gdGhpcy51cmw7XG4gICAgY29uc3Qgd2Vic29ja2V0Q2hhbm5lbCA9IGNoYW5uZWwgPz8gdGhpcy5jaGFubmVsO1xuXG4gICAgdGhpcy5jb25uZWN0aW9uID0gbmV3IENlbnRyaWZ1Z2VDbGllbnQod2Vic29ja2V0VXJsLCB7XG4gICAgICBkZWJ1ZzogdHJ1ZSxcbiAgICAgIG1heFJlY29ubmVjdERlbGF5OiAxNTAwLFxuICAgICAgbWF4U2VydmVyUGluZ0RlbGF5OiAxMDAwLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuY29ubmVjdGlvblxuICAgICAgICAub24oJ2Nvbm5lY3RpbmcnLCAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pc0Nvbm5lY3RpbmcgPSB0cnVlO1xuICAgICAgICB9KVxuICAgICAgICAub24oJ2Nvbm5lY3RlZCcsICgpID0+IHtcbiAgICAgICAgICB0aGlzLm9uQ29ubmVjdCgpO1xuICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfSlcbiAgICAgICAgLm9uKCdkaXNjb25uZWN0ZWQnLCAoY3R4KSA9PiB7XG4gICAgICAgICAgdGhpcy5vbkRpc2Nvbm5lY3QoY3R4LCB3ZWJzb2NrZXRDaGFubmVsKTtcbiAgICAgICAgICByZWplY3QoKTtcbiAgICAgICAgfSlcbiAgICAgICAgLm9uKCdlcnJvcicsIChjdHgpID0+IHtcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYGNvZGUgJHtjdHguZXJyb3IuY29kZX0gLSAke2N0eC5lcnJvci5tZXNzYWdlfWA7XG5cbiAgICAgICAgICB0aGlzLmVsa0xvZ2dlclNlcnZpY2UubG9nKFxuICAgICAgICAgICAgYGNvbm5lY3Rpb24gZXJyb3I6ICR7bWVzc2FnZX1gLFxuICAgICAgICAgICAgW0Vycm9yVGFncy5XU10sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNoYW5uZWw6IHdlYnNvY2tldENoYW5uZWwsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNvbm5lY3QoKTtcblxuICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmNvbm5lY3Rpb24ubmV3U3Vic2NyaXB0aW9uKFxuICAgICAgICB3ZWJzb2NrZXRDaGFubmVsLFxuICAgICAgICB0aGlzLmdldFN1YnNjcmlwdGlvbk9wdGlvbnMod2Vic29ja2V0Q2hhbm5lbClcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uXG4gICAgICAgIC5vbignc3Vic2NyaWJlZCcsIChjdHgpID0+IHtcbiAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvblBvc2l0aW9uID0gY3R4LnN0cmVhbVBvc2l0aW9uO1xuICAgICAgICAgIHRoaXMucHJldlN1YnNjcmliZWRDaGFubmVsID0gd2Vic29ja2V0Q2hhbm5lbDtcbiAgICAgICAgfSlcbiAgICAgICAgLm9uKCdwdWJsaWNhdGlvbicsIChjdHgpID0+IHtcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gY3R4LmRhdGEgYXMgc3RyaW5nO1xuXG4gICAgICAgICAgdGhpcy5lbGtMb2dnZXJTZXJ2aWNlLmxvZyhcbiAgICAgICAgICAgIGB3ZWJzb2NrZXQgbWVzc2FnZSByZWNlaXZlZDogJHttZXNzYWdlfWAsXG4gICAgICAgICAgICBbRXJyb3JUYWdzLldTXSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2hhbm5lbDogd2Vic29ja2V0Q2hhbm5lbCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuXG4gICAgICAgICAgdGhpcy5pbmNvbWluZ01lc3NhZ2VzJC5uZXh0KGN0eCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5vbignZXJyb3InLCAoY3R4KSA9PiB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBjb2RlICR7Y3R4LmVycm9yLmNvZGV9IC0gJHtjdHguZXJyb3IubWVzc2FnZX1gO1xuXG4gICAgICAgICAgdGhpcy5lbGtMb2dnZXJTZXJ2aWNlLmxvZyhcbiAgICAgICAgICAgIGBzdWJzY3JpcHRpb24gZXJyb3I6ICR7bWVzc2FnZX1gLFxuICAgICAgICAgICAgW0Vycm9yVGFncy5XU10sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNoYW5uZWw6IHdlYnNvY2tldENoYW5uZWwsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfSlcbiAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkNvbm5lY3QoKTogdm9pZCB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMub3BlbkNvbm5lY3Rpb25UaW1lcklkKTtcbiAgICB0aGlzLmlzQ29ubmVjdGluZyA9IGZhbHNlO1xuICAgIHRoaXMuaXNDb25uZWN0aW9uT3BlbiA9IHRydWU7XG4gIH1cblxuICBwcml2YXRlIG9uRGlzY29ubmVjdChcbiAgICBjdHg6IERpc2Nvbm5lY3RlZENvbnRleHQsXG4gICAgd2Vic29ja2V0Q2hhbm5lbDogc3RyaW5nXG4gICk6IHZvaWQge1xuICAgIHRoaXMuaXNDb25uZWN0aW5nID0gZmFsc2U7XG4gICAgdGhpcy5pc0Nvbm5lY3Rpb25PcGVuID0gZmFsc2U7XG5cbiAgICAvKiBJZiBjb25uZWN0aW9uIGVycm9yLCBjYXVzZSBhbnkgY29ubmVjdGlvbiBlcnJvciBpc24ndCAwICovXG4gICAgaWYgKGN0eC5jb2RlICE9PSAwKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYGNvZGUgJHtjdHguY29kZX0gLSAke2N0eC5yZWFzb259YDtcblxuICAgICAgdGhpcy5lbGtMb2dnZXJTZXJ2aWNlLmxvZyhcbiAgICAgICAgYGRpc2Nvbm5lY3RlZCBlcnJvcjogJHttZXNzYWdlfWAsXG4gICAgICAgIFtFcnJvclRhZ3MuV1NdLFxuICAgICAgICB7XG4gICAgICAgICAgY2hhbm5lbDogd2Vic29ja2V0Q2hhbm5lbCxcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgKGFzeW5jICgpID0+IHtcbiAgICAgICAgYXdhaXQgdGhpcy53YWl0V2hpbGVOb3RSZWNvbm5lY3QoKTtcbiAgICAgIH0pKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZWNvbm5lY3QoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdGhpcy5jbGVhclJlY29ubmVjdGlvblRpbWVyKCk7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIHRoaXMucmVjb25uZWN0aW9uVGltZXJJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmNyZWF0ZUNvbm5lY3Rpb24oKVxuICAgICAgICAgIC50aGVuKCgpID0+IHJlc29sdmUodHJ1ZSkpXG4gICAgICAgICAgLmNhdGNoKCgpID0+IHJlc29sdmUoZmFsc2UpKTtcbiAgICAgICAgdGhpcy5pbmNyZW1lbnRSZWNvbm5lY3Rpb25UaW1lb3V0KCk7XG4gICAgICB9LCB0aGlzLnJlY29ubmVjdGlvblRpbWVvdXRNcyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHdhaXRXaGlsZU5vdFJlY29ubmVjdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmNsZWFyUmVjb25uZWN0aW9uVGltZXIoKTtcbiAgICB0aGlzLnNldEZpcnN0UmVjb25uZWN0aW9uVGltZW91dCgpO1xuXG4gICAgbGV0IGlzQ29ubmVjdGVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBiZWZvcmVUaW1lciA9IHBlcmZvcm1hbmNlLm5vdygpO1xuXG4gICAgd2hpbGUgKCFpc0Nvbm5lY3RlZCkge1xuICAgICAgaXNDb25uZWN0ZWQgPSBhd2FpdCB0aGlzLnJlY29ubmVjdCgpO1xuICAgIH1cblxuICAgIGNvbnN0IGFmdGVyVGltZXIgPSBwZXJmb3JtYW5jZS5ub3coKTtcblxuICAgIGNvbnN0IHRpbWVyRHVyYXRpb24gPSBhZnRlclRpbWVyIC0gYmVmb3JlVGltZXI7XG5cbiAgICB0aGlzLmVsa0xvZ2dlclNlcnZpY2UubG9nKFxuICAgICAgYGZhbGxiYWNrIHRvIHJlY29ubmVjdGlvbiB0aW1lcjogZHVyYXRpb24gJHt0aW1lckR1cmF0aW9ufW1zYCxcbiAgICAgIFtFcnJvclRhZ3MuV1NdLFxuICAgICAge1xuICAgICAgICBjaGFubmVsOiB0aGlzLmNoYW5uZWwsXG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMuc3VjY2Vzc2Z1bFJlY29ubmVjdGlvbkV2ZW50c1Byb3h5JC5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIGdldFN1YnNjcmlwdGlvbk9wdGlvbnMoXG4gICAgd2Vic29ja2V0Q2hhbm5lbDogc3RyaW5nXG4gICk6IFBhcnRpYWw8U3Vic2NyaXB0aW9uT3B0aW9ucz4ge1xuICAgIGNvbnN0IG9wdGlvbnM6IFBhcnRpYWw8U3Vic2NyaXB0aW9uT3B0aW9ucz4gPSB7XG4gICAgICByZWNvdmVyYWJsZTogdHJ1ZSxcbiAgICB9O1xuXG4gICAgaWYgKFxuICAgICAgd2Vic29ja2V0Q2hhbm5lbCA9PT0gdGhpcy5wcmV2U3Vic2NyaWJlZENoYW5uZWwgJiZcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uUG9zaXRpb25cbiAgICApIHtcbiAgICAgIG9wdGlvbnMuc2luY2UgPSB0aGlzLnN1YnNjcmlwdGlvblBvc2l0aW9uO1xuICAgIH1cblxuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,116 @@
1
+ import { Subject } from 'rxjs';
2
+ import { map } from 'rxjs/operators';
3
+ import { Injectable } from '@angular/core';
4
+ import { WebSocketClientType } from './web-socket-client-type.enum';
5
+ import * as i0 from "@angular/core";
6
+ export class NchanWebSocketService {
7
+ constructor() {
8
+ this.type = WebSocketClientType.nchan;
9
+ this.reconnectionTimerId = null;
10
+ this.incomingMessages$ = new Subject();
11
+ this.successfulReconnectionEventsProxy$ = new Subject();
12
+ }
13
+ async open() {
14
+ if (this.openPromise && !this.isClosed()) {
15
+ return this.openPromise;
16
+ }
17
+ this.openPromise = this.createConnection()
18
+ .catch(async () => {
19
+ return this.waitWhileNotReconnect();
20
+ })
21
+ .then(() => {
22
+ this.connection.onclose = async () => this.open();
23
+ });
24
+ return this.openPromise;
25
+ }
26
+ close() {
27
+ this.clearReconnectionTimer();
28
+ if (this.isClosed()) {
29
+ return;
30
+ }
31
+ this.connection.onclose = null;
32
+ this.connection.close();
33
+ }
34
+ get messages$() {
35
+ return this.incomingMessages$
36
+ .asObservable()
37
+ .pipe(map((event) => event.data));
38
+ }
39
+ subscribeOnSuccessfulReconnection(next) {
40
+ return this.successfulReconnectionEventsProxy$
41
+ .asObservable()
42
+ .subscribe(next);
43
+ }
44
+ isClosed() {
45
+ if (!this.connection) {
46
+ return true;
47
+ }
48
+ return [this.connection.CLOSED, this.connection.CLOSING].includes(this.connection.readyState);
49
+ }
50
+ clearReconnectionTimer() {
51
+ if (this.reconnectionTimerId) {
52
+ clearTimeout(this.reconnectionTimerId);
53
+ this.reconnectionTimerId = null;
54
+ }
55
+ }
56
+ setFirstReconnectionTimeout() {
57
+ const min = NchanWebSocketService.timeoutsMs.reconnection -
58
+ NchanWebSocketService.timeoutsMs.reconnectionMaxDeviation;
59
+ const max = NchanWebSocketService.timeoutsMs.reconnection +
60
+ NchanWebSocketService.timeoutsMs.reconnectionMaxDeviation;
61
+ this.reconnectionTimeoutMs =
62
+ Math.floor(Math.random() * (max - min + 1)) + min;
63
+ }
64
+ incrementReconnectionTimeout() {
65
+ this.reconnectionTimeoutMs =
66
+ this.reconnectionTimeoutMs *
67
+ NchanWebSocketService.reconnectionTimeoutIncrementFactor;
68
+ }
69
+ async createConnection() {
70
+ this.connection = new WebSocket(this.url);
71
+ this.connection.onmessage = this.incomingMessages$.next.bind(this.incomingMessages$);
72
+ return new Promise((resolve, reject) => {
73
+ this.connection.onopen = () => {
74
+ clearTimeout(this.openConnectionTimerId);
75
+ resolve();
76
+ };
77
+ this.connection.onclose = () => {
78
+ reject();
79
+ };
80
+ });
81
+ }
82
+ async reconnect() {
83
+ this.clearReconnectionTimer();
84
+ return new Promise((resolve) => {
85
+ this.reconnectionTimerId = setTimeout(() => {
86
+ this.createConnection()
87
+ .then(() => resolve(true))
88
+ .catch(() => resolve(false));
89
+ this.incrementReconnectionTimeout();
90
+ }, this.reconnectionTimeoutMs);
91
+ });
92
+ }
93
+ async waitWhileNotReconnect() {
94
+ this.clearReconnectionTimer();
95
+ this.setFirstReconnectionTimeout();
96
+ let isConnected = false;
97
+ while (!isConnected) {
98
+ isConnected = await this.reconnect();
99
+ }
100
+ this.successfulReconnectionEventsProxy$.next();
101
+ }
102
+ }
103
+ NchanWebSocketService.reconnectionTimeoutIncrementFactor = 2;
104
+ NchanWebSocketService.timeoutsMs = {
105
+ reconnection: 1500,
106
+ reconnectionMaxDeviation: 1500,
107
+ };
108
+ NchanWebSocketService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NchanWebSocketService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
109
+ NchanWebSocketService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NchanWebSocketService, providedIn: 'root' });
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NchanWebSocketService, decorators: [{
111
+ type: Injectable,
112
+ args: [{
113
+ providedIn: 'root',
114
+ }]
115
+ }] });
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmNoYW4td2ViLXNvY2tldC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvd2ViLXNvY2tldC9uY2hhbi13ZWItc29ja2V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBS3BFLE1BQU0sT0FBTyxxQkFBcUI7SUFIbEM7UUFRUyxTQUFJLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDO1FBVWhDLHdCQUFtQixHQUF5QyxJQUFJLENBQUM7UUFNeEQsc0JBQWlCLEdBQ2hDLElBQUksT0FBTyxFQUFnQixDQUFDO1FBQ2IsdUNBQWtDLEdBQ2pELElBQUksT0FBTyxFQUFRLENBQUM7S0FzSHZCO0lBcEhRLEtBQUssQ0FBQyxJQUFJO1FBQ2YsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3hDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUN6QjtRQUVELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFO2FBQ3ZDLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNoQixPQUFPLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3RDLENBQUMsQ0FBQzthQUNELElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztRQUVMLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBRTlCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ25CLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUMvQixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCO2FBQzFCLFlBQVksRUFBRTthQUNkLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUEyQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU0saUNBQWlDLENBQUMsSUFBaUI7UUFDeEQsT0FBTyxJQUFJLENBQUMsa0NBQWtDO2FBQzNDLFlBQVksRUFBRTthQUNkLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRU8sUUFBUTtRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQy9ELElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUMzQixDQUFDO0lBQ0osQ0FBQztJQUVPLHNCQUFzQjtRQUM1QixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUM1QixZQUFZLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztTQUNqQztJQUNILENBQUM7SUFFTywyQkFBMkI7UUFDakMsTUFBTSxHQUFHLEdBQ1AscUJBQXFCLENBQUMsVUFBVSxDQUFDLFlBQVk7WUFDN0MscUJBQXFCLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDO1FBQzVELE1BQU0sR0FBRyxHQUNQLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxZQUFZO1lBQzdDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQztRQUM1RCxJQUFJLENBQUMscUJBQXFCO1lBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUN0RCxDQUFDO0lBRU8sNEJBQTRCO1FBQ2xDLElBQUksQ0FBQyxxQkFBcUI7WUFDeEIsSUFBSSxDQUFDLHFCQUFxQjtnQkFDMUIscUJBQXFCLENBQUMsa0NBQWtDLENBQUM7SUFDN0QsQ0FBQztJQUVPLEtBQUssQ0FBQyxnQkFBZ0I7UUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQzFELElBQUksQ0FBQyxpQkFBaUIsQ0FDdkIsQ0FBQztRQUVGLE9BQU8sSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO2dCQUM1QixZQUFZLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7Z0JBQ3pDLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQyxDQUFDO1lBRUYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFO2dCQUM3QixNQUFNLEVBQUUsQ0FBQztZQUNYLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLEtBQUssQ0FBQyxTQUFTO1FBQ3JCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBRTlCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO3FCQUNwQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUN6QixLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQy9CLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1lBQ3RDLENBQUMsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxLQUFLLENBQUMscUJBQXFCO1FBQ2pDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1FBRW5DLElBQUksV0FBVyxHQUFHLEtBQUssQ0FBQztRQUV4QixPQUFPLENBQUMsV0FBVyxFQUFFO1lBQ25CLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUN0QztRQUVELElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqRCxDQUFDOztBQTVJc0Isd0RBQWtDLEdBQUcsQ0FBQyxDQUFDO0FBTXRDLGdDQUFVLEdBQUc7SUFDbkMsWUFBWSxFQUFFLElBQUk7SUFDbEIsd0JBQXdCLEVBQUUsSUFBSTtDQUMvQixDQUFDO2tIQVZTLHFCQUFxQjtzSEFBckIscUJBQXFCLGNBRnBCLE1BQU07MkZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2ViU29ja2V0Q2xpZW50IH0gZnJvbSAnLi93ZWItc29ja2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBXZWJTb2NrZXRDbGllbnRUeXBlIH0gZnJvbSAnLi93ZWItc29ja2V0LWNsaWVudC10eXBlLmVudW0nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTmNoYW5XZWJTb2NrZXRTZXJ2aWNlIGltcGxlbWVudHMgV2ViU29ja2V0Q2xpZW50IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSByZWNvbm5lY3Rpb25UaW1lb3V0SW5jcmVtZW50RmFjdG9yID0gMjtcblxuICBwdWJsaWMgdXJsITogc3RyaW5nO1xuXG4gIHB1YmxpYyB0eXBlID0gV2ViU29ja2V0Q2xpZW50VHlwZS5uY2hhbjtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSB0aW1lb3V0c01zID0ge1xuICAgIHJlY29ubmVjdGlvbjogMTUwMCxcbiAgICByZWNvbm5lY3Rpb25NYXhEZXZpYXRpb246IDE1MDAsXG4gIH07XG5cbiAgcHJpdmF0ZSBvcGVuUHJvbWlzZTogUHJvbWlzZTx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIHJlY29ubmVjdGlvblRpbWVvdXRNcyE6IG51bWJlcjtcbiAgcHJpdmF0ZSByZWNvbm5lY3Rpb25UaW1lcklkOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgb3BlbkNvbm5lY3Rpb25UaW1lcklkOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBjb25uZWN0aW9uITogV2ViU29ja2V0O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaW5jb21pbmdNZXNzYWdlcyQ6IFN1YmplY3Q8TWVzc2FnZUV2ZW50PiA9XG4gICAgbmV3IFN1YmplY3Q8TWVzc2FnZUV2ZW50PigpO1xuICBwcml2YXRlIHJlYWRvbmx5IHN1Y2Nlc3NmdWxSZWNvbm5lY3Rpb25FdmVudHNQcm94eSQ6IFN1YmplY3Q8dm9pZD4gPVxuICAgIG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIGFzeW5jIG9wZW4oKTogUHJvbWlzZTx1bmtub3duPiB7XG4gICAgaWYgKHRoaXMub3BlblByb21pc2UgJiYgIXRoaXMuaXNDbG9zZWQoKSkge1xuICAgICAgcmV0dXJuIHRoaXMub3BlblByb21pc2U7XG4gICAgfVxuXG4gICAgdGhpcy5vcGVuUHJvbWlzZSA9IHRoaXMuY3JlYXRlQ29ubmVjdGlvbigpXG4gICAgICAuY2F0Y2goYXN5bmMgKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy53YWl0V2hpbGVOb3RSZWNvbm5lY3QoKTtcbiAgICAgIH0pXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuY29ubmVjdGlvbi5vbmNsb3NlID0gYXN5bmMgKCkgPT4gdGhpcy5vcGVuKCk7XG4gICAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLm9wZW5Qcm9taXNlO1xuICB9XG5cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJSZWNvbm5lY3Rpb25UaW1lcigpO1xuXG4gICAgaWYgKHRoaXMuaXNDbG9zZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY29ubmVjdGlvbi5vbmNsb3NlID0gbnVsbDtcbiAgICB0aGlzLmNvbm5lY3Rpb24uY2xvc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbWVzc2FnZXMkKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuaW5jb21pbmdNZXNzYWdlcyRcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUobWFwKChldmVudDogTWVzc2FnZUV2ZW50PHN0cmluZz4pID0+IGV2ZW50LmRhdGEpKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJzY3JpYmVPblN1Y2Nlc3NmdWxSZWNvbm5lY3Rpb24obmV4dD86ICgpID0+IHZvaWQpOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzLnN1Y2Nlc3NmdWxSZWNvbm5lY3Rpb25FdmVudHNQcm94eSRcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnN1YnNjcmliZShuZXh0KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNDbG9zZWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmNvbm5lY3Rpb24pIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBbdGhpcy5jb25uZWN0aW9uLkNMT1NFRCwgdGhpcy5jb25uZWN0aW9uLkNMT1NJTkddLmluY2x1ZGVzKFxuICAgICAgdGhpcy5jb25uZWN0aW9uLnJlYWR5U3RhdGVcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhclJlY29ubmVjdGlvblRpbWVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlY29ubmVjdGlvblRpbWVySWQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnJlY29ubmVjdGlvblRpbWVySWQpO1xuICAgICAgdGhpcy5yZWNvbm5lY3Rpb25UaW1lcklkID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEZpcnN0UmVjb25uZWN0aW9uVGltZW91dCgpOiB2b2lkIHtcbiAgICBjb25zdCBtaW4gPVxuICAgICAgTmNoYW5XZWJTb2NrZXRTZXJ2aWNlLnRpbWVvdXRzTXMucmVjb25uZWN0aW9uIC1cbiAgICAgIE5jaGFuV2ViU29ja2V0U2VydmljZS50aW1lb3V0c01zLnJlY29ubmVjdGlvbk1heERldmlhdGlvbjtcbiAgICBjb25zdCBtYXggPVxuICAgICAgTmNoYW5XZWJTb2NrZXRTZXJ2aWNlLnRpbWVvdXRzTXMucmVjb25uZWN0aW9uICtcbiAgICAgIE5jaGFuV2ViU29ja2V0U2VydmljZS50aW1lb3V0c01zLnJlY29ubmVjdGlvbk1heERldmlhdGlvbjtcbiAgICB0aGlzLnJlY29ubmVjdGlvblRpbWVvdXRNcyA9XG4gICAgICBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluICsgMSkpICsgbWluO1xuICB9XG5cbiAgcHJpdmF0ZSBpbmNyZW1lbnRSZWNvbm5lY3Rpb25UaW1lb3V0KCk6IHZvaWQge1xuICAgIHRoaXMucmVjb25uZWN0aW9uVGltZW91dE1zID1cbiAgICAgIHRoaXMucmVjb25uZWN0aW9uVGltZW91dE1zICpcbiAgICAgIE5jaGFuV2ViU29ja2V0U2VydmljZS5yZWNvbm5lY3Rpb25UaW1lb3V0SW5jcmVtZW50RmFjdG9yO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjcmVhdGVDb25uZWN0aW9uKCk6IFByb21pc2U8dW5rbm93bj4ge1xuICAgIHRoaXMuY29ubmVjdGlvbiA9IG5ldyBXZWJTb2NrZXQodGhpcy51cmwpO1xuICAgIHRoaXMuY29ubmVjdGlvbi5vbm1lc3NhZ2UgPSB0aGlzLmluY29taW5nTWVzc2FnZXMkLm5leHQuYmluZChcbiAgICAgIHRoaXMuaW5jb21pbmdNZXNzYWdlcyRcbiAgICApO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuY29ubmVjdGlvbi5vbm9wZW4gPSAoKSA9PiB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLm9wZW5Db25uZWN0aW9uVGltZXJJZCk7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH07XG5cbiAgICAgIHRoaXMuY29ubmVjdGlvbi5vbmNsb3NlID0gKCkgPT4ge1xuICAgICAgICByZWplY3QoKTtcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlY29ubmVjdCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB0aGlzLmNsZWFyUmVjb25uZWN0aW9uVGltZXIoKTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgdGhpcy5yZWNvbm5lY3Rpb25UaW1lcklkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY3JlYXRlQ29ubmVjdGlvbigpXG4gICAgICAgICAgLnRoZW4oKCkgPT4gcmVzb2x2ZSh0cnVlKSlcbiAgICAgICAgICAuY2F0Y2goKCkgPT4gcmVzb2x2ZShmYWxzZSkpO1xuICAgICAgICB0aGlzLmluY3JlbWVudFJlY29ubmVjdGlvblRpbWVvdXQoKTtcbiAgICAgIH0sIHRoaXMucmVjb25uZWN0aW9uVGltZW91dE1zKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgd2FpdFdoaWxlTm90UmVjb25uZWN0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuY2xlYXJSZWNvbm5lY3Rpb25UaW1lcigpO1xuICAgIHRoaXMuc2V0Rmlyc3RSZWNvbm5lY3Rpb25UaW1lb3V0KCk7XG5cbiAgICBsZXQgaXNDb25uZWN0ZWQgPSBmYWxzZTtcblxuICAgIHdoaWxlICghaXNDb25uZWN0ZWQpIHtcbiAgICAgIGlzQ29ubmVjdGVkID0gYXdhaXQgdGhpcy5yZWNvbm5lY3QoKTtcbiAgICB9XG5cbiAgICB0aGlzLnN1Y2Nlc3NmdWxSZWNvbm5lY3Rpb25FdmVudHNQcm94eSQubmV4dCgpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,6 @@
1
+ export var WebSocketClientType;
2
+ (function (WebSocketClientType) {
3
+ WebSocketClientType["nchan"] = "nchan";
4
+ WebSocketClientType["centrifugo"] = "centrifugo";
5
+ })(WebSocketClientType || (WebSocketClientType = {}));
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLXNvY2tldC1jbGllbnQtdHlwZS5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvd2ViLXNvY2tldC93ZWItc29ja2V0LWNsaWVudC10eXBlLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksbUJBR1g7QUFIRCxXQUFZLG1CQUFtQjtJQUM3QixzQ0FBZSxDQUFBO0lBQ2YsZ0RBQXlCLENBQUE7QUFDM0IsQ0FBQyxFQUhXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFHOUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBXZWJTb2NrZXRDbGllbnRUeXBlIHtcbiAgbmNoYW4gPSAnbmNoYW4nLFxuICBjZW50cmlmdWdvID0gJ2NlbnRyaWZ1Z28nLFxufVxuIl19
@@ -0,0 +1,28 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { WebSocketClientType } from './web-socket-client-type.enum';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./nchan-web-socket.service";
5
+ import * as i2 from "./centrifugo-web-socket.service";
6
+ // @todo: remove this factory and switch to centrifugo client after centrifugo issues resolved
7
+ export class WebSocketFactory {
8
+ constructor(nchanWebSocket, centrifugoWebSocket) {
9
+ this.nchanWebSocket = nchanWebSocket;
10
+ this.centrifugoWebSocket = centrifugoWebSocket;
11
+ }
12
+ createWebSocketClient(url, clientType) {
13
+ if (clientType === WebSocketClientType.centrifugo) {
14
+ return this.centrifugoWebSocket;
15
+ }
16
+ this.nchanWebSocket.url = url;
17
+ return this.nchanWebSocket;
18
+ }
19
+ }
20
+ WebSocketFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WebSocketFactory, deps: [{ token: i1.NchanWebSocketService }, { token: i2.CentrifugoWebSocketService }], target: i0.ɵɵFactoryTarget.Injectable });
21
+ WebSocketFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WebSocketFactory, providedIn: 'root' });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WebSocketFactory, decorators: [{
23
+ type: Injectable,
24
+ args: [{
25
+ providedIn: 'root',
26
+ }]
27
+ }], ctorParameters: function () { return [{ type: i1.NchanWebSocketService }, { type: i2.CentrifugoWebSocketService }]; } });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLXNvY2tldC5mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvd2ViLXNvY2tldC93ZWItc29ja2V0LmZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7OztBQUVwRSw4RkFBOEY7QUFJOUYsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixZQUNtQixjQUFxQyxFQUNyQyxtQkFBK0M7UUFEL0MsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBQ3JDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBNEI7SUFDL0QsQ0FBQztJQUVHLHFCQUFxQixDQUMxQixHQUFXLEVBQ1gsVUFBK0I7UUFFL0IsSUFBSSxVQUFVLEtBQUssbUJBQW1CLENBQUMsVUFBVSxFQUFFO1lBQ2pELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO1NBQ2pDO1FBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBRTlCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDOzs2R0FqQlUsZ0JBQWdCO2lIQUFoQixnQkFBZ0IsY0FGZixNQUFNOzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOY2hhbldlYlNvY2tldFNlcnZpY2UgfSBmcm9tICcuL25jaGFuLXdlYi1zb2NrZXQuc2VydmljZSc7XG5pbXBvcnQgeyBDZW50cmlmdWdvV2ViU29ja2V0U2VydmljZSB9IGZyb20gJy4vY2VudHJpZnVnby13ZWItc29ja2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgV2ViU29ja2V0Q2xpZW50IH0gZnJvbSAnLi93ZWItc29ja2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBXZWJTb2NrZXRDbGllbnRUeXBlIH0gZnJvbSAnLi93ZWItc29ja2V0LWNsaWVudC10eXBlLmVudW0nO1xuXG4vLyBAdG9kbzogcmVtb3ZlIHRoaXMgZmFjdG9yeSBhbmQgc3dpdGNoIHRvIGNlbnRyaWZ1Z28gY2xpZW50IGFmdGVyIGNlbnRyaWZ1Z28gaXNzdWVzIHJlc29sdmVkXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgV2ViU29ja2V0RmFjdG9yeSB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5jaGFuV2ViU29ja2V0OiBOY2hhbldlYlNvY2tldFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZW50cmlmdWdvV2ViU29ja2V0OiBDZW50cmlmdWdvV2ViU29ja2V0U2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIGNyZWF0ZVdlYlNvY2tldENsaWVudChcbiAgICB1cmw6IHN0cmluZyxcbiAgICBjbGllbnRUeXBlOiBXZWJTb2NrZXRDbGllbnRUeXBlXG4gICk6IFdlYlNvY2tldENsaWVudCB7XG4gICAgaWYgKGNsaWVudFR5cGUgPT09IFdlYlNvY2tldENsaWVudFR5cGUuY2VudHJpZnVnbykge1xuICAgICAgcmV0dXJuIHRoaXMuY2VudHJpZnVnb1dlYlNvY2tldDtcbiAgICB9XG5cbiAgICB0aGlzLm5jaGFuV2ViU29ja2V0LnVybCA9IHVybDtcblxuICAgIHJldHVybiB0aGlzLm5jaGFuV2ViU29ja2V0O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLXNvY2tldC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS93ZWItc29ja2V0L3dlYi1zb2NrZXQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFdlYlNvY2tldENsaWVudFR5cGUgfSBmcm9tICcuL3dlYi1zb2NrZXQtY2xpZW50LXR5cGUuZW51bSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2ViU29ja2V0Q2xpZW50IHtcbiAgdHlwZTogV2ViU29ja2V0Q2xpZW50VHlwZTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgb3Blbih1cmw/OiBzdHJpbmcsIGNoYW5uZWw/OiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIGNsb3NlKCk6IHZvaWQ7XG4gIGdldCBtZXNzYWdlcyQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBzdWJzY3JpYmVPblN1Y2Nlc3NmdWxSZWNvbm5lY3Rpb24obmV4dD86ICgpID0+IHZvaWQpOiBTdWJzY3JpcHRpb247XG59XG4iXX0=
@@ -12,6 +12,10 @@ import { nextActions, nextActionsToken, } from './core/payment/actions/next-acti
12
12
  import { syncRequestFactoryProvider } from './core/payment/sync/sync-request.token';
13
13
  import { syncResponseFactoryProvider } from './core/payment/sync/sync-response.token';
14
14
  import { FormModule } from './core/payment/form/form.module';
15
+ import { statusRequestFactoryProvider } from './core/payment/status/status-request/request/status-request.token';
16
+ import { statusResponseFactoryProvider } from './core/payment/status/status-request/response/status-response.token';
17
+ import { checkStatusRequestFactoryProvider } from './core/payment/status/check-status/request/check-status-request.token';
18
+ import { checkStatusResponseFactoryProvider } from './core/payment/status/check-status/response/check-status-response.token';
15
19
  import * as i0 from "@angular/core";
16
20
  export class CoreLibraryModule {
17
21
  }
@@ -32,6 +36,10 @@ CoreLibraryModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versi
32
36
  submitResponseFactoryProvider,
33
37
  syncRequestFactoryProvider,
34
38
  syncResponseFactoryProvider,
39
+ statusRequestFactoryProvider,
40
+ statusResponseFactoryProvider,
41
+ checkStatusRequestFactoryProvider,
42
+ checkStatusResponseFactoryProvider,
35
43
  {
36
44
  provide: nextActionsToken,
37
45
  useValue: nextActions,
@@ -57,6 +65,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
57
65
  submitResponseFactoryProvider,
58
66
  syncRequestFactoryProvider,
59
67
  syncResponseFactoryProvider,
68
+ statusRequestFactoryProvider,
69
+ statusResponseFactoryProvider,
70
+ checkStatusRequestFactoryProvider,
71
+ checkStatusResponseFactoryProvider,
60
72
  {
61
73
  provide: nextActionsToken,
62
74
  useValue: nextActions,
@@ -65,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
65
77
  ],
66
78
  }]
67
79
  }] });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1saWJyYXJ5Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlLWxpYnJhcnkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlFQUF5RSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUM5RyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNyRyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNyRyxPQUFPLEVBQ0wsV0FBVyxFQUNYLGdCQUFnQixHQUNqQixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUEwQjdELE1BQU0sT0FBTyxpQkFBaUI7OzhHQUFqQixpQkFBaUI7K0dBQWpCLGlCQUFpQixZQXZCbEIsZ0JBQWdCLEVBQUUsVUFBVTsrR0F1QjNCLGlCQUFpQixhQXRCakI7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsUUFBUSxFQUFFLHlCQUF5QjtZQUNuQyxLQUFLLEVBQUUsSUFBSTtTQUNaO1FBQ0QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7UUFDMUMscUNBQXFDO1FBQ3JDLG1DQUFtQztRQUNuQyxrQ0FBa0M7UUFDbEMsaUNBQWlDO1FBQ2pDLDRCQUE0QjtRQUM1Qiw2QkFBNkI7UUFDN0IsMEJBQTBCO1FBQzFCLDJCQUEyQjtRQUMzQjtZQUNFLE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsUUFBUSxFQUFFLFdBQVc7U0FDdEI7UUFDRCxHQUFJLFdBQStCO0tBQ3BDLFlBckJTLGdCQUFnQixFQUFFLFVBQVU7MkZBdUIzQixpQkFBaUI7a0JBeEI3QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLFVBQVUsQ0FBQztvQkFDdkMsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFFBQVEsRUFBRSx5QkFBeUI7NEJBQ25DLEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNELEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO3dCQUMxQyxxQ0FBcUM7d0JBQ3JDLG1DQUFtQzt3QkFDbkMsa0NBQWtDO3dCQUNsQyxpQ0FBaUM7d0JBQ2pDLDRCQUE0Qjt3QkFDNUIsNkJBQTZCO3dCQUM3QiwwQkFBMEI7d0JBQzFCLDJCQUEyQjt3QkFDM0I7NEJBQ0UsT0FBTyxFQUFFLGdCQUFnQjs0QkFDekIsUUFBUSxFQUFFLFdBQVc7eUJBQ3RCO3dCQUNELEdBQUksV0FBK0I7cUJBQ3BDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIFZhbHVlUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEhUVFBfSU5URVJDRVBUT1JTLCBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSHR0cEV4Y2VwdGlvbnNJbnRlcmNlcHRvciB9IGZyb20gJy4vY29yZS9leGNlcHRpb25zLWhhbmRsaW5nL2h0dHAtaW50ZXJjZXB0b3IvaHR0cC1leGNlcHRpb25zLmludGVyY2VwdG9yJztcbmltcG9ydCB7IHdpbmRvd1Rva2VuIH0gZnJvbSAnLi9jb3JlL3dpbmRvdy50b2tlbic7XG5pbXBvcnQgeyBwYXltZW50TWV0aG9kc1Jlc3BvbnNlRmFjdG9yeVByb3ZpZGVyIH0gZnJvbSAnLi9jb3JlL3BheW1lbnQtbWV0aG9kcy9wYXltZW50LW1ldGhvZHMtcmVzcG9uc2UudG9rZW4nO1xuaW1wb3J0IHsgc2F2ZWRNZXRob2RzUmVzcG9uc2VGYWN0b3J5UHJvdmlkZXIgfSBmcm9tICcuL2NvcmUvc2F2ZWQtbWV0aG9kcy9zYXZlZC1tZXRob2RzLXJlc3BvbnNlLnRva2VuJztcbmltcG9ydCB7IHVzZXJCYWxhbmNlUmVzcG9uc2VGYWN0b3J5UHJvdmlkZXIgfSBmcm9tICcuL2NvcmUvdXNlci1iYWxhbmNlL3VzZXItYmFsYW5jZS1yZXNwb25zZS50b2tlbic7XG5pbXBvcnQgeyBpbml0aWFsaXplUmVzcG9uc2VGYWN0b3J5UHJvdmlkZXIgfSBmcm9tICcuL2NvcmUvcGF5bWVudC9pbml0aWFsaXplL2luaXRpYWxpemUtcmVzcG9uc2UudG9rZW4nO1xuaW1wb3J0IHsgc3VibWl0UmVxdWVzdEZhY3RvcnlQcm92aWRlciB9IGZyb20gJy4vY29yZS9wYXltZW50L3N1Ym1pdC9yZXF1ZXN0L3N1Ym1pdC1yZXF1ZXN0LnRva2VuJztcbmltcG9ydCB7IHN1Ym1pdFJlc3BvbnNlRmFjdG9yeVByb3ZpZGVyIH0gZnJvbSAnLi9jb3JlL3BheW1lbnQvc3VibWl0L3Jlc3BvbnNlL3N1Ym1pdC1yZXNwb25zZS50b2tlbic7XG5pbXBvcnQge1xuICBuZXh0QWN0aW9ucyxcbiAgbmV4dEFjdGlvbnNUb2tlbixcbn0gZnJvbSAnLi9jb3JlL3BheW1lbnQvYWN0aW9ucy9uZXh0LWFjdGlvbnMnO1xuaW1wb3J0IHsgc3luY1JlcXVlc3RGYWN0b3J5UHJvdmlkZXIgfSBmcm9tICcuL2NvcmUvcGF5bWVudC9zeW5jL3N5bmMtcmVxdWVzdC50b2tlbic7XG5pbXBvcnQgeyBzeW5jUmVzcG9uc2VGYWN0b3J5UHJvdmlkZXIgfSBmcm9tICcuL2NvcmUvcGF5bWVudC9zeW5jL3N5bmMtcmVzcG9uc2UudG9rZW4nO1xuaW1wb3J0IHsgRm9ybU1vZHVsZSB9IGZyb20gJy4vY29yZS9wYXltZW50L2Zvcm0vZm9ybS5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbSHR0cENsaWVudE1vZHVsZSwgRm9ybU1vZHVsZV0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLFxuICAgICAgdXNlQ2xhc3M6IEh0dHBFeGNlcHRpb25zSW50ZXJjZXB0b3IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHsgcHJvdmlkZTogd2luZG93VG9rZW4sIHVzZVZhbHVlOiB3aW5kb3cgfSxcbiAgICBwYXltZW50TWV0aG9kc1Jlc3BvbnNlRmFjdG9yeVByb3ZpZGVyLFxuICAgIHNhdmVkTWV0aG9kc1Jlc3BvbnNlRmFjdG9yeVByb3ZpZGVyLFxuICAgIHVzZXJCYWxhbmNlUmVzcG9uc2VGYWN0b3J5UHJvdmlkZXIsXG4gICAgaW5pdGlhbGl6ZVJlc3BvbnNlRmFjdG9yeVByb3ZpZGVyLFxuICAgIHN1Ym1pdFJlcXVlc3RGYWN0b3J5UHJvdmlkZXIsXG4gICAgc3VibWl0UmVzcG9uc2VGYWN0b3J5UHJvdmlkZXIsXG4gICAgc3luY1JlcXVlc3RGYWN0b3J5UHJvdmlkZXIsXG4gICAgc3luY1Jlc3BvbnNlRmFjdG9yeVByb3ZpZGVyLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IG5leHRBY3Rpb25zVG9rZW4sXG4gICAgICB1c2VWYWx1ZTogbmV4dEFjdGlvbnMsXG4gICAgfSxcbiAgICAuLi4obmV4dEFjdGlvbnMgYXMgVmFsdWVQcm92aWRlcltdKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29yZUxpYnJhcnlNb2R1bGUge31cbiJdfQ==
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1saWJyYXJ5Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlLWxpYnJhcnkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlFQUF5RSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUM5RyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNyRyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNyRyxPQUFPLEVBQ0wsV0FBVyxFQUNYLGdCQUFnQixHQUNqQixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQztBQUMxSCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQzs7QUE4QjdILE1BQU0sT0FBTyxpQkFBaUI7OzhHQUFqQixpQkFBaUI7K0dBQWpCLGlCQUFpQixZQTNCbEIsZ0JBQWdCLEVBQUUsVUFBVTsrR0EyQjNCLGlCQUFpQixhQTFCakI7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsUUFBUSxFQUFFLHlCQUF5QjtZQUNuQyxLQUFLLEVBQUUsSUFBSTtTQUNaO1FBQ0QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7UUFDMUMscUNBQXFDO1FBQ3JDLG1DQUFtQztRQUNuQyxrQ0FBa0M7UUFDbEMsaUNBQWlDO1FBQ2pDLDRCQUE0QjtRQUM1Qiw2QkFBNkI7UUFDN0IsMEJBQTBCO1FBQzFCLDJCQUEyQjtRQUMzQiw0QkFBNEI7UUFDNUIsNkJBQTZCO1FBQzdCLGlDQUFpQztRQUNqQyxrQ0FBa0M7UUFDbEM7WUFDRSxPQUFPLEVBQUUsZ0JBQWdCO1lBQ3pCLFFBQVEsRUFBRSxXQUFXO1NBQ3RCO1FBQ0QsR0FBSSxXQUErQjtLQUNwQyxZQXpCUyxnQkFBZ0IsRUFBRSxVQUFVOzJGQTJCM0IsaUJBQWlCO2tCQTVCN0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxVQUFVLENBQUM7b0JBQ3ZDLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixRQUFRLEVBQUUseUJBQXlCOzRCQUNuQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTt3QkFDMUMscUNBQXFDO3dCQUNyQyxtQ0FBbUM7d0JBQ25DLGtDQUFrQzt3QkFDbEMsaUNBQWlDO3dCQUNqQyw0QkFBNEI7d0JBQzVCLDZCQUE2Qjt3QkFDN0IsMEJBQTBCO3dCQUMxQiwyQkFBMkI7d0JBQzNCLDRCQUE0Qjt3QkFDNUIsNkJBQTZCO3dCQUM3QixpQ0FBaUM7d0JBQ2pDLGtDQUFrQzt3QkFDbEM7NEJBQ0UsT0FBTyxFQUFFLGdCQUFnQjs0QkFDekIsUUFBUSxFQUFFLFdBQVc7eUJBQ3RCO3dCQUNELEdBQUksV0FBK0I7cUJBQ3BDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIFZhbHVlUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEhUVFBfSU5URVJDRVBUT1JTLCBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSHR0cEV4Y2VwdGlvbnNJbnRlcmNlcHRvciB9IGZyb20gJy4vY29yZS9leGNlcHRpb25zLWhhbmRsaW5nL2h0dHAtaW50ZXJjZXB0b3IvaHR0cC1leGNlcHRpb25zLmludGVyY2VwdG9yJztcbmltcG9ydCB7IHdpbmRvd1Rva2VuIH0gZnJvbSAnLi9jb3JlL3dpbmRvdy50b2tlbic7XG5pbXBvcnQgeyBwYXltZW50TWV0aG9kc1Jlc3BvbnNlRmFjdG9yeVByb3ZpZGVyIH0gZnJvbSAnLi9jb3JlL3BheW1lbnQtbWV0aG9kcy9wYXltZW50LW1ldGhvZHMtcmVzcG9uc2UudG9rZW4nO1xuaW1wb3J0IHsgc2F2ZWRNZXRob2RzUmVzcG9uc2VGYWN0b3J5UHJvdmlkZXIgfSBmcm9tICcuL2NvcmUvc2F2ZWQtbWV0aG9kcy9zYXZlZC1tZXRob2RzLXJlc3BvbnNlLnRva2VuJztcbmltcG9ydCB7IHVzZXJCYWxhbmNlUmVzcG9uc2VGYWN0b3J5UHJvdmlkZXIgfSBmcm9tICcuL2NvcmUvdXNlci1iYWxhbmNlL3VzZXItYmFsYW5jZS1yZXNwb25zZS50b2tlbic7XG5pbXBvcnQgeyBpbml0aWFsaXplUmVzcG9uc2VGYWN0b3J5UHJvdmlkZXIgfSBmcm9tICcuL2NvcmUvcGF5bWVudC9pbml0aWFsaXplL2luaXRpYWxpemUtcmVzcG9uc2UudG9rZW4nO1xuaW1wb3J0IHsgc3VibWl0UmVxdWVzdEZhY3RvcnlQcm92aWRlciB9IGZyb20gJy4vY29yZS9wYXltZW50L3N1Ym1pdC9yZXF1ZXN0L3N1Ym1pdC1yZXF1ZXN0LnRva2VuJztcbmltcG9ydCB7IHN1Ym1pdFJlc3BvbnNlRmFjdG9yeVByb3ZpZGVyIH0gZnJvbSAnLi9jb3JlL3BheW1lbnQvc3VibWl0L3Jlc3BvbnNlL3N1Ym1pdC1yZXNwb25zZS50b2tlbic7XG5pbXBvcnQge1xuICBuZXh0QWN0aW9ucyxcbiAgbmV4dEFjdGlvbnNUb2tlbixcbn0gZnJvbSAnLi9jb3JlL3BheW1lbnQvYWN0aW9ucy9uZXh0LWFjdGlvbnMnO1xuaW1wb3J0IHsgc3luY1JlcXVlc3RGYWN0b3J5UHJvdmlkZXIgfSBmcm9tICcuL2NvcmUvcGF5bWVudC9zeW5jL3N5bmMtcmVxdWVzdC50b2tlbic7XG5pbXBvcnQgeyBzeW5jUmVzcG9uc2VGYWN0b3J5UHJvdmlkZXIgfSBmcm9tICcuL2NvcmUvcGF5bWVudC9zeW5jL3N5bmMtcmVzcG9uc2UudG9rZW4nO1xuaW1wb3J0IHsgRm9ybU1vZHVsZSB9IGZyb20gJy4vY29yZS9wYXltZW50L2Zvcm0vZm9ybS5tb2R1bGUnO1xuaW1wb3J0IHsgc3RhdHVzUmVxdWVzdEZhY3RvcnlQcm92aWRlciB9IGZyb20gJy4vY29yZS9wYXltZW50L3N0YXR1cy9zdGF0dXMtcmVxdWVzdC9yZXF1ZXN0L3N0YXR1cy1yZXF1ZXN0LnRva2VuJztcbmltcG9ydCB7IHN0YXR1c1Jlc3BvbnNlRmFjdG9yeVByb3ZpZGVyIH0gZnJvbSAnLi9jb3JlL3BheW1lbnQvc3RhdHVzL3N0YXR1cy1yZXF1ZXN0L3Jlc3BvbnNlL3N0YXR1cy1yZXNwb25zZS50b2tlbic7XG5pbXBvcnQgeyBjaGVja1N0YXR1c1JlcXVlc3RGYWN0b3J5UHJvdmlkZXIgfSBmcm9tICcuL2NvcmUvcGF5bWVudC9zdGF0dXMvY2hlY2stc3RhdHVzL3JlcXVlc3QvY2hlY2stc3RhdHVzLXJlcXVlc3QudG9rZW4nO1xuaW1wb3J0IHsgY2hlY2tTdGF0dXNSZXNwb25zZUZhY3RvcnlQcm92aWRlciB9IGZyb20gJy4vY29yZS9wYXltZW50L3N0YXR1cy9jaGVjay1zdGF0dXMvcmVzcG9uc2UvY2hlY2stc3RhdHVzLXJlc3BvbnNlLnRva2VuJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0h0dHBDbGllbnRNb2R1bGUsIEZvcm1Nb2R1bGVdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUyxcbiAgICAgIHVzZUNsYXNzOiBIdHRwRXhjZXB0aW9uc0ludGVyY2VwdG9yLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7IHByb3ZpZGU6IHdpbmRvd1Rva2VuLCB1c2VWYWx1ZTogd2luZG93IH0sXG4gICAgcGF5bWVudE1ldGhvZHNSZXNwb25zZUZhY3RvcnlQcm92aWRlcixcbiAgICBzYXZlZE1ldGhvZHNSZXNwb25zZUZhY3RvcnlQcm92aWRlcixcbiAgICB1c2VyQmFsYW5jZVJlc3BvbnNlRmFjdG9yeVByb3ZpZGVyLFxuICAgIGluaXRpYWxpemVSZXNwb25zZUZhY3RvcnlQcm92aWRlcixcbiAgICBzdWJtaXRSZXF1ZXN0RmFjdG9yeVByb3ZpZGVyLFxuICAgIHN1Ym1pdFJlc3BvbnNlRmFjdG9yeVByb3ZpZGVyLFxuICAgIHN5bmNSZXF1ZXN0RmFjdG9yeVByb3ZpZGVyLFxuICAgIHN5bmNSZXNwb25zZUZhY3RvcnlQcm92aWRlcixcbiAgICBzdGF0dXNSZXF1ZXN0RmFjdG9yeVByb3ZpZGVyLFxuICAgIHN0YXR1c1Jlc3BvbnNlRmFjdG9yeVByb3ZpZGVyLFxuICAgIGNoZWNrU3RhdHVzUmVxdWVzdEZhY3RvcnlQcm92aWRlcixcbiAgICBjaGVja1N0YXR1c1Jlc3BvbnNlRmFjdG9yeVByb3ZpZGVyLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IG5leHRBY3Rpb25zVG9rZW4sXG4gICAgICB1c2VWYWx1ZTogbmV4dEFjdGlvbnMsXG4gICAgfSxcbiAgICAuLi4obmV4dEFjdGlvbnMgYXMgVmFsdWVQcm92aWRlcltdKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29yZUxpYnJhcnlNb2R1bGUge31cbiJdfQ==
@@ -8,8 +8,9 @@ import * as i5 from "./core/user-balance/user-balance.service";
8
8
  import * as i6 from "./core/payment/payment.service";
9
9
  import * as i7 from "./core/device-finger-print/device-finger-print.service";
10
10
  import * as i8 from "./core/legal/legal.service";
11
+ import * as i9 from "./core/payment/actions/next-action.service";
11
12
  export class CoreLibraryService {
12
- constructor(settingsService, countryService, paymentMethodsService, savedMethodsService, userBalanceService, paymentService, deviceFingerPrintService, legalService) {
13
+ constructor(settingsService, countryService, paymentMethodsService, savedMethodsService, userBalanceService, paymentService, deviceFingerPrintService, legalService, nextActionService) {
13
14
  this.settingsService = settingsService;
14
15
  this.countryService = countryService;
15
16
  this.paymentMethodsService = paymentMethodsService;
@@ -18,6 +19,7 @@ export class CoreLibraryService {
18
19
  this.paymentService = paymentService;
19
20
  this.deviceFingerPrintService = deviceFingerPrintService;
20
21
  this.legalService = legalService;
22
+ this.nextActionService = nextActionService;
21
23
  this.paymentMethods = {
22
24
  getList: async () => this.paymentMethodsService.getList(),
23
25
  getQuickMethods: async () => this.paymentMethodsService.getQuickMethods(),
@@ -41,19 +43,20 @@ export class CoreLibraryService {
41
43
  validate: async (field) => this.paymentService.validate(field),
42
44
  getFinanceDetails: () => this.paymentService.getFinanceDetails(),
43
45
  runThreeDs: () => this.paymentService.runThreeDs(),
44
- getStatus: () => this.paymentService.getStatus(),
46
+ getStatus: async (params) => this.paymentService.getStatus(params),
47
+ flowUpdates$: this.nextActionService.flowUpdates$,
45
48
  };
46
49
  }
47
50
  getLegalComponentConfig() {
48
51
  return this.legalService.getLegalComponentConfig();
49
52
  }
50
53
  }
51
- CoreLibraryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CoreLibraryService, deps: [{ token: i1.SettingsService }, { token: i2.CountryService }, { token: i3.PaymentMethodsService }, { token: i4.SavedMethodsService }, { token: i5.UserBalanceService }, { token: i6.PaymentService }, { token: i7.DeviceFingerPrintService }, { token: i8.LegalService }], target: i0.ɵɵFactoryTarget.Injectable });
54
+ CoreLibraryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CoreLibraryService, deps: [{ token: i1.SettingsService }, { token: i2.CountryService }, { token: i3.PaymentMethodsService }, { token: i4.SavedMethodsService }, { token: i5.UserBalanceService }, { token: i6.PaymentService }, { token: i7.DeviceFingerPrintService }, { token: i8.LegalService }, { token: i9.NextActionService }], target: i0.ɵɵFactoryTarget.Injectable });
52
55
  CoreLibraryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CoreLibraryService, providedIn: 'root' });
53
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CoreLibraryService, decorators: [{
54
57
  type: Injectable,
55
58
  args: [{
56
59
  providedIn: 'root',
57
60
  }]
58
- }], ctorParameters: function () { return [{ type: i1.SettingsService }, { type: i2.CountryService }, { type: i3.PaymentMethodsService }, { type: i4.SavedMethodsService }, { type: i5.UserBalanceService }, { type: i6.PaymentService }, { type: i7.DeviceFingerPrintService }, { type: i8.LegalService }]; } });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1saWJyYXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS1saWJyYXJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztBQXNCM0MsTUFBTSxPQUFPLGtCQUFrQjtJQWE3QixZQUNtQixlQUFnQyxFQUNoQyxjQUE4QixFQUM5QixxQkFBNEMsRUFDNUMsbUJBQXdDLEVBQ3hDLGtCQUFzQyxFQUN0QyxjQUE4QixFQUM5Qix3QkFBa0QsRUFDbEQsWUFBMEI7UUFQMUIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQXBCdEMsbUJBQWMsR0FBRztZQUN0QixPQUFPLEVBQUUsS0FBSyxJQUE4QixFQUFFLENBQzVDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUU7WUFFdEMsZUFBZSxFQUFFLEtBQUssSUFBOEIsRUFBRSxDQUNwRCxJQUFJLENBQUMscUJBQXFCLENBQUMsZUFBZSxFQUFFO1lBQzlDLGVBQWUsRUFBRSxLQUFLLElBQTRCLEVBQUUsQ0FDbEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRTtZQUNwQyxjQUFjLEVBQUUsS0FBSyxJQUFrQyxFQUFFLENBQ3ZELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLEVBQUU7U0FDM0MsQ0FBQztJQVdDLENBQUM7SUFFRyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWdDO1FBQ2hELE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDL0MsTUFBTSxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVNLFVBQVUsQ0FBQyxPQUFlO1FBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxhQUFhLENBQUMsTUFBcUI7UUFDeEMsT0FBTztZQUNMLFVBQVUsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUM5RCxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQWUsRUFBRSxJQUFzQixFQUFFLEVBQUUsQ0FDeEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQztZQUMxQyxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUU7WUFDaEQsZ0JBQWdCLEVBQUUsQ0FBQyxJQUFZLEVBQUUsS0FBYSxFQUFFLEVBQUUsQ0FDaEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO1lBQ25ELFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBWSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDckUsaUJBQWlCLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRTtZQUNoRSxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUU7WUFDbEQsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFO1NBQ2pELENBQUM7SUFDSixDQUFDO0lBRU0sdUJBQXVCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ3JELENBQUM7OytHQWxEVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQUZqQixNQUFNOzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbml0Q29uZmlndXJhdGlvbiB9IGZyb20gJy4vY29yZS9zZXR0aW5ncy9jb25maWd1cmF0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuL2NvcmUvc2V0dGluZ3Mvc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBDb3VudHJ5U2VydmljZSB9IGZyb20gJy4vY29yZS9jb3VudHJ5L2NvdW50cnkuc2VydmljZSc7XG5pbXBvcnQgeyBQYXltZW50TWV0aG9kc1NlcnZpY2UgfSBmcm9tICcuL2NvcmUvcGF5bWVudC1tZXRob2RzL3BheW1lbnQtbWV0aG9kcy5zZXJ2aWNlJztcbmltcG9ydCB7IFBheW1lbnRNZXRob2QgfSBmcm9tICcuL2NvcmUvcGF5bWVudC1tZXRob2RzL3BheW1lbnQtbWV0aG9kLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTYXZlZE1ldGhvZHNTZXJ2aWNlIH0gZnJvbSAnLi9jb3JlL3NhdmVkLW1ldGhvZHMvc2F2ZWQtbWV0aG9kcy5zZXJ2aWNlJztcbmltcG9ydCB7IFNhdmVkTWV0aG9kIH0gZnJvbSAnLi9jb3JlL3NhdmVkLW1ldGhvZHMvc2F2ZWQtbWV0aG9kLmludGVyZmFjZSc7XG5pbXBvcnQgeyBVc2VyQmFsYW5jZVJlc3BvbnNlIH0gZnJvbSAnLi9jb3JlL3VzZXItYmFsYW5jZS91c2VyLWJhbGFuY2UtcmVzcG9uc2UuY2xhc3MnO1xuaW1wb3J0IHsgVXNlckJhbGFuY2VTZXJ2aWNlIH0gZnJvbSAnLi9jb3JlL3VzZXItYmFsYW5jZS91c2VyLWJhbGFuY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBQYXltZW50Q29uZmlnIH0gZnJvbSAnLi9jb3JlL3BheW1lbnQvcGF5bWVudC1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBheW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi9jb3JlL3BheW1lbnQvcGF5bWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFBheW1lbnQgfSBmcm9tICcuL2NvcmUvcGF5bWVudC9wYXltZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4vY29yZS9wYXltZW50L2ZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBEZXZpY2VGaW5nZXJQcmludFNlcnZpY2UgfSBmcm9tICcuL2NvcmUvZGV2aWNlLWZpbmdlci1wcmludC9kZXZpY2UtZmluZ2VyLXByaW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IExlZ2FsU2VydmljZSB9IGZyb20gJy4vY29yZS9sZWdhbC9sZWdhbC5zZXJ2aWNlJztcbmltcG9ydCB7IExlZ2FsQ29tcG9uZW50Q29uZmlnIH0gZnJvbSAnLi9jb3JlL2xlZ2FsL2xlZ2FsLmNvbXBvbmVudC5jb25maWcnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ29yZUxpYnJhcnlTZXJ2aWNlIHtcbiAgcHVibGljIHBheW1lbnRNZXRob2RzID0ge1xuICAgIGdldExpc3Q6IGFzeW5jICgpOiBQcm9taXNlPFBheW1lbnRNZXRob2RbXT4gPT5cbiAgICAgIHRoaXMucGF5bWVudE1ldGhvZHNTZXJ2aWNlLmdldExpc3QoKSxcblxuICAgIGdldFF1aWNrTWV0aG9kczogYXN5bmMgKCk6IFByb21pc2U8UGF5bWVudE1ldGhvZFtdPiA9PlxuICAgICAgdGhpcy5wYXltZW50TWV0aG9kc1NlcnZpY2UuZ2V0UXVpY2tNZXRob2RzKCksXG4gICAgZ2V0U2F2ZWRNZXRob2RzOiBhc3luYyAoKTogUHJvbWlzZTxTYXZlZE1ldGhvZFtdPiA9PlxuICAgICAgdGhpcy5zYXZlZE1ldGhvZHNTZXJ2aWNlLmdldExpc3QoKSxcbiAgICBnZXRVc2VyQmFsYW5jZTogYXN5bmMgKCk6IFByb21pc2U8VXNlckJhbGFuY2VSZXNwb25zZT4gPT5cbiAgICAgIHRoaXMudXNlckJhbGFuY2VTZXJ2aWNlLmdldFVzZXJCYWxhbmNlKCksXG4gIH07XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2V0dGluZ3NTZXJ2aWNlOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb3VudHJ5U2VydmljZTogQ291bnRyeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwYXltZW50TWV0aG9kc1NlcnZpY2U6IFBheW1lbnRNZXRob2RzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNhdmVkTWV0aG9kc1NlcnZpY2U6IFNhdmVkTWV0aG9kc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyQmFsYW5jZVNlcnZpY2U6IFVzZXJCYWxhbmNlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBheW1lbnRTZXJ2aWNlOiBQYXltZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRldmljZUZpbmdlclByaW50U2VydmljZTogRGV2aWNlRmluZ2VyUHJpbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGVnYWxTZXJ2aWNlOiBMZWdhbFNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBhc3luYyBpbml0KGNvbmZpZ3VyYXRpb246IEluaXRDb25maWd1cmF0aW9uKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5zZXR0aW5nc1NlcnZpY2UuaW5pdChjb25maWd1cmF0aW9uKTtcbiAgICBhd2FpdCB0aGlzLmRldmljZUZpbmdlclByaW50U2VydmljZS5pbml0KCk7XG4gIH1cblxuICBwdWJsaWMgc2V0Q291bnRyeShjb3VudHJ5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmNvdW50cnlTZXJ2aWNlLnNldENvdW50cnkoY291bnRyeSk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlUGF5bWVudChjb25maWc6IFBheW1lbnRDb25maWcpOiBQYXltZW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgaW5pdGlhbGl6ZTogYXN5bmMgKCkgPT4gdGhpcy5wYXltZW50U2VydmljZS5pbml0aWFsaXplKGNvbmZpZyksXG4gICAgICBzdWJtaXQ6IGFzeW5jIChmaWVsZHM6IEZpZWxkW10sIGZvcm06IFVudHlwZWRGb3JtR3JvdXApID0+XG4gICAgICAgIHRoaXMucGF5bWVudFNlcnZpY2Uuc3VibWl0KGZpZWxkcywgZm9ybSksXG4gICAgICBnZXRGaWVsZHM6ICgpID0+IHRoaXMucGF5bWVudFNlcnZpY2UuZ2V0RmllbGRzKCksXG4gICAgICBjaGFuZ2VGaWVsZFZhbHVlOiAobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSA9PlxuICAgICAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLmNoYW5nZUZpZWxkVmFsdWUobmFtZSwgdmFsdWUpLFxuICAgICAgdmFsaWRhdGU6IGFzeW5jIChmaWVsZDogRmllbGQpID0+IHRoaXMucGF5bWVudFNlcnZpY2UudmFsaWRhdGUoZmllbGQpLFxuICAgICAgZ2V0RmluYW5jZURldGFpbHM6ICgpID0+IHRoaXMucGF5bWVudFNlcnZpY2UuZ2V0RmluYW5jZURldGFpbHMoKSxcbiAgICAgIHJ1blRocmVlRHM6ICgpID0+IHRoaXMucGF5bWVudFNlcnZpY2UucnVuVGhyZWVEcygpLFxuICAgICAgZ2V0U3RhdHVzOiAoKSA9PiB0aGlzLnBheW1lbnRTZXJ2aWNlLmdldFN0YXR1cygpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0TGVnYWxDb21wb25lbnRDb25maWcoKTogTGVnYWxDb21wb25lbnRDb25maWcge1xuICAgIHJldHVybiB0aGlzLmxlZ2FsU2VydmljZS5nZXRMZWdhbENvbXBvbmVudENvbmZpZygpO1xuICB9XG59XG4iXX0=
61
+ }], ctorParameters: function () { return [{ type: i1.SettingsService }, { type: i2.CountryService }, { type: i3.PaymentMethodsService }, { type: i4.SavedMethodsService }, { type: i5.UserBalanceService }, { type: i6.PaymentService }, { type: i7.DeviceFingerPrintService }, { type: i8.LegalService }, { type: i9.NextActionService }]; } });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1saWJyYXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS1saWJyYXJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7QUF3QjNDLE1BQU0sT0FBTyxrQkFBa0I7SUFhN0IsWUFDbUIsZUFBZ0MsRUFDaEMsY0FBOEIsRUFDOUIscUJBQTRDLEVBQzVDLG1CQUF3QyxFQUN4QyxrQkFBc0MsRUFDdEMsY0FBOEIsRUFDOUIsd0JBQWtELEVBQ2xELFlBQTBCLEVBQzFCLGlCQUFvQztRQVJwQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5Qiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFyQmhELG1CQUFjLEdBQUc7WUFDdEIsT0FBTyxFQUFFLEtBQUssSUFBOEIsRUFBRSxDQUM1QyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxFQUFFO1lBRXRDLGVBQWUsRUFBRSxLQUFLLElBQThCLEVBQUUsQ0FDcEQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGVBQWUsRUFBRTtZQUM5QyxlQUFlLEVBQUUsS0FBSyxJQUE0QixFQUFFLENBQ2xELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUU7WUFDcEMsY0FBYyxFQUFFLEtBQUssSUFBa0MsRUFBRSxDQUN2RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxFQUFFO1NBQzNDLENBQUM7SUFZQyxDQUFDO0lBRUcsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFnQztRQUNoRCxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFTSxVQUFVLENBQUMsT0FBZTtRQUMvQixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU0sYUFBYSxDQUFDLE1BQXFCO1FBQ3hDLE9BQU87WUFDTCxVQUFVLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDOUQsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFlLEVBQUUsSUFBc0IsRUFBRSxFQUFFLENBQ3hELElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7WUFDMUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFO1lBQ2hELGdCQUFnQixFQUFFLENBQUMsSUFBWSxFQUFFLEtBQWEsRUFBRSxFQUFFLENBQ2hELElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQztZQUNuRCxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQVksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQ3JFLGlCQUFpQixFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLEVBQUU7WUFDaEUsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFO1lBQ2xELFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBb0IsRUFBRSxFQUFFLENBQ3hDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUN2QyxZQUFZLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVk7U0FDbEQsQ0FBQztJQUNKLENBQUM7SUFFTSx1QkFBdUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDckQsQ0FBQzs7K0dBckRVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJbml0Q29uZmlndXJhdGlvbiB9IGZyb20gJy4vY29yZS9zZXR0aW5ncy9jb25maWd1cmF0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuL2NvcmUvc2V0dGluZ3Mvc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBDb3VudHJ5U2VydmljZSB9IGZyb20gJy4vY29yZS9jb3VudHJ5L2NvdW50cnkuc2VydmljZSc7XG5pbXBvcnQgeyBQYXltZW50TWV0aG9kc1NlcnZpY2UgfSBmcm9tICcuL2NvcmUvcGF5bWVudC1tZXRob2RzL3BheW1lbnQtbWV0aG9kcy5zZXJ2aWNlJztcbmltcG9ydCB7IFBheW1lbnRNZXRob2QgfSBmcm9tICcuL2NvcmUvcGF5bWVudC1tZXRob2RzL3BheW1lbnQtbWV0aG9kLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTYXZlZE1ldGhvZHNTZXJ2aWNlIH0gZnJvbSAnLi9jb3JlL3NhdmVkLW1ldGhvZHMvc2F2ZWQtbWV0aG9kcy5zZXJ2aWNlJztcbmltcG9ydCB7IFNhdmVkTWV0aG9kIH0gZnJvbSAnLi9jb3JlL3NhdmVkLW1ldGhvZHMvc2F2ZWQtbWV0aG9kLmludGVyZmFjZSc7XG5pbXBvcnQgeyBVc2VyQmFsYW5jZVJlc3BvbnNlIH0gZnJvbSAnLi9jb3JlL3VzZXItYmFsYW5jZS91c2VyLWJhbGFuY2UtcmVzcG9uc2UuY2xhc3MnO1xuaW1wb3J0IHsgVXNlckJhbGFuY2VTZXJ2aWNlIH0gZnJvbSAnLi9jb3JlL3VzZXItYmFsYW5jZS91c2VyLWJhbGFuY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBQYXltZW50Q29uZmlnIH0gZnJvbSAnLi9jb3JlL3BheW1lbnQvcGF5bWVudC1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBheW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi9jb3JlL3BheW1lbnQvcGF5bWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFBheW1lbnQgfSBmcm9tICcuL2NvcmUvcGF5bWVudC9wYXltZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4vY29yZS9wYXltZW50L2ZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBEZXZpY2VGaW5nZXJQcmludFNlcnZpY2UgfSBmcm9tICcuL2NvcmUvZGV2aWNlLWZpbmdlci1wcmludC9kZXZpY2UtZmluZ2VyLXByaW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgTGVnYWxTZXJ2aWNlIH0gZnJvbSAnLi9jb3JlL2xlZ2FsL2xlZ2FsLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGVnYWxDb21wb25lbnRDb25maWcgfSBmcm9tICcuL2NvcmUvbGVnYWwvbGVnYWwuY29tcG9uZW50LmNvbmZpZyc7XG5pbXBvcnQgeyBTdGF0dXNQYXJhbXMgfSBmcm9tICcuL2NvcmUvcGF5bWVudC9zdGF0dXMvc3RhdHVzLXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTmV4dEFjdGlvblNlcnZpY2UgfSBmcm9tICcuL2NvcmUvcGF5bWVudC9hY3Rpb25zL25leHQtYWN0aW9uLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ29yZUxpYnJhcnlTZXJ2aWNlIHtcbiAgcHVibGljIHBheW1lbnRNZXRob2RzID0ge1xuICAgIGdldExpc3Q6IGFzeW5jICgpOiBQcm9taXNlPFBheW1lbnRNZXRob2RbXT4gPT5cbiAgICAgIHRoaXMucGF5bWVudE1ldGhvZHNTZXJ2aWNlLmdldExpc3QoKSxcblxuICAgIGdldFF1aWNrTWV0aG9kczogYXN5bmMgKCk6IFByb21pc2U8UGF5bWVudE1ldGhvZFtdPiA9PlxuICAgICAgdGhpcy5wYXltZW50TWV0aG9kc1NlcnZpY2UuZ2V0UXVpY2tNZXRob2RzKCksXG4gICAgZ2V0U2F2ZWRNZXRob2RzOiBhc3luYyAoKTogUHJvbWlzZTxTYXZlZE1ldGhvZFtdPiA9PlxuICAgICAgdGhpcy5zYXZlZE1ldGhvZHNTZXJ2aWNlLmdldExpc3QoKSxcbiAgICBnZXRVc2VyQmFsYW5jZTogYXN5bmMgKCk6IFByb21pc2U8VXNlckJhbGFuY2VSZXNwb25zZT4gPT5cbiAgICAgIHRoaXMudXNlckJhbGFuY2VTZXJ2aWNlLmdldFVzZXJCYWxhbmNlKCksXG4gIH07XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2V0dGluZ3NTZXJ2aWNlOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb3VudHJ5U2VydmljZTogQ291bnRyeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwYXltZW50TWV0aG9kc1NlcnZpY2U6IFBheW1lbnRNZXRob2RzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNhdmVkTWV0aG9kc1NlcnZpY2U6IFNhdmVkTWV0aG9kc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyQmFsYW5jZVNlcnZpY2U6IFVzZXJCYWxhbmNlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBheW1lbnRTZXJ2aWNlOiBQYXltZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRldmljZUZpbmdlclByaW50U2VydmljZTogRGV2aWNlRmluZ2VyUHJpbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGVnYWxTZXJ2aWNlOiBMZWdhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZXh0QWN0aW9uU2VydmljZTogTmV4dEFjdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBhc3luYyBpbml0KGNvbmZpZ3VyYXRpb246IEluaXRDb25maWd1cmF0aW9uKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5zZXR0aW5nc1NlcnZpY2UuaW5pdChjb25maWd1cmF0aW9uKTtcbiAgICBhd2FpdCB0aGlzLmRldmljZUZpbmdlclByaW50U2VydmljZS5pbml0KCk7XG4gIH1cblxuICBwdWJsaWMgc2V0Q291bnRyeShjb3VudHJ5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmNvdW50cnlTZXJ2aWNlLnNldENvdW50cnkoY291bnRyeSk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlUGF5bWVudChjb25maWc6IFBheW1lbnRDb25maWcpOiBQYXltZW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgaW5pdGlhbGl6ZTogYXN5bmMgKCkgPT4gdGhpcy5wYXltZW50U2VydmljZS5pbml0aWFsaXplKGNvbmZpZyksXG4gICAgICBzdWJtaXQ6IGFzeW5jIChmaWVsZHM6IEZpZWxkW10sIGZvcm06IFVudHlwZWRGb3JtR3JvdXApID0+XG4gICAgICAgIHRoaXMucGF5bWVudFNlcnZpY2Uuc3VibWl0KGZpZWxkcywgZm9ybSksXG4gICAgICBnZXRGaWVsZHM6ICgpID0+IHRoaXMucGF5bWVudFNlcnZpY2UuZ2V0RmllbGRzKCksXG4gICAgICBjaGFuZ2VGaWVsZFZhbHVlOiAobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSA9PlxuICAgICAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLmNoYW5nZUZpZWxkVmFsdWUobmFtZSwgdmFsdWUpLFxuICAgICAgdmFsaWRhdGU6IGFzeW5jIChmaWVsZDogRmllbGQpID0+IHRoaXMucGF5bWVudFNlcnZpY2UudmFsaWRhdGUoZmllbGQpLFxuICAgICAgZ2V0RmluYW5jZURldGFpbHM6ICgpID0+IHRoaXMucGF5bWVudFNlcnZpY2UuZ2V0RmluYW5jZURldGFpbHMoKSxcbiAgICAgIHJ1blRocmVlRHM6ICgpID0+IHRoaXMucGF5bWVudFNlcnZpY2UucnVuVGhyZWVEcygpLFxuICAgICAgZ2V0U3RhdHVzOiBhc3luYyAocGFyYW1zOiBTdGF0dXNQYXJhbXMpID0+XG4gICAgICAgIHRoaXMucGF5bWVudFNlcnZpY2UuZ2V0U3RhdHVzKHBhcmFtcyksXG4gICAgICBmbG93VXBkYXRlcyQ6IHRoaXMubmV4dEFjdGlvblNlcnZpY2UuZmxvd1VwZGF0ZXMkLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0TGVnYWxDb21wb25lbnRDb25maWcoKTogTGVnYWxDb21wb25lbnRDb25maWcge1xuICAgIHJldHVybiB0aGlzLmxlZ2FsU2VydmljZS5nZXRMZWdhbENvbXBvbmVudENvbmZpZygpO1xuICB9XG59XG4iXX0=