@elderbyte/ngx-starter 17.7.0 → 17.7.2
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.
|
@@ -46,7 +46,7 @@ export class ReactiveFetchEventSource {
|
|
|
46
46
|
* *
|
|
47
47
|
**************************************************************************/
|
|
48
48
|
this.log = LoggerFactory.getLogger(this.constructor.name);
|
|
49
|
-
this.abortController =
|
|
49
|
+
this.abortController = null;
|
|
50
50
|
this.state$ = new BehaviorSubject(ReactiveEventSourceState.IDLE);
|
|
51
51
|
this.eventTopics = new Map();
|
|
52
52
|
if (!requestInitProvider) {
|
|
@@ -80,9 +80,10 @@ export class ReactiveFetchEventSource {
|
|
|
80
80
|
}
|
|
81
81
|
/**
|
|
82
82
|
* Get an event stream for the given event type.
|
|
83
|
-
* @param
|
|
83
|
+
* @param eventTypeRaw The event type. Defaults to 'message'.
|
|
84
84
|
*/
|
|
85
|
-
events(
|
|
85
|
+
events(eventTypeRaw) {
|
|
86
|
+
const eventType = this.eventTypeOrDefault(eventTypeRaw);
|
|
86
87
|
if (!this.eventTopics.has(eventType)) {
|
|
87
88
|
this.eventTopics.set(eventType, new Subject());
|
|
88
89
|
}
|
|
@@ -95,7 +96,7 @@ export class ReactiveFetchEventSource {
|
|
|
95
96
|
*
|
|
96
97
|
* @param eventType The event type. Defaults to 'message'.
|
|
97
98
|
*/
|
|
98
|
-
eventsJson(eventType
|
|
99
|
+
eventsJson(eventType) {
|
|
99
100
|
return this.events(eventType).pipe(map(event => JSON.parse(event.data)));
|
|
100
101
|
}
|
|
101
102
|
/**
|
|
@@ -132,7 +133,10 @@ export class ReactiveFetchEventSource {
|
|
|
132
133
|
*/
|
|
133
134
|
closeCurrent(reason) {
|
|
134
135
|
this.log.debug('Closing the event-source, reason: ' + reason);
|
|
135
|
-
this.abortController
|
|
136
|
+
const crt = this.abortController;
|
|
137
|
+
if (crt) {
|
|
138
|
+
crt.abort(reason);
|
|
139
|
+
}
|
|
136
140
|
}
|
|
137
141
|
/**
|
|
138
142
|
* Reconnects this event source, unless closed is true;
|
|
@@ -147,9 +151,10 @@ export class ReactiveFetchEventSource {
|
|
|
147
151
|
}
|
|
148
152
|
openEventSource() {
|
|
149
153
|
const requestInit = this.requestInitProvider();
|
|
154
|
+
const crt = this.abortController = new AbortController();
|
|
150
155
|
fetchEventSource(requestInit.request, {
|
|
151
156
|
method: requestInit.method,
|
|
152
|
-
signal:
|
|
157
|
+
signal: crt.signal,
|
|
153
158
|
headers: requestInit.headers,
|
|
154
159
|
keepalive: true,
|
|
155
160
|
openWhenHidden: false,
|
|
@@ -196,9 +201,10 @@ export class ReactiveFetchEventSource {
|
|
|
196
201
|
}
|
|
197
202
|
}
|
|
198
203
|
handleOnMessage(msg) {
|
|
199
|
-
const
|
|
204
|
+
const eventType = this.eventTypeOrDefault(msg.event);
|
|
205
|
+
const topic = this.eventTopics.get(eventType);
|
|
200
206
|
if (topic) {
|
|
201
|
-
topic.next(new ReactiveSSeMessage(msg.id,
|
|
207
|
+
topic.next(new ReactiveSSeMessage(msg.id, eventType, msg.data, msg.retry));
|
|
202
208
|
}
|
|
203
209
|
}
|
|
204
210
|
handleOnClose() {
|
|
@@ -208,5 +214,8 @@ export class ReactiveFetchEventSource {
|
|
|
208
214
|
updateState(state) {
|
|
209
215
|
this.state$.next(state);
|
|
210
216
|
}
|
|
217
|
+
eventTypeOrDefault(type) {
|
|
218
|
+
return type ?? 'message';
|
|
219
|
+
}
|
|
211
220
|
}
|
|
212
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3RpdmUtZmV0Y2gtZXZlbnQtc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvZmVhdHVyZXMvZXZlbnQtc291cmNlL2ZldGNoL3JlYWN0aXZlLWZldGNoLWV2ZW50LXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLHNCQUFzQixFQUFFLGdCQUFnQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDM0csT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxlQUFlLEVBQWMsT0FBTyxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxNQUFNLENBQU4sSUFBWSx3QkFNWDtBQU5ELFdBQVksd0JBQXdCO0lBQ2xDLHlDQUFhLENBQUE7SUFDYixxREFBeUIsQ0FBQTtJQUN6Qix5Q0FBYSxDQUFBO0lBQ2IsNkNBQWlCLENBQUE7SUFDakIsMkNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBTlcsd0JBQXdCLEtBQXhCLHdCQUF3QixRQU1uQztBQUVELE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFDa0IsRUFBVSxFQUNWLEtBQWEsRUFDYixJQUFPLEVBQ1AsS0FBYztRQUhkLE9BQUUsR0FBRixFQUFFLENBQVE7UUFDVixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsU0FBSSxHQUFKLElBQUksQ0FBRztRQUNQLFVBQUssR0FBTCxLQUFLLENBQVM7SUFDNUIsQ0FBQztDQUNOO0FBUUQsTUFBTSxPQUFPLHdCQUF3QjtJQWtCbkM7Ozs7Z0ZBSTRFO0lBRXJFLE1BQU0sQ0FBQyxhQUFhLENBQ3pCLFdBQW1DO1FBRW5DLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FB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RTtZQUNoQix3Q0FBd0M7WUFDeEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsMENBQTBDLENBQUMsQ0FBQztZQUMzRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyx1Q0FBdUM7U0FDN0Q7YUFBTTtZQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLG9EQUFvRCxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQzNFO0lBQ0gsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLHNCQUFzQjtTQUNqRTtJQUNILENBQUM7SUFFTyxlQUFlLENBQUMsR0FBdUI7UUFDN0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLElBQUksS0FBSyxFQUFFO1lBQ1QsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLGtCQUFrQixDQUMvQixHQUFHLENBQUMsRUFBRSxFQUNOLEdBQUcsQ0FBQyxLQUFLLEVBQ1QsR0FBRyxDQUFDLElBQUksRUFDUixHQUFHLENBQUMsS0FBSyxDQUNWLENBQUMsQ0FBQTtTQUNIO0lBQ0gsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQTtRQUN6QyxJQUFJLENBQUMsV0FBVyxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTyxXQUFXLENBQUMsS0FBK0I7UUFDakQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFdmVudFNvdXJjZU1lc3NhZ2UsIEV2ZW50U3RyZWFtQ29udGVudFR5cGUsIGZldGNoRXZlbnRTb3VyY2V9IGZyb20gJ0BtaWNyb3NvZnQvZmV0Y2gtZXZlbnQtc291cmNlJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgZW51bSBSZWFjdGl2ZUV2ZW50U291cmNlU3RhdGUge1xuICBJRExFID0gJ0lETEUnLFxuICBDT05ORUNUSU5HID0gJ0NPTk5FQ1RJTkcnLFxuICBPUEVOID0gJ09QRU4nLFxuICBDTE9TRUQgPSAnQ0xPU0VEJyxcbiAgRVJST1IgPSAnRVJST1InLFxufVxuXG5leHBvcnQgY2xhc3MgUmVhY3RpdmVTU2VNZXNzYWdlPFQgPSBzdHJpbmc+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGlkOiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IGV2ZW50OiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IGRhdGE6IFQsXG4gICAgcHVibGljIHJlYWRvbmx5IHJldHJ5PzogbnVtYmVyLFxuICApIHsgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50U291cmNlUmVxdWVzdEluaXQge1xuICByZXF1ZXN0OiBSZXF1ZXN0SW5mbyxcbiAgbWV0aG9kPzogc3RyaW5nLFxuICBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPlxufVxuXG5leHBvcnQgY2xhc3MgUmVhY3RpdmVGZXRjaEV2ZW50U291cmNlPFQgPSBhbnk+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZyA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG4gIHByaXZhdGUgX2Nsb3NlZDogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlYWN0aXZlRXZlbnRTb3VyY2VTdGF0ZT4oUmVhY3RpdmVFdmVudFNvdXJjZVN0YXRlLklETEUpO1xuICBwcml2YXRlIF91bnN1YnNjcmliZVN1YjogU3Vic2NyaXB0aW9uO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRUb3BpY3MgPSBuZXcgTWFwPHN0cmluZywgU3ViamVjdDxSZWFjdGl2ZVNTZU1lc3NhZ2U+PigpO1xuXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFN0YXRpYyBCdWlsZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHN0YXRpYyBzdGF0aWNSZXF1ZXN0PFQ+KFxuICAgIHJlcXVlc3RJbml0OiBFdmVudFNvdXJjZVJlcXVlc3RJbml0LFxuICApOiBSZWFjdGl2ZUZldGNoRXZlbnRTb3VyY2U8VD4ge1xuICAgIGlmICghcmVxdWVzdEluaXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignWW91IG11c3QgcHJvdmlkZSBhIGV2ZW50IHNvdXJjZSB1cmwhJyk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgUmVhY3RpdmVGZXRjaEV2ZW50U291cmNlKCgpID0+IHJlcXVlc3RJbml0KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZHluYW1pY1JlcXVlc3Q8VD4oXG4gICAgcmVxdWVzdEluaXRQcm92aWRlcjogKCkgPT4gRXZlbnRTb3VyY2VSZXF1ZXN0SW5pdFxuICApOiBSZWFjdGl2ZUZldGNoRXZlbnRTb3VyY2U8VD4ge1xuICAgIHJldHVybiBuZXcgUmVhY3RpdmVGZXRjaEV2ZW50U291cmNlKHJlcXVlc3RJbml0UHJvdmlkZXIpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlcXVlc3RJbml0UHJvdmlkZXI6ICgpID0+IEV2ZW50U291cmNlUmVxdWVzdEluaXQsXG4gICkge1xuICAgIGlmICghcmVxdWVzdEluaXRQcm92aWRlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgbXVzdCBwcm92aWRlIGEgZXZlbnQgc291cmNlIHVybCBwcm92aWRlciEnKTtcbiAgICB9XG4gICAgdGhpcy5vcGVuKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZ2V0IGNsb3NlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY2xvc2VkO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIE9wZW4gdGhlIGV2ZW50IHNvdXJjZS5cbiAgICpcbiAgICogTm90ZTogVGhlIGNvbm5lY3Rpb24gaXMgb3BlbmVkIGF1dG9tYXRpY2FsbHkgdXBvbiBvYmplY3QgY3JlYXRpb24uXG4gICAqIFRoaXMgbWV0aG9kIHNob3VsZCBvbmx5IGJlIHVzZWQgaWYgdGhpcyByZWFjdGl2ZS1ldmVudC1zb3VyY2UgaGFzXG4gICAqIGJlZW4gY2xvc2VkIGV4cGxpY2l0bHkuXG4gICAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLl9jbG9zZWQgPSBmYWxzZTtcbiAgICB0aGlzLnJlY29ubmVjdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbiBldmVudCBzdHJlYW0gZm9yIHRoZSBnaXZlbiBldmVudCB0eXBlLlxuICAgKiBAcGFyYW0gZXZlbnRUeXBlIFRoZSBldmVudCB0eXBlLiBEZWZhdWx0cyB0byAnbWVzc2FnZScuXG4gICAqL1xuICBwdWJsaWMgZXZlbnRzKGV2ZW50VHlwZTogc3RyaW5nID0gJ21lc3NhZ2UnKTogT2JzZXJ2YWJsZTxSZWFjdGl2ZVNTZU1lc3NhZ2U+IHtcbiAgICBpZiAoIXRoaXMuZXZlbnRUb3BpY3MuaGFzKGV2ZW50VHlwZSkpIHtcbiAgICAgIHRoaXMuZXZlbnRUb3BpY3Muc2V0KGV2ZW50VHlwZSwgbmV3IFN1YmplY3Q8UmVhY3RpdmVTU2VNZXNzYWdlPigpKTtcbiAgICB9XG4gICAgY29uc3QgZXZlbnRTdWJqID0gdGhpcy5ldmVudFRvcGljcy5nZXQoZXZlbnRUeXBlKTtcbiAgICByZXR1cm4gZXZlbnRTdWJqLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbiBldmVudCBzdHJlYW0gb2YgbWVzc2FnZXMgcGFyc2VkIGZyb20ganNvbi5cbiAgICogKGV2ZW50LmRhdGEgbXVzdCBiZSBpbiBqc29uIGZvcm1hdClcbiAgICpcbiAgICogQHBhcmFtIGV2ZW50VHlwZSBUaGUgZXZlbnQgdHlwZS4gRGVmYXVsdHMgdG8gJ21lc3NhZ2UnLlxuICAgKi9cbiAgcHVibGljIGV2ZW50c0pzb24oZXZlbnRUeXBlOiBzdHJpbmcgPSAnbWVzc2FnZScpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5ldmVudHMoZXZlbnRUeXBlKS5waXBlKFxuICAgICAgbWFwKGV2ZW50ID0+IEpTT04ucGFyc2UoZXZlbnQuZGF0YSkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZSB0aGlzIGV2ZW50IHNvdXJjZS4gSXQgd29uJ3QgcmVjb25uZWN0LlxuICAgKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuX2Nsb3NlZCA9IHRydWU7XG4gICAgdGhpcy5jbG9zZUN1cnJlbnQoKTtcbiAgICB0aGlzLmxvZy5kZWJ1ZygnQ2xvc2luZyB0aGUgZXZlbnQtc291cmNlLicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEtlZXBzIHRoaXMgcmVhY3RpdmUgZXZlbnQgc291cmNlIG9wZW4gdW50aWwgdGhlIGdpdmVuIG9ic2VydmFibGUgZW1pdHMgYW4gZXZlbnQuXG4gICAqIEBwYXJhbSB1bnN1YnNjcmliZVxuICAgKi9cbiAgcHVibGljIG9wZW5VbnRpbCh1bnN1YnNjcmliZTogT2JzZXJ2YWJsZTxhbnk+KTogdGhpcyB7XG4gICAgdGhpcy5jbGVhblVwT3BlblVudGlsKCk7XG4gICAgdGhpcy5fdW5zdWJzY3JpYmVTdWIgPSB1bnN1YnNjcmliZVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKCkgPT4gdGhpcy5jbG9zZSgpXG4gICAgICApO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBjbGVhblVwT3BlblVudGlsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl91bnN1YnNjcmliZVN1Yikge1xuICAgICAgdGhpcy5fdW5zdWJzY3JpYmVTdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlU3ViID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2UgdGhlIGN1cnJlbnQgZXZlbnQgc291cmNlXG4gICAqL1xuICBwcml2YXRlIGNsb3NlQ3VycmVudChyZWFzb24/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmxvZy5kZWJ1ZygnQ2xvc2luZyB0aGUgZXZlbnQtc291cmNlLCByZWFzb246ICcgKyByZWFzb24pO1xuICAgIHRoaXMuYWJvcnRDb250cm9sbGVyLmFib3J0KHJlYXNvbik7XG4gIH1cblxuICAvKipcbiAgICogUmVjb25uZWN0cyB0aGlzIGV2ZW50IHNvdXJjZSwgdW5sZXNzIGNsb3NlZCBpcyB0cnVlO1xuICAgKi9cbiAgcHJpdmF0ZSByZWNvbm5lY3QoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2Nsb3NlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZVN0YXRlKFJlYWN0aXZlRXZlbnRTb3VyY2VTdGF0ZS5DT05ORUNUSU5HKTtcbiAgICB0aGlzLmNsb3NlQ3VycmVudCgnUmVjb25uZWN0Jyk7XG4gICAgdGhpcy5vcGVuRXZlbnRTb3VyY2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkV2ZW50U291cmNlKCk6IHZvaWQge1xuICAgIGNvbnN0IHJlcXVlc3RJbml0ID0gdGhpcy5yZXF1ZXN0SW5pdFByb3ZpZGVyKCk7XG4gICAgZmV0Y2hFdmVudFNvdXJjZShyZXF1ZXN0SW5pdC5yZXF1ZXN0LCB7XG4gICAgICBtZXRob2Q6IHJlcXVlc3RJbml0Lm1ldGhvZCxcbiAgICAgIHNpZ25hbDogdGhpcy5hYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgaGVhZGVyczogcmVxdWVzdEluaXQuaGVhZGVycyxcbiAgICAgIGtlZXBhbGl2ZTogdHJ1ZSxcbiAgICAgIG9wZW5XaGVuSGlkZGVuOiBmYWxzZSxcbiAgICAgIG9ub3BlbjogcmVzcG9uc2UgPT4gdGhpcy5oYW5kbGVPbk9wZW4ocmVzcG9uc2UpLFxuICAgICAgb25tZXNzYWdlOiBtc2cgPT4gdGhpcy5oYW5kbGVPbk1lc3NhZ2UobXNnKSxcbiAgICAgIG9uZXJyb3I6IGVyciA9PiB0aGlzLmhhbmRsZU9uRXJyb3IoZXJyKSxcbiAgICAgIG9uY2xvc2U6ICgpID0+IHRoaXMuaGFuZGxlT25DbG9zZSgpXG4gICAgfSkudGhlbihyID0+IHtcblxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU9uT3BlbihyZXNwb25zZTogUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAocmVzcG9uc2Uub2sgJiYgcmVzcG9uc2UuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpID09PSBFdmVudFN0cmVhbUNvbnRlbnRUeXBlKSB7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZygnRXZlbnRTb3VyY2UgY29ubmVjdGlvbiBzdWNlc3NmdWxseSBvcGVuZWQgdG86ICcgKyByZXNwb25zZS51cmwgK1xuICAgICAgICAnLCBzdGF0ZTogJyArIHJlc3BvbnNlLnN0YXR1cywgcmVzcG9uc2UpO1xuICAgICAgdGhpcy51cGRhdGVTdGF0ZShSZWFjdGl2ZUV2ZW50U291cmNlU3RhdGUuT1BFTik7XG4gICAgICByZXR1cm47IC8vIGV2ZXJ5dGhpbmcncyBnb29kXG4gICAgfSBlbHNlIGlmIChyZXNwb25zZS5zdGF0dXMgPj0gNDAwICYmIHJlc3BvbnNlLnN0YXR1cyA8IDUwMCAmJiByZXNwb25zZS5zdGF0dXMgIT09IDQyOSkge1xuICAgICAgLy8gY2xpZW50LXNpZGUgZXJyb3JzIGFyZSB1c3VhbGx5IG5vbi1yZXRyaWFibGU6XG4gICAgICB0aGlzLnVwZGF0ZVN0YXRlKFJlYWN0aXZlRXZlbnRTb3VyY2VTdGF0ZS5FUlJPUik7XG4gICAgICB0aGlzLmxvZy5lcnJvcignRmFpbGVkIHRvIG9wZW4gRXZlbnQgU291cmNlIGR1ZSB0byBDbGllbnQgRXJyb3IgJyArIHJlc3BvbnNlLnN0YXR1cywgcmVzcG9uc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZy5lcnJvcignRmFpbGVkIHRvIG9wZW4gRXZlbnQgU291cmNlIGR1ZSB0byBFcnJvciAnICsgcmVzcG9uc2Uuc3RhdHVzLCByZXNwb25zZSk7XG4gICAgICB0aGlzLnVwZGF0ZVN0YXRlKFJlYWN0aXZlRXZlbnRTb3VyY2VTdGF0ZS5FUlJPUik7XG4gICAgICB0aGlzLnRyeVJlY29ubmVjdCgpOyAvLyBUT0RPIE5lY2Vzc2FyeSBpZiBrZWVwIGFsaXZlID0gdHJ1ZT9cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU9uRXJyb3IoZXJyOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKFJlYWN0aXZlRXZlbnRTb3VyY2VTdGF0ZS5FUlJPUik7XG4gICAgdGhpcy5sb2cudHJhY2UoJ1RoZXJlIHdhcyBhbiBTU0UgZXJyb3IuJywgZXJyKTtcbiAgICBpZiAoIXRoaXMuY2xvc2VkKSB7XG4gICAgICAvLyBUaGVyZSB3YXMgYW4gZXJyb3IgLSB0cnkgcmVjb25uZWN0aW5nXG4gICAgICB0aGlzLmxvZy5kZWJ1ZygnQXR0ZW1wdGluZyB0byByZWNvbm5lY3QgZXZlbnQtc291cmNlIC4uLicpO1xuICAgICAgdGhpcy50cnlSZWNvbm5lY3QoKTsgLy8gVE9ETyBOZWNlc3NhcnkgaWYga2VlcCBhbGl2ZSA9IHRydWU/XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nLmRlYnVnKCdUaGVyZSB3YXMgYW4gZXJyb3IgaW4gdGhlIHNzZSBjb25uZWN0aW9uIChjbG9zZWQpLicsIGVycik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0cnlSZWNvbm5lY3QoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9jbG9zZWQpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZWNvbm5lY3QoKSwgMzAwMCk7IC8vIERlbGF5IHRoZSByZWNvbm5lY3RcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU9uTWVzc2FnZShtc2c6IEV2ZW50U291cmNlTWVzc2FnZSk6IHZvaWQge1xuICAgIGNvbnN0IHRvcGljID0gdGhpcy5ldmVudFRvcGljcy5nZXQobXNnLmV2ZW50KTtcbiAgICBpZiAodG9waWMpIHtcbiAgICAgIHRvcGljLm5leHQobmV3IFJlYWN0aXZlU1NlTWVzc2FnZShcbiAgICAgICAgbXNnLmlkLFxuICAgICAgICBtc2cuZXZlbnQsXG4gICAgICAgIG1zZy5kYXRhLFxuICAgICAgICBtc2cucmV0cnlcbiAgICAgICkpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVPbkNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMubG9nLmRlYnVnKCdFdmVudFNvdXJjZSBoYXMgY2xvc2VkLicpXG4gICAgdGhpcy51cGRhdGVTdGF0ZShSZWFjdGl2ZUV2ZW50U291cmNlU3RhdGUuQ0xPU0VEKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU3RhdGUoc3RhdGU6IFJlYWN0aXZlRXZlbnRTb3VyY2VTdGF0ZSkge1xuICAgIHRoaXMuc3RhdGUkLm5leHQoc3RhdGUpO1xuICB9XG59XG4iXX0=
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3RpdmUtZmV0Y2gtZXZlbnQtc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvZmVhdHVyZXMvZXZlbnQtc291cmNlL2ZldGNoL3JlYWN0aXZlLWZldGNoLWV2ZW50LXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLHNCQUFzQixFQUFFLGdCQUFnQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDM0csT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxlQUFlLEVBQWMsT0FBTyxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUduQyxNQUFNLENBQU4sSUFBWSx3QkFNWDtBQU5ELFdBQVksd0JBQXdCO0lBQ2xDLHlDQUFhLENBQUE7SUFDYixxREFBeUIsQ0FBQTtJQUN6Qix5Q0FBYSxDQUFBO0lBQ2IsNkNBQWlCLENBQUE7SUFDakIsMkNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBTlcsd0JBQXdCLEtBQXhCLHdCQUF3QixRQU1uQztBQUVELE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFDa0IsRUFBVSxFQUNWLEtBQWEsRUFDYixJQUFPLEVBQ1AsS0FBYztRQUhkLE9BQUUsR0FBRixFQUFFLENBQVE7UUFDVixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsU0FBSSxHQUFKLElBQUksQ0FBRztRQUNQLFVBQUssR0FBTCxLQUFLLENBQVM7SUFFaEMsQ0FBQztDQUNGO0FBUUQsTUFBTSxPQUFPLHdCQUF3QjtJQWtCbkM7Ozs7Z0ZBSTRFO0lBRXJFLE1BQU0sQ0FBQyxhQUFhLENBQ3pCLFdBQW1DO1FBRW5DLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FB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LENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUErQjtRQUNqRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRU8sa0JBQWtCLENBQUMsSUFBYTtRQUN0QyxPQUFPLElBQUksSUFBSSxTQUFTLENBQUM7SUFDM0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFdmVudFNvdXJjZU1lc3NhZ2UsIEV2ZW50U3RyZWFtQ29udGVudFR5cGUsIGZldGNoRXZlbnRTb3VyY2V9IGZyb20gJ0BtaWNyb3NvZnQvZmV0Y2gtZXZlbnQtc291cmNlJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtBfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuXG5leHBvcnQgZW51bSBSZWFjdGl2ZUV2ZW50U291cmNlU3RhdGUge1xuICBJRExFID0gJ0lETEUnLFxuICBDT05ORUNUSU5HID0gJ0NPTk5FQ1RJTkcnLFxuICBPUEVOID0gJ09QRU4nLFxuICBDTE9TRUQgPSAnQ0xPU0VEJyxcbiAgRVJST1IgPSAnRVJST1InLFxufVxuXG5leHBvcnQgY2xhc3MgUmVhY3RpdmVTU2VNZXNzYWdlPFQgPSBzdHJpbmc+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGlkOiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IGV2ZW50OiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IGRhdGE6IFQsXG4gICAgcHVibGljIHJlYWRvbmx5IHJldHJ5PzogbnVtYmVyLFxuICApIHtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50U291cmNlUmVxdWVzdEluaXQge1xuICByZXF1ZXN0OiBSZXF1ZXN0SW5mbyxcbiAgbWV0aG9kPzogc3RyaW5nLFxuICBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPlxufVxuXG5leHBvcnQgY2xhc3MgUmVhY3RpdmVGZXRjaEV2ZW50U291cmNlPFQgPSBhbnk+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZyA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG4gIHByaXZhdGUgX2Nsb3NlZDogYm9vbGVhbjtcbiAgcHJpdmF0ZSBhYm9ydENvbnRyb2xsZXI6IEFib3J0Q29udHJvbGxlciA9IG51bGw7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlYWN0aXZlRXZlbnRTb3VyY2VTdGF0ZT4oUmVhY3RpdmVFdmVudFNvdXJjZVN0YXRlLklETEUpO1xuICBwcml2YXRlIF91bnN1YnNjcmliZVN1YjogU3Vic2NyaXB0aW9uO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRUb3BpY3MgPSBuZXcgTWFwPHN0cmluZywgU3ViamVjdDxSZWFjdGl2ZVNTZU1lc3NhZ2U+PigpO1xuXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFN0YXRpYyBCdWlsZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHN0YXRpYyBzdGF0aWNSZXF1ZXN0PFQ+KFxuICAgIHJlcXVlc3RJbml0OiBFdmVudFNvdXJjZVJlcXVlc3RJbml0LFxuICApOiBSZWFjdGl2ZUZldGNoRXZlbnRTb3VyY2U8VD4ge1xuICAgIGlmICghcmVxdWVzdEluaXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignWW91IG11c3QgcHJvdmlkZSBhIGV2ZW50IHNvdXJjZSB1cmwhJyk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgUmVhY3RpdmVGZXRjaEV2ZW50U291cmNlKCgpID0+IHJlcXVlc3RJbml0KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZHluYW1pY1JlcXVlc3Q8VD4oXG4gICAgcmVxdWVzdEluaXRQcm92aWRlcjogKCkgPT4gRXZlbnRTb3VyY2VSZXF1ZXN0SW5pdFxuICApOiBSZWFjdGl2ZUZldGNoRXZlbnRTb3VyY2U8VD4ge1xuICAgIHJldHVybiBuZXcgUmVhY3RpdmVGZXRjaEV2ZW50U291cmNlKHJlcXVlc3RJbml0UHJvdmlkZXIpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlcXVlc3RJbml0UHJvdmlkZXI6ICgpID0+IEV2ZW50U291cmNlUmVxdWVzdEluaXQsXG4gICkge1xuICAgIGlmICghcmVxdWVzdEluaXRQcm92aWRlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgbXVzdCBwcm92aWRlIGEgZXZlbnQgc291cmNlIHVybCBwcm92aWRlciEnKTtcbiAgICB9XG4gICAgdGhpcy5vcGVuKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZ2V0IGNsb3NlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY2xvc2VkO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIE9wZW4gdGhlIGV2ZW50IHNvdXJjZS5cbiAgICpcbiAgICogTm90ZTogVGhlIGNvbm5lY3Rpb24gaXMgb3BlbmVkIGF1dG9tYXRpY2FsbHkgdXBvbiBvYmplY3QgY3JlYXRpb24uXG4gICAqIFRoaXMgbWV0aG9kIHNob3VsZCBvbmx5IGJlIHVzZWQgaWYgdGhpcyByZWFjdGl2ZS1ldmVudC1zb3VyY2UgaGFzXG4gICAqIGJlZW4gY2xvc2VkIGV4cGxpY2l0bHkuXG4gICAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLl9jbG9zZWQgPSBmYWxzZTtcbiAgICB0aGlzLnJlY29ubmVjdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbiBldmVudCBzdHJlYW0gZm9yIHRoZSBnaXZlbiBldmVudCB0eXBlLlxuICAgKiBAcGFyYW0gZXZlbnRUeXBlUmF3IFRoZSBldmVudCB0eXBlLiBEZWZhdWx0cyB0byAnbWVzc2FnZScuXG4gICAqL1xuICBwdWJsaWMgZXZlbnRzKGV2ZW50VHlwZVJhdz86IHN0cmluZyk6IE9ic2VydmFibGU8UmVhY3RpdmVTU2VNZXNzYWdlPiB7XG4gICAgY29uc3QgZXZlbnRUeXBlID0gdGhpcy5ldmVudFR5cGVPckRlZmF1bHQoZXZlbnRUeXBlUmF3KTtcbiAgICBpZiAoIXRoaXMuZXZlbnRUb3BpY3MuaGFzKGV2ZW50VHlwZSkpIHtcbiAgICAgIHRoaXMuZXZlbnRUb3BpY3Muc2V0KGV2ZW50VHlwZSwgbmV3IFN1YmplY3Q8UmVhY3RpdmVTU2VNZXNzYWdlPigpKTtcbiAgICB9XG4gICAgY29uc3QgZXZlbnRTdWJqID0gdGhpcy5ldmVudFRvcGljcy5nZXQoZXZlbnRUeXBlKTtcbiAgICByZXR1cm4gZXZlbnRTdWJqLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbiBldmVudCBzdHJlYW0gb2YgbWVzc2FnZXMgcGFyc2VkIGZyb20ganNvbi5cbiAgICogKGV2ZW50LmRhdGEgbXVzdCBiZSBpbiBqc29uIGZvcm1hdClcbiAgICpcbiAgICogQHBhcmFtIGV2ZW50VHlwZSBUaGUgZXZlbnQgdHlwZS4gRGVmYXVsdHMgdG8gJ21lc3NhZ2UnLlxuICAgKi9cbiAgcHVibGljIGV2ZW50c0pzb24oZXZlbnRUeXBlPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuZXZlbnRzKGV2ZW50VHlwZSkucGlwZShcbiAgICAgIG1hcChldmVudCA9PiBKU09OLnBhcnNlKGV2ZW50LmRhdGEpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2UgdGhpcyBldmVudCBzb3VyY2UuIEl0IHdvbid0IHJlY29ubmVjdC5cbiAgICovXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9jbG9zZWQgPSB0cnVlO1xuICAgIHRoaXMuY2xvc2VDdXJyZW50KCk7XG4gICAgdGhpcy5sb2cuZGVidWcoJ0Nsb3NpbmcgdGhlIGV2ZW50LXNvdXJjZS4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBLZWVwcyB0aGlzIHJlYWN0aXZlIGV2ZW50IHNvdXJjZSBvcGVuIHVudGlsIHRoZSBnaXZlbiBvYnNlcnZhYmxlIGVtaXRzIGFuIGV2ZW50LlxuICAgKiBAcGFyYW0gdW5zdWJzY3JpYmVcbiAgICovXG4gIHB1YmxpYyBvcGVuVW50aWwodW5zdWJzY3JpYmU6IE9ic2VydmFibGU8YW55Pik6IHRoaXMge1xuICAgIHRoaXMuY2xlYW5VcE9wZW5VbnRpbCgpO1xuICAgIHRoaXMuX3Vuc3Vic2NyaWJlU3ViID0gdW5zdWJzY3JpYmVcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICgpID0+IHRoaXMuY2xvc2UoKVxuICAgICAgKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgY2xlYW5VcE9wZW5VbnRpbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fdW5zdWJzY3JpYmVTdWIpIHtcbiAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLl91bnN1YnNjcmliZVN1YiA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlIHRoZSBjdXJyZW50IGV2ZW50IHNvdXJjZVxuICAgKi9cbiAgcHJpdmF0ZSBjbG9zZUN1cnJlbnQocmVhc29uPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5sb2cuZGVidWcoJ0Nsb3NpbmcgdGhlIGV2ZW50LXNvdXJjZSwgcmVhc29uOiAnICsgcmVhc29uKTtcbiAgICBjb25zdCBjcnQgPSB0aGlzLmFib3J0Q29udHJvbGxlcjtcbiAgICBpZiAoY3J0KSB7XG4gICAgICBjcnQuYWJvcnQocmVhc29uKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVjb25uZWN0cyB0aGlzIGV2ZW50IHNvdXJjZSwgdW5sZXNzIGNsb3NlZCBpcyB0cnVlO1xuICAgKi9cbiAgcHJpdmF0ZSByZWNvbm5lY3QoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2Nsb3NlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZVN0YXRlKFJlYWN0aXZlRXZlbnRTb3VyY2VTdGF0ZS5DT05ORUNUSU5HKTtcbiAgICB0aGlzLmNsb3NlQ3VycmVudCgnUmVjb25uZWN0Jyk7XG4gICAgdGhpcy5vcGVuRXZlbnRTb3VyY2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkV2ZW50U291cmNlKCk6IHZvaWQge1xuICAgIGNvbnN0IHJlcXVlc3RJbml0ID0gdGhpcy5yZXF1ZXN0SW5pdFByb3ZpZGVyKCk7XG4gICAgY29uc3QgY3J0ID0gdGhpcy5hYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgZmV0Y2hFdmVudFNvdXJjZShyZXF1ZXN0SW5pdC5yZXF1ZXN0LCB7XG4gICAgICBtZXRob2Q6IHJlcXVlc3RJbml0Lm1ldGhvZCxcbiAgICAgIHNpZ25hbDogY3J0LnNpZ25hbCxcbiAgICAgIGhlYWRlcnM6IHJlcXVlc3RJbml0LmhlYWRlcnMsXG4gICAgICBrZWVwYWxpdmU6IHRydWUsXG4gICAgICBvcGVuV2hlbkhpZGRlbjogZmFsc2UsXG4gICAgICBvbm9wZW46IHJlc3BvbnNlID0+IHRoaXMuaGFuZGxlT25PcGVuKHJlc3BvbnNlKSxcbiAgICAgIG9ubWVzc2FnZTogbXNnID0+IHRoaXMuaGFuZGxlT25NZXNzYWdlKG1zZyksXG4gICAgICBvbmVycm9yOiBlcnIgPT4gdGhpcy5oYW5kbGVPbkVycm9yKGVyciksXG4gICAgICBvbmNsb3NlOiAoKSA9PiB0aGlzLmhhbmRsZU9uQ2xvc2UoKVxuICAgIH0pLnRoZW4ociA9PiB7XG5cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlT25PcGVuKHJlc3BvbnNlOiBSZXNwb25zZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChyZXNwb25zZS5vayAmJiByZXNwb25zZS5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJykgPT09IEV2ZW50U3RyZWFtQ29udGVudFR5cGUpIHtcbiAgICAgIHRoaXMubG9nLmRlYnVnKCdFdmVudFNvdXJjZSBjb25uZWN0aW9uIHN1Y2Vzc2Z1bGx5IG9wZW5lZCB0bzogJyArIHJlc3BvbnNlLnVybCArXG4gICAgICAgICcsIHN0YXRlOiAnICsgcmVzcG9uc2Uuc3RhdHVzLCByZXNwb25zZSk7XG4gICAgICB0aGlzLnVwZGF0ZVN0YXRlKFJlYWN0aXZlRXZlbnRTb3VyY2VTdGF0ZS5PUEVOKTtcbiAgICAgIHJldHVybjsgLy8gZXZlcnl0aGluZydzIGdvb2RcbiAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLnN0YXR1cyA+PSA0MDAgJiYgcmVzcG9uc2Uuc3RhdHVzIDwgNTAwICYmIHJlc3BvbnNlLnN0YXR1cyAhPT0gNDI5KSB7XG4gICAgICAvLyBjbGllbnQtc2lkZSBlcnJvcnMgYXJlIHVzdWFsbHkgbm9uLXJldHJpYWJsZTpcbiAgICAgIHRoaXMudXBkYXRlU3RhdGUoUmVhY3RpdmVFdmVudFNvdXJjZVN0YXRlLkVSUk9SKTtcbiAgICAgIHRoaXMubG9nLmVycm9yKCdGYWlsZWQgdG8gb3BlbiBFdmVudCBTb3VyY2UgZHVlIHRvIENsaWVudCBFcnJvciAnICsgcmVzcG9uc2Uuc3RhdHVzLCByZXNwb25zZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nLmVycm9yKCdGYWlsZWQgdG8gb3BlbiBFdmVudCBTb3VyY2UgZHVlIHRvIEVycm9yICcgKyByZXNwb25zZS5zdGF0dXMsIHJlc3BvbnNlKTtcbiAgICAgIHRoaXMudXBkYXRlU3RhdGUoUmVhY3RpdmVFdmVudFNvdXJjZVN0YXRlLkVSUk9SKTtcbiAgICAgIHRoaXMudHJ5UmVjb25uZWN0KCk7IC8vIFRPRE8gTmVjZXNzYXJ5IGlmIGtlZXAgYWxpdmUgPSB0cnVlP1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlT25FcnJvcihlcnI6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlU3RhdGUoUmVhY3RpdmVFdmVudFNvdXJjZVN0YXRlLkVSUk9SKTtcbiAgICB0aGlzLmxvZy50cmFjZSgnVGhlcmUgd2FzIGFuIFNTRSBlcnJvci4nLCBlcnIpO1xuICAgIGlmICghdGhpcy5jbG9zZWQpIHtcbiAgICAgIC8vIFRoZXJlIHdhcyBhbiBlcnJvciAtIHRyeSByZWNvbm5lY3RpbmdcbiAgICAgIHRoaXMubG9nLmRlYnVnKCdBdHRlbXB0aW5nIHRvIHJlY29ubmVjdCBldmVudC1zb3VyY2UgLi4uJyk7XG4gICAgICB0aGlzLnRyeVJlY29ubmVjdCgpOyAvLyBUT0RPIE5lY2Vzc2FyeSBpZiBrZWVwIGFsaXZlID0gdHJ1ZT9cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2cuZGVidWcoJ1RoZXJlIHdhcyBhbiBlcnJvciBpbiB0aGUgc3NlIGNvbm5lY3Rpb24gKGNsb3NlZCkuJywgZXJyKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHRyeVJlY29ubmVjdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2Nsb3NlZCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlY29ubmVjdCgpLCAzMDAwKTsgLy8gRGVsYXkgdGhlIHJlY29ubmVjdFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlT25NZXNzYWdlKG1zZzogRXZlbnRTb3VyY2VNZXNzYWdlKTogdm9pZCB7XG4gICAgY29uc3QgZXZlbnRUeXBlID0gdGhpcy5ldmVudFR5cGVPckRlZmF1bHQobXNnLmV2ZW50KTtcbiAgICBjb25zdCB0b3BpYyA9IHRoaXMuZXZlbnRUb3BpY3MuZ2V0KGV2ZW50VHlwZSk7XG4gICAgaWYgKHRvcGljKSB7XG4gICAgICB0b3BpYy5uZXh0KG5ldyBSZWFjdGl2ZVNTZU1lc3NhZ2UoXG4gICAgICAgIG1zZy5pZCxcbiAgICAgICAgZXZlbnRUeXBlLFxuICAgICAgICBtc2cuZGF0YSxcbiAgICAgICAgbXNnLnJldHJ5XG4gICAgICApKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU9uQ2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5sb2cuZGVidWcoJ0V2ZW50U291cmNlIGhhcyBjbG9zZWQuJyk7XG4gICAgdGhpcy51cGRhdGVTdGF0ZShSZWFjdGl2ZUV2ZW50U291cmNlU3RhdGUuQ0xPU0VEKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU3RhdGUoc3RhdGU6IFJlYWN0aXZlRXZlbnRTb3VyY2VTdGF0ZSkge1xuICAgIHRoaXMuc3RhdGUkLm5leHQoc3RhdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBldmVudFR5cGVPckRlZmF1bHQodHlwZT86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHR5cGUgPz8gJ21lc3NhZ2UnO1xuICB9XG59XG4iXX0=
|
|
@@ -31587,7 +31587,7 @@ class ReactiveFetchEventSource {
|
|
|
31587
31587
|
* *
|
|
31588
31588
|
**************************************************************************/
|
|
31589
31589
|
this.log = LoggerFactory.getLogger(this.constructor.name);
|
|
31590
|
-
this.abortController =
|
|
31590
|
+
this.abortController = null;
|
|
31591
31591
|
this.state$ = new BehaviorSubject(ReactiveEventSourceState.IDLE);
|
|
31592
31592
|
this.eventTopics = new Map();
|
|
31593
31593
|
if (!requestInitProvider) {
|
|
@@ -31621,9 +31621,10 @@ class ReactiveFetchEventSource {
|
|
|
31621
31621
|
}
|
|
31622
31622
|
/**
|
|
31623
31623
|
* Get an event stream for the given event type.
|
|
31624
|
-
* @param
|
|
31624
|
+
* @param eventTypeRaw The event type. Defaults to 'message'.
|
|
31625
31625
|
*/
|
|
31626
|
-
events(
|
|
31626
|
+
events(eventTypeRaw) {
|
|
31627
|
+
const eventType = this.eventTypeOrDefault(eventTypeRaw);
|
|
31627
31628
|
if (!this.eventTopics.has(eventType)) {
|
|
31628
31629
|
this.eventTopics.set(eventType, new Subject());
|
|
31629
31630
|
}
|
|
@@ -31636,7 +31637,7 @@ class ReactiveFetchEventSource {
|
|
|
31636
31637
|
*
|
|
31637
31638
|
* @param eventType The event type. Defaults to 'message'.
|
|
31638
31639
|
*/
|
|
31639
|
-
eventsJson(eventType
|
|
31640
|
+
eventsJson(eventType) {
|
|
31640
31641
|
return this.events(eventType).pipe(map(event => JSON.parse(event.data)));
|
|
31641
31642
|
}
|
|
31642
31643
|
/**
|
|
@@ -31673,7 +31674,10 @@ class ReactiveFetchEventSource {
|
|
|
31673
31674
|
*/
|
|
31674
31675
|
closeCurrent(reason) {
|
|
31675
31676
|
this.log.debug('Closing the event-source, reason: ' + reason);
|
|
31676
|
-
this.abortController
|
|
31677
|
+
const crt = this.abortController;
|
|
31678
|
+
if (crt) {
|
|
31679
|
+
crt.abort(reason);
|
|
31680
|
+
}
|
|
31677
31681
|
}
|
|
31678
31682
|
/**
|
|
31679
31683
|
* Reconnects this event source, unless closed is true;
|
|
@@ -31688,9 +31692,10 @@ class ReactiveFetchEventSource {
|
|
|
31688
31692
|
}
|
|
31689
31693
|
openEventSource() {
|
|
31690
31694
|
const requestInit = this.requestInitProvider();
|
|
31695
|
+
const crt = this.abortController = new AbortController();
|
|
31691
31696
|
fetchEventSource(requestInit.request, {
|
|
31692
31697
|
method: requestInit.method,
|
|
31693
|
-
signal:
|
|
31698
|
+
signal: crt.signal,
|
|
31694
31699
|
headers: requestInit.headers,
|
|
31695
31700
|
keepalive: true,
|
|
31696
31701
|
openWhenHidden: false,
|
|
@@ -31737,9 +31742,10 @@ class ReactiveFetchEventSource {
|
|
|
31737
31742
|
}
|
|
31738
31743
|
}
|
|
31739
31744
|
handleOnMessage(msg) {
|
|
31740
|
-
const
|
|
31745
|
+
const eventType = this.eventTypeOrDefault(msg.event);
|
|
31746
|
+
const topic = this.eventTopics.get(eventType);
|
|
31741
31747
|
if (topic) {
|
|
31742
|
-
topic.next(new ReactiveSSeMessage(msg.id,
|
|
31748
|
+
topic.next(new ReactiveSSeMessage(msg.id, eventType, msg.data, msg.retry));
|
|
31743
31749
|
}
|
|
31744
31750
|
}
|
|
31745
31751
|
handleOnClose() {
|
|
@@ -31749,6 +31755,9 @@ class ReactiveFetchEventSource {
|
|
|
31749
31755
|
updateState(state) {
|
|
31750
31756
|
this.state$.next(state);
|
|
31751
31757
|
}
|
|
31758
|
+
eventTypeOrDefault(type) {
|
|
31759
|
+
return type ?? 'message';
|
|
31760
|
+
}
|
|
31752
31761
|
}
|
|
31753
31762
|
|
|
31754
31763
|
/**
|