@ngxs/websocket-plugin 3.7.3-dev.master-5175b98 → 3.7.3

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.
@@ -1,293 +1,293 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import * as tslib_1 from "tslib";
6
- import { InjectionToken } from '@angular/core';
7
- /** @type {?} */
8
- export var NGXS_WEBSOCKET_OPTIONS = new InjectionToken('NGXS_WEBSOCKET_OPTIONS');
9
- /**
10
- * @record
11
- */
12
- export function NgxsWebsocketPluginOptions() { }
13
- if (false) {
14
- /**
15
- * URL of the websocket.
16
- * @type {?|undefined}
17
- */
18
- NgxsWebsocketPluginOptions.prototype.url;
19
- /**
20
- * Either a single protocol string or an array of protocol strings.
21
- * These strings are used to indicate sub-protocols, so that a single server
22
- * can implement multiple WebSocket sub-protocols (for example, you might want one server to be able
23
- * to handle different types of interactions depending on the specified protocol).
24
- * If you don't specify a protocol string, an empty string is assumed.
25
- * @type {?|undefined}
26
- */
27
- NgxsWebsocketPluginOptions.prototype.protocol;
28
- /**
29
- * Sets the `binaryType` property of the underlying WebSocket.
30
- * @type {?|undefined}
31
- */
32
- NgxsWebsocketPluginOptions.prototype.binaryType;
33
- /**
34
- * The property name to distigunish this type for the store.
35
- * Default: 'type'
36
- * @type {?|undefined}
37
- */
38
- NgxsWebsocketPluginOptions.prototype.typeKey;
39
- /**
40
- * Interval to try and reconnect.
41
- * Default: 5000
42
- * @type {?|undefined}
43
- */
44
- NgxsWebsocketPluginOptions.prototype.reconnectInterval;
45
- /**
46
- * Number of reconnect attemps.
47
- * Default: 10
48
- * @type {?|undefined}
49
- */
50
- NgxsWebsocketPluginOptions.prototype.reconnectAttempts;
51
- /**
52
- * Serializer to call before sending messages
53
- * Default: `json.stringify`
54
- * @type {?|undefined}
55
- */
56
- NgxsWebsocketPluginOptions.prototype.serializer;
57
- /**
58
- * Deseralizer before publishing the message.
59
- * @type {?|undefined}
60
- */
61
- NgxsWebsocketPluginOptions.prototype.deserializer;
62
- }
63
- /**
64
- * @param {...?} _args
65
- * @return {?}
66
- */
67
- export function noop() {
68
- var _args = [];
69
- for (var _i = 0; _i < arguments.length; _i++) {
70
- _args[_i] = arguments[_i];
71
- }
72
- return (/**
73
- * @return {?}
74
- */
75
- function () { });
76
- }
77
- /**
78
- * Action to connect to the websocket. Optionally pass a URL.
79
- */
80
- var /**
81
- * Action to connect to the websocket. Optionally pass a URL.
82
- */
83
- ConnectWebSocket = /** @class */ (function () {
84
- function ConnectWebSocket(payload) {
85
- this.payload = payload;
86
- }
87
- Object.defineProperty(ConnectWebSocket, "type", {
88
- get: /**
89
- * @return {?}
90
- */
91
- function () {
92
- // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
93
- return '[WebSocket] Connect';
94
- },
95
- enumerable: true,
96
- configurable: true
97
- });
98
- return ConnectWebSocket;
99
- }());
100
- /**
101
- * Action to connect to the websocket. Optionally pass a URL.
102
- */
103
- export { ConnectWebSocket };
104
- if (false) {
105
- /** @type {?} */
106
- ConnectWebSocket.prototype.payload;
107
- }
108
- /**
109
- * Action triggered when a error ocurrs
110
- */
111
- var /**
112
- * Action triggered when a error ocurrs
113
- */
114
- WebsocketMessageError = /** @class */ (function () {
115
- function WebsocketMessageError(payload) {
116
- this.payload = payload;
117
- }
118
- Object.defineProperty(WebsocketMessageError, "type", {
119
- get: /**
120
- * @return {?}
121
- */
122
- function () {
123
- // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
124
- return '[WebSocket] Message Error';
125
- },
126
- enumerable: true,
127
- configurable: true
128
- });
129
- return WebsocketMessageError;
130
- }());
131
- /**
132
- * Action triggered when a error ocurrs
133
- */
134
- export { WebsocketMessageError };
135
- if (false) {
136
- /** @type {?} */
137
- WebsocketMessageError.prototype.payload;
138
- }
139
- /**
140
- * Action to disconnect the websocket.
141
- */
142
- var /**
143
- * Action to disconnect the websocket.
144
- */
145
- DisconnectWebSocket = /** @class */ (function () {
146
- function DisconnectWebSocket() {
147
- }
148
- Object.defineProperty(DisconnectWebSocket, "type", {
149
- get: /**
150
- * @return {?}
151
- */
152
- function () {
153
- // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
154
- return '[WebSocket] Disconnect';
155
- },
156
- enumerable: true,
157
- configurable: true
158
- });
159
- return DisconnectWebSocket;
160
- }());
161
- /**
162
- * Action to disconnect the websocket.
163
- */
164
- export { DisconnectWebSocket };
165
- /**
166
- * Action triggered when websocket is connected
167
- */
168
- var /**
169
- * Action triggered when websocket is connected
170
- */
171
- WebSocketConnected = /** @class */ (function () {
172
- function WebSocketConnected() {
173
- }
174
- Object.defineProperty(WebSocketConnected, "type", {
175
- get: /**
176
- * @return {?}
177
- */
178
- function () {
179
- return '[WebSocket] Connected';
180
- },
181
- enumerable: true,
182
- configurable: true
183
- });
184
- return WebSocketConnected;
185
- }());
186
- /**
187
- * Action triggered when websocket is connected
188
- */
189
- export { WebSocketConnected };
190
- /**
191
- * Action triggered when websocket is disconnected
192
- */
193
- var /**
194
- * Action triggered when websocket is disconnected
195
- */
196
- WebSocketDisconnected = /** @class */ (function () {
197
- function WebSocketDisconnected() {
198
- }
199
- Object.defineProperty(WebSocketDisconnected, "type", {
200
- get: /**
201
- * @return {?}
202
- */
203
- function () {
204
- // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
205
- return '[WebSocket] Disconnected';
206
- },
207
- enumerable: true,
208
- configurable: true
209
- });
210
- return WebSocketDisconnected;
211
- }());
212
- /**
213
- * Action triggered when websocket is disconnected
214
- */
215
- export { WebSocketDisconnected };
216
- /**
217
- * Action to send to the server.
218
- */
219
- var /**
220
- * Action to send to the server.
221
- */
222
- SendWebSocketMessage = /** @class */ (function () {
223
- function SendWebSocketMessage(payload) {
224
- this.payload = payload;
225
- }
226
- Object.defineProperty(SendWebSocketMessage, "type", {
227
- get: /**
228
- * @return {?}
229
- */
230
- function () {
231
- // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
232
- return '[WebSocket] Send Message';
233
- },
234
- enumerable: true,
235
- configurable: true
236
- });
237
- return SendWebSocketMessage;
238
- }());
239
- /**
240
- * Action to send to the server.
241
- */
242
- export { SendWebSocketMessage };
243
- if (false) {
244
- /** @type {?} */
245
- SendWebSocketMessage.prototype.payload;
246
- }
247
- /**
248
- * Action dispatched when the user tries to connect if the connection already exists.
249
- */
250
- var /**
251
- * Action dispatched when the user tries to connect if the connection already exists.
252
- */
253
- WebSocketConnectionUpdated = /** @class */ (function () {
254
- function WebSocketConnectionUpdated() {
255
- }
256
- Object.defineProperty(WebSocketConnectionUpdated, "type", {
257
- get: /**
258
- * @return {?}
259
- */
260
- function () {
261
- // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
262
- return '[WebSocket] Connection Updated';
263
- },
264
- enumerable: true,
265
- configurable: true
266
- });
267
- return WebSocketConnectionUpdated;
268
- }());
269
- /**
270
- * Action dispatched when the user tries to connect if the connection already exists.
271
- */
272
- export { WebSocketConnectionUpdated };
273
- /**
274
- * This error is thrown where there is no `type` (or custom `typeKey`) property
275
- * on the message that came from the server side socket
276
- */
277
- var /**
278
- * This error is thrown where there is no `type` (or custom `typeKey`) property
279
- * on the message that came from the server side socket
280
- */
281
- TypeKeyPropertyMissingError = /** @class */ (function (_super) {
282
- tslib_1.__extends(TypeKeyPropertyMissingError, _super);
283
- function TypeKeyPropertyMissingError(typeKey) {
284
- return _super.call(this, "Property " + typeKey + " is missing on the socket message") || this;
285
- }
286
- return TypeKeyPropertyMissingError;
287
- }(Error));
288
- /**
289
- * This error is thrown where there is no `type` (or custom `typeKey`) property
290
- * on the message that came from the server side socket
291
- */
292
- export { TypeKeyPropertyMissingError };
293
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3dlYnNvY2tldC1wbHVnaW4vIiwic291cmNlcyI6WyJzcmMvc3ltYm9scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRS9DLE1BQU0sS0FBTyxzQkFBc0IsR0FBRyxJQUFJLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQzs7OztBQUVsRixnREFnREM7Ozs7OztJQTVDQyx5Q0FBYTs7Ozs7Ozs7O0lBU2IsOENBQTZCOzs7OztJQUs3QixnREFBb0M7Ozs7OztJQU1wQyw2Q0FBaUI7Ozs7OztJQU1qQix1REFBMkI7Ozs7OztJQU0zQix1REFBMkI7Ozs7OztJQU0zQixnREFBbUM7Ozs7O0lBS25DLGtEQUF3Qzs7Ozs7O0FBRzFDLE1BQU0sVUFBVSxJQUFJO0lBQUMsZUFBZTtTQUFmLFVBQWUsRUFBZixxQkFBZSxFQUFmLElBQWU7UUFBZiwwQkFBZTs7SUFDbEM7OztJQUFPLGNBQVksQ0FBQyxFQUFDO0FBQ3ZCLENBQUM7Ozs7QUFLRDs7OztJQUtFLDBCQUFtQixPQUFvQztRQUFwQyxZQUFPLEdBQVAsT0FBTyxDQUE2QjtJQUFHLENBQUM7SUFKM0Qsc0JBQVcsd0JBQUk7Ozs7UUFBZjtZQUNFLHNJQUFzSTtZQUN0SSxPQUFPLHFCQUFxQixDQUFDO1FBQy9CLENBQUM7OztPQUFBO0lBRUgsdUJBQUM7QUFBRCxDQUFDLEFBTkQsSUFNQzs7Ozs7OztJQURhLG1DQUEyQzs7Ozs7QUFNekQ7Ozs7SUFLRSwrQkFBbUIsT0FBWTtRQUFaLFlBQU8sR0FBUCxPQUFPLENBQUs7SUFBRyxDQUFDO0lBSm5DLHNCQUFXLDZCQUFJOzs7O1FBQWY7WUFDRSxzSUFBc0k7WUFDdEksT0FBTywyQkFBMkIsQ0FBQztRQUNyQyxDQUFDOzs7T0FBQTtJQUVILDRCQUFDO0FBQUQsQ0FBQyxBQU5ELElBTUM7Ozs7Ozs7SUFEYSx3Q0FBbUI7Ozs7O0FBTWpDOzs7O0lBQUE7SUFLQSxDQUFDO0lBSkMsc0JBQVcsMkJBQUk7Ozs7UUFBZjtZQUNFLHNJQUFzSTtZQUN0SSxPQUFPLHdCQUF3QixDQUFDO1FBQ2xDLENBQUM7OztPQUFBO0lBQ0gsMEJBQUM7QUFBRCxDQUFDLEFBTEQsSUFLQzs7Ozs7Ozs7QUFLRDs7OztJQUFBO0lBSUEsQ0FBQztJQUhDLHNCQUFXLDBCQUFJOzs7O1FBQWY7WUFDRSxPQUFPLHVCQUF1QixDQUFDO1FBQ2pDLENBQUM7OztPQUFBO0lBQ0gseUJBQUM7QUFBRCxDQUFDLEFBSkQsSUFJQzs7Ozs7Ozs7QUFLRDs7OztJQUFBO0lBS0EsQ0FBQztJQUpDLHNCQUFXLDZCQUFJOzs7O1FBQWY7WUFDRSxzSUFBc0k7WUFDdEksT0FBTywwQkFBMEIsQ0FBQztRQUNwQyxDQUFDOzs7T0FBQTtJQUNILDRCQUFDO0FBQUQsQ0FBQyxBQUxELElBS0M7Ozs7Ozs7O0FBS0Q7Ozs7SUFLRSw4QkFBbUIsT0FBWTtRQUFaLFlBQU8sR0FBUCxPQUFPLENBQUs7SUFBRyxDQUFDO0lBSm5DLHNCQUFXLDRCQUFJOzs7O1FBQWY7WUFDRSxzSUFBc0k7WUFDdEksT0FBTywwQkFBMEIsQ0FBQztRQUNwQyxDQUFDOzs7T0FBQTtJQUVILDJCQUFDO0FBQUQsQ0FBQyxBQU5ELElBTUM7Ozs7Ozs7SUFEYSx1Q0FBbUI7Ozs7O0FBTWpDOzs7O0lBQUE7SUFLQSxDQUFDO0lBSkMsc0JBQVcsa0NBQUk7Ozs7UUFBZjtZQUNFLHNJQUFzSTtZQUN0SSxPQUFPLGdDQUFnQyxDQUFDO1FBQzFDLENBQUM7OztPQUFBO0lBQ0gsaUNBQUM7QUFBRCxDQUFDLEFBTEQsSUFLQzs7Ozs7Ozs7O0FBTUQ7Ozs7O0lBQWlELHVEQUFLO0lBQ3BELHFDQUFZLE9BQWU7ZUFDekIsa0JBQU0sY0FBWSxPQUFPLHNDQUFtQyxDQUFDO0lBQy9ELENBQUM7SUFDSCxrQ0FBQztBQUFELENBQUMsQUFKRCxDQUFpRCxLQUFLLEdBSXJEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IE5HWFNfV0VCU09DS0VUX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ05HWFNfV0VCU09DS0VUX09QVElPTlMnKTtcblxuZXhwb3J0IGludGVyZmFjZSBOZ3hzV2Vic29ja2V0UGx1Z2luT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBVUkwgb2YgdGhlIHdlYnNvY2tldC5cbiAgICovXG4gIHVybD86IHN0cmluZztcblxuICAvKipcbiAgICogRWl0aGVyIGEgc2luZ2xlIHByb3RvY29sIHN0cmluZyBvciBhbiBhcnJheSBvZiBwcm90b2NvbCBzdHJpbmdzLlxuICAgKiBUaGVzZSBzdHJpbmdzIGFyZSB1c2VkIHRvIGluZGljYXRlIHN1Yi1wcm90b2NvbHMsIHNvIHRoYXQgYSBzaW5nbGUgc2VydmVyXG4gICAqIGNhbiBpbXBsZW1lbnQgbXVsdGlwbGUgV2ViU29ja2V0IHN1Yi1wcm90b2NvbHMgKGZvciBleGFtcGxlLCB5b3UgbWlnaHQgd2FudCBvbmUgc2VydmVyIHRvIGJlIGFibGVcbiAgICogdG8gaGFuZGxlIGRpZmZlcmVudCB0eXBlcyBvZiBpbnRlcmFjdGlvbnMgZGVwZW5kaW5nIG9uIHRoZSBzcGVjaWZpZWQgcHJvdG9jb2wpLlxuICAgKiBJZiB5b3UgZG9uJ3Qgc3BlY2lmeSBhIHByb3RvY29sIHN0cmluZywgYW4gZW1wdHkgc3RyaW5nIGlzIGFzc3VtZWQuXG4gICAqL1xuICBwcm90b2NvbD86IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBgYmluYXJ5VHlwZWAgcHJvcGVydHkgb2YgdGhlIHVuZGVybHlpbmcgV2ViU29ja2V0LlxuICAgKi9cbiAgYmluYXJ5VHlwZT86ICdibG9iJyB8ICdhcnJheWJ1ZmZlcic7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm9wZXJ0eSBuYW1lIHRvIGRpc3RpZ3VuaXNoIHRoaXMgdHlwZSBmb3IgdGhlIHN0b3JlLlxuICAgKiBEZWZhdWx0OiAndHlwZSdcbiAgICovXG4gIHR5cGVLZXk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEludGVydmFsIHRvIHRyeSBhbmQgcmVjb25uZWN0LlxuICAgKiBEZWZhdWx0OiA1MDAwXG4gICAqL1xuICByZWNvbm5lY3RJbnRlcnZhbD86IG51bWJlcjtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIHJlY29ubmVjdCBhdHRlbXBzLlxuICAgKiBEZWZhdWx0OiAxMFxuICAgKi9cbiAgcmVjb25uZWN0QXR0ZW1wdHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNlcmlhbGl6ZXIgdG8gY2FsbCBiZWZvcmUgc2VuZGluZyBtZXNzYWdlc1xuICAgKiBEZWZhdWx0OiBganNvbi5zdHJpbmdpZnlgXG4gICAqL1xuICBzZXJpYWxpemVyPzogKGRhdGE6IGFueSkgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZXNlcmFsaXplciBiZWZvcmUgcHVibGlzaGluZyB0aGUgbWVzc2FnZS5cbiAgICovXG4gIGRlc2VyaWFsaXplcj86IChlOiBNZXNzYWdlRXZlbnQpID0+IGFueTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vb3AoLi4uX2FyZ3M6IGFueVtdKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHt9O1xufVxuXG4vKipcbiAqIEFjdGlvbiB0byBjb25uZWN0IHRvIHRoZSB3ZWJzb2NrZXQuIE9wdGlvbmFsbHkgcGFzcyBhIFVSTC5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbm5lY3RXZWJTb2NrZXQge1xuICBzdGF0aWMgZ2V0IHR5cGUoKSB7XG4gICAgLy8gTk9URTogTm90IG5lY2Vzc2FyeSB0byBkZWNsYXJlIHRoZSB0eXBlIGluIHRoaXMgd2F5IGluIHlvdXIgY29kZS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3hzL3N0b3JlL3B1bGwvNjQ0I2lzc3VlY29tbWVudC00MzYwMDMxMzhcbiAgICByZXR1cm4gJ1tXZWJTb2NrZXRdIENvbm5lY3QnO1xuICB9XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkPzogTmd4c1dlYnNvY2tldFBsdWdpbk9wdGlvbnMpIHt9XG59XG5cbi8qKlxuICogQWN0aW9uIHRyaWdnZXJlZCB3aGVuIGEgZXJyb3Igb2N1cnJzXG4gKi9cbmV4cG9ydCBjbGFzcyBXZWJzb2NrZXRNZXNzYWdlRXJyb3Ige1xuICBzdGF0aWMgZ2V0IHR5cGUoKSB7XG4gICAgLy8gTk9URTogTm90IG5lY2Vzc2FyeSB0byBkZWNsYXJlIHRoZSB0eXBlIGluIHRoaXMgd2F5IGluIHlvdXIgY29kZS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3hzL3N0b3JlL3B1bGwvNjQ0I2lzc3VlY29tbWVudC00MzYwMDMxMzhcbiAgICByZXR1cm4gJ1tXZWJTb2NrZXRdIE1lc3NhZ2UgRXJyb3InO1xuICB9XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBhbnkpIHt9XG59XG5cbi8qKlxuICogQWN0aW9uIHRvIGRpc2Nvbm5lY3QgdGhlIHdlYnNvY2tldC5cbiAqL1xuZXhwb3J0IGNsYXNzIERpc2Nvbm5lY3RXZWJTb2NrZXQge1xuICBzdGF0aWMgZ2V0IHR5cGUoKSB7XG4gICAgLy8gTk9URTogTm90IG5lY2Vzc2FyeSB0byBkZWNsYXJlIHRoZSB0eXBlIGluIHRoaXMgd2F5IGluIHlvdXIgY29kZS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3hzL3N0b3JlL3B1bGwvNjQ0I2lzc3VlY29tbWVudC00MzYwMDMxMzhcbiAgICByZXR1cm4gJ1tXZWJTb2NrZXRdIERpc2Nvbm5lY3QnO1xuICB9XG59XG5cbi8qKlxuICogQWN0aW9uIHRyaWdnZXJlZCB3aGVuIHdlYnNvY2tldCBpcyBjb25uZWN0ZWRcbiAqL1xuZXhwb3J0IGNsYXNzIFdlYlNvY2tldENvbm5lY3RlZCB7XG4gIHN0YXRpYyBnZXQgdHlwZSgpIHtcbiAgICByZXR1cm4gJ1tXZWJTb2NrZXRdIENvbm5lY3RlZCc7XG4gIH1cbn1cblxuLyoqXG4gKiBBY3Rpb24gdHJpZ2dlcmVkIHdoZW4gd2Vic29ja2V0IGlzIGRpc2Nvbm5lY3RlZFxuICovXG5leHBvcnQgY2xhc3MgV2ViU29ja2V0RGlzY29ubmVjdGVkIHtcbiAgc3RhdGljIGdldCB0eXBlKCkge1xuICAgIC8vIE5PVEU6IE5vdCBuZWNlc3NhcnkgdG8gZGVjbGFyZSB0aGUgdHlwZSBpbiB0aGlzIHdheSBpbiB5b3VyIGNvZGUuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbmd4cy9zdG9yZS9wdWxsLzY0NCNpc3N1ZWNvbW1lbnQtNDM2MDAzMTM4XG4gICAgcmV0dXJuICdbV2ViU29ja2V0XSBEaXNjb25uZWN0ZWQnO1xuICB9XG59XG5cbi8qKlxuICogQWN0aW9uIHRvIHNlbmQgdG8gdGhlIHNlcnZlci5cbiAqL1xuZXhwb3J0IGNsYXNzIFNlbmRXZWJTb2NrZXRNZXNzYWdlIHtcbiAgc3RhdGljIGdldCB0eXBlKCkge1xuICAgIC8vIE5PVEU6IE5vdCBuZWNlc3NhcnkgdG8gZGVjbGFyZSB0aGUgdHlwZSBpbiB0aGlzIHdheSBpbiB5b3VyIGNvZGUuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbmd4cy9zdG9yZS9wdWxsLzY0NCNpc3N1ZWNvbW1lbnQtNDM2MDAzMTM4XG4gICAgcmV0dXJuICdbV2ViU29ja2V0XSBTZW5kIE1lc3NhZ2UnO1xuICB9XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBhbnkpIHt9XG59XG5cbi8qKlxuICogQWN0aW9uIGRpc3BhdGNoZWQgd2hlbiB0aGUgdXNlciB0cmllcyB0byBjb25uZWN0IGlmIHRoZSBjb25uZWN0aW9uIGFscmVhZHkgZXhpc3RzLlxuICovXG5leHBvcnQgY2xhc3MgV2ViU29ja2V0Q29ubmVjdGlvblVwZGF0ZWQge1xuICBzdGF0aWMgZ2V0IHR5cGUoKSB7XG4gICAgLy8gTk9URTogTm90IG5lY2Vzc2FyeSB0byBkZWNsYXJlIHRoZSB0eXBlIGluIHRoaXMgd2F5IGluIHlvdXIgY29kZS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3hzL3N0b3JlL3B1bGwvNjQ0I2lzc3VlY29tbWVudC00MzYwMDMxMzhcbiAgICByZXR1cm4gJ1tXZWJTb2NrZXRdIENvbm5lY3Rpb24gVXBkYXRlZCc7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGlzIGVycm9yIGlzIHRocm93biB3aGVyZSB0aGVyZSBpcyBubyBgdHlwZWAgKG9yIGN1c3RvbSBgdHlwZUtleWApIHByb3BlcnR5XG4gKiBvbiB0aGUgbWVzc2FnZSB0aGF0IGNhbWUgZnJvbSB0aGUgc2VydmVyIHNpZGUgc29ja2V0XG4gKi9cbmV4cG9ydCBjbGFzcyBUeXBlS2V5UHJvcGVydHlNaXNzaW5nRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKHR5cGVLZXk6IHN0cmluZykge1xuICAgIHN1cGVyKGBQcm9wZXJ0eSAke3R5cGVLZXl9IGlzIG1pc3Npbmcgb24gdGhlIHNvY2tldCBtZXNzYWdlYCk7XG4gIH1cbn1cbiJdfQ==
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import * as tslib_1 from "tslib";
6
+ import { InjectionToken } from '@angular/core';
7
+ /** @type {?} */
8
+ export var NGXS_WEBSOCKET_OPTIONS = new InjectionToken('NGXS_WEBSOCKET_OPTIONS');
9
+ /**
10
+ * @record
11
+ */
12
+ export function NgxsWebsocketPluginOptions() { }
13
+ if (false) {
14
+ /**
15
+ * URL of the websocket.
16
+ * @type {?|undefined}
17
+ */
18
+ NgxsWebsocketPluginOptions.prototype.url;
19
+ /**
20
+ * Either a single protocol string or an array of protocol strings.
21
+ * These strings are used to indicate sub-protocols, so that a single server
22
+ * can implement multiple WebSocket sub-protocols (for example, you might want one server to be able
23
+ * to handle different types of interactions depending on the specified protocol).
24
+ * If you don't specify a protocol string, an empty string is assumed.
25
+ * @type {?|undefined}
26
+ */
27
+ NgxsWebsocketPluginOptions.prototype.protocol;
28
+ /**
29
+ * Sets the `binaryType` property of the underlying WebSocket.
30
+ * @type {?|undefined}
31
+ */
32
+ NgxsWebsocketPluginOptions.prototype.binaryType;
33
+ /**
34
+ * The property name to distigunish this type for the store.
35
+ * Default: 'type'
36
+ * @type {?|undefined}
37
+ */
38
+ NgxsWebsocketPluginOptions.prototype.typeKey;
39
+ /**
40
+ * Interval to try and reconnect.
41
+ * Default: 5000
42
+ * @type {?|undefined}
43
+ */
44
+ NgxsWebsocketPluginOptions.prototype.reconnectInterval;
45
+ /**
46
+ * Number of reconnect attemps.
47
+ * Default: 10
48
+ * @type {?|undefined}
49
+ */
50
+ NgxsWebsocketPluginOptions.prototype.reconnectAttempts;
51
+ /**
52
+ * Serializer to call before sending messages
53
+ * Default: `json.stringify`
54
+ * @type {?|undefined}
55
+ */
56
+ NgxsWebsocketPluginOptions.prototype.serializer;
57
+ /**
58
+ * Deseralizer before publishing the message.
59
+ * @type {?|undefined}
60
+ */
61
+ NgxsWebsocketPluginOptions.prototype.deserializer;
62
+ }
63
+ /**
64
+ * @param {...?} _args
65
+ * @return {?}
66
+ */
67
+ export function noop() {
68
+ var _args = [];
69
+ for (var _i = 0; _i < arguments.length; _i++) {
70
+ _args[_i] = arguments[_i];
71
+ }
72
+ return (/**
73
+ * @return {?}
74
+ */
75
+ function () { });
76
+ }
77
+ /**
78
+ * Action to connect to the websocket. Optionally pass a URL.
79
+ */
80
+ var /**
81
+ * Action to connect to the websocket. Optionally pass a URL.
82
+ */
83
+ ConnectWebSocket = /** @class */ (function () {
84
+ function ConnectWebSocket(payload) {
85
+ this.payload = payload;
86
+ }
87
+ Object.defineProperty(ConnectWebSocket, "type", {
88
+ get: /**
89
+ * @return {?}
90
+ */
91
+ function () {
92
+ // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
93
+ return '[WebSocket] Connect';
94
+ },
95
+ enumerable: true,
96
+ configurable: true
97
+ });
98
+ return ConnectWebSocket;
99
+ }());
100
+ /**
101
+ * Action to connect to the websocket. Optionally pass a URL.
102
+ */
103
+ export { ConnectWebSocket };
104
+ if (false) {
105
+ /** @type {?} */
106
+ ConnectWebSocket.prototype.payload;
107
+ }
108
+ /**
109
+ * Action triggered when a error ocurrs
110
+ */
111
+ var /**
112
+ * Action triggered when a error ocurrs
113
+ */
114
+ WebsocketMessageError = /** @class */ (function () {
115
+ function WebsocketMessageError(payload) {
116
+ this.payload = payload;
117
+ }
118
+ Object.defineProperty(WebsocketMessageError, "type", {
119
+ get: /**
120
+ * @return {?}
121
+ */
122
+ function () {
123
+ // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
124
+ return '[WebSocket] Message Error';
125
+ },
126
+ enumerable: true,
127
+ configurable: true
128
+ });
129
+ return WebsocketMessageError;
130
+ }());
131
+ /**
132
+ * Action triggered when a error ocurrs
133
+ */
134
+ export { WebsocketMessageError };
135
+ if (false) {
136
+ /** @type {?} */
137
+ WebsocketMessageError.prototype.payload;
138
+ }
139
+ /**
140
+ * Action to disconnect the websocket.
141
+ */
142
+ var /**
143
+ * Action to disconnect the websocket.
144
+ */
145
+ DisconnectWebSocket = /** @class */ (function () {
146
+ function DisconnectWebSocket() {
147
+ }
148
+ Object.defineProperty(DisconnectWebSocket, "type", {
149
+ get: /**
150
+ * @return {?}
151
+ */
152
+ function () {
153
+ // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
154
+ return '[WebSocket] Disconnect';
155
+ },
156
+ enumerable: true,
157
+ configurable: true
158
+ });
159
+ return DisconnectWebSocket;
160
+ }());
161
+ /**
162
+ * Action to disconnect the websocket.
163
+ */
164
+ export { DisconnectWebSocket };
165
+ /**
166
+ * Action triggered when websocket is connected
167
+ */
168
+ var /**
169
+ * Action triggered when websocket is connected
170
+ */
171
+ WebSocketConnected = /** @class */ (function () {
172
+ function WebSocketConnected() {
173
+ }
174
+ Object.defineProperty(WebSocketConnected, "type", {
175
+ get: /**
176
+ * @return {?}
177
+ */
178
+ function () {
179
+ return '[WebSocket] Connected';
180
+ },
181
+ enumerable: true,
182
+ configurable: true
183
+ });
184
+ return WebSocketConnected;
185
+ }());
186
+ /**
187
+ * Action triggered when websocket is connected
188
+ */
189
+ export { WebSocketConnected };
190
+ /**
191
+ * Action triggered when websocket is disconnected
192
+ */
193
+ var /**
194
+ * Action triggered when websocket is disconnected
195
+ */
196
+ WebSocketDisconnected = /** @class */ (function () {
197
+ function WebSocketDisconnected() {
198
+ }
199
+ Object.defineProperty(WebSocketDisconnected, "type", {
200
+ get: /**
201
+ * @return {?}
202
+ */
203
+ function () {
204
+ // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
205
+ return '[WebSocket] Disconnected';
206
+ },
207
+ enumerable: true,
208
+ configurable: true
209
+ });
210
+ return WebSocketDisconnected;
211
+ }());
212
+ /**
213
+ * Action triggered when websocket is disconnected
214
+ */
215
+ export { WebSocketDisconnected };
216
+ /**
217
+ * Action to send to the server.
218
+ */
219
+ var /**
220
+ * Action to send to the server.
221
+ */
222
+ SendWebSocketMessage = /** @class */ (function () {
223
+ function SendWebSocketMessage(payload) {
224
+ this.payload = payload;
225
+ }
226
+ Object.defineProperty(SendWebSocketMessage, "type", {
227
+ get: /**
228
+ * @return {?}
229
+ */
230
+ function () {
231
+ // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
232
+ return '[WebSocket] Send Message';
233
+ },
234
+ enumerable: true,
235
+ configurable: true
236
+ });
237
+ return SendWebSocketMessage;
238
+ }());
239
+ /**
240
+ * Action to send to the server.
241
+ */
242
+ export { SendWebSocketMessage };
243
+ if (false) {
244
+ /** @type {?} */
245
+ SendWebSocketMessage.prototype.payload;
246
+ }
247
+ /**
248
+ * Action dispatched when the user tries to connect if the connection already exists.
249
+ */
250
+ var /**
251
+ * Action dispatched when the user tries to connect if the connection already exists.
252
+ */
253
+ WebSocketConnectionUpdated = /** @class */ (function () {
254
+ function WebSocketConnectionUpdated() {
255
+ }
256
+ Object.defineProperty(WebSocketConnectionUpdated, "type", {
257
+ get: /**
258
+ * @return {?}
259
+ */
260
+ function () {
261
+ // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
262
+ return '[WebSocket] Connection Updated';
263
+ },
264
+ enumerable: true,
265
+ configurable: true
266
+ });
267
+ return WebSocketConnectionUpdated;
268
+ }());
269
+ /**
270
+ * Action dispatched when the user tries to connect if the connection already exists.
271
+ */
272
+ export { WebSocketConnectionUpdated };
273
+ /**
274
+ * This error is thrown where there is no `type` (or custom `typeKey`) property
275
+ * on the message that came from the server side socket
276
+ */
277
+ var /**
278
+ * This error is thrown where there is no `type` (or custom `typeKey`) property
279
+ * on the message that came from the server side socket
280
+ */
281
+ TypeKeyPropertyMissingError = /** @class */ (function (_super) {
282
+ tslib_1.__extends(TypeKeyPropertyMissingError, _super);
283
+ function TypeKeyPropertyMissingError(typeKey) {
284
+ return _super.call(this, "Property " + typeKey + " is missing on the socket message") || this;
285
+ }
286
+ return TypeKeyPropertyMissingError;
287
+ }(Error));
288
+ /**
289
+ * This error is thrown where there is no `type` (or custom `typeKey`) property
290
+ * on the message that came from the server side socket
291
+ */
292
+ export { TypeKeyPropertyMissingError };
293
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3dlYnNvY2tldC1wbHVnaW4vIiwic291cmNlcyI6WyJzcmMvc3ltYm9scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRS9DLE1BQU0sS0FBTyxzQkFBc0IsR0FBRyxJQUFJLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQzs7OztBQUVsRixnREFnREM7Ozs7OztJQTVDQyx5Q0FBYTs7Ozs7Ozs7O0lBU2IsOENBQTZCOzs7OztJQUs3QixnREFBb0M7Ozs7OztJQU1wQyw2Q0FBaUI7Ozs7OztJQU1qQix1REFBMkI7Ozs7OztJQU0zQix1REFBMkI7Ozs7OztJQU0zQixnREFBbUM7Ozs7O0lBS25DLGtEQUF3Qzs7Ozs7O0FBRzFDLE1BQU0sVUFBVSxJQUFJO0lBQUMsZUFBZTtTQUFmLFVBQWUsRUFBZixxQkFBZSxFQUFmLElBQWU7UUFBZiwwQkFBZTs7SUFDbEM7OztJQUFPLGNBQVksQ0FBQyxFQUFDO0FBQ3ZCLENBQUM7Ozs7QUFLRDs7OztJQUtFLDBCQUFtQixPQUFvQztRQUFwQyxZQUFPLEdBQVAsT0FBTyxDQUE2QjtJQUFHLENBQUM7SUFKM0Qsc0JBQVcsd0JBQUk7Ozs7UUFBZjtZQUNFLHNJQUFzSTtZQUN0SSxPQUFPLHFCQUFxQixDQUFDO1FBQy9CLENBQUM7OztPQUFBO0lBRUgsdUJBQUM7QUFBRCxDQUFDLEFBTkQsSUFNQzs7Ozs7OztJQURhLG1DQUEyQzs7Ozs7QUFNekQ7Ozs7SUFLRSwrQkFBbUIsT0FBWTtRQUFaLFlBQU8sR0FBUCxPQUFPLENBQUs7SUFBRyxDQUFDO0lBSm5DLHNCQUFXLDZCQUFJOzs7O1FBQWY7WUFDRSxzSUFBc0k7WUFDdEksT0FBTywyQkFBMkIsQ0FBQztRQUNyQyxDQUFDOzs7T0FBQTtJQUVILDRCQUFDO0FBQUQsQ0FBQyxBQU5ELElBTUM7Ozs7Ozs7SUFEYSx3Q0FBbUI7Ozs7O0FBTWpDOzs7O0lBQUE7SUFLQSxDQUFDO0lBSkMsc0JBQVcsMkJBQUk7Ozs7UUFBZjtZQUNFLHNJQUFzSTtZQUN0SSxPQUFPLHdCQUF3QixDQUFDO1FBQ2xDLENBQUM7OztPQUFBO0lBQ0gsMEJBQUM7QUFBRCxDQUFDLEFBTEQsSUFLQzs7Ozs7Ozs7QUFLRDs7OztJQUFBO0lBSUEsQ0FBQztJQUhDLHNCQUFXLDBCQUFJOzs7O1FBQWY7WUFDRSxPQUFPLHVCQUF1QixDQUFDO1FBQ2pDLENBQUM7OztPQUFBO0lBQ0gseUJBQUM7QUFBRCxDQUFDLEFBSkQsSUFJQzs7Ozs7Ozs7QUFLRDs7OztJQUFBO0lBS0EsQ0FBQztJQUpDLHNCQUFXLDZCQUFJOzs7O1FBQWY7WUFDRSxzSUFBc0k7WUFDdEksT0FBTywwQkFBMEIsQ0FBQztRQUNwQyxDQUFDOzs7T0FBQTtJQUNILDRCQUFDO0FBQUQsQ0FBQyxBQUxELElBS0M7Ozs7Ozs7O0FBS0Q7Ozs7SUFLRSw4QkFBbUIsT0FBWTtRQUFaLFlBQU8sR0FBUCxPQUFPLENBQUs7SUFBRyxDQUFDO0lBSm5DLHNCQUFXLDRCQUFJOzs7O1FBQWY7WUFDRSxzSUFBc0k7WUFDdEksT0FBTywwQkFBMEIsQ0FBQztRQUNwQyxDQUFDOzs7T0FBQTtJQUVILDJCQUFDO0FBQUQsQ0FBQyxBQU5ELElBTUM7Ozs7Ozs7SUFEYSx1Q0FBbUI7Ozs7O0FBTWpDOzs7O0lBQUE7SUFLQSxDQUFDO0lBSkMsc0JBQVcsa0NBQUk7Ozs7UUFBZjtZQUNFLHNJQUFzSTtZQUN0SSxPQUFPLGdDQUFnQyxDQUFDO1FBQzFDLENBQUM7OztPQUFBO0lBQ0gsaUNBQUM7QUFBRCxDQUFDLEFBTEQsSUFLQzs7Ozs7Ozs7O0FBTUQ7Ozs7O0lBQWlELHVEQUFLO0lBQ3BELHFDQUFZLE9BQWU7ZUFDekIsa0JBQU0sY0FBWSxPQUFPLHNDQUFtQyxDQUFDO0lBQy9ELENBQUM7SUFDSCxrQ0FBQztBQUFELENBQUMsQUFKRCxDQUFpRCxLQUFLLEdBSXJEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBjb25zdCBOR1hTX1dFQlNPQ0tFVF9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuKCdOR1hTX1dFQlNPQ0tFVF9PUFRJT05TJyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE5neHNXZWJzb2NrZXRQbHVnaW5PcHRpb25zIHtcclxuICAvKipcclxuICAgKiBVUkwgb2YgdGhlIHdlYnNvY2tldC5cclxuICAgKi9cclxuICB1cmw/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEVpdGhlciBhIHNpbmdsZSBwcm90b2NvbCBzdHJpbmcgb3IgYW4gYXJyYXkgb2YgcHJvdG9jb2wgc3RyaW5ncy5cclxuICAgKiBUaGVzZSBzdHJpbmdzIGFyZSB1c2VkIHRvIGluZGljYXRlIHN1Yi1wcm90b2NvbHMsIHNvIHRoYXQgYSBzaW5nbGUgc2VydmVyXHJcbiAgICogY2FuIGltcGxlbWVudCBtdWx0aXBsZSBXZWJTb2NrZXQgc3ViLXByb3RvY29scyAoZm9yIGV4YW1wbGUsIHlvdSBtaWdodCB3YW50IG9uZSBzZXJ2ZXIgdG8gYmUgYWJsZVxyXG4gICAqIHRvIGhhbmRsZSBkaWZmZXJlbnQgdHlwZXMgb2YgaW50ZXJhY3Rpb25zIGRlcGVuZGluZyBvbiB0aGUgc3BlY2lmaWVkIHByb3RvY29sKS5cclxuICAgKiBJZiB5b3UgZG9uJ3Qgc3BlY2lmeSBhIHByb3RvY29sIHN0cmluZywgYW4gZW1wdHkgc3RyaW5nIGlzIGFzc3VtZWQuXHJcbiAgICovXHJcbiAgcHJvdG9jb2w/OiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgYGJpbmFyeVR5cGVgIHByb3BlcnR5IG9mIHRoZSB1bmRlcmx5aW5nIFdlYlNvY2tldC5cclxuICAgKi9cclxuICBiaW5hcnlUeXBlPzogJ2Jsb2InIHwgJ2FycmF5YnVmZmVyJztcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHByb3BlcnR5IG5hbWUgdG8gZGlzdGlndW5pc2ggdGhpcyB0eXBlIGZvciB0aGUgc3RvcmUuXHJcbiAgICogRGVmYXVsdDogJ3R5cGUnXHJcbiAgICovXHJcbiAgdHlwZUtleT86IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogSW50ZXJ2YWwgdG8gdHJ5IGFuZCByZWNvbm5lY3QuXHJcbiAgICogRGVmYXVsdDogNTAwMFxyXG4gICAqL1xyXG4gIHJlY29ubmVjdEludGVydmFsPzogbnVtYmVyO1xyXG5cclxuICAvKipcclxuICAgKiBOdW1iZXIgb2YgcmVjb25uZWN0IGF0dGVtcHMuXHJcbiAgICogRGVmYXVsdDogMTBcclxuICAgKi9cclxuICByZWNvbm5lY3RBdHRlbXB0cz86IG51bWJlcjtcclxuXHJcbiAgLyoqXHJcbiAgICogU2VyaWFsaXplciB0byBjYWxsIGJlZm9yZSBzZW5kaW5nIG1lc3NhZ2VzXHJcbiAgICogRGVmYXVsdDogYGpzb24uc3RyaW5naWZ5YFxyXG4gICAqL1xyXG4gIHNlcmlhbGl6ZXI/OiAoZGF0YTogYW55KSA9PiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIERlc2VyYWxpemVyIGJlZm9yZSBwdWJsaXNoaW5nIHRoZSBtZXNzYWdlLlxyXG4gICAqL1xyXG4gIGRlc2VyaWFsaXplcj86IChlOiBNZXNzYWdlRXZlbnQpID0+IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG5vb3AoLi4uX2FyZ3M6IGFueVtdKSB7XHJcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge307XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBY3Rpb24gdG8gY29ubmVjdCB0byB0aGUgd2Vic29ja2V0LiBPcHRpb25hbGx5IHBhc3MgYSBVUkwuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQ29ubmVjdFdlYlNvY2tldCB7XHJcbiAgc3RhdGljIGdldCB0eXBlKCkge1xyXG4gICAgLy8gTk9URTogTm90IG5lY2Vzc2FyeSB0byBkZWNsYXJlIHRoZSB0eXBlIGluIHRoaXMgd2F5IGluIHlvdXIgY29kZS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3hzL3N0b3JlL3B1bGwvNjQ0I2lzc3VlY29tbWVudC00MzYwMDMxMzhcclxuICAgIHJldHVybiAnW1dlYlNvY2tldF0gQ29ubmVjdCc7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkPzogTmd4c1dlYnNvY2tldFBsdWdpbk9wdGlvbnMpIHt9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBY3Rpb24gdHJpZ2dlcmVkIHdoZW4gYSBlcnJvciBvY3VycnNcclxuICovXHJcbmV4cG9ydCBjbGFzcyBXZWJzb2NrZXRNZXNzYWdlRXJyb3Ige1xyXG4gIHN0YXRpYyBnZXQgdHlwZSgpIHtcclxuICAgIC8vIE5PVEU6IE5vdCBuZWNlc3NhcnkgdG8gZGVjbGFyZSB0aGUgdHlwZSBpbiB0aGlzIHdheSBpbiB5b3VyIGNvZGUuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbmd4cy9zdG9yZS9wdWxsLzY0NCNpc3N1ZWNvbW1lbnQtNDM2MDAzMTM4XHJcbiAgICByZXR1cm4gJ1tXZWJTb2NrZXRdIE1lc3NhZ2UgRXJyb3InO1xyXG4gIH1cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogYW55KSB7fVxyXG59XHJcblxyXG4vKipcclxuICogQWN0aW9uIHRvIGRpc2Nvbm5lY3QgdGhlIHdlYnNvY2tldC5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBEaXNjb25uZWN0V2ViU29ja2V0IHtcclxuICBzdGF0aWMgZ2V0IHR5cGUoKSB7XHJcbiAgICAvLyBOT1RFOiBOb3QgbmVjZXNzYXJ5IHRvIGRlY2xhcmUgdGhlIHR5cGUgaW4gdGhpcyB3YXkgaW4geW91ciBjb2RlLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL25neHMvc3RvcmUvcHVsbC82NDQjaXNzdWVjb21tZW50LTQzNjAwMzEzOFxyXG4gICAgcmV0dXJuICdbV2ViU29ja2V0XSBEaXNjb25uZWN0JztcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBY3Rpb24gdHJpZ2dlcmVkIHdoZW4gd2Vic29ja2V0IGlzIGNvbm5lY3RlZFxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFdlYlNvY2tldENvbm5lY3RlZCB7XHJcbiAgc3RhdGljIGdldCB0eXBlKCkge1xyXG4gICAgcmV0dXJuICdbV2ViU29ja2V0XSBDb25uZWN0ZWQnO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEFjdGlvbiB0cmlnZ2VyZWQgd2hlbiB3ZWJzb2NrZXQgaXMgZGlzY29ubmVjdGVkXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgV2ViU29ja2V0RGlzY29ubmVjdGVkIHtcclxuICBzdGF0aWMgZ2V0IHR5cGUoKSB7XHJcbiAgICAvLyBOT1RFOiBOb3QgbmVjZXNzYXJ5IHRvIGRlY2xhcmUgdGhlIHR5cGUgaW4gdGhpcyB3YXkgaW4geW91ciBjb2RlLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL25neHMvc3RvcmUvcHVsbC82NDQjaXNzdWVjb21tZW50LTQzNjAwMzEzOFxyXG4gICAgcmV0dXJuICdbV2ViU29ja2V0XSBEaXNjb25uZWN0ZWQnO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEFjdGlvbiB0byBzZW5kIHRvIHRoZSBzZXJ2ZXIuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgU2VuZFdlYlNvY2tldE1lc3NhZ2Uge1xyXG4gIHN0YXRpYyBnZXQgdHlwZSgpIHtcclxuICAgIC8vIE5PVEU6IE5vdCBuZWNlc3NhcnkgdG8gZGVjbGFyZSB0aGUgdHlwZSBpbiB0aGlzIHdheSBpbiB5b3VyIGNvZGUuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbmd4cy9zdG9yZS9wdWxsLzY0NCNpc3N1ZWNvbW1lbnQtNDM2MDAzMTM4XHJcbiAgICByZXR1cm4gJ1tXZWJTb2NrZXRdIFNlbmQgTWVzc2FnZSc7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBhbnkpIHt9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBY3Rpb24gZGlzcGF0Y2hlZCB3aGVuIHRoZSB1c2VyIHRyaWVzIHRvIGNvbm5lY3QgaWYgdGhlIGNvbm5lY3Rpb24gYWxyZWFkeSBleGlzdHMuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgV2ViU29ja2V0Q29ubmVjdGlvblVwZGF0ZWQge1xyXG4gIHN0YXRpYyBnZXQgdHlwZSgpIHtcclxuICAgIC8vIE5PVEU6IE5vdCBuZWNlc3NhcnkgdG8gZGVjbGFyZSB0aGUgdHlwZSBpbiB0aGlzIHdheSBpbiB5b3VyIGNvZGUuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbmd4cy9zdG9yZS9wdWxsLzY0NCNpc3N1ZWNvbW1lbnQtNDM2MDAzMTM4XHJcbiAgICByZXR1cm4gJ1tXZWJTb2NrZXRdIENvbm5lY3Rpb24gVXBkYXRlZCc7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogVGhpcyBlcnJvciBpcyB0aHJvd24gd2hlcmUgdGhlcmUgaXMgbm8gYHR5cGVgIChvciBjdXN0b20gYHR5cGVLZXlgKSBwcm9wZXJ0eVxyXG4gKiBvbiB0aGUgbWVzc2FnZSB0aGF0IGNhbWUgZnJvbSB0aGUgc2VydmVyIHNpZGUgc29ja2V0XHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgVHlwZUtleVByb3BlcnR5TWlzc2luZ0Vycm9yIGV4dGVuZHMgRXJyb3Ige1xyXG4gIGNvbnN0cnVjdG9yKHR5cGVLZXk6IHN0cmluZykge1xyXG4gICAgc3VwZXIoYFByb3BlcnR5ICR7dHlwZUtleX0gaXMgbWlzc2luZyBvbiB0aGUgc29ja2V0IG1lc3NhZ2VgKTtcclxuICB9XHJcbn1cclxuIl19