@elderbyte/ngx-starter 17.7.2 → 17.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,7 +1,7 @@
1
1
  import { EventStreamContentType, fetchEventSource } from '@microsoft/fetch-event-source';
2
2
  import { LoggerFactory } from '@elderbyte/ts-logger';
3
3
  import { BehaviorSubject, Subject } from 'rxjs';
4
- import { map } from 'rxjs/operators';
4
+ import { filter } from 'rxjs/operators';
5
5
  export var ReactiveEventSourceState;
6
6
  (function (ReactiveEventSourceState) {
7
7
  ReactiveEventSourceState["IDLE"] = "IDLE";
@@ -11,12 +11,18 @@ export var ReactiveEventSourceState;
11
11
  ReactiveEventSourceState["ERROR"] = "ERROR";
12
12
  })(ReactiveEventSourceState || (ReactiveEventSourceState = {}));
13
13
  export class ReactiveSSeMessage {
14
- constructor(id, event, data, retry) {
14
+ constructor(id, event, dataRaw, retry) {
15
15
  this.id = id;
16
16
  this.event = event;
17
- this.data = data;
17
+ this.dataRaw = dataRaw;
18
18
  this.retry = retry;
19
19
  }
20
+ json() {
21
+ return JSON.parse(this.dataRaw);
22
+ }
23
+ jsonAs() {
24
+ return this.json();
25
+ }
20
26
  }
21
27
  export class ReactiveFetchEventSource {
22
28
  /***************************************************************************
@@ -45,10 +51,12 @@ export class ReactiveFetchEventSource {
45
51
  * Fields *
46
52
  * *
47
53
  **************************************************************************/
54
+ this.EVENT_TYPE_DEFAULT = 'message';
55
+ this.RECONNECT_DELAY_MS = 3000;
48
56
  this.log = LoggerFactory.getLogger(this.constructor.name);
49
57
  this.abortController = null;
50
58
  this.state$ = new BehaviorSubject(ReactiveEventSourceState.IDLE);
51
- this.eventTopics = new Map();
59
+ this.eventRelay = new Subject();
52
60
  if (!requestInitProvider) {
53
61
  throw new Error('You must provide a event source url provider!');
54
62
  }
@@ -82,22 +90,15 @@ export class ReactiveFetchEventSource {
82
90
  * Get an event stream for the given event type.
83
91
  * @param eventTypeRaw The event type. Defaults to 'message'.
84
92
  */
85
- events(eventTypeRaw) {
93
+ streamEventsOfType(eventTypeRaw) {
86
94
  const eventType = this.eventTypeOrDefault(eventTypeRaw);
87
- if (!this.eventTopics.has(eventType)) {
88
- this.eventTopics.set(eventType, new Subject());
89
- }
90
- const eventSubj = this.eventTopics.get(eventType);
91
- return eventSubj.asObservable();
95
+ return this.streamEvents().pipe(filter(e => e.event == eventType));
92
96
  }
93
97
  /**
94
- * Get an event stream of messages parsed from json.
95
- * (event.data must be in json format)
96
- *
97
- * @param eventType The event type. Defaults to 'message'.
98
+ * Get an event stream for all events no matter their type.
98
99
  */
99
- eventsJson(eventType) {
100
- return this.events(eventType).pipe(map(event => JSON.parse(event.data)));
100
+ streamEvents() {
101
+ return this.eventRelay.asObservable();
101
102
  }
102
103
  /**
103
104
  * Close this event source. It won't reconnect.
@@ -180,7 +181,7 @@ export class ReactiveFetchEventSource {
180
181
  else {
181
182
  this.log.error('Failed to open Event Source due to Error ' + response.status, response);
182
183
  this.updateState(ReactiveEventSourceState.ERROR);
183
- this.tryReconnect(); // TODO Necessary if keep alive = true?
184
+ this.tryReconnect();
184
185
  }
185
186
  }
186
187
  handleOnError(err) {
@@ -189,7 +190,7 @@ export class ReactiveFetchEventSource {
189
190
  if (!this.closed) {
190
191
  // There was an error - try reconnecting
191
192
  this.log.debug('Attempting to reconnect event-source ...');
192
- this.tryReconnect(); // TODO Necessary if keep alive = true?
193
+ this.tryReconnect();
193
194
  }
194
195
  else {
195
196
  this.log.debug('There was an error in the sse connection (closed).', err);
@@ -197,15 +198,12 @@ export class ReactiveFetchEventSource {
197
198
  }
198
199
  tryReconnect() {
199
200
  if (!this._closed) {
200
- setTimeout(() => this.reconnect(), 3000); // Delay the reconnect
201
+ setTimeout(() => this.reconnect(), this.RECONNECT_DELAY_MS); // Delay the reconnect
201
202
  }
202
203
  }
203
204
  handleOnMessage(msg) {
204
205
  const eventType = this.eventTypeOrDefault(msg.event);
205
- const topic = this.eventTopics.get(eventType);
206
- if (topic) {
207
- topic.next(new ReactiveSSeMessage(msg.id, eventType, msg.data, msg.retry));
208
- }
206
+ this.eventRelay.next(new ReactiveSSeMessage(msg.id, eventType, msg.data, msg.retry));
209
207
  }
210
208
  handleOnClose() {
211
209
  this.log.debug('EventSource has closed.');
@@ -215,7 +213,7 @@ export class ReactiveFetchEventSource {
215
213
  this.state$.next(state);
216
214
  }
217
215
  eventTypeOrDefault(type) {
218
- return type ?? 'message';
216
+ return type ?? this.EVENT_TYPE_DEFAULT;
219
217
  }
220
218
  }
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3RpdmUtZmV0Y2gtZXZlbnQtc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvZmVhdHVyZXMvZXZlbnQtc291cmNlL2ZldGNoL3JlYWN0aXZlLWZldGNoLWV2ZW50LXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLHNCQUFzQixFQUFFLGdCQUFnQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDM0csT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxlQUFlLEVBQWMsT0FBTyxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUduQyxNQUFNLENBQU4sSUFBWSx3QkFNWDtBQU5ELFdBQVksd0JBQXdCO0lBQ2xDLHlDQUFhLENBQUE7SUFDYixxREFBeUIsQ0FBQTtJQUN6Qix5Q0FBYSxDQUFBO0lBQ2IsNkNBQWlCLENBQUE7SUFDakIsMkNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBTlcsd0JBQXdCLEtBQXhCLHdCQUF3QixRQU1uQztBQUVELE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFDa0IsRUFBVSxFQUNWLEtBQWEsRUFDYixJQUFPLEVBQ1AsS0FBYztRQUhkLE9BQUUsR0FBRixFQUFFLENBQVE7UUFDVixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsU0FBSSxHQUFKLElBQUksQ0FBRztRQUNQLFVBQUssR0FBTCxLQUFLLENBQVM7SUFFaEMsQ0FBQztDQUNGO0FBUUQsTUFBTSxPQUFPLHdCQUF3QjtJQWtCbkM7Ozs7Z0ZBSTRFO0lBRXJFLE1BQU0sQ0FBQyxhQUFhLENBQ3pCLFdBQW1DO1FBRW5DLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FB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LENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUErQjtRQUNqRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRU8sa0JBQWtCLENBQUMsSUFBYTtRQUN0QyxPQUFPLElBQUksSUFBSSxTQUFTLENBQUM7SUFDM0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFdmVudFNvdXJjZU1lc3NhZ2UsIEV2ZW50U3RyZWFtQ29udGVudFR5cGUsIGZldGNoRXZlbnRTb3VyY2V9IGZyb20gJ0BtaWNyb3NvZnQvZmV0Y2gtZXZlbnQtc291cmNlJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtBfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuXG5leHBvcnQgZW51bSBSZWFjdGl2ZUV2ZW50U291cmNlU3RhdGUge1xuICBJRExFID0gJ0lETEUnLFxuICBDT05ORUNUSU5HID0gJ0NPTk5FQ1RJTkcnLFxuICBPUEVOID0gJ09QRU4nLFxuICBDTE9TRUQgPSAnQ0xPU0VEJyxcbiAgRVJST1IgPSAnRVJST1InLFxufVxuXG5leHBvcnQgY2xhc3MgUmVhY3RpdmVTU2VNZXNzYWdlPFQgPSBzdHJpbmc+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGlkOiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IGV2ZW50OiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IGRhdGE6IFQsXG4gICAgcHVibGljIHJlYWRvbmx5IHJldHJ5PzogbnVtYmVyLFxuICApIHtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50U291cmNlUmVxdWVzdEluaXQge1xuICByZXF1ZXN0OiBSZXF1ZXN0SW5mbyxcbiAgbWV0aG9kPzogc3RyaW5nLFxuICBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPlxufVxuXG5leHBvcnQgY2xhc3MgUmVhY3RpdmVGZXRjaEV2ZW50U291cmNlPFQgPSBhbnk+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZyA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG4gIHByaXZhdGUgX2Nsb3NlZDogYm9vbGVhbjtcbiAgcHJpdmF0ZSBhYm9ydENvbnRyb2xsZXI6IEFib3J0Q29udHJvbGxlciA9IG51bGw7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlYWN0aXZlRXZlbnRTb3VyY2VTdGF0ZT4oUmVhY3RpdmVFdmVudFNvdXJjZVN0YXRlLklETEUpO1xuICBwcml2YXRlIF91bnN1YnNjcmliZVN1YjogU3Vic2NyaXB0aW9uO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRUb3BpY3MgPSBuZXcgTWFwPHN0cmluZywgU3ViamVjdDxSZWFjdGl2ZVNTZU1lc3NhZ2U+PigpO1xuXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFN0YXRpYyBCdWlsZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHN0YXRpYyBzdGF0aWNSZXF1ZXN0PFQ+KFxuICAgIHJlcXVlc3RJbml0OiBFdmVudFNvdXJjZVJlcXVlc3RJbml0LFxuICApOiBSZWFjdGl2ZUZldGNoRXZlbnRTb3VyY2U8VD4ge1xuICAgIGlmICghcmVxdWVzdEluaXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignWW91IG11c3QgcHJvdmlkZSBhIGV2ZW50IHNvdXJjZSB1cmwhJyk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgUmVhY3RpdmVGZXRjaEV2ZW50U291cmNlKCgpID0+IHJlcXVlc3RJbml0KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZHluYW1pY1JlcXVlc3Q8VD4oXG4gICAgcmVxdWVzdEluaXRQcm92aWRlcjogKCkgPT4gRXZlbnRTb3VyY2VSZXF1ZXN0SW5pdFxuICApOiBSZWFjdGl2ZUZldGNoRXZlbnRTb3VyY2U8VD4ge1xuICAgIHJldHVybiBuZXcgUmVhY3RpdmVGZXRjaEV2ZW50U291cmNlKHJlcXVlc3RJbml0UHJvdmlkZXIpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlcXVlc3RJbml0UHJvdmlkZXI6ICgpID0+IEV2ZW50U291cmNlUmVxdWVzdEluaXQsXG4gICkge1xuICAgIGlmICghcmVxdWVzdEluaXRQcm92aWRlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgbXVzdCBwcm92aWRlIGEgZXZlbnQgc291cmNlIHVybCBwcm92aWRlciEnKTtcbiAgICB9XG4gICAgdGhpcy5vcGVuKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZ2V0IGNsb3NlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY2xvc2VkO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIE9wZW4gdGhlIGV2ZW50IHNvdXJjZS5cbiAgICpcbiAgICogTm90ZTogVGhlIGNvbm5lY3Rpb24gaXMgb3BlbmVkIGF1dG9tYXRpY2FsbHkgdXBvbiBvYmplY3QgY3JlYXRpb24uXG4gICAqIFRoaXMgbWV0aG9kIHNob3VsZCBvbmx5IGJlIHVzZWQgaWYgdGhpcyByZWFjdGl2ZS1ldmVudC1zb3VyY2UgaGFzXG4gICAqIGJlZW4gY2xvc2VkIGV4cGxpY2l0bHkuXG4gICAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLl9jbG9zZWQgPSBmYWxzZTtcbiAgICB0aGlzLnJlY29ubmVjdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbiBldmVudCBzdHJlYW0gZm9yIHRoZSBnaXZlbiBldmVudCB0eXBlLlxuICAgKiBAcGFyYW0gZXZlbnRUeXBlUmF3IFRoZSBldmVudCB0eXBlLiBEZWZhdWx0cyB0byAnbWVzc2FnZScuXG4gICAqL1xuICBwdWJsaWMgZXZlbnRzKGV2ZW50VHlwZVJhdz86IHN0cmluZyk6IE9ic2VydmFibGU8UmVhY3RpdmVTU2VNZXNzYWdlPiB7XG4gICAgY29uc3QgZXZlbnRUeXBlID0gdGhpcy5ldmVudFR5cGVPckRlZmF1bHQoZXZlbnRUeXBlUmF3KTtcbiAgICBpZiAoIXRoaXMuZXZlbnRUb3BpY3MuaGFzKGV2ZW50VHlwZSkpIHtcbiAgICAgIHRoaXMuZXZlbnRUb3BpY3Muc2V0KGV2ZW50VHlwZSwgbmV3IFN1YmplY3Q8UmVhY3RpdmVTU2VNZXNzYWdlPigpKTtcbiAgICB9XG4gICAgY29uc3QgZXZlbnRTdWJqID0gdGhpcy5ldmVudFRvcGljcy5nZXQoZXZlbnRUeXBlKTtcbiAgICByZXR1cm4gZXZlbnRTdWJqLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbiBldmVudCBzdHJlYW0gb2YgbWVzc2FnZXMgcGFyc2VkIGZyb20ganNvbi5cbiAgICogKGV2ZW50LmRhdGEgbXVzdCBiZSBpbiBqc29uIGZvcm1hdClcbiAgICpcbiAgICogQHBhcmFtIGV2ZW50VHlwZSBUaGUgZXZlbnQgdHlwZS4gRGVmYXVsdHMgdG8gJ21lc3NhZ2UnLlxuICAgKi9cbiAgcHVibGljIGV2ZW50c0pzb24oZXZlbnRUeXBlPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuZXZlbnRzKGV2ZW50VHlwZSkucGlwZShcbiAgICAgIG1hcChldmVudCA9PiBKU09OLnBhcnNlKGV2ZW50LmRhdGEpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2UgdGhpcyBldmVudCBzb3VyY2UuIEl0IHdvbid0IHJlY29ubmVjdC5cbiAgICovXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9jbG9zZWQgPSB0cnVlO1xuICAgIHRoaXMuY2xvc2VDdXJyZW50KCk7XG4gICAgdGhpcy5sb2cuZGVidWcoJ0Nsb3NpbmcgdGhlIGV2ZW50LXNvdXJjZS4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBLZWVwcyB0aGlzIHJlYWN0aXZlIGV2ZW50IHNvdXJjZSBvcGVuIHVudGlsIHRoZSBnaXZlbiBvYnNlcnZhYmxlIGVtaXRzIGFuIGV2ZW50LlxuICAgKiBAcGFyYW0gdW5zdWJzY3JpYmVcbiAgICovXG4gIHB1YmxpYyBvcGVuVW50aWwodW5zdWJzY3JpYmU6IE9ic2VydmFibGU8YW55Pik6IHRoaXMge1xuICAgIHRoaXMuY2xlYW5VcE9wZW5VbnRpbCgpO1xuICAgIHRoaXMuX3Vuc3Vic2NyaWJlU3ViID0gdW5zdWJzY3JpYmVcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICgpID0+IHRoaXMuY2xvc2UoKVxuICAgICAgKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgY2xlYW5VcE9wZW5VbnRpbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fdW5zdWJzY3JpYmVTdWIpIHtcbiAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLl91bnN1YnNjcmliZVN1YiA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlIHRoZSBjdXJyZW50IGV2ZW50IHNvdXJjZVxuICAgKi9cbiAgcHJpdmF0ZSBjbG9zZUN1cnJlbnQocmVhc29uPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5sb2cuZGVidWcoJ0Nsb3NpbmcgdGhlIGV2ZW50LXNvdXJjZSwgcmVhc29uOiAnICsgcmVhc29uKTtcbiAgICBjb25zdCBjcnQgPSB0aGlzLmFib3J0Q29udHJvbGxlcjtcbiAgICBpZiAoY3J0KSB7XG4gICAgICBjcnQuYWJvcnQocmVhc29uKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVjb25uZWN0cyB0aGlzIGV2ZW50IHNvdXJjZSwgdW5sZXNzIGNsb3NlZCBpcyB0cnVlO1xuICAgKi9cbiAgcHJpdmF0ZSByZWNvbm5lY3QoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2Nsb3NlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZVN0YXRlKFJlYWN0aXZlRXZlbnRTb3VyY2VTdGF0ZS5DT05ORUNUSU5HKTtcbiAgICB0aGlzLmNsb3NlQ3VycmVudCgnUmVjb25uZWN0Jyk7XG4gICAgdGhpcy5vcGVuRXZlbnRTb3VyY2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkV2ZW50U291cmNlKCk6IHZvaWQge1xuICAgIGNvbnN0IHJlcXVlc3RJbml0ID0gdGhpcy5yZXF1ZXN0SW5pdFByb3ZpZGVyKCk7XG4gICAgY29uc3QgY3J0ID0gdGhpcy5hYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgZmV0Y2hFdmVudFNvdXJjZShyZXF1ZXN0SW5pdC5yZXF1ZXN0LCB7XG4gICAgICBtZXRob2Q6IHJlcXVlc3RJbml0Lm1ldGhvZCxcbiAgICAgIHNpZ25hbDogY3J0LnNpZ25hbCxcbiAgICAgIGhlYWRlcnM6IHJlcXVlc3RJbml0LmhlYWRlcnMsXG4gICAgICBrZWVwYWxpdmU6IHRydWUsXG4gICAgICBvcGVuV2hlbkhpZGRlbjogZmFsc2UsXG4gICAgICBvbm9wZW46IHJlc3BvbnNlID0+IHRoaXMuaGFuZGxlT25PcGVuKHJlc3BvbnNlKSxcbiAgICAgIG9ubWVzc2FnZTogbXNnID0+IHRoaXMuaGFuZGxlT25NZXNzYWdlKG1zZyksXG4gICAgICBvbmVycm9yOiBlcnIgPT4gdGhpcy5oYW5kbGVPbkVycm9yKGVyciksXG4gICAgICBvbmNsb3NlOiAoKSA9PiB0aGlzLmhhbmRsZU9uQ2xvc2UoKVxuICAgIH0pLnRoZW4ociA9PiB7XG5cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlT25PcGVuKHJlc3BvbnNlOiBSZXNwb25zZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChyZXNwb25zZS5vayAmJiByZXNwb25zZS5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJykgPT09IEV2ZW50U3RyZWFtQ29udGVudFR5cGUpIHtcbiAgICAgIHRoaXMubG9nLmRlYnVnKCdFdmVudFNvdXJjZSBjb25uZWN0aW9uIHN1Y2Vzc2Z1bGx5IG9wZW5lZCB0bzogJyArIHJlc3BvbnNlLnVybCArXG4gICAgICAgICcsIHN0YXRlOiAnICsgcmVzcG9uc2Uuc3RhdHVzLCByZXNwb25zZSk7XG4gICAgICB0aGlzLnVwZGF0ZVN0YXRlKFJlYWN0aXZlRXZlbnRTb3VyY2VTdGF0ZS5PUEVOKTtcbiAgICAgIHJldHVybjsgLy8gZXZlcnl0aGluZydzIGdvb2RcbiAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLnN0YXR1cyA+PSA0MDAgJiYgcmVzcG9uc2Uuc3RhdHVzIDwgNTAwICYmIHJlc3BvbnNlLnN0YXR1cyAhPT0gNDI5KSB7XG4gICAgICAvLyBjbGllbnQtc2lkZSBlcnJvcnMgYXJlIHVzdWFsbHkgbm9uLXJldHJpYWJsZTpcbiAgICAgIHRoaXMudXBkYXRlU3RhdGUoUmVhY3RpdmVFdmVudFNvdXJjZVN0YXRlLkVSUk9SKTtcbiAgICAgIHRoaXMubG9nLmVycm9yKCdGYWlsZWQgdG8gb3BlbiBFdmVudCBTb3VyY2UgZHVlIHRvIENsaWVudCBFcnJvciAnICsgcmVzcG9uc2Uuc3RhdHVzLCByZXNwb25zZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nLmVycm9yKCdGYWlsZWQgdG8gb3BlbiBFdmVudCBTb3VyY2UgZHVlIHRvIEVycm9yICcgKyByZXNwb25zZS5zdGF0dXMsIHJlc3BvbnNlKTtcbiAgICAgIHRoaXMudXBkYXRlU3RhdGUoUmVhY3RpdmVFdmVudFNvdXJjZVN0YXRlLkVSUk9SKTtcbiAgICAgIHRoaXMudHJ5UmVjb25uZWN0KCk7IC8vIFRPRE8gTmVjZXNzYXJ5IGlmIGtlZXAgYWxpdmUgPSB0cnVlP1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlT25FcnJvcihlcnI6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlU3RhdGUoUmVhY3RpdmVFdmVudFNvdXJjZVN0YXRlLkVSUk9SKTtcbiAgICB0aGlzLmxvZy50cmFjZSgnVGhlcmUgd2FzIGFuIFNTRSBlcnJvci4nLCBlcnIpO1xuICAgIGlmICghdGhpcy5jbG9zZWQpIHtcbiAgICAgIC8vIFRoZXJlIHdhcyBhbiBlcnJvciAtIHRyeSByZWNvbm5lY3RpbmdcbiAgICAgIHRoaXMubG9nLmRlYnVnKCdBdHRlbXB0aW5nIHRvIHJlY29ubmVjdCBldmVudC1zb3VyY2UgLi4uJyk7XG4gICAgICB0aGlzLnRyeVJlY29ubmVjdCgpOyAvLyBUT0RPIE5lY2Vzc2FyeSBpZiBrZWVwIGFsaXZlID0gdHJ1ZT9cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2cuZGVidWcoJ1RoZXJlIHdhcyBhbiBlcnJvciBpbiB0aGUgc3NlIGNvbm5lY3Rpb24gKGNsb3NlZCkuJywgZXJyKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHRyeVJlY29ubmVjdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2Nsb3NlZCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlY29ubmVjdCgpLCAzMDAwKTsgLy8gRGVsYXkgdGhlIHJlY29ubmVjdFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlT25NZXNzYWdlKG1zZzogRXZlbnRTb3VyY2VNZXNzYWdlKTogdm9pZCB7XG4gICAgY29uc3QgZXZlbnRUeXBlID0gdGhpcy5ldmVudFR5cGVPckRlZmF1bHQobXNnLmV2ZW50KTtcbiAgICBjb25zdCB0b3BpYyA9IHRoaXMuZXZlbnRUb3BpY3MuZ2V0KGV2ZW50VHlwZSk7XG4gICAgaWYgKHRvcGljKSB7XG4gICAgICB0b3BpYy5uZXh0KG5ldyBSZWFjdGl2ZVNTZU1lc3NhZ2UoXG4gICAgICAgIG1zZy5pZCxcbiAgICAgICAgZXZlbnRUeXBlLFxuICAgICAgICBtc2cuZGF0YSxcbiAgICAgICAgbXNnLnJldHJ5XG4gICAgICApKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU9uQ2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5sb2cuZGVidWcoJ0V2ZW50U291cmNlIGhhcyBjbG9zZWQuJyk7XG4gICAgdGhpcy51cGRhdGVTdGF0ZShSZWFjdGl2ZUV2ZW50U291cmNlU3RhdGUuQ0xPU0VEKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU3RhdGUoc3RhdGU6IFJlYWN0aXZlRXZlbnRTb3VyY2VTdGF0ZSkge1xuICAgIHRoaXMuc3RhdGUkLm5leHQoc3RhdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBldmVudFR5cGVPckRlZmF1bHQodHlwZT86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHR5cGUgPz8gJ21lc3NhZ2UnO1xuICB9XG59XG4iXX0=
219
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3RpdmUtZmV0Y2gtZXZlbnQtc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvZmVhdHVyZXMvZXZlbnQtc291cmNlL2ZldGNoL3JlYWN0aXZlLWZldGNoLWV2ZW50LXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLHNCQUFzQixFQUFFLGdCQUFnQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDM0csT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxlQUFlLEVBQWMsT0FBTyxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxNQUFNLEVBQU0sTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxNQUFNLENBQU4sSUFBWSx3QkFNWDtBQU5ELFdBQVksd0JBQXdCO0lBQ2xDLHlDQUFhLENBQUE7SUFDYixxREFBeUIsQ0FBQTtJQUN6Qix5Q0FBYSxDQUFBO0lBQ2IsNkNBQWlCLENBQUE7SUFDakIsMkNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBTlcsd0JBQXdCLEtBQXhCLHdCQUF3QixRQU1uQztBQUVELE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFDa0IsRUFBVSxFQUNWLEtBQWEsRUFDYixPQUFlLEVBQ2YsS0FBYztRQUhkLE9BQUUsR0FBRixFQUFFLENBQVE7UUFDVixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLFVBQUssR0FBTCxLQUFLLENBQVM7SUFFaEMsQ0FBQztJQUVNLElBQUk7UUFDVCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxNQUFNO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUF3QixDQUFDO0lBQzND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YTtRQUN0QyxPQUFPLElBQUksSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDekMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFdmVudFNvdXJjZU1lc3NhZ2UsIEV2ZW50U3RyZWFtQ29udGVudFR5cGUsIGZldGNoRXZlbnRTb3VyY2V9IGZyb20gJ0BtaWNyb3NvZnQvZmV0Y2gtZXZlbnQtc291cmNlJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpbHRlciwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBlbnVtIFJlYWN0aXZlRXZlbnRTb3VyY2VTdGF0ZSB7XG4gIElETEUgPSAnSURMRScsXG4gIENPTk5FQ1RJTkcgPSAnQ09OTkVDVElORycsXG4gIE9QRU4gPSAnT1BFTicsXG4gIENMT1NFRCA9ICdDTE9TRUQnLFxuICBFUlJPUiA9ICdFUlJPUicsXG59XG5cbmV4cG9ydCBjbGFzcyBSZWFjdGl2ZVNTZU1lc3NhZ2U8VCA9IGFueT4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgaWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZXZlbnQ6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGF0YVJhdzogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSByZXRyeT86IG51bWJlcixcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMganNvbigpOiBUIHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmRhdGFSYXcpO1xuICB9XG5cbiAgcHVibGljIGpzb25BczxUQ3VzdG9tPigpOiBUQ3VzdG9tIHtcbiAgICByZXR1cm4gdGhpcy5qc29uKCkgYXMgdW5rbm93biBhcyBUQ3VzdG9tO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRTb3VyY2VSZXF1ZXN0SW5pdCB7XG4gIHJlcXVlc3Q6IFJlcXVlc3RJbmZvLFxuICBtZXRob2Q/OiBzdHJpbmcsXG4gIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG59XG5cbmV4cG9ydCBjbGFzcyBSZWFjdGl2ZUZldGNoRXZlbnRTb3VyY2U8VCA9IGFueT4ge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgRVZFTlRfVFlQRV9ERUZBVUxUID0gJ21lc3NhZ2UnO1xuICBwcml2YXRlIHJlYWRvbmx5IFJFQ09OTkVDVF9ERUxBWV9NUyA9IDMwMDA7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuICBwcml2YXRlIF9jbG9zZWQ6IGJvb2xlYW47XG4gIHByaXZhdGUgYWJvcnRDb250cm9sbGVyOiBBYm9ydENvbnRyb2xsZXIgPSBudWxsO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZWFjdGl2ZUV2ZW50U291cmNlU3RhdGU+KFJlYWN0aXZlRXZlbnRTb3VyY2VTdGF0ZS5JRExFKTtcbiAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVTdWI6IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50UmVsYXkgPSBuZXcgU3ViamVjdDxSZWFjdGl2ZVNTZU1lc3NhZ2U8VD4+KCk7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFN0YXRpYyBCdWlsZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHN0YXRpYyBzdGF0aWNSZXF1ZXN0PFQ+KFxuICAgIHJlcXVlc3RJbml0OiBFdmVudFNvdXJjZVJlcXVlc3RJbml0LFxuICApOiBSZWFjdGl2ZUZldGNoRXZlbnRTb3VyY2U8VD4ge1xuICAgIGlmICghcmVxdWVzdEluaXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignWW91IG11c3QgcHJvdmlkZSBhIGV2ZW50IHNvdXJjZSB1cmwhJyk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgUmVhY3RpdmVGZXRjaEV2ZW50U291cmNlKCgpID0+IHJlcXVlc3RJbml0KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZHluYW1pY1JlcXVlc3Q8VD4oXG4gICAgcmVxdWVzdEluaXRQcm92aWRlcjogKCkgPT4gRXZlbnRTb3VyY2VSZXF1ZXN0SW5pdFxuICApOiBSZWFjdGl2ZUZldGNoRXZlbnRTb3VyY2U8VD4ge1xuICAgIHJldHVybiBuZXcgUmVhY3RpdmVGZXRjaEV2ZW50U291cmNlKHJlcXVlc3RJbml0UHJvdmlkZXIpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlcXVlc3RJbml0UHJvdmlkZXI6ICgpID0+IEV2ZW50U291cmNlUmVxdWVzdEluaXQsXG4gICkge1xuICAgIGlmICghcmVxdWVzdEluaXRQcm92aWRlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgbXVzdCBwcm92aWRlIGEgZXZlbnQgc291cmNlIHVybCBwcm92aWRlciEnKTtcbiAgICB9XG4gICAgdGhpcy5vcGVuKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZ2V0IGNsb3NlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY2xvc2VkO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIE9wZW4gdGhlIGV2ZW50IHNvdXJjZS5cbiAgICpcbiAgICogTm90ZTogVGhlIGNvbm5lY3Rpb24gaXMgb3BlbmVkIGF1dG9tYXRpY2FsbHkgdXBvbiBvYmplY3QgY3JlYXRpb24uXG4gICAqIFRoaXMgbWV0aG9kIHNob3VsZCBvbmx5IGJlIHVzZWQgaWYgdGhpcyByZWFjdGl2ZS1ldmVudC1zb3VyY2UgaGFzXG4gICAqIGJlZW4gY2xvc2VkIGV4cGxpY2l0bHkuXG4gICAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLl9jbG9zZWQgPSBmYWxzZTtcbiAgICB0aGlzLnJlY29ubmVjdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbiBldmVudCBzdHJlYW0gZm9yIHRoZSBnaXZlbiBldmVudCB0eXBlLlxuICAgKiBAcGFyYW0gZXZlbnRUeXBlUmF3IFRoZSBldmVudCB0eXBlLiBEZWZhdWx0cyB0byAnbWVzc2FnZScuXG4gICAqL1xuICBwdWJsaWMgc3RyZWFtRXZlbnRzT2ZUeXBlKGV2ZW50VHlwZVJhdz86IHN0cmluZyk6IE9ic2VydmFibGU8UmVhY3RpdmVTU2VNZXNzYWdlPFQ+PiB7XG4gICAgY29uc3QgZXZlbnRUeXBlID0gdGhpcy5ldmVudFR5cGVPckRlZmF1bHQoZXZlbnRUeXBlUmF3KTtcbiAgICByZXR1cm4gdGhpcy5zdHJlYW1FdmVudHMoKS5waXBlKFxuICAgICAgZmlsdGVyKGUgPT4gZS5ldmVudCA9PSBldmVudFR5cGUpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYW4gZXZlbnQgc3RyZWFtIGZvciBhbGwgZXZlbnRzIG5vIG1hdHRlciB0aGVpciB0eXBlLlxuICAgKi9cbiAgcHVibGljIHN0cmVhbUV2ZW50cygpOiBPYnNlcnZhYmxlPFJlYWN0aXZlU1NlTWVzc2FnZTxUPj4ge1xuICAgIHJldHVybiB0aGlzLmV2ZW50UmVsYXkuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2UgdGhpcyBldmVudCBzb3VyY2UuIEl0IHdvbid0IHJlY29ubmVjdC5cbiAgICovXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9jbG9zZWQgPSB0cnVlO1xuICAgIHRoaXMuY2xvc2VDdXJyZW50KCk7XG4gICAgdGhpcy5sb2cuZGVidWcoJ0Nsb3NpbmcgdGhlIGV2ZW50LXNvdXJjZS4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBLZWVwcyB0aGlzIHJlYWN0aXZlIGV2ZW50IHNvdXJjZSBvcGVuIHVudGlsIHRoZSBnaXZlbiBvYnNlcnZhYmxlIGVtaXRzIGFuIGV2ZW50LlxuICAgKiBAcGFyYW0gdW5zdWJzY3JpYmVcbiAgICovXG4gIHB1YmxpYyBvcGVuVW50aWwodW5zdWJzY3JpYmU6IE9ic2VydmFibGU8YW55Pik6IHRoaXMge1xuICAgIHRoaXMuY2xlYW5VcE9wZW5VbnRpbCgpO1xuICAgIHRoaXMuX3Vuc3Vic2NyaWJlU3ViID0gdW5zdWJzY3JpYmVcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICgpID0+IHRoaXMuY2xvc2UoKVxuICAgICAgKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgY2xlYW5VcE9wZW5VbnRpbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fdW5zdWJzY3JpYmVTdWIpIHtcbiAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLl91bnN1YnNjcmliZVN1YiA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlIHRoZSBjdXJyZW50IGV2ZW50IHNvdXJjZVxuICAgKi9cbiAgcHJpdmF0ZSBjbG9zZUN1cnJlbnQocmVhc29uPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5sb2cuZGVidWcoJ0Nsb3NpbmcgdGhlIGV2ZW50LXNvdXJjZSwgcmVhc29uOiAnICsgcmVhc29uKTtcbiAgICBjb25zdCBjcnQgPSB0aGlzLmFib3J0Q29udHJvbGxlcjtcbiAgICBpZiAoY3J0KSB7XG4gICAgICBjcnQuYWJvcnQocmVhc29uKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVjb25uZWN0cyB0aGlzIGV2ZW50IHNvdXJjZSwgdW5sZXNzIGNsb3NlZCBpcyB0cnVlO1xuICAgKi9cbiAgcHJpdmF0ZSByZWNvbm5lY3QoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2Nsb3NlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZVN0YXRlKFJlYWN0aXZlRXZlbnRTb3VyY2VTdGF0ZS5DT05ORUNUSU5HKTtcbiAgICB0aGlzLmNsb3NlQ3VycmVudCgnUmVjb25uZWN0Jyk7XG4gICAgdGhpcy5vcGVuRXZlbnRTb3VyY2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkV2ZW50U291cmNlKCk6IHZvaWQge1xuICAgIGNvbnN0IHJlcXVlc3RJbml0ID0gdGhpcy5yZXF1ZXN0SW5pdFByb3ZpZGVyKCk7XG4gICAgY29uc3QgY3J0ID0gdGhpcy5hYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgZmV0Y2hFdmVudFNvdXJjZShyZXF1ZXN0SW5pdC5yZXF1ZXN0LCB7XG4gICAgICBtZXRob2Q6IHJlcXVlc3RJbml0Lm1ldGhvZCxcbiAgICAgIHNpZ25hbDogY3J0LnNpZ25hbCxcbiAgICAgIGhlYWRlcnM6IHJlcXVlc3RJbml0LmhlYWRlcnMsXG4gICAgICBrZWVwYWxpdmU6IHRydWUsXG4gICAgICBvcGVuV2hlbkhpZGRlbjogZmFsc2UsXG4gICAgICBvbm9wZW46IHJlc3BvbnNlID0+IHRoaXMuaGFuZGxlT25PcGVuKHJlc3BvbnNlKSxcbiAgICAgIG9ubWVzc2FnZTogbXNnID0+IHRoaXMuaGFuZGxlT25NZXNzYWdlKG1zZyksXG4gICAgICBvbmVycm9yOiBlcnIgPT4gdGhpcy5oYW5kbGVPbkVycm9yKGVyciksXG4gICAgICBvbmNsb3NlOiAoKSA9PiB0aGlzLmhhbmRsZU9uQ2xvc2UoKVxuICAgIH0pLnRoZW4ociA9PiB7XG5cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlT25PcGVuKHJlc3BvbnNlOiBSZXNwb25zZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChyZXNwb25zZS5vayAmJiByZXNwb25zZS5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJykgPT09IEV2ZW50U3RyZWFtQ29udGVudFR5cGUpIHtcbiAgICAgIHRoaXMubG9nLmRlYnVnKCdFdmVudFNvdXJjZSBjb25uZWN0aW9uIHN1Y2Vzc2Z1bGx5IG9wZW5lZCB0bzogJyArIHJlc3BvbnNlLnVybCArXG4gICAgICAgICcsIHN0YXRlOiAnICsgcmVzcG9uc2Uuc3RhdHVzLCByZXNwb25zZSk7XG4gICAgICB0aGlzLnVwZGF0ZVN0YXRlKFJlYWN0aXZlRXZlbnRTb3VyY2VTdGF0ZS5PUEVOKTtcbiAgICAgIHJldHVybjsgLy8gZXZlcnl0aGluZydzIGdvb2RcbiAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLnN0YXR1cyA+PSA0MDAgJiYgcmVzcG9uc2Uuc3RhdHVzIDwgNTAwICYmIHJlc3BvbnNlLnN0YXR1cyAhPT0gNDI5KSB7XG4gICAgICAvLyBjbGllbnQtc2lkZSBlcnJvcnMgYXJlIHVzdWFsbHkgbm9uLXJldHJpYWJsZTpcbiAgICAgIHRoaXMudXBkYXRlU3RhdGUoUmVhY3RpdmVFdmVudFNvdXJjZVN0YXRlLkVSUk9SKTtcbiAgICAgIHRoaXMubG9nLmVycm9yKCdGYWlsZWQgdG8gb3BlbiBFdmVudCBTb3VyY2UgZHVlIHRvIENsaWVudCBFcnJvciAnICsgcmVzcG9uc2Uuc3RhdHVzLCByZXNwb25zZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nLmVycm9yKCdGYWlsZWQgdG8gb3BlbiBFdmVudCBTb3VyY2UgZHVlIHRvIEVycm9yICcgKyByZXNwb25zZS5zdGF0dXMsIHJlc3BvbnNlKTtcbiAgICAgIHRoaXMudXBkYXRlU3RhdGUoUmVhY3RpdmVFdmVudFNvdXJjZVN0YXRlLkVSUk9SKTtcbiAgICAgIHRoaXMudHJ5UmVjb25uZWN0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVPbkVycm9yKGVycjogYW55KTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVTdGF0ZShSZWFjdGl2ZUV2ZW50U291cmNlU3RhdGUuRVJST1IpO1xuICAgIHRoaXMubG9nLnRyYWNlKCdUaGVyZSB3YXMgYW4gU1NFIGVycm9yLicsIGVycik7XG4gICAgaWYgKCF0aGlzLmNsb3NlZCkge1xuICAgICAgLy8gVGhlcmUgd2FzIGFuIGVycm9yIC0gdHJ5IHJlY29ubmVjdGluZ1xuICAgICAgdGhpcy5sb2cuZGVidWcoJ0F0dGVtcHRpbmcgdG8gcmVjb25uZWN0IGV2ZW50LXNvdXJjZSAuLi4nKTtcbiAgICAgIHRoaXMudHJ5UmVjb25uZWN0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nLmRlYnVnKCdUaGVyZSB3YXMgYW4gZXJyb3IgaW4gdGhlIHNzZSBjb25uZWN0aW9uIChjbG9zZWQpLicsIGVycik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0cnlSZWNvbm5lY3QoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9jbG9zZWQpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZWNvbm5lY3QoKSwgdGhpcy5SRUNPTk5FQ1RfREVMQVlfTVMpOyAvLyBEZWxheSB0aGUgcmVjb25uZWN0XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVPbk1lc3NhZ2UobXNnOiBFdmVudFNvdXJjZU1lc3NhZ2UpOiB2b2lkIHtcbiAgICBjb25zdCBldmVudFR5cGUgPSB0aGlzLmV2ZW50VHlwZU9yRGVmYXVsdChtc2cuZXZlbnQpO1xuICAgIHRoaXMuZXZlbnRSZWxheS5uZXh0KFxuICAgICAgbmV3IFJlYWN0aXZlU1NlTWVzc2FnZTxUPihcbiAgICAgICAgbXNnLmlkLFxuICAgICAgICBldmVudFR5cGUsXG4gICAgICAgIG1zZy5kYXRhLFxuICAgICAgICBtc2cucmV0cnlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVPbkNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMubG9nLmRlYnVnKCdFdmVudFNvdXJjZSBoYXMgY2xvc2VkLicpO1xuICAgIHRoaXMudXBkYXRlU3RhdGUoUmVhY3RpdmVFdmVudFNvdXJjZVN0YXRlLkNMT1NFRCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVN0YXRlKHN0YXRlOiBSZWFjdGl2ZUV2ZW50U291cmNlU3RhdGUpIHtcbiAgICB0aGlzLnN0YXRlJC5uZXh0KHN0YXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgZXZlbnRUeXBlT3JEZWZhdWx0KHR5cGU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0eXBlID8/IHRoaXMuRVZFTlRfVFlQRV9ERUZBVUxUO1xuICB9XG59XG4iXX0=
@@ -31552,12 +31552,18 @@ var ReactiveEventSourceState;
31552
31552
  ReactiveEventSourceState["ERROR"] = "ERROR";
31553
31553
  })(ReactiveEventSourceState || (ReactiveEventSourceState = {}));
31554
31554
  class ReactiveSSeMessage {
31555
- constructor(id, event, data, retry) {
31555
+ constructor(id, event, dataRaw, retry) {
31556
31556
  this.id = id;
31557
31557
  this.event = event;
31558
- this.data = data;
31558
+ this.dataRaw = dataRaw;
31559
31559
  this.retry = retry;
31560
31560
  }
31561
+ json() {
31562
+ return JSON.parse(this.dataRaw);
31563
+ }
31564
+ jsonAs() {
31565
+ return this.json();
31566
+ }
31561
31567
  }
31562
31568
  class ReactiveFetchEventSource {
31563
31569
  /***************************************************************************
@@ -31586,10 +31592,12 @@ class ReactiveFetchEventSource {
31586
31592
  * Fields *
31587
31593
  * *
31588
31594
  **************************************************************************/
31595
+ this.EVENT_TYPE_DEFAULT = 'message';
31596
+ this.RECONNECT_DELAY_MS = 3000;
31589
31597
  this.log = LoggerFactory.getLogger(this.constructor.name);
31590
31598
  this.abortController = null;
31591
31599
  this.state$ = new BehaviorSubject(ReactiveEventSourceState.IDLE);
31592
- this.eventTopics = new Map();
31600
+ this.eventRelay = new Subject();
31593
31601
  if (!requestInitProvider) {
31594
31602
  throw new Error('You must provide a event source url provider!');
31595
31603
  }
@@ -31623,22 +31631,15 @@ class ReactiveFetchEventSource {
31623
31631
  * Get an event stream for the given event type.
31624
31632
  * @param eventTypeRaw The event type. Defaults to 'message'.
31625
31633
  */
31626
- events(eventTypeRaw) {
31634
+ streamEventsOfType(eventTypeRaw) {
31627
31635
  const eventType = this.eventTypeOrDefault(eventTypeRaw);
31628
- if (!this.eventTopics.has(eventType)) {
31629
- this.eventTopics.set(eventType, new Subject());
31630
- }
31631
- const eventSubj = this.eventTopics.get(eventType);
31632
- return eventSubj.asObservable();
31636
+ return this.streamEvents().pipe(filter(e => e.event == eventType));
31633
31637
  }
31634
31638
  /**
31635
- * Get an event stream of messages parsed from json.
31636
- * (event.data must be in json format)
31637
- *
31638
- * @param eventType The event type. Defaults to 'message'.
31639
+ * Get an event stream for all events no matter their type.
31639
31640
  */
31640
- eventsJson(eventType) {
31641
- return this.events(eventType).pipe(map(event => JSON.parse(event.data)));
31641
+ streamEvents() {
31642
+ return this.eventRelay.asObservable();
31642
31643
  }
31643
31644
  /**
31644
31645
  * Close this event source. It won't reconnect.
@@ -31721,7 +31722,7 @@ class ReactiveFetchEventSource {
31721
31722
  else {
31722
31723
  this.log.error('Failed to open Event Source due to Error ' + response.status, response);
31723
31724
  this.updateState(ReactiveEventSourceState.ERROR);
31724
- this.tryReconnect(); // TODO Necessary if keep alive = true?
31725
+ this.tryReconnect();
31725
31726
  }
31726
31727
  }
31727
31728
  handleOnError(err) {
@@ -31730,7 +31731,7 @@ class ReactiveFetchEventSource {
31730
31731
  if (!this.closed) {
31731
31732
  // There was an error - try reconnecting
31732
31733
  this.log.debug('Attempting to reconnect event-source ...');
31733
- this.tryReconnect(); // TODO Necessary if keep alive = true?
31734
+ this.tryReconnect();
31734
31735
  }
31735
31736
  else {
31736
31737
  this.log.debug('There was an error in the sse connection (closed).', err);
@@ -31738,15 +31739,12 @@ class ReactiveFetchEventSource {
31738
31739
  }
31739
31740
  tryReconnect() {
31740
31741
  if (!this._closed) {
31741
- setTimeout(() => this.reconnect(), 3000); // Delay the reconnect
31742
+ setTimeout(() => this.reconnect(), this.RECONNECT_DELAY_MS); // Delay the reconnect
31742
31743
  }
31743
31744
  }
31744
31745
  handleOnMessage(msg) {
31745
31746
  const eventType = this.eventTypeOrDefault(msg.event);
31746
- const topic = this.eventTopics.get(eventType);
31747
- if (topic) {
31748
- topic.next(new ReactiveSSeMessage(msg.id, eventType, msg.data, msg.retry));
31749
- }
31747
+ this.eventRelay.next(new ReactiveSSeMessage(msg.id, eventType, msg.data, msg.retry));
31750
31748
  }
31751
31749
  handleOnClose() {
31752
31750
  this.log.debug('EventSource has closed.');
@@ -31756,7 +31754,7 @@ class ReactiveFetchEventSource {
31756
31754
  this.state$.next(state);
31757
31755
  }
31758
31756
  eventTypeOrDefault(type) {
31759
- return type ?? 'message';
31757
+ return type ?? this.EVENT_TYPE_DEFAULT;
31760
31758
  }
31761
31759
  }
31762
31760