@ethlete/query 4.6.1 → 4.7.0
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.
- package/esm2022/index.mjs +2 -1
- package/esm2022/lib/devtools/components/public-api.mjs +2 -0
- package/esm2022/lib/devtools/components/query-devtools/public-api.mjs +2 -0
- package/esm2022/lib/devtools/components/query-devtools/query-devtools.component.mjs +72 -0
- package/esm2022/lib/devtools/index.mjs +2 -0
- package/esm2022/lib/devtools/public-api.mjs +3 -0
- package/esm2022/lib/devtools/utils/index.mjs +2 -0
- package/esm2022/lib/devtools/utils/public-api.mjs +2 -0
- package/esm2022/lib/devtools/utils/query-client.utils.mjs +13 -0
- package/esm2022/lib/query/query.mjs +17 -4
- package/esm2022/lib/query-client/query-client.mjs +1 -1
- package/esm2022/lib/query-client/query-client.types.mjs +1 -1
- package/esm2022/lib/query-store/query-store.mjs +9 -2
- package/fesm2022/ethlete-query.mjs +104 -5
- package/fesm2022/ethlete-query.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/lib/devtools/components/public-api.d.ts +1 -0
- package/lib/devtools/components/query-devtools/public-api.d.ts +1 -0
- package/lib/devtools/components/query-devtools/query-devtools.component.d.ts +28 -0
- package/lib/devtools/index.d.ts +1 -0
- package/lib/devtools/public-api.d.ts +2 -0
- package/lib/devtools/utils/index.d.ts +1 -0
- package/lib/devtools/utils/public-api.d.ts +1 -0
- package/lib/devtools/utils/query-client.utils.d.ts +12 -0
- package/lib/query/query.d.ts +6 -2
- package/lib/query-client/query-client.d.ts +0 -1
- package/lib/query-client/query-client.types.d.ts +5 -0
- package/lib/query-store/query-store.d.ts +2 -1
- package/package.json +1 -1
package/esm2022/index.mjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from './lib/auth';
|
|
2
2
|
export * from './lib/class-validator';
|
|
3
|
+
export * from './lib/devtools';
|
|
3
4
|
export * from './lib/directives';
|
|
4
5
|
export * from './lib/entity';
|
|
5
6
|
export * from './lib/gql';
|
|
@@ -13,4 +14,4 @@ export * from './lib/query-store';
|
|
|
13
14
|
export * from './lib/request';
|
|
14
15
|
export * from './lib/symfony';
|
|
15
16
|
export * from './lib/utils';
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9hdXRoJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzLXZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kZXZ0b29scyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VudGl0eSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9ncWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW5maW5pdGUtcXVlcnknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbG9nZ2VyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3F1ZXJ5JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3F1ZXJ5LWNsaWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9xdWVyeS1jcmVhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3F1ZXJ5LWZvcm0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcXVlcnktc3RvcmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVxdWVzdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zeW1mb255JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzJztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './query-devtools/public-api';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi9kZXZ0b29scy9jb21wb25lbnRzL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcXVlcnktZGV2dG9vbHMvcHVibGljLWFwaSc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './query-devtools.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi9kZXZ0b29scy9jb21wb25lbnRzL3F1ZXJ5LWRldnRvb2xzL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcXVlcnktZGV2dG9vbHMuY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { AsyncPipe, JsonPipe, NgFor, NgIf } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, effect, inject, signal, } from '@angular/core';
|
|
3
|
+
import { toSignal } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { createDestroy } from '@ethlete/core';
|
|
5
|
+
import { BehaviorSubject, Subject, map, startWith, takeUntil, tap } from 'rxjs';
|
|
6
|
+
import { QUERY_CLIENT_DEVTOOLS_TOKEN } from '../../utils';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class QueryDevtoolsComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
this._destroy$ = createDestroy();
|
|
11
|
+
this.queryClientConfigs = inject(QUERY_CLIENT_DEVTOOLS_TOKEN);
|
|
12
|
+
this.isOpen = signal(false);
|
|
13
|
+
this.showResponse = signal(false);
|
|
14
|
+
this.showRawResponse = signal(false);
|
|
15
|
+
this.selectedClientId = signal(0);
|
|
16
|
+
this.selectedQueryPath = signal(null);
|
|
17
|
+
this.selectedClientConfig = computed(() => {
|
|
18
|
+
if (this.queryClientConfigs.length === 1) {
|
|
19
|
+
return this.queryClientConfigs[0];
|
|
20
|
+
}
|
|
21
|
+
const index = this.selectedClientId();
|
|
22
|
+
return this.queryClientConfigs[index];
|
|
23
|
+
});
|
|
24
|
+
this.queryStore = computed(() => {
|
|
25
|
+
const config = this.selectedClientConfig();
|
|
26
|
+
return config.client._store;
|
|
27
|
+
});
|
|
28
|
+
this._queries$ = new BehaviorSubject([]);
|
|
29
|
+
this.queries = toSignal(this._queries$);
|
|
30
|
+
this.selectedQuery = computed(() => {
|
|
31
|
+
const path = this.selectedQueryPath();
|
|
32
|
+
if (!path) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
return this.queries()?.find((q) => q._routeWithParams === path) ?? null;
|
|
36
|
+
});
|
|
37
|
+
this.trackByClient = (_, { client }) => client.config.baseRoute;
|
|
38
|
+
this.trackByQuery = (_, { _routeWithParams }) => _routeWithParams;
|
|
39
|
+
const change$ = new Subject();
|
|
40
|
+
effect(() => {
|
|
41
|
+
change$.next(true);
|
|
42
|
+
const store = this.queryStore();
|
|
43
|
+
store.storeChange$
|
|
44
|
+
.pipe(startWith(''), map(() => store._store), tap((s) => this._queries$.next(Array.from(s.values()))), takeUntil(change$), takeUntil(this._destroy$))
|
|
45
|
+
.subscribe();
|
|
46
|
+
}, { allowSignalWrites: true });
|
|
47
|
+
}
|
|
48
|
+
toggleOpen() {
|
|
49
|
+
this.isOpen.set(!this.isOpen());
|
|
50
|
+
}
|
|
51
|
+
toggleShowResponse() {
|
|
52
|
+
this.showResponse.set(!this.showResponse());
|
|
53
|
+
}
|
|
54
|
+
toggleShowRawResponse() {
|
|
55
|
+
this.showRawResponse.set(!this.showRawResponse());
|
|
56
|
+
}
|
|
57
|
+
selectClient(clientId) {
|
|
58
|
+
this.selectedClientId.set(clientId);
|
|
59
|
+
}
|
|
60
|
+
selectQuery(query) {
|
|
61
|
+
this.selectedQueryPath.set(query._routeWithParams);
|
|
62
|
+
}
|
|
63
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: QueryDevtoolsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
64
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: QueryDevtoolsComponent, isStandalone: true, selector: "et-query-devtools", host: { classAttribute: "et-query-devtools" }, ngImport: i0, template: "<button (click)=\"toggleOpen()\" class=\"et-query-devtools-open-btn\">Open Devtools</button>\n\n<div *ngIf=\"isOpen()\" class=\"et-query-devtools-container\">\n <button (click)=\"toggleOpen()\" class=\"et-query-devtools-close-btn\">Close Devtools</button>\n\n <ng-container *ngIf=\"queryClientConfigs.length > 1\">\n <p>Client instance:</p>\n <ul>\n <li *ngFor=\"let clientConfig of queryClientConfigs; index as i; trackBy: trackByClient\">\n <button (click)=\"selectClient(i)\">\n {{ clientConfig.displayName ?? clientConfig.client.config.baseRoute }}\n </button>\n </li>\n </ul>\n </ng-container>\n\n <ng-container *ngIf=\"selectedClientConfig() as cfg\">\n <p>{{ cfg.displayName ?? cfg.client.config.baseRoute }}</p>\n\n <button (click)=\"cfg.client._store.refreshQueriesInUse()\">Force Refresh of in use queries</button> <br />\n <button (click)=\"cfg.client._store.refreshQueriesInUse({ ignoreCacheValidity: true })\">HARD Force Refresh</button>\n <br />\n <button (click)=\"cfg.client._store.refreshQueriesInUse({ ignoreCacheValidity: true, purgeUnused: true })\">\n PURGE & HARD Force Refresh\n </button>\n\n <ul>\n <li *ngFor=\"let query of queries(); trackBy: trackByQuery\">\n <button (click)=\"selectQuery(query)\">\n {{ query._routeWithParams }}\n </button>\n </li>\n </ul>\n </ng-container>\n\n <ng-container *ngIf=\"selectedQuery() as query\">\n <p>{{ query._routeWithParams }}</p>\n\n <button (click)=\"query.execute()\">Execute</button> <br />\n <button (click)=\"query.execute({ skipCache: true })\">FORCE Execute</button> <br />\n <button (click)=\"query.abort()\">Abort</button> <br />\n <button (click)=\"query.poll({ interval: 5000, takeUntil: _destroy$ })\">Poll</button> <br />\n <button (click)=\"query.stopPolling()\">Stop polling</button> <br />\n <button (click)=\"query.pausePolling()\">Pause polling</button> <br />\n <button (click)=\"query.resumePolling()\">Resume polling</button> <br />\n\n <div>\n <p>state type</p>\n <pre>{{ (query.state$ | async)?.type }}</pre>\n </div>\n\n <div>\n <p>_enableSmartPolling:</p>\n <pre>{{ query._enableSmartPolling }}</pre>\n </div>\n\n <div>\n <p>isExpired:</p>\n <pre>{{ query.isExpired }}</pre>\n </div>\n\n <div>\n <p>isInUse:</p>\n <pre>{{ query.isInUse }}</pre>\n </div>\n\n <div>\n <p>_subscriberCount:</p>\n <pre>{{ query._subscriberCount }}</pre>\n </div>\n\n <div>\n <p>isPolling:</p>\n <pre>{{ query.isPolling }}</pre>\n </div>\n\n <div>\n <p>_arguments:</p>\n <pre>{{ query._arguments | json }}</pre>\n </div>\n\n <div>\n <p>state$:</p>\n <button (click)=\"toggleShowResponse()\">Show/Hide</button>\n <pre *ngIf=\"showResponse()\">{{ query.state$ | async | json }}</pre>\n </div>\n\n <div>\n <p>rawState:</p>\n <button (click)=\"toggleShowRawResponse()\">Show/Hide</button>\n <pre *ngIf=\"showRawResponse()\">{{ query.rawState | json }}</pre>\n </div>\n </ng-container>\n</div>\n", styles: [".et-query-devtools-container{position:fixed;inset:0;background-color:#000;z-index:10000}.et-query-devtools-open-btn{position:fixed;inset-inline-start:0;inset-block-start:0;z-index:9999}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: JsonPipe, name: "json" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.ShadowDom }); }
|
|
65
|
+
}
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: QueryDevtoolsComponent, decorators: [{
|
|
67
|
+
type: Component,
|
|
68
|
+
args: [{ selector: 'et-query-devtools', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.ShadowDom, host: {
|
|
69
|
+
class: 'et-query-devtools',
|
|
70
|
+
}, imports: [NgIf, NgFor, AsyncPipe, JsonPipe], hostDirectives: [], template: "<button (click)=\"toggleOpen()\" class=\"et-query-devtools-open-btn\">Open Devtools</button>\n\n<div *ngIf=\"isOpen()\" class=\"et-query-devtools-container\">\n <button (click)=\"toggleOpen()\" class=\"et-query-devtools-close-btn\">Close Devtools</button>\n\n <ng-container *ngIf=\"queryClientConfigs.length > 1\">\n <p>Client instance:</p>\n <ul>\n <li *ngFor=\"let clientConfig of queryClientConfigs; index as i; trackBy: trackByClient\">\n <button (click)=\"selectClient(i)\">\n {{ clientConfig.displayName ?? clientConfig.client.config.baseRoute }}\n </button>\n </li>\n </ul>\n </ng-container>\n\n <ng-container *ngIf=\"selectedClientConfig() as cfg\">\n <p>{{ cfg.displayName ?? cfg.client.config.baseRoute }}</p>\n\n <button (click)=\"cfg.client._store.refreshQueriesInUse()\">Force Refresh of in use queries</button> <br />\n <button (click)=\"cfg.client._store.refreshQueriesInUse({ ignoreCacheValidity: true })\">HARD Force Refresh</button>\n <br />\n <button (click)=\"cfg.client._store.refreshQueriesInUse({ ignoreCacheValidity: true, purgeUnused: true })\">\n PURGE & HARD Force Refresh\n </button>\n\n <ul>\n <li *ngFor=\"let query of queries(); trackBy: trackByQuery\">\n <button (click)=\"selectQuery(query)\">\n {{ query._routeWithParams }}\n </button>\n </li>\n </ul>\n </ng-container>\n\n <ng-container *ngIf=\"selectedQuery() as query\">\n <p>{{ query._routeWithParams }}</p>\n\n <button (click)=\"query.execute()\">Execute</button> <br />\n <button (click)=\"query.execute({ skipCache: true })\">FORCE Execute</button> <br />\n <button (click)=\"query.abort()\">Abort</button> <br />\n <button (click)=\"query.poll({ interval: 5000, takeUntil: _destroy$ })\">Poll</button> <br />\n <button (click)=\"query.stopPolling()\">Stop polling</button> <br />\n <button (click)=\"query.pausePolling()\">Pause polling</button> <br />\n <button (click)=\"query.resumePolling()\">Resume polling</button> <br />\n\n <div>\n <p>state type</p>\n <pre>{{ (query.state$ | async)?.type }}</pre>\n </div>\n\n <div>\n <p>_enableSmartPolling:</p>\n <pre>{{ query._enableSmartPolling }}</pre>\n </div>\n\n <div>\n <p>isExpired:</p>\n <pre>{{ query.isExpired }}</pre>\n </div>\n\n <div>\n <p>isInUse:</p>\n <pre>{{ query.isInUse }}</pre>\n </div>\n\n <div>\n <p>_subscriberCount:</p>\n <pre>{{ query._subscriberCount }}</pre>\n </div>\n\n <div>\n <p>isPolling:</p>\n <pre>{{ query.isPolling }}</pre>\n </div>\n\n <div>\n <p>_arguments:</p>\n <pre>{{ query._arguments | json }}</pre>\n </div>\n\n <div>\n <p>state$:</p>\n <button (click)=\"toggleShowResponse()\">Show/Hide</button>\n <pre *ngIf=\"showResponse()\">{{ query.state$ | async | json }}</pre>\n </div>\n\n <div>\n <p>rawState:</p>\n <button (click)=\"toggleShowRawResponse()\">Show/Hide</button>\n <pre *ngIf=\"showRawResponse()\">{{ query.rawState | json }}</pre>\n </div>\n </ng-container>\n</div>\n", styles: [".et-query-devtools-container{position:fixed;inset:0;background-color:#000;z-index:10000}.et-query-devtools-open-btn{position:fixed;inset-inline-start:0;inset-block-start:0;z-index:9999}\n"] }]
|
|
71
|
+
}], ctorParameters: function () { return []; } });
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZGV2dG9vbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL2RldnRvb2xzL2NvbXBvbmVudHMvcXVlcnktZGV2dG9vbHMvcXVlcnktZGV2dG9vbHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL2RldnRvb2xzL2NvbXBvbmVudHMvcXVlcnktZGV2dG9vbHMvcXVlcnktZGV2dG9vbHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25FLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhGLE9BQU8sRUFBRSwyQkFBMkIsRUFBOEIsTUFBTSxhQUFhLENBQUM7O0FBZ0J0RixNQUFNLE9BQU8sc0JBQXNCO0lBMENqQztRQXpDbUIsY0FBUyxHQUFHLGFBQWEsRUFBRSxDQUFDO1FBRTVCLHVCQUFrQixHQUFHLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBRXpELFdBQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFaEMsaUJBQVksR0FBRyxNQUFNLENBQUMsS0FBSyxD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QztJQUM5QyxDQUFDO0lBRVMscUJBQXFCO1FBQzdCLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVTLFlBQVksQ0FBQyxRQUFnQjtRQUNyQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFUyxXQUFXLENBQUMsS0FBZTtRQUNuQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3JELENBQUM7OEdBdEZVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDRIQy9CbkMsOGtHQThGQSxxUERsRVksSUFBSSw2RkFBRSxLQUFLLDhHQUFFLFNBQVMseUNBQUUsUUFBUTs7MkZBRy9CLHNCQUFzQjtrQkFkbEMsU0FBUzsrQkFDRSxtQkFBbUIsY0FHakIsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxTQUFTLFFBRXBDO3dCQUNKLEtBQUssRUFBRSxtQkFBbUI7cUJBQzNCLFdBQ1EsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsa0JBQzNCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIEpzb25QaXBlLCBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBUcmFja0J5RnVuY3Rpb24sXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGNyZWF0ZURlc3Ryb3kgfSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCwgbWFwLCBzdGFydFdpdGgsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBbnlRdWVyeSB9IGZyb20gJy4uLy4uLy4uL3F1ZXJ5JztcbmltcG9ydCB7IFFVRVJZX0NMSUVOVF9ERVZUT09MU19UT0tFTiwgUXVlcnlDbGllbnREZXZ0b29sc09wdGlvbnMgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2V0LXF1ZXJ5LWRldnRvb2xzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3F1ZXJ5LWRldnRvb2xzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcXVlcnktZGV2dG9vbHMuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLlNoYWRvd0RvbSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1ob3N0LW1ldGFkYXRhLXByb3BlcnR5XG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2V0LXF1ZXJ5LWRldnRvb2xzJyxcbiAgfSxcbiAgaW1wb3J0czogW05nSWYsIE5nRm9yLCBBc3luY1BpcGUsIEpzb25QaXBlXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBRdWVyeURldnRvb2xzQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9kZXN0cm95JCA9IGNyZWF0ZURlc3Ryb3koKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcXVlcnlDbGllbnRDb25maWdzID0gaW5qZWN0KFFVRVJZX0NMSUVOVF9ERVZUT09MU19UT0tFTik7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzT3BlbiA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcHJvdGVjdGVkIHNob3dSZXNwb25zZSA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCBzaG93UmF3UmVzcG9uc2UgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RlZENsaWVudElkID0gc2lnbmFsKDApO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0ZWRRdWVyeVBhdGggPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlbGVjdGVkQ2xpZW50Q29uZmlnID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICh0aGlzLnF1ZXJ5Q2xpZW50Q29uZmlncy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHJldHVybiB0aGlzLnF1ZXJ5Q2xpZW50Q29uZmlnc1swXTtcbiAgICB9XG5cbiAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRDbGllbnRJZCgpO1xuXG4gICAgcmV0dXJuIHRoaXMucXVlcnlDbGllbnRDb25maWdzW2luZGV4XTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHF1ZXJ5U3RvcmUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5zZWxlY3RlZENsaWVudENvbmZpZygpO1xuXG4gICAgcmV0dXJuIGNvbmZpZy5jbGllbnQuX3N0b3JlO1xuICB9KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9xdWVyaWVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QW55UXVlcnlbXT4oW10pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcXVlcmllcyA9IHRvU2lnbmFsKHRoaXMuX3F1ZXJpZXMkKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0ZWRRdWVyeSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5zZWxlY3RlZFF1ZXJ5UGF0aCgpO1xuXG4gICAgaWYgKCFwYXRoKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5xdWVyaWVzKCk/LmZpbmQoKHEpID0+IHEuX3JvdXRlV2l0aFBhcmFtcyA9PT0gcGF0aCkgPz8gbnVsbDtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc3QgY2hhbmdlJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNoYW5nZSQubmV4dCh0cnVlKTtcblxuICAgICAgICBjb25zdCBzdG9yZSA9IHRoaXMucXVlcnlTdG9yZSgpO1xuXG4gICAgICAgIHN0b3JlLnN0b3JlQ2hhbmdlJFxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKCcnKSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiBzdG9yZS5fc3RvcmUpLFxuICAgICAgICAgICAgdGFwKChzKSA9PiB0aGlzLl9xdWVyaWVzJC5uZXh0KEFycmF5LmZyb20ocy52YWx1ZXMoKSkpKSxcbiAgICAgICAgICAgIHRha2VVbnRpbChjaGFuZ2UkKSxcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0cmFja0J5Q2xpZW50OiBUcmFja0J5RnVuY3Rpb248UXVlcnlDbGllbnREZXZ0b29sc09wdGlvbnM+ID0gKF8sIHsgY2xpZW50IH0pID0+IGNsaWVudC5jb25maWcuYmFzZVJvdXRlO1xuICBwcm90ZWN0ZWQgdHJhY2tCeVF1ZXJ5OiBUcmFja0J5RnVuY3Rpb248QW55UXVlcnk+ID0gKF8sIHsgX3JvdXRlV2l0aFBhcmFtcyB9KSA9PiBfcm91dGVXaXRoUGFyYW1zO1xuXG4gIHByb3RlY3RlZCB0b2dnbGVPcGVuKCkge1xuICAgIHRoaXMuaXNPcGVuLnNldCghdGhpcy5pc09wZW4oKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdG9nZ2xlU2hvd1Jlc3BvbnNlKCkge1xuICAgIHRoaXMuc2hvd1Jlc3BvbnNlLnNldCghdGhpcy5zaG93UmVzcG9uc2UoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdG9nZ2xlU2hvd1Jhd1Jlc3BvbnNlKCkge1xuICAgIHRoaXMuc2hvd1Jhd1Jlc3BvbnNlLnNldCghdGhpcy5zaG93UmF3UmVzcG9uc2UoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VsZWN0Q2xpZW50KGNsaWVudElkOiBudW1iZXIpIHtcbiAgICB0aGlzLnNlbGVjdGVkQ2xpZW50SWQuc2V0KGNsaWVudElkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RRdWVyeShxdWVyeTogQW55UXVlcnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkUXVlcnlQYXRoLnNldChxdWVyeS5fcm91dGVXaXRoUGFyYW1zKTtcbiAgfVxufVxuIiwiPGJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlT3BlbigpXCIgY2xhc3M9XCJldC1xdWVyeS1kZXZ0b29scy1vcGVuLWJ0blwiPk9wZW4gRGV2dG9vbHM8L2J1dHRvbj5cblxuPGRpdiAqbmdJZj1cImlzT3BlbigpXCIgY2xhc3M9XCJldC1xdWVyeS1kZXZ0b29scy1jb250YWluZXJcIj5cbiAgPGJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlT3BlbigpXCIgY2xhc3M9XCJldC1xdWVyeS1kZXZ0b29scy1jbG9zZS1idG5cIj5DbG9zZSBEZXZ0b29sczwvYnV0dG9uPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJxdWVyeUNsaWVudENvbmZpZ3MubGVuZ3RoID4gMVwiPlxuICAgIDxwPkNsaWVudCBpbnN0YW5jZTo8L3A+XG4gICAgPHVsPlxuICAgICAgPGxpICpuZ0Zvcj1cImxldCBjbGllbnRDb25maWcgb2YgcXVlcnlDbGllbnRDb25maWdzOyBpbmRleCBhcyBpOyB0cmFja0J5OiB0cmFja0J5Q2xpZW50XCI+XG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cInNlbGVjdENsaWVudChpKVwiPlxuICAgICAgICAgIHt7IGNsaWVudENvbmZpZy5kaXNwbGF5TmFtZSA/PyBjbGllbnRDb25maWcuY2xpZW50LmNvbmZpZy5iYXNlUm91dGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZENsaWVudENvbmZpZygpIGFzIGNmZ1wiPlxuICAgIDxwPnt7IGNmZy5kaXNwbGF5TmFtZSA/PyBjZmcuY2xpZW50LmNvbmZpZy5iYXNlUm91dGUgfX08L3A+XG5cbiAgICA8YnV0dG9uIChjbGljayk9XCJjZmcuY2xpZW50Ll9zdG9yZS5yZWZyZXNoUXVlcmllc0luVXNlKClcIj5Gb3JjZSBSZWZyZXNoIG9mIGluIHVzZSBxdWVyaWVzPC9idXR0b24+IDxiciAvPlxuICAgIDxidXR0b24gKGNsaWNrKT1cImNmZy5jbGllbnQuX3N0b3JlLnJlZnJlc2hRdWVyaWVzSW5Vc2UoeyBpZ25vcmVDYWNoZVZhbGlkaXR5OiB0cnVlIH0pXCI+SEFSRCBGb3JjZSBSZWZyZXNoPC9idXR0b24+XG4gICAgPGJyIC8+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwiY2ZnLmNsaWVudC5fc3RvcmUucmVmcmVzaFF1ZXJpZXNJblVzZSh7IGlnbm9yZUNhY2hlVmFsaWRpdHk6IHRydWUsIHB1cmdlVW51c2VkOiB0cnVlIH0pXCI+XG4gICAgICBQVVJHRSAmIEhBUkQgRm9yY2UgUmVmcmVzaFxuICAgIDwvYnV0dG9uPlxuXG4gICAgPHVsPlxuICAgICAgPGxpICpuZ0Zvcj1cImxldCBxdWVyeSBvZiBxdWVyaWVzKCk7IHRyYWNrQnk6IHRyYWNrQnlRdWVyeVwiPlxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJzZWxlY3RRdWVyeShxdWVyeSlcIj5cbiAgICAgICAgICB7eyBxdWVyeS5fcm91dGVXaXRoUGFyYW1zIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRRdWVyeSgpIGFzIHF1ZXJ5XCI+XG4gICAgPHA+e3sgcXVlcnkuX3JvdXRlV2l0aFBhcmFtcyB9fTwvcD5cblxuICAgIDxidXR0b24gKGNsaWNrKT1cInF1ZXJ5LmV4ZWN1dGUoKVwiPkV4ZWN1dGU8L2J1dHRvbj4gPGJyIC8+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwicXVlcnkuZXhlY3V0ZSh7IHNraXBDYWNoZTogdHJ1ZSB9KVwiPkZPUkNFIEV4ZWN1dGU8L2J1dHRvbj4gPGJyIC8+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwicXVlcnkuYWJvcnQoKVwiPkFib3J0PC9idXR0b24+IDxiciAvPlxuICAgIDxidXR0b24gKGNsaWNrKT1cInF1ZXJ5LnBvbGwoeyBpbnRlcnZhbDogNTAwMCwgdGFrZVVudGlsOiBfZGVzdHJveSQgfSlcIj5Qb2xsPC9idXR0b24+IDxiciAvPlxuICAgIDxidXR0b24gKGNsaWNrKT1cInF1ZXJ5LnN0b3BQb2xsaW5nKClcIj5TdG9wIHBvbGxpbmc8L2J1dHRvbj4gPGJyIC8+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwicXVlcnkucGF1c2VQb2xsaW5nKClcIj5QYXVzZSBwb2xsaW5nPC9idXR0b24+IDxiciAvPlxuICAgIDxidXR0b24gKGNsaWNrKT1cInF1ZXJ5LnJlc3VtZVBvbGxpbmcoKVwiPlJlc3VtZSBwb2xsaW5nPC9idXR0b24+IDxiciAvPlxuXG4gICAgPGRpdj5cbiAgICAgIDxwPnN0YXRlIHR5cGU8L3A+XG4gICAgICA8cHJlPnt7IChxdWVyeS5zdGF0ZSQgfCBhc3luYyk/LnR5cGUgfX08L3ByZT5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXY+XG4gICAgICA8cD5fZW5hYmxlU21hcnRQb2xsaW5nOjwvcD5cbiAgICAgIDxwcmU+e3sgcXVlcnkuX2VuYWJsZVNtYXJ0UG9sbGluZyB9fTwvcHJlPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdj5cbiAgICAgIDxwPmlzRXhwaXJlZDo8L3A+XG4gICAgICA8cHJlPnt7IHF1ZXJ5LmlzRXhwaXJlZCB9fTwvcHJlPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdj5cbiAgICAgIDxwPmlzSW5Vc2U6PC9wPlxuICAgICAgPHByZT57eyBxdWVyeS5pc0luVXNlIH19PC9wcmU+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2PlxuICAgICAgPHA+X3N1YnNjcmliZXJDb3VudDo8L3A+XG4gICAgICA8cHJlPnt7IHF1ZXJ5Ll9zdWJzY3JpYmVyQ291bnQgfX08L3ByZT5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXY+XG4gICAgICA8cD5pc1BvbGxpbmc6PC9wPlxuICAgICAgPHByZT57eyBxdWVyeS5pc1BvbGxpbmcgfX08L3ByZT5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXY+XG4gICAgICA8cD5fYXJndW1lbnRzOjwvcD5cbiAgICAgIDxwcmU+e3sgcXVlcnkuX2FyZ3VtZW50cyB8IGpzb24gfX08L3ByZT5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXY+XG4gICAgICA8cD5zdGF0ZSQ6PC9wPlxuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlU2hvd1Jlc3BvbnNlKClcIj5TaG93L0hpZGU8L2J1dHRvbj5cbiAgICAgIDxwcmUgKm5nSWY9XCJzaG93UmVzcG9uc2UoKVwiPnt7IHF1ZXJ5LnN0YXRlJCB8IGFzeW5jIHwganNvbiB9fTwvcHJlPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdj5cbiAgICAgIDxwPnJhd1N0YXRlOjwvcD5cbiAgICAgIDxidXR0b24gKGNsaWNrKT1cInRvZ2dsZVNob3dSYXdSZXNwb25zZSgpXCI+U2hvdy9IaWRlPC9idXR0b24+XG4gICAgICA8cHJlICpuZ0lmPVwic2hvd1Jhd1Jlc3BvbnNlKClcIj57eyBxdWVyeS5yYXdTdGF0ZSB8IGpzb24gfX08L3ByZT5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './public-api';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvZGV2dG9vbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './components/public-api';
|
|
2
|
+
export * from './utils/public-api';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi9kZXZ0b29scy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMvcHVibGljLWFwaSc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './public-api';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvZGV2dG9vbHMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './query-client.utils';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi9kZXZ0b29scy91dGlscy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3F1ZXJ5LWNsaWVudC51dGlscyc7XG4iXX0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { InjectionToken, isDevMode } from '@angular/core';
|
|
2
|
+
export const QUERY_CLIENT_DEVTOOLS_TOKEN = new InjectionToken('QUERY_CLIENT_DEVTOOLS_TOKEN');
|
|
3
|
+
export const provideQueryClientForDevtools = (queryClient) => {
|
|
4
|
+
if (!isDevMode()) {
|
|
5
|
+
console.warn('You are using the Query Devtools in production mode. This increases the size of your bundle and should only be used for development purposes.');
|
|
6
|
+
}
|
|
7
|
+
return {
|
|
8
|
+
provide: QUERY_CLIENT_DEVTOOLS_TOKEN,
|
|
9
|
+
useValue: queryClient,
|
|
10
|
+
multi: true,
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY2xpZW50LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL2RldnRvb2xzL3V0aWxzL3F1ZXJ5LWNsaWVudC51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVExRCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLGNBQWMsQ0FDM0QsNkJBQTZCLENBQzlCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxDQUFDLFdBQXVDLEVBQUUsRUFBRTtJQUN2RixJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUU7UUFDaEIsT0FBTyxDQUFDLElBQUksQ0FDViwrSUFBK0ksQ0FDaEosQ0FBQztLQUNIO0lBRUQsT0FBTztRQUNMLE9BQU8sRUFBRSwyQkFBMkI7UUFDcEMsUUFBUSxFQUFFLFdBQVc7UUFDckIsS0FBSyxFQUFFLElBQUk7S0FDWixDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUXVlcnlDbGllbnQgfSBmcm9tICcuLi8uLi9xdWVyeS1jbGllbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5Q2xpZW50RGV2dG9vbHNPcHRpb25zIHtcbiAgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG4gIGNsaWVudDogUXVlcnlDbGllbnQ7XG59XG5cbmV4cG9ydCBjb25zdCBRVUVSWV9DTElFTlRfREVWVE9PTFNfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48UXVlcnlDbGllbnREZXZ0b29sc09wdGlvbnNbXT4oXG4gICdRVUVSWV9DTElFTlRfREVWVE9PTFNfVE9LRU4nLFxuKTtcblxuZXhwb3J0IGNvbnN0IHByb3ZpZGVRdWVyeUNsaWVudEZvckRldnRvb2xzID0gKHF1ZXJ5Q2xpZW50OiBRdWVyeUNsaWVudERldnRvb2xzT3B0aW9ucykgPT4ge1xuICBpZiAoIWlzRGV2TW9kZSgpKSB7XG4gICAgY29uc29sZS53YXJuKFxuICAgICAgJ1lvdSBhcmUgdXNpbmcgdGhlIFF1ZXJ5IERldnRvb2xzIGluIHByb2R1Y3Rpb24gbW9kZS4gVGhpcyBpbmNyZWFzZXMgdGhlIHNpemUgb2YgeW91ciBidW5kbGUgYW5kIHNob3VsZCBvbmx5IGJlIHVzZWQgZm9yIGRldmVsb3BtZW50IHB1cnBvc2VzLicsXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcHJvdmlkZTogUVVFUllfQ0xJRU5UX0RFVlRPT0xTX1RPS0VOLFxuICAgIHVzZVZhbHVlOiBxdWVyeUNsaWVudCxcbiAgICBtdWx0aTogdHJ1ZSxcbiAgfTtcbn07XG4iXX0=
|
|
@@ -2,13 +2,19 @@ import { BehaviorSubjectWithSubscriberCount } from '@ethlete/core';
|
|
|
2
2
|
import { filter, interval, map, of, shareReplay, skip, Subject, switchMap, takeUntil, takeWhile, tap, } from 'rxjs';
|
|
3
3
|
import { isBearerAuthProvider } from '../auth';
|
|
4
4
|
import { request } from '../request';
|
|
5
|
-
import { computeQueryBody, computeQueryHeaders, computeQueryMethod, isGqlQueryConfig, isQueryStateLoading, isQueryStateSuccess, takeUntilResponse, } from './query.utils';
|
|
5
|
+
import { computeQueryBody, computeQueryHeaders, computeQueryMethod, isGqlQueryConfig, isQueryStateLoading, isQueryStatePrepared, isQueryStateSuccess, takeUntilResponse, } from './query.utils';
|
|
6
6
|
export class Query {
|
|
7
7
|
get _nextId() {
|
|
8
8
|
return ++this._currentId;
|
|
9
9
|
}
|
|
10
10
|
get state$() {
|
|
11
|
-
return this._state$.pipe(
|
|
11
|
+
return this._state$.pipe(tap((s) => {
|
|
12
|
+
if (!this._client.config.logging?.preparedQuerySubscriptions)
|
|
13
|
+
return;
|
|
14
|
+
if (isQueryStatePrepared(s)) {
|
|
15
|
+
console.warn(`Query ${this._routeWithParams} was subscribed to in the prepared state. Did you forget to call .execute()?`);
|
|
16
|
+
}
|
|
17
|
+
}), switchMap((s) => this._transformState(s)), shareReplay({ bufferSize: 1, refCount: true }));
|
|
12
18
|
}
|
|
13
19
|
/**
|
|
14
20
|
* The current state of the query.
|
|
@@ -32,6 +38,9 @@ export class Query {
|
|
|
32
38
|
get isInUse() {
|
|
33
39
|
return this._state$.subscriberCount > 0;
|
|
34
40
|
}
|
|
41
|
+
get _subscriberCount() {
|
|
42
|
+
return this._state$.subscriberCount;
|
|
43
|
+
}
|
|
35
44
|
get isPolling() {
|
|
36
45
|
return !!this._pollingSubscription;
|
|
37
46
|
}
|
|
@@ -58,7 +67,11 @@ export class Query {
|
|
|
58
67
|
get store() {
|
|
59
68
|
return this._queryConfig.entity?.store ?? null;
|
|
60
69
|
}
|
|
61
|
-
constructor(_client, _queryConfig,
|
|
70
|
+
constructor(_client, _queryConfig,
|
|
71
|
+
/**
|
|
72
|
+
* @internal
|
|
73
|
+
*/
|
|
74
|
+
_routeWithParams, _args) {
|
|
62
75
|
this._client = _client;
|
|
63
76
|
this._queryConfig = _queryConfig;
|
|
64
77
|
this._routeWithParams = _routeWithParams;
|
|
@@ -244,4 +257,4 @@ export class Query {
|
|
|
244
257
|
.pipe(map((v) => ({ ...s, response: v })));
|
|
245
258
|
}
|
|
246
259
|
}
|
|
247
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvcXVlcnkvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFDTCxNQUFNLEVBQ04sUUFBUSxFQUNSLEdBQUcsRUFFSCxFQUFFLEVBQ0YsV0FBVyxFQUNYLElBQUksRUFDSixPQUFPLEVBRVAsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRy9DLE9BQU8sRUFBa0IsT0FBTyxFQUFnQixNQUFNLFlBQVksQ0FBQztBQWFuRSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE1BQU0sT0FBTyxLQUFLO0lBd0JoQixJQUFZLE9BQU87UUFDakIsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ3RCLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUN6QyxXQUFXLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUMvQyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM1QixD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QUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7WUFDN0QsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFpQyxDQUFDO1NBQzlDO1FBRUQsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRW5GLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNO2FBQzVCLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDMUYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3RXaXRoU3Vic2NyaWJlckNvdW50IH0gZnJvbSAnQGV0aGxldGUvY29yZSc7XG5pbXBvcnQge1xuICBmaWx0ZXIsXG4gIGludGVydmFsLFxuICBtYXAsXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBzaGFyZVJlcGxheSxcbiAgc2tpcCxcbiAgU3ViamVjdCxcbiAgU3Vic2NyaXB0aW9uLFxuICBzd2l0Y2hNYXAsXG4gIHRha2VVbnRpbCxcbiAgdGFrZVdoaWxlLFxuICB0YXAsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgaXNCZWFyZXJBdXRoUHJvdmlkZXIgfSBmcm9tICcuLi9hdXRoJztcbmltcG9ydCB7IEVudGl0eVN0b3JlIH0gZnJvbSAnLi4vZW50aXR5JztcbmltcG9ydCB7IFF1ZXJ5Q2xpZW50IH0gZnJvbSAnLi4vcXVlcnktY2xpZW50JztcbmltcG9ydCB7IEh0dHBTdGF0dXNDb2RlLCByZXF1ZXN0LCBSZXF1ZXN0RXZlbnQgfSBmcm9tICcuLi9yZXF1ZXN0JztcbmltcG9ydCB7XG4gIEJhc2VBcmd1bWVudHMsXG4gIEV4ZWN1dGVRdWVyeU9wdGlvbnMsXG4gIEdxbFF1ZXJ5Q29uZmlnLFxuICBQb2xsQ29uZmlnLFxuICBRdWVyeUF1dG9SZWZyZXNoQ29uZmlnLFxuICBRdWVyeVN0YXRlLFxuICBRdWVyeVN0YXRlTWV0YSxcbiAgUXVlcnlTdGF0ZVR5cGUsXG4gIFJlc3RRdWVyeUNvbmZpZyxcbiAgUm91dGVUeXBlLFxufSBmcm9tICcuL3F1ZXJ5LnR5cGVzJztcbmltcG9ydCB7XG4gIGNvbXB1dGVRdWVyeUJvZHksXG4gIGNvbXB1dGVRdWVyeUhlYWRlcnMsXG4gIGNvbXB1dGVRdWVyeU1ldGhvZCxcbiAgaXNHcWxRdWVyeUNvbmZpZyxcbiAgaXNRdWVyeVN0YXRlTG9hZGluZyxcbiAgaXNRdWVyeVN0YXRlU3VjY2VzcyxcbiAgdGFrZVVudGlsUmVzcG9uc2UsXG59IGZyb20gJy4vcXVlcnkudXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgUXVlcnk8XG4gIFJlc3BvbnNlLFxuICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkLFxuICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+LFxuICBTdG9yZSBleHRlbmRzIEVudGl0eVN0b3JlPHVua25vd24+LFxuICBEYXRhLFxuICBJZCxcbj4ge1xuICBwcml2YXRlIF9jdXJyZW50SWQgPSAwO1xuICBwcml2YXRlIF9wb2xsaW5nU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfcmVxdWVzdFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX29uQWJvcnQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBfY3VycmVudFBvbGxDb25maWc6IFBvbGxDb25maWcgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBfaXNQb2xsaW5nUGF1c2VkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdFdpdGhTdWJzY3JpYmVyQ291bnQ8UXVlcnlTdGF0ZTxSZXNwb25zZT4+KHtcbiAgICB0eXBlOiBRdWVyeVN0YXRlVHlwZS5QcmVwYXJlZCxcbiAgICBtZXRhOiB7IGlkOiB0aGlzLl9jdXJyZW50SWQsIHRyaWdnZXJlZFZpYTogJ3Byb2dyYW0nIH0sXG4gIH0pO1xuXG4gIHByaXZhdGUgZ2V0IF9uZXh0SWQoKSB7XG4gICAgcmV0dXJuICsrdGhpcy5fY3VycmVudElkO1xuICB9XG5cbiAgZ2V0IHN0YXRlJCgpOiBPYnNlcnZhYmxlPFF1ZXJ5U3RhdGU8RGF0YT4+IHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGUkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKHMpID0+IHRoaXMuX3RyYW5zZm9ybVN0YXRlKHMpKSxcbiAgICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgcXVlcnkuXG4gICAqXG4gICAqICoqV2FybmluZyEqKiBUaGlzIGRpZmZlcnMgZnJvbSB0aGUgYHN0YXRlJGAgb2JzZXJ2YWJsZSBpbiB0aGF0IGl0IGRvZXMgbm90IHVzZSB0aGUgcXVlcnkgc3RvcmUuIFRodXMsIHRoZSByZXNwb25zZSBkYXRhIG1pZ2h0IGJlIG91dGRhdGVkLlxuICAgKiBVc2UgYHN0YXRlJGAgKG9yIGBmaXJzdFZhbHVlRnJvbShzdGF0ZSQpYCkgdGhlIG1vc3QgdXAtdG8tZGF0ZSBkYXRhLlxuICAgKi9cbiAgZ2V0IHJhd1N0YXRlKCkge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZSQudmFsdWU7XG4gIH1cblxuICBnZXQgaXNFeHBpcmVkKCkge1xuICAgIGlmICghaXNRdWVyeVN0YXRlU3VjY2Vzcyh0aGlzLl9zdGF0ZSQudmFsdWUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgdHMgPSB0aGlzLl9zdGF0ZSQudmFsdWUubWV0YS5leHBpcmVzQXQ7XG5cbiAgICBpZiAoIXRzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHMgPCBEYXRlLm5vdygpO1xuICB9XG5cbiAgZ2V0IGlzSW5Vc2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlJC5zdWJzY3JpYmVyQ291bnQgPiAwO1xuICB9XG5cbiAgZ2V0IGlzUG9sbGluZygpIHtcbiAgICByZXR1cm4gISF0aGlzLl9wb2xsaW5nU3Vic2NyaXB0aW9uO1xuICB9XG5cbiAgZ2V0IGF1dG9SZWZyZXNoT25Db25maWcoKSB7XG4gICAgY29uc3QgYmFzZSA9IHRoaXMuX3F1ZXJ5Q29uZmlnLmF1dG9SZWZyZXNoT24gPz8ge307XG5cbiAgICBjb25zdCB0cmFuc2Zvcm1lZDogUmVhZG9ubHk8UXVlcnlBdXRvUmVmcmVzaENvbmZpZz4gPSB7XG4gICAgICBxdWVyeUNsaWVudERlZmF1bHRIZWFkZXJzQ2hhbmdlOiBiYXNlLnF1ZXJ5Q2xpZW50RGVmYXVsdEhlYWRlcnNDaGFuZ2UgPz8gdHJ1ZSxcbiAgICAgIHdpbmRvd0ZvY3VzOiBiYXNlLndpbmRvd0ZvY3VzID8/IHRydWUsXG4gICAgfTtcblxuICAgIHJldHVybiB0cmFuc2Zvcm1lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldCBfZW5hYmxlU21hcnRQb2xsaW5nKCkge1xuICAgIHJldHVybiB0aGlzLl9xdWVyeUNvbmZpZy5lbmFibGVTbWFydFBvbGxpbmcgPz8gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldCBfYXJndW1lbnRzKCkge1xuICAgIHJldHVybiB0aGlzLl9hcmdzO1xuICB9XG5cbiAgZ2V0IHN0b3JlKCkge1xuICAgIHJldHVybiB0aGlzLl9xdWVyeUNvbmZpZy5lbnRpdHk/LnN0b3JlID8/IG51bGw7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9jbGllbnQ6IFF1ZXJ5Q2xpZW50LFxuICAgIHByaXZhdGUgX3F1ZXJ5Q29uZmlnOlxuICAgICAgfCBSZXN0UXVlcnlDb25maWc8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFN0b3JlLCBEYXRhLCBJZD5cbiAgICAgIHwgR3FsUXVlcnlDb25maWc8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFN0b3JlLCBEYXRhLCBJZD4sXG4gICAgcHJpdmF0ZSBfcm91dGVXaXRoUGFyYW1zOiBSb3V0ZSxcbiAgICBwcml2YXRlIF9hcmdzOiBBcmd1bWVudHMsXG4gICkge31cblxuICBleGVjdXRlKG9wdGlvbnM6IEV4ZWN1dGVRdWVyeU9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHsgc2tpcENhY2hlID0gZmFsc2UsIF90cmlnZ2VyZWRWaWE6IHRyaWdnZXJlZFZpYSA9ICdwcm9ncmFtJyB9ID0gb3B0aW9ucztcbiAgICBjb25zdCB7IGF1dGhQcm92aWRlciB9ID0gdGhpcy5fY2xpZW50O1xuICAgIGNvbnN0IHF1ZXJ5Q29uZmlnID0gdGhpcy5fcXVlcnlDb25maWc7XG5cbiAgICBpZiAoIXRoaXMuaXNFeHBpcmVkICYmICFza2lwQ2FjaGUgJiYgaXNRdWVyeVN0YXRlU3VjY2Vzcyh0aGlzLnJhd1N0YXRlKSkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgaWYgKHF1ZXJ5Q29uZmlnLnNlY3VyZSAmJiAhYXV0aFByb3ZpZGVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBleGVjdXRlIHNlY3VyZSBxdWVyeSB3aXRob3V0IGF1dGggcHJvdmlkZXInKTtcbiAgICB9XG5cbiAgICBjb25zdCBpZCA9IHRoaXMuX25leHRJZDtcbiAgICBjb25zdCBtZXRhOiBRdWVyeVN0YXRlTWV0YSA9IHsgaWQsIHRyaWdnZXJlZFZpYSB9O1xuXG4gICAgaWYgKGlzUXVlcnlTdGF0ZUxvYWRpbmcodGhpcy5yYXdTdGF0ZSkpIHtcbiAgICAgIHRoaXMuYWJvcnQoKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGF0ZSQubmV4dCh7IHR5cGU6IFF1ZXJ5U3RhdGVUeXBlLkxvYWRpbmcsIG1ldGEgfSk7XG5cbiAgICBjb25zdCBtZXRob2QgPSBjb21wdXRlUXVlcnlNZXRob2QoeyBjb25maWc6IHF1ZXJ5Q29uZmlnLCBjbGllbnQ6IHRoaXMuX2NsaWVudCB9KTtcbiAgICBjb25zdCBib2R5ID0gY29tcHV0ZVF1ZXJ5Qm9keSh7IGNvbmZpZzogcXVlcnlDb25maWcsIGNsaWVudDogdGhpcy5fY2xpZW50LCBhcmdzOiB0aGlzLl9hcmdzLCBtZXRob2QgfSk7XG4gICAgY29uc3QgaGVhZGVycyA9IGNvbXB1dGVRdWVyeUhlYWRlcnMoeyBjbGllbnQ6IHRoaXMuX2NsaWVudCwgY29uZmlnOiBxdWVyeUNvbmZpZywgYXJnczogdGhpcy5fYXJncyB9KTtcblxuICAgIHRoaXMuX3JlcXVlc3RTdWJzY3JpcHRpb24gPSByZXF1ZXN0PFJlc3BvbnNlPih7XG4gICAgICB1cmxXaXRoUGFyYW1zOiB0aGlzLl9yb3V0ZVdpdGhQYXJhbXMsXG4gICAgICBtZXRob2QsXG4gICAgICBib2R5LFxuICAgICAgaGVhZGVycyxcbiAgICAgIHJlcG9ydFByb2dyZXNzOiBxdWVyeUNvbmZpZy5yZXBvcnRQcm9ncmVzcyxcbiAgICAgIHJlc3BvbnNlVHlwZTogcXVlcnlDb25maWcucmVzcG9uc2VUeXBlLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiBxdWVyeUNvbmZpZy53aXRoQ3JlZGVudGlhbHMsXG4gICAgICBjYWNoZUFkYXB0ZXI6IHRoaXMuX2NsaWVudC5jb25maWcucmVxdWVzdD8uY2FjaGVBZGFwdGVyLFxuICAgICAgcmV0cnlGbjogdGhpcy5fY2xpZW50LmNvbmZpZy5yZXF1ZXN0Py5yZXRyeUZuLFxuICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uQWJvcnQkKSxcbiAgICAgICAgdGFwKChzdGF0ZSkgPT4gdGhpcy5fdXBkYXRlRW50aXR5U3RhdGUoc3RhdGUsIG1ldGEsIG9wdGlvbnMpKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgYWJvcnQoKSB7XG4gICAgdGhpcy5fb25BYm9ydCQubmV4dCgpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwb2xsKGNvbmZpZzogUG9sbENvbmZpZykge1xuICAgIGlmICh0aGlzLl9wb2xsaW5nU3Vic2NyaXB0aW9uKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICB0aGlzLl9jdXJyZW50UG9sbENvbmZpZyA9IGNvbmZpZztcblxuICAgIGNvbnN0IGludGVydmFsJCA9IGludGVydmFsKGNvbmZpZy5pbnRlcnZhbCk7XG4gICAgY29uc3QgcG9sbCQgPSBpbnRlcnZhbCQucGlwZShcbiAgICAgIHNraXAoY29uZmlnLnRyaWdnZXJJbW1lZGlhdGVseSA/IDAgOiAxKSxcbiAgICAgIHRha2VVbnRpbChjb25maWcudGFrZVVudGlsKSxcbiAgICAgIHRha2VXaGlsZSgoKSA9PiAhdGhpcy5faXNQb2xsaW5nUGF1c2VkKSxcbiAgICAgIGZpbHRlcigoKSA9PiAhaXNRdWVyeVN0YXRlTG9hZGluZyh0aGlzLl9zdGF0ZSQudmFsdWUpKSxcbiAgICApO1xuXG4gICAgdGhpcy5fcG9sbGluZ1N1YnNjcmlwdGlvbiA9IHBvbGwkLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoKSA9PiB0aGlzLmV4ZWN1dGUoeyBza2lwQ2FjaGU6IHRydWUsIF90cmlnZ2VyZWRWaWE6ICdwb2xsJyB9KSxcbiAgICAgIGNvbXBsZXRlOiAoKSA9PiB0aGlzLnN0b3BQb2xsaW5nKCksXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHN0b3BQb2xsaW5nKCkge1xuICAgIHRoaXMuX3BvbGxpbmdTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5fcG9sbGluZ1N1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgdGhpcy5fY3VycmVudFBvbGxDb25maWcgPSBudWxsO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwYXVzZVBvbGxpbmcoKSB7XG4gICAgdGhpcy5fcG9sbGluZ1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9wb2xsaW5nU3Vic2NyaXB0aW9uID0gbnVsbDtcblxuICAgIHRoaXMuX2lzUG9sbGluZ1BhdXNlZCA9IHRydWU7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHJlc3VtZVBvbGxpbmcoKSB7XG4gICAgaWYgKCF0aGlzLl9pc1BvbGxpbmdQYXVzZWQgfHwgIXRoaXMuX2N1cnJlbnRQb2xsQ29uZmlnKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICB0aGlzLl9pc1BvbGxpbmdQYXVzZWQgPSBmYWxzZTtcblxuICAgIHJldHVybiB0aGlzLnBvbGwoeyAuLi50aGlzLl9jdXJyZW50UG9sbENvbmZpZywgdHJpZ2dlckltbWVkaWF0ZWx5OiB0cnVlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgX2Rlc3Ryb3koKSB7XG4gICAgdGhpcy5fc3RhdGUkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fb25BYm9ydCQuY29tcGxldGUoKTtcbiAgICB0aGlzLl9wb2xsaW5nU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX3JlcXVlc3RTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRCZWFyZXJBdXRoUHJvdmlkZXIoKSB7XG4gICAgY29uc3QgYXV0aFByb3ZpZGVyID0gdGhpcy5fY2xpZW50LmF1dGhQcm92aWRlcjtcblxuICAgIGlmIChhdXRoUHJvdmlkZXIgJiYgaXNCZWFyZXJBdXRoUHJvdmlkZXIoYXV0aFByb3ZpZGVyKSkge1xuICAgICAgcmV0dXJuIGF1dGhQcm92aWRlcjtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUVudGl0eVN0YXRlKFxuICAgIHJlcXVlc3RFdmVudDogUmVxdWVzdEV2ZW50PFJlc3BvbnNlPixcbiAgICBtZXRhOiBRdWVyeVN0YXRlTWV0YSxcbiAgICBvcHRpb25zPzogRXhlY3V0ZVF1ZXJ5T3B0aW9ucyxcbiAgKSB7XG4gICAgc3dpdGNoIChyZXF1ZXN0RXZlbnQudHlwZSkge1xuICAgICAgY2FzZSAnc3RhcnQnOlxuICAgICAgY2FzZSAnZGVsYXktcmV0cnknOiB7XG4gICAgICAgIGNvbnN0IHsgdHlwZSwgcmV0cnlEZWxheSwgcmV0cnlOdW1iZXIgfSA9IHJlcXVlc3RFdmVudDtcbiAgICAgICAgY29uc3QgbmV3TWV0YTogUXVlcnlTdGF0ZU1ldGEgPSB7IC4uLm1ldGEsIGlzV2FpdGluZ0ZvclJldHJ5OiB0eXBlID09PSAnZGVsYXktcmV0cnknLCByZXRyeURlbGF5LCByZXRyeU51bWJlciB9O1xuXG4gICAgICAgIHRoaXMuX3N0YXRlJC5uZXh0KHtcbiAgICAgICAgICB0eXBlOiBRdWVyeVN0YXRlVHlwZS5Mb2FkaW5nLFxuICAgICAgICAgIG1ldGE6IG5ld01ldGEsXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSAndXBsb2FkLXByb2dyZXNzJzpcbiAgICAgIGNhc2UgJ2Rvd25sb2FkLXByb2dyZXNzJzoge1xuICAgICAgICB0aGlzLl9zdGF0ZSQubmV4dCh7XG4gICAgICAgICAgdHlwZTogUXVlcnlTdGF0ZVR5cGUuTG9hZGluZyxcbiAgICAgICAgICBwcm9ncmVzczogcmVxdWVzdEV2ZW50LnByb2dyZXNzLFxuICAgICAgICAgIHBhcnRpYWxUZXh0OiAncGFydGlhbFRleHQnIGluIHJlcXVlc3RFdmVudCA/IHJlcXVlc3RFdmVudC5wYXJ0aWFsVGV4dCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBtZXRhLFxuICAgICAgICB9KTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSAnc3VjY2Vzcyc6IHtcbiAgICAgICAgY29uc3QgeyByZXNwb25zZSwgZXhwaXJlc0luVGltZXN0YW1wIH0gPSByZXF1ZXN0RXZlbnQ7XG4gICAgICAgIGNvbnN0IGlzR3FsID0gaXNHcWxRdWVyeUNvbmZpZyh0aGlzLl9xdWVyeUNvbmZpZyk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlRGF0YSA9XG4gICAgICAgICAgaXNHcWwgJiYgdHlwZW9mIHJlc3BvbnNlID09PSAnb2JqZWN0JyAmJiAhIXJlc3BvbnNlICYmICdkYXRhJyBpbiByZXNwb25zZVxuICAgICAgICAgICAgPyAocmVzcG9uc2VbJ2RhdGEnXSBhcyBSZXNwb25zZSlcbiAgICAgICAgICAgIDogKHJlc3BvbnNlIGFzIFJlc3BvbnNlKTtcblxuICAgICAgICBpZiAodGhpcy5fcXVlcnlDb25maWcuZW50aXR5ICYmIHRoaXMuX3F1ZXJ5Q29uZmlnLmVudGl0eS5zZXQpIHtcbiAgICAgICAgICBjb25zdCBpZCA9IHRoaXMuX3F1ZXJ5Q29uZmlnLmVudGl0eT8uaWQoeyBhcmdzOiB0aGlzLl9hcmdzLCByZXNwb25zZTogcmVzcG9uc2VEYXRhIH0pO1xuXG4gICAgICAgICAgdGhpcy5fcXVlcnlDb25maWcuZW50aXR5Py5zZXQoe1xuICAgICAgICAgICAgYXJnczogdGhpcy5fYXJncyxcbiAgICAgICAgICAgIHJlc3BvbnNlOiByZXNwb25zZURhdGEsXG4gICAgICAgICAgICBpZCxcbiAgICAgICAgICAgIHN0b3JlOiB0aGlzLl9xdWVyeUNvbmZpZy5lbnRpdHkuc3RvcmUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zdGF0ZSQubmV4dCh7XG4gICAgICAgICAgdHlwZTogUXVlcnlTdGF0ZVR5cGUuU3VjY2VzcyxcbiAgICAgICAgICByZXNwb25zZTogcmVzcG9uc2VEYXRhLFxuICAgICAgICAgIG1ldGE6IHsgLi4ubWV0YSwgZXhwaXJlc0F0OiBleHBpcmVzSW5UaW1lc3RhbXAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ2ZhaWx1cmUnOiB7XG4gICAgICAgIGNvbnN0IHsgZXJyb3IgfSA9IHJlcXVlc3RFdmVudDtcbiAgICAgICAgY29uc3QgZmFpbHVyZSA9ICgpID0+IHRoaXMuX3N0YXRlJC5uZXh0KHsgdHlwZTogUXVlcnlTdGF0ZVR5cGUuRmFpbHVyZSwgZXJyb3IsIG1ldGEgfSk7XG4gICAgICAgIGNvbnN0IGJlYXJlckF1dGhQcm92aWRlciA9IHRoaXMuX2dldEJlYXJlckF1dGhQcm92aWRlcigpO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAhYmVhcmVyQXV0aFByb3ZpZGVyIHx8XG4gICAgICAgICAgb3B0aW9ucz8uX2lzVW5hdXRob3JpemVkUmV0cnkgfHxcbiAgICAgICAgICBlcnJvci5zdGF0dXMgIT09IEh0dHBTdGF0dXNDb2RlLlVuYXV0aG9yaXplZCB8fFxuICAgICAgICAgICFiZWFyZXJBdXRoUHJvdmlkZXIuc2hvdWxkUmVmcmVzaE9uVW5hdXRob3JpemVkUmVzcG9uc2VcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIGZhaWx1cmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gYmVhcmVyQXV0aFByb3ZpZGVyLl9yZWZyZXNoUXVlcnkoKTtcbiAgICAgICAgaWYgKCFxdWVyeSkgcmV0dXJuIGZhaWx1cmUoKTtcblxuICAgICAgICBxdWVyeS5zdGF0ZSRcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbFJlc3BvbnNlKCksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25BYm9ydCQpLFxuICAgICAgICAgICAgdGFwKChzdGF0ZSkgPT5cbiAgICAgICAgICAgICAgaXNRdWVyeVN0YXRlU3VjY2VzcyhzdGF0ZSkgPyB0aGlzLmV4ZWN1dGUoeyAuLi5vcHRpb25zLCBfaXNVbmF1dGhvcml6ZWRSZXRyeTogdHJ1ZSB9KSA6IGZhaWx1cmUoKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSAnY2FuY2VsJzoge1xuICAgICAgICB0aGlzLl9zdGF0ZSQubmV4dCh7XG4gICAgICAgICAgdHlwZTogUXVlcnlTdGF0ZVR5cGUuQ2FuY2VsbGVkLFxuICAgICAgICAgIG1ldGEsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3RyYW5zZm9ybVN0YXRlKHM6IFF1ZXJ5U3RhdGU8UmVzcG9uc2U+KTogT2JzZXJ2YWJsZTxRdWVyeVN0YXRlPERhdGE+PiB7XG4gICAgaWYgKCFpc1F1ZXJ5U3RhdGVTdWNjZXNzKHMpIHx8ICF0aGlzLl9xdWVyeUNvbmZpZy5lbnRpdHk/LmdldCkge1xuICAgICAgcmV0dXJuIG9mKHMpIGFzIE9ic2VydmFibGU8UXVlcnlTdGF0ZTxEYXRhPj47XG4gICAgfVxuXG4gICAgY29uc3QgaWQgPSB0aGlzLl9xdWVyeUNvbmZpZy5lbnRpdHkuaWQoeyBhcmdzOiB0aGlzLl9hcmdzLCByZXNwb25zZTogcy5yZXNwb25zZSB9KTtcblxuICAgIHJldHVybiB0aGlzLl9xdWVyeUNvbmZpZy5lbnRpdHlcbiAgICAgIC5nZXQoeyBhcmdzOiB0aGlzLl9hcmdzLCBpZCwgcmVzcG9uc2U6IHMucmVzcG9uc2UsIHN0b3JlOiB0aGlzLl9xdWVyeUNvbmZpZy5lbnRpdHkuc3RvcmUgfSlcbiAgICAgIC5waXBlKG1hcCgodikgPT4gKHsgLi4ucywgcmVzcG9uc2U6IHYgfSkpKTtcbiAgfVxufVxuIl19
|
|
260
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvcXVlcnkvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFDTCxNQUFNLEVBQ04sUUFBUSxFQUNSLEdBQUcsRUFFSCxFQUFFLEVBQ0YsV0FBVyxFQUNYLElBQUksRUFDSixPQUFPLEVBRVAsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRy9DLE9BQU8sRUFBa0IsT0FBTyxFQUFnQixNQUFNLFlBQVksQ0FBQztBQWFuRSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixNQUFNLE9BQU8sS0FBSztJQXdCaEIsSUFBWSxPQUFPO1FBQ2pCLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUN0QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsMEJBQTBCO2dCQUFFLE9BQU87WUFFckUsSUFBSSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDM0IsT0FBTyxDQUFDLElBQUksQ0FDVixTQUFTLElBQUksQ0FBQyxnQkFBZ0IsOEVBQThFLENBQzdHLENBQUM7YUFDSDtRQUNILENB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dWJzY3JpYmVyQ291bnQgfSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7XG4gIGZpbHRlcixcbiAgaW50ZXJ2YWwsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHNoYXJlUmVwbGF5LFxuICBza2lwLFxuICBTdWJqZWN0LFxuICBTdWJzY3JpcHRpb24sXG4gIHN3aXRjaE1hcCxcbiAgdGFrZVVudGlsLFxuICB0YWtlV2hpbGUsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpc0JlYXJlckF1dGhQcm92aWRlciB9IGZyb20gJy4uL2F1dGgnO1xuaW1wb3J0IHsgRW50aXR5U3RvcmUgfSBmcm9tICcuLi9lbnRpdHknO1xuaW1wb3J0IHsgUXVlcnlDbGllbnQgfSBmcm9tICcuLi9xdWVyeS1jbGllbnQnO1xuaW1wb3J0IHsgSHR0cFN0YXR1c0NvZGUsIHJlcXVlc3QsIFJlcXVlc3RFdmVudCB9IGZyb20gJy4uL3JlcXVlc3QnO1xuaW1wb3J0IHtcbiAgQmFzZUFyZ3VtZW50cyxcbiAgRXhlY3V0ZVF1ZXJ5T3B0aW9ucyxcbiAgR3FsUXVlcnlDb25maWcsXG4gIFBvbGxDb25maWcsXG4gIFF1ZXJ5QXV0b1JlZnJlc2hDb25maWcsXG4gIFF1ZXJ5U3RhdGUsXG4gIFF1ZXJ5U3RhdGVNZXRhLFxuICBRdWVyeVN0YXRlVHlwZSxcbiAgUmVzdFF1ZXJ5Q29uZmlnLFxuICBSb3V0ZVR5cGUsXG59IGZyb20gJy4vcXVlcnkudHlwZXMnO1xuaW1wb3J0IHtcbiAgY29tcHV0ZVF1ZXJ5Qm9keSxcbiAgY29tcHV0ZVF1ZXJ5SGVhZGVycyxcbiAgY29tcHV0ZVF1ZXJ5TWV0aG9kLFxuICBpc0dxbFF1ZXJ5Q29uZmlnLFxuICBpc1F1ZXJ5U3RhdGVMb2FkaW5nLFxuICBpc1F1ZXJ5U3RhdGVQcmVwYXJlZCxcbiAgaXNRdWVyeVN0YXRlU3VjY2VzcyxcbiAgdGFrZVVudGlsUmVzcG9uc2UsXG59IGZyb20gJy4vcXVlcnkudXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgUXVlcnk8XG4gIFJlc3BvbnNlLFxuICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkLFxuICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+LFxuICBTdG9yZSBleHRlbmRzIEVudGl0eVN0b3JlPHVua25vd24+LFxuICBEYXRhLFxuICBJZCxcbj4ge1xuICBwcml2YXRlIF9jdXJyZW50SWQgPSAwO1xuICBwcml2YXRlIF9wb2xsaW5nU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfcmVxdWVzdFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX29uQWJvcnQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBfY3VycmVudFBvbGxDb25maWc6IFBvbGxDb25maWcgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBfaXNQb2xsaW5nUGF1c2VkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdFdpdGhTdWJzY3JpYmVyQ291bnQ8UXVlcnlTdGF0ZTxSZXNwb25zZT4+KHtcbiAgICB0eXBlOiBRdWVyeVN0YXRlVHlwZS5QcmVwYXJlZCxcbiAgICBtZXRhOiB7IGlkOiB0aGlzLl9jdXJyZW50SWQsIHRyaWdnZXJlZFZpYTogJ3Byb2dyYW0nIH0sXG4gIH0pO1xuXG4gIHByaXZhdGUgZ2V0IF9uZXh0SWQoKSB7XG4gICAgcmV0dXJuICsrdGhpcy5fY3VycmVudElkO1xuICB9XG5cbiAgZ2V0IHN0YXRlJCgpOiBPYnNlcnZhYmxlPFF1ZXJ5U3RhdGU8RGF0YT4+IHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGUkLnBpcGUoXG4gICAgICB0YXAoKHMpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLl9jbGllbnQuY29uZmlnLmxvZ2dpbmc/LnByZXBhcmVkUXVlcnlTdWJzY3JpcHRpb25zKSByZXR1cm47XG5cbiAgICAgICAgaWYgKGlzUXVlcnlTdGF0ZVByZXBhcmVkKHMpKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYFF1ZXJ5ICR7dGhpcy5fcm91dGVXaXRoUGFyYW1zfSB3YXMgc3Vic2NyaWJlZCB0byBpbiB0aGUgcHJlcGFyZWQgc3RhdGUuIERpZCB5b3UgZm9yZ2V0IHRvIGNhbGwgLmV4ZWN1dGUoKT9gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKChzKSA9PiB0aGlzLl90cmFuc2Zvcm1TdGF0ZShzKSksXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHF1ZXJ5LlxuICAgKlxuICAgKiAqKldhcm5pbmchKiogVGhpcyBkaWZmZXJzIGZyb20gdGhlIGBzdGF0ZSRgIG9ic2VydmFibGUgaW4gdGhhdCBpdCBkb2VzIG5vdCB1c2UgdGhlIHF1ZXJ5IHN0b3JlLiBUaHVzLCB0aGUgcmVzcG9uc2UgZGF0YSBtaWdodCBiZSBvdXRkYXRlZC5cbiAgICogVXNlIGBzdGF0ZSRgIChvciBgZmlyc3RWYWx1ZUZyb20oc3RhdGUkKWApIHRoZSBtb3N0IHVwLXRvLWRhdGUgZGF0YS5cbiAgICovXG4gIGdldCByYXdTdGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGUkLnZhbHVlO1xuICB9XG5cbiAgZ2V0IGlzRXhwaXJlZCgpIHtcbiAgICBpZiAoIWlzUXVlcnlTdGF0ZVN1Y2Nlc3ModGhpcy5fc3RhdGUkLnZhbHVlKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHRzID0gdGhpcy5fc3RhdGUkLnZhbHVlLm1ldGEuZXhwaXJlc0F0O1xuXG4gICAgaWYgKCF0cykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRzIDwgRGF0ZS5ub3coKTtcbiAgfVxuXG4gIGdldCBpc0luVXNlKCkge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZSQuc3Vic2NyaWJlckNvdW50ID4gMDtcbiAgfVxuXG4gIGdldCBfc3Vic2NyaWJlckNvdW50KCkge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZSQuc3Vic2NyaWJlckNvdW50O1xuICB9XG5cbiAgZ2V0IGlzUG9sbGluZygpIHtcbiAgICByZXR1cm4gISF0aGlzLl9wb2xsaW5nU3Vic2NyaXB0aW9uO1xuICB9XG5cbiAgZ2V0IGF1dG9SZWZyZXNoT25Db25maWcoKSB7XG4gICAgY29uc3QgYmFzZSA9IHRoaXMuX3F1ZXJ5Q29uZmlnLmF1dG9SZWZyZXNoT24gPz8ge307XG5cbiAgICBjb25zdCB0cmFuc2Zvcm1lZDogUmVhZG9ubHk8UXVlcnlBdXRvUmVmcmVzaENvbmZpZz4gPSB7XG4gICAgICBxdWVyeUNsaWVudERlZmF1bHRIZWFkZXJzQ2hhbmdlOiBiYXNlLnF1ZXJ5Q2xpZW50RGVmYXVsdEhlYWRlcnNDaGFuZ2UgPz8gdHJ1ZSxcbiAgICAgIHdpbmRvd0ZvY3VzOiBiYXNlLndpbmRvd0ZvY3VzID8/IHRydWUsXG4gICAgfTtcblxuICAgIHJldHVybiB0cmFuc2Zvcm1lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldCBfZW5hYmxlU21hcnRQb2xsaW5nKCkge1xuICAgIHJldHVybiB0aGlzLl9xdWVyeUNvbmZpZy5lbmFibGVTbWFydFBvbGxpbmcgPz8gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldCBfYXJndW1lbnRzKCkge1xuICAgIHJldHVybiB0aGlzLl9hcmdzO1xuICB9XG5cbiAgZ2V0IHN0b3JlKCkge1xuICAgIHJldHVybiB0aGlzLl9xdWVyeUNvbmZpZy5lbnRpdHk/LnN0b3JlID8/IG51bGw7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9jbGllbnQ6IFF1ZXJ5Q2xpZW50LFxuICAgIHByaXZhdGUgX3F1ZXJ5Q29uZmlnOlxuICAgICAgfCBSZXN0UXVlcnlDb25maWc8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFN0b3JlLCBEYXRhLCBJZD5cbiAgICAgIHwgR3FsUXVlcnlDb25maWc8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFN0b3JlLCBEYXRhLCBJZD4sXG5cbiAgICAvKipcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgX3JvdXRlV2l0aFBhcmFtczogUm91dGUsXG4gICAgcHJpdmF0ZSBfYXJnczogQXJndW1lbnRzLFxuICApIHt9XG5cbiAgZXhlY3V0ZShvcHRpb25zOiBFeGVjdXRlUXVlcnlPcHRpb25zID0ge30pIHtcbiAgICBjb25zdCB7IHNraXBDYWNoZSA9IGZhbHNlLCBfdHJpZ2dlcmVkVmlhOiB0cmlnZ2VyZWRWaWEgPSAncHJvZ3JhbScgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgeyBhdXRoUHJvdmlkZXIgfSA9IHRoaXMuX2NsaWVudDtcbiAgICBjb25zdCBxdWVyeUNvbmZpZyA9IHRoaXMuX3F1ZXJ5Q29uZmlnO1xuXG4gICAgaWYgKCF0aGlzLmlzRXhwaXJlZCAmJiAhc2tpcENhY2hlICYmIGlzUXVlcnlTdGF0ZVN1Y2Nlc3ModGhpcy5yYXdTdGF0ZSkpIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGlmIChxdWVyeUNvbmZpZy5zZWN1cmUgJiYgIWF1dGhQcm92aWRlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZXhlY3V0ZSBzZWN1cmUgcXVlcnkgd2l0aG91dCBhdXRoIHByb3ZpZGVyJyk7XG4gICAgfVxuXG4gICAgY29uc3QgaWQgPSB0aGlzLl9uZXh0SWQ7XG4gICAgY29uc3QgbWV0YTogUXVlcnlTdGF0ZU1ldGEgPSB7IGlkLCB0cmlnZ2VyZWRWaWEgfTtcblxuICAgIGlmIChpc1F1ZXJ5U3RhdGVMb2FkaW5nKHRoaXMucmF3U3RhdGUpKSB7XG4gICAgICB0aGlzLmFib3J0KCk7XG4gICAgfVxuXG4gICAgdGhpcy5fc3RhdGUkLm5leHQoeyB0eXBlOiBRdWVyeVN0YXRlVHlwZS5Mb2FkaW5nLCBtZXRhIH0pO1xuXG4gICAgY29uc3QgbWV0aG9kID0gY29tcHV0ZVF1ZXJ5TWV0aG9kKHsgY29uZmlnOiBxdWVyeUNvbmZpZywgY2xpZW50OiB0aGlzLl9jbGllbnQgfSk7XG4gICAgY29uc3QgYm9keSA9IGNvbXB1dGVRdWVyeUJvZHkoeyBjb25maWc6IHF1ZXJ5Q29uZmlnLCBjbGllbnQ6IHRoaXMuX2NsaWVudCwgYXJnczogdGhpcy5fYXJncywgbWV0aG9kIH0pO1xuICAgIGNvbnN0IGhlYWRlcnMgPSBjb21wdXRlUXVlcnlIZWFkZXJzKHsgY2xpZW50OiB0aGlzLl9jbGllbnQsIGNvbmZpZzogcXVlcnlDb25maWcsIGFyZ3M6IHRoaXMuX2FyZ3MgfSk7XG5cbiAgICB0aGlzLl9yZXF1ZXN0U3Vic2NyaXB0aW9uID0gcmVxdWVzdDxSZXNwb25zZT4oe1xuICAgICAgdXJsV2l0aFBhcmFtczogdGhpcy5fcm91dGVXaXRoUGFyYW1zLFxuICAgICAgbWV0aG9kLFxuICAgICAgYm9keSxcbiAgICAgIGhlYWRlcnMsXG4gICAgICByZXBvcnRQcm9ncmVzczogcXVlcnlDb25maWcucmVwb3J0UHJvZ3Jlc3MsXG4gICAgICByZXNwb25zZVR5cGU6IHF1ZXJ5Q29uZmlnLnJlc3BvbnNlVHlwZSxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogcXVlcnlDb25maWcud2l0aENyZWRlbnRpYWxzLFxuICAgICAgY2FjaGVBZGFwdGVyOiB0aGlzLl9jbGllbnQuY29uZmlnLnJlcXVlc3Q/LmNhY2hlQWRhcHRlcixcbiAgICAgIHJldHJ5Rm46IHRoaXMuX2NsaWVudC5jb25maWcucmVxdWVzdD8ucmV0cnlGbixcbiAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkFib3J0JCksXG4gICAgICAgIHRhcCgoc3RhdGUpID0+IHRoaXMuX3VwZGF0ZUVudGl0eVN0YXRlKHN0YXRlLCBtZXRhLCBvcHRpb25zKSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGFib3J0KCkge1xuICAgIHRoaXMuX29uQWJvcnQkLm5leHQoKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcG9sbChjb25maWc6IFBvbGxDb25maWcpIHtcbiAgICBpZiAodGhpcy5fcG9sbGluZ1N1YnNjcmlwdGlvbikge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgdGhpcy5fY3VycmVudFBvbGxDb25maWcgPSBjb25maWc7XG5cbiAgICBjb25zdCBpbnRlcnZhbCQgPSBpbnRlcnZhbChjb25maWcuaW50ZXJ2YWwpO1xuICAgIGNvbnN0IHBvbGwkID0gaW50ZXJ2YWwkLnBpcGUoXG4gICAgICBza2lwKGNvbmZpZy50cmlnZ2VySW1tZWRpYXRlbHkgPyAwIDogMSksXG4gICAgICB0YWtlVW50aWwoY29uZmlnLnRha2VVbnRpbCksXG4gICAgICB0YWtlV2hpbGUoKCkgPT4gIXRoaXMuX2lzUG9sbGluZ1BhdXNlZCksXG4gICAgICBmaWx0ZXIoKCkgPT4gIWlzUXVlcnlTdGF0ZUxvYWRpbmcodGhpcy5fc3RhdGUkLnZhbHVlKSksXG4gICAgKTtcblxuICAgIHRoaXMuX3BvbGxpbmdTdWJzY3JpcHRpb24gPSBwb2xsJC5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKCkgPT4gdGhpcy5leGVjdXRlKHsgc2tpcENhY2hlOiB0cnVlLCBfdHJpZ2dlcmVkVmlhOiAncG9sbCcgfSksXG4gICAgICBjb21wbGV0ZTogKCkgPT4gdGhpcy5zdG9wUG9sbGluZygpLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzdG9wUG9sbGluZygpIHtcbiAgICB0aGlzLl9wb2xsaW5nU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX3BvbGxpbmdTdWJzY3JpcHRpb24gPSBudWxsO1xuICAgIHRoaXMuX2N1cnJlbnRQb2xsQ29uZmlnID0gbnVsbDtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcGF1c2VQb2xsaW5nKCkge1xuICAgIHRoaXMuX3BvbGxpbmdTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5fcG9sbGluZ1N1YnNjcmlwdGlvbiA9IG51bGw7XG5cbiAgICB0aGlzLl9pc1BvbGxpbmdQYXVzZWQgPSB0cnVlO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICByZXN1bWVQb2xsaW5nKCkge1xuICAgIGlmICghdGhpcy5faXNQb2xsaW5nUGF1c2VkIHx8ICF0aGlzLl9jdXJyZW50UG9sbENvbmZpZykge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgdGhpcy5faXNQb2xsaW5nUGF1c2VkID0gZmFsc2U7XG5cbiAgICByZXR1cm4gdGhpcy5wb2xsKHsgLi4udGhpcy5fY3VycmVudFBvbGxDb25maWcsIHRyaWdnZXJJbW1lZGlhdGVseTogdHJ1ZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIF9kZXN0cm95KCkge1xuICAgIHRoaXMuX3N0YXRlJC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX29uQWJvcnQkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fcG9sbGluZ1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9yZXF1ZXN0U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QmVhcmVyQXV0aFByb3ZpZGVyKCkge1xuICAgIGNvbnN0IGF1dGhQcm92aWRlciA9IHRoaXMuX2NsaWVudC5hdXRoUHJvdmlkZXI7XG5cbiAgICBpZiAoYXV0aFByb3ZpZGVyICYmIGlzQmVhcmVyQXV0aFByb3ZpZGVyKGF1dGhQcm92aWRlcikpIHtcbiAgICAgIHJldHVybiBhdXRoUHJvdmlkZXI7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVFbnRpdHlTdGF0ZShcbiAgICByZXF1ZXN0RXZlbnQ6IFJlcXVlc3RFdmVudDxSZXNwb25zZT4sXG4gICAgbWV0YTogUXVlcnlTdGF0ZU1ldGEsXG4gICAgb3B0aW9ucz86IEV4ZWN1dGVRdWVyeU9wdGlvbnMsXG4gICkge1xuICAgIHN3aXRjaCAocmVxdWVzdEV2ZW50LnR5cGUpIHtcbiAgICAgIGNhc2UgJ3N0YXJ0JzpcbiAgICAgIGNhc2UgJ2RlbGF5LXJldHJ5Jzoge1xuICAgICAgICBjb25zdCB7IHR5cGUsIHJldHJ5RGVsYXksIHJldHJ5TnVtYmVyIH0gPSByZXF1ZXN0RXZlbnQ7XG4gICAgICAgIGNvbnN0IG5ld01ldGE6IFF1ZXJ5U3RhdGVNZXRhID0geyAuLi5tZXRhLCBpc1dhaXRpbmdGb3JSZXRyeTogdHlwZSA9PT0gJ2RlbGF5LXJldHJ5JywgcmV0cnlEZWxheSwgcmV0cnlOdW1iZXIgfTtcblxuICAgICAgICB0aGlzLl9zdGF0ZSQubmV4dCh7XG4gICAgICAgICAgdHlwZTogUXVlcnlTdGF0ZVR5cGUuTG9hZGluZyxcbiAgICAgICAgICBtZXRhOiBuZXdNZXRhLFxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3VwbG9hZC1wcm9ncmVzcyc6XG4gICAgICBjYXNlICdkb3dubG9hZC1wcm9ncmVzcyc6IHtcbiAgICAgICAgdGhpcy5fc3RhdGUkLm5leHQoe1xuICAgICAgICAgIHR5cGU6IFF1ZXJ5U3RhdGVUeXBlLkxvYWRpbmcsXG4gICAgICAgICAgcHJvZ3Jlc3M6IHJlcXVlc3RFdmVudC5wcm9ncmVzcyxcbiAgICAgICAgICBwYXJ0aWFsVGV4dDogJ3BhcnRpYWxUZXh0JyBpbiByZXF1ZXN0RXZlbnQgPyByZXF1ZXN0RXZlbnQucGFydGlhbFRleHQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgbWV0YSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3N1Y2Nlc3MnOiB7XG4gICAgICAgIGNvbnN0IHsgcmVzcG9uc2UsIGV4cGlyZXNJblRpbWVzdGFtcCB9ID0gcmVxdWVzdEV2ZW50O1xuICAgICAgICBjb25zdCBpc0dxbCA9IGlzR3FsUXVlcnlDb25maWcodGhpcy5fcXVlcnlDb25maWcpO1xuICAgICAgICBjb25zdCByZXNwb25zZURhdGEgPVxuICAgICAgICAgIGlzR3FsICYmIHR5cGVvZiByZXNwb25zZSA9PT0gJ29iamVjdCcgJiYgISFyZXNwb25zZSAmJiAnZGF0YScgaW4gcmVzcG9uc2VcbiAgICAgICAgICAgID8gKHJlc3BvbnNlWydkYXRhJ10gYXMgUmVzcG9uc2UpXG4gICAgICAgICAgICA6IChyZXNwb25zZSBhcyBSZXNwb25zZSk7XG5cbiAgICAgICAgaWYgKHRoaXMuX3F1ZXJ5Q29uZmlnLmVudGl0eSAmJiB0aGlzLl9xdWVyeUNvbmZpZy5lbnRpdHkuc2V0KSB7XG4gICAgICAgICAgY29uc3QgaWQgPSB0aGlzLl9xdWVyeUNvbmZpZy5lbnRpdHk/LmlkKHsgYXJnczogdGhpcy5fYXJncywgcmVzcG9uc2U6IHJlc3BvbnNlRGF0YSB9KTtcblxuICAgICAgICAgIHRoaXMuX3F1ZXJ5Q29uZmlnLmVudGl0eT8uc2V0KHtcbiAgICAgICAgICAgIGFyZ3M6IHRoaXMuX2FyZ3MsXG4gICAgICAgICAgICByZXNwb25zZTogcmVzcG9uc2VEYXRhLFxuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBzdG9yZTogdGhpcy5fcXVlcnlDb25maWcuZW50aXR5LnN0b3JlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc3RhdGUkLm5leHQoe1xuICAgICAgICAgIHR5cGU6IFF1ZXJ5U3RhdGVUeXBlLlN1Y2Nlc3MsXG4gICAgICAgICAgcmVzcG9uc2U6IHJlc3BvbnNlRGF0YSxcbiAgICAgICAgICBtZXRhOiB7IC4uLm1ldGEsIGV4cGlyZXNBdDogZXhwaXJlc0luVGltZXN0YW1wIH0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlICdmYWlsdXJlJzoge1xuICAgICAgICBjb25zdCB7IGVycm9yIH0gPSByZXF1ZXN0RXZlbnQ7XG4gICAgICAgIGNvbnN0IGZhaWx1cmUgPSAoKSA9PiB0aGlzLl9zdGF0ZSQubmV4dCh7IHR5cGU6IFF1ZXJ5U3RhdGVUeXBlLkZhaWx1cmUsIGVycm9yLCBtZXRhIH0pO1xuICAgICAgICBjb25zdCBiZWFyZXJBdXRoUHJvdmlkZXIgPSB0aGlzLl9nZXRCZWFyZXJBdXRoUHJvdmlkZXIoKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgIWJlYXJlckF1dGhQcm92aWRlciB8fFxuICAgICAgICAgIG9wdGlvbnM/Ll9pc1VuYXV0aG9yaXplZFJldHJ5IHx8XG4gICAgICAgICAgZXJyb3Iuc3RhdHVzICE9PSBIdHRwU3RhdHVzQ29kZS5VbmF1dGhvcml6ZWQgfHxcbiAgICAgICAgICAhYmVhcmVyQXV0aFByb3ZpZGVyLnNob3VsZFJlZnJlc2hPblVuYXV0aG9yaXplZFJlc3BvbnNlXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiBmYWlsdXJlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBxdWVyeSA9IGJlYXJlckF1dGhQcm92aWRlci5fcmVmcmVzaFF1ZXJ5KCk7XG4gICAgICAgIGlmICghcXVlcnkpIHJldHVybiBmYWlsdXJlKCk7XG5cbiAgICAgICAgcXVlcnkuc3RhdGUkXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWxSZXNwb25zZSgpLFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uQWJvcnQkKSxcbiAgICAgICAgICAgIHRhcCgoc3RhdGUpID0+XG4gICAgICAgICAgICAgIGlzUXVlcnlTdGF0ZVN1Y2Nlc3Moc3RhdGUpID8gdGhpcy5leGVjdXRlKHsgLi4ub3B0aW9ucywgX2lzVW5hdXRob3JpemVkUmV0cnk6IHRydWUgfSkgOiBmYWlsdXJlKCksXG4gICAgICAgICAgICApLFxuICAgICAgICAgIClcbiAgICAgICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ2NhbmNlbCc6IHtcbiAgICAgICAgdGhpcy5fc3RhdGUkLm5leHQoe1xuICAgICAgICAgIHR5cGU6IFF1ZXJ5U3RhdGVUeXBlLkNhbmNlbGxlZCxcbiAgICAgICAgICBtZXRhLFxuICAgICAgICB9KTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF90cmFuc2Zvcm1TdGF0ZShzOiBRdWVyeVN0YXRlPFJlc3BvbnNlPik6IE9ic2VydmFibGU8UXVlcnlTdGF0ZTxEYXRhPj4ge1xuICAgIGlmICghaXNRdWVyeVN0YXRlU3VjY2VzcyhzKSB8fCAhdGhpcy5fcXVlcnlDb25maWcuZW50aXR5Py5nZXQpIHtcbiAgICAgIHJldHVybiBvZihzKSBhcyBPYnNlcnZhYmxlPFF1ZXJ5U3RhdGU8RGF0YT4+O1xuICAgIH1cblxuICAgIGNvbnN0IGlkID0gdGhpcy5fcXVlcnlDb25maWcuZW50aXR5LmlkKHsgYXJnczogdGhpcy5fYXJncywgcmVzcG9uc2U6IHMucmVzcG9uc2UgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5fcXVlcnlDb25maWcuZW50aXR5XG4gICAgICAuZ2V0KHsgYXJnczogdGhpcy5fYXJncywgaWQsIHJlc3BvbnNlOiBzLnJlc3BvbnNlLCBzdG9yZTogdGhpcy5fcXVlcnlDb25maWcuZW50aXR5LnN0b3JlIH0pXG4gICAgICAucGlwZShtYXAoKHYpID0+ICh7IC4uLnMsIHJlc3BvbnNlOiB2IH0pKSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -74,4 +74,4 @@ export class QueryClient {
|
|
|
74
74
|
});
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL3F1ZXJ5LWNsaWVudC9xdWVyeS1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVd2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTVDLE1BQU0sT0FBTyxXQUFXO0lBR3RCLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUM7SUFDeEcsQ0FBQztJQUNELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsWUFBWSxFQUFFLElBQUksSUFBSSxDQUFDO0lBQ2hILENBQUM7SUFHRCxZQUFvQixhQUFnQztRQUFoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBbUI7UUFGbkMsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBc0IsSUFBSSxDQUFDLENBQUM7UUFXakYsUUFBRyxHQUFHLENBUUosV0FBa0YsRUFDbEYsRUFBRSxDQUNGLElBQUksQ0FBQyxLQUFLLENBQThDO1lBQ3RELEdBQUcsV0FBVztZQUNkLE1BQU0sRUFBRSxLQUFLO1NBQ2QsQ0FBQyxDQUFDO1FBRUwsU0FBSSxHQUFHLENBUUwsV0FBa0YsRUFDbEYsRUFBRSxDQUNGLElBQUksQ0FBQyxLQUFLLENB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XG5pbXBvcnQgeyBBdXRoUHJvdmlkZXIgfSBmcm9tICcuLi9hdXRoJztcbmltcG9ydCB7IEVudGl0eVN0b3JlIH0gZnJvbSAnLi4vZW50aXR5JztcbmltcG9ydCB7XG4gIEJhc2VBcmd1bWVudHMsXG4gIEdxbFF1ZXJ5Q29uZmlnLFxuICBHcWxRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2QsXG4gIFF1ZXJ5Q29uZmlnV2l0aG91dE1ldGhvZCxcbiAgUmVzdFF1ZXJ5Q29uZmlnLFxuICBSb3V0ZVR5cGUsXG59IGZyb20gJy4uL3F1ZXJ5JztcbmltcG9ydCB7IFF1ZXJ5Q3JlYXRvciB9IGZyb20gJy4uL3F1ZXJ5LWNyZWF0b3InO1xuaW1wb3J0IHsgUXVlcnlTdG9yZSB9IGZyb20gJy4uL3F1ZXJ5LXN0b3JlJztcbmltcG9ydCB7IFJlcXVlc3RIZWFkZXJzLCBSZXF1ZXN0SGVhZGVyc01ldGhvZE1hcCB9IGZyb20gJy4uL3JlcXVlc3QnO1xuaW1wb3J0IHsgUXVlcnlDbGllbnRDb25maWcgfSBmcm9tICcuL3F1ZXJ5LWNsaWVudC50eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBRdWVyeUNsaWVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0b3JlOiBRdWVyeVN0b3JlO1xuXG4gIGdldCBjb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NsaWVudENvbmZpZztcbiAgfVxuXG4gIGdldCBhdXRoUHJvdmlkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2F1dGhQcm92aWRlciQuZ2V0VmFsdWUoKSA/PyB0aGlzLl9jbGllbnRDb25maWcucGFyZW50Py5fYXV0aFByb3ZpZGVyJC5nZXRWYWx1ZSgpID8/IG51bGw7XG4gIH1cbiAgZ2V0IGF1dGhQcm92aWRlciQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2F1dGhQcm92aWRlciQuYXNPYnNlcnZhYmxlKCkgPz8gdGhpcy5fY2xpZW50Q29uZmlnLnBhcmVudD8uX2F1dGhQcm92aWRlciQuYXNPYnNlcnZhYmxlKCkgPz8gbnVsbDtcbiAgfVxuICBwcml2YXRlIHJlYWRvbmx5IF9hdXRoUHJvdmlkZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoUHJvdmlkZXIgfCBudWxsPihudWxsKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jbGllbnRDb25maWc6IFF1ZXJ5Q2xpZW50Q29uZmlnKSB7XG4gICAgdGhpcy5fc3RvcmUgPSBuZXcgUXVlcnlTdG9yZSh7XG4gICAgICBlbmFibGVDaGFuZ2VMb2dnaW5nOiBfY2xpZW50Q29uZmlnLmxvZ2dpbmc/LnF1ZXJ5U3RhdGVDaGFuZ2VzLFxuICAgICAgZW5hYmxlR2FyYmFnZUNvbGxlY3RvckxvZ2dpbmc6IF9jbGllbnRDb25maWcubG9nZ2luZz8ucXVlcnlTdGF0ZUdhcmJhZ2VDb2xsZWN0b3IsXG4gICAgICBhdXRvUmVmcmVzaFF1ZXJpZXNPbldpbmRvd0ZvY3VzOiBfY2xpZW50Q29uZmlnLnJlcXVlc3Q/LmF1dG9SZWZyZXNoUXVlcmllc09uV2luZG93Rm9jdXMgPz8gdHJ1ZSxcbiAgICAgIGVuYWJsZVNtYXJ0UG9sbGluZzogX2NsaWVudENvbmZpZy5yZXF1ZXN0Py5lbmFibGVTbWFydFBvbGxpbmcgPz8gdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCA9IDxcbiAgICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+LFxuICAgIFJlc3BvbnNlLFxuICAgIElkLFxuICAgIERhdGEgPSBSZXNwb25zZSxcbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgIFN0b3JlIGV4dGVuZHMgRW50aXR5U3RvcmU8dW5rbm93bj4gPSBFbnRpdHlTdG9yZTx1bmtub3duPixcbiAgPihcbiAgICBxdWVyeUNvbmZpZzogUXVlcnlDb25maWdXaXRob3V0TWV0aG9kPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBTdG9yZSwgRGF0YSwgSWQ+LFxuICApID0+XG4gICAgdGhpcy5mZXRjaDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgSWQsIFN0b3JlLCBEYXRhPih7XG4gICAgICAuLi5xdWVyeUNvbmZpZyxcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgfSk7XG5cbiAgcG9zdCA9IDxcbiAgICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+LFxuICAgIFJlc3BvbnNlLFxuICAgIElkLFxuICAgIERhdGEgPSBSZXNwb25zZSxcbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgIFN0b3JlIGV4dGVuZHMgRW50aXR5U3RvcmU8dW5rbm93bj4gPSBFbnRpdHlTdG9yZTx1bmtub3duPixcbiAgPihcbiAgICBxdWVyeUNvbmZpZzogUXVlcnlDb25maWdXaXRob3V0TWV0aG9kPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBTdG9yZSwgRGF0YSwgSWQ+LFxuICApID0+XG4gICAgdGhpcy5mZXRjaDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgSWQsIFN0b3JlLCBEYXRhPih7XG4gICAgICAuLi5xdWVyeUNvbmZpZyxcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIH0pO1xuXG4gIHB1dCA9IDxcbiAgICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+LFxuICAgIFJlc3BvbnNlLFxuICAgIElkLFxuICAgIERhdGEgPSBSZXNwb25zZSxcbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgIFN0b3JlIGV4dGVuZHMgRW50aXR5U3RvcmU8dW5rbm93bj4gPSBFbnRpdHlTdG9yZTx1bmtub3duPixcbiAgPihcbiAgICBxdWVyeUNvbmZpZzogUXVlcnlDb25maWdXaXRob3V0TWV0aG9kPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBTdG9yZSwgRGF0YSwgSWQ+LFxuICApID0+XG4gICAgdGhpcy5mZXRjaDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgSWQsIFN0b3JlLCBEYXRhPih7XG4gICAgICAuLi5xdWVyeUNvbmZpZyxcbiAgICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgfSk7XG5cbiAgcGF0Y2ggPSA8XG4gICAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPixcbiAgICBSZXNwb25zZSxcbiAgICBJZCxcbiAgICBEYXRhID0gUmVzcG9uc2UsXG4gICAgQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgICBTdG9yZSBleHRlbmRzIEVudGl0eVN0b3JlPHVua25vd24+ID0gRW50aXR5U3RvcmU8dW5rbm93bj4sXG4gID4oXG4gICAgcXVlcnlDb25maWc6IFF1ZXJ5Q29uZmlnV2l0aG91dE1ldGhvZDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgU3RvcmUsIERhdGEsIElkPixcbiAgKSA9PlxuICAgIHRoaXMuZmV0Y2g8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIElkLCBTdG9yZSwgRGF0YT4oe1xuICAgICAgLi4ucXVlcnlDb25maWcsXG4gICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgfSk7XG5cbiAgZGVsZXRlID0gPFxuICAgIFJvdXRlIGV4dGVuZHMgUm91dGVUeXBlPEFyZ3VtZW50cz4sXG4gICAgUmVzcG9uc2UsXG4gICAgSWQsXG4gICAgRGF0YSA9IFJlc3BvbnNlLFxuICAgIEFyZ3VtZW50cyBleHRlbmRzIEJhc2VBcmd1bWVudHMgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gICAgU3RvcmUgZXh0ZW5kcyBFbnRpdHlTdG9yZTx1bmtub3duPiA9IEVudGl0eVN0b3JlPHVua25vd24+LFxuICA+KFxuICAgIHF1ZXJ5Q29uZmlnOiBRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2Q8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFN0b3JlLCBEYXRhLCBJZD4sXG4gICkgPT5cbiAgICB0aGlzLmZldGNoPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBJZCwgU3RvcmUsIERhdGE+KHtcbiAgICAgIC4uLnF1ZXJ5Q29uZmlnLFxuICAgICAgbWV0aG9kOiAnREVMRVRFJyxcbiAgICB9KTtcblxuICBncWxRdWVyeSA9IDxcbiAgICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+LFxuICAgIFJlc3BvbnNlLFxuICAgIElkLFxuICAgIERhdGEgPSBSZXNwb25zZSxcbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgIFN0b3JlIGV4dGVuZHMgRW50aXR5U3RvcmU8dW5rbm93bj4gPSBFbnRpdHlTdG9yZTx1bmtub3duPixcbiAgPihcbiAgICBxdWVyeUNvbmZpZzogR3FsUXVlcnlDb25maWdXaXRob3V0TWV0aG9kPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBTdG9yZSwgRGF0YSwgSWQ+LFxuICApID0+XG4gICAgdGhpcy5mZXRjaDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgSWQsIFN0b3JlLCBEYXRhPih7XG4gICAgICAuLi5xdWVyeUNvbmZpZyxcbiAgICAgIG1ldGhvZDogJ0dRTF9RVUVSWScsXG4gICAgfSk7XG5cbiAgZ3FsTXV0YXRlID0gPFxuICAgIFJvdXRlIGV4dGVuZHMgUm91dGVUeXBlPEFyZ3VtZW50cz4sXG4gICAgUmVzcG9uc2UsXG4gICAgSWQsXG4gICAgRGF0YSA9IFJlc3BvbnNlLFxuICAgIEFyZ3VtZW50cyBleHRlbmRzIEJhc2VBcmd1bWVudHMgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gICAgU3RvcmUgZXh0ZW5kcyBFbnRpdHlTdG9yZTx1bmtub3duPiA9IEVudGl0eVN0b3JlPHVua25vd24+LFxuICA+KFxuICAgIHF1ZXJ5Q29uZmlnOiBHcWxRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2Q8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFN0b3JlLCBEYXRhLCBJZD4sXG4gICkgPT5cbiAgICB0aGlzLmZldGNoPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBJZCwgU3RvcmUsIERhdGE+KHtcbiAgICAgIC4uLnF1ZXJ5Q29uZmlnLFxuICAgICAgbWV0aG9kOiAnR1FMX01VVEFURScsXG4gICAgfSk7XG5cbiAgZmV0Y2ggPSA8XG4gICAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPixcbiAgICBSZXNwb25zZSxcbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkLFxuICAgIElkLFxuICAgIFN0b3JlIGV4dGVuZHMgRW50aXR5U3RvcmU8dW5rbm93bj4gPSBFbnRpdHlTdG9yZTx1bmtub3duPixcbiAgICBEYXRhID0gUmVzcG9uc2UsXG4gID4oXG4gICAgcXVlcnlDb25maWc6XG4gICAgICB8IFJlc3RRdWVyeUNvbmZpZzxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgU3RvcmUsIERhdGEsIElkPlxuICAgICAgfCBHcWxRdWVyeUNvbmZpZzxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgU3RvcmUsIERhdGEsIElkPixcbiAgKSA9PiBuZXcgUXVlcnlDcmVhdG9yPEFyZ3VtZW50cywgUmVzcG9uc2UsIFJvdXRlLCBTdG9yZSwgRGF0YSwgSWQ+KHF1ZXJ5Q29uZmlnLCB0aGlzLCB0aGlzLl9zdG9yZSk7XG5cbiAgc2V0QXV0aFByb3ZpZGVyID0gKGF1dGhQcm92aWRlcjogQXV0aFByb3ZpZGVyKSA9PiB7XG4gICAgaWYgKHRoaXMuYXV0aFByb3ZpZGVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBhdXRoIHByb3ZpZGVyIGlzIGFscmVhZHkgc2V0LiBQbGVhc2UgY2FsbCBjbGVhckF1dGhQcm92aWRlcigpIGZpcnN0LicpO1xuICAgIH1cblxuICAgIHRoaXMuX2F1dGhQcm92aWRlciQubmV4dChhdXRoUHJvdmlkZXIpO1xuICB9O1xuXG4gIHNldERlZmF1bHRIZWFkZXJzID0gKGNvbmZpZzoge1xuICAgIGhlYWRlcnM6IFJlcXVlc3RIZWFkZXJzIHwgUmVxdWVzdEhlYWRlcnNNZXRob2RNYXAgfCBudWxsO1xuICAgIHJlZnJlc2hRdWVyaWVzSW5Vc2U/OiBib29sZWFuO1xuICB9KSA9PiB7XG4gICAgaWYgKCF0aGlzLl9jbGllbnRDb25maWcucmVxdWVzdCkge1xuICAgICAgdGhpcy5fY2xpZW50Q29uZmlnLnJlcXVlc3QgPSB7XG4gICAgICAgIGhlYWRlcnM6IGNvbmZpZy5oZWFkZXJzID8/IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2NsaWVudENvbmZpZy5yZXF1ZXN0LmhlYWRlcnMgPSBjb25maWcuaGVhZGVycyA/PyB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5yZWZyZXNoUXVlcmllc0luVXNlKSB7XG4gICAgICB0aGlzLl9zdG9yZS5yZWZyZXNoUXVlcmllc0luVXNlKHsgcHVyZ2VVbnVzZWQ6IHRydWUsIGlnbm9yZUNhY2hlVmFsaWRpdHk6IHRydWUgfSk7XG4gICAgfVxuICB9O1xuXG4gIGNsZWFyQXV0aFByb3ZpZGVyID0gKCkgPT4ge1xuICAgIHRoaXMuYXV0aFByb3ZpZGVyPy5jbGVhblVwKCk7XG4gICAgdGhpcy5fYXV0aFByb3ZpZGVyJC5uZXh0KG51bGwpO1xuICB9O1xufVxuIl19
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL3F1ZXJ5LWNsaWVudC9xdWVyeS1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVd2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTVDLE1BQU0sT0FBTyxXQUFXO0lBTXRCLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUM7SUFDeEcsQ0FBQztJQUNELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsWUFBWSxFQUFFLElBQUksSUFBSSxDQUFDO0lBQ2hILENBQUM7SUFHRCxZQUFvQixhQUFnQztRQUFoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBbUI7UUFGbkMsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBc0IsSUFBSSxDQUFDLENBQUM7UUFXakYsUUFBRyxHQUFHLENBUUosV0FBa0YsRUFDbEYsRUFBRSxDQUNGLElBQUksQ0FBQyxLQUFLLENBQThDO1lBQ3RELEdBQUcsV0FBVztZQUNkLE1BQU0sRUFBRSxLQUFLO1NBQ2QsQ0FBQyxDQUFDO1FBRUwsU0FBSSxHQUFHLENBUUwsV0FBa0YsRUFDbEYsRUFBRSxDQUNGLElBQUksQ0FBQyxLQUFLLENB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XG5pbXBvcnQgeyBBdXRoUHJvdmlkZXIgfSBmcm9tICcuLi9hdXRoJztcbmltcG9ydCB7IEVudGl0eVN0b3JlIH0gZnJvbSAnLi4vZW50aXR5JztcbmltcG9ydCB7XG4gIEJhc2VBcmd1bWVudHMsXG4gIEdxbFF1ZXJ5Q29uZmlnLFxuICBHcWxRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2QsXG4gIFF1ZXJ5Q29uZmlnV2l0aG91dE1ldGhvZCxcbiAgUmVzdFF1ZXJ5Q29uZmlnLFxuICBSb3V0ZVR5cGUsXG59IGZyb20gJy4uL3F1ZXJ5JztcbmltcG9ydCB7IFF1ZXJ5Q3JlYXRvciB9IGZyb20gJy4uL3F1ZXJ5LWNyZWF0b3InO1xuaW1wb3J0IHsgUXVlcnlTdG9yZSB9IGZyb20gJy4uL3F1ZXJ5LXN0b3JlJztcbmltcG9ydCB7IFJlcXVlc3RIZWFkZXJzLCBSZXF1ZXN0SGVhZGVyc01ldGhvZE1hcCB9IGZyb20gJy4uL3JlcXVlc3QnO1xuaW1wb3J0IHsgUXVlcnlDbGllbnRDb25maWcgfSBmcm9tICcuL3F1ZXJ5LWNsaWVudC50eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBRdWVyeUNsaWVudCB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHJlYWRvbmx5IF9zdG9yZTogUXVlcnlTdG9yZTtcblxuICBnZXQgY29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLl9jbGllbnRDb25maWc7XG4gIH1cblxuICBnZXQgYXV0aFByb3ZpZGVyKCkge1xuICAgIHJldHVybiB0aGlzLl9hdXRoUHJvdmlkZXIkLmdldFZhbHVlKCkgPz8gdGhpcy5fY2xpZW50Q29uZmlnLnBhcmVudD8uX2F1dGhQcm92aWRlciQuZ2V0VmFsdWUoKSA/PyBudWxsO1xuICB9XG4gIGdldCBhdXRoUHJvdmlkZXIkKCkge1xuICAgIHJldHVybiB0aGlzLl9hdXRoUHJvdmlkZXIkLmFzT2JzZXJ2YWJsZSgpID8/IHRoaXMuX2NsaWVudENvbmZpZy5wYXJlbnQ/Ll9hdXRoUHJvdmlkZXIkLmFzT2JzZXJ2YWJsZSgpID8/IG51bGw7XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfYXV0aFByb3ZpZGVyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFByb3ZpZGVyIHwgbnVsbD4obnVsbCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfY2xpZW50Q29uZmlnOiBRdWVyeUNsaWVudENvbmZpZykge1xuICAgIHRoaXMuX3N0b3JlID0gbmV3IFF1ZXJ5U3RvcmUoe1xuICAgICAgZW5hYmxlQ2hhbmdlTG9nZ2luZzogX2NsaWVudENvbmZpZy5sb2dnaW5nPy5xdWVyeVN0YXRlQ2hhbmdlcyxcbiAgICAgIGVuYWJsZUdhcmJhZ2VDb2xsZWN0b3JMb2dnaW5nOiBfY2xpZW50Q29uZmlnLmxvZ2dpbmc/LnF1ZXJ5U3RhdGVHYXJiYWdlQ29sbGVjdG9yLFxuICAgICAgYXV0b1JlZnJlc2hRdWVyaWVzT25XaW5kb3dGb2N1czogX2NsaWVudENvbmZpZy5yZXF1ZXN0Py5hdXRvUmVmcmVzaFF1ZXJpZXNPbldpbmRvd0ZvY3VzID8/IHRydWUsXG4gICAgICBlbmFibGVTbWFydFBvbGxpbmc6IF9jbGllbnRDb25maWcucmVxdWVzdD8uZW5hYmxlU21hcnRQb2xsaW5nID8/IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBnZXQgPSA8XG4gICAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPixcbiAgICBSZXNwb25zZSxcbiAgICBJZCxcbiAgICBEYXRhID0gUmVzcG9uc2UsXG4gICAgQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgICBTdG9yZSBleHRlbmRzIEVudGl0eVN0b3JlPHVua25vd24+ID0gRW50aXR5U3RvcmU8dW5rbm93bj4sXG4gID4oXG4gICAgcXVlcnlDb25maWc6IFF1ZXJ5Q29uZmlnV2l0aG91dE1ldGhvZDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgU3RvcmUsIERhdGEsIElkPixcbiAgKSA9PlxuICAgIHRoaXMuZmV0Y2g8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIElkLCBTdG9yZSwgRGF0YT4oe1xuICAgICAgLi4ucXVlcnlDb25maWcsXG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgIH0pO1xuXG4gIHBvc3QgPSA8XG4gICAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPixcbiAgICBSZXNwb25zZSxcbiAgICBJZCxcbiAgICBEYXRhID0gUmVzcG9uc2UsXG4gICAgQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgICBTdG9yZSBleHRlbmRzIEVudGl0eVN0b3JlPHVua25vd24+ID0gRW50aXR5U3RvcmU8dW5rbm93bj4sXG4gID4oXG4gICAgcXVlcnlDb25maWc6IFF1ZXJ5Q29uZmlnV2l0aG91dE1ldGhvZDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgU3RvcmUsIERhdGEsIElkPixcbiAgKSA9PlxuICAgIHRoaXMuZmV0Y2g8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIElkLCBTdG9yZSwgRGF0YT4oe1xuICAgICAgLi4ucXVlcnlDb25maWcsXG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICB9KTtcblxuICBwdXQgPSA8XG4gICAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPixcbiAgICBSZXNwb25zZSxcbiAgICBJZCxcbiAgICBEYXRhID0gUmVzcG9uc2UsXG4gICAgQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgICBTdG9yZSBleHRlbmRzIEVudGl0eVN0b3JlPHVua25vd24+ID0gRW50aXR5U3RvcmU8dW5rbm93bj4sXG4gID4oXG4gICAgcXVlcnlDb25maWc6IFF1ZXJ5Q29uZmlnV2l0aG91dE1ldGhvZDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgU3RvcmUsIERhdGEsIElkPixcbiAgKSA9PlxuICAgIHRoaXMuZmV0Y2g8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIElkLCBTdG9yZSwgRGF0YT4oe1xuICAgICAgLi4ucXVlcnlDb25maWcsXG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgIH0pO1xuXG4gIHBhdGNoID0gPFxuICAgIFJvdXRlIGV4dGVuZHMgUm91dGVUeXBlPEFyZ3VtZW50cz4sXG4gICAgUmVzcG9uc2UsXG4gICAgSWQsXG4gICAgRGF0YSA9IFJlc3BvbnNlLFxuICAgIEFyZ3VtZW50cyBleHRlbmRzIEJhc2VBcmd1bWVudHMgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gICAgU3RvcmUgZXh0ZW5kcyBFbnRpdHlTdG9yZTx1bmtub3duPiA9IEVudGl0eVN0b3JlPHVua25vd24+LFxuICA+KFxuICAgIHF1ZXJ5Q29uZmlnOiBRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2Q8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFN0b3JlLCBEYXRhLCBJZD4sXG4gICkgPT5cbiAgICB0aGlzLmZldGNoPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBJZCwgU3RvcmUsIERhdGE+KHtcbiAgICAgIC4uLnF1ZXJ5Q29uZmlnLFxuICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxuICAgIH0pO1xuXG4gIGRlbGV0ZSA9IDxcbiAgICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+LFxuICAgIFJlc3BvbnNlLFxuICAgIElkLFxuICAgIERhdGEgPSBSZXNwb25zZSxcbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgIFN0b3JlIGV4dGVuZHMgRW50aXR5U3RvcmU8dW5rbm93bj4gPSBFbnRpdHlTdG9yZTx1bmtub3duPixcbiAgPihcbiAgICBxdWVyeUNvbmZpZzogUXVlcnlDb25maWdXaXRob3V0TWV0aG9kPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBTdG9yZSwgRGF0YSwgSWQ+LFxuICApID0+XG4gICAgdGhpcy5mZXRjaDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgSWQsIFN0b3JlLCBEYXRhPih7XG4gICAgICAuLi5xdWVyeUNvbmZpZyxcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgfSk7XG5cbiAgZ3FsUXVlcnkgPSA8XG4gICAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPixcbiAgICBSZXNwb25zZSxcbiAgICBJZCxcbiAgICBEYXRhID0gUmVzcG9uc2UsXG4gICAgQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgICBTdG9yZSBleHRlbmRzIEVudGl0eVN0b3JlPHVua25vd24+ID0gRW50aXR5U3RvcmU8dW5rbm93bj4sXG4gID4oXG4gICAgcXVlcnlDb25maWc6IEdxbFF1ZXJ5Q29uZmlnV2l0aG91dE1ldGhvZDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgU3RvcmUsIERhdGEsIElkPixcbiAgKSA9PlxuICAgIHRoaXMuZmV0Y2g8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIElkLCBTdG9yZSwgRGF0YT4oe1xuICAgICAgLi4ucXVlcnlDb25maWcsXG4gICAgICBtZXRob2Q6ICdHUUxfUVVFUlknLFxuICAgIH0pO1xuXG4gIGdxbE11dGF0ZSA9IDxcbiAgICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+LFxuICAgIFJlc3BvbnNlLFxuICAgIElkLFxuICAgIERhdGEgPSBSZXNwb25zZSxcbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgIFN0b3JlIGV4dGVuZHMgRW50aXR5U3RvcmU8dW5rbm93bj4gPSBFbnRpdHlTdG9yZTx1bmtub3duPixcbiAgPihcbiAgICBxdWVyeUNvbmZpZzogR3FsUXVlcnlDb25maWdXaXRob3V0TWV0aG9kPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBTdG9yZSwgRGF0YSwgSWQ+LFxuICApID0+XG4gICAgdGhpcy5mZXRjaDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgSWQsIFN0b3JlLCBEYXRhPih7XG4gICAgICAuLi5xdWVyeUNvbmZpZyxcbiAgICAgIG1ldGhvZDogJ0dRTF9NVVRBVEUnLFxuICAgIH0pO1xuXG4gIGZldGNoID0gPFxuICAgIFJvdXRlIGV4dGVuZHMgUm91dGVUeXBlPEFyZ3VtZW50cz4sXG4gICAgUmVzcG9uc2UsXG4gICAgQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZCxcbiAgICBJZCxcbiAgICBTdG9yZSBleHRlbmRzIEVudGl0eVN0b3JlPHVua25vd24+ID0gRW50aXR5U3RvcmU8dW5rbm93bj4sXG4gICAgRGF0YSA9IFJlc3BvbnNlLFxuICA+KFxuICAgIHF1ZXJ5Q29uZmlnOlxuICAgICAgfCBSZXN0UXVlcnlDb25maWc8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFN0b3JlLCBEYXRhLCBJZD5cbiAgICAgIHwgR3FsUXVlcnlDb25maWc8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFN0b3JlLCBEYXRhLCBJZD4sXG4gICkgPT4gbmV3IFF1ZXJ5Q3JlYXRvcjxBcmd1bWVudHMsIFJlc3BvbnNlLCBSb3V0ZSwgU3RvcmUsIERhdGEsIElkPihxdWVyeUNvbmZpZywgdGhpcywgdGhpcy5fc3RvcmUpO1xuXG4gIHNldEF1dGhQcm92aWRlciA9IChhdXRoUHJvdmlkZXI6IEF1dGhQcm92aWRlcikgPT4ge1xuICAgIGlmICh0aGlzLmF1dGhQcm92aWRlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgYXV0aCBwcm92aWRlciBpcyBhbHJlYWR5IHNldC4gUGxlYXNlIGNhbGwgY2xlYXJBdXRoUHJvdmlkZXIoKSBmaXJzdC4nKTtcbiAgICB9XG5cbiAgICB0aGlzLl9hdXRoUHJvdmlkZXIkLm5leHQoYXV0aFByb3ZpZGVyKTtcbiAgfTtcblxuICBzZXREZWZhdWx0SGVhZGVycyA9IChjb25maWc6IHtcbiAgICBoZWFkZXJzOiBSZXF1ZXN0SGVhZGVycyB8IFJlcXVlc3RIZWFkZXJzTWV0aG9kTWFwIHwgbnVsbDtcbiAgICByZWZyZXNoUXVlcmllc0luVXNlPzogYm9vbGVhbjtcbiAgfSkgPT4ge1xuICAgIGlmICghdGhpcy5fY2xpZW50Q29uZmlnLnJlcXVlc3QpIHtcbiAgICAgIHRoaXMuX2NsaWVudENvbmZpZy5yZXF1ZXN0ID0ge1xuICAgICAgICBoZWFkZXJzOiBjb25maWcuaGVhZGVycyA/PyB1bmRlZmluZWQsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9jbGllbnRDb25maWcucmVxdWVzdC5oZWFkZXJzID0gY29uZmlnLmhlYWRlcnMgPz8gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmIChjb25maWcucmVmcmVzaFF1ZXJpZXNJblVzZSkge1xuICAgICAgdGhpcy5fc3RvcmUucmVmcmVzaFF1ZXJpZXNJblVzZSh7IHB1cmdlVW51c2VkOiB0cnVlLCBpZ25vcmVDYWNoZVZhbGlkaXR5OiB0cnVlIH0pO1xuICAgIH1cbiAgfTtcblxuICBjbGVhckF1dGhQcm92aWRlciA9ICgpID0+IHtcbiAgICB0aGlzLmF1dGhQcm92aWRlcj8uY2xlYW5VcCgpO1xuICAgIHRoaXMuX2F1dGhQcm92aWRlciQubmV4dChudWxsKTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY2xpZW50LnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL3F1ZXJ5LWNsaWVudC9xdWVyeS1jbGllbnQudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEdxbFRyYW5zZmVyT3B0aW9uIH0gZnJvbSAnLi4vcXVlcnkvcXVlcnkudHlwZXMnO1xuaW1wb3J0IHtcbiAgQnVpbGRRdWVyeVN0cmluZ0NvbmZpZyxcbiAgQ2FjaGVBZGFwdGVyRm4sXG4gIFJlcXVlc3RIZWFkZXJzLFxuICBSZXF1ZXN0SGVhZGVyc01ldGhvZE1hcCxcbiAgUmVxdWVzdFJldHJ5Rm4sXG59IGZyb20gJy4uL3JlcXVlc3QnO1xuaW1wb3J0IHsgUXVlcnlDbGllbnQgfSBmcm9tICcuL3F1ZXJ5LWNsaWVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlDbGllbnRDb25maWcge1xuICAvKipcbiAgICogVGhlIGFwaSBiYXNlIHJvdXRlLlxuICAgKiBAZXhhbXBsZSAnaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20nXG4gICAqL1xuICBiYXNlUm91dGU6IGBodHRwczovLyR7c3RyaW5nfWAgfCBgaHR0cDovL2xvY2FsaG9zdDoke3N0cmluZ31gO1xuXG4gIC8qKlxuICAgKiBMb2dnaW5nIGNvbmZpZ3VyYXRpb24gZm9yIGRlYnVnZ2luZy5cbiAgICovXG4gIGxvZ2dpbmc/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY2xpZW50LnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL3F1ZXJ5LWNsaWVudC9xdWVyeS1jbGllbnQudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEdxbFRyYW5zZmVyT3B0aW9uIH0gZnJvbSAnLi4vcXVlcnkvcXVlcnkudHlwZXMnO1xuaW1wb3J0IHtcbiAgQnVpbGRRdWVyeVN0cmluZ0NvbmZpZyxcbiAgQ2FjaGVBZGFwdGVyRm4sXG4gIFJlcXVlc3RIZWFkZXJzLFxuICBSZXF1ZXN0SGVhZGVyc01ldGhvZE1hcCxcbiAgUmVxdWVzdFJldHJ5Rm4sXG59IGZyb20gJy4uL3JlcXVlc3QnO1xuaW1wb3J0IHsgUXVlcnlDbGllbnQgfSBmcm9tICcuL3F1ZXJ5LWNsaWVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlDbGllbnRDb25maWcge1xuICAvKipcbiAgICogVGhlIGFwaSBiYXNlIHJvdXRlLlxuICAgKiBAZXhhbXBsZSAnaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20nXG4gICAqL1xuICBiYXNlUm91dGU6IGBodHRwczovLyR7c3RyaW5nfWAgfCBgaHR0cDovL2xvY2FsaG9zdDoke3N0cmluZ31gO1xuXG4gIC8qKlxuICAgKiBMb2dnaW5nIGNvbmZpZ3VyYXRpb24gZm9yIGRlYnVnZ2luZy5cbiAgICovXG4gIGxvZ2dpbmc/OiB7XG4gICAgLyoqXG4gICAgICogTG9nIGFsbCBxdWVyeSBzdGF0ZSBjaGFuZ2VzLlxuICAgICAqL1xuICAgIHF1ZXJ5U3RhdGVDaGFuZ2VzPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIExvZyBxdWVyeSBzdGF0ZSBnYXJiYWdlIGNvbGxlY3RvciBydW5zLlxuICAgICAqL1xuICAgIHF1ZXJ5U3RhdGVHYXJiYWdlQ29sbGVjdG9yPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIExvZyBpZiBzdWJzY3JpcHRpb25zIGFyZSBtYWRlIHRvIHF1ZXJpZXMgdGhhdCBhcmUgaW4gdGhlIGBwcmVwYXJlZGAgc3RhdGUuXG4gICAgICogVGhpcyB1c3VhbGx5IGluZGljYXRlcyB0aGF0IHRoZSBgLmV4ZWN1dGUoKWAgbWV0aG9kIHdhcyBmb3Jnb3R0ZW4uXG4gICAgICovXG4gICAgcHJlcGFyZWRRdWVyeVN1YnNjcmlwdGlvbnM/OiBib29sZWFuO1xuICB9O1xuXG4gIC8qKlxuICAgKiBSZXF1ZXN0IG9wdGlvbnMuXG4gICAqL1xuICByZXF1ZXN0Pzoge1xuICAgIC8qKlxuICAgICAqIEFkYXB0ZXIgZnVuY3Rpb24gdXNlZCBmb3IgZXh0cmFjdGluZyB0aGUgdGltZSB1bnRpbCB0aGUgcmVzcG9uc2UgaXMgaW52YWxpZC5cbiAgICAgKiBUaGUgZGVmYXVsdCB1c2VzIHRoZSBgY2FjaGUtY29udHJvbGAgKGBtYXgtYWdlYCAmIGBzLW1heGFnZWApLCBgYWdlYCBhbmQgYGV4cGlyZXNgIGhlYWRlcnMuXG4gICAgICogU2hvdWxkIHJldHVybiBhIG51bWJlciBpbiBzZWNvbmRzLlxuICAgICAqL1xuICAgIGNhY2hlQWRhcHRlcj86IENhY2hlQWRhcHRlckZuO1xuXG4gICAgLyoqXG4gICAgICogRGVmYXVsdCBoZWFkZXJzIHRvIGJlIHNlbnQgd2l0aCBldmVyeSByZXF1ZXN0LlxuICAgICAqIFdpbGwgYmUgb3ZlcnJpZGRlbiBieSBoZWFkZXJzIHBhc3NlZCB0byB0aGUgcXVlcnkuXG4gICAgICogRG8gbm90IGluY2x1ZGUgdGhlIGBBdXRob3JpemF0aW9uYCBoZWFkZXIgaGVyZS4gVXNlIGFuIGBBdXRoUHJvdmlkZXJgIGluc3RlYWQuXG4gICAgICovXG4gICAgaGVhZGVycz86IFJlcXVlc3RIZWFkZXJzIHwgUmVxdWVzdEhlYWRlcnNNZXRob2RNYXA7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIGF1dG9tYXRpY2FsbHkgcmVmcmVzaCBleHBpcmVkIHF1ZXJpZXMgd2hlbiB0aGUgd2luZG93IHJlZ2FpbnMgZm9jdXMuXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIGF1dG9SZWZyZXNoUXVlcmllc09uV2luZG93Rm9jdXM/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBhdXRvbWF0aWNhbGx5IHN0b3AgcG9sbGluZyBxdWVyaWVzIHdoZW4gdGhlIHdpbmRvdyBsb3NlcyBmb2N1cy5cbiAgICAgKiBQb2xsaW5nIHdpbGwgcmVzdW1lIHdoZW4gdGhlIHdpbmRvdyByZWdhaW5zIGZvY3VzLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBlbmFibGVTbWFydFBvbGxpbmc/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQSByZXRyeSBmdW5jdGlvbiB0byBiZSB1c2VkIGZvciBhbGwgcXVlcmllcy5cbiAgICAgKiBAZGVmYXVsdCBzaG91bGRSZXRyeVJlcXVlc3QoKVxuICAgICAqL1xuICAgIHJldHJ5Rm4/OiBSZXF1ZXN0UmV0cnlGbjtcblxuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgYWxsIGdyYXBocWwgcXVlcmllcy5cbiAgICAgKi9cbiAgICBncWw/OiB7XG4gICAgICAvKipcbiAgICAgICAqIERldGVybWluZXMgaWYgdGhlIHF1ZXJ5IHNob3VsZCBiZSBzZW50IHZpYSBHRVQgb3IgUE9TVC5cbiAgICAgICAqIC0gYEdFVGA6IFRoZSBxdWVyeSB3aWxsIGJlIHNlbnQgdmlhIHF1ZXJ5IHBhcmFtZXRlcnMuXG4gICAgICAgKiAtIGBQT1NUYDogVGhlIHF1ZXJ5IHdpbGwgYmUgc2VudCB2aWEgdGhlIGJvZHkuXG4gICAgICAgKiBAZGVmYXVsdCAnUE9TVCdcbiAgICAgICAqL1xuICAgICAgdHJhbnNmZXJWaWE/OiBHcWxUcmFuc2Zlck9wdGlvbjtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBhbGwgcXVlcnkgc3RyaW5ncy5cbiAgICAgKi9cbiAgICBxdWVyeVBhcmFtcz86IEJ1aWxkUXVlcnlTdHJpbmdDb25maWc7XG4gIH07XG5cbiAgLyoqXG4gICAqIFBhcmVudCBxdWVyeSBjbGllbnQuXG4gICAqIFVzZWQgZm9yIHNoYXJpbmcgdGhlIHNhbWUgYXV0aCBwcm92aWRlci5cbiAgICovXG4gIHBhcmVudD86IFF1ZXJ5Q2xpZW50O1xufVxuIl19
|
|
@@ -1,17 +1,23 @@
|
|
|
1
|
-
import { fromEvent, take, takeUntil, timer } from 'rxjs';
|
|
1
|
+
import { Subject, fromEvent, take, takeUntil, timer } from 'rxjs';
|
|
2
2
|
export class QueryStore {
|
|
3
3
|
constructor(_config) {
|
|
4
4
|
this._config = _config;
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
5
8
|
this._store = new Map();
|
|
6
9
|
this._garbageCollector = null;
|
|
7
10
|
this._isInLowResourceMode = false;
|
|
8
11
|
this._lastBlurTimestamp = Date.now();
|
|
12
|
+
this._storeChange$ = new Subject();
|
|
13
|
+
this.storeChange$ = this._storeChange$.asObservable();
|
|
9
14
|
this._initSmartQueryHandling();
|
|
10
15
|
}
|
|
11
16
|
add(id, query) {
|
|
12
17
|
this._store.set(id, query);
|
|
13
18
|
this._initGarbageCollector();
|
|
14
19
|
this._logState(id, query, 'SET');
|
|
20
|
+
this._storeChange$.next(id);
|
|
15
21
|
}
|
|
16
22
|
get(id) {
|
|
17
23
|
return this._store.get(id) ?? null;
|
|
@@ -20,6 +26,7 @@ export class QueryStore {
|
|
|
20
26
|
this.get(id)?._destroy();
|
|
21
27
|
this._store.delete(id);
|
|
22
28
|
this._logState(id, null, 'REMOVE');
|
|
29
|
+
this._storeChange$.next(id);
|
|
23
30
|
}
|
|
24
31
|
forEach(callback) {
|
|
25
32
|
for (const [key, query] of this._store) {
|
|
@@ -127,4 +134,4 @@ export class QueryStore {
|
|
|
127
134
|
console.log(`%cGC: ${action}`, 'color: yellow; font-weight: bold');
|
|
128
135
|
}
|
|
129
136
|
}
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvcXVlcnktc3RvcmUvcXVlcnktc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd6RCxNQUFNLE9BQU8sVUFBVTtJQU1yQixZQUNVLE9BS1A7UUFMTyxZQUFPLEdBQVAsT0FBTyxDQUtkO1FBWGMsV0FBTSxHQUFHLElBQUksR0FBRyxFQUFvQixDQUFDO1FBQzlDLHNCQUFpQixHQUFrQixJQUFJLENBQUM7UUFDeEMseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQzdCLHVCQUFrQixHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQVV0QyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsR0FBRyxDQUFDLEVBQVUsRUFBRSxLQUFlO1FBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUUzQixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUU3QixJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELEdBQUcsQ0FBcUIsRUFBVTtRQUNoQyxPQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxJQUFJLElBQUksQ0FBQztJQUM1QyxDQUFDO0lBRUQsTUFBTSxDQUFDLEVBQVU7UUFDZixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXZCLElBQUksQ0FB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QyxvQkFBb0IsRUFBRSxDQUFDO1FBQzlCLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNaLENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEtBQUssSUFBSSxFQUFFO1lBQ25DLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztZQUM5QixJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbkM7SUFDSCxDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUUzQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUNoQyxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2xCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUU3QyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDckIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7U0FDOUI7SUFDSCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsTUFBYztRQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSw2QkFBNkI7WUFBRSxPQUFPO1FBRXpELE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxNQUFNLEVBQUUsRUFBRSxrQ0FBa0MsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZyb21FdmVudCwgdGFrZSwgdGFrZVVudGlsLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQW55UXVlcnkgfSBmcm9tICcuLi9xdWVyeSc7XG5cbmV4cG9ydCBjbGFzcyBRdWVyeVN0b3JlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RvcmUgPSBuZXcgTWFwPHN0cmluZywgQW55UXVlcnk+KCk7XG4gIHByaXZhdGUgX2dhcmJhZ2VDb2xsZWN0b3I6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9pc0luTG93UmVzb3VyY2VNb2RlID0gZmFsc2U7XG4gIHByaXZhdGUgX2xhc3RCbHVyVGltZXN0YW1wID0gRGF0ZS5ub3coKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9jb25maWc/OiB7XG4gICAgICBlbmFibGVDaGFuZ2VMb2dnaW5nPzogYm9vbGVhbjtcbiAgICAgIGVuYWJsZUdhcmJhZ2VDb2xsZWN0b3JMb2dnaW5nPzogYm9vbGVhbjtcbiAgICAgIGF1dG9SZWZyZXNoUXVlcmllc09uV2luZG93Rm9jdXM/OiBib29sZWFuO1xuICAgICAgZW5hYmxlU21hcnRQb2xsaW5nPzogYm9vbGVhbjtcbiAgICB9LFxuICApIHtcbiAgICB0aGlzLl9pbml0U21hcnRRdWVyeUhhbmRsaW5nKCk7XG4gIH1cblxuICBhZGQoaWQ6IHN0cmluZywgcXVlcnk6IEFueVF1ZXJ5KSB7XG4gICAgdGhpcy5fc3RvcmUuc2V0KGlkLCBxdWVyeSk7XG5cbiAgICB0aGlzLl9pbml0R2FyYmFnZUNvbGxlY3RvcigpO1xuXG4gICAgdGhpcy5fbG9nU3RhdGUoaWQsIHF1ZXJ5LCAnU0VUJyk7XG4gIH1cblxuICBnZXQ8VCBleHRlbmRzIEFueVF1ZXJ5PihpZDogc3RyaW5nKTogVCB8IG51bGwge1xuICAgIHJldHVybiAodGhpcy5fc3RvcmUuZ2V0KGlkKSBhcyBUKSA/PyBudWxsO1xuICB9XG5cbiAgcmVtb3ZlKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmdldChpZCk/Ll9kZXN0cm95KCk7XG4gICAgdGhpcy5fc3RvcmUuZGVsZXRlKGlkKTtcblxuICAgIHRoaXMuX2xvZ1N0YXRlKGlkLCBudWxsLCAnUkVNT1ZFJyk7XG4gIH1cblxuICBmb3JFYWNoKGNhbGxiYWNrOiAodmFsdWU6IEFueVF1ZXJ5LCBrZXk6IHN0cmluZykgPT4gdm9pZCkge1xuICAgIGZvciAoY29uc3QgW2tleSwgcXVlcnldIG9mIHRoaXMuX3N0b3JlKSB7XG4gICAgICBjYWxsYmFjayhxdWVyeSwga2V5KTtcbiAgICB9XG4gIH1cblxuICByZWZyZXNoUXVlcmllc0luVXNlKGNvbmZpZz86IHsgaWdub3JlQ2FjaGVWYWxpZGl0eT86IGJvb2xlYW47IHB1cmdlVW51c2VkPzogYm9vbGVhbiB9KSB7XG4gICAgY29uc3QgeyBpZ25vcmVDYWNoZVZhbGlkaXR5LCBwdXJnZVVudXNlZCB9ID0gY29uZmlnID8/IHt9O1xuXG4gICAgZm9yIChjb25zdCBba2V5LCBxdWVyeV0gb2YgdGhpcy5fc3RvcmUpIHtcbiAgICAgIGlmIChcbiAgICAgICAgcXVlcnkuaXNJblVzZSAmJlxuICAgICAgICAocXVlcnkuaXNFeHBpcmVkIHx8IGlnbm9yZUNhY2hlVmFsaWRpdHkpICYmXG4gICAgICAgIHF1ZXJ5LmF1dG9SZWZyZXNoT25Db25maWcucXVlcnlDbGllbnREZWZhdWx0SGVhZGVyc0NoYW5nZVxuICAgICAgKSB7XG4gICAgICAgIHF1ZXJ5LmV4ZWN1dGUoeyBza2lwQ2FjaGU6IHRydWUsIF90cmlnZ2VyZWRWaWE6ICdhdXRvJyB9KTtcbiAgICAgIH0gZWxzZSBpZiAocHVyZ2VVbnVzZWQgJiYgIXF1ZXJ5LmlzSW5Vc2UpIHtcbiAgICAgICAgdGhpcy5yZW1vdmUoa2V5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9pbml0U21hcnRRdWVyeUhhbmRsaW5nKCkge1xuICAgIGNvbnN0IHdpbmRvd0JsdXIkID0gZnJvbUV2ZW50PEV2ZW50Pih3aW5kb3csICdibHVyJyk7XG4gICAgY29uc3Qgd2luZG93Rm9jdXMkID0gZnJvbUV2ZW50PEV2ZW50Pih3aW5kb3csICdmb2N1cycpO1xuXG4gICAgd2luZG93Qmx1ciQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRpbWVyKDUwMDApXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh3aW5kb3dGb2N1cyQpLCB0YWtlKDEpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLl9sYXN0Qmx1clRpbWVzdGFtcCA9IERhdGUubm93KCk7XG4gICAgICAgICAgdGhpcy5faXNJbkxvd1Jlc291cmNlTW9kZSA9IHRydWU7XG4gICAgICAgICAgdGhpcy5fc3RvcEdhcmJhZ2VDb2xsZWN0b3IoKTtcblxuICAgICAgICAgIGlmICh0aGlzLl9jb25maWc/LmVuYWJsZVNtYXJ0UG9sbGluZykge1xuICAgICAgICAgICAgdGhpcy5mb3JFYWNoKChxdWVyeSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoIXF1ZXJ5LmlzUG9sbGluZyB8fCAhcXVlcnkuX2VuYWJsZVNtYXJ0UG9sbGluZykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHF1ZXJ5LnBhdXNlUG9sbGluZygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIHdpbmRvd0ZvY3VzJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLl9pc0luTG93UmVzb3VyY2VNb2RlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5faXNJbkxvd1Jlc291cmNlTW9kZSA9IGZhbHNlO1xuXG4gICAgICBpZiAodGhpcy5fY29uZmlnPy5lbmFibGVTbWFydFBvbGxpbmcgfHwgdGhpcy5fY29uZmlnPy5hdXRvUmVmcmVzaFF1ZXJpZXNPbldpbmRvd0ZvY3VzKSB7XG4gICAgICAgIHRoaXMuZm9yRWFjaCgocXVlcnkpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5fY29uZmlnPy5lbmFibGVTbWFydFBvbGxpbmcgJiYgcXVlcnkuX2lzUG9sbGluZ1BhdXNlZCkge1xuICAgICAgICAgICAgcXVlcnkucmVzdW1lUG9sbGluZygpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChEYXRlLm5vdygpIC0gdGhpcy5fbGFzdEJsdXJUaW1lc3RhbXAgPiAxNTAwMCkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICB0aGlzLl9jb25maWc/LmF1dG9SZWZyZXNoUXVlcmllc09uV2luZG93Rm9jdXMgJiZcbiAgICAgICAgICAgICAgcXVlcnkuaXNFeHBpcmVkICYmXG4gICAgICAgICAgICAgIHF1ZXJ5LmlzSW5Vc2UgJiZcbiAgICAgICAgICAgICAgcXVlcnkuYXV0b1JlZnJlc2hPbkNvbmZpZy53aW5kb3dGb2N1c1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHF1ZXJ5LmV4ZWN1dGUoeyBza2lwQ2FjaGU6IHRydWUsIF90cmlnZ2VyZWRWaWE6ICdhdXRvJyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9pbml0R2FyYmFnZUNvbGxlY3RvcigpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfbG9nU3RhdGUoa2V5OiBzdHJpbmcgfCBudWxsLCBpdGVtOiBBbnlRdWVyeSB8IG51bGwsIG9wZXJhdGlvbjogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLl9jb25maWc/LmVuYWJsZUNoYW5nZUxvZ2dpbmcpIHJldHVybjtcblxuICAgIGNvbnN0IHN0YXRlQXNKc29uOiBSZWNvcmQ8c3RyaW5nLCBBbnlRdWVyeT4gPSB7fTtcblxuICAgIHRoaXMuX3N0b3JlLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgIHN0YXRlQXNKc29uW2tleV0gPSB2YWx1ZTtcbiAgICB9KTtcblxuICAgIGNvbnNvbGUubG9nKGAlY1ske29wZXJhdGlvbn1dICR7a2V5fWAsICdmb250LXdlaWdodDogYm9sZCcpO1xuXG4gICAgY29uc29sZS5sb2coeyBvcGVyYXRpb24sIGtleSwgaXRlbSB9KTtcbiAgICBjb25zb2xlLmxvZyhzdGF0ZUFzSnNvbik7XG4gIH1cblxuICBwcml2YXRlIF9pbml0R2FyYmFnZUNvbGxlY3RvcigpIHtcbiAgICBpZiAodGhpcy5fZ2FyYmFnZUNvbGxlY3RvciAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2xvZ0dhcmJhZ2VDb2xsZWN0b3IoJ1N0YXJ0Jyk7XG5cbiAgICB0aGlzLl9nYXJiYWdlQ29sbGVjdG9yID0gd2luZG93LnNldEludGVydmFsKCgpID0+IHtcbiAgICAgIHRoaXMuX3J1bkdhcmJhZ2VDb2xsZWN0b3IoKTtcbiAgICB9LCAxNTAwMCk7XG4gIH1cblxuICBwcml2YXRlIF9zdG9wR2FyYmFnZUNvbGxlY3RvcigpIHtcbiAgICBpZiAodGhpcy5fZ2FyYmFnZUNvbGxlY3RvciAhPT0gbnVsbCkge1xuICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5fZ2FyYmFnZUNvbGxlY3Rvcik7XG4gICAgICB0aGlzLl9nYXJiYWdlQ29sbGVjdG9yID0gbnVsbDtcbiAgICAgIHRoaXMuX2xvZ0dhcmJhZ2VDb2xsZWN0b3IoJ1N0b3AnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9ydW5HYXJiYWdlQ29sbGVjdG9yKCkge1xuICAgIHRoaXMuX2xvZ0dhcmJhZ2VDb2xsZWN0b3IoJ0NvbGxlY3RpbmcuLi4nKTtcblxuICAgIHRoaXMuX3N0b3JlLmZvckVhY2goKGl0ZW0sIGtleSkgPT4ge1xuICAgICAgaWYgKGl0ZW0uaXNFeHBpcmVkICYmICFpdGVtLmlzSW5Vc2UpIHtcbiAgICAgICAgdGhpcy5yZW1vdmUoa2V5KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuX2xvZ0dhcmJhZ2VDb2xsZWN0b3IoJ0NvbGxlY3Rpb24gZG9uZScpO1xuXG4gICAgaWYgKCF0aGlzLl9zdG9yZS5zaXplKSB7XG4gICAgICB0aGlzLl9zdG9wR2FyYmFnZUNvbGxlY3RvcigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2xvZ0dhcmJhZ2VDb2xsZWN0b3IoYWN0aW9uOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuX2NvbmZpZz8uZW5hYmxlR2FyYmFnZUNvbGxlY3RvckxvZ2dpbmcpIHJldHVybjtcblxuICAgIGNvbnNvbGUubG9nKGAlY0dDOiAke2FjdGlvbn1gLCAnY29sb3I6IHllbGxvdzsgZm9udC13ZWlnaHQ6IGJvbGQnKTtcbiAgfVxufVxuIl19
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvcXVlcnktc3RvcmUvcXVlcnktc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbEUsTUFBTSxPQUFPLFVBQVU7SUFjckIsWUFDVSxPQUtQO1FBTE8sWUFBTyxHQUFQLE9BQU8sQ0FLZDtRQW5CSDs7V0FFRztRQUNNLFdBQU0sR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztRQUV0QyxzQkFBaUIsR0FBa0IsSUFBSSxDQUFDO1FBQ3hDLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUM3Qix1QkFBa0IsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFaEMsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBRXJDLGlCQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQVV4RCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsR0FBRyxDQUFDLEVBQVUsRUFBRSxLQUFlO1FBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUUzQixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUU3QixJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELEdBQUcsQ0FBcUIsRUFBVTtRQUNoQyxPQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBTyxJQUFJ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SUFBSSxDQUFDLE9BQU8sRUFBRSw2QkFBNkI7WUFBRSxPQUFPO1FBRXpELE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxNQUFNLEVBQUUsRUFBRSxrQ0FBa0MsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCwgdGFrZSwgdGFrZVVudGlsLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQW55UXVlcnkgfSBmcm9tICcuLi9xdWVyeSc7XG5cbmV4cG9ydCBjbGFzcyBRdWVyeVN0b3JlIHtcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcmVhZG9ubHkgX3N0b3JlID0gbmV3IE1hcDxzdHJpbmcsIEFueVF1ZXJ5PigpO1xuXG4gIHByaXZhdGUgX2dhcmJhZ2VDb2xsZWN0b3I6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9pc0luTG93UmVzb3VyY2VNb2RlID0gZmFsc2U7XG4gIHByaXZhdGUgX2xhc3RCbHVyVGltZXN0YW1wID0gRGF0ZS5ub3coKTtcblxuICBwcml2YXRlIF9zdG9yZUNoYW5nZSQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgcmVhZG9ubHkgc3RvcmVDaGFuZ2UkID0gdGhpcy5fc3RvcmVDaGFuZ2UkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2NvbmZpZz86IHtcbiAgICAgIGVuYWJsZUNoYW5nZUxvZ2dpbmc/OiBib29sZWFuO1xuICAgICAgZW5hYmxlR2FyYmFnZUNvbGxlY3RvckxvZ2dpbmc/OiBib29sZWFuO1xuICAgICAgYXV0b1JlZnJlc2hRdWVyaWVzT25XaW5kb3dGb2N1cz86IGJvb2xlYW47XG4gICAgICBlbmFibGVTbWFydFBvbGxpbmc/OiBib29sZWFuO1xuICAgIH0sXG4gICkge1xuICAgIHRoaXMuX2luaXRTbWFydFF1ZXJ5SGFuZGxpbmcoKTtcbiAgfVxuXG4gIGFkZChpZDogc3RyaW5nLCBxdWVyeTogQW55UXVlcnkpIHtcbiAgICB0aGlzLl9zdG9yZS5zZXQoaWQsIHF1ZXJ5KTtcblxuICAgIHRoaXMuX2luaXRHYXJiYWdlQ29sbGVjdG9yKCk7XG5cbiAgICB0aGlzLl9sb2dTdGF0ZShpZCwgcXVlcnksICdTRVQnKTtcblxuICAgIHRoaXMuX3N0b3JlQ2hhbmdlJC5uZXh0KGlkKTtcbiAgfVxuXG4gIGdldDxUIGV4dGVuZHMgQW55UXVlcnk+KGlkOiBzdHJpbmcpOiBUIHwgbnVsbCB7XG4gICAgcmV0dXJuICh0aGlzLl9zdG9yZS5nZXQoaWQpIGFzIFQpID8/IG51bGw7XG4gIH1cblxuICByZW1vdmUoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuZ2V0KGlkKT8uX2Rlc3Ryb3koKTtcbiAgICB0aGlzLl9zdG9yZS5kZWxldGUoaWQpO1xuXG4gICAgdGhpcy5fbG9nU3RhdGUoaWQsIG51bGwsICdSRU1PVkUnKTtcblxuICAgIHRoaXMuX3N0b3JlQ2hhbmdlJC5uZXh0KGlkKTtcbiAgfVxuXG4gIGZvckVhY2goY2FsbGJhY2s6ICh2YWx1ZTogQW55UXVlcnksIGtleTogc3RyaW5nKSA9PiB2b2lkKSB7XG4gICAgZm9yIChjb25zdCBba2V5LCBxdWVyeV0gb2YgdGhpcy5fc3RvcmUpIHtcbiAgICAgIGNhbGxiYWNrKHF1ZXJ5LCBrZXkpO1xuICAgIH1cbiAgfVxuXG4gIHJlZnJlc2hRdWVyaWVzSW5Vc2UoY29uZmlnPzogeyBpZ25vcmVDYWNoZVZhbGlkaXR5PzogYm9vbGVhbjsgcHVyZ2VVbnVzZWQ/OiBib29sZWFuIH0pIHtcbiAgICBjb25zdCB7IGlnbm9yZUNhY2hlVmFsaWRpdHksIHB1cmdlVW51c2VkIH0gPSBjb25maWcgPz8ge307XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHF1ZXJ5XSBvZiB0aGlzLl9zdG9yZSkge1xuICAgICAgaWYgKFxuICAgICAgICBxdWVyeS5pc0luVXNlICYmXG4gICAgICAgIChxdWVyeS5pc0V4cGlyZWQgfHwgaWdub3JlQ2FjaGVWYWxpZGl0eSkgJiZcbiAgICAgICAgcXVlcnkuYXV0b1JlZnJlc2hPbkNvbmZpZy5xdWVyeUNsaWVudERlZmF1bHRIZWFkZXJzQ2hhbmdlXG4gICAgICApIHtcbiAgICAgICAgcXVlcnkuZXhlY3V0ZSh7IHNraXBDYWNoZTogdHJ1ZSwgX3RyaWdnZXJlZFZpYTogJ2F1dG8nIH0pO1xuICAgICAgfSBlbHNlIGlmIChwdXJnZVVudXNlZCAmJiAhcXVlcnkuaXNJblVzZSkge1xuICAgICAgICB0aGlzLnJlbW92ZShrZXkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2luaXRTbWFydFF1ZXJ5SGFuZGxpbmcoKSB7XG4gICAgY29uc3Qgd2luZG93Qmx1ciQgPSBmcm9tRXZlbnQ8RXZlbnQ+KHdpbmRvdywgJ2JsdXInKTtcbiAgICBjb25zdCB3aW5kb3dGb2N1cyQgPSBmcm9tRXZlbnQ8RXZlbnQ+KHdpbmRvdywgJ2ZvY3VzJyk7XG5cbiAgICB3aW5kb3dCbHVyJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGltZXIoNTAwMClcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHdpbmRvd0ZvY3VzJCksIHRha2UoMSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2xhc3RCbHVyVGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICB0aGlzLl9pc0luTG93UmVzb3VyY2VNb2RlID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLl9zdG9wR2FyYmFnZUNvbGxlY3RvcigpO1xuXG4gICAgICAgICAgaWYgKHRoaXMuX2NvbmZpZz8uZW5hYmxlU21hcnRQb2xsaW5nKSB7XG4gICAgICAgICAgICB0aGlzLmZvckVhY2goKHF1ZXJ5KSA9PiB7XG4gICAgICAgICAgICAgIGlmICghcXVlcnkuaXNQb2xsaW5nIHx8ICFxdWVyeS5fZW5hYmxlU21hcnRQb2xsaW5nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcXVlcnkucGF1c2VQb2xsaW5nKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgd2luZG93Rm9jdXMkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuX2lzSW5Mb3dSZXNvdXJjZU1vZGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9pc0luTG93UmVzb3VyY2VNb2RlID0gZmFsc2U7XG5cbiAgICAgIGlmICh0aGlzLl9jb25maWc/LmVuYWJsZVNtYXJ0UG9sbGluZyB8fCB0aGlzLl9jb25maWc/LmF1dG9SZWZyZXNoUXVlcmllc09uV2luZG93Rm9jdXMpIHtcbiAgICAgICAgdGhpcy5mb3JFYWNoKChxdWVyeSkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLl9jb25maWc/LmVuYWJsZVNtYXJ0UG9sbGluZyAmJiBxdWVyeS5faXNQb2xsaW5nUGF1c2VkKSB7XG4gICAgICAgICAgICBxdWVyeS5yZXN1bWVQb2xsaW5nKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKERhdGUubm93KCkgLSB0aGlzLl9sYXN0Qmx1clRpbWVzdGFtcCA+IDE1MDAwKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHRoaXMuX2NvbmZpZz8uYXV0b1JlZnJlc2hRdWVyaWVzT25XaW5kb3dGb2N1cyAmJlxuICAgICAgICAgICAgICBxdWVyeS5pc0V4cGlyZWQgJiZcbiAgICAgICAgICAgICAgcXVlcnkuaXNJblVzZSAmJlxuICAgICAgICAgICAgICBxdWVyeS5hdXRvUmVmcmVzaE9uQ29uZmlnLndpbmRvd0ZvY3VzXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcXVlcnkuZXhlY3V0ZSh7IHNraXBDYWNoZTogdHJ1ZSwgX3RyaWdnZXJlZFZpYTogJ2F1dG8nIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2luaXRHYXJiYWdlQ29sbGVjdG9yKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9sb2dTdGF0ZShrZXk6IHN0cmluZyB8IG51bGwsIGl0ZW06IEFueVF1ZXJ5IHwgbnVsbCwgb3BlcmF0aW9uOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuX2NvbmZpZz8uZW5hYmxlQ2hhbmdlTG9nZ2luZykgcmV0dXJuO1xuXG4gICAgY29uc3Qgc3RhdGVBc0pzb246IFJlY29yZDxzdHJpbmcsIEFueVF1ZXJ5PiA9IHt9O1xuXG4gICAgdGhpcy5fc3RvcmUuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgc3RhdGVBc0pzb25ba2V5XSA9IHZhbHVlO1xuICAgIH0pO1xuXG4gICAgY29uc29sZS5sb2coYCVjWyR7b3BlcmF0aW9ufV0gJHtrZXl9YCwgJ2ZvbnQtd2VpZ2h0OiBib2xkJyk7XG5cbiAgICBjb25zb2xlLmxvZyh7IG9wZXJhdGlvbiwga2V5LCBpdGVtIH0pO1xuICAgIGNvbnNvbGUubG9nKHN0YXRlQXNKc29uKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRHYXJiYWdlQ29sbGVjdG9yKCkge1xuICAgIGlmICh0aGlzLl9nYXJiYWdlQ29sbGVjdG9yICE9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fbG9nR2FyYmFnZUNvbGxlY3RvcignU3RhcnQnKTtcblxuICAgIHRoaXMuX2dhcmJhZ2VDb2xsZWN0b3IgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgdGhpcy5fcnVuR2FyYmFnZUNvbGxlY3RvcigpO1xuICAgIH0sIDE1MDAwKTtcbiAgfVxuXG4gIHByaXZhdGUgX3N0b3BHYXJiYWdlQ29sbGVjdG9yKCkge1xuICAgIGlmICh0aGlzLl9nYXJiYWdlQ29sbGVjdG9yICE9PSBudWxsKSB7XG4gICAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbCh0aGlzLl9nYXJiYWdlQ29sbGVjdG9yKTtcbiAgICAgIHRoaXMuX2dhcmJhZ2VDb2xsZWN0b3IgPSBudWxsO1xuICAgICAgdGhpcy5fbG9nR2FyYmFnZUNvbGxlY3RvcignU3RvcCcpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3J1bkdhcmJhZ2VDb2xsZWN0b3IoKSB7XG4gICAgdGhpcy5fbG9nR2FyYmFnZUNvbGxlY3RvcignQ29sbGVjdGluZy4uLicpO1xuXG4gICAgdGhpcy5fc3RvcmUuZm9yRWFjaCgoaXRlbSwga2V5KSA9PiB7XG4gICAgICBpZiAoaXRlbS5pc0V4cGlyZWQgJiYgIWl0ZW0uaXNJblVzZSkge1xuICAgICAgICB0aGlzLnJlbW92ZShrZXkpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5fbG9nR2FyYmFnZUNvbGxlY3RvcignQ29sbGVjdGlvbiBkb25lJyk7XG5cbiAgICBpZiAoIXRoaXMuX3N0b3JlLnNpemUpIHtcbiAgICAgIHRoaXMuX3N0b3BHYXJiYWdlQ29sbGVjdG9yKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfbG9nR2FyYmFnZUNvbGxlY3RvcihhY3Rpb246IHN0cmluZykge1xuICAgIGlmICghdGhpcy5fY29uZmlnPy5lbmFibGVHYXJiYWdlQ29sbGVjdG9yTG9nZ2luZykgcmV0dXJuO1xuXG4gICAgY29uc29sZS5sb2coYCVjR0M6ICR7YWN0aW9ufWAsICdjb2xvcjogeWVsbG93OyBmb250LXdlaWdodDogYm9sZCcpO1xuICB9XG59XG4iXX0=
|