@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 {
|
|
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,
|
|
14
|
+
constructor(id, event, dataRaw, retry) {
|
|
15
15
|
this.id = id;
|
|
16
16
|
this.event = event;
|
|
17
|
-
this.
|
|
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.
|
|
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
|
-
|
|
93
|
+
streamEventsOfType(eventTypeRaw) {
|
|
86
94
|
const eventType = this.eventTypeOrDefault(eventTypeRaw);
|
|
87
|
-
|
|
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
|
|
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
|
-
|
|
100
|
-
return this.
|
|
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();
|
|
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();
|
|
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(),
|
|
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
|
-
|
|
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 ??
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3RpdmUtZmV0Y2gtZXZlbnQtc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvZmVhdHVyZXMvZXZlbnQtc291cmNlL2ZldGNoL3JlYWN0aXZlLWZldGNoLWV2ZW50LXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLHNCQUFzQixFQUFFLGdCQUFnQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDM0csT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxlQUFlLEVBQWMsT0FBTyxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxNQUFNLEVBQU0sTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxNQUFNLENBQU4sSUFBWSx3QkFNWDtBQU5ELFdBQVksd0JBQXdCO0lBQ2xDLHlDQUFhLENBQUE7SUFDYixxREFBeUIsQ0FBQTtJQUN6Qix5Q0FBYSxDQUFBO0lBQ2IsNkNBQWlCLENBQUE7SUFDakIsMkNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBTlcsd0JBQXdCLEtBQXhCLHdCQUF3QixRQU1uQztBQUVELE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFDa0IsRUFBVSxFQUNWLEtBQWEsRUFDYixPQUFlLEVBQ2YsS0FBYztRQUhkLE9BQUUsR0FBRixFQUFFLENBQVE7UUFDVixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLFVBQUssR0FBTCxLQUFLLENBQVM7SUFFaEMsQ0FBQztJQUVNLElBQUk7UUFDVCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxNQUFNO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUF3QixDQUFDO0lBQzNDLENBQUM7Q0FDRjtBQVFELE1BQU0sT0FBTyx3QkFBd0I7SUFvQm5DOzs7O2dGQUk0RTtJQUVyRSxNQUFNLENBQUMsYUFBYSxDQUN6QixXQUFtQztRQUVuQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztTQUN6RDtRQUNELE9BQU8sSUFBSSx3QkFBd0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sTUFBTSxDQUFDLGNBQWMsQ0FDMUIsbUJBQWlEO1FBRWpELE9BQU8sSUFBSSx3QkFBd0IsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUUsWUFDbUIsbUJBQWlEO1FBQWpELHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBOEI7UUE5Q3BFOzs7O29GQUk0RTtRQUUzRCx1QkFBa0IsR0FBRyxTQUFTLENBQUM7UUFDL0IsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBRTFCLFFBQUcsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFOUQsb0JBQWUsR0FBb0IsSUFBSSxDQUFDO1FBRS9CLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBMkIsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFHdEYsZUFBVSxHQUFHLElBQUksT0FBTyxFQUF5QixDQUFDO1FBZ0NqRSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1NBQ2xFO1FBQ0QsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUU1RSxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUU1RTs7Ozs7O09BTUc7SUFDSSxJQUFJO1FBQ1QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7O09BR0c7SUFDSSxrQkFBa0IsQ0FBQyxZQUFxQjtRQUM3QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEQsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUM3QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQyxDQUNsQyxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ksWUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSztRQUNWLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxTQUFTLENBQUMsV0FBNEI7UUFDM0MsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxXQUFXO2FBQy9CLFNBQVMsQ0FDUixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQ25CLENBQUM7UUFDSixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFcEUsZ0JBQWdCO1FBQ3RCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssWUFBWSxDQUFDLE1BQWU7UUFDbEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsb0NBQW9DLEdBQUcsTUFBTSxDQUFDLENBQUM7UUFDOUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUNqQyxJQUFJLEdBQUcsRUFBRTtZQUNQLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxTQUFTO1FBQ2YsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVPLGVBQWU7UUFDckIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDL0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3pELGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUU7WUFDcEMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxNQUFNO1lBQzFCLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTTtZQUNsQixPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU87WUFDNUIsU0FBUyxFQUFFLElBQUk7WUFDZixjQUFjLEVBQUUsS0FBSztZQUNyQixNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztZQUMvQyxTQUFTLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQztZQUMzQyxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQztZQUN2QyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtTQUNwQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBRVosQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sWUFBWSxDQUFDLFFBQWtCO1FBQ3JDLElBQUksUUFBUSxDQUFDLEVBQUUsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsS0FBSyxzQkFBc0IsRUFBRTtZQUNsRixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxnREFBZ0QsR0FBRyxRQUFRLENBQUMsR0FBRztnQkFDNUUsV0FBVyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoRCxPQUFPLENBQUMsb0JBQW9CO1NBQzdCO2FBQU0sSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTtZQUNyRixnREFBZ0Q7WUFDaEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxrREFBa0QsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQ2hHO2FBQU07WUFDTCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQywyQ0FBMkMsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3hGLElBQUksQ0FBQyxXQUFXLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVPLGFBQWEsQ0FBQyxHQUFRO1FBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMseUJBQXlCLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsd0NBQXdDO1lBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7WUFDM0QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO2FBQU07WUFDTCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxvREFBb0QsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUMzRTtJQUNILENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxzQkFBc0I7U0FDcEY7SUFDSCxDQUFDO0lBRU8sZUFBZSxDQUFDLEdBQXVCO1FBQzdDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ2xCLElBQUksa0JBQWtCLENBQ3BCLEdBQUcsQ0FBQyxFQUFFLEVBQ04sU0FBUyxFQUNULEdBQUcsQ0FBQyxJQUFJLEVBQ1IsR0FBRyxDQUFDLEtBQUssQ0FDVixDQUNGLENBQUM7SUFDSixDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUErQjtRQUNqRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRU8sa0JBQWtCLENBQUMsSUFBYTtRQUN0QyxPQUFPLElBQUksSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDekMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFdmVudFNvdXJjZU1lc3NhZ2UsIEV2ZW50U3RyZWFtQ29udGVudFR5cGUsIGZldGNoRXZlbnRTb3VyY2V9IGZyb20gJ0BtaWNyb3NvZnQvZmV0Y2gtZXZlbnQtc291cmNlJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpbHRlciwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBlbnVtIFJlYWN0aXZlRXZlbnRTb3VyY2VTdGF0ZSB7XG4gIElETEUgPSAnSURMRScsXG4gIENPTk5FQ1RJTkcgPSAnQ09OTkVDVElORycsXG4gIE9QRU4gPSAnT1BFTicsXG4gIENMT1NFRCA9ICdDTE9TRUQnLFxuICBFUlJPUiA9ICdFUlJPUicsXG59XG5cbmV4cG9ydCBjbGFzcyBSZWFjdGl2ZVNTZU1lc3NhZ2U8VCA9IGFueT4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgaWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZXZlbnQ6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGF0YVJhdzogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSByZXRyeT86IG51bWJlcixcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMganNvbigpOiBUIHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmRhdGFSYXcpO1xuICB9XG5cbiAgcHVibGljIGpzb25BczxUQ3VzdG9tPigpOiBUQ3VzdG9tIHtcbiAgICByZXR1cm4gdGhpcy5qc29uKCkgYXMgdW5rbm93biBhcyBUQ3VzdG9tO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRTb3VyY2VSZXF1ZXN0SW5pdCB7XG4gIHJlcXVlc3Q6IFJlcXVlc3RJbmZvLFxuICBtZXRob2Q/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,
|
|
31555
|
+
constructor(id, event, dataRaw, retry) {
|
|
31556
31556
|
this.id = id;
|
|
31557
31557
|
this.event = event;
|
|
31558
|
-
this.
|
|
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.
|
|
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
|
-
|
|
31634
|
+
streamEventsOfType(eventTypeRaw) {
|
|
31627
31635
|
const eventType = this.eventTypeOrDefault(eventTypeRaw);
|
|
31628
|
-
|
|
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
|
|
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
|
-
|
|
31641
|
-
return this.
|
|
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();
|
|
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();
|
|
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(),
|
|
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
|
-
|
|
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 ??
|
|
31757
|
+
return type ?? this.EVENT_TYPE_DEFAULT;
|
|
31760
31758
|
}
|
|
31761
31759
|
}
|
|
31762
31760
|
|