@ethlete/query 5.19.0 → 5.20.1
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/CHANGELOG.md +12 -0
- package/esm2022/lib/devtools/components/query-devtools/query-devtools.component.mjs +3 -3
- package/esm2022/lib/devtools/pipes/query-short-name.pipe.mjs +3 -3
- package/esm2022/lib/directives/infinity-query-trigger.directive.mjs +3 -3
- package/esm2022/lib/directives/infinity-query.directive.mjs +3 -3
- package/esm2022/lib/directives/query.directive.mjs +3 -3
- package/esm2022/lib/experimental/bearer-auth-provider-config.mjs +2 -2
- package/esm2022/lib/experimental/bearer-auth-provider.mjs +2 -2
- package/esm2022/lib/experimental/http-request.mjs +10 -9
- package/esm2022/lib/experimental/index.mjs +2 -1
- package/esm2022/lib/experimental/query-dependencies.mjs +6 -6
- package/esm2022/lib/experimental/query-errors.mjs +7 -1
- package/esm2022/lib/experimental/query-execute-utils.mjs +19 -22
- package/esm2022/lib/experimental/query-execute.mjs +9 -7
- package/esm2022/lib/experimental/query-features.mjs +13 -13
- package/esm2022/lib/experimental/query-repository.mjs +28 -22
- package/esm2022/lib/experimental/query-snapshot.mjs +2 -1
- package/esm2022/lib/experimental/query-stack.mjs +65 -0
- package/esm2022/lib/experimental/query-utils.mjs +32 -4
- package/esm2022/lib/experimental/query.mjs +6 -14
- package/esm2022/lib/experimental/secure-query-execute.mjs +9 -6
- package/esm2022/lib/experimental/secure-query.mjs +6 -14
- package/esm2022/lib/query-form/query-form.mjs +15 -6
- package/esm2022/lib/query-form/query-form.types.mjs +1 -1
- package/esm2022/lib/utils/data.utils.mjs +2 -2
- package/fesm2022/ethlete-query.mjs +230 -124
- package/fesm2022/ethlete-query.mjs.map +1 -1
- package/lib/experimental/http-request.d.ts +72 -14
- package/lib/experimental/index.d.ts +1 -0
- package/lib/experimental/query-dependencies.d.ts +2 -2
- package/lib/experimental/query-errors.d.ts +5 -1
- package/lib/experimental/query-execute-utils.d.ts +12 -4
- package/lib/experimental/query-execute.d.ts +9 -2
- package/lib/experimental/query-features.d.ts +4 -1
- package/lib/experimental/query-repository.d.ts +41 -20
- package/lib/experimental/query-snapshot.d.ts +2 -0
- package/lib/experimental/query-stack.d.ts +46 -0
- package/lib/experimental/query-utils.d.ts +10 -2
- package/lib/experimental/query.d.ts +8 -5
- package/lib/experimental/secure-query.d.ts +2 -2
- package/lib/query-form/query-form.types.d.ts +8 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @ethlete/query
|
|
2
2
|
|
|
3
|
+
## 5.20.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`0f53f8f`](https://github.com/ethlete-io/ethdk/commit/0f53f8f73b50ee4a22c9ff64ff39557c3f5b313c) Thanks [@TomTomB](https://github.com/TomTomB)! - Cache query response if the new query gets cancelled
|
|
8
|
+
|
|
9
|
+
## 5.20.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- [`cf2150f`](https://github.com/ethlete-io/ethdk/commit/cf2150f59a20ae65c41bbabafa446a5d7c1ceaea) Thanks [@TomTomB](https://github.com/TomTomB)! - Add `skipAutoTransform` option to query fields. This should be set to true on e.g. search fields. Otherwise, the search value might get transformed from a string to a number, which leads to loss of user input. E.g. "0031" would become "31" and "30.00" would become "30". Also whitespace would no longer work. The query form can detect these cases on its own but it's better to prevent them from happening in the first place.
|
|
14
|
+
|
|
3
15
|
## 5.19.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
|
@@ -285,10 +285,10 @@ export class QueryDevtoolsComponent {
|
|
|
285
285
|
clearQueryHistory() {
|
|
286
286
|
this.queryHistory$.next([]);
|
|
287
287
|
}
|
|
288
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
289
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.4", type: QueryDevtoolsComponent, isStandalone: true, selector: "et-query-devtools", host: { classAttribute: "et-query-devtools" }, ngImport: i0, template: "@if (!isOpen()) {\n <button (click)=\"toggleOpen()\" class=\"et-query-devtools-open-btn et-qd-chip\">Query Devtools</button>\n}\n\n@if (isOpen()) {\n <div\n [class.et-query-devtools-container--transparent]=\"isTranslucent()\"\n class=\"et-query-devtools-container et-query-devtools-container--snap-{{ snapLayout() }}\"\n >\n <header class=\"et-qd-header\">\n <h3 class=\"et-qd-header__title\">Query Devtools</h3>\n\n <div class=\"et-qd-header__select\">\n <label for=\"et-query-client-instance\">Client instance</label>\n <select [formControl]=\"selectedClientIdCtrl\" id=\"et-query-client-instance\">\n @for (clientConfig of queryClientConfigs; track trackByClient(i, clientConfig); let i = $index) {\n <option [value]=\"i\">\n {{ clientConfig.displayName ?? clientConfig.client.config.baseRoute }}\n </option>\n }\n </select>\n </div>\n\n <button (click)=\"toggleOpen()\" class=\"et-qd-btn et-qd-btn-secondary\">Close</button>\n </header>\n\n <div class=\"et-qd-sub-header\">\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': !isTranslucent() }\"\n (click)=\"toggleTranslucent()\"\n class=\"et-qd-chip et-qd-translucent-clickable\"\n >\n Translucent\n </button>\n <div class=\"et-qd-sub-header__divider\"></div>\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': snapLayout() !== 'full' }\"\n (click)=\"selectSnapLayout('full')\"\n class=\"et-qd-chip\"\n >\n Fullscreen\n </button>\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': snapLayout() !== 'top' }\"\n (click)=\"selectSnapLayout('top')\"\n class=\"et-qd-chip\"\n >\n Top\n </button>\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': snapLayout() !== 'bottom' }\"\n (click)=\"selectSnapLayout('bottom')\"\n class=\"et-qd-chip\"\n >\n Bottom\n </button>\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': snapLayout() !== 'left' }\"\n (click)=\"selectSnapLayout('left')\"\n class=\"et-qd-chip\"\n >\n Left\n </button>\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': snapLayout() !== 'right' }\"\n (click)=\"selectSnapLayout('right')\"\n class=\"et-qd-chip\"\n >\n Right\n </button>\n </div>\n\n @if (selectedClientConfig(); as cfg) {\n <div class=\"et-qd-client\">\n <p class=\"et-qd-client__title\">{{ cfg.displayName ?? cfg.client.config.baseRoute }}</p>\n\n <div class=\"et-qd-client__actions\">\n <button (click)=\"cfg.client._store.refreshQueriesInUse()\" class=\"et-qd-chip\">Refresh all</button>\n <button (click)=\"cfg.client._store.refreshQueriesInUse({ ignoreCacheValidity: true })\" class=\"et-qd-chip\">\n Refresh all (ignore caches)\n </button>\n <button\n (click)=\"cfg.client._store.refreshQueriesInUse({ ignoreCacheValidity: true, purgeUnused: true })\"\n class=\"et-qd-chip\"\n >\n Refresh all (ignore caches & purge unused)\n </button>\n </div>\n </div>\n }\n\n @if (selectedClientConfig(); as cfg) {\n <div class=\"et-qd-queries\">\n <p class=\"et-qd-queries__title\">Inspector</p>\n <div class=\"et-qd-queries__actions\">\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': queryListMode() !== 'live' || viewMode() !== 'query' }\"\n (click)=\"selectQueryListMode('live'); selectViewMode('query')\"\n class=\"et-qd-chip et-qd-chip-bordered\"\n >\n Live Queries ({{ queries()?.length ?? 0 }})\n </button>\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': queryListMode() !== 'history' || viewMode() !== 'query' }\"\n (click)=\"selectQueryListMode('history'); selectViewMode('query')\"\n class=\"et-qd-chip et-qd-chip-bordered\"\n >\n Query History ({{ (queryHistory$ | async)?.length ?? 0 }}/50)\n </button>\n @if (queryListMode() === 'history' && viewMode() === 'query') {\n <div class=\"et-qd-queries__divider\"></div>\n <button (click)=\"clearQueryHistory()\" class=\"et-qd-chip et-qd-chip-bordered\">Clear history</button>\n }\n\n <div class=\"et-qd-queries__divider\"></div>\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': viewMode() !== 'authProvider' }\"\n (click)=\"selectViewMode('authProvider')\"\n class=\"et-qd-chip et-qd-chip-bordered\"\n >\n Auth Provider\n </button>\n </div>\n\n @if (viewMode() === 'query') {\n <div class=\"et-qd-queries__browser\">\n @if (queryListMode() === 'live') {\n <ul class=\"et-qd-queries__browser-list\">\n @for (query of queries(); track trackByQuery($index, query)) {\n <li>\n <button\n [class.et-qd-query--active]=\"selectedQuery()?._id === query._id\"\n (click)=\"selectQuery(query)\"\n >\n <span> {{ query._queryConfig.method }}</span>\n <span> {{ query | queryShortName }}</span>\n </button>\n </li>\n }\n </ul>\n }\n @if (queryListMode() === 'history') {\n <ul class=\"et-qd-queries__browser-list\">\n @for (query of queryHistory$ | async; track trackByQuery($index, query)) {\n <li>\n <button\n [class.et-qd-query--active]=\"selectedQuery()?._id === query._id\"\n (click)=\"selectQuery(query)\"\n >\n <span> {{ query._queryConfig.method }}</span>\n <span> {{ query | queryShortName }}</span>\n </button>\n </li>\n }\n </ul>\n }\n <div class=\"et-qd-queries__browser-detail\">\n @if (selectedQuery(); as query) {\n <p class=\"et-qd-queries__browser-detail__title\">\n {{ query._queryConfig.method }} {{ query._routeWithParams }}\n </p>\n\n <div class=\"et-qd-queries__actions\">\n <button (click)=\"query.execute()\" class=\"et-qd-chip et-qd-chip-bordered\">Execute</button>\n <button (click)=\"query.execute({ skipCache: true })\" class=\"et-qd-chip et-qd-chip-bordered\">\n Execute (ignore cache)\n </button>\n\n <button (click)=\"query.abort()\" class=\"et-qd-chip et-qd-chip-bordered\">Abort</button>\n <div class=\"et-qd-queries__divider\"></div>\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': !query.isPolling }\"\n (click)=\"query.poll({ interval: 5000, takeUntil: _destroy$ })\"\n class=\"et-qd-chip et-qd-chip-bordered\"\n >\n Poll\n </button>\n\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': query.isPolling }\"\n (click)=\"query.stopPolling()\"\n class=\"et-qd-chip et-qd-chip-bordered\"\n >\n Stop polling\n </button>\n @if (query.isPolling || query._isPollingPaused) {\n <button (click)=\"query.pausePolling()\" class=\"et-qd-chip et-qd-chip-secondary et-qd-chip-bordered\">\n Pause polling\n </button>\n <button (click)=\"query.resumePolling()\" class=\"et-qd-chip et-qd-chip-secondary et-qd-chip-bordered\">\n Resume polling\n </button>\n }\n </div>\n\n <div class=\"et-qd-list\">\n <div class=\"et-qd-list-item\">\n <p>State type</p>\n <pre>{{ query.rawState.type }}</pre>\n </div>\n\n <div class=\"et-qd-list-item\">\n <p>Dependents</p>\n <pre>{{ query._dependents | json }}</pre>\n </div>\n\n <div class=\"et-qd-list-item\">\n <p>Is expired</p>\n <pre>{{ query.isExpired }}</pre>\n </div>\n\n <div class=\"et-qd-list-item\">\n <p>Is in use</p>\n <pre>{{ query.isInUse }}</pre>\n </div>\n\n <div class=\"et-qd-list-item\">\n <p>Subscriber count</p>\n <pre>{{ query._subscriberCount }}</pre>\n </div>\n\n <div class=\"et-qd-list-item\">\n <p>Is polling</p>\n <pre>{{ query.isPolling }}</pre>\n </div>\n\n <div class=\"et-qd-list-item\">\n <p>Is polling paused</p>\n <pre>{{ query._isPollingPaused }}</pre>\n </div>\n\n <div class=\"et-qd-list-item\">\n <p>Enable smart polling</p>\n <pre>{{ query._enableSmartPolling }}</pre>\n </div>\n\n <div class=\"et-qd-list-item\">\n <p>Query store key</p>\n <pre>{{ query._queryStoreKey }}</pre>\n </div>\n\n <div class=\"et-qd-list-item\">\n <p>Arguments</p>\n\n <div>\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': !showArguments() }\"\n (click)=\"toggleShowArguments()\"\n class=\"et-qd-chip et-qd-chip-bordered\"\n >\n Toggle\n </button>\n </div>\n @if (showArguments()) {\n <pre>{{ query._arguments | json }}</pre>\n }\n </div>\n\n <div class=\"et-qd-list-item\">\n <p>State</p>\n <p><i> Warning, this will cause a subscription if shown!</i></p>\n <div>\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': !showResponse() }\"\n (click)=\"toggleShowResponse()\"\n class=\"et-qd-chip et-qd-chip-bordered\"\n >\n Toggle\n </button>\n </div>\n @if (showResponse()) {\n <pre>{{ query.state$ | async | json }}</pre>\n }\n </div>\n\n <div class=\"et-qd-list-item\">\n <p>Raw state</p>\n <p><i> The query state unaffected by entity stores</i></p>\n\n <div>\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': !showRawResponse() }\"\n (click)=\"toggleShowRawResponse()\"\n class=\"et-qd-chip et-qd-chip-bordered\"\n >\n Toggle\n </button>\n </div>\n @if (showRawResponse()) {\n <pre>{{ query.rawState | json }}</pre>\n }\n </div>\n\n <div class=\"et-qd-list-item\">\n <p>Query config</p>\n\n <div>\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': !showQueryConfig() }\"\n (click)=\"toggleShowQueryConfig()\"\n class=\"et-qd-chip et-qd-chip-bordered\"\n >\n Toggle\n </button>\n </div>\n @if (showQueryConfig()) {\n <pre>{{ stringifiedQueryConfig() | json }}</pre>\n }\n </div>\n\n @if (!!query._queryConfig.entity) {\n <div class=\"et-qd-list-item\">\n <p>Entity store value</p>\n\n <div>\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': !showEntityStoreValue() }\"\n (click)=\"toggleShowEntityStoreValue()\"\n class=\"et-qd-chip et-qd-chip-bordered\"\n >\n Toggle\n </button>\n </div>\n @if (showEntityStoreValue()) {\n <pre>{{ selectedQueryEntityStoreValue$ | async | json }}</pre>\n }\n </div>\n }\n </div>\n }\n </div>\n </div>\n } @else if (viewMode() === 'authProvider') {\n <div class=\"et-qd-auth-provider__viewer\">\n @if (authProviderDetails(); as details) {\n <div class=\"et-qd-list\">\n <div class=\"et-qd-list-item\">\n <p>Type</p>\n <pre>{{ details.type }}</pre>\n </div>\n <div class=\"et-qd-list-item\">\n <p>Header value</p>\n <pre>{{ details.header() | json }}</pre>\n </div>\n <div class=\"et-qd-list-item\">\n <p>Config</p>\n <pre>{{ details.config | json }}</pre>\n </div>\n\n @if (details.type === 'BearerAuthProvider') {\n <div class=\"et-qd-list-item\">\n <p>Tokens</p>\n <pre>{{ details.provider.tokens$ | async | json }}</pre>\n </div>\n\n <div class=\"et-qd-list-item\">\n <p>Should refresh on unauthorized response</p>\n <pre>{{ details.provider.shouldRefreshOnUnauthorizedResponse }}</pre>\n </div>\n\n <ng-container\n *etQuery=\"\n details.provider.currentRefreshQuery$ | async as response;\n loading as loading;\n error as error;\n query as query\n \"\n >\n <div class=\"et-qd-list-item\">\n <p>Refresh query response</p>\n\n <div>\n <button (click)=\"details.provider._refreshQuery()\" class=\"et-qd-chip et-qd-chip-bordered\">\n Refresh\n </button>\n </div>\n <pre>{{ response | json }}</pre>\n </div>\n <div class=\"et-qd-list-item\">\n <p>Refresh query loading</p>\n <pre>{{ loading }}</pre>\n </div>\n <div class=\"et-qd-list-item\">\n <p>Refresh query error</p>\n <pre>{{ error ?? 'null' }}</pre>\n </div>\n <div class=\"et-qd-list-item\">\n <p>State</p>\n <pre>{{ query?.state$ | async | json }}</pre>\n </div>\n </ng-container>\n }\n </div>\n } @else {\n <p>No auth provider set</p>\n }\n </div>\n }\n </div>\n }\n </div>\n}\n", styles: [":host{position:fixed;top:0;z-index:1000000;font-size:14px;color:#fff}.et-query-devtools-container{position:fixed;inset:0;background-color:#25292e;z-index:10000;overflow:auto;font-family:monospace;display:grid;grid-template-rows:auto auto auto minmax(0,1fr)}.et-query-devtools-container.et-query-devtools-container--transparent{opacity:.25;pointer-events:none}.et-query-devtools-container.et-query-devtools-container--transparent .et-query-devtools-translucent-btn{pointer-events:all}.et-query-devtools-container.et-query-devtools-container--snap-left{inset-inline-start:0;inset-block-start:0;inset-block-end:0;width:50%;border-right:1px solid rgb(37,41,46)}.et-query-devtools-container.et-query-devtools-container--snap-right{inset-inline-start:unset;inset-inline-end:0;inset-block-start:0;inset-block-end:0;width:50%;border-left:1px solid rgb(37,41,46)}.et-query-devtools-container.et-query-devtools-container--snap-top{inset-inline-start:0;inset-block-start:0;inset-inline-end:0;height:50%;border-bottom:1px solid rgb(37,41,46)}.et-query-devtools-container.et-query-devtools-container--snap-bottom{inset-inline-start:0;inset-block-start:unset;inset-block-end:0;inset-inline-end:0;height:50%;border-top:1px solid rgb(37,41,46)}button.et-query-devtools-open-btn{position:fixed;inset-inline-end:20px;inset-block-end:0;z-index:9999;font-family:monospace;border-radius:3px 3px 0 0;line-height:14px;font-size:12px}.et-qd-header{background-color:#00ffa1;padding:12px;display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center}.et-qd-header__title{color:#25292e;margin:0;font-size:22px}.et-qd-header__select{display:grid;background-color:#25292e;border-radius:10px;overflow:hidden}.et-qd-header__select select{width:250px;color:#fff;padding:3px 10px 2px;border:none;background-color:#25292e;font-family:monospace}.et-qd-header__select label{padding:3px 10px;color:#25292e;font-size:12px;font-weight:700;color:#fff;border-bottom:1px solid gray}.et-qd-sub-header{background-color:#00b371;padding:12px;display:flex;gap:12px;flex-wrap:wrap}.et-qd-sub-header__divider{width:1px;background-color:#25292e}.et-qd-btn{background-color:#00ffa1;color:#25292e;border:none;padding:12px;cursor:pointer;font-size:14px;font-weight:700;text-align:center;text-decoration:none;display:inline-block;width:100%;transition:all .3s ease-in-out;font-family:monospace;border-radius:10px}.et-qd-btn:hover{background-color:#00cc81}.et-qd-btn.et-qd-btn-secondary{background-color:#25292e;color:#00ffa1}.et-qd-btn.et-qd-btn-secondary:hover{background-color:#3c424a}.et-qd-chip{background-color:#00ffa1;color:#25292e;border:none;padding:4px 9px;cursor:pointer;font-size:12px;font-weight:700;text-align:center;text-decoration:none;display:inline-block;transition:all .3s ease-in-out;font-family:monospace;border-radius:10px}.et-qd-chip:hover{background-color:#00cc81}.et-qd-chip.et-qd-chip-secondary{background-color:#25292e;color:#00ffa1}.et-qd-chip.et-qd-chip-secondary:hover{background-color:#3c424a}.et-qd-chip.et-qd-chip-bordered{border:1px solid rgb(0,255,161)}.et-qd-translucent-clickable{pointer-events:all}.et-qd-client{border-bottom:1px solid #3c424a;padding:12px}.et-qd-client__title{margin:0;font-size:14px;color:#fff;font-weight:700}.et-qd-client__actions{display:flex;gap:12px;margin-top:12px}.et-qd-queries{padding:12px;display:grid;grid-template-rows:auto auto minmax(0,1fr)}.et-qd-queries__actions{display:flex;gap:12px;margin-top:12px;margin-bottom:16px}.et-qd-queries__title{margin:0;font-size:14px;color:#fff;font-weight:700}.et-qd-queries__divider{width:1px;background-color:#3c424a}.et-qd-queries__browser{display:grid;grid-template-columns:1fr minmax(0,3fr);margin-left:-12px;margin-right:-12px;border-top:1px solid #3c424a;margin-bottom:-12px}.et-qd-queries__browser-list{border-right:1px solid #3c424a;list-style:none;padding:0;margin:0;display:grid;grid-auto-flow:row;grid-auto-rows:55px;overflow-y:auto;overflow-x:hidden}.et-qd-queries__browser-list li{margin:0}.et-qd-queries__browser-list li button{all:unset;font-family:monospace;box-sizing:border-box;width:100%;border:none;border-bottom:1px solid #3c424a;background-color:#25292e;color:#fff;text-align:left;padding:12px;height:100%;transition:all .3s ease-in-out;cursor:pointer;display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px;display:block}.et-qd-queries__browser-list li button span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.et-qd-queries__browser-list li button span:first-of-type{font-weight:700}.et-qd-queries__browser-list li button:hover,.et-qd-queries__browser-list li button.et-qd-query--active{background-color:#30363c}.et-qd-queries__browser-detail{padding:12px;overflow-y:auto;overflow-x:hidden}.et-qd-queries__browser-detail__title{margin:0;font-size:14px;color:#fff;font-weight:700}.et-qd-auth-provider__viewer{border-top:1px solid #3c424a;margin-left:-12px;margin-right:-12px;margin-bottom:-12px;padding:12px;overflow-y:auto;overflow-x:hidden}.et-qd-list{display:grid;gap:12px}.et-qd-list-item{display:grid}.et-qd-list-item p{font-weight:700;margin:0;padding-bottom:8px}.et-qd-list-item p+p{margin-top:-8px}.et-qd-list-item div+pre{margin-top:8px}.et-qd-list-item pre{margin:0;padding:4px;background-color:#0e1012;border-radius:4px;max-height:450px;overflow:auto}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: JsonPipe, name: "json" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: QueryShortNamePipe, name: "queryShortName" }, { kind: "directive", type: QueryDirective, selector: "[etQuery]", inputs: ["etQuery", "etQueryCache"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.ShadowDom }); }
|
|
288
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: QueryDevtoolsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
289
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: QueryDevtoolsComponent, isStandalone: true, selector: "et-query-devtools", host: { classAttribute: "et-query-devtools" }, ngImport: i0, template: "@if (!isOpen()) {\n <button (click)=\"toggleOpen()\" class=\"et-query-devtools-open-btn et-qd-chip\">Query Devtools</button>\n}\n\n@if (isOpen()) {\n <div\n [class.et-query-devtools-container--transparent]=\"isTranslucent()\"\n class=\"et-query-devtools-container et-query-devtools-container--snap-{{ snapLayout() }}\"\n >\n <header class=\"et-qd-header\">\n <h3 class=\"et-qd-header__title\">Query Devtools</h3>\n\n <div class=\"et-qd-header__select\">\n <label for=\"et-query-client-instance\">Client instance</label>\n <select [formControl]=\"selectedClientIdCtrl\" id=\"et-query-client-instance\">\n @for (clientConfig of queryClientConfigs; track trackByClient(i, clientConfig); let i = $index) {\n <option [value]=\"i\">\n {{ clientConfig.displayName ?? clientConfig.client.config.baseRoute }}\n </option>\n }\n </select>\n </div>\n\n <button (click)=\"toggleOpen()\" class=\"et-qd-btn et-qd-btn-secondary\">Close</button>\n </header>\n\n <div class=\"et-qd-sub-header\">\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': !isTranslucent() }\"\n (click)=\"toggleTranslucent()\"\n class=\"et-qd-chip et-qd-translucent-clickable\"\n >\n Translucent\n </button>\n <div class=\"et-qd-sub-header__divider\"></div>\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': snapLayout() !== 'full' }\"\n (click)=\"selectSnapLayout('full')\"\n class=\"et-qd-chip\"\n >\n Fullscreen\n </button>\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': snapLayout() !== 'top' }\"\n (click)=\"selectSnapLayout('top')\"\n class=\"et-qd-chip\"\n >\n Top\n </button>\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': snapLayout() !== 'bottom' }\"\n (click)=\"selectSnapLayout('bottom')\"\n class=\"et-qd-chip\"\n >\n Bottom\n </button>\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': snapLayout() !== 'left' }\"\n (click)=\"selectSnapLayout('left')\"\n class=\"et-qd-chip\"\n >\n Left\n </button>\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': snapLayout() !== 'right' }\"\n (click)=\"selectSnapLayout('right')\"\n class=\"et-qd-chip\"\n >\n Right\n </button>\n </div>\n\n @if (selectedClientConfig(); as cfg) {\n <div class=\"et-qd-client\">\n <p class=\"et-qd-client__title\">{{ cfg.displayName ?? cfg.client.config.baseRoute }}</p>\n\n <div class=\"et-qd-client__actions\">\n <button (click)=\"cfg.client._store.refreshQueriesInUse()\" class=\"et-qd-chip\">Refresh all</button>\n <button (click)=\"cfg.client._store.refreshQueriesInUse({ ignoreCacheValidity: true })\" class=\"et-qd-chip\">\n Refresh all (ignore caches)\n </button>\n <button\n (click)=\"cfg.client._store.refreshQueriesInUse({ ignoreCacheValidity: true, purgeUnused: true })\"\n class=\"et-qd-chip\"\n >\n Refresh all (ignore caches & purge unused)\n </button>\n </div>\n </div>\n }\n\n @if (selectedClientConfig(); as cfg) {\n <div class=\"et-qd-queries\">\n <p class=\"et-qd-queries__title\">Inspector</p>\n <div class=\"et-qd-queries__actions\">\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': queryListMode() !== 'live' || viewMode() !== 'query' }\"\n (click)=\"selectQueryListMode('live'); selectViewMode('query')\"\n class=\"et-qd-chip et-qd-chip-bordered\"\n >\n Live Queries ({{ queries()?.length ?? 0 }})\n </button>\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': queryListMode() !== 'history' || viewMode() !== 'query' }\"\n (click)=\"selectQueryListMode('history'); selectViewMode('query')\"\n class=\"et-qd-chip et-qd-chip-bordered\"\n >\n Query History ({{ (queryHistory$ | async)?.length ?? 0 }}/50)\n </button>\n @if (queryListMode() === 'history' && viewMode() === 'query') {\n <div class=\"et-qd-queries__divider\"></div>\n <button (click)=\"clearQueryHistory()\" class=\"et-qd-chip et-qd-chip-bordered\">Clear history</button>\n }\n\n <div class=\"et-qd-queries__divider\"></div>\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': viewMode() !== 'authProvider' }\"\n (click)=\"selectViewMode('authProvider')\"\n class=\"et-qd-chip et-qd-chip-bordered\"\n >\n Auth Provider\n </button>\n </div>\n\n @if (viewMode() === 'query') {\n <div class=\"et-qd-queries__browser\">\n @if (queryListMode() === 'live') {\n <ul class=\"et-qd-queries__browser-list\">\n @for (query of queries(); track trackByQuery($index, query)) {\n <li>\n <button\n [class.et-qd-query--active]=\"selectedQuery()?._id === query._id\"\n (click)=\"selectQuery(query)\"\n >\n <span> {{ query._queryConfig.method }}</span>\n <span> {{ query | queryShortName }}</span>\n </button>\n </li>\n }\n </ul>\n }\n @if (queryListMode() === 'history') {\n <ul class=\"et-qd-queries__browser-list\">\n @for (query of queryHistory$ | async; track trackByQuery($index, query)) {\n <li>\n <button\n [class.et-qd-query--active]=\"selectedQuery()?._id === query._id\"\n (click)=\"selectQuery(query)\"\n >\n <span> {{ query._queryConfig.method }}</span>\n <span> {{ query | queryShortName }}</span>\n </button>\n </li>\n }\n </ul>\n }\n <div class=\"et-qd-queries__browser-detail\">\n @if (selectedQuery(); as query) {\n <p class=\"et-qd-queries__browser-detail__title\">\n {{ query._queryConfig.method }} {{ query._routeWithParams }}\n </p>\n\n <div class=\"et-qd-queries__actions\">\n <button (click)=\"query.execute()\" class=\"et-qd-chip et-qd-chip-bordered\">Execute</button>\n <button (click)=\"query.execute({ skipCache: true })\" class=\"et-qd-chip et-qd-chip-bordered\">\n Execute (ignore cache)\n </button>\n\n <button (click)=\"query.abort()\" class=\"et-qd-chip et-qd-chip-bordered\">Abort</button>\n <div class=\"et-qd-queries__divider\"></div>\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': !query.isPolling }\"\n (click)=\"query.poll({ interval: 5000, takeUntil: _destroy$ })\"\n class=\"et-qd-chip et-qd-chip-bordered\"\n >\n Poll\n </button>\n\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': query.isPolling }\"\n (click)=\"query.stopPolling()\"\n class=\"et-qd-chip et-qd-chip-bordered\"\n >\n Stop polling\n </button>\n @if (query.isPolling || query._isPollingPaused) {\n <button (click)=\"query.pausePolling()\" class=\"et-qd-chip et-qd-chip-secondary et-qd-chip-bordered\">\n Pause polling\n </button>\n <button (click)=\"query.resumePolling()\" class=\"et-qd-chip et-qd-chip-secondary et-qd-chip-bordered\">\n Resume polling\n </button>\n }\n </div>\n\n <div class=\"et-qd-list\">\n <div class=\"et-qd-list-item\">\n <p>State type</p>\n <pre>{{ query.rawState.type }}</pre>\n </div>\n\n <div class=\"et-qd-list-item\">\n <p>Dependents</p>\n <pre>{{ query._dependents | json }}</pre>\n </div>\n\n <div class=\"et-qd-list-item\">\n <p>Is expired</p>\n <pre>{{ query.isExpired }}</pre>\n </div>\n\n <div class=\"et-qd-list-item\">\n <p>Is in use</p>\n <pre>{{ query.isInUse }}</pre>\n </div>\n\n <div class=\"et-qd-list-item\">\n <p>Subscriber count</p>\n <pre>{{ query._subscriberCount }}</pre>\n </div>\n\n <div class=\"et-qd-list-item\">\n <p>Is polling</p>\n <pre>{{ query.isPolling }}</pre>\n </div>\n\n <div class=\"et-qd-list-item\">\n <p>Is polling paused</p>\n <pre>{{ query._isPollingPaused }}</pre>\n </div>\n\n <div class=\"et-qd-list-item\">\n <p>Enable smart polling</p>\n <pre>{{ query._enableSmartPolling }}</pre>\n </div>\n\n <div class=\"et-qd-list-item\">\n <p>Query store key</p>\n <pre>{{ query._queryStoreKey }}</pre>\n </div>\n\n <div class=\"et-qd-list-item\">\n <p>Arguments</p>\n\n <div>\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': !showArguments() }\"\n (click)=\"toggleShowArguments()\"\n class=\"et-qd-chip et-qd-chip-bordered\"\n >\n Toggle\n </button>\n </div>\n @if (showArguments()) {\n <pre>{{ query._arguments | json }}</pre>\n }\n </div>\n\n <div class=\"et-qd-list-item\">\n <p>State</p>\n <p><i> Warning, this will cause a subscription if shown!</i></p>\n <div>\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': !showResponse() }\"\n (click)=\"toggleShowResponse()\"\n class=\"et-qd-chip et-qd-chip-bordered\"\n >\n Toggle\n </button>\n </div>\n @if (showResponse()) {\n <pre>{{ query.state$ | async | json }}</pre>\n }\n </div>\n\n <div class=\"et-qd-list-item\">\n <p>Raw state</p>\n <p><i> The query state unaffected by entity stores</i></p>\n\n <div>\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': !showRawResponse() }\"\n (click)=\"toggleShowRawResponse()\"\n class=\"et-qd-chip et-qd-chip-bordered\"\n >\n Toggle\n </button>\n </div>\n @if (showRawResponse()) {\n <pre>{{ query.rawState | json }}</pre>\n }\n </div>\n\n <div class=\"et-qd-list-item\">\n <p>Query config</p>\n\n <div>\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': !showQueryConfig() }\"\n (click)=\"toggleShowQueryConfig()\"\n class=\"et-qd-chip et-qd-chip-bordered\"\n >\n Toggle\n </button>\n </div>\n @if (showQueryConfig()) {\n <pre>{{ stringifiedQueryConfig() | json }}</pre>\n }\n </div>\n\n @if (!!query._queryConfig.entity) {\n <div class=\"et-qd-list-item\">\n <p>Entity store value</p>\n\n <div>\n <button\n [ngClass]=\"{ 'et-qd-chip-secondary': !showEntityStoreValue() }\"\n (click)=\"toggleShowEntityStoreValue()\"\n class=\"et-qd-chip et-qd-chip-bordered\"\n >\n Toggle\n </button>\n </div>\n @if (showEntityStoreValue()) {\n <pre>{{ selectedQueryEntityStoreValue$ | async | json }}</pre>\n }\n </div>\n }\n </div>\n }\n </div>\n </div>\n } @else if (viewMode() === 'authProvider') {\n <div class=\"et-qd-auth-provider__viewer\">\n @if (authProviderDetails(); as details) {\n <div class=\"et-qd-list\">\n <div class=\"et-qd-list-item\">\n <p>Type</p>\n <pre>{{ details.type }}</pre>\n </div>\n <div class=\"et-qd-list-item\">\n <p>Header value</p>\n <pre>{{ details.header() | json }}</pre>\n </div>\n <div class=\"et-qd-list-item\">\n <p>Config</p>\n <pre>{{ details.config | json }}</pre>\n </div>\n\n @if (details.type === 'BearerAuthProvider') {\n <div class=\"et-qd-list-item\">\n <p>Tokens</p>\n <pre>{{ details.provider.tokens$ | async | json }}</pre>\n </div>\n\n <div class=\"et-qd-list-item\">\n <p>Should refresh on unauthorized response</p>\n <pre>{{ details.provider.shouldRefreshOnUnauthorizedResponse }}</pre>\n </div>\n\n <ng-container\n *etQuery=\"\n details.provider.currentRefreshQuery$ | async as response;\n loading as loading;\n error as error;\n query as query\n \"\n >\n <div class=\"et-qd-list-item\">\n <p>Refresh query response</p>\n\n <div>\n <button (click)=\"details.provider._refreshQuery()\" class=\"et-qd-chip et-qd-chip-bordered\">\n Refresh\n </button>\n </div>\n <pre>{{ response | json }}</pre>\n </div>\n <div class=\"et-qd-list-item\">\n <p>Refresh query loading</p>\n <pre>{{ loading }}</pre>\n </div>\n <div class=\"et-qd-list-item\">\n <p>Refresh query error</p>\n <pre>{{ error ?? 'null' }}</pre>\n </div>\n <div class=\"et-qd-list-item\">\n <p>State</p>\n <pre>{{ query?.state$ | async | json }}</pre>\n </div>\n </ng-container>\n }\n </div>\n } @else {\n <p>No auth provider set</p>\n }\n </div>\n }\n </div>\n }\n </div>\n}\n", styles: [":host{position:fixed;top:0;z-index:1000000;font-size:14px;color:#fff}.et-query-devtools-container{position:fixed;inset:0;background-color:#25292e;z-index:10000;overflow:auto;font-family:monospace;display:grid;grid-template-rows:auto auto auto minmax(0,1fr)}.et-query-devtools-container.et-query-devtools-container--transparent{opacity:.25;pointer-events:none}.et-query-devtools-container.et-query-devtools-container--transparent .et-query-devtools-translucent-btn{pointer-events:all}.et-query-devtools-container.et-query-devtools-container--snap-left{inset-inline-start:0;inset-block-start:0;inset-block-end:0;width:50%;border-right:1px solid rgb(37,41,46)}.et-query-devtools-container.et-query-devtools-container--snap-right{inset-inline-start:unset;inset-inline-end:0;inset-block-start:0;inset-block-end:0;width:50%;border-left:1px solid rgb(37,41,46)}.et-query-devtools-container.et-query-devtools-container--snap-top{inset-inline-start:0;inset-block-start:0;inset-inline-end:0;height:50%;border-bottom:1px solid rgb(37,41,46)}.et-query-devtools-container.et-query-devtools-container--snap-bottom{inset-inline-start:0;inset-block-start:unset;inset-block-end:0;inset-inline-end:0;height:50%;border-top:1px solid rgb(37,41,46)}button.et-query-devtools-open-btn{position:fixed;inset-inline-end:20px;inset-block-end:0;z-index:9999;font-family:monospace;border-radius:3px 3px 0 0;line-height:14px;font-size:12px}.et-qd-header{background-color:#00ffa1;padding:12px;display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center}.et-qd-header__title{color:#25292e;margin:0;font-size:22px}.et-qd-header__select{display:grid;background-color:#25292e;border-radius:10px;overflow:hidden}.et-qd-header__select select{width:250px;color:#fff;padding:3px 10px 2px;border:none;background-color:#25292e;font-family:monospace}.et-qd-header__select label{padding:3px 10px;color:#25292e;font-size:12px;font-weight:700;color:#fff;border-bottom:1px solid gray}.et-qd-sub-header{background-color:#00b371;padding:12px;display:flex;gap:12px;flex-wrap:wrap}.et-qd-sub-header__divider{width:1px;background-color:#25292e}.et-qd-btn{background-color:#00ffa1;color:#25292e;border:none;padding:12px;cursor:pointer;font-size:14px;font-weight:700;text-align:center;text-decoration:none;display:inline-block;width:100%;transition:all .3s ease-in-out;font-family:monospace;border-radius:10px}.et-qd-btn:hover{background-color:#00cc81}.et-qd-btn.et-qd-btn-secondary{background-color:#25292e;color:#00ffa1}.et-qd-btn.et-qd-btn-secondary:hover{background-color:#3c424a}.et-qd-chip{background-color:#00ffa1;color:#25292e;border:none;padding:4px 9px;cursor:pointer;font-size:12px;font-weight:700;text-align:center;text-decoration:none;display:inline-block;transition:all .3s ease-in-out;font-family:monospace;border-radius:10px}.et-qd-chip:hover{background-color:#00cc81}.et-qd-chip.et-qd-chip-secondary{background-color:#25292e;color:#00ffa1}.et-qd-chip.et-qd-chip-secondary:hover{background-color:#3c424a}.et-qd-chip.et-qd-chip-bordered{border:1px solid rgb(0,255,161)}.et-qd-translucent-clickable{pointer-events:all}.et-qd-client{border-bottom:1px solid #3c424a;padding:12px}.et-qd-client__title{margin:0;font-size:14px;color:#fff;font-weight:700}.et-qd-client__actions{display:flex;gap:12px;margin-top:12px}.et-qd-queries{padding:12px;display:grid;grid-template-rows:auto auto minmax(0,1fr)}.et-qd-queries__actions{display:flex;gap:12px;margin-top:12px;margin-bottom:16px}.et-qd-queries__title{margin:0;font-size:14px;color:#fff;font-weight:700}.et-qd-queries__divider{width:1px;background-color:#3c424a}.et-qd-queries__browser{display:grid;grid-template-columns:1fr minmax(0,3fr);margin-left:-12px;margin-right:-12px;border-top:1px solid #3c424a;margin-bottom:-12px}.et-qd-queries__browser-list{border-right:1px solid #3c424a;list-style:none;padding:0;margin:0;display:grid;grid-auto-flow:row;grid-auto-rows:55px;overflow-y:auto;overflow-x:hidden}.et-qd-queries__browser-list li{margin:0}.et-qd-queries__browser-list li button{all:unset;font-family:monospace;box-sizing:border-box;width:100%;border:none;border-bottom:1px solid #3c424a;background-color:#25292e;color:#fff;text-align:left;padding:12px;height:100%;transition:all .3s ease-in-out;cursor:pointer;display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px;display:block}.et-qd-queries__browser-list li button span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.et-qd-queries__browser-list li button span:first-of-type{font-weight:700}.et-qd-queries__browser-list li button:hover,.et-qd-queries__browser-list li button.et-qd-query--active{background-color:#30363c}.et-qd-queries__browser-detail{padding:12px;overflow-y:auto;overflow-x:hidden}.et-qd-queries__browser-detail__title{margin:0;font-size:14px;color:#fff;font-weight:700}.et-qd-auth-provider__viewer{border-top:1px solid #3c424a;margin-left:-12px;margin-right:-12px;margin-bottom:-12px;padding:12px;overflow-y:auto;overflow-x:hidden}.et-qd-list{display:grid;gap:12px}.et-qd-list-item{display:grid}.et-qd-list-item p{font-weight:700;margin:0;padding-bottom:8px}.et-qd-list-item p+p{margin-top:-8px}.et-qd-list-item div+pre{margin-top:8px}.et-qd-list-item pre{margin:0;padding:4px;background-color:#0e1012;border-radius:4px;max-height:450px;overflow:auto}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: JsonPipe, name: "json" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: QueryShortNamePipe, name: "queryShortName" }, { kind: "directive", type: QueryDirective, selector: "[etQuery]", inputs: ["etQuery", "etQueryCache"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.ShadowDom }); }
|
|
290
290
|
}
|
|
291
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
291
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: QueryDevtoolsComponent, decorators: [{
|
|
292
292
|
type: Component,
|
|
293
293
|
args: [{ selector: 'et-query-devtools', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.ShadowDom, host: {
|
|
294
294
|
class: 'et-query-devtools',
|
|
@@ -14,10 +14,10 @@ export class QueryShortNamePipe {
|
|
|
14
14
|
}
|
|
15
15
|
return route;
|
|
16
16
|
}
|
|
17
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
18
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: QueryShortNamePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
18
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: QueryShortNamePipe, isStandalone: true, name: "queryShortName" }); }
|
|
19
19
|
}
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: QueryShortNamePipe, decorators: [{
|
|
21
21
|
type: Pipe,
|
|
22
22
|
args: [{ name: 'queryShortName', standalone: true }]
|
|
23
23
|
}] });
|
|
@@ -40,10 +40,10 @@ export class InfinityQueryTriggerDirective {
|
|
|
40
40
|
});
|
|
41
41
|
this._observer.observe(this._elementRef.nativeElement);
|
|
42
42
|
}
|
|
43
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
44
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.
|
|
43
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: InfinityQueryTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
44
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: InfinityQueryTriggerDirective, isStandalone: true, selector: "[etInfinityQueryTrigger], et-infinity-query-trigger", inputs: { scrollContainerSelector: "scrollContainerSelector" }, ngImport: i0 }); }
|
|
45
45
|
}
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: InfinityQueryTriggerDirective, decorators: [{
|
|
47
47
|
type: Directive,
|
|
48
48
|
args: [{
|
|
49
49
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
@@ -127,10 +127,10 @@ export class InfinityQueryDirective {
|
|
|
127
127
|
this._viewContext.currentQuery = null;
|
|
128
128
|
this._data$.next([]);
|
|
129
129
|
}
|
|
130
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
131
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.
|
|
130
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: InfinityQueryDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
131
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: InfinityQueryDirective, isStandalone: true, selector: "[etInfinityQuery]", inputs: { infinityQuery: ["etInfinityQuery", "infinityQuery"] }, providers: [{ provide: INFINITY_QUERY_TOKEN, useExisting: InfinityQueryDirective }], exportAs: ["etInfinityQuery"], hostDirectives: [{ directive: i1.DelayableDirective }], ngImport: i0 }); }
|
|
132
132
|
}
|
|
133
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
133
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: InfinityQueryDirective, decorators: [{
|
|
134
134
|
type: Directive,
|
|
135
135
|
args: [{
|
|
136
136
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
@@ -103,10 +103,10 @@ export class QueryDirective {
|
|
|
103
103
|
this._viewContainerRef.createEmbeddedView(this._mainTemplateRef, this._viewContext);
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
107
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.
|
|
106
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: QueryDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
107
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: QueryDirective, isStandalone: true, selector: "[etQuery]", inputs: { query: ["etQuery", "query"], cache: ["etQueryCache", "cache"] }, ngImport: i0 }); }
|
|
108
108
|
}
|
|
109
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
109
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: QueryDirective, decorators: [{
|
|
110
110
|
type: Directive,
|
|
111
111
|
args: [{
|
|
112
112
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
@@ -6,7 +6,7 @@ export const createBearerAuthProviderConfig = (options) => {
|
|
|
6
6
|
queryClientRef: options.queryClientRef,
|
|
7
7
|
token,
|
|
8
8
|
cookie: options.cookie,
|
|
9
|
-
expiresInPropertyName: options.expiresInPropertyName
|
|
9
|
+
expiresInPropertyName: options.expiresInPropertyName || 'exp',
|
|
10
10
|
refreshBuffer: options.refreshBuffer ?? 300000,
|
|
11
11
|
refreshOnUnauthorizedResponse: options.refreshOnUnauthorizedResponse ?? true,
|
|
12
12
|
login: options.login,
|
|
@@ -16,4 +16,4 @@ export const createBearerAuthProviderConfig = (options) => {
|
|
|
16
16
|
};
|
|
17
17
|
return bearerAuthProviderConfig;
|
|
18
18
|
};
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVhcmVyLWF1dGgtcHJvdmlkZXItY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL2V4cGVyaW1lbnRhbC9iZWFyZXItYXV0aC1wcm92aWRlci1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQXNKL0MsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsQ0FNNUMsT0FBK0csRUFDL0csRUFBRTtJQUNGLE1BQU0sS0FBSyxHQUFHLElBQUksY0FBYyxDQUU5QixzQkFBc0IsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFFeEMsTUFBTSx3QkFBd0IsR0FLMUI7UUFDRixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7UUFDbEIsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjO1FBQ3RDLEtBQUs7UUFDTCxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07UUFDdEIscUJBQXFCLEVBQUUsT0FBTyxDQUFDLHFCQUFxQixJQUFJLEtBQUs7UUFDN0QsYUFBYSxFQUFFLE9BQU8sQ0FBQyxhQUFhLElBQUksTUFBTTtRQUM5Qyw2QkFBNkIsRUFBRSxPQUFPLENBQUMsNkJBQTZCLElBQUksSUFBSTtRQUM1RSxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7UUFDcEIsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVO1FBQzlCLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtRQUM5QixZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVk7S0FDbkMsQ0FBQztJQUVGLE9BQU8sd0JBQXdCLENBQUM7QUFDbEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlYXJlckF1dGhQcm92aWRlciB9IGZyb20gJy4vYmVhcmVyLWF1dGgtcHJvdmlkZXInO1xuaW1wb3J0IHsgUXVlcnlBcmdzLCBSZXF1ZXN0QXJncywgUmVzcG9uc2VUeXBlIH0gZnJvbSAnLi9xdWVyeSc7XG5pbXBvcnQgeyBRdWVyeUNsaWVudFJlZiB9IGZyb20gJy4vcXVlcnktY2xpZW50LWNvbmZpZyc7XG5pbXBvcnQgeyBRdWVyeUNyZWF0b3IgfSBmcm9tICcuL3F1ZXJ5LWNyZWF0b3InO1xuXG5leHBvcnQgdHlwZSBCZWFyZXJBdXRoUHJvdmlkZXJUb2tlbnMgPSB7XG4gIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIHJlZnJlc2hUb2tlbjogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQmVhcmVyQXV0aFByb3ZpZGVyUm91dGVDb25maWc8VEFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3M+ID0ge1xuICBxdWVyeUNyZWF0b3I6IFF1ZXJ5Q3JlYXRvcjxUQXJncz47XG5cbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdGhhdCB0cmFuc2Zvcm1zIHRoZSByZXNwb25zZSBpbnRvIHRoZSBmb3JtYXQgdGhhdCB0aGUgYXV0aCBwcm92aWRlciBleHBlY3RzXG4gICAqXG4gICAqIFRoZSBleHBlY3RlZCBmb3JtYXQgaXMgYW4gb2JqZWN0IHdpdGggdGhlIGBhY2Nlc3NUb2tlbmAgYW5kIGByZWZyZXNoVG9rZW5gIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IChyZXNwb25zZSkgPT4gcmVzcG9uc2VcbiAgICovXG4gIHJlc3BvbnNlVHJhbnNmb3JtZXI/OiAocmVzcG9uc2U6IFJlc3BvbnNlVHlwZTxUQXJncz4pID0+IEJlYXJlckF1dGhQcm92aWRlclRva2Vucztcbn07XG5cbmV4cG9ydCB0eXBlIEJlYXJlckF1dGhQcm92aWRlckNvb2tpZUNvbmZpZzxUVG9rZW5SZWZyZXNoQXJncyBleHRlbmRzIFF1ZXJ5QXJncz4gPSB7XG4gIC8qKlxuICAgKiBUaGUgY29va2llIG5hbWUgd2hlcmUgdGhlIHJlZnJlc2ggdG9rZW4gaXMgc3RvcmVkXG4gICAqIEBkZWZhdWx0ICdldEF1dGgnXG4gICAqL1xuICBuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZG9tYWluIG9mIHRoZSBjb29raWUuIElmIG5vdCBzZXQsIHRoZSBjdXJyZW50IG9yaWdpbiB3aWxsIGJlIHVzZWQuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIFwiaHR0cHM6Ly9leGFtcGxlLmNvbVwiIC0+IFwiZXhhbXBsZS5jb21cIlxuICAgKiBcImh0dHBzOi8vc3ViLmV4YW1wbGUuY29tXCIgLT4gXCJleGFtcGxlLmNvbVwiXG4gICAqL1xuICBkb21haW4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkYXlzIHVudGlsIHRoZSBjb29raWUgZXhwaXJlc1xuICAgKiBAZGVmYXVsdCAzMFxuICAgKi9cbiAgZXhwaXJlc0luRGF5cz86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHBhdGggb2YgdGhlIGNvb2tpZVxuICAgKiBAZGVmYXVsdCAnLydcbiAgICovXG4gIHBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBvciBkaXNhYmxlIHRoZSBjb29raWVcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgZW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBzYW1lIHNpdGUgcHJvcGVydHkgb2YgdGhlIGNvb2tpZVxuICAgKiBAZGVmYXVsdCAnbGF4J1xuICAgKi9cbiAgc2FtZVNpdGU/OiAnc3RyaWN0JyB8ICdub25lJyB8ICdsYXgnO1xuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHRoYXQgdHVybnMgdGhlIHRva2VuIGdvdHRlbiBmcm9tIHRoZSBjb29raWUgaW50byB0aGUgYm9keSBmb3IgdGhlIHJlZnJlc2ggdG9rZW4gcmVxdWVzdFxuICAgKiBAZGVmYXVsdCAodG9rZW4pID0+ICh7IHRva2VuIH0pXG4gICAqL1xuICByZWZyZXNoQXJnc1RyYW5zZm9ybWVyPzogKHRva2VuOiBzdHJpbmcpID0+IFJlcXVlc3RBcmdzPFRUb2tlblJlZnJlc2hBcmdzPjtcbn07XG5cbmV4cG9ydCB0eXBlIENyZWF0ZUJlYXJlckF1dGhQcm92aWRlckNvbmZpZ09wdGlvbnM8XG4gIFRMb2dpbkFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3MsXG4gIFRUb2tlbkxvZ2luQXJncyBleHRlbmRzIFF1ZXJ5QXJncyxcbiAgVFRva2VuUmVmcmVzaEFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3MsXG4gIFRTZWxlY3RSb2xlQXJncyBleHRlbmRzIFF1ZXJ5QXJncyxcbj4gPSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgYXV0aCBwcm92aWRlclxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcXVlcnkgY2xpZW50IHJlZmVyZW5jZVxuICAgKi9cbiAgcXVlcnlDbGllbnRSZWY6IFF1ZXJ5Q2xpZW50UmVmO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9naW4gcm91dGUgY29uZmlndXJhdGlvblxuICAgKi9cbiAgbG9naW4/OiBCZWFyZXJBdXRoUHJvdmlkZXJSb3V0ZUNvbmZpZzxUTG9naW5BcmdzPjtcblxuICAvKipcbiAgICogVGhlIHRva2VuIGxvZ2luIHJvdXRlIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHRva2VuTG9naW4/OiBCZWFyZXJBdXRoUHJvdmlkZXJSb3V0ZUNvbmZpZzxUVG9rZW5Mb2dpbkFyZ3M+O1xuXG4gIC8qKlxuICAgKiBUaGUgdG9rZW4gcmVmcmVzaCByb3V0ZSBjb25maWd1cmF0aW9uXG4gICAqL1xuICB0b2tlblJlZnJlc2g/OiBCZWFyZXJBdXRoUHJvdmlkZXJSb3V0ZUNvbmZpZzxUVG9rZW5SZWZyZXNoQXJncz47XG5cbiAgLyoqXG4gICAqIFRoZSBzZWxlY3Qgcm9sZSByb3V0ZSBjb25maWd1cmF0aW9uXG4gICAqL1xuICBzZWxlY3RSb2xlPzogQmVhcmVyQXV0aFByb3ZpZGVyUm91dGVDb25maWc8VFNlbGVjdFJvbGVBcmdzPjtcblxuICAvKipcbiAgICogVGhlIGNvb2tpZSBjb25maWd1cmF0aW9uIGZvciB0aGUgYXV0aCBwcm92aWRlclxuICAgKi9cbiAgY29va2llPzogQmVhcmVyQXV0aFByb3ZpZGVyQ29va2llQ29uZmlnPFRUb2tlblJlZnJlc2hBcmdzPjtcblxuICAvKipcbiAgICogVGhlIHRpbWUgaW4gbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdG9rZW4gZXhwaXJlcyB3aGVuIHRoZSByZWZyZXNoIHNob3VsZCBiZSB0cmlnZ2VyZWQuXG4gICAqIEBkZWZhdWx0IDMwMDAwMCAvLyAoNSBtaW51dGVzKVxuICAgKi9cbiAgcmVmcmVzaEJ1ZmZlcj86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGV4cGlyZXMgaW4gcHJvcGVydHkgbmFtZSBpbnNpZGUgdGhlIGp3dCBib2R5XG4gICAqIEBkZWZhdWx0ICdleHAnXG4gICAqL1xuICBleHBpcmVzSW5Qcm9wZXJ0eU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgdGhlIHRva2VuIHNob3VsZCBiZSByZWZyZXNoZWQgaWYgKiphbnkqKiBxdWVyeSByZXR1cm5zIGEgNDAxIHJlc3BvbnNlLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWZyZXNoT25VbmF1dGhvcml6ZWRSZXNwb25zZT86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBCZWFyZXJBdXRoUHJvdmlkZXJDb25maWc8XG4gIFRMb2dpbkFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3MsXG4gIFRUb2tlbkxvZ2luQXJncyBleHRlbmRzIFF1ZXJ5QXJncyxcbiAgVFRva2VuUmVmcmVzaEFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3MsXG4gIFRTZWxlY3RSb2xlQXJncyBleHRlbmRzIFF1ZXJ5QXJncyxcbj4gPSBDcmVhdGVCZWFyZXJBdXRoUHJvdmlkZXJDb25maWdPcHRpb25zPFRMb2dpbkFyZ3MsIFRUb2tlbkxvZ2luQXJncywgVFRva2VuUmVmcmVzaEFyZ3MsIFRTZWxlY3RSb2xlQXJncz4gJiB7XG4gIHRva2VuOiBCZWFyZXJBdXRoUHJvdmlkZXJSZWY8VExvZ2luQXJncywgVFRva2VuTG9naW5BcmdzLCBUVG9rZW5SZWZyZXNoQXJncywgVFNlbGVjdFJvbGVBcmdzPjtcbn07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgdHlwZSBBbnlCZWFyZXJBdXRoUHJvdmlkZXJDb25maWcgPSBCZWFyZXJBdXRoUHJvdmlkZXJDb25maWc8YW55LCBhbnksIGFueSwgYW55PjtcblxuZXhwb3J0IHR5cGUgQmVhcmVyQXV0aFByb3ZpZGVyUmVmPFxuICBUTG9naW5BcmdzIGV4dGVuZHMgUXVlcnlBcmdzLFxuICBUVG9rZW5Mb2dpbkFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3MsXG4gIFRUb2tlblJlZnJlc2hBcmdzIGV4dGVuZHMgUXVlcnlBcmdzLFxuICBUU2VsZWN0Um9sZUFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3MsXG4+ID0gSW5qZWN0aW9uVG9rZW48QmVhcmVyQXV0aFByb3ZpZGVyPFRMb2dpbkFyZ3MsIFRUb2tlbkxvZ2luQXJncywgVFRva2VuUmVmcmVzaEFyZ3MsIFRTZWxlY3RSb2xlQXJncz4+O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlQmVhcmVyQXV0aFByb3ZpZGVyQ29uZmlnID0gPFxuICBUTG9naW5BcmdzIGV4dGVuZHMgUXVlcnlBcmdzLFxuICBUVG9rZW5Mb2dpbkFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3MsXG4gIFRUb2tlblJlZnJlc2hBcmdzIGV4dGVuZHMgUXVlcnlBcmdzLFxuICBUU2VsZWN0Um9sZUFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3MsXG4+KFxuICBvcHRpb25zOiBDcmVhdGVCZWFyZXJBdXRoUHJvdmlkZXJDb25maWdPcHRpb25zPFRMb2dpbkFyZ3MsIFRUb2tlbkxvZ2luQXJncywgVFRva2VuUmVmcmVzaEFyZ3MsIFRTZWxlY3RSb2xlQXJncz4sXG4pID0+IHtcbiAgY29uc3QgdG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48XG4gICAgQmVhcmVyQXV0aFByb3ZpZGVyQ29uZmlnPFRMb2dpbkFyZ3MsIFRUb2tlbkxvZ2luQXJncywgVFRva2VuUmVmcmVzaEFyZ3MsIFRTZWxlY3RSb2xlQXJncz5cbiAgPihgQmVhcmVyQXV0aFByb3ZpZGVyXyR7b3B0aW9ucy5uYW1lfWApO1xuXG4gIGNvbnN0IGJlYXJlckF1dGhQcm92aWRlckNvbmZpZzogQmVhcmVyQXV0aFByb3ZpZGVyQ29uZmlnPFxuICAgIFRMb2dpbkFyZ3MsXG4gICAgVFRva2VuTG9naW5BcmdzLFxuICAgIFRUb2tlblJlZnJlc2hBcmdzLFxuICAgIFRTZWxlY3RSb2xlQXJnc1xuICA+
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVhcmVyLWF1dGgtcHJvdmlkZXItY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL2V4cGVyaW1lbnRhbC9iZWFyZXItYXV0aC1wcm92aWRlci1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQXNKL0MsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsQ0FNNUMsT0FBK0csRUFDL0csRUFBRTtJQUNGLE1BQU0sS0FBSyxHQUFHLElBQUksY0FBYyxDQUU5QixzQkFBc0IsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFFeEMsTUFBTSx3QkFBd0IsR0FLMUI7UUFDRixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7UUFDbEIsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjO1FBQ3RDLEtBQUs7UUFDTCxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07UUFDdEIscUJBQXFCLEVBQUUsT0FBTyxDQUFDLHFCQUFxQixJQUFJLEtBQUs7UUFDN0QsYUFBYSxFQUFFLE9BQU8sQ0FBQyxhQUFhLElBQUksTUFBTTtRQUM5Qyw2QkFBNkIsRUFBRSxPQUFPLENBQUMsNkJBQTZCLElBQUksSUFBSTtRQUM1RSxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7UUFDcEIsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVO1FBQzlCLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtRQUM5QixZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVk7S0FDbkMsQ0FBQztJQUVGLE9BQU8sd0JBQXdCLENBQUM7QUFDbEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlYXJlckF1dGhQcm92aWRlciB9IGZyb20gJy4vYmVhcmVyLWF1dGgtcHJvdmlkZXInO1xuaW1wb3J0IHsgUXVlcnlBcmdzLCBSZXF1ZXN0QXJncywgUmVzcG9uc2VUeXBlIH0gZnJvbSAnLi9xdWVyeSc7XG5pbXBvcnQgeyBRdWVyeUNsaWVudFJlZiB9IGZyb20gJy4vcXVlcnktY2xpZW50LWNvbmZpZyc7XG5pbXBvcnQgeyBRdWVyeUNyZWF0b3IgfSBmcm9tICcuL3F1ZXJ5LWNyZWF0b3InO1xuXG5leHBvcnQgdHlwZSBCZWFyZXJBdXRoUHJvdmlkZXJUb2tlbnMgPSB7XG4gIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIHJlZnJlc2hUb2tlbjogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQmVhcmVyQXV0aFByb3ZpZGVyUm91dGVDb25maWc8VEFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3M+ID0ge1xuICBxdWVyeUNyZWF0b3I6IFF1ZXJ5Q3JlYXRvcjxUQXJncz47XG5cbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdGhhdCB0cmFuc2Zvcm1zIHRoZSByZXNwb25zZSBpbnRvIHRoZSBmb3JtYXQgdGhhdCB0aGUgYXV0aCBwcm92aWRlciBleHBlY3RzXG4gICAqXG4gICAqIFRoZSBleHBlY3RlZCBmb3JtYXQgaXMgYW4gb2JqZWN0IHdpdGggdGhlIGBhY2Nlc3NUb2tlbmAgYW5kIGByZWZyZXNoVG9rZW5gIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IChyZXNwb25zZSkgPT4gcmVzcG9uc2VcbiAgICovXG4gIHJlc3BvbnNlVHJhbnNmb3JtZXI/OiAocmVzcG9uc2U6IFJlc3BvbnNlVHlwZTxUQXJncz4pID0+IEJlYXJlckF1dGhQcm92aWRlclRva2Vucztcbn07XG5cbmV4cG9ydCB0eXBlIEJlYXJlckF1dGhQcm92aWRlckNvb2tpZUNvbmZpZzxUVG9rZW5SZWZyZXNoQXJncyBleHRlbmRzIFF1ZXJ5QXJncz4gPSB7XG4gIC8qKlxuICAgKiBUaGUgY29va2llIG5hbWUgd2hlcmUgdGhlIHJlZnJlc2ggdG9rZW4gaXMgc3RvcmVkXG4gICAqIEBkZWZhdWx0ICdldEF1dGgnXG4gICAqL1xuICBuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZG9tYWluIG9mIHRoZSBjb29raWUuIElmIG5vdCBzZXQsIHRoZSBjdXJyZW50IG9yaWdpbiB3aWxsIGJlIHVzZWQuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIFwiaHR0cHM6Ly9leGFtcGxlLmNvbVwiIC0+IFwiZXhhbXBsZS5jb21cIlxuICAgKiBcImh0dHBzOi8vc3ViLmV4YW1wbGUuY29tXCIgLT4gXCJleGFtcGxlLmNvbVwiXG4gICAqL1xuICBkb21haW4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkYXlzIHVudGlsIHRoZSBjb29raWUgZXhwaXJlc1xuICAgKiBAZGVmYXVsdCAzMFxuICAgKi9cbiAgZXhwaXJlc0luRGF5cz86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHBhdGggb2YgdGhlIGNvb2tpZVxuICAgKiBAZGVmYXVsdCAnLydcbiAgICovXG4gIHBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBvciBkaXNhYmxlIHRoZSBjb29raWVcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgZW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBzYW1lIHNpdGUgcHJvcGVydHkgb2YgdGhlIGNvb2tpZVxuICAgKiBAZGVmYXVsdCAnbGF4J1xuICAgKi9cbiAgc2FtZVNpdGU/OiAnc3RyaWN0JyB8ICdub25lJyB8ICdsYXgnO1xuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHRoYXQgdHVybnMgdGhlIHRva2VuIGdvdHRlbiBmcm9tIHRoZSBjb29raWUgaW50byB0aGUgYm9keSBmb3IgdGhlIHJlZnJlc2ggdG9rZW4gcmVxdWVzdFxuICAgKiBAZGVmYXVsdCAodG9rZW4pID0+ICh7IHRva2VuIH0pXG4gICAqL1xuICByZWZyZXNoQXJnc1RyYW5zZm9ybWVyPzogKHRva2VuOiBzdHJpbmcpID0+IFJlcXVlc3RBcmdzPFRUb2tlblJlZnJlc2hBcmdzPjtcbn07XG5cbmV4cG9ydCB0eXBlIENyZWF0ZUJlYXJlckF1dGhQcm92aWRlckNvbmZpZ09wdGlvbnM8XG4gIFRMb2dpbkFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3MsXG4gIFRUb2tlbkxvZ2luQXJncyBleHRlbmRzIFF1ZXJ5QXJncyxcbiAgVFRva2VuUmVmcmVzaEFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3MsXG4gIFRTZWxlY3RSb2xlQXJncyBleHRlbmRzIFF1ZXJ5QXJncyxcbj4gPSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgYXV0aCBwcm92aWRlclxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcXVlcnkgY2xpZW50IHJlZmVyZW5jZVxuICAgKi9cbiAgcXVlcnlDbGllbnRSZWY6IFF1ZXJ5Q2xpZW50UmVmO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9naW4gcm91dGUgY29uZmlndXJhdGlvblxuICAgKi9cbiAgbG9naW4/OiBCZWFyZXJBdXRoUHJvdmlkZXJSb3V0ZUNvbmZpZzxUTG9naW5BcmdzPjtcblxuICAvKipcbiAgICogVGhlIHRva2VuIGxvZ2luIHJvdXRlIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHRva2VuTG9naW4/OiBCZWFyZXJBdXRoUHJvdmlkZXJSb3V0ZUNvbmZpZzxUVG9rZW5Mb2dpbkFyZ3M+O1xuXG4gIC8qKlxuICAgKiBUaGUgdG9rZW4gcmVmcmVzaCByb3V0ZSBjb25maWd1cmF0aW9uXG4gICAqL1xuICB0b2tlblJlZnJlc2g/OiBCZWFyZXJBdXRoUHJvdmlkZXJSb3V0ZUNvbmZpZzxUVG9rZW5SZWZyZXNoQXJncz47XG5cbiAgLyoqXG4gICAqIFRoZSBzZWxlY3Qgcm9sZSByb3V0ZSBjb25maWd1cmF0aW9uXG4gICAqL1xuICBzZWxlY3RSb2xlPzogQmVhcmVyQXV0aFByb3ZpZGVyUm91dGVDb25maWc8VFNlbGVjdFJvbGVBcmdzPjtcblxuICAvKipcbiAgICogVGhlIGNvb2tpZSBjb25maWd1cmF0aW9uIGZvciB0aGUgYXV0aCBwcm92aWRlclxuICAgKi9cbiAgY29va2llPzogQmVhcmVyQXV0aFByb3ZpZGVyQ29va2llQ29uZmlnPFRUb2tlblJlZnJlc2hBcmdzPjtcblxuICAvKipcbiAgICogVGhlIHRpbWUgaW4gbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdG9rZW4gZXhwaXJlcyB3aGVuIHRoZSByZWZyZXNoIHNob3VsZCBiZSB0cmlnZ2VyZWQuXG4gICAqIEBkZWZhdWx0IDMwMDAwMCAvLyAoNSBtaW51dGVzKVxuICAgKi9cbiAgcmVmcmVzaEJ1ZmZlcj86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGV4cGlyZXMgaW4gcHJvcGVydHkgbmFtZSBpbnNpZGUgdGhlIGp3dCBib2R5XG4gICAqIEBkZWZhdWx0ICdleHAnXG4gICAqL1xuICBleHBpcmVzSW5Qcm9wZXJ0eU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgdGhlIHRva2VuIHNob3VsZCBiZSByZWZyZXNoZWQgaWYgKiphbnkqKiBxdWVyeSByZXR1cm5zIGEgNDAxIHJlc3BvbnNlLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWZyZXNoT25VbmF1dGhvcml6ZWRSZXNwb25zZT86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBCZWFyZXJBdXRoUHJvdmlkZXJDb25maWc8XG4gIFRMb2dpbkFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3MsXG4gIFRUb2tlbkxvZ2luQXJncyBleHRlbmRzIFF1ZXJ5QXJncyxcbiAgVFRva2VuUmVmcmVzaEFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3MsXG4gIFRTZWxlY3RSb2xlQXJncyBleHRlbmRzIFF1ZXJ5QXJncyxcbj4gPSBDcmVhdGVCZWFyZXJBdXRoUHJvdmlkZXJDb25maWdPcHRpb25zPFRMb2dpbkFyZ3MsIFRUb2tlbkxvZ2luQXJncywgVFRva2VuUmVmcmVzaEFyZ3MsIFRTZWxlY3RSb2xlQXJncz4gJiB7XG4gIHRva2VuOiBCZWFyZXJBdXRoUHJvdmlkZXJSZWY8VExvZ2luQXJncywgVFRva2VuTG9naW5BcmdzLCBUVG9rZW5SZWZyZXNoQXJncywgVFNlbGVjdFJvbGVBcmdzPjtcbn07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgdHlwZSBBbnlCZWFyZXJBdXRoUHJvdmlkZXJDb25maWcgPSBCZWFyZXJBdXRoUHJvdmlkZXJDb25maWc8YW55LCBhbnksIGFueSwgYW55PjtcblxuZXhwb3J0IHR5cGUgQmVhcmVyQXV0aFByb3ZpZGVyUmVmPFxuICBUTG9naW5BcmdzIGV4dGVuZHMgUXVlcnlBcmdzLFxuICBUVG9rZW5Mb2dpbkFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3MsXG4gIFRUb2tlblJlZnJlc2hBcmdzIGV4dGVuZHMgUXVlcnlBcmdzLFxuICBUU2VsZWN0Um9sZUFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3MsXG4+ID0gSW5qZWN0aW9uVG9rZW48QmVhcmVyQXV0aFByb3ZpZGVyPFRMb2dpbkFyZ3MsIFRUb2tlbkxvZ2luQXJncywgVFRva2VuUmVmcmVzaEFyZ3MsIFRTZWxlY3RSb2xlQXJncz4+O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlQmVhcmVyQXV0aFByb3ZpZGVyQ29uZmlnID0gPFxuICBUTG9naW5BcmdzIGV4dGVuZHMgUXVlcnlBcmdzLFxuICBUVG9rZW5Mb2dpbkFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3MsXG4gIFRUb2tlblJlZnJlc2hBcmdzIGV4dGVuZHMgUXVlcnlBcmdzLFxuICBUU2VsZWN0Um9sZUFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3MsXG4+KFxuICBvcHRpb25zOiBDcmVhdGVCZWFyZXJBdXRoUHJvdmlkZXJDb25maWdPcHRpb25zPFRMb2dpbkFyZ3MsIFRUb2tlbkxvZ2luQXJncywgVFRva2VuUmVmcmVzaEFyZ3MsIFRTZWxlY3RSb2xlQXJncz4sXG4pID0+IHtcbiAgY29uc3QgdG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48XG4gICAgQmVhcmVyQXV0aFByb3ZpZGVyQ29uZmlnPFRMb2dpbkFyZ3MsIFRUb2tlbkxvZ2luQXJncywgVFRva2VuUmVmcmVzaEFyZ3MsIFRTZWxlY3RSb2xlQXJncz5cbiAgPihgQmVhcmVyQXV0aFByb3ZpZGVyXyR7b3B0aW9ucy5uYW1lfWApO1xuXG4gIGNvbnN0IGJlYXJlckF1dGhQcm92aWRlckNvbmZpZzogQmVhcmVyQXV0aFByb3ZpZGVyQ29uZmlnPFxuICAgIFRMb2dpbkFyZ3MsXG4gICAgVFRva2VuTG9naW5BcmdzLFxuICAgIFRUb2tlblJlZnJlc2hBcmdzLFxuICAgIFRTZWxlY3RSb2xlQXJnc1xuICA+ID0ge1xuICAgIG5hbWU6IG9wdGlvbnMubmFtZSxcbiAgICBxdWVyeUNsaWVudFJlZjogb3B0aW9ucy5xdWVyeUNsaWVudFJlZixcbiAgICB0b2tlbixcbiAgICBjb29raWU6IG9wdGlvbnMuY29va2llLFxuICAgIGV4cGlyZXNJblByb3BlcnR5TmFtZTogb3B0aW9ucy5leHBpcmVzSW5Qcm9wZXJ0eU5hbWUgfHwgJ2V4cCcsXG4gICAgcmVmcmVzaEJ1ZmZlcjogb3B0aW9ucy5yZWZyZXNoQnVmZmVyID8/IDMwMDAwMCxcbiAgICByZWZyZXNoT25VbmF1dGhvcml6ZWRSZXNwb25zZTogb3B0aW9ucy5yZWZyZXNoT25VbmF1dGhvcml6ZWRSZXNwb25zZSA/PyB0cnVlLFxuICAgIGxvZ2luOiBvcHRpb25zLmxvZ2luLFxuICAgIHNlbGVjdFJvbGU6IG9wdGlvbnMuc2VsZWN0Um9sZSxcbiAgICB0b2tlbkxvZ2luOiBvcHRpb25zLnRva2VuTG9naW4sXG4gICAgdG9rZW5SZWZyZXNoOiBvcHRpb25zLnRva2VuUmVmcmVzaCxcbiAgfTtcblxuICByZXR1cm4gYmVhcmVyQXV0aFByb3ZpZGVyQ29uZmlnO1xufTtcbiJdfQ==
|
|
@@ -48,7 +48,7 @@ const createAuthProviderQuery = (config, authProviderConfig) => {
|
|
|
48
48
|
return remainingTime;
|
|
49
49
|
});
|
|
50
50
|
const execute = (newArgs, options) => {
|
|
51
|
-
query.execute(newArgs);
|
|
51
|
+
query.execute({ args: newArgs });
|
|
52
52
|
triggeredInternally.set(options?.triggeredInternally ?? false);
|
|
53
53
|
};
|
|
54
54
|
return {
|
|
@@ -242,4 +242,4 @@ export const provideBearerAuthProvider = (config) => {
|
|
|
242
242
|
useFactory: () => createBearerAuthProvider(config),
|
|
243
243
|
};
|
|
244
244
|
};
|
|
245
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVhcmVyLWF1dGgtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvZXhwZXJpbWVudGFsL2JlYXJlci1hdXRoLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlEQUF5RDtBQUd6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUUsT0FBTyxFQUFFLFlBQVksSUFBSSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBUXhDLE9BQU8sRUFDTCxnQ0FBZ0MsRUFDaEMsaUNBQWlDLEVBQ2pDLDBEQUEwRCxFQUMxRCwyREFBMkQsRUFDM0QsMkNBQTJDLEVBQzNDLHNDQUFzQyxFQUN0QyxxQ0FBcUMsRUFDckMsd0JBQXdCLEVBQ3hCLGlDQUFpQyxFQUNqQywrQkFBK0IsRUFDL0IsNkJBQTZCLEVBQzdCLDBCQUEwQixHQUMzQixNQUFNLGdCQUFnQixDQUFDO0FBaUh4QixNQUFNLDBCQUEwQixHQUFHLENBQUksUUFBVyxFQUFFLEVBQUU7SUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sMkNBQTJDLENBQUMsT0FBTyxRQUFRLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsSUFBSSxDQUFDLENBQUMsYUFBYSxJQUFJLFFBQVEsQ0FBQyxF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QUFjO1FBQ2QsWUFBWTtRQUNaLFVBQVU7UUFDVixNQUFNO1FBQ04sWUFBWTtRQUNaLGFBQWE7UUFDYixrQkFBa0I7UUFDbEIsbUJBQW1CLEVBQUUsc0JBQXNCLENBQUMsVUFBVSxFQUFFO1FBQ3hELE1BQU07S0FDUCxDQUFDO0lBRUYsSUFBSSxhQUFhLEVBQUUsRUFBRSxDQUFDO1FBQ3BCLGtCQUFrQixFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELE9BQU8sa0JBQWtCLENBQUM7QUFDNUIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsQ0FNdkMsTUFBaUcsRUFDakcsRUFBRTtJQUNGLE9BQU87UUFDTCxPQUFPLEVBQUUsTUFBTSxDQUFDLEtBQUs7UUFDckIsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQztLQUNuRCxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uICovXG5cbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgY29tcHV0ZWQsIGVmZmVjdCwgaXNEZXZNb2RlLCBTaWduYWwsIHNpZ25hbCwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQsIHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGRlbGV0ZUNvb2tpZSBhcyBjb3JlRGVsZXRlQ29va2llLCBnZXRDb29raWUsIGdldERvbWFpbiwgaXNPYmplY3QsIHNldENvb2tpZSB9IGZyb20gJ0BldGhsZXRlL2NvcmUnO1xuaW1wb3J0IHsgb2YsIHN3aXRjaE1hcCwgdGFwLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVjcnlwdEJlYXJlciB9IGZyb20gJy4uL2F1dGgnO1xuaW1wb3J0IHtcbiAgQmVhcmVyQXV0aFByb3ZpZGVyQ29uZmlnLFxuICBCZWFyZXJBdXRoUHJvdmlkZXJDb29raWVDb25maWcsXG4gIEJlYXJlckF1dGhQcm92aWRlclJvdXRlQ29uZmlnLFxuICBCZWFyZXJBdXRoUHJvdmlkZXJUb2tlbnMsXG59IGZyb20gJy4vYmVhcmVyLWF1dGgtcHJvdmlkZXItY29uZmlnJztcbmltcG9ydCB7IFF1ZXJ5QXJncywgUXVlcnlTbmFwc2hvdCwgUmVxdWVzdEFyZ3MgfSBmcm9tICcuL3F1ZXJ5JztcbmltcG9ydCB7XG4gIGJlYXJlckV4cGlyZXNJblByb3BlcnR5Tm90TnVtYmVyLFxuICBjb29raWVMb2dpblRyaWVkQnV0Q29va2llRGlzYWJsZWQsXG4gIGRlZmF1bHRSZXNwb25zZVRyYW5zZm9ybWVyUmVzcG9uc2VOb3RDb250YWluaW5nQWNjZXNzVG9rZW4sXG4gIGRlZmF1bHRSZXNwb25zZVRyYW5zZm9ybWVyUmVzcG9uc2VOb3RDb250YWluaW5nUmVmcmVzaFRva2VuLFxuICBkZWZhdWx0UmVzcG9uc2VUcmFuc2Zvcm1lclJlc3BvbnNlTm90T2JqZWN0LFxuICBkaXNhYmxlQ29va2llQ2FsbGVkV2l0aG91dENvb2tpZUNvbmZpZyxcbiAgZW5hYmxlQ29va2llQ2FsbGVkV2l0aG91dENvb2tpZUNvbmZpZyxcbiAgbG9naW5DYWxsZWRXaXRob3V0Q29uZmlnLFxuICBsb2dpbldpdGhUb2tlbkNhbGxlZFdpdGhvdXRDb25maWcsXG4gIHJlZnJlc2hUb2tlbkNhbGxlZFdpdGhvdXRDb25maWcsXG4gIHNlbGVjdFJvbGVDYWxsZWRXaXRob3V0Q29uZmlnLFxuICB1bmFibGVUb0RlY3J5cHRCZWFyZXJUb2tlbixcbn0gZnJvbSAnLi9xdWVyeS1lcnJvcnMnO1xuXG50eXBlIEludGVybmFsUXVlcnlFeGVjdXRlT3B0aW9ucyA9IHtcbiAgdHJpZ2dlcmVkSW50ZXJuYWxseT86IGJvb2xlYW47XG59O1xuXG50eXBlIEF1dGhQcm92aWRlclF1ZXJ5V2l0aFR5cGU8XG4gIFRMb2dpbkFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3MsXG4gIFRUb2tlbkxvZ2luQXJncyBleHRlbmRzIFF1ZXJ5QXJncyxcbiAgVFRva2VuUmVmcmVzaEFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3MsXG4gIFRTZWxlY3RSb2xlQXJncyBleHRlbmRzIFF1ZXJ5QXJncyxcbj4gPVxuICB8IHtcbiAgICAgIHR5cGU6ICdsb2dpbic7XG4gICAgICBxdWVyeTogUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlQXV0aFByb3ZpZGVyUXVlcnk8VExvZ2luQXJncz4+IHwgbnVsbDtcbiAgICB9XG4gIHwge1xuICAgICAgdHlwZTogJ3Rva2VuTG9naW4nO1xuICAgICAgcXVlcnk6IFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZUF1dGhQcm92aWRlclF1ZXJ5PFRUb2tlbkxvZ2luQXJncz4+IHwgbnVsbDtcbiAgICB9XG4gIHwge1xuICAgICAgdHlwZTogJ3Rva2VuUmVmcmVzaCc7XG4gICAgICBxdWVyeTogUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlQXV0aFByb3ZpZGVyUXVlcnk8VFRva2VuUmVmcmVzaEFyZ3M+PiB8IG51bGw7XG4gICAgfVxuICB8IHtcbiAgICAgIHR5cGU6ICdzZWxlY3RSb2xlJztcbiAgICAgIHF1ZXJ5OiBSZXR1cm5UeXBlPHR5cGVvZiBjcmVhdGVBdXRoUHJvdmlkZXJRdWVyeTxUU2VsZWN0Um9sZUFyZ3M+PiB8IG51bGw7XG4gICAgfTtcblxudHlwZSBRdWVyeVNuYXBzaG90V2l0aFR5cGU8XG4gIFRMb2dpbkFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3MsXG4gIFRUb2tlbkxvZ2luQXJncyBleHRlbmRzIFF1ZXJ5QXJncyxcbiAgVFRva2VuUmVmcmVzaEFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3MsXG4gIFRTZWxlY3RSb2xlQXJncyBleHRlbmRzIFF1ZXJ5QXJncyxcbj4gPVxuICB8ICh7XG4gICAgICB0eXBlOiAnbG9naW4nO1xuICAgIH0gJiBRdWVyeVNuYXBzaG90PFRMb2dpbkFyZ3M+KVxuICB8ICh7XG4gICAgICB0eXBlOiAndG9rZW5Mb2dpbic7XG4gICAgfSAmIFF1ZXJ5U25hcHNob3Q8VFRva2VuTG9naW5BcmdzPilcbiAgfCAoe1xuICAgICAgdHlwZTogJ3Rva2VuUmVmcmVzaCc7XG4gICAgfSAmIFF1ZXJ5U25hcHNob3Q8VFRva2VuUmVmcmVzaEFyZ3M+KVxuICB8ICh7XG4gICAgICB0eXBlOiAnc2VsZWN0Um9sZSc7XG4gICAgfSAmIFF1ZXJ5U25hcHNob3Q8VFNlbGVjdFJvbGVBcmdzPik7XG5cbmV4cG9ydCB0eXBlIEJlYXJlckF1dGhQcm92aWRlcjxcbiAgVExvZ2luQXJncyBleHRlbmRzIFF1ZXJ5QXJncyxcbiAgVFRva2VuTG9naW5BcmdzIGV4dGVuZHMgUXVlcnlBcmdzLFxuICBUVG9rZW5SZWZyZXNoQXJncyBleHRlbmRzIFF1ZXJ5QXJncyxcbiAgVFNlbGVjdFJvbGVBcmdzIGV4dGVuZHMgUXVlcnlBcmdzLFxuPiA9IHtcbiAgLyoqXG4gICAqIExvZ3MgaW4gdGhlIHVzZXIgd2l0aCB0aGUgZ2l2ZW4gYXJncy5cbiAgICovXG4gIGxvZ2luOiAoYXJnczogUmVxdWVzdEFyZ3M8VExvZ2luQXJncz4pID0+IFF1ZXJ5U25hcHNob3Q8VExvZ2luQXJncz47XG5cbiAgLyoqXG4gICAqIExvZ3MgaW4gdGhlIHVzZXIgd2l0aCB0aGUgZ2l2ZW4gdG9rZW4uXG4gICAqL1xuICBsb2dpbldpdGhUb2tlbjogKGFyZ3M6IFJlcXVlc3RBcmdzPFRUb2tlbkxvZ2luQXJncz4pID0+IFF1ZXJ5U25hcHNob3Q8VFRva2VuTG9naW5BcmdzPjtcblxuICAvKipcbiAgICogUmVmcmVzaGVzIHRoZSB0b2tlbiB3aXRoIHRoZSBnaXZlbiByZWZyZXNoIHRva2VuLlxuICAgKi9cbiAgcmVmcmVzaFRva2VuOiAoYXJnczogUmVxdWVzdEFyZ3M8VFRva2VuUmVmcmVzaEFyZ3M+KSA9PiBRdWVyeVNuYXBzaG90PFRUb2tlblJlZnJlc2hBcmdzPjtcblxuICAvKipcbiAgICogU2VsZWN0cyB0aGUgcm9sZSBmb3IgdGhlIHVzZXIuXG4gICAqL1xuICBzZWxlY3RSb2xlOiAoYXJnczogUmVxdWVzdEFyZ3M8VFNlbGVjdFJvbGVBcmdzPikgPT4gUXVlcnlTbmFwc2hvdDxUU2VsZWN0Um9sZUFyZ3M+O1xuXG4gIC8qKlxuICAgKiBMb2dzIG91dCB0aGUgdXNlciBhbmQgcmVtb3ZlcyB0aGUgY29va2llLlxuICAgKi9cbiAgbG9nb3V0OiAoKSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIGNvb2tpZSB1c2FnZSBmb3IgdGhlIGF1dGggcHJvdmlkZXIuXG4gICAqL1xuICBlbmFibGVDb29raWU6ICgpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIERpc2FibGVzIGNvb2tpZSB1c2FnZSBmb3IgdGhlIGF1dGggcHJvdmlkZXIgYW5kIHJlbW92ZXMgdGhlIGNvb2tpZS5cbiAgICovXG4gIGRpc2FibGVDb29raWU6ICgpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFRyaWVzIHRvIGxvZ2luIHdpdGggdGhlIGdpdmVuIGNvb2tpZSBjb25maWcuXG4gICAqIFJldHVybnMgYHRydWVgIGlmIGEgY29va2llIHdhcyBmb3VuZCwgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAqL1xuICB0cnlMb2dpbldpdGhDb29raWU6ICgpID0+IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBsYXRlc3QgZXhlY3V0ZWQgcXVlcnkgdGhhdCB3YXMgbm90IHRyaWdnZXJlZCBpbnRlcm5hbGx5LlxuICAgKi9cbiAgbGF0ZXN0RXhlY3V0ZWRRdWVyeTogU2lnbmFsPFF1ZXJ5U25hcHNob3RXaXRoVHlwZTxcbiAgICBUTG9naW5BcmdzLFxuICAgIFRUb2tlbkxvZ2luQXJncyxcbiAgICBUVG9rZW5SZWZyZXNoQXJncyxcbiAgICBUU2VsZWN0Um9sZUFyZ3NcbiAgPiB8IG51bGw+O1xuXG4gIG9uUmVmcmVzaEZhaWx1cmU/OiAoY2FsbGJhY2s6IChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHZvaWQpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEEgc2lnbmFsIHRoYXQgY29udGFpbnMgdGhlIGN1cnJlbnQgYWNjZXNzIGFuZCByZWZyZXNoIHRva2Vucy5cbiAgICovXG4gIHRva2VuczogU2lnbmFsPEJlYXJlckF1dGhQcm92aWRlclRva2VucyB8IG51bGw+O1xufTtcblxuY29uc3QgZGVmYXVsdFJlc3BvbnNlVHJhbnNmb3JtZXIgPSA8VD4ocmVzcG9uc2U6IFQpID0+IHtcbiAgaWYgKCFpc09iamVjdChyZXNwb25zZSkpIHtcbiAgICB0aHJvdyBkZWZhdWx0UmVzcG9uc2VUcmFuc2Zvcm1lclJlc3BvbnNlTm90T2JqZWN0KHR5cGVvZiByZXNwb25zZSk7XG4gIH1cblxuICBpZiAoISgnYWNjZXNzVG9rZW4nIGluIHJlc3BvbnNlKSkge1xuICAgIHRocm93IGRlZmF1bHRSZXNwb25zZVRyYW5zZm9ybWVyUmVzcG9uc2VOb3RDb250YWluaW5nQWNjZXNzVG9rZW4oKTtcbiAgfVxuXG4gIGlmICghKCdyZWZyZXNoVG9rZW4nIGluIHJlc3BvbnNlKSkge1xuICAgIHRocm93IGRlZmF1bHRSZXNwb25zZVRyYW5zZm9ybWVyUmVzcG9uc2VOb3RDb250YWluaW5nUmVmcmVzaFRva2VuKCk7XG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2UgYXMgdW5rbm93biBhcyBCZWFyZXJBdXRoUHJvdmlkZXJUb2tlbnM7XG59O1xuXG5jb25zdCBGSVZFX01JTlVURVMgPSA1ICogNjAgKiAxMDAwO1xuXG5jb25zdCBjcmVhdGVBdXRoUHJvdmlkZXJRdWVyeSA9IDxUIGV4dGVuZHMgUXVlcnlBcmdzPihcbiAgY29uZmlnOiBCZWFyZXJBdXRoUHJvdmlkZXJSb3V0ZUNvbmZpZzxUPixcbiAgYXV0aFByb3ZpZGVyQ29uZmlnOiB7XG4gICAgLyoqXG4gICAgICogVGhlIHRpbWUgaW4gbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdG9rZW4gZXhwaXJlcyB3aGVuIHRoZSByZWZyZXNoIHNob3VsZCBiZSB0cmlnZ2VyZWQuXG4gICAgICogQGRlZmF1bHQgMzAwMDAwIC8vICg1IG1pbnV0ZXMpXG4gICAgICovXG4gICAgcmVmcmVzaEJ1ZmZlcj86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBleHBpcmVzIGluIHByb3BlcnR5IG5hbWUgaW5zaWRlIHRoZSBqd3QgYm9keVxuICAgICAqIEBkZWZhdWx0ICdleHAnXG4gICAgICovXG4gICAgZXhwaXJlc0luUHJvcGVydHlOYW1lPzogc3RyaW5nO1xuICB9LFxuKSA9PiB7XG4gIGNvbnN0IHF1ZXJ5ID0gY29uZmlnLnF1ZXJ5Q3JlYXRvcigpO1xuXG4gIGNvbnN0IHRyaWdnZXJlZEludGVybmFsbHkgPSBzaWduYWwoZmFsc2UpO1xuXG4gIGNvbnN0IHRva2VucyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCByZXMgPSBxdWVyeS5yZXNwb25zZSgpO1xuXG4gICAgaWYgKCFyZXMpIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgdHJhbnNmb3JtZWQgPSBjb25maWcucmVzcG9uc2VUcmFuc2Zvcm1lcj8uKHJlcykgPz8gZGVmYXVsdFJlc3BvbnNlVHJhbnNmb3JtZXIocmVzKTtcblxuICAgIGNvbnN0IGJlYXJlclZhbHVlID0gZGVjcnlwdEJlYXJlcih0cmFuc2Zvcm1lZC5hY2Nlc3NUb2tlbik7XG5cbiAgICBpZiAoIWJlYXJlclZhbHVlKSB0aHJvdyB1bmFibGVUb0RlY3J5cHRCZWFyZXJUb2tlbih0cmFuc2Zvcm1lZC5hY2Nlc3NUb2tlbik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYmVhcmVyOiBiZWFyZXJWYWx1ZSxcbiAgICAgIHRva2VuczogdHJhbnNmb3JtZWQsXG4gICAgfTtcbiAgfSk7XG5cbiAgY29uc3QgZXhwaXJlc0luID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHJlcyA9IHRva2VucygpO1xuXG4gICAgaWYgKCFyZXMpIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgZXhwaXJlc0luID0gcmVzLmJlYXJlclthdXRoUHJvdmlkZXJDb25maWcuZXhwaXJlc0luUHJvcGVydHlOYW1lID8/ICdleHAnXTtcbiAgICBjb25zdCByZWZyZXNoQnVmZmVyID0gYXV0aFByb3ZpZGVyQ29uZmlnLnJlZnJlc2hCdWZmZXIgPz8gRklWRV9NSU5VVEVTO1xuXG4gICAgaWYgKHR5cGVvZiBleHBpcmVzSW4gIT09ICdudW1iZXInKSB7XG4gICAgICB0aHJvdyBiZWFyZXJFeHBpcmVzSW5Qcm9wZXJ0eU5vdE51bWJlcihleHBpcmVzSW4pO1xuICAgIH1cblxuICAgIC8vIGNvbnN0IGR1bW15UmVtYWluaW5nVGltZSA9IChxdWVyeS5sYXN0VGltZUV4ZWN1dGVkQXQoKSA/PyAwKSArIDUwMDAgLSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICBjb25zdCByZW1haW5pbmdUaW1lID0gbmV3IERhdGUoZXhwaXJlc0luICogMTAwMCkuZ2V0VGltZSgpIC0gcmVmcmVzaEJ1ZmZlciAtIG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuXG4gICAgcmV0dXJuIHJlbWFpbmluZ1RpbWU7XG4gIH0pO1xuXG4gIGNvbnN0IGV4ZWN1dGUgPSAobmV3QXJnczogUmVxdWVzdEFyZ3M8VD4sIG9wdGlvbnM/OiBJbnRlcm5hbFF1ZXJ5RXhlY3V0ZU9wdGlvbnMpID0+IHtcbiAgICBxdWVyeS5leGVjdXRlKG5ld0FyZ3MpO1xuICAgIHRyaWdnZXJlZEludGVybmFsbHkuc2V0KG9wdGlvbnM/LnRyaWdnZXJlZEludGVybmFsbHkgPz8gZmFsc2UpO1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgZXhlY3V0ZSxcbiAgICBxdWVyeSxcbiAgICB0b2tlbnMsXG4gICAgZXhwaXJlc0luLFxuICAgIHRyaWdnZXJlZEludGVybmFsbHk6IHRyaWdnZXJlZEludGVybmFsbHkuYXNSZWFkb25seSgpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUJlYXJlckF1dGhQcm92aWRlciA9IDxcbiAgVExvZ2luQXJncyBleHRlbmRzIFF1ZXJ5QXJncyxcbiAgVFRva2VuTG9naW5BcmdzIGV4dGVuZHMgUXVlcnlBcmdzLFxuICBUVG9rZW5SZWZyZXNoQXJncyBleHRlbmRzIFF1ZXJ5QXJncyxcbiAgVFNlbGVjdFJvbGVBcmdzIGV4dGVuZHMgUXVlcnlBcmdzLFxuPihcbiAgb3B0aW9uczogQmVhcmVyQXV0aFByb3ZpZGVyQ29uZmlnPFRMb2dpbkFyZ3MsIFRUb2tlbkxvZ2luQXJncywgVFRva2VuUmVmcmVzaEFyZ3MsIFRTZWxlY3RSb2xlQXJncz4sXG4pOiBCZWFyZXJBdXRoUHJvdmlkZXI8VExvZ2luQXJncywgVFRva2VuTG9naW5BcmdzLCBUVG9rZW5SZWZyZXNoQXJncywgVFNlbGVjdFJvbGVBcmdzPiA9PiB7XG4gIGNvbnN0IGNvb2tpZUVuYWJsZWQgPSBzaWduYWwob3B0aW9ucy5jb29raWUgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogKG9wdGlvbnMuY29va2llLmVuYWJsZWQgPz8gdHJ1ZSkpO1xuICBjb25zdCBjb29raWVPcHRpb25zOiBSZXF1aXJlZDxPbWl0PEJlYXJlckF1dGhQcm92aWRlckNvb2tpZUNvbmZpZzxUVG9rZW5SZWZyZXNoQXJncz4sICdlbmFibGVkJz4+ID0ge1xuICAgIGV4cGlyZXNJbkRheXM6IDMwLFxuICAgIG5hbWU6ICdldEF1dGgnLFxuICAgIHBhdGg6ICcvJyxcbiAgICBzYW1lU2l0ZTogJ2xheCcsXG4gICAgZG9tYWluOiBnZXREb21haW4oKSA/PyAnbG9jYWxob3N0JyxcbiAgICByZWZyZXNoQXJnc1RyYW5zZm9ybWVyOiAodG9rZW4pID0+ICh7IGJvZHk6IHsgdG9rZW4gfSB9KSBhcyBSZXF1ZXN0QXJnczxUVG9rZW5SZWZyZXNoQXJncz4sXG4gICAgLi4uKG9wdGlvbnMuY29va2llID8/IHt9KSxcbiAgfTtcblxuICBjb25zdCBsb2dpblF1ZXJ5ID0gb3B0aW9ucy5sb2dpbiA/IGNyZWF0ZUF1dGhQcm92aWRlclF1ZXJ5KG9wdGlvbnMubG9naW4sIG9wdGlvbnMpIDogbnVsbDtcbiAgY29uc3QgdG9rZW5Mb2dpblF1ZXJ5ID0gb3B0aW9ucy50b2tlbkxvZ2luID8gY3JlYXRlQXV0aFByb3ZpZGVyUXVlcnkob3B0aW9ucy50b2tlbkxvZ2luLCBvcHRpb25zKSA6IG51bGw7XG4gIGNvbnN0IHRva2VuUmVmcmVzaFF1ZXJ5ID0gb3B0aW9ucy50b2tlblJlZnJlc2ggPyBjcmVhdGVBdXRoUHJvdmlkZXJRdWVyeShvcHRpb25zLnRva2VuUmVmcmVzaCwgb3B0aW9ucykgOiBudWxsO1xuICBjb25zdCBzZWxlY3RSb2xlUXVlcnkgPSBvcHRpb25zLnNlbGVjdFJvbGUgPyBjcmVhdGVBdXRoUHJvdmlkZXJRdWVyeShvcHRpb25zLnNlbGVjdFJvbGUsIG9wdGlvbnMpIDogbnVsbDtcblxuICBjb25zdCBxdWVyaWVzOiBBdXRoUHJvdmlkZXJRdWVyeVdpdGhUeXBlPFRMb2dpbkFyZ3MsIFRUb2tlbkxvZ2luQXJncywgVFRva2VuUmVmcmVzaEFyZ3MsIFRTZWxlY3RSb2xlQXJncz5bXSA9IFtcbiAgICB7IHR5cGU6ICdsb2dpbicsIHF1ZXJ5OiBsb2dpblF1ZXJ5IH0sXG4gICAgeyB0eXBlOiAndG9rZW5Mb2dpbicsIHF1ZXJ5OiB0b2tlbkxvZ2luUXVlcnkgfSxcbiAgICB7IHR5cGU6ICd0b2tlblJlZnJlc2gnLCBxdWVyeTogdG9rZW5SZWZyZXNoUXVlcnkgfSxcbiAgICB7IHR5cGU6ICdzZWxlY3RSb2xlJywgcXVlcnk6IHNlbGVjdFJvbGVRdWVyeSB9LFxuICBdO1xuXG4gIGNvbnN0IGxhdGVzdEV4ZWN1dGVkUXVlcnkgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgcmVsZXZhbnRRdWVyaWVzID0gcXVlcmllcy5maWx0ZXIoKHEpID0+IHEucXVlcnkgJiYgcS5xdWVyeS5xdWVyeS5sYXN0VGltZUV4ZWN1dGVkQXQoKSAhPT0gbnVsbCk7XG5cbiAgICByZXR1cm4gZmluZE1vc3RSZWNlbnRRdWVyeShyZWxldmFudFF1ZXJpZXMpO1xuICB9KTtcblxuICBjb25zdCB0b2tlbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgcXVlcnkgPSBsYXRlc3RFeGVjdXRlZFF1ZXJ5KCk7XG5cbiAgICByZXR1cm4gcXVlcnk/LnF1ZXJ5Py50b2tlbnMoKT8udG9rZW5zID8/IG51bGw7XG4gIH0pO1xuXG4gIHRvT2JzZXJ2YWJsZShcbiAgICBjb21wdXRlZCgoKSA9PiB7XG4gICAgICBjb25zdCBxdWVyeSA9IGxhdGVzdEV4ZWN1dGVkUXVlcnkoKTtcbiAgICAgIGNvbnN0IGV4cGlyZXNJbiA9IHF1ZXJ5Py5xdWVyeT8uZXhwaXJlc0luKCkgPz8gbnVsbDtcbiAgICAgIGNvbnN0IHRva2VucyA9IHF1ZXJ5Py5xdWVyeT8udG9rZW5zKCkgPz8gbnVsbDtcblxuICAgICAgcmV0dXJuIHsgZXhwaXJlc0luLCB0b2tlbnMsIHF1ZXJ5IH07XG4gICAgfSksXG4gIClcbiAgICAucGlwZShcbiAgICAgIHN3aXRjaE1hcCgocmVzKSA9PiB7XG4gICAgICAgIGlmICghcmVzLnRva2VucyB8fCByZXMuZXhwaXJlc0luID09PSBudWxsIHx8ICFvcHRpb25zLnRva2VuUmVmcmVzaCkgcmV0dXJuIG9mKG51bGwpO1xuXG4gICAgICAgIGNvbnN0IGV4cEluID0gcmVzLmV4cGlyZXNJbjtcbiAgICAgICAgY29uc3QgdG9rZW5zID0gcmVzLnRva2VucztcblxuICAgICAgICBpZiAoIWV4cEluIHx8ICF0b2tlbnMpIHJldHVybiBvZihudWxsKTtcblxuICAgICAgICByZXR1cm4gdGltZXIoZXhwSW4pLnBpcGUoXG4gICAgICAgICAgdGFwKCgpID0+XG4gICAgICAgICAgICByZWZyZXNoVG9rZW4oXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5jb29raWVPcHRpb25zLnJlZnJlc2hBcmdzVHJhbnNmb3JtZXIodG9rZW5zLnRva2Vucy5yZWZyZXNoVG9rZW4pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7IHRyaWdnZXJlZEludGVybmFsbHk6IHRydWUgfSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH0pLFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgKVxuICAgIC5zdWJzY3JpYmUoKTtcblxuICBjb25zdCBsYXRlc3ROb25JbnRlcm5hbFF1ZXJ5ID0gc2lnbmFsPFF1ZXJ5U25hcHNob3RXaXRoVHlwZTxcbiAgICBUTG9naW5BcmdzLFxuICAgIFRUb2tlbkxvZ2luQXJncyxcbiAgICBUVG9rZW5SZWZyZXNoQXJncyxcbiAgICBUU2VsZWN0Um9sZUFyZ3NcbiAgPiB8IG51bGw+KG51bGwpO1xuXG4gIGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgcmVsZXZhbnRRdWVyaWVzID0gcXVlcmllcy5maWx0ZXIoXG4gICAgICAocSkgPT4gcS5xdWVyeSAmJiAhcS5xdWVyeS50cmlnZ2VyZWRJbnRlcm5hbGx5KCkgJiYgcS5xdWVyeS5xdWVyeS5sYXN0VGltZUV4ZWN1dGVkQXQoKSAhPT0gbnVsbCxcbiAgICApO1xuXG4gICAgY29uc3QgbGFzdFF1ZXJ5ID0gZmluZE1vc3RSZWNlbnRRdWVyeShyZWxldmFudFF1ZXJpZXMpO1xuXG4gICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgIGlmICghbGFzdFF1ZXJ5IHx8ICFsYXN0UXVlcnkucXVlcnk/LnF1ZXJ5KSByZXR1cm47XG5cbiAgICAgIGxhdGVzdE5vbkludGVybmFsUXVlcnkuc2V0KHtcbiAgICAgICAgdHlwZTogbGFzdFF1ZXJ5LnR5cGUsXG4gICAgICAgIC4uLmxhc3RRdWVyeS5xdWVyeS5xdWVyeS5jcmVhdGVTbmFwc2hvdCgpLFxuICAgICAgfSBhcyBRdWVyeVNuYXBzaG90V2l0aFR5cGU8VExvZ2luQXJncywgVFRva2VuTG9naW5BcmdzLCBUVG9rZW5SZWZyZXNoQXJncywgVFNlbGVjdFJvbGVBcmdzPik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIC8vIENvb2tpZSB3cml0aW5nXG4gIGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaXNDb29raWVFbmFibGVkID0gY29va2llRW5hYmxlZCgpO1xuICAgIGNvbnN0IHJlcyA9IGxhdGVzdEV4ZWN1dGVkUXVlcnkoKTtcbiAgICBjb25zdCBlcnJvciA9IHJlcz8ucXVlcnk/LnF1ZXJ5LmVycm9yKCk7XG5cbiAgICBpZiAoIWlzQ29va2llRW5hYmxlZCB8fCAoZXJyb3IgJiYgZXJyb3Iuc3RhdHVzID09PSA0MDEpKSB7XG4gICAgICBkZWxldGVDb29raWUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXJlcz8ucXVlcnkpIHJldHVybjtcblxuICAgIGNvbnN0IHsgdG9rZW5zIH0gPSByZXMucXVlcnk7XG5cbiAgICBjb25zdCBydCA9IHRva2VucygpPy50b2tlbnMucmVmcmVzaFRva2VuO1xuXG4gICAgaWYgKCFydCkgcmV0dXJuO1xuXG4gICAgd3JpdGVDb29raWUocnQpO1xuICB9KTtcblxuICBjb25zdCBsb2dpbiA9IChhcmdzOiBSZXF1ZXN0QXJnczxUTG9naW5BcmdzPikgPT4ge1xuICAgIGlmICghbG9naW5RdWVyeSkge1xuICAgICAgdGhyb3cgbG9naW5DYWxsZWRXaXRob3V0Q29uZmlnKCk7XG4gICAgfVxuXG4gICAgbG9naW5RdWVyeS5leGVjdXRlKGFyZ3MpO1xuXG4gICAgcmV0dXJuIGxvZ2luUXVlcnkucXVlcnkuY3JlYXRlU25hcHNob3QoKTtcbiAgfTtcblxuICBjb25zdCBsb2dpbldpdGhUb2tlbiA9IChhcmdzOiBSZXF1ZXN0QXJnczxUVG9rZW5Mb2dpbkFyZ3M+KSA9PiB7XG4gICAgaWYgKCF0b2tlbkxvZ2luUXVlcnkpIHtcbiAgICAgIHRocm93IGxvZ2luV2l0aFRva2VuQ2FsbGVkV2l0aG91dENvbmZpZygpO1xuICAgIH1cblxuICAgIHRva2VuTG9naW5RdWVyeS5leGVjdXRlKGFyZ3MpO1xuXG4gICAgcmV0dXJuIHRva2VuTG9naW5RdWVyeS5xdWVyeS5jcmVhdGVTbmFwc2hvdCgpO1xuICB9O1xuXG4gIGNvbnN0IHJlZnJlc2hUb2tlbiA9IChhcmdzOiBSZXF1ZXN0QXJnczxUVG9rZW5SZWZyZXNoQXJncz4sIG9wdGlvbnM/OiBJbnRlcm5hbFF1ZXJ5RXhlY3V0ZU9wdGlvbnMpID0+IHtcbiAgICBpZiAoIXRva2VuUmVmcmVzaFF1ZXJ5KSB7XG4gICAgICB0aHJvdyByZWZyZXNoVG9rZW5DYWxsZWRXaXRob3V0Q29uZmlnKCk7XG4gICAgfVxuXG4gICAgdG9rZW5SZWZyZXNoUXVlcnkuZXhlY3V0ZShhcmdzLCB7IHRyaWdnZXJlZEludGVybmFsbHk6IG9wdGlvbnM/LnRyaWdnZXJlZEludGVybmFsbHkgfSk7XG5cbiAgICByZXR1cm4gdG9rZW5SZWZyZXNoUXVlcnkucXVlcnkuY3JlYXRlU25hcHNob3QoKTtcbiAgfTtcblxuICBjb25zdCBzZWxlY3RSb2xlID0gKGFyZ3M6IFJlcXVlc3RBcmdzPFRTZWxlY3RSb2xlQXJncz4pID0+IHtcbiAgICBpZiAoIXNlbGVjdFJvbGVRdWVyeSkge1xuICAgICAgdGhyb3cgc2VsZWN0Um9sZUNhbGxlZFdpdGhvdXRDb25maWcoKTtcbiAgICB9XG5cbiAgICBzZWxlY3RSb2xlUXVlcnkuZXhlY3V0ZShhcmdzKTtcblxuICAgIHJldHVybiBzZWxlY3RSb2xlUXVlcnkucXVlcnkuY3JlYXRlU25hcHNob3QoKTtcbiAgfTtcblxuICBjb25zdCBsb2dvdXQgPSAoKSA9PiB7XG4gICAgZGVsZXRlQ29va2llKCk7XG4gICAgbG9naW5RdWVyeT8ucXVlcnkuZXhlY3V0ZS5yZXNldCgpO1xuICAgIHRva2VuTG9naW5RdWVyeT8ucXVlcnkuZXhlY3V0ZS5yZXNldCgpO1xuICAgIHRva2VuUmVmcmVzaFF1ZXJ5Py5xdWVyeS5leGVjdXRlLnJlc2V0KCk7XG4gICAgc2VsZWN0Um9sZVF1ZXJ5Py5xdWVyeS5leGVjdXRlLnJlc2V0KCk7XG4gICAgbGF0ZXN0Tm9uSW50ZXJuYWxRdWVyeS5zZXQobnVsbCk7XG4gIH07XG5cbiAgY29uc3QgZW5hYmxlQ29va2llID0gKCkgPT4ge1xuICAgIGlmIChpc0Rldk1vZGUoKSAmJiAhb3B0aW9ucy5jb29raWUpIHtcbiAgICAgIHRocm93IGVuYWJsZUNvb2tpZUNhbGxlZFdpdGhvdXRDb29raWVDb25maWcoKTtcbiAgICB9XG5cbiAgICBjb29raWVFbmFibGVkLnNldCh0cnVlKTtcbiAgfTtcblxuICBjb25zdCBkaXNhYmxlQ29va2llID0gKCkgPT4ge1xuICAgIGlmIChpc0Rldk1vZGUoKSAmJiAhb3B0aW9ucy5jb29raWUpIHtcbiAgICAgIHRocm93IGRpc2FibGVDb29raWVDYWxsZWRXaXRob3V0Q29va2llQ29uZmlnKCk7XG4gICAgfVxuXG4gICAgY29va2llRW5hYmxlZC5zZXQoZmFsc2UpO1xuICAgIGRlbGV0ZUNvb2tpZSgpO1xuICB9O1xuXG4gIGNvbnN0IHRyeUxvZ2luV2l0aENvb2tpZSA9ICgpID0+IHtcbiAgICBjb25zdCBpc0Nvb2tpZUVuYWJsZWQgPSBjb29raWVFbmFibGVkKCk7XG5cbiAgICBpZiAoIWlzQ29va2llRW5hYmxlZCkge1xuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgIHRocm93IGNvb2tpZUxvZ2luVHJpZWRCdXRDb29raWVEaXNhYmxlZCgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGNvb2tpZSA9IGdldENvb2tpZShjb29raWVPcHRpb25zLm5hbWUpO1xuXG4gICAgaWYgKCFjb29raWUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZWZyZXNoVG9rZW4oY29va2llT3B0aW9ucy5yZWZyZXNoQXJnc1RyYW5zZm9ybWVyKGNvb2tpZSkpO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG5cbiAgY29uc3Qgd3JpdGVDb29raWUgPSAocmVmcmVzaFRva2VuOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCB7IG5hbWUsIGV4cGlyZXNJbkRheXMsIGRvbWFpbiwgcGF0aCwgc2FtZVNpdGUgfSA9IGNvb2tpZU9wdGlvbnM7XG5cbiAgICBzZXRDb29raWUobmFtZSwgcmVmcmVzaFRva2VuLCBleHBpcmVzSW5EYXlzLCBkb21haW4sIHBhdGgsIHNhbWVTaXRlKTtcbiAgfTtcblxuICBjb25zdCBkZWxldGVDb29raWUgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBuYW1lLCBwYXRoLCBkb21haW4gfSA9IGNvb2tpZU9wdGlvbnM7XG5cbiAgICBjb3JlRGVsZXRlQ29va2llKG5hbWUsIHBhdGgsIGRvbWFpbik7XG4gIH07XG5cbiAgY29uc3QgZmluZE1vc3RSZWNlbnRRdWVyeSA9IChcbiAgICBxdWVyaWVzVG9TZWFyY2g6IEF1dGhQcm92aWRlclF1ZXJ5V2l0aFR5cGU8VExvZ2luQXJncywgVFRva2VuTG9naW5BcmdzLCBUVG9rZW5SZWZyZXNoQXJncywgVFNlbGVjdFJvbGVBcmdzPltdLFxuICApID0+IHtcbiAgICByZXR1cm4gcXVlcmllc1RvU2VhcmNoLnJlZHVjZShcbiAgICAgIChhY2MsIGN1cnIpID0+IHtcbiAgICAgICAgaWYgKCFhY2MpIHJldHVybiBjdXJyO1xuXG4gICAgICAgIGNvbnN0IGFjY0V4cCA9IGFjYy5xdWVyeT8ucXVlcnkubGFzdFRpbWVFeGVjdXRlZEF0KCkgPz8gbnVsbDtcbiAgICAgICAgY29uc3QgY3VyckV4cCA9IGN1cnIucXVlcnk/LnF1ZXJ5Lmxhc3RUaW1lRXhlY3V0ZWRBdCgpID8/IG51bGw7XG5cbiAgICAgICAgaWYgKGN1cnJFeHAgPT09IG51bGwgfHwgYWNjRXhwID09PSBudWxsKSByZXR1cm4gYWNjO1xuXG4gICAgICAgIHJldHVybiBhY2NFeHAgPiBjdXJyRXhwID8gYWNjIDogY3VycjtcbiAgICAgIH0sXG4gICAgICBudWxsIGFzIEF1dGhQcm92aWRlclF1ZXJ5V2l0aFR5cGU8VExvZ2luQXJncywgVFRva2VuTG9naW5BcmdzLCBUVG9rZW5SZWZyZXNoQXJncywgVFNlbGVjdFJvbGVBcmdzPiB8IG51bGwsXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBiZWFyZXJBdXRoUHJvdmlkZXI6IEJlYXJlckF1dGhQcm92aWRlcjxUTG9naW5BcmdzLCBUVG9rZW5Mb2dpbkFyZ3MsIFRUb2tlblJlZnJlc2hBcmdzLCBUU2VsZWN0Um9sZUFyZ3M+ID0ge1xuICAgIGxvZ2luLFxuICAgIGxvZ2luV2l0aFRva2VuLFxuICAgIHJlZnJlc2hUb2tlbixcbiAgICBzZWxlY3RSb2xlLFxuICAgIGxvZ291dCxcbiAgICBlbmFibGVDb29raWUsXG4gICAgZGlzYWJsZUNvb2tpZSxcbiAgICB0cnlMb2dpbldpdGhDb29raWUsXG4gICAgbGF0ZXN0RXhlY3V0ZWRRdWVyeTogbGF0ZXN0Tm9uSW50ZXJuYWxRdWVyeS5hc1JlYWRvbmx5KCksXG4gICAgdG9rZW5zLFxuICB9O1xuXG4gIGlmIChjb29raWVFbmFibGVkKCkpIHtcbiAgICB0cnlMb2dpbldpdGhDb29raWUoKTtcbiAgfVxuXG4gIHJldHVybiBiZWFyZXJBdXRoUHJvdmlkZXI7XG59O1xuXG5leHBvcnQgY29uc3QgcHJvdmlkZUJlYXJlckF1dGhQcm92aWRlciA9IDxcbiAgVExvZ2luQXJncyBleHRlbmRzIFF1ZXJ5QXJncyxcbiAgVFRva2VuTG9naW5BcmdzIGV4dGVuZHMgUXVlcnlBcmdzLFxuICBUVG9rZW5SZWZyZXNoQXJncyBleHRlbmRzIFF1ZXJ5QXJncyxcbiAgVFNlbGVjdFJvbGVBcmdzIGV4dGVuZHMgUXVlcnlBcmdzLFxuPihcbiAgY29uZmlnOiBCZWFyZXJBdXRoUHJvdmlkZXJDb25maWc8VExvZ2luQXJncywgVFRva2VuTG9naW5BcmdzLCBUVG9rZW5SZWZyZXNoQXJncywgVFNlbGVjdFJvbGVBcmdzPixcbikgPT4ge1xuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IGNvbmZpZy50b2tlbixcbiAgICB1c2VGYWN0b3J5OiAoKSA9PiBjcmVhdGVCZWFyZXJBdXRoUHJvdmlkZXIoY29uZmlnKSxcbiAgfTtcbn07XG4iXX0=
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVhcmVyLWF1dGgtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvZXhwZXJpbWVudGFsL2JlYXJlci1hdXRoLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlEQUF5RDtBQUd6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUUsT0FBTyxFQUFFLFlBQVksSUFBSSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBUXhDLE9BQU8sRUFDTCxnQ0FBZ0MsRUFDaEMsaUNBQWlDLEVBQ2pDLDBEQUEwRCxFQUMxRCwyREFBMkQsRUFDM0QsMkNBQTJDLEVBQzNDLHNDQUFzQyxFQUN0QyxxQ0FBcUMsRUFDckMsd0JBQXdCLEVBQ3hCLGlDQUFpQyxFQUNqQywrQkFBK0IsRUFDL0IsNkJBQTZCLEVBQzdCLDBCQUEwQixHQUMzQixNQUFNLGdCQUFnQixDQUFDO0FBaUh4QixNQUFNLDBCQUEwQixHQUFHLENBQUksUUFBVyxFQUFFLEVBQUU7SUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sMkNBQTJDLENBQUMsT0FBTyxRQUFRLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsSUFBSSxDQUFDLENBQUMsYUFBYSxJQUFJLFFBQVEsQ0FBQyxF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d0Y7UUFDOUcsS0FBSztRQUNMLGNBQWM7UUFDZCxZQUFZO1FBQ1osVUFBVTtRQUNWLE1BQU07UUFDTixZQUFZO1FBQ1osYUFBYTtRQUNiLGtCQUFrQjtRQUNsQixtQkFBbUIsRUFBRSxzQkFBc0IsQ0FBQyxVQUFVLEVBQUU7UUFDeEQsTUFBTTtLQUNQLENBQUM7SUFFRixJQUFJLGFBQWEsRUFBRSxFQUFFLENBQUM7UUFDcEIsa0JBQWtCLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsT0FBTyxrQkFBa0IsQ0FBQztBQUM1QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQU12QyxNQUFpRyxFQUNqRyxFQUFFO0lBQ0YsT0FBTztRQUNMLE9BQU8sRUFBRSxNQUFNLENBQUMsS0FBSztRQUNyQixVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDO0tBQ25ELENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb24gKi9cblxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBjb21wdXRlZCwgZWZmZWN0LCBpc0Rldk1vZGUsIFNpZ25hbCwgc2lnbmFsLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCwgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgZGVsZXRlQ29va2llIGFzIGNvcmVEZWxldGVDb29raWUsIGdldENvb2tpZSwgZ2V0RG9tYWluLCBpc09iamVjdCwgc2V0Q29va2llIH0gZnJvbSAnQGV0aGxldGUvY29yZSc7XG5pbXBvcnQgeyBvZiwgc3dpdGNoTWFwLCB0YXAsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWNyeXB0QmVhcmVyIH0gZnJvbSAnLi4vYXV0aCc7XG5pbXBvcnQge1xuICBCZWFyZXJBdXRoUHJvdmlkZXJDb25maWcsXG4gIEJlYXJlckF1dGhQcm92aWRlckNvb2tpZUNvbmZpZyxcbiAgQmVhcmVyQXV0aFByb3ZpZGVyUm91dGVDb25maWcsXG4gIEJlYXJlckF1dGhQcm92aWRlclRva2Vucyxcbn0gZnJvbSAnLi9iZWFyZXItYXV0aC1wcm92aWRlci1jb25maWcnO1xuaW1wb3J0IHsgUXVlcnlBcmdzLCBRdWVyeVNuYXBzaG90LCBSZXF1ZXN0QXJncyB9IGZyb20gJy4vcXVlcnknO1xuaW1wb3J0IHtcbiAgYmVhcmVyRXhwaXJlc0luUHJvcGVydHlOb3ROdW1iZXIsXG4gIGNvb2tpZUxvZ2luVHJpZWRCdXRDb29raWVEaXNhYmxlZCxcbiAgZGVmYXVsdFJlc3BvbnNlVHJhbnNmb3JtZXJSZXNwb25zZU5vdENvbnRhaW5pbmdBY2Nlc3NUb2tlbixcbiAgZGVmYXVsdFJlc3BvbnNlVHJhbnNmb3JtZXJSZXNwb25zZU5vdENvbnRhaW5pbmdSZWZyZXNoVG9rZW4sXG4gIGRlZmF1bHRSZXNwb25zZVRyYW5zZm9ybWVyUmVzcG9uc2VOb3RPYmplY3QsXG4gIGRpc2FibGVDb29raWVDYWxsZWRXaXRob3V0Q29va2llQ29uZmlnLFxuICBlbmFibGVDb29raWVDYWxsZWRXaXRob3V0Q29va2llQ29uZmlnLFxuICBsb2dpbkNhbGxlZFdpdGhvdXRDb25maWcsXG4gIGxvZ2luV2l0aFRva2VuQ2FsbGVkV2l0aG91dENvbmZpZyxcbiAgcmVmcmVzaFRva2VuQ2FsbGVkV2l0aG91dENvbmZpZyxcbiAgc2VsZWN0Um9sZUNhbGxlZFdpdGhvdXRDb25maWcsXG4gIHVuYWJsZVRvRGVjcnlwdEJlYXJlclRva2VuLFxufSBmcm9tICcuL3F1ZXJ5LWVycm9ycyc7XG5cbnR5cGUgSW50ZXJuYWxRdWVyeUV4ZWN1dGVPcHRpb25zID0ge1xuICB0cmlnZ2VyZWRJbnRlcm5hbGx5PzogYm9vbGVhbjtcbn07XG5cbnR5cGUgQXV0aFByb3ZpZGVyUXVlcnlXaXRoVHlwZTxcbiAgVExvZ2luQXJncyBleHRlbmRzIFF1ZXJ5QXJncyxcbiAgVFRva2VuTG9naW5BcmdzIGV4dGVuZHMgUXVlcnlBcmdzLFxuICBUVG9rZW5SZWZyZXNoQXJncyBleHRlbmRzIFF1ZXJ5QXJncyxcbiAgVFNlbGVjdFJvbGVBcmdzIGV4dGVuZHMgUXVlcnlBcmdzLFxuPiA9XG4gIHwge1xuICAgICAgdHlwZTogJ2xvZ2luJztcbiAgICAgIHF1ZXJ5OiBSZXR1cm5UeXBlPHR5cGVvZiBjcmVhdGVBdXRoUHJvdmlkZXJRdWVyeTxUTG9naW5BcmdzPj4gfCBudWxsO1xuICAgIH1cbiAgfCB7XG4gICAgICB0eXBlOiAndG9rZW5Mb2dpbic7XG4gICAgICBxdWVyeTogUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlQXV0aFByb3ZpZGVyUXVlcnk8VFRva2VuTG9naW5BcmdzPj4gfCBudWxsO1xuICAgIH1cbiAgfCB7XG4gICAgICB0eXBlOiAndG9rZW5SZWZyZXNoJztcbiAgICAgIHF1ZXJ5OiBSZXR1cm5UeXBlPHR5cGVvZiBjcmVhdGVBdXRoUHJvdmlkZXJRdWVyeTxUVG9rZW5SZWZyZXNoQXJncz4+IHwgbnVsbDtcbiAgICB9XG4gIHwge1xuICAgICAgdHlwZTogJ3NlbGVjdFJvbGUnO1xuICAgICAgcXVlcnk6IFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZUF1dGhQcm92aWRlclF1ZXJ5PFRTZWxlY3RSb2xlQXJncz4+IHwgbnVsbDtcbiAgICB9O1xuXG50eXBlIFF1ZXJ5U25hcHNob3RXaXRoVHlwZTxcbiAgVExvZ2luQXJncyBleHRlbmRzIFF1ZXJ5QXJncyxcbiAgVFRva2VuTG9naW5BcmdzIGV4dGVuZHMgUXVlcnlBcmdzLFxuICBUVG9rZW5SZWZyZXNoQXJncyBleHRlbmRzIFF1ZXJ5QXJncyxcbiAgVFNlbGVjdFJvbGVBcmdzIGV4dGVuZHMgUXVlcnlBcmdzLFxuPiA9XG4gIHwgKHtcbiAgICAgIHR5cGU6ICdsb2dpbic7XG4gICAgfSAmIFF1ZXJ5U25hcHNob3Q8VExvZ2luQXJncz4pXG4gIHwgKHtcbiAgICAgIHR5cGU6ICd0b2tlbkxvZ2luJztcbiAgICB9ICYgUXVlcnlTbmFwc2hvdDxUVG9rZW5Mb2dpbkFyZ3M+KVxuICB8ICh7XG4gICAgICB0eXBlOiAndG9rZW5SZWZyZXNoJztcbiAgICB9ICYgUXVlcnlTbmFwc2hvdDxUVG9rZW5SZWZyZXNoQXJncz4pXG4gIHwgKHtcbiAgICAgIHR5cGU6ICdzZWxlY3RSb2xlJztcbiAgICB9ICYgUXVlcnlTbmFwc2hvdDxUU2VsZWN0Um9sZUFyZ3M+KTtcblxuZXhwb3J0IHR5cGUgQmVhcmVyQXV0aFByb3ZpZGVyPFxuICBUTG9naW5BcmdzIGV4dGVuZHMgUXVlcnlBcmdzLFxuICBUVG9rZW5Mb2dpbkFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3MsXG4gIFRUb2tlblJlZnJlc2hBcmdzIGV4dGVuZHMgUXVlcnlBcmdzLFxuICBUU2VsZWN0Um9sZUFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3MsXG4+ID0ge1xuICAvKipcbiAgICogTG9ncyBpbiB0aGUgdXNlciB3aXRoIHRoZSBnaXZlbiBhcmdzLlxuICAgKi9cbiAgbG9naW46IChhcmdzOiBSZXF1ZXN0QXJnczxUTG9naW5BcmdzPikgPT4gUXVlcnlTbmFwc2hvdDxUTG9naW5BcmdzPjtcblxuICAvKipcbiAgICogTG9ncyBpbiB0aGUgdXNlciB3aXRoIHRoZSBnaXZlbiB0b2tlbi5cbiAgICovXG4gIGxvZ2luV2l0aFRva2VuOiAoYXJnczogUmVxdWVzdEFyZ3M8VFRva2VuTG9naW5BcmdzPikgPT4gUXVlcnlTbmFwc2hvdDxUVG9rZW5Mb2dpbkFyZ3M+O1xuXG4gIC8qKlxuICAgKiBSZWZyZXNoZXMgdGhlIHRva2VuIHdpdGggdGhlIGdpdmVuIHJlZnJlc2ggdG9rZW4uXG4gICAqL1xuICByZWZyZXNoVG9rZW46IChhcmdzOiBSZXF1ZXN0QXJnczxUVG9rZW5SZWZyZXNoQXJncz4pID0+IFF1ZXJ5U25hcHNob3Q8VFRva2VuUmVmcmVzaEFyZ3M+O1xuXG4gIC8qKlxuICAgKiBTZWxlY3RzIHRoZSByb2xlIGZvciB0aGUgdXNlci5cbiAgICovXG4gIHNlbGVjdFJvbGU6IChhcmdzOiBSZXF1ZXN0QXJnczxUU2VsZWN0Um9sZUFyZ3M+KSA9PiBRdWVyeVNuYXBzaG90PFRTZWxlY3RSb2xlQXJncz47XG5cbiAgLyoqXG4gICAqIExvZ3Mgb3V0IHRoZSB1c2VyIGFuZCByZW1vdmVzIHRoZSBjb29raWUuXG4gICAqL1xuICBsb2dvdXQ6ICgpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgY29va2llIHVzYWdlIGZvciB0aGUgYXV0aCBwcm92aWRlci5cbiAgICovXG4gIGVuYWJsZUNvb2tpZTogKCkgPT4gdm9pZDtcblxuICAvKipcbiAgICogRGlzYWJsZXMgY29va2llIHVzYWdlIGZvciB0aGUgYXV0aCBwcm92aWRlciBhbmQgcmVtb3ZlcyB0aGUgY29va2llLlxuICAgKi9cbiAgZGlzYWJsZUNvb2tpZTogKCkgPT4gdm9pZDtcblxuICAvKipcbiAgICogVHJpZXMgdG8gbG9naW4gd2l0aCB0aGUgZ2l2ZW4gY29va2llIGNvbmZpZy5cbiAgICogUmV0dXJucyBgdHJ1ZWAgaWYgYSBjb29raWUgd2FzIGZvdW5kLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAgICovXG4gIHRyeUxvZ2luV2l0aENvb2tpZTogKCkgPT4gYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGxhdGVzdCBleGVjdXRlZCBxdWVyeSB0aGF0IHdhcyBub3QgdHJpZ2dlcmVkIGludGVybmFsbHkuXG4gICAqL1xuICBsYXRlc3RFeGVjdXRlZFF1ZXJ5OiBTaWduYWw8UXVlcnlTbmFwc2hvdFdpdGhUeXBlPFxuICAgIFRMb2dpbkFyZ3MsXG4gICAgVFRva2VuTG9naW5BcmdzLFxuICAgIFRUb2tlblJlZnJlc2hBcmdzLFxuICAgIFRTZWxlY3RSb2xlQXJnc1xuICA+IHwgbnVsbD47XG5cbiAgb25SZWZyZXNoRmFpbHVyZT86IChjYWxsYmFjazogKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gdm9pZCkgPT4gdm9pZDtcblxuICAvKipcbiAgICogQSBzaWduYWwgdGhhdCBjb250YWlucyB0aGUgY3VycmVudCBhY2Nlc3MgYW5kIHJlZnJlc2ggdG9rZW5zLlxuICAgKi9cbiAgdG9rZW5zOiBTaWduYWw8QmVhcmVyQXV0aFByb3ZpZGVyVG9rZW5zIHwgbnVsbD47XG59O1xuXG5jb25zdCBkZWZhdWx0UmVzcG9uc2VUcmFuc2Zvcm1lciA9IDxUPihyZXNwb25zZTogVCkgPT4ge1xuICBpZiAoIWlzT2JqZWN0KHJlc3BvbnNlKSkge1xuICAgIHRocm93IGRlZmF1bHRSZXNwb25zZVRyYW5zZm9ybWVyUmVzcG9uc2VOb3RPYmplY3QodHlwZW9mIHJlc3BvbnNlKTtcbiAgfVxuXG4gIGlmICghKCdhY2Nlc3NUb2tlbicgaW4gcmVzcG9uc2UpKSB7XG4gICAgdGhyb3cgZGVmYXVsdFJlc3BvbnNlVHJhbnNmb3JtZXJSZXNwb25zZU5vdENvbnRhaW5pbmdBY2Nlc3NUb2tlbigpO1xuICB9XG5cbiAgaWYgKCEoJ3JlZnJlc2hUb2tlbicgaW4gcmVzcG9uc2UpKSB7XG4gICAgdGhyb3cgZGVmYXVsdFJlc3BvbnNlVHJhbnNmb3JtZXJSZXNwb25zZU5vdENvbnRhaW5pbmdSZWZyZXNoVG9rZW4oKTtcbiAgfVxuXG4gIHJldHVybiByZXNwb25zZSBhcyB1bmtub3duIGFzIEJlYXJlckF1dGhQcm92aWRlclRva2Vucztcbn07XG5cbmNvbnN0IEZJVkVfTUlOVVRFUyA9IDUgKiA2MCAqIDEwMDA7XG5cbmNvbnN0IGNyZWF0ZUF1dGhQcm92aWRlclF1ZXJ5ID0gPFQgZXh0ZW5kcyBRdWVyeUFyZ3M+KFxuICBjb25maWc6IEJlYXJlckF1dGhQcm92aWRlclJvdXRlQ29uZmlnPFQ+LFxuICBhdXRoUHJvdmlkZXJDb25maWc6IHtcbiAgICAvKipcbiAgICAgKiBUaGUgdGltZSBpbiBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0b2tlbiBleHBpcmVzIHdoZW4gdGhlIHJlZnJlc2ggc2hvdWxkIGJlIHRyaWdnZXJlZC5cbiAgICAgKiBAZGVmYXVsdCAzMDAwMDAgLy8gKDUgbWludXRlcylcbiAgICAgKi9cbiAgICByZWZyZXNoQnVmZmVyPzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGV4cGlyZXMgaW4gcHJvcGVydHkgbmFtZSBpbnNpZGUgdGhlIGp3dCBib2R5XG4gICAgICogQGRlZmF1bHQgJ2V4cCdcbiAgICAgKi9cbiAgICBleHBpcmVzSW5Qcm9wZXJ0eU5hbWU/OiBzdHJpbmc7XG4gIH0sXG4pID0+IHtcbiAgY29uc3QgcXVlcnkgPSBjb25maWcucXVlcnlDcmVhdG9yKCk7XG5cbiAgY29uc3QgdHJpZ2dlcmVkSW50ZXJuYWxseSA9IHNpZ25hbChmYWxzZSk7XG5cbiAgY29uc3QgdG9rZW5zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHJlcyA9IHF1ZXJ5LnJlc3BvbnNlKCk7XG5cbiAgICBpZiAoIXJlcykgcmV0dXJuIG51bGw7XG5cbiAgICBjb25zdCB0cmFuc2Zvcm1lZCA9IGNvbmZpZy5yZXNwb25zZVRyYW5zZm9ybWVyPy4ocmVzKSA/PyBkZWZhdWx0UmVzcG9uc2VUcmFuc2Zvcm1lcihyZXMpO1xuXG4gICAgY29uc3QgYmVhcmVyVmFsdWUgPSBkZWNyeXB0QmVhcmVyKHRyYW5zZm9ybWVkLmFjY2Vzc1Rva2VuKTtcblxuICAgIGlmICghYmVhcmVyVmFsdWUpIHRocm93IHVuYWJsZVRvRGVjcnlwdEJlYXJlclRva2VuKHRyYW5zZm9ybWVkLmFjY2Vzc1Rva2VuKTtcblxuICAgIHJldHVybiB7XG4gICAgICBiZWFyZXI6IGJlYXJlclZhbHVlLFxuICAgICAgdG9rZW5zOiB0cmFuc2Zvcm1lZCxcbiAgICB9O1xuICB9KTtcblxuICBjb25zdCBleHBpcmVzSW4gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgcmVzID0gdG9rZW5zKCk7XG5cbiAgICBpZiAoIXJlcykgcmV0dXJuIG51bGw7XG5cbiAgICBjb25zdCBleHBpcmVzSW4gPSByZXMuYmVhcmVyW2F1dGhQcm92aWRlckNvbmZpZy5leHBpcmVzSW5Qcm9wZXJ0eU5hbWUgPz8gJ2V4cCddO1xuICAgIGNvbnN0IHJlZnJlc2hCdWZmZXIgPSBhdXRoUHJvdmlkZXJDb25maWcucmVmcmVzaEJ1ZmZlciA/PyBGSVZFX01JTlVURVM7XG5cbiAgICBpZiAodHlwZW9mIGV4cGlyZXNJbiAhPT0gJ251bWJlcicpIHtcbiAgICAgIHRocm93IGJlYXJlckV4cGlyZXNJblByb3BlcnR5Tm90TnVtYmVyKGV4cGlyZXNJbik7XG4gICAgfVxuXG4gICAgLy8gY29uc3QgZHVtbXlSZW1haW5pbmdUaW1lID0gKHF1ZXJ5Lmxhc3RUaW1lRXhlY3V0ZWRBdCgpID8/IDApICsgNTAwMCAtIG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgIGNvbnN0IHJlbWFpbmluZ1RpbWUgPSBuZXcgRGF0ZShleHBpcmVzSW4gKiAxMDAwKS5nZXRUaW1lKCkgLSByZWZyZXNoQnVmZmVyIC0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG5cbiAgICByZXR1cm4gcmVtYWluaW5nVGltZTtcbiAgfSk7XG5cbiAgY29uc3QgZXhlY3V0ZSA9IChuZXdBcmdzOiBSZXF1ZXN0QXJnczxUPiwgb3B0aW9ucz86IEludGVybmFsUXVlcnlFeGVjdXRlT3B0aW9ucykgPT4ge1xuICAgIHF1ZXJ5LmV4ZWN1dGUoeyBhcmdzOiBuZXdBcmdzIH0pO1xuICAgIHRyaWdnZXJlZEludGVybmFsbHkuc2V0KG9wdGlvbnM/LnRyaWdnZXJlZEludGVybmFsbHkgPz8gZmFsc2UpO1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgZXhlY3V0ZSxcbiAgICBxdWVyeSxcbiAgICB0b2tlbnMsXG4gICAgZXhwaXJlc0luLFxuICAgIHRyaWdnZXJlZEludGVybmFsbHk6IHRyaWdnZXJlZEludGVybmFsbHkuYXNSZWFkb25seSgpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUJlYXJlckF1dGhQcm92aWRlciA9IDxcbiAgVExvZ2luQXJncyBleHRlbmRzIFF1ZXJ5QXJncyxcbiAgVFRva2VuTG9naW5BcmdzIGV4dGVuZHMgUXVlcnlBcmdzLFxuICBUVG9rZW5SZWZyZXNoQXJncyBleHRlbmRzIFF1ZXJ5QXJncyxcbiAgVFNlbGVjdFJvbGVBcmdzIGV4dGVuZHMgUXVlcnlBcmdzLFxuPihcbiAgb3B0aW9uczogQmVhcmVyQXV0aFByb3ZpZGVyQ29uZmlnPFRMb2dpbkFyZ3MsIFRUb2tlbkxvZ2luQXJncywgVFRva2VuUmVmcmVzaEFyZ3MsIFRTZWxlY3RSb2xlQXJncz4sXG4pOiBCZWFyZXJBdXRoUHJvdmlkZXI8VExvZ2luQXJncywgVFRva2VuTG9naW5BcmdzLCBUVG9rZW5SZWZyZXNoQXJncywgVFNlbGVjdFJvbGVBcmdzPiA9PiB7XG4gIGNvbnN0IGNvb2tpZUVuYWJsZWQgPSBzaWduYWwob3B0aW9ucy5jb29raWUgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogKG9wdGlvbnMuY29va2llLmVuYWJsZWQgPz8gdHJ1ZSkpO1xuICBjb25zdCBjb29raWVPcHRpb25zOiBSZXF1aXJlZDxPbWl0PEJlYXJlckF1dGhQcm92aWRlckNvb2tpZUNvbmZpZzxUVG9rZW5SZWZyZXNoQXJncz4sICdlbmFibGVkJz4+ID0ge1xuICAgIGV4cGlyZXNJbkRheXM6IDMwLFxuICAgIG5hbWU6ICdldEF1dGgnLFxuICAgIHBhdGg6ICcvJyxcbiAgICBzYW1lU2l0ZTogJ2xheCcsXG4gICAgZG9tYWluOiBnZXREb21haW4oKSA/PyAnbG9jYWxob3N0JyxcbiAgICByZWZyZXNoQXJnc1RyYW5zZm9ybWVyOiAodG9rZW4pID0+ICh7IGJvZHk6IHsgdG9rZW4gfSB9KSBhcyBSZXF1ZXN0QXJnczxUVG9rZW5SZWZyZXNoQXJncz4sXG4gICAgLi4uKG9wdGlvbnMuY29va2llID8/IHt9KSxcbiAgfTtcblxuICBjb25zdCBsb2dpblF1ZXJ5ID0gb3B0aW9ucy5sb2dpbiA/IGNyZWF0ZUF1dGhQcm92aWRlclF1ZXJ5KG9wdGlvbnMubG9naW4sIG9wdGlvbnMpIDogbnVsbDtcbiAgY29uc3QgdG9rZW5Mb2dpblF1ZXJ5ID0gb3B0aW9ucy50b2tlbkxvZ2luID8gY3JlYXRlQXV0aFByb3ZpZGVyUXVlcnkob3B0aW9ucy50b2tlbkxvZ2luLCBvcHRpb25zKSA6IG51bGw7XG4gIGNvbnN0IHRva2VuUmVmcmVzaFF1ZXJ5ID0gb3B0aW9ucy50b2tlblJlZnJlc2ggPyBjcmVhdGVBdXRoUHJvdmlkZXJRdWVyeShvcHRpb25zLnRva2VuUmVmcmVzaCwgb3B0aW9ucykgOiBudWxsO1xuICBjb25zdCBzZWxlY3RSb2xlUXVlcnkgPSBvcHRpb25zLnNlbGVjdFJvbGUgPyBjcmVhdGVBdXRoUHJvdmlkZXJRdWVyeShvcHRpb25zLnNlbGVjdFJvbGUsIG9wdGlvbnMpIDogbnVsbDtcblxuICBjb25zdCBxdWVyaWVzOiBBdXRoUHJvdmlkZXJRdWVyeVdpdGhUeXBlPFRMb2dpbkFyZ3MsIFRUb2tlbkxvZ2luQXJncywgVFRva2VuUmVmcmVzaEFyZ3MsIFRTZWxlY3RSb2xlQXJncz5bXSA9IFtcbiAgICB7IHR5cGU6ICdsb2dpbicsIHF1ZXJ5OiBsb2dpblF1ZXJ5IH0sXG4gICAgeyB0eXBlOiAndG9rZW5Mb2dpbicsIHF1ZXJ5OiB0b2tlbkxvZ2luUXVlcnkgfSxcbiAgICB7IHR5cGU6ICd0b2tlblJlZnJlc2gnLCBxdWVyeTogdG9rZW5SZWZyZXNoUXVlcnkgfSxcbiAgICB7IHR5cGU6ICdzZWxlY3RSb2xlJywgcXVlcnk6IHNlbGVjdFJvbGVRdWVyeSB9LFxuICBdO1xuXG4gIGNvbnN0IGxhdGVzdEV4ZWN1dGVkUXVlcnkgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgcmVsZXZhbnRRdWVyaWVzID0gcXVlcmllcy5maWx0ZXIoKHEpID0+IHEucXVlcnkgJiYgcS5xdWVyeS5xdWVyeS5sYXN0VGltZUV4ZWN1dGVkQXQoKSAhPT0gbnVsbCk7XG5cbiAgICByZXR1cm4gZmluZE1vc3RSZWNlbnRRdWVyeShyZWxldmFudFF1ZXJpZXMpO1xuICB9KTtcblxuICBjb25zdCB0b2tlbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgcXVlcnkgPSBsYXRlc3RFeGVjdXRlZFF1ZXJ5KCk7XG5cbiAgICByZXR1cm4gcXVlcnk/LnF1ZXJ5Py50b2tlbnMoKT8udG9rZW5zID8/IG51bGw7XG4gIH0pO1xuXG4gIHRvT2JzZXJ2YWJsZShcbiAgICBjb21wdXRlZCgoKSA9PiB7XG4gICAgICBjb25zdCBxdWVyeSA9IGxhdGVzdEV4ZWN1dGVkUXVlcnkoKTtcbiAgICAgIGNvbnN0IGV4cGlyZXNJbiA9IHF1ZXJ5Py5xdWVyeT8uZXhwaXJlc0luKCkgPz8gbnVsbDtcbiAgICAgIGNvbnN0IHRva2VucyA9IHF1ZXJ5Py5xdWVyeT8udG9rZW5zKCkgPz8gbnVsbDtcblxuICAgICAgcmV0dXJuIHsgZXhwaXJlc0luLCB0b2tlbnMsIHF1ZXJ5IH07XG4gICAgfSksXG4gIClcbiAgICAucGlwZShcbiAgICAgIHN3aXRjaE1hcCgocmVzKSA9PiB7XG4gICAgICAgIGlmICghcmVzLnRva2VucyB8fCByZXMuZXhwaXJlc0luID09PSBudWxsIHx8ICFvcHRpb25zLnRva2VuUmVmcmVzaCkgcmV0dXJuIG9mKG51bGwpO1xuXG4gICAgICAgIGNvbnN0IGV4cEluID0gcmVzLmV4cGlyZXNJbjtcbiAgICAgICAgY29uc3QgdG9rZW5zID0gcmVzLnRva2VucztcblxuICAgICAgICBpZiAoIWV4cEluIHx8ICF0b2tlbnMpIHJldHVybiBvZihudWxsKTtcblxuICAgICAgICByZXR1cm4gdGltZXIoZXhwSW4pLnBpcGUoXG4gICAgICAgICAgdGFwKCgpID0+XG4gICAgICAgICAgICByZWZyZXNoVG9rZW4oXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5jb29raWVPcHRpb25zLnJlZnJlc2hBcmdzVHJhbnNmb3JtZXIodG9rZW5zLnRva2Vucy5yZWZyZXNoVG9rZW4pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7IHRyaWdnZXJlZEludGVybmFsbHk6IHRydWUgfSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH0pLFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgKVxuICAgIC5zdWJzY3JpYmUoKTtcblxuICBjb25zdCBsYXRlc3ROb25JbnRlcm5hbFF1ZXJ5ID0gc2lnbmFsPFF1ZXJ5U25hcHNob3RXaXRoVHlwZTxcbiAgICBUTG9naW5BcmdzLFxuICAgIFRUb2tlbkxvZ2luQXJncyxcbiAgICBUVG9rZW5SZWZyZXNoQXJncyxcbiAgICBUU2VsZWN0Um9sZUFyZ3NcbiAgPiB8IG51bGw+KG51bGwpO1xuXG4gIGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgcmVsZXZhbnRRdWVyaWVzID0gcXVlcmllcy5maWx0ZXIoXG4gICAgICAocSkgPT4gcS5xdWVyeSAmJiAhcS5xdWVyeS50cmlnZ2VyZWRJbnRlcm5hbGx5KCkgJiYgcS5xdWVyeS5xdWVyeS5sYXN0VGltZUV4ZWN1dGVkQXQoKSAhPT0gbnVsbCxcbiAgICApO1xuXG4gICAgY29uc3QgbGFzdFF1ZXJ5ID0gZmluZE1vc3RSZWNlbnRRdWVyeShyZWxldmFudFF1ZXJpZXMpO1xuXG4gICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgIGlmICghbGFzdFF1ZXJ5IHx8ICFsYXN0UXVlcnkucXVlcnk/LnF1ZXJ5KSByZXR1cm47XG5cbiAgICAgIGxhdGVzdE5vbkludGVybmFsUXVlcnkuc2V0KHtcbiAgICAgICAgdHlwZTogbGFzdFF1ZXJ5LnR5cGUsXG4gICAgICAgIC4uLmxhc3RRdWVyeS5xdWVyeS5xdWVyeS5jcmVhdGVTbmFwc2hvdCgpLFxuICAgICAgfSBhcyBRdWVyeVNuYXBzaG90V2l0aFR5cGU8VExvZ2luQXJncywgVFRva2VuTG9naW5BcmdzLCBUVG9rZW5SZWZyZXNoQXJncywgVFNlbGVjdFJvbGVBcmdzPik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIC8vIENvb2tpZSB3cml0aW5nXG4gIGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaXNDb29raWVFbmFibGVkID0gY29va2llRW5hYmxlZCgpO1xuICAgIGNvbnN0IHJlcyA9IGxhdGVzdEV4ZWN1dGVkUXVlcnkoKTtcbiAgICBjb25zdCBlcnJvciA9IHJlcz8ucXVlcnk/LnF1ZXJ5LmVycm9yKCk7XG5cbiAgICBpZiAoIWlzQ29va2llRW5hYmxlZCB8fCAoZXJyb3IgJiYgZXJyb3Iuc3RhdHVzID09PSA0MDEpKSB7XG4gICAgICBkZWxldGVDb29raWUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXJlcz8ucXVlcnkpIHJldHVybjtcblxuICAgIGNvbnN0IHsgdG9rZW5zIH0gPSByZXMucXVlcnk7XG5cbiAgICBjb25zdCBydCA9IHRva2VucygpPy50b2tlbnMucmVmcmVzaFRva2VuO1xuXG4gICAgaWYgKCFydCkgcmV0dXJuO1xuXG4gICAgd3JpdGVDb29raWUocnQpO1xuICB9KTtcblxuICBjb25zdCBsb2dpbiA9IChhcmdzOiBSZXF1ZXN0QXJnczxUTG9naW5BcmdzPikgPT4ge1xuICAgIGlmICghbG9naW5RdWVyeSkge1xuICAgICAgdGhyb3cgbG9naW5DYWxsZWRXaXRob3V0Q29uZmlnKCk7XG4gICAgfVxuXG4gICAgbG9naW5RdWVyeS5leGVjdXRlKGFyZ3MpO1xuXG4gICAgcmV0dXJuIGxvZ2luUXVlcnkucXVlcnkuY3JlYXRlU25hcHNob3QoKTtcbiAgfTtcblxuICBjb25zdCBsb2dpbldpdGhUb2tlbiA9IChhcmdzOiBSZXF1ZXN0QXJnczxUVG9rZW5Mb2dpbkFyZ3M+KSA9PiB7XG4gICAgaWYgKCF0b2tlbkxvZ2luUXVlcnkpIHtcbiAgICAgIHRocm93IGxvZ2luV2l0aFRva2VuQ2FsbGVkV2l0aG91dENvbmZpZygpO1xuICAgIH1cblxuICAgIHRva2VuTG9naW5RdWVyeS5leGVjdXRlKGFyZ3MpO1xuXG4gICAgcmV0dXJuIHRva2VuTG9naW5RdWVyeS5xdWVyeS5jcmVhdGVTbmFwc2hvdCgpO1xuICB9O1xuXG4gIGNvbnN0IHJlZnJlc2hUb2tlbiA9IChhcmdzOiBSZXF1ZXN0QXJnczxUVG9rZW5SZWZyZXNoQXJncz4sIG9wdGlvbnM/OiBJbnRlcm5hbFF1ZXJ5RXhlY3V0ZU9wdGlvbnMpID0+IHtcbiAgICBpZiAoIXRva2VuUmVmcmVzaFF1ZXJ5KSB7XG4gICAgICB0aHJvdyByZWZyZXNoVG9rZW5DYWxsZWRXaXRob3V0Q29uZmlnKCk7XG4gICAgfVxuXG4gICAgdG9rZW5SZWZyZXNoUXVlcnkuZXhlY3V0ZShhcmdzLCB7IHRyaWdnZXJlZEludGVybmFsbHk6IG9wdGlvbnM/LnRyaWdnZXJlZEludGVybmFsbHkgfSk7XG5cbiAgICByZXR1cm4gdG9rZW5SZWZyZXNoUXVlcnkucXVlcnkuY3JlYXRlU25hcHNob3QoKTtcbiAgfTtcblxuICBjb25zdCBzZWxlY3RSb2xlID0gKGFyZ3M6IFJlcXVlc3RBcmdzPFRTZWxlY3RSb2xlQXJncz4pID0+IHtcbiAgICBpZiAoIXNlbGVjdFJvbGVRdWVyeSkge1xuICAgICAgdGhyb3cgc2VsZWN0Um9sZUNhbGxlZFdpdGhvdXRDb25maWcoKTtcbiAgICB9XG5cbiAgICBzZWxlY3RSb2xlUXVlcnkuZXhlY3V0ZShhcmdzKTtcblxuICAgIHJldHVybiBzZWxlY3RSb2xlUXVlcnkucXVlcnkuY3JlYXRlU25hcHNob3QoKTtcbiAgfTtcblxuICBjb25zdCBsb2dvdXQgPSAoKSA9PiB7XG4gICAgZGVsZXRlQ29va2llKCk7XG4gICAgbG9naW5RdWVyeT8ucXVlcnkuZXhlY3V0ZS5yZXNldCgpO1xuICAgIHRva2VuTG9naW5RdWVyeT8ucXVlcnkuZXhlY3V0ZS5yZXNldCgpO1xuICAgIHRva2VuUmVmcmVzaFF1ZXJ5Py5xdWVyeS5leGVjdXRlLnJlc2V0KCk7XG4gICAgc2VsZWN0Um9sZVF1ZXJ5Py5xdWVyeS5leGVjdXRlLnJlc2V0KCk7XG4gICAgbGF0ZXN0Tm9uSW50ZXJuYWxRdWVyeS5zZXQobnVsbCk7XG4gIH07XG5cbiAgY29uc3QgZW5hYmxlQ29va2llID0gKCkgPT4ge1xuICAgIGlmIChpc0Rldk1vZGUoKSAmJiAhb3B0aW9ucy5jb29raWUpIHtcbiAgICAgIHRocm93IGVuYWJsZUNvb2tpZUNhbGxlZFdpdGhvdXRDb29raWVDb25maWcoKTtcbiAgICB9XG5cbiAgICBjb29raWVFbmFibGVkLnNldCh0cnVlKTtcbiAgfTtcblxuICBjb25zdCBkaXNhYmxlQ29va2llID0gKCkgPT4ge1xuICAgIGlmIChpc0Rldk1vZGUoKSAmJiAhb3B0aW9ucy5jb29raWUpIHtcbiAgICAgIHRocm93IGRpc2FibGVDb29raWVDYWxsZWRXaXRob3V0Q29va2llQ29uZmlnKCk7XG4gICAgfVxuXG4gICAgY29va2llRW5hYmxlZC5zZXQoZmFsc2UpO1xuICAgIGRlbGV0ZUNvb2tpZSgpO1xuICB9O1xuXG4gIGNvbnN0IHRyeUxvZ2luV2l0aENvb2tpZSA9ICgpID0+IHtcbiAgICBjb25zdCBpc0Nvb2tpZUVuYWJsZWQgPSBjb29raWVFbmFibGVkKCk7XG5cbiAgICBpZiAoIWlzQ29va2llRW5hYmxlZCkge1xuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgIHRocm93IGNvb2tpZUxvZ2luVHJpZWRCdXRDb29raWVEaXNhYmxlZCgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGNvb2tpZSA9IGdldENvb2tpZShjb29raWVPcHRpb25zLm5hbWUpO1xuXG4gICAgaWYgKCFjb29raWUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZWZyZXNoVG9rZW4oY29va2llT3B0aW9ucy5yZWZyZXNoQXJnc1RyYW5zZm9ybWVyKGNvb2tpZSkpO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG5cbiAgY29uc3Qgd3JpdGVDb29raWUgPSAocmVmcmVzaFRva2VuOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCB7IG5hbWUsIGV4cGlyZXNJbkRheXMsIGRvbWFpbiwgcGF0aCwgc2FtZVNpdGUgfSA9IGNvb2tpZU9wdGlvbnM7XG5cbiAgICBzZXRDb29raWUobmFtZSwgcmVmcmVzaFRva2VuLCBleHBpcmVzSW5EYXlzLCBkb21haW4sIHBhdGgsIHNhbWVTaXRlKTtcbiAgfTtcblxuICBjb25zdCBkZWxldGVDb29raWUgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBuYW1lLCBwYXRoLCBkb21haW4gfSA9IGNvb2tpZU9wdGlvbnM7XG5cbiAgICBjb3JlRGVsZXRlQ29va2llKG5hbWUsIHBhdGgsIGRvbWFpbik7XG4gIH07XG5cbiAgY29uc3QgZmluZE1vc3RSZWNlbnRRdWVyeSA9IChcbiAgICBxdWVyaWVzVG9TZWFyY2g6IEF1dGhQcm92aWRlclF1ZXJ5V2l0aFR5cGU8VExvZ2luQXJncywgVFRva2VuTG9naW5BcmdzLCBUVG9rZW5SZWZyZXNoQXJncywgVFNlbGVjdFJvbGVBcmdzPltdLFxuICApID0+IHtcbiAgICByZXR1cm4gcXVlcmllc1RvU2VhcmNoLnJlZHVjZShcbiAgICAgIChhY2MsIGN1cnIpID0+IHtcbiAgICAgICAgaWYgKCFhY2MpIHJldHVybiBjdXJyO1xuXG4gICAgICAgIGNvbnN0IGFjY0V4cCA9IGFjYy5xdWVyeT8ucXVlcnkubGFzdFRpbWVFeGVjdXRlZEF0KCkgPz8gbnVsbDtcbiAgICAgICAgY29uc3QgY3VyckV4cCA9IGN1cnIucXVlcnk/LnF1ZXJ5Lmxhc3RUaW1lRXhlY3V0ZWRBdCgpID8/IG51bGw7XG5cbiAgICAgICAgaWYgKGN1cnJFeHAgPT09IG51bGwgfHwgYWNjRXhwID09PSBudWxsKSByZXR1cm4gYWNjO1xuXG4gICAgICAgIHJldHVybiBhY2NFeHAgPiBjdXJyRXhwID8gYWNjIDogY3VycjtcbiAgICAgIH0sXG4gICAgICBudWxsIGFzIEF1dGhQcm92aWRlclF1ZXJ5V2l0aFR5cGU8VExvZ2luQXJncywgVFRva2VuTG9naW5BcmdzLCBUVG9rZW5SZWZyZXNoQXJncywgVFNlbGVjdFJvbGVBcmdzPiB8IG51bGwsXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBiZWFyZXJBdXRoUHJvdmlkZXI6IEJlYXJlckF1dGhQcm92aWRlcjxUTG9naW5BcmdzLCBUVG9rZW5Mb2dpbkFyZ3MsIFRUb2tlblJlZnJlc2hBcmdzLCBUU2VsZWN0Um9sZUFyZ3M+ID0ge1xuICAgIGxvZ2luLFxuICAgIGxvZ2luV2l0aFRva2VuLFxuICAgIHJlZnJlc2hUb2tlbixcbiAgICBzZWxlY3RSb2xlLFxuICAgIGxvZ291dCxcbiAgICBlbmFibGVDb29raWUsXG4gICAgZGlzYWJsZUNvb2tpZSxcbiAgICB0cnlMb2dpbldpdGhDb29raWUsXG4gICAgbGF0ZXN0RXhlY3V0ZWRRdWVyeTogbGF0ZXN0Tm9uSW50ZXJuYWxRdWVyeS5hc1JlYWRvbmx5KCksXG4gICAgdG9rZW5zLFxuICB9O1xuXG4gIGlmIChjb29raWVFbmFibGVkKCkpIHtcbiAgICB0cnlMb2dpbldpdGhDb29raWUoKTtcbiAgfVxuXG4gIHJldHVybiBiZWFyZXJBdXRoUHJvdmlkZXI7XG59O1xuXG5leHBvcnQgY29uc3QgcHJvdmlkZUJlYXJlckF1dGhQcm92aWRlciA9IDxcbiAgVExvZ2luQXJncyBleHRlbmRzIFF1ZXJ5QXJncyxcbiAgVFRva2VuTG9naW5BcmdzIGV4dGVuZHMgUXVlcnlBcmdzLFxuICBUVG9rZW5SZWZyZXNoQXJncyBleHRlbmRzIFF1ZXJ5QXJncyxcbiAgVFNlbGVjdFJvbGVBcmdzIGV4dGVuZHMgUXVlcnlBcmdzLFxuPihcbiAgY29uZmlnOiBCZWFyZXJBdXRoUHJvdmlkZXJDb25maWc8VExvZ2luQXJncywgVFRva2VuTG9naW5BcmdzLCBUVG9rZW5SZWZyZXNoQXJncywgVFNlbGVjdFJvbGVBcmdzPixcbikgPT4ge1xuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IGNvbmZpZy50b2tlbixcbiAgICB1c2VGYWN0b3J5OiAoKSA9PiBjcmVhdGVCZWFyZXJBdXRoUHJvdmlkZXIoY29uZmlnKSxcbiAgfTtcbn07XG4iXX0=
|
|
@@ -7,6 +7,7 @@ import { extractExpiresInSeconds, shouldRetryRequest, } from './query-utils';
|
|
|
7
7
|
export const SPEED_BUFFER_TIME_IN_MS = 2000;
|
|
8
8
|
export const createHttpRequest = (options) => {
|
|
9
9
|
let currentStreamSubscription = Subscription.EMPTY;
|
|
10
|
+
const { args, clientOptions, dependencies } = options;
|
|
10
11
|
const currentEvent = signal(null);
|
|
11
12
|
const loading = signal(null);
|
|
12
13
|
const error = signal(null);
|
|
@@ -19,16 +20,16 @@ export const createHttpRequest = (options) => {
|
|
|
19
20
|
const expiresInTs = expiresIn();
|
|
20
21
|
return expiresInTs === null || expiresInTs < Date.now();
|
|
21
22
|
});
|
|
22
|
-
const stream =
|
|
23
|
+
const stream = dependencies.httpClient
|
|
23
24
|
.request(options.method, options.fullPath, {
|
|
24
25
|
observe: 'events',
|
|
25
|
-
body:
|
|
26
|
-
reportProgress:
|
|
27
|
-
withCredentials:
|
|
28
|
-
transferCache:
|
|
29
|
-
responseType:
|
|
30
|
-
context:
|
|
31
|
-
headers:
|
|
26
|
+
body: args?.body,
|
|
27
|
+
reportProgress: clientOptions?.reportProgress,
|
|
28
|
+
withCredentials: clientOptions?.withCredentials,
|
|
29
|
+
transferCache: clientOptions?.transferCache,
|
|
30
|
+
responseType: clientOptions?.responseType || 'json',
|
|
31
|
+
context: clientOptions?.context,
|
|
32
|
+
headers: args?.headers,
|
|
32
33
|
})
|
|
33
34
|
.pipe(tap((event) => updateState(event)), retry({
|
|
34
35
|
delay: (error, retryCount) => {
|
|
@@ -150,4 +151,4 @@ export const createHttpRequest = (options) => {
|
|
|
150
151
|
};
|
|
151
152
|
return httpRequest;
|
|
152
153
|
};
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL2V4cGVyaW1lbnRhbC9odHRwLXJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseURBQXlEO0FBRXpELE9BQU8sRUFHTCxpQkFBaUIsRUFFakIsYUFBYSxHQUdkLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9FLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUl2RCxPQUFPLEVBR0wsdUJBQXVCLEVBQ3ZCLGtCQUFrQixHQUNuQixNQUFNLGVBQWUsQ0FBQztBQUV2QixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUM7QUEyRDVDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQTBCLE9BQXdDLEVBQUUsRUFBRTtJQUNyRyxJQUFJLHlCQUF5QixHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFFbkQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUF5RCxJQUFJLENBQUMsQ0FBQztJQUMxRixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQWlDLElBQUksQ0FBQyxDQUFDO0lBQzdELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBMkIsSUFBSSxDQUFDLENBQUM7SUFDckQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUE2QixJQUFJLENBQUMsQ0FBQztJQUUxRCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQyxNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QyxN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LENBQUM7UUFDcEUsTUFBTSwyQkFBMkIsR0FBRyxXQUFXLEdBQUcsZUFBZSxFQUFFLENBQUM7UUFDcEUsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxtQkFBbUIsRUFBRSxDQUFDO1FBRTFELHNGQUFzRjtRQUN0Riw0RkFBNEY7UUFDNUYsSUFBSSwyQkFBMkIsR0FBRyx1QkFBdUIsRUFBRSxDQUFDO1lBQzFELE1BQU0sS0FBSyxHQUFHLENBQUMsWUFBWSxHQUFHLHlCQUF5QixDQUFDLEdBQUcsSUFBSSxDQUFDO1lBRWhFLFFBQVEsQ0FBQyxLQUFLLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQztZQUM5QixRQUFRLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDbkYsQ0FBQztRQUVELGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXRDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQyxDQUFDO0lBRUYsTUFBTSxXQUFXLEdBQXVCO1FBQ3RDLE9BQU87UUFDUCxPQUFPO1FBQ1AsT0FBTyxFQUFFLE9BQU8sQ0FBQyxVQUFVLEVBQUU7UUFDN0IsS0FBSyxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUU7UUFDekIsUUFBUSxFQUFFLFFBQVEsQ0FBQyxVQUFVLEVBQUU7UUFDL0IsWUFBWSxFQUFFLFlBQVksQ0FBQyxVQUFVLEVBQUU7UUFDdkMsT0FBTztLQUNSLENBQUM7SUFFRixPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb24gKi9cblxuaW1wb3J0IHtcbiAgSHR0cENsaWVudCxcbiAgSHR0cENvbnRleHQsXG4gIEh0dHBFcnJvclJlc3BvbnNlLFxuICBIdHRwRXZlbnQsXG4gIEh0dHBFdmVudFR5cGUsXG4gIEh0dHBIZWFkZXJzLFxuICBIdHRwUHJvZ3Jlc3NFdmVudCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgU2lnbmFsLCBjb21wdXRlZCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGNhdGNoRXJyb3IsIHJldHJ5LCB0YXAsIHRocm93RXJyb3IsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBidWlsZFRpbWVzdGFtcEZyb21TZWNvbmRzIH0gZnJvbSAnLi4vcmVxdWVzdCc7XG5pbXBvcnQgeyBCb2R5VHlwZSwgUGF0aFBhcmFtc1R5cGUsIFF1ZXJ5QXJncywgUXVlcnlQYXJhbXNUeXBlLCBSZXNwb25zZVR5cGUgfSBmcm9tICcuL3F1ZXJ5JztcbmltcG9ydCB7IENhY2hlQWRhcHRlckZuIH0gZnJvbSAnLi9xdWVyeS1jbGllbnQtY29uZmlnJztcbmltcG9ydCB7IFF1ZXJ5TWV0aG9kIH0gZnJvbSAnLi9xdWVyeS1jcmVhdG9yJztcbmltcG9ydCB7XG4gIFNob3VsZFJldHJ5UmVxdWVzdEZuLFxuICBTaG91bGRSZXRyeVJlcXVlc3RPcHRpb25zLFxuICBleHRyYWN0RXhwaXJlc0luU2Vjb25kcyxcbiAgc2hvdWxkUmV0cnlSZXF1ZXN0LFxufSBmcm9tICcuL3F1ZXJ5LXV0aWxzJztcblxuZXhwb3J0IGNvbnN0IFNQRUVEX0JVRkZFUl9USU1FX0lOX01TID0gMjAwMDtcblxuZXhwb3J0IHR5cGUgQ3JlYXRlSHR0cFJlcXVlc3RPcHRpb25zPFRBcmdzIGV4dGVuZHMgUXVlcnlBcmdzPiA9IHtcbiAgbWV0aG9kOiBRdWVyeU1ldGhvZDtcbiAgZnVsbFBhdGg6IHN0cmluZztcbiAgcGF0aFBhcmFtcz86IFBhdGhQYXJhbXNUeXBlPFRBcmdzPjtcbiAgcXVlcnlQYXJhbXM/OiBRdWVyeVBhcmFtc1R5cGU8VEFyZ3M+O1xuICBib2R5PzogQm9keVR5cGU8VEFyZ3M+O1xuICByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW47XG4gIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XG4gIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFuIHwgeyBpbmNsdWRlSGVhZGVycz86IHN0cmluZ1tdIH07XG4gIHJlc3BvbnNlVHlwZT86ICdqc29uJyB8ICd0ZXh0JyB8ICdibG9iJyB8ICdhcnJheWJ1ZmZlcic7XG5cbiAgY29udGV4dD86IEh0dHBDb250ZXh0O1xuICBoZWFkZXJzPzogSHR0cEhlYWRlcnM7XG5cbiAgaHR0cENsaWVudDogSHR0cENsaWVudDtcblxuICBjYWNoZUFkYXB0ZXI/OiBDYWNoZUFkYXB0ZXJGbjtcbiAgcmV0cnlGbj86IFNob3VsZFJldHJ5UmVxdWVzdEZuO1xufTtcblxuZXhwb3J0IHR5cGUgSHR0cFJlcXVlc3RMb2FkaW5nU3RhdGUgPSB7XG4gIGV4ZWN1dGVUaW1lOiBudW1iZXI7XG4gIHByb2dyZXNzOiBIdHRwUmVxdWVzdExvYWRpbmdQcm9ncmVzc1N0YXRlIHwgbnVsbDtcbn07XG5cbmV4cG9ydCB0eXBlIEh0dHBSZXF1ZXN0TG9hZGluZ1Byb2dyZXNzU3RhdGUgPSB7XG4gIC8qKiBUaGUgdG90YWwgbnVtYmVyIG9mIGJ5dGVzIHRvIGJlIHRyYW5zZmVycmVkICovXG4gIHRvdGFsOiBudW1iZXI7XG5cbiAgLyoqIFRoZSBudW1iZXIgb2YgYnl0ZXMgdHJhbnNmZXJyZWQgKi9cbiAgbG9hZGVkOiBudW1iZXI7XG5cbiAgLyoqIFRoZSBwZXJjZW50YWdlIG9mIHRoZSB0cmFuc2ZlciB0aGF0IGlzIGNvbXBsZXRlZCAqL1xuICBwZXJjZW50YWdlOiBudW1iZXI7XG5cbiAgLyoqIFRoZSBzcGVlZCBvZiB0aGUgdHJhbnNmZXIgaW4gYnl0ZXMgcGVyIG1pbGxpc2Vjb25kICovXG4gIHNwZWVkOiBudW1iZXIgfCBudWxsO1xuXG4gIC8qKiBUaGUgZXN0aW1hdGVkIHJlbWFpbmluZyB0aW1lIGluIG1pbGxpc2Vjb25kcyAqL1xuICByZW1haW5pbmdUaW1lOiBudW1iZXIgfCBudWxsO1xufTtcblxuZXhwb3J0IHR5cGUgSHR0cFJlcXVlc3Q8VEFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3M+ID0ge1xuICBleGVjdXRlOiAoKSA9PiBib29sZWFuO1xuICBkZXN0cm95OiAoKSA9PiBib29sZWFuO1xuICBsb2FkaW5nOiBTaWduYWw8SHR0cFJlcXVlc3RMb2FkaW5nU3RhdGUgfCBudWxsPjtcbiAgZXJyb3I6IFNpZ25hbDxIdHRwRXJyb3JSZXNwb25zZSB8IG51bGw+O1xuICByZXNwb25zZTogU2lnbmFsPFJlc3BvbnNlVHlwZTxUQXJncz4gfCBudWxsPjtcbiAgY3VycmVudEV2ZW50OiBTaWduYWw8SHR0cEV2ZW50PFJlc3BvbnNlVHlwZTxUQXJncz4+IHwgSHR0cEVycm9yRXZlbnQgfCBudWxsPjtcbiAgaXNTdGFsZTogU2lnbmFsPGJvb2xlYW4+O1xufTtcblxuZXhwb3J0IHR5cGUgSHR0cEVycm9yRXZlbnQgPSB7XG4gIHR5cGU6ICdlcnJvcic7XG4gIGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVIdHRwUmVxdWVzdCA9IDxUQXJncyBleHRlbmRzIFF1ZXJ5QXJncz4ob3B0aW9uczogQ3JlYXRlSHR0cFJlcXVlc3RPcHRpb25zPFRBcmdzPikgPT4ge1xuICBsZXQgY3VycmVudFN0cmVhbVN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblxuICBjb25zdCBjdXJyZW50RXZlbnQgPSBzaWduYWw8SHR0cEV2ZW50PFJlc3BvbnNlVHlwZTxUQXJncz4+IHwgSHR0cEVycm9yRXZlbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgbG9hZGluZyA9IHNpZ25hbDxIdHRwUmVxdWVzdExvYWRpbmdTdGF0ZSB8IG51bGw+KG51bGwpO1xuICBjb25zdCBlcnJvciA9IHNpZ25hbDxIdHRwRXJyb3JSZXNwb25zZSB8IG51bGw+KG51bGwpO1xuICBjb25zdCByZXNwb25zZSA9IHNpZ25hbDxSZXNwb25zZVR5cGU8VEFyZ3M+IHwgbnVsbD4obnVsbCk7XG5cbiAgY29uc3QgbGFzdExvYWRFdmVudFRpbWUgPSBzaWduYWwoMCk7XG4gIGNvbnN0IGxhc3RMb2FkRXZlbnRBbW91bnQgPSBzaWduYWwoMCk7XG4gIGNvbnN0IGxhc3RFeGVjdXRlVGltZSA9IHNpZ25hbCgwKTtcbiAgY29uc3QgZXhwaXJlc0luID0gc2lnbmFsPG51bWJlciB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IGlzU3RhbGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgZXhwaXJlc0luVHMgPSBleHBpcmVzSW4oKTtcblxuICAgIHJldHVybiBleHBpcmVzSW5UcyA9PT0gbnVsbCB8fCBleHBpcmVzSW5UcyA8IERhdGUubm93KCk7XG4gIH0pO1xuXG4gIGNvbnN0IHN0cmVhbSA9IG9wdGlvbnMuaHR0cENsaWVudFxuICAgIC5yZXF1ZXN0KG9wdGlvbnMubWV0aG9kLCBvcHRpb25zLmZ1bGxQYXRoLCB7XG4gICAgICBvYnNlcnZlOiAnZXZlbnRzJyxcbiAgICAgIGJvZHk6IG9wdGlvbnMuYm9keSxcbiAgICAgIHJlcG9ydFByb2dyZXNzOiBvcHRpb25zLnJlcG9ydFByb2dyZXNzLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiBvcHRpb25zLndpdGhDcmVkZW50aWFscyxcbiAgICAgIHRyYW5zZmVyQ2FjaGU6IG9wdGlvbnMudHJhbnNmZXJDYWNoZSxcbiAgICAgIHJlc3BvbnNlVHlwZTogb3B0aW9ucy5yZXNwb25zZVR5cGUgfHwgJ2pzb24nLFxuICAgICAgY29udGV4dDogb3B0aW9ucy5jb250ZXh0LFxuICAgICAgaGVhZGVyczogb3B0aW9ucy5oZWFkZXJzLFxuICAgIH0pXG4gICAgLnBpcGUoXG4gICAgICB0YXAoKGV2ZW50KSA9PiB1cGRhdGVTdGF0ZShldmVudCkpLFxuICAgICAgcmV0cnkoe1xuICAgICAgICBkZWxheTogKGVycm9yLCByZXRyeUNvdW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgcmV0cnlPcHRpb25zOiBTaG91bGRSZXRyeVJlcXVlc3RPcHRpb25zID0geyBlcnJvciwgcmV0cnlDb3VudCB9O1xuXG4gICAgICAgICAgY29uc3QgcmV0cnlSZXN1bHQgPSBvcHRpb25zLnJldHJ5Rm4/LihyZXRyeU9wdGlvbnMpIHx8IHNob3VsZFJldHJ5UmVxdWVzdChyZXRyeU9wdGlvbnMpO1xuXG4gICAgICAgICAgaWYgKCFyZXRyeVJlc3VsdC5yZXRyeSkge1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB0aW1lcihyZXRyeVJlc3VsdC5kZWxheSk7XG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcbiAgICAgICAgdXBkYXRlRXJyb3JTdGF0ZShlKTtcblxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlKTtcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgY29uc3QgZXhlY3V0ZSA9ICgpID0+IHtcbiAgICBpZiAobG9hZGluZygpIHx8ICFpc1N0YWxlKCkpIHtcbiAgICAgIC8vIERvIG5vdCBleGVjdXRlIGlmIHRoZXJlIGlzIGFscmVhZHkgYSByZXF1ZXN0IGluIHByb2dyZXNzIG9yIHRoZSByZXF1ZXN0IGlzIG5vdCBzdGFsZVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGN1cnJlbnRTdHJlYW1TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcblxuICAgIGxhc3RFeGVjdXRlVGltZS5zZXQoRGF0ZS5ub3coKSk7XG4gICAgbGFzdExvYWRFdmVudFRpbWUuc2V0KGxhc3RFeGVjdXRlVGltZSgpKTtcblxuICAgIGxvYWRpbmcuc2V0KHtcbiAgICAgIGV4ZWN1dGVUaW1lOiBsYXN0RXhlY3V0ZVRpbWUoKSxcbiAgICAgIHByb2dyZXNzOiBudWxsLFxuICAgIH0pO1xuICAgIGVycm9yLnNldChudWxsKTtcbiAgICBleHBpcmVzSW4uc2V0KG51bGwpO1xuXG4gICAgY3VycmVudFN0cmVhbVN1YnNjcmlwdGlvbiA9IHN0cmVhbS5zdWJzY3JpYmUoKTtcblxuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIGNvbnN0IGRlc3Ryb3kgPSAoKSA9PiB7XG4gICAgaWYgKGN1cnJlbnRTdHJlYW1TdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY3VycmVudFN0cmVhbVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG5cbiAgY29uc3QgdXBkYXRlU3RhdGUgPSAoZXZlbnQ6IEh0dHBFdmVudDxSZXNwb25zZVR5cGU8VEFyZ3M+PikgPT4ge1xuICAgIGN1cnJlbnRFdmVudC5zZXQoZXZlbnQpO1xuXG4gICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gICAgICBjYXNlIEh0dHBFdmVudFR5cGUuUmVzcG9uc2U6XG4gICAgICAgIHtcbiAgICAgICAgICBsb2FkaW5nLnNldChudWxsKTtcbiAgICAgICAgICByZXNwb25zZS5zZXQoZXZlbnQuYm9keSk7XG5cbiAgICAgICAgICBjb25zdCBleHBpcmVzSW5TZWNvbmRzID0gb3B0aW9ucy5jYWNoZUFkYXB0ZXJcbiAgICAgICAgICAgID8gb3B0aW9ucy5jYWNoZUFkYXB0ZXIoZXZlbnQuaGVhZGVycylcbiAgICAgICAgICAgIDogZXh0cmFjdEV4cGlyZXNJblNlY29uZHMoZXZlbnQuaGVhZGVycyk7XG4gICAgICAgICAgY29uc3QgZXhwaXJlc0luVGltZXN0YW1wID0gYnVpbGRUaW1lc3RhbXBGcm9tU2Vjb25kcyhleHBpcmVzSW5TZWNvbmRzKTtcbiAgICAgICAgICBleHBpcmVzSW4uc2V0KGV4cGlyZXNJblRpbWVzdGFtcCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzczpcbiAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5Eb3dubG9hZFByb2dyZXNzOlxuICAgICAgICB7XG4gICAgICAgICAgdXBkYXRlTG9hZGluZ1N0YXRlKGV2ZW50KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlNlbnQ6XG4gICAgICBjYXNlIEh0dHBFdmVudFR5cGUuUmVzcG9uc2VIZWFkZXI6XG4gICAgICBjYXNlIEh0dHBFdmVudFR5cGUuVXNlcjpcbiAgICAgICAge1xuICAgICAgICAgIC8vIHdlIGRvbid0IGNhcmUgYWJvdXQgdGhlc2UgZXZlbnRzXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHVwZGF0ZUVycm9yU3RhdGUgPSAoZXJyb3JSZXNwb25zZTogdW5rbm93bikgPT4ge1xuICAgIGxldCBlcnIgPSBlcnJvclJlc3BvbnNlIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UgPyBlcnJvclJlc3BvbnNlIDogbnVsbDtcblxuICAgIGlmICghZXJyKSB7XG4gICAgICBlcnIgPSBuZXcgSHR0cEVycm9yUmVzcG9uc2Uoe1xuICAgICAgICBlcnJvcjogZXJyb3JSZXNwb25zZSxcbiAgICAgICAgc3RhdHVzOiAwLFxuICAgICAgICBzdGF0dXNUZXh0OiAnVW5rbm93biBFcnJvcicsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBlcnJvci5zZXQoZXJyKTtcbiAgICBsb2FkaW5nLnNldChudWxsKTtcbiAgICBjdXJyZW50RXZlbnQuc2V0KHsgdHlwZTogJ2Vycm9yJywgZXJyb3I6IGVyciB9KTtcbiAgfTtcblxuICBjb25zdCB1cGRhdGVMb2FkaW5nU3RhdGUgPSAoZXZlbnQ6IEh0dHBQcm9ncmVzc0V2ZW50KSA9PiB7XG4gICAgaWYgKGV2ZW50LnRvdGFsID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9ncmVzczogSHR0cFJlcXVlc3RMb2FkaW5nUHJvZ3Jlc3NTdGF0ZSA9IHtcbiAgICAgIHRvdGFsOiBldmVudC50b3RhbCxcbiAgICAgIGxvYWRlZDogZXZlbnQubG9hZGVkLFxuICAgICAgcGVyY2VudGFnZTogKGV2ZW50LmxvYWRlZCAvIGV2ZW50LnRvdGFsKSAqIDEwMCxcbiAgICAgIHNwZWVkOiBudWxsLFxuICAgICAgcmVtYWluaW5nVGltZTogbnVsbCxcbiAgICB9O1xuXG4gICAgY29uc3Qgc3RhdGU6IEh0dHBSZXF1ZXN0TG9hZGluZ1N0YXRlID0ge1xuICAgICAgZXhlY3V0ZVRpbWU6IGxhc3RFeGVjdXRlVGltZSgpLFxuICAgICAgcHJvZ3Jlc3MsXG4gICAgfTtcblxuICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICBjb25zdCBlbGFwc2VkVGltZVNpbmNlTGFzdEV2ZW50ID0gY3VycmVudFRpbWUgLSBsYXN0TG9hZEV2ZW50VGltZSgpO1xuICAgIGNvbnN0IGVsYXBzZWRUaW1lU2luY2VMYXN0RXhlY3V0ZSA9IGN1cnJlbnRUaW1lIC0gbGFzdEV4ZWN1dGVUaW1lKCk7XG4gICAgY29uc3QgbG9hZGVkQW1vdW50ID0gZXZlbnQubG9hZGVkIC0gbGFzdExvYWRFdmVudEFtb3VudCgpO1xuXG4gICAgLy8gV2Ugb25seSB3YW50IHRvIGNhbGN1bGF0ZSBzcGVlZCBhbmQgcmVtYWluaW5nIHRpbWUgYWZ0ZXIgMiBzZWNvbmRzIG9mIHRoZSBleGVjdXRpb25cbiAgICAvLyBUaGlzIGlzIHRvIGF2b2lkIHNob3dpbmcgaW5jb3JyZWN0IHNwZWVkIGFuZCByZW1haW5pbmcgdGltZSB3aGVuIHRoZSByZXF1ZXN0IGlzIHZlcnkgZmFzdFxuICAgIGlmIChlbGFwc2VkVGltZVNpbmNlTGFzdEV4ZWN1dGUgPiBTUEVFRF9CVUZGRVJfVElNRV9JTl9NUykge1xuICAgICAgY29uc3Qgc3BlZWQgPSAobG9hZGVkQW1vdW50IC8gZWxhcHNlZFRpbWVTaW5jZUxhc3RFdmVudCkgKiAxMDAwO1xuXG4gICAgICBwcm9ncmVzcy5zcGVlZCA9IHNwZWVkICogMTAwMDtcbiAgICAgIHByb2dyZXNzLnJlbWFpbmluZ1RpbWUgPSBNYXRoLnJvdW5kKChldmVudC50b3RhbCAtIGV2ZW50LmxvYWRlZCkgLyBzcGVlZCkgKiAxMDAwO1xuICAgIH1cblxuICAgIGxhc3RMb2FkRXZlbnRUaW1lLnNldChjdXJyZW50VGltZSk7XG4gICAgbGFzdExvYWRFdmVudEFtb3VudC5zZXQoZXZlbnQubG9hZGVkKTtcblxuICAgIGxvYWRpbmcuc2V0KHN0YXRlKTtcbiAgfTtcblxuICBjb25zdCBodHRwUmVxdWVzdDogSHR0cFJlcXVlc3Q8VEFyZ3M+ID0ge1xuICAgIGV4ZWN1dGUsXG4gICAgZGVzdHJveSxcbiAgICBsb2FkaW5nOiBsb2FkaW5nLmFzUmVhZG9ubHkoKSxcbiAgICBlcnJvcjogZXJyb3IuYXNSZWFkb25seSgpLFxuICAgIHJlc3BvbnNlOiByZXNwb25zZS5hc1JlYWRvbmx5KCksXG4gICAgY3VycmVudEV2ZW50OiBjdXJyZW50RXZlbnQuYXNSZWFkb25seSgpLFxuICAgIGlzU3RhbGUsXG4gIH07XG5cbiAgcmV0dXJuIGh0dHBSZXF1ZXN0O1xufTtcbiJdfQ==
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL2V4cGVyaW1lbnRhbC9odHRwLXJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseURBQXlEO0FBRXpELE9BQU8sRUFHTCxpQkFBaUIsRUFFakIsYUFBYSxHQUVkLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9FLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUl2RCxPQUFPLEVBR0wsdUJBQXVCLEVBQ3ZCLGtCQUFrQixHQUNuQixNQUFNLGVBQWUsQ0FBQztBQUV2QixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUM7QUEySTVDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQTBCLE9BQXdDLEVBQUUsRUFBRTtJQUNyRyxJQUFJLHlCQUF5QixHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFFbkQsTUFBTSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRXRELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBeUQsSUFBSSxDQUFDLENBQUM7SUFDMUYsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFpQyxJQUFJLENBQUMsQ0FBQztJQUM3RCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQTJCLElBQUksQ0FBQyxDQUFDO0lBQ3JELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBNkIsSUFBSSxDQUFDLENBQUM7SUFFMUQsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFD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aW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uICovXG5cbmltcG9ydCB7XG4gIEh0dHBDbGllbnQsXG4gIEh0dHBDb250ZXh0LFxuICBIdHRwRXJyb3JSZXNwb25zZSxcbiAgSHR0cEV2ZW50LFxuICBIdHRwRXZlbnRUeXBlLFxuICBIdHRwUHJvZ3Jlc3NFdmVudCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgU2lnbmFsLCBjb21wdXRlZCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGNhdGNoRXJyb3IsIHJldHJ5LCB0YXAsIHRocm93RXJyb3IsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBidWlsZFRpbWVzdGFtcEZyb21TZWNvbmRzIH0gZnJvbSAnLi4vcmVxdWVzdCc7XG5pbXBvcnQgeyBRdWVyeUFyZ3MsIFJlcXVlc3RBcmdzLCBSZXNwb25zZVR5cGUgfSBmcm9tICcuL3F1ZXJ5JztcbmltcG9ydCB7IENhY2hlQWRhcHRlckZuIH0gZnJvbSAnLi9xdWVyeS1jbGllbnQtY29uZmlnJztcbmltcG9ydCB7IFF1ZXJ5TWV0aG9kIH0gZnJvbSAnLi9xdWVyeS1jcmVhdG9yJztcbmltcG9ydCB7XG4gIFNob3VsZFJldHJ5UmVxdWVzdEZuLFxuICBTaG91bGRSZXRyeVJlcXVlc3RPcHRpb25zLFxuICBleHRyYWN0RXhwaXJlc0luU2Vjb25kcyxcbiAgc2hvdWxkUmV0cnlSZXF1ZXN0LFxufSBmcm9tICcuL3F1ZXJ5LXV0aWxzJztcblxuZXhwb3J0IGNvbnN0IFNQRUVEX0JVRkZFUl9USU1FX0lOX01TID0gMjAwMDtcblxuZXhwb3J0IHR5cGUgSHR0cFJlcXVlc3RUcmFuc2ZlckNhY2hlQ29uZmlnID1cbiAgfCBib29sZWFuXG4gIHwge1xuICAgICAgaW5jbHVkZUhlYWRlcnM/OiBzdHJpbmdbXTtcbiAgICB9O1xuXG5leHBvcnQgdHlwZSBIdHRwUmVxdWVzdFJlc3BvbnNlVHlwZSA9ICdqc29uJyB8ICd0ZXh0JyB8ICdibG9iJyB8ICdhcnJheWJ1ZmZlcic7XG5cbmV4cG9ydCB0eXBlIENyZWF0ZUh0dHBSZXF1ZXN0RGVwZW5kZW5jaWVzID0ge1xuICAvKiogVGhlIGh0dHAgY2xpZW50IGluc3RhbmNlIHRvIHVzZSBmb3IgdGhlIHJlcXVlc3QgKi9cbiAgaHR0cENsaWVudDogSHR0cENsaWVudDtcbn07XG5cbmV4cG9ydCB0eXBlIENyZWF0ZUh0dHBSZXF1ZXN0Q2xpZW50T3B0aW9ucyA9IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmVwb3J0IHRoZSBwcm9ncmVzcyBvZiB0aGUgcmVxdWVzdCBvciBub3QuIElmIHRoZSBmZXRjaCBiYWNrZW5kIGlzIHVzZWQsIHRoaXMgd2lsbCBvbmx5IHdvcmsgZm9yIGRvd25sb2Fkcy5cbiAgICogQHNlZSBodHRwczovL2FuZ3VsYXIuZGV2L2d1aWRlL2h0dHAvbWFraW5nLXJlcXVlc3RzI3JlY2VpdmluZy1yYXctcHJvZ3Jlc3MtZXZlbnRzXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaW5jbHVkZSBjcmVkZW50aWFscyBpbiB0aGUgcmVxdWVzdCBvciBub3RcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoaXMgcHJvcGVydHkgYWNjZXB0cyBlaXRoZXIgYSBib29sZWFuIHRvIGVuYWJsZS9kaXNhYmxlIHRyYW5zZmVycmluZyBjYWNoZSBmb3IgZWxpZ2libGVcbiAgICogcmVxdWVzdHMgcGVyZm9ybWVkIHVzaW5nIGBIdHRwQ2xpZW50YCwgb3IgYW4gb2JqZWN0LCB3aGljaCBhbGxvd3MgdG8gY29uZmlndXJlIGNhY2hlXG4gICAqIHBhcmFtZXRlcnMsIHN1Y2ggYXMgd2hpY2ggaGVhZGVycyBzaG91bGQgYmUgaW5jbHVkZWQgKG5vIGhlYWRlcnMgYXJlIGluY2x1ZGVkIGJ5IGRlZmF1bHQpLlxuICAgKlxuICAgKiBTZXR0aW5nIHRoaXMgcHJvcGVydHkgd2lsbCBvdmVycmlkZSB0aGUgb3B0aW9ucyBwYXNzZWQgdG8gYHByb3ZpZGVDbGllbnRIeWRyYXRpb24oKWAgZm9yIHRoaXNcbiAgICogcGFydGljdWxhciByZXF1ZXN0XG4gICAqL1xuICB0cmFuc2ZlckNhY2hlPzogSHR0cFJlcXVlc3RUcmFuc2ZlckNhY2hlQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVzcG9uc2UgdHlwZSBvZiB0aGUgcmVxdWVzdFxuICAgKiBAZGVmYXVsdCAnanNvbidcbiAgICovXG4gIHJlc3BvbnNlVHlwZT86IEh0dHBSZXF1ZXN0UmVzcG9uc2VUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGV4dCBvZiB0aGUgcmVxdWVzdFxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICogQHNlZSBodHRwczovL2FuZ3VsYXIuZGV2L2d1aWRlL2h0dHAvaW50ZXJjZXB0b3JzI3JlcXVlc3QtYW5kLXJlc3BvbnNlLW1ldGFkYXRhXG4gICAqL1xuICBjb250ZXh0PzogSHR0cENvbnRleHQ7XG59O1xuXG5leHBvcnQgdHlwZSBDcmVhdGVIdHRwUmVxdWVzdE9wdGlvbnM8VEFyZ3MgZXh0ZW5kcyBRdWVyeUFyZ3M+ID0ge1xuICAvKiogVGhlIEhUVFAgbWV0aG9kIG9mIHRoZSByZXF1ZXN0ICovXG4gIG1ldGhvZDogUXVlcnlNZXRob2Q7XG5cbiAgLyoqXG4gICAqIFRoZSBmdWxsIHBhdGggb2YgdGhlIHJlcXVlc3RcbiAgICogQGV4YW1wbGUgJ2h0dHBzOi8vYXBpLmV4YW1wbGUuY29tL3YxL3VzZXJzJ1xuICAgKi9cbiAgZnVsbFBhdGg6IHN0cmluZztcblxuICAvKiogVGhlIGRhdGEgb2YgdGhlIHJlcXVlc3QgKi9cbiAgYXJncz86IFJlcXVlc3RBcmdzPFRBcmdzPiB8IG51bGw7XG5cbiAgLyoqIFRoZSBkZXBlbmRlbmNpZXMgb2YgdGhlIHJlcXVlc3QgKi9cbiAgZGVwZW5kZW5jaWVzOiBDcmVhdGVIdHRwUmVxdWVzdERlcGVuZGVuY2llcztcblxuICAvKiogVGhlIGNsaWVudCBvcHRpb25zIG9mIHRoZSByZXF1ZXN0ICovXG4gIGNsaWVudE9wdGlvbnM/OiBDcmVhdGVIdHRwUmVxdWVzdENsaWVudE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFRoZSBjYWNoZSBhZGFwdGVyIGZ1bmN0aW9uIHRvIHVzZSBmb3IgdGhlIHJlcXVlc3RcbiAgICogQGRlZmF1bHQgZXh0cmFjdEV4cGlyZXNJblNlY29uZHMoKVxuICAgKi9cbiAgY2FjaGVBZGFwdGVyPzogQ2FjaGVBZGFwdGVyRm47XG5cbiAgLyoqXG4gICAqIFRoZSByZXRyeSBmdW5jdGlvbiB0byB1c2UgZm9yIHRoZSByZXF1ZXN0XG4gICAqIEBkZWZhdWx0IHNob3VsZFJldHJ5UmVxdWVzdCgpXG4gICAqL1xuICByZXRyeUZuPzogU2hvdWxkUmV0cnlSZXF1ZXN0Rm47XG59O1xuXG5leHBvcnQgdHlwZSBIdHRwUmVxdWVzdExvYWRpbmdTdGF0ZSA9IHtcbiAgLyoqIFRoZSB0aW1lIHdoZW4gdGhlIHJlcXVlc3Qgd2FzIGV4ZWN1dGVkIGluIG1zICovXG4gIGV4ZWN1dGVUaW1lOiBudW1iZXI7XG5cbiAgLyoqIFRoZSBwcm9ncmVzcyBvZiB0aGUgcmVxdWVzdC4gTnVsbCBpZiByZXBvcnRQcm9ncmVzcyBpcyBmYWxzZSBvciBwcm9ncmVzcyBpcyBub3QgYXZhaWxhYmxlIC8gdW5zdXBwb3J0ZWQgKi9cbiAgcHJvZ3Jlc3M6IEh0dHBSZXF1ZXN0TG9hZGluZ1Byb2dyZXNzU3RhdGUgfCBudWxsO1xufTtcblxuZXhwb3J0IHR5cGUgSHR0cFJlcXVlc3RMb2FkaW5nUHJvZ3Jlc3NTdGF0ZSA9IHtcbiAgLyoqIFRoZSB0b3RhbCBudW1iZXIgb2YgYnl0ZXMgdG8gYmUgdHJhbnNmZXJyZWQgKi9cbiAgdG90YWw6IG51bWJlcjtcblxuICAvKiogVGhlIG51bWJlciBvZiBieXRlcyB0cmFuc2ZlcnJlZCAqL1xuICBsb2FkZWQ6IG51bWJlcjtcblxuICAvKiogVGhlIHBlcmNlbnRhZ2Ugb2YgdGhlIHRyYW5zZmVyIHRoYXQgaXMgY29tcGxldGVkICovXG4gIHBlcmNlbnRhZ2U6IG51bWJlcjtcblxuICAvKiogVGhlIHNwZWVkIG9mIHRoZSB0cmFuc2ZlciBpbiBieXRlcyBwZXIgbWlsbGlzZWNvbmQgKi9cbiAgc3BlZWQ6IG51bWJlciB8IG51bGw7XG5cbiAgLyoqIFRoZSBlc3RpbWF0ZWQgcmVtYWluaW5nIHRpbWUgaW4gbWlsbGlzZWNvbmRzICovXG4gIHJlbWFpbmluZ1RpbWU6IG51bWJlciB8IG51bGw7XG59O1xuXG5leHBvcnQgdHlwZSBIdHRwUmVxdWVzdDxUQXJncyBleHRlbmRzIFF1ZXJ5QXJncz4gPSB7XG4gIC8qKiBFeGVjdXRlcyB0aGUgcmVxdWVzdCAqL1xuICBleGVjdXRlOiAoKSA9PiBib29sZWFuO1xuXG4gIC8qKiBEZXN0cm95cyB0aGUgcmVxdWVzdCAoY2FuY2VscyBpdCBpZiBpbiBwcm9ncmVzcykgKi9cbiAgZGVzdHJveTogKCkgPT4gYm9vbGVhbjtcblxuICAvKiogVGhlIGxvYWRpbmcgc3RhdGUgb2YgdGhlIHJlcXVlc3QgKi9cbiAgbG9hZGluZzogU2lnbmFsPEh0dHBSZXF1ZXN0TG9hZGluZ1N0YXRlIHwgbnVsbD47XG5cbiAgLyoqIFRoZSBlcnJvciBzdGF0ZSBvZiB0aGUgcmVxdWVzdCAqL1xuICBlcnJvcjogU2lnbmFsPEh0dHBFcnJvclJlc3BvbnNlIHwgbnVsbD47XG5cbiAgLyoqIFRoZSByZXNwb25zZSBzdGF0ZSBvZiB0aGUgcmVxdWVzdCAqL1xuICByZXNwb25zZTogU2lnbmFsPFJlc3BvbnNlVHlwZTxUQXJncz4gfCBudWxsPjtcblxuICAvKiogVGhlIGN1cnJlbnQgZXZlbnQgb2YgdGhlIHJlcXVlc3QgKi9cbiAgY3VycmVudEV2ZW50OiBTaWduYWw8SHR0cEV2ZW50PFJlc3BvbnNlVHlwZTxUQXJncz4+IHwgSHR0cEVycm9yRXZlbnQgfCBudWxsPjtcblxuICAvKiogV2hldGhlciB0aGUgcmVxdWVzdCBpcyBzdGFsZSBvciBub3QgYWthIHRoZSBjYWNoZSBoZWFkZXIgaGFzIGV4cGlyZWQgKi9cbiAgaXNTdGFsZTogU2lnbmFsPGJvb2xlYW4+O1xufTtcblxuLyoqIEEgY3VzdG9tIGVycm9yIGV2ZW50IHNpbmNlIHRoZSBBbmd1bGFyIGh0dHAgY2xpZW50IGRvZXMgbm90IHByb3ZpZGUgYSBzcGVjaWZpYyBldmVudCBmb3IgZXJyb3JzICovXG5leHBvcnQgdHlwZSBIdHRwRXJyb3JFdmVudCA9IHtcbiAgdHlwZTogJ2Vycm9yJztcbiAgZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUh0dHBSZXF1ZXN0ID0gPFRBcmdzIGV4dGVuZHMgUXVlcnlBcmdzPihvcHRpb25zOiBDcmVhdGVIdHRwUmVxdWVzdE9wdGlvbnM8VEFyZ3M+KSA9PiB7XG4gIGxldCBjdXJyZW50U3RyZWFtU3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xuXG4gIGNvbnN0IHsgYXJncywgY2xpZW50T3B0aW9ucywgZGVwZW5kZW5jaWVzIH0gPSBvcHRpb25zO1xuXG4gIGNvbnN0IGN1cnJlbnRFdmVudCA9IHNpZ25hbDxIdHRwRXZlbnQ8UmVzcG9uc2VUeXBlPFRBcmdzPj4gfCBIdHRwRXJyb3JFdmVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBsb2FkaW5nID0gc2lnbmFsPEh0dHBSZXF1ZXN0TG9hZGluZ1N0YXRlIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGVycm9yID0gc2lnbmFsPEh0dHBFcnJvclJlc3BvbnNlIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IHJlc3BvbnNlID0gc2lnbmFsPFJlc3BvbnNlVHlwZTxUQXJncz4gfCBudWxsPihudWxsKTtcblxuICBjb25zdCBsYXN0TG9hZEV2ZW50VGltZSA9IHNpZ25hbCgwKTtcbiAgY29uc3QgbGFzdExvYWRFdmVudEFtb3VudCA9IHNpZ25hbCgwKTtcbiAgY29uc3QgbGFzdEV4ZWN1dGVUaW1lID0gc2lnbmFsKDApO1xuICBjb25zdCBleHBpcmVzSW4gPSBzaWduYWw8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG5cbiAgY29uc3QgaXNTdGFsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBleHBpcmVzSW5UcyA9IGV4cGlyZXNJbigpO1xuXG4gICAgcmV0dXJuIGV4cGlyZXNJblRzID09PSBudWxsIHx8IGV4cGlyZXNJblRzIDwgRGF0ZS5ub3coKTtcbiAgfSk7XG5cbiAgY29uc3Qgc3RyZWFtID0gZGVwZW5kZW5jaWVzLmh0dHBDbGllbnRcbiAgICAucmVxdWVzdChvcHRpb25zLm1ldGhvZCwgb3B0aW9ucy5mdWxsUGF0aCwge1xuICAgICAgb2JzZXJ2ZTogJ2V2ZW50cycsXG4gICAgICBib2R5OiBhcmdzPy5ib2R5LFxuICAgICAgcmVwb3J0UHJvZ3Jlc3M6IGNsaWVudE9wdGlvbnM/LnJlcG9ydFByb2dyZXNzLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiBjbGllbnRPcHRpb25zPy53aXRoQ3JlZGVudGlhbHMsXG4gICAgICB0cmFuc2ZlckNhY2hlOiBjbGllbnRPcHRpb25zPy50cmFuc2ZlckNhY2hlLFxuICAgICAgcmVzcG9uc2VUeXBlOiBjbGllbnRPcHRpb25zPy5yZXNwb25zZVR5cGUgfHwgJ2pzb24nLFxuICAgICAgY29udGV4dDogY2xpZW50T3B0aW9ucz8uY29udGV4dCxcbiAgICAgIGhlYWRlcnM6IGFyZ3M/LmhlYWRlcnMsXG4gICAgfSlcbiAgICAucGlwZShcbiAgICAgIHRhcCgoZXZlbnQpID0+IHVwZGF0ZVN0YXRlKGV2ZW50KSksXG4gICAgICByZXRyeSh7XG4gICAgICAgIGRlbGF5OiAoZXJyb3IsIHJldHJ5Q291bnQpID0+IHtcbiAgICAgICAgICBjb25zdCByZXRyeU9wdGlvbnM6IFNob3VsZFJldHJ5UmVxdWVzdE9wdGlvbnMgPSB7IGVycm9yLCByZXRyeUNvdW50IH07XG5cbiAgICAgICAgICBjb25zdCByZXRyeVJlc3VsdCA9IG9wdGlvbnMucmV0cnlGbj8uKHJldHJ5T3B0aW9ucykgfHwgc2hvdWxkUmV0cnlSZXF1ZXN0KHJldHJ5T3B0aW9ucyk7XG5cbiAgICAgICAgICBpZiAoIXJldHJ5UmVzdWx0LnJldHJ5KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHRpbWVyKHJldHJ5UmVzdWx0LmRlbGF5KTtcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xuICAgICAgICB1cGRhdGVFcnJvclN0YXRlKGUpO1xuXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGUpO1xuICAgICAgfSksXG4gICAgKTtcblxuICBjb25zdCBleGVjdXRlID0gKCkgPT4ge1xuICAgIGlmIChsb2FkaW5nKCkgfHwgIWlzU3RhbGUoKSkge1xuICAgICAgLy8gRG8gbm90IGV4ZWN1dGUgaWYgdGhlcmUgaXMgYWxyZWFkeSBhIHJlcXVlc3QgaW4gcHJvZ3Jlc3Mgb3IgdGhlIHJlcXVlc3QgaXMgbm90IHN0YWxlXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY3VycmVudFN0cmVhbVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXG4gICAgbGFzdEV4ZWN1dGVUaW1lLnNldChEYXRlLm5vdygpKTtcbiAgICBsYXN0TG9hZEV2ZW50VGltZS5zZXQobGFzdEV4ZWN1dGVUaW1lKCkpO1xuXG4gICAgbG9hZGluZy5zZXQoe1xuICAgICAgZXhlY3V0ZVRpbWU6IGxhc3RFeGVjdXRlVGltZSgpLFxuICAgICAgcHJvZ3Jlc3M6IG51bGwsXG4gICAgfSk7XG4gICAgZXJyb3Iuc2V0KG51bGwpO1xuICAgIGV4cGlyZXNJbi5zZXQobnVsbCk7XG5cbiAgICBjdXJyZW50U3RyZWFtU3Vic2NyaXB0aW9uID0gc3RyZWFtLnN1YnNjcmliZSgpO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG5cbiAgY29uc3QgZGVzdHJveSA9ICgpID0+IHtcbiAgICBpZiAoY3VycmVudFN0cmVhbVN1YnNjcmlwdGlvbi5jbG9zZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjdXJyZW50U3RyZWFtU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcblxuICBjb25zdCB1cGRhdGVTdGF0ZSA9IChldmVudDogSHR0cEV2ZW50PFJlc3BvbnNlVHlwZTxUQXJncz4+KSA9PiB7XG4gICAgY3VycmVudEV2ZW50LnNldChldmVudCk7XG5cbiAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcbiAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5SZXNwb25zZTpcbiAgICAgICAge1xuICAgICAgICAgIGxvYWRpbmcuc2V0KG51bGwpO1xuICAgICAgICAgIHJlc3BvbnNlLnNldChldmVudC5ib2R5KTtcblxuICAgICAgICAgIGNvbnN0IGV4cGlyZXNJblNlY29uZHMgPSBvcHRpb25zLmNhY2hlQWRhcHRlclxuICAgICAgICAgICAgPyBvcHRpb25zLmNhY2hlQWRhcHRlcihldmVudC5oZWFkZXJzKVxuICAgICAgICAgICAgOiBleHRyYWN0RXhwaXJlc0luU2Vjb25kcyhldmVudC5oZWFkZXJzKTtcbiAgICAgICAgICBjb25zdCBleHBpcmVzSW5UaW1lc3RhbXAgPSBidWlsZFRpbWVzdGFtcEZyb21TZWNvbmRzKGV4cGlyZXNJblNlY29uZHMpO1xuICAgICAgICAgIGV4cGlyZXNJbi5zZXQoZXhwaXJlc0luVGltZXN0YW1wKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzOlxuICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLkRvd25sb2FkUHJvZ3Jlc3M6XG4gICAgICAgIHtcbiAgICAgICAgICB1cGRhdGVMb2FkaW5nU3RhdGUoZXZlbnQpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIEh0dHBFdmVudFR5cGUuU2VudDpcbiAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5SZXNwb25zZUhlYWRlcjpcbiAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5Vc2VyOlxuICAgICAgICB7XG4gICAgICAgICAgLy8gd2UgZG9uJ3QgY2FyZSBhYm91dCB0aGVzZSBldmVudHNcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgdXBkYXRlRXJyb3JTdGF0ZSA9IChlcnJvclJlc3BvbnNlOiB1bmtub3duKSA9PiB7XG4gICAgbGV0IGVyciA9IGVycm9yUmVzcG9uc2UgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSA/IGVycm9yUmVzcG9uc2UgOiBudWxsO1xuXG4gICAgaWYgKCFlcnIpIHtcbiAgICAgIGVyciA9IG5ldyBIdHRwRXJyb3JSZXNwb25zZSh7XG4gICAgICAgIGVycm9yOiBlcnJvclJlc3BvbnNlLFxuICAgICAgICBzdGF0dXM6IDAsXG4gICAgICAgIHN0YXR1c1RleHQ6ICdVbmtub3duIEVycm9yJyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGVycm9yLnNldChlcnIpO1xuICAgIGxvYWRpbmcuc2V0KG51bGwpO1xuICAgIGN1cnJlbnRFdmVudC5zZXQoeyB0eXBlOiAnZXJyb3InLCBlcnJvcjogZXJyIH0pO1xuICB9O1xuXG4gIGNvbnN0IHVwZGF0ZUxvYWRpbmdTdGF0ZSA9IChldmVudDogSHR0cFByb2dyZXNzRXZlbnQpID0+IHtcbiAgICBpZiAoZXZlbnQudG90YWwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHByb2dyZXNzOiBIdHRwUmVxdWVzdExvYWRpbmdQcm9ncmVzc1N0YXRlID0ge1xuICAgICAgdG90YWw6IGV2ZW50LnRvdGFsLFxuICAgICAgbG9hZGVkOiBldmVudC5sb2FkZWQsXG4gICAgICBwZXJjZW50YWdlOiAoZXZlbnQubG9hZGVkIC8gZXZlbnQudG90YWwpICogMTAwLFxuICAgICAgc3BlZWQ6IG51bGwsXG4gICAgICByZW1haW5pbmdUaW1lOiBudWxsLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGF0ZTogSHR0cFJlcXVlc3RMb2FkaW5nU3RhdGUgPSB7XG4gICAgICBleGVjdXRlVGltZTogbGFzdEV4ZWN1dGVUaW1lKCksXG4gICAgICBwcm9ncmVzcyxcbiAgICB9O1xuXG4gICAgY29uc3QgY3VycmVudFRpbWUgPSBEYXRlLm5vdygpO1xuICAgIGNvbnN0IGVsYXBzZWRUaW1lU2luY2VMYXN0RXZlbnQgPSBjdXJyZW50VGltZSAtIGxhc3RMb2FkRXZlbnRUaW1lKCk7XG4gICAgY29uc3QgZWxhcHNlZFRpbWVTaW5jZUxhc3RFeGVjdXRlID0gY3VycmVudFRpbWUgLSBsYXN0RXhlY3V0ZVRpbWUoKTtcbiAgICBjb25zdCBsb2FkZWRBbW91bnQgPSBldmVudC5sb2FkZWQgLSBsYXN0TG9hZEV2ZW50QW1vdW50KCk7XG5cbiAgICAvLyBXZSBvbmx5IHdhbnQgdG8gY2FsY3VsYXRlIHNwZWVkIGFuZCByZW1haW5pbmcgdGltZSBhZnRlciAyIHNlY29uZHMgb2YgdGhlIGV4ZWN1dGlvblxuICAgIC8vIFRoaXMgaXMgdG8gYXZvaWQgc2hvd2luZyBpbmNvcnJlY3Qgc3BlZWQgYW5kIHJlbWFpbmluZyB0aW1lIHdoZW4gdGhlIHJlcXVlc3QgaXMgdmVyeSBmYXN0XG4gICAgaWYgKGVsYXBzZWRUaW1lU2luY2VMYXN0RXhlY3V0ZSA+IFNQRUVEX0JVRkZFUl9USU1FX0lOX01TKSB7XG4gICAgICBjb25zdCBzcGVlZCA9IChsb2FkZWRBbW91bnQgLyBlbGFwc2VkVGltZVNpbmNlTGFzdEV2ZW50KSAqIDEwMDA7XG5cbiAgICAgIHByb2dyZXNzLnNwZWVkID0gc3BlZWQgKiAxMDAwO1xuICAgICAgcHJvZ3Jlc3MucmVtYWluaW5nVGltZSA9IE1hdGgucm91bmQoKGV2ZW50LnRvdGFsIC0gZXZlbnQubG9hZGVkKSAvIHNwZWVkKSAqIDEwMDA7XG4gICAgfVxuXG4gICAgbGFzdExvYWRFdmVudFRpbWUuc2V0KGN1cnJlbnRUaW1lKTtcbiAgICBsYXN0TG9hZEV2ZW50QW1vdW50LnNldChldmVudC5sb2FkZWQpO1xuXG4gICAgbG9hZGluZy5zZXQoc3RhdGUpO1xuICB9O1xuXG4gIGNvbnN0IGh0dHBSZXF1ZXN0OiBIdHRwUmVxdWVzdDxUQXJncz4gPSB7XG4gICAgZXhlY3V0ZSxcbiAgICBkZXN0cm95LFxuICAgIGxvYWRpbmc6IGxvYWRpbmcuYXNSZWFkb25seSgpLFxuICAgIGVycm9yOiBlcnJvci5hc1JlYWRvbmx5KCksXG4gICAgcmVzcG9uc2U6IHJlc3BvbnNlLmFzUmVhZG9ubHkoKSxcbiAgICBjdXJyZW50RXZlbnQ6IGN1cnJlbnRFdmVudC5hc1JlYWRvbmx5KCksXG4gICAgaXNTdGFsZSxcbiAgfTtcblxuICByZXR1cm4gaHR0cFJlcXVlc3Q7XG59O1xuIl19
|
|
@@ -13,9 +13,10 @@ export * from './query-execute-utils';
|
|
|
13
13
|
export * from './query-features';
|
|
14
14
|
export * from './query-repository';
|
|
15
15
|
export * from './query-snapshot';
|
|
16
|
+
export * from './query-stack';
|
|
16
17
|
export * from './query-state';
|
|
17
18
|
export * from './query-utils';
|
|
18
19
|
export * from './secure-query';
|
|
19
20
|
export * from './secure-query-creator';
|
|
20
21
|
export * from './secure-query-execute';
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvZXhwZXJpbWVudGFsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYmVhcmVyLWF1dGgtcHJvdmlkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9iZWFyZXItYXV0aC1wcm92aWRlci1jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9odHRwLXJlcXVlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyeSc7XG5leHBvcnQgKiBmcm9tICcuL3F1ZXJ5LWNsaWVudCc7XG5leHBvcnQgKiBmcm9tICcuL3F1ZXJ5LWNsaWVudC1jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyeS1jcmVhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vcXVlcnktY3JlYXRvci10ZW1wbGF0ZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyeS1kZXBlbmRlbmNpZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyeS1lcnJvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyeS1leGVjdXRlJztcbmV4cG9ydCAqIGZyb20gJy4vcXVlcnktZXhlY3V0ZS11dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3F1ZXJ5LWZlYXR1cmVzJztcbmV4cG9ydCAqIGZyb20gJy4vcXVlcnktcmVwb3NpdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL3F1ZXJ5LXNuYXBzaG90JztcbmV4cG9ydCAqIGZyb20gJy4vcXVlcnktc3RhY2snO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyeS1zdGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL3F1ZXJ5LXV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vc2VjdXJlLXF1ZXJ5JztcbmV4cG9ydCAqIGZyb20gJy4vc2VjdXJlLXF1ZXJ5LWNyZWF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9zZWN1cmUtcXVlcnktZXhlY3V0ZSc7XG4iXX0=
|