@ngxs/store 3.8.2-dev.master-dbed85b → 3.8.2-dev.master-81baa9d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/internals/custom-rxjs-subjects.mjs +92 -0
- package/esm2022/internals/index.mjs +9 -5
- package/esm2022/internals/initial-state.mjs +4 -4
- package/esm2022/internals/memoize.mjs +2 -2
- package/esm2022/internals/metadata.mjs +57 -0
- package/esm2022/internals/ngxs-app-bootstrapped-state.mjs +19 -0
- package/esm2022/internals/state-stream.mjs +32 -0
- package/esm2022/internals/state-token.mjs +17 -0
- package/esm2022/internals/symbols.mjs +1 -1
- package/esm2022/plugins/actions.mjs +16 -0
- package/esm2022/plugins/index.mjs +4 -0
- package/esm2022/plugins/ngxs-store-plugins.mjs +5 -0
- package/esm2022/plugins/symbols.mjs +6 -0
- package/esm2022/plugins/utils.mjs +51 -0
- package/esm2022/src/actions/symbols.mjs +1 -1
- package/esm2022/src/actions-stream.mjs +3 -3
- package/esm2022/src/configs/messages.config.mjs +1 -1
- package/esm2022/src/decorators/action.mjs +3 -3
- package/esm2022/src/decorators/select/symbols.mjs +1 -1
- package/esm2022/src/decorators/selector/symbols.mjs +1 -1
- package/esm2022/src/decorators/selector-options.mjs +1 -1
- package/esm2022/src/decorators/state.mjs +3 -4
- package/esm2022/src/dev-features/ngxs-development.module.mjs +8 -2
- package/esm2022/src/dev-features/ngxs-unhandled-actions-logger.mjs +2 -3
- package/esm2022/src/dev-features/symbols.mjs +3 -2
- package/esm2022/src/execution/dispatch-outside-zone-ngxs-execution-strategy.mjs +1 -1
- package/esm2022/src/internal/dispatcher.mjs +2 -2
- package/esm2022/src/internal/internals.mjs +3 -66
- package/esm2022/src/internal/lifecycle-state-manager.mjs +8 -9
- package/esm2022/src/internal/state-context-factory.mjs +2 -2
- package/esm2022/src/internal/state-factory.mjs +21 -22
- package/esm2022/src/internal/state-stream.mjs +6 -23
- package/esm2022/src/operators/of-action.mjs +2 -2
- package/esm2022/src/plugin-manager.mjs +2 -2
- package/esm2022/src/plugin_api.mjs +2 -5
- package/esm2022/src/public_api.mjs +3 -3
- package/esm2022/src/public_to_deprecate.mjs +18 -6
- package/esm2022/src/selectors/create-pick-selector.mjs +1 -1
- package/esm2022/src/selectors/selector-checks.util.mjs +3 -3
- package/esm2022/src/selectors/selector-metadata.mjs +3 -3
- package/esm2022/src/selectors/selector-models.mjs +1 -1
- package/esm2022/src/selectors/selector-types.util.mjs +1 -1
- package/esm2022/src/selectors/selector-utils.mjs +6 -7
- package/esm2022/src/standalone-features/initializers.mjs +1 -1
- package/esm2022/src/standalone-features/plugin.mjs +2 -2
- package/esm2022/src/standalone-features/root-providers.mjs +4 -4
- package/esm2022/src/store.mjs +4 -4
- package/esm2022/src/symbols.mjs +41 -12
- package/esm2022/src/utils/store-validators.mjs +3 -3
- package/fesm2022/ngxs-store-internals.mjs +222 -40
- package/fesm2022/ngxs-store-internals.mjs.map +1 -1
- package/fesm2022/ngxs-store-plugins.mjs +80 -0
- package/fesm2022/ngxs-store-plugins.mjs.map +1 -0
- package/fesm2022/ngxs-store.mjs +224 -468
- package/fesm2022/ngxs-store.mjs.map +1 -1
- package/{src/internal → internals}/custom-rxjs-subjects.d.ts +2 -2
- package/internals/index.d.ts +8 -4
- package/internals/initial-state.d.ts +5 -5
- package/internals/memoize.d.ts +1 -1
- package/internals/metadata.d.ts +25 -0
- package/internals/ngxs-app-bootstrapped-state.d.ts +8 -0
- package/internals/state-stream.d.ts +15 -0
- package/internals/state-token.d.ts +7 -0
- package/internals/symbols.d.ts +72 -2
- package/package.json +7 -1
- package/{src/actions → plugins}/actions.d.ts +3 -3
- package/plugins/index.d.ts +3 -0
- package/plugins/symbols.d.ts +13 -0
- package/{src/utils → plugins}/utils.d.ts +0 -17
- package/src/actions/symbols.d.ts +0 -14
- package/src/actions-stream.d.ts +2 -2
- package/src/configs/messages.config.d.ts +2 -2
- package/src/decorators/action.d.ts +3 -2
- package/src/decorators/select/symbols.d.ts +2 -3
- package/src/decorators/selector/symbols.d.ts +2 -3
- package/src/decorators/selector-options.d.ts +2 -2
- package/src/decorators/state.d.ts +2 -3
- package/src/dev-features/ngxs-development.module.d.ts +1 -0
- package/src/internal/internals.d.ts +8 -68
- package/src/internal/lifecycle-state-manager.d.ts +4 -4
- package/src/internal/state-factory.d.ts +5 -5
- package/src/internal/state-stream.d.ts +3 -9
- package/src/plugin-manager.d.ts +1 -1
- package/src/plugin_api.d.ts +1 -4
- package/src/public_api.d.ts +4 -3
- package/src/public_to_deprecate.d.ts +33 -21
- package/src/selectors/selector-metadata.d.ts +4 -4
- package/src/selectors/selector-models.d.ts +4 -4
- package/src/selectors/selector-types.util.d.ts +1 -2
- package/src/selectors/selector-utils.d.ts +3 -3
- package/src/standalone-features/plugin.d.ts +1 -1
- package/src/store.d.ts +1 -1
- package/src/symbols.d.ts +3 -35
- package/src/utils/store-validators.d.ts +4 -3
- package/esm2022/internals/ngxs-bootstrapper.mjs +0 -29
- package/esm2022/internals/src/symbols.mjs +0 -11
- package/esm2022/src/actions/actions.mjs +0 -16
- package/esm2022/src/internal/custom-rxjs-subjects.mjs +0 -92
- package/esm2022/src/state-token/state-token.mjs +0 -17
- package/esm2022/src/state-token/symbols.mjs +0 -2
- package/esm2022/src/utils/utils.mjs +0 -92
- package/internals/ngxs-bootstrapper.d.ts +0 -16
- package/internals/src/symbols.d.ts +0 -10
- package/src/state-token/state-token.d.ts +0 -7
- package/src/state-token/symbols.d.ts +0 -5
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Injectable, Injector, Optional, SkipSelf, Inject, ɵisPromise } from '@angular/core';
|
|
2
|
+
import { ɵmemoize, ɵMETA_KEY, ɵgetStoreMetadata, ɵINITIAL_STATE_TOKEN } from '@ngxs/store/internals';
|
|
3
|
+
import { getActionTypeFromInstance, getValue, setValue } from '@ngxs/store/plugins';
|
|
2
4
|
import { forkJoin, from, of, throwError, Subject, isObservable } from 'rxjs';
|
|
3
5
|
import { catchError, defaultIfEmpty, filter, map, mergeMap, shareReplay, takeUntil } from 'rxjs/operators';
|
|
4
|
-
import { INITIAL_STATE_TOKEN, memoize, ɵMETA_KEY } from '@ngxs/store/internals';
|
|
5
6
|
import { NgxsConfig } from '../symbols';
|
|
6
|
-
import { buildGraph, findFullParentPath,
|
|
7
|
-
import { getActionTypeFromInstance, getValue, setValue } from '../utils/utils';
|
|
7
|
+
import { buildGraph, findFullParentPath, nameToState, propGetter, topologicalSort } from './internals';
|
|
8
8
|
import { ofActionDispatched } from '../operators/of-action';
|
|
9
9
|
import { InternalActions } from '../actions-stream';
|
|
10
10
|
import { InternalDispatchedActionResults } from '../internal/dispatcher';
|
|
@@ -18,6 +18,18 @@ import * as i2 from "../actions-stream";
|
|
|
18
18
|
import * as i3 from "../internal/dispatcher";
|
|
19
19
|
import * as i4 from "../internal/state-context-factory";
|
|
20
20
|
const NG_DEV_MODE = typeof ngDevMode === 'undefined' || ngDevMode;
|
|
21
|
+
function cloneDefaults(defaults) {
|
|
22
|
+
let value = defaults === undefined ? {} : defaults;
|
|
23
|
+
if (defaults) {
|
|
24
|
+
if (Array.isArray(defaults)) {
|
|
25
|
+
value = defaults.slice();
|
|
26
|
+
}
|
|
27
|
+
else if (typeof defaults === 'object') {
|
|
28
|
+
value = { ...defaults };
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return value;
|
|
32
|
+
}
|
|
21
33
|
/**
|
|
22
34
|
* The `StateFactory` class adds root and feature states to the graph.
|
|
23
35
|
* This extracts state names from state classes, checks if they already
|
|
@@ -44,7 +56,7 @@ export class StateFactory {
|
|
|
44
56
|
this._states = [];
|
|
45
57
|
this._statesByName = {};
|
|
46
58
|
this._statePaths = {};
|
|
47
|
-
this.getRuntimeSelectorContext =
|
|
59
|
+
this.getRuntimeSelectorContext = ɵmemoize(() => {
|
|
48
60
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
49
61
|
const stateFactory = this;
|
|
50
62
|
function resolveGetter(key) {
|
|
@@ -89,19 +101,6 @@ export class StateFactory {
|
|
|
89
101
|
get statePaths() {
|
|
90
102
|
return this._parentFactory ? this._parentFactory.statePaths : this._statePaths;
|
|
91
103
|
}
|
|
92
|
-
static _cloneDefaults(defaults) {
|
|
93
|
-
let value = defaults;
|
|
94
|
-
if (Array.isArray(defaults)) {
|
|
95
|
-
value = defaults.slice();
|
|
96
|
-
}
|
|
97
|
-
else if (isObject(defaults)) {
|
|
98
|
-
value = { ...defaults };
|
|
99
|
-
}
|
|
100
|
-
else if (defaults === undefined) {
|
|
101
|
-
value = {};
|
|
102
|
-
}
|
|
103
|
-
return value;
|
|
104
|
-
}
|
|
105
104
|
ngOnDestroy() {
|
|
106
105
|
this._actionsSubscription?.unsubscribe();
|
|
107
106
|
}
|
|
@@ -138,7 +137,7 @@ export class StateFactory {
|
|
|
138
137
|
isInitialised: false,
|
|
139
138
|
actions: meta.actions,
|
|
140
139
|
instance: this._injector.get(stateClass),
|
|
141
|
-
defaults:
|
|
140
|
+
defaults: cloneDefaults(meta.defaults)
|
|
142
141
|
};
|
|
143
142
|
// ensure our store hasn't already been added
|
|
144
143
|
// but don't throw since it could be lazy
|
|
@@ -255,7 +254,7 @@ export class StateFactory {
|
|
|
255
254
|
const newStates = [];
|
|
256
255
|
const statesMap = this.statesByName;
|
|
257
256
|
for (const stateClass of stateClasses) {
|
|
258
|
-
const stateName =
|
|
257
|
+
const stateName = ɵgetStoreMetadata(stateClass).name;
|
|
259
258
|
if (NG_DEV_MODE) {
|
|
260
259
|
ensureStateNameIsUnique(stateName, stateClass, statesMap);
|
|
261
260
|
}
|
|
@@ -280,7 +279,7 @@ export class StateFactory {
|
|
|
280
279
|
// its lifecycle is in 'bootstrapped' state.
|
|
281
280
|
return this.statesByName[name] && valueIsBootstrappedInInitialState;
|
|
282
281
|
}
|
|
283
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: StateFactory, deps: [{ token: i0.Injector }, { token: i1.NgxsConfig }, { token: StateFactory, optional: true, skipSelf: true }, { token: i2.InternalActions }, { token: i3.InternalDispatchedActionResults }, { token: i4.StateContextFactory }, { token: INITIAL_STATE_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
282
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: StateFactory, deps: [{ token: i0.Injector }, { token: i1.NgxsConfig }, { token: StateFactory, optional: true, skipSelf: true }, { token: i2.InternalActions }, { token: i3.InternalDispatchedActionResults }, { token: i4.StateContextFactory }, { token: ɵINITIAL_STATE_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
284
283
|
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: StateFactory }); }
|
|
285
284
|
}
|
|
286
285
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: StateFactory, decorators: [{
|
|
@@ -293,6 +292,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImpor
|
|
|
293
292
|
type: Optional
|
|
294
293
|
}, {
|
|
295
294
|
type: Inject,
|
|
296
|
-
args: [INITIAL_STATE_TOKEN]
|
|
295
|
+
args: [ɵINITIAL_STATE_TOKEN]
|
|
297
296
|
}] }] });
|
|
298
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9pbnRlcm5hbC9zdGF0ZS1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1YsUUFBUSxFQUNSLFFBQVEsRUFDUixRQUFRLEVBQ1IsTUFBTSxFQUVOLFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsUUFBUSxFQUNSLElBQUksRUFFSixFQUFFLEVBQ0YsVUFBVSxFQUVWLE9BQU8sRUFDUCxZQUFZLEVBQ2IsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsVUFBVSxFQUNWLGNBQWMsRUFDZCxNQUFNLEVBQ04sR0FBRyxFQUNILFFBQVEsRUFDUixXQUFXLEVBQ1gsU0FBUyxFQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLG1CQUFtQixFQUFpQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFL0YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN4QyxPQUFPLEVBQ0wsVUFBVSxFQUNWLGtCQUFrQixFQUNsQixRQUFRLEVBR1IsV0FBVyxFQUNYLFVBQVUsRUFLVixlQUFlLEVBR2YsZ0JBQWdCLEVBQ2pCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUErQixlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxP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QyxDQUFDO2dCQUMzQixTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsVUFBVSxDQUFDO2FBQ25DO1NBQ0Y7UUFFRCxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVPLG9CQUFvQixDQUFDLElBQW1CLEVBQUUsSUFBWTtRQUM1RCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDbkMscUZBQXFGO1FBQ3JGLDZFQUE2RTtRQUM3RSx5RkFBeUY7UUFDekYsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVPLDZCQUE2QixDQUFDLElBQVksRUFBRSxJQUFZO1FBQzlELE1BQU0saUNBQWlDLEdBQ3JDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxLQUFLLFNBQVMsQ0FBQztRQUNuRCw2RUFBNkU7UUFDN0UsNENBQTRDO1FBQzVDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxpQ0FBaUMsQ0FBQztJQUN0RSxDQUFDO2lJQXpUVSxZQUFZLDhPQWFiLG1CQUFtQjtxSUFibEIsWUFBWTs7MkZBQVosWUFBWTtrQkFEeEIsVUFBVTs7MEJBT04sUUFBUTs7MEJBQ1IsUUFBUTs7MEJBS1IsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3RhYmxlLFxuICBJbmplY3RvcixcbiAgT3B0aW9uYWwsXG4gIFNraXBTZWxmLFxuICBJbmplY3QsXG4gIE9uRGVzdHJveSxcbiAgybVpc1Byb21pc2Vcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBmb3JrSm9pbixcbiAgZnJvbSxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHRocm93RXJyb3IsXG4gIFN1YnNjcmlwdGlvbixcbiAgU3ViamVjdCxcbiAgaXNPYnNlcnZhYmxlXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgY2F0Y2hFcnJvcixcbiAgZGVmYXVsdElmRW1wdHksXG4gIGZpbHRlcixcbiAgbWFwLFxuICBtZXJnZU1hcCxcbiAgc2hhcmVSZXBsYXksXG4gIHRha2VVbnRpbFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJTklUSUFMX1NUQVRFX1RPS0VOLCBQbGFpbk9iamVjdE9mLCBtZW1vaXplLCDJtU1FVEFfS0VZIH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcblxuaW1wb3J0IHsgTmd4c0NvbmZpZyB9IGZyb20gJy4uL3N5bWJvbHMnO1xuaW1wb3J0IHtcbiAgYnVpbGRHcmFwaCxcbiAgZmluZEZ1bGxQYXJlbnRQYXRoLFxuICBpc09iamVjdCxcbiAgTWFwcGVkU3RvcmUsXG4gIE1ldGFEYXRhTW9kZWwsXG4gIG5hbWVUb1N0YXRlLFxuICBwcm9wR2V0dGVyLFxuICBTdGF0ZUNsYXNzSW50ZXJuYWwsXG4gIFN0YXRlS2V5R3JhcGgsXG4gIFN0YXRlc0FuZERlZmF1bHRzLFxuICBTdGF0ZXNCeU5hbWUsXG4gIHRvcG9sb2dpY2FsU29ydCxcbiAgUnVudGltZVNlbGVjdG9yQ29udGV4dCxcbiAgU2hhcmVkU2VsZWN0b3JPcHRpb25zLFxuICBnZXRTdG9yZU1ldGFkYXRhXG59IGZyb20gJy4vaW50ZXJuYWxzJztcbmltcG9ydCB7IGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UsIGdldFZhbHVlLCBzZXRWYWx1ZSB9IGZyb20gJy4uL3V0aWxzL3V0aWxzJztcbmltcG9ydCB7IG9mQWN0aW9uRGlzcGF0Y2hlZCB9IGZyb20gJy4uL29wZXJhdG9ycy9vZi1hY3Rpb24nO1xuaW1wb3J0IHsgQWN0aW9uQ29udGV4dCwgQWN0aW9uU3RhdHVzLCBJbnRlcm5hbEFjdGlvbnMgfSBmcm9tICcuLi9hY3Rpb25zLXN0cmVhbSc7XG5pbXBvcnQgeyBJbnRlcm5hbERpc3BhdGNoZWRBY3Rpb25SZXN1bHRzIH0gZnJvbSAnLi4vaW50ZXJuYWwvZGlzcGF0Y2hlcic7XG5pbXBvcnQgeyBTdGF0ZUNvbnRleHRGYWN0b3J5IH0gZnJvbSAnLi4vaW50ZXJuYWwvc3RhdGUtY29udGV4dC1mYWN0b3J5JztcbmltcG9ydCB7IGVuc3VyZVN0YXRlTmFtZUlzVW5pcXVlLCBlbnN1cmVTdGF0ZXNBcmVEZWNvcmF0ZWQgfSBmcm9tICcuLi91dGlscy9zdG9yZS12YWxpZGF0b3JzJztcbmltcG9ydCB7IGVuc3VyZVN0YXRlQ2xhc3NJc0luamVjdGFibGUgfSBmcm9tICcuLi9pdnkvaXZ5LWVuYWJsZWQtaW4tZGV2LW1vZGUnO1xuaW1wb3J0IHsgTmd4c1VuaGFuZGxlZEFjdGlvbnNMb2dnZXIgfSBmcm9tICcuLi9kZXYtZmVhdHVyZXMvbmd4cy11bmhhbmRsZWQtYWN0aW9ucy1sb2dnZXInO1xuXG5jb25zdCBOR19ERVZfTU9ERSA9IHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZTtcblxuLyoqXG4gKiBUaGUgYFN0YXRlRmFjdG9yeWAgY2xhc3MgYWRkcyByb290IGFuZCBmZWF0dXJlIHN0YXRlcyB0byB0aGUgZ3JhcGguXG4gKiBUaGlzIGV4dHJhY3RzIHN0YXRlIG5hbWVzIGZyb20gc3RhdGUgY2xhc3NlcywgY2hlY2tzIGlmIHRoZXkgYWxyZWFkeVxuICogZXhpc3QgaW4gdGhlIGdsb2JhbCBncmFwaCwgdGhyb3dzIGVycm9ycyBpZiB0aGVpciBuYW1lcyBhcmUgaW52YWxpZCwgZXRjLlxuICogU2VlIGl0cyBjb25zdHJ1Y3Rvciwgc3RhdGUgZmFjdG9yaWVzIGluamVjdCBzdGF0ZSBmYWN0b3JpZXMgdGhhdCBhcmVcbiAqIHBhcmVudC1sZXZlbCBwcm92aWRlcnMuIFRoaXMgaXMgcmVxdWlyZWQgdG8gZ2V0IGZlYXR1cmUgc3RhdGVzIGZyb20gdGhlXG4gKiBpbmplY3RvciBvbiB0aGUgc2FtZSBsZXZlbC5cbiAqXG4gKiBUaGUgYE5neHNNb2R1bGUuZm9yRmVhdHVyZSguLi4pYCByZXR1cm5zIGBwcm92aWRlcnM6IFtTdGF0ZUZhY3RvcnksIC4uLnN0YXRlc11gLlxuICogVGhlIGBTdGF0ZUZhY3RvcnlgIGlzIGluaXRpYWxpemVkIG9uIHRoZSBmZWF0dXJlIGxldmVsIGFuZCBnb2VzIHRocm91Z2ggYC4uLnN0YXRlc2BcbiAqIHRvIGdldCB0aGVtIGZyb20gdGhlIGluamVjdG9yIHRocm91Z2ggYGluamVjdG9yLmdldChzdGF0ZSlgLlxuICogQGlnbm9yZVxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU3RhdGVGYWN0b3J5IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfYWN0aW9uc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgX2NvbmZpZzogTmd4c0NvbmZpZyxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBTa2lwU2VsZigpXG4gICAgcHJpdmF0ZSBfcGFyZW50RmFjdG9yeTogU3RhdGVGYWN0b3J5LFxuICAgIHByaXZhdGUgX2FjdGlvbnM6IEludGVybmFsQWN0aW9ucyxcbiAgICBwcml2YXRlIF9hY3Rpb25SZXN1bHRzOiBJbnRlcm5hbERpc3BhdGNoZWRBY3Rpb25SZXN1bHRzLFxuICAgIHByaXZhdGUgX3N0YXRlQ29udGV4dEZhY3Rvcnk6IFN0YXRlQ29udGV4dEZhY3RvcnksXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KElOSVRJQUxfU1RBVEVfVE9LRU4pXG4gICAgcHJpdmF0ZSBfaW5pdGlhbFN0YXRlOiBhbnlcbiAgKSB7fVxuXG4gIHByaXZhdGUgX3N0YXRlczogTWFwcGVkU3RvcmVbXSA9IFtdO1xuXG4gIGdldCBzdGF0ZXMoKTogTWFwcGVkU3RvcmVbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcmVudEZhY3RvcnkgPyB0aGlzLl9wYXJlbnRGYWN0b3J5LnN0YXRlcyA6IHRoaXMuX3N0YXRlcztcbiAgfVxuXG4gIHByaXZhdGUgX3N0YXRlc0J5TmFtZTogU3RhdGVzQnlOYW1lID0ge307XG5cbiAgZ2V0IHN0YXRlc0J5TmFtZSgpOiBTdGF0ZXNCeU5hbWUge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnRGYWN0b3J5ID8gdGhpcy5fcGFyZW50RmFjdG9yeS5zdGF0ZXNCeU5hbWUgOiB0aGlzLl9zdGF0ZXNCeU5hbWU7XG4gIH1cblxuICBwcml2YXRlIF9zdGF0ZVBhdGhzOiBQbGFpbk9iamVjdE9mPHN0cmluZz4gPSB7fTtcblxuICBwcml2YXRlIGdldCBzdGF0ZVBhdGhzKCk6IFBsYWluT2JqZWN0T2Y8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcmVudEZhY3RvcnkgPyB0aGlzLl9wYXJlbnRGYWN0b3J5LnN0YXRlUGF0aHMgOiB0aGlzLl9zdGF0ZVBhdGhzO1xuICB9XG5cbiAgZ2V0UnVudGltZVNlbGVjdG9yQ29udGV4dCA9IG1lbW9pemUoKCkgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhpcy1hbGlhc1xuICAgIGNvbnN0IHN0YXRlRmFjdG9yeSA9IHRoaXM7XG5cbiAgICBmdW5jdGlvbiByZXNvbHZlR2V0dGVyKGtleTogc3RyaW5nKSB7XG4gICAgICBjb25zdCBwYXRoID0gc3RhdGVGYWN0b3J5LnN0YXRlUGF0aHNba2V5XTtcbiAgICAgIHJldHVybiBwYXRoID8gcHJvcEdldHRlcihwYXRoLnNwbGl0KCcuJyksIHN0YXRlRmFjdG9yeS5fY29uZmlnKSA6IG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgY29udGV4dDogUnVudGltZVNlbGVjdG9yQ29udGV4dCA9IHRoaXMuX3BhcmVudEZhY3RvcnlcbiAgICAgID8gdGhpcy5fcGFyZW50RmFjdG9yeS5nZXRSdW50aW1lU2VsZWN0b3JDb250ZXh0KClcbiAgICAgIDoge1xuICAgICAgICAgIGdldFN0YXRlR2V0dGVyKGtleTogc3RyaW5nKSB7XG4gICAgICAgICAgICAvLyBVc2UgYEBfX0lOTElORV9fYCBhbm5vdGF0aW9uIHRvIGZvcmNlbHkgaW5saW5lIGByZXNvbHZlR2V0dGVyYC5cbiAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBUZXJzZXIgYW5ub3RhdGlvbiwgd2hpY2ggd2lsbCBmdW5jdGlvbiBvbmx5IGluIHRoZSBwcm9kdWN0aW9uIG1vZGUuXG4gICAgICAgICAgICBsZXQgZ2V0dGVyID0gLypAX19JTkxJTkVfXyovIHJlc29sdmVHZXR0ZXIoa2V5KTtcbiAgICAgICAgICAgIGlmIChnZXR0ZXIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGdldHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAoLi4uYXJncykgPT4ge1xuICAgICAgICAgICAgICAvLyBMYXRlIGxvYWRlZCBnZXR0ZXJcbiAgICAgICAgICAgICAgaWYgKCFnZXR0ZXIpIHtcbiAgICAgICAgICAgICAgICBnZXR0ZXIgPSAvKkBfX0lOTElORV9fKi8gcmVzb2x2ZUdldHRlcihrZXkpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBnZXR0ZXIgPyBnZXR0ZXIoLi4uYXJncykgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZ2V0U2VsZWN0b3JPcHRpb25zKGxvY2FsT3B0aW9ucz86IFNoYXJlZFNlbGVjdG9yT3B0aW9ucykge1xuICAgICAgICAgICAgY29uc3QgZ2xvYmFsU2VsZWN0b3JPcHRpb25zID0gc3RhdGVGYWN0b3J5Ll9jb25maWcuc2VsZWN0b3JPcHRpb25zO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uZ2xvYmFsU2VsZWN0b3JPcHRpb25zLFxuICAgICAgICAgICAgICAuLi4obG9jYWxPcHRpb25zIHx8IHt9KVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgcmV0dXJuIGNvbnRleHQ7XG4gIH0pO1xuXG4gIHByaXZhdGUgc3RhdGljIF9jbG9uZURlZmF1bHRzKGRlZmF1bHRzOiBhbnkpOiBhbnkge1xuICAgIGxldCB2YWx1ZSA9IGRlZmF1bHRzO1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZGVmYXVsdHMpKSB7XG4gICAgICB2YWx1ZSA9IGRlZmF1bHRzLnNsaWNlKCk7XG4gICAgfSBlbHNlIGlmIChpc09iamVjdChkZWZhdWx0cykpIHtcbiAgICAgIHZhbHVlID0geyAuLi5kZWZhdWx0cyB9O1xuICAgIH0gZWxzZSBpZiAoZGVmYXVsdHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFsdWUgPSB7fTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9hY3Rpb25zU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyBzdGF0ZSB0byB0aGUgZ2xvYmFsIGRlZnMuXG4gICAqL1xuICBhZGQoc3RhdGVDbGFzc2VzOiBTdGF0ZUNsYXNzSW50ZXJuYWxbXSk6IE1hcHBlZFN0b3JlW10ge1xuICAgIGlmIChOR19ERVZfTU9ERSkge1xuICAgICAgZW5zdXJlU3RhdGVzQXJlRGVjb3JhdGVkKHN0YXRlQ2xhc3Nlcyk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBuZXdTdGF0ZXMgfSA9IHRoaXMuYWRkVG9TdGF0ZXNNYXAoc3RhdGVDbGFzc2VzKTtcbiAgICBpZiAoIW5ld1N0YXRlcy5sZW5ndGgpIHJldHVybiBbXTtcblxuICAgIGNvbnN0IHN0YXRlR3JhcGg6IFN0YXRlS2V5R3JhcGggPSBidWlsZEdyYXBoKG5ld1N0YXRlcyk7XG4gICAgY29uc3Qgc29ydGVkU3RhdGVzOiBzdHJpbmdbXSA9IHRvcG9sb2dpY2FsU29ydChzdGF0ZUdyYXBoKTtcbiAgICBjb25zdCBwYXRoczogUGxhaW5PYmplY3RPZjxzdHJpbmc+ID0gZmluZEZ1bGxQYXJlbnRQYXRoKHN0YXRlR3JhcGgpO1xuICAgIGNvbnN0IG5hbWVHcmFwaDogUGxhaW5PYmplY3RPZjxTdGF0ZUNsYXNzSW50ZXJuYWw+ID0gbmFtZVRvU3RhdGUobmV3U3RhdGVzKTtcbiAgICBjb25zdCBib290c3RyYXBwZWRTdG9yZXM6IE1hcHBlZFN0b3JlW10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgbmFtZSBvZiBzb3J0ZWRTdGF0ZXMpIHtcbiAgICAgIGNvbnN0IHN0YXRlQ2xhc3M6IFN0YXRlQ2xhc3NJbnRlcm5hbCA9IG5hbWVHcmFwaFtuYW1lXTtcbiAgICAgIGNvbnN0IHBhdGg6IHN0cmluZyA9IHBhdGhzW25hbWVdO1xuICAgICAgY29uc3QgbWV0YTogTWV0YURhdGFNb2RlbCA9IHN0YXRlQ2xhc3NbybVNRVRBX0tFWV0hO1xuXG4gICAgICB0aGlzLmFkZFJ1bnRpbWVJbmZvVG9NZXRhKG1ldGEsIHBhdGgpO1xuXG4gICAgICAvLyBOb3RlOiBwcmV2aW91c2x5IHdlIGNhbGxlZCBgZW5zdXJlU3RhdGVDbGFzc0lzSW5qZWN0YWJsZWAgd2l0aGluIHRoZVxuICAgICAgLy8gYFN0YXRlYCBkZWNvcmF0b3IuIFRoaXMgY2hlY2sgaXMgbW92ZWQgaGVyZSBiZWNhdXNlIHRoZSBgybVwcm92YCBwcm9wZXJ0eVxuICAgICAgLy8gd2lsbCBub3QgZXhpc3Qgb24gdGhlIGNsYXNzIGluIEpJVCBtb2RlIChiZWNhdXNlIGl0J3Mgc2V0IGFzeW5jaHJvbm91c2x5XG4gICAgICAvLyBkdXJpbmcgSklUIGNvbXBpbGF0aW9uIHRocm91Z2ggYE9iamVjdC5kZWZpbmVQcm9wZXJ0eWApLlxuICAgICAgaWYgKE5HX0RFVl9NT0RFKSB7XG4gICAgICAgIGVuc3VyZVN0YXRlQ2xhc3NJc0luamVjdGFibGUoc3RhdGVDbGFzcyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHN0YXRlTWFwOiBNYXBwZWRTdG9yZSA9IHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgaXNJbml0aWFsaXNlZDogZmFsc2UsXG4gICAgICAgIGFjdGlvbnM6IG1ldGEuYWN0aW9ucyxcbiAgICAgICAgaW5zdGFuY2U6IHRoaXMuX2luamVjdG9yLmdldChzdGF0ZUNsYXNzKSxcbiAgICAgICAgZGVmYXVsdHM6IFN0YXRlRmFjdG9yeS5fY2xvbmVEZWZhdWx0cyhtZXRhLmRlZmF1bHRzKVxuICAgICAgfTtcblxuICAgICAgLy8gZW5zdXJlIG91ciBzdG9yZSBoYXNuJ3QgYWxyZWFkeSBiZWVuIGFkZGVkXG4gICAgICAvLyBidXQgZG9uJ3QgdGhyb3cgc2luY2UgaXQgY291bGQgYmUgbGF6eVxuICAgICAgLy8gbG9hZGVkIGZyb20gZGlmZmVyZW50IHBhdGhzXG4gICAgICBpZiAoIXRoaXMuaGFzQmVlbk1vdW50ZWRBbmRCb290c3RyYXBwZWQobmFtZSwgcGF0aCkpIHtcbiAgICAgICAgYm9vdHN0cmFwcGVkU3RvcmVzLnB1c2goc3RhdGVNYXApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnN0YXRlcy5wdXNoKHN0YXRlTWFwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYm9vdHN0cmFwcGVkU3RvcmVzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIHNldCBvZiBzdGF0ZXMgdG8gdGhlIHN0b3JlIGFuZCByZXR1cm4gdGhlIGRlZmF1bHRzXG4gICAqL1xuICBhZGRBbmRSZXR1cm5EZWZhdWx0cyhzdGF0ZUNsYXNzZXM6IFN0YXRlQ2xhc3NJbnRlcm5hbFtdKTogU3RhdGVzQW5kRGVmYXVsdHMge1xuICAgIGNvbnN0IGNsYXNzZXM6IFN0YXRlQ2xhc3NJbnRlcm5hbFtdID0gc3RhdGVDbGFzc2VzIHx8IFtdO1xuXG4gICAgY29uc3QgbWFwcGVkU3RvcmVzOiBNYXBwZWRTdG9yZVtdID0gdGhpcy5hZGQoY2xhc3Nlcyk7XG4gICAgY29uc3QgZGVmYXVsdHMgPSBtYXBwZWRTdG9yZXMucmVkdWNlKFxuICAgICAgKHJlc3VsdDogYW55LCBtYXBwZWRTdG9yZTogTWFwcGVkU3RvcmUpID0+XG4gICAgICAgIHNldFZhbHVlKHJlc3VsdCwgbWFwcGVkU3RvcmUucGF0aCwgbWFwcGVkU3RvcmUuZGVmYXVsdHMpLFxuICAgICAge31cbiAgICApO1xuICAgIHJldHVybiB7IGRlZmF1bHRzLCBzdGF0ZXM6IG1hcHBlZFN0b3JlcyB9O1xuICB9XG5cbiAgY29ubmVjdEFjdGlvbkhhbmRsZXJzKCk6IHZvaWQge1xuICAgIC8vIE5vdGU6IFdlIGhhdmUgdG8gY29ubmVjdCBhY3Rpb25zIG9ubHkgb25jZSB3aGVuIHRoZSBgU3RhdGVGYWN0b3J5YFxuICAgIC8vICAgICAgIGlzIGJlaW5nIGNyZWF0ZWQgZm9yIHRoZSBmaXJzdCB0aW1lLiBUaGlzIGNoZWNrcyBpZiB3ZSdyZSBpblxuICAgIC8vICAgICAgIGEgY2hpbGQgc3RhdGUgZmFjdG9yeSBhbmQgdGhlIHBhcmVudCBzdGF0ZSBmYWN0b3J5IGFscmVhZHkgZXhpc3RzLlxuICAgIGlmICh0aGlzLl9wYXJlbnRGYWN0b3J5IHx8IHRoaXMuX2FjdGlvbnNTdWJzY3JpcHRpb24gIT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkaXNwYXRjaGVkJCA9IG5ldyBTdWJqZWN0PEFjdGlvbkNvbnRleHQ+KCk7XG4gICAgdGhpcy5fYWN0aW9uc1N1YnNjcmlwdGlvbiA9IHRoaXMuX2FjdGlvbnNcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGN0eDogQWN0aW9uQ29udGV4dCkgPT4gY3R4LnN0YXR1cyA9PT0gQWN0aW9uU3RhdHVzLkRpc3BhdGNoZWQpLFxuICAgICAgICBtZXJnZU1hcChjdHggPT4ge1xuICAgICAgICAgIGRpc3BhdGNoZWQkLm5leHQoY3R4KTtcbiAgICAgICAgICBjb25zdCBhY3Rpb24gPSBjdHguYWN0aW9uO1xuICAgICAgICAgIHJldHVybiB0aGlzLmludm9rZUFjdGlvbnMoZGlzcGF0Y2hlZCQsIGFjdGlvbiEpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKCkgPT4gPEFjdGlvbkNvbnRleHQ+eyBhY3Rpb24sIHN0YXR1czogQWN0aW9uU3RhdHVzLlN1Y2Nlc3NmdWwgfSksXG4gICAgICAgICAgICBkZWZhdWx0SWZFbXB0eSg8QWN0aW9uQ29udGV4dD57IGFjdGlvbiwgc3RhdHVzOiBBY3Rpb25TdGF0dXMuQ2FuY2VsZWQgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+XG4gICAgICAgICAgICAgIG9mKDxBY3Rpb25Db250ZXh0PnsgYWN0aW9uLCBzdGF0dXM6IEFjdGlvblN0YXR1cy5FcnJvcmVkLCBlcnJvciB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKGN0eCA9PiB0aGlzLl9hY3Rpb25SZXN1bHRzLm5leHQoY3R4KSk7XG4gIH1cblxuICAvKipcbiAgICogSW52b2tlIGFjdGlvbnMgb24gdGhlIHN0YXRlcy5cbiAgICovXG4gIGludm9rZUFjdGlvbnMoZGlzcGF0Y2hlZCQ6IE9ic2VydmFibGU8QWN0aW9uQ29udGV4dD4sIGFjdGlvbjogYW55KSB7XG4gICAgY29uc3QgdHlwZSA9IGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UoYWN0aW9uKSE7XG4gICAgY29uc3QgcmVzdWx0cyA9IFtdO1xuXG4gICAgLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBkaXNwYXRjaGVkIGFjdGlvbiBoYXMgYmVlbiBoYW5kbGVkLCB0aGlzIGlzIGFzc2lnbmVkXG4gICAgLy8gdG8gYHRydWVgIHdpdGhpbiB0aGUgYmVsb3cgYGZvcmAgbG9vcCBpZiBhbnkgYGFjdGlvbk1ldGFzYCBoYXMgYmVlbiBmb3VuZC5cbiAgICBsZXQgYWN0aW9uSGFzQmVlbkhhbmRsZWQgPSBmYWxzZTtcblxuICAgIGZvciAoY29uc3QgbWV0YWRhdGEgb2YgdGhpcy5zdGF0ZXMpIHtcbiAgICAgIGNvbnN0IGFjdGlvbk1ldGFzID0gbWV0YWRhdGEuYWN0aW9uc1t0eXBlXTtcblxuICAgICAgaWYgKGFjdGlvbk1ldGFzKSB7XG4gICAgICAgIGZvciAoY29uc3QgYWN0aW9uTWV0YSBvZiBhY3Rpb25NZXRhcykge1xuICAgICAgICAgIGNvbnN0IHN0YXRlQ29udGV4dCA9IHRoaXMuX3N0YXRlQ29udGV4dEZhY3RvcnkuY3JlYXRlU3RhdGVDb250ZXh0KG1ldGFkYXRhKTtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IG1ldGFkYXRhLmluc3RhbmNlW2FjdGlvbk1ldGEuZm5dKHN0YXRlQ29udGV4dCwgYWN0aW9uKTtcblxuICAgICAgICAgICAgLy8gV2UgbmVlZCB0byB1c2UgYGlzUHJvbWlzZWAgaW5zdGVhZCBvZiBjaGVja2luZyB3aGV0aGVyXG4gICAgICAgICAgICAvLyBgcmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZWAuIEluIHpvbmUuanMgcGF0Y2hlZCBlbnZpcm9ubWVudHMsIGBnbG9iYWwuUHJvbWlzZWBcbiAgICAgICAgICAgIC8vIGlzIHRoZSBgWm9uZUF3YXJlUHJvbWlzZWAuIFNvbWUgQVBJcywgd2hpY2ggYXJlIGxpa2VseSBub3QgcGF0Y2hlZCBieSB6b25lLmpzXG4gICAgICAgICAgICAvLyBmb3IgY2VydGFpbiByZWFzb25zLCBtaWdodCBub3Qgd29yayB3aXRoIGBpbnN0YW5jZW9mYC4gRm9yIGluc3RhbmNlLCB0aGUgZHluYW1pY1xuICAgICAgICAgICAgLy8gaW1wb3J0IHJldHVybnMgYSBuYXRpdmUgcHJvbWlzZSAobm90IGEgYFpvbmVBd2FyZVByb21pc2VgKSwgY2F1c2luZyB0aGlzIGNoZWNrIHRvXG4gICAgICAgICAgICAvLyBiZSBmYWxzeS5cbiAgICAgICAgICAgIGlmICjJtWlzUHJvbWlzZShyZXN1bHQpKSB7XG4gICAgICAgICAgICAgIHJlc3VsdCA9IGZyb20ocmVzdWx0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGlzT2JzZXJ2YWJsZShyZXN1bHQpKSB7XG4gICAgICAgICAgICAgIC8vIElmIHRoaXMgb2JzZXJ2YWJsZSBoYXMgYmVlbiBjb21wbGV0ZWQgdy9vIGVtaXR0aW5nXG4gICAgICAgICAgICAgIC8vIGFueSB2YWx1ZSB0aGVuIHdlIHdvdWxkbid0IHdhbnQgdG8gY29tcGxldGUgdGhlIHdob2xlIGNoYWluXG4gICAgICAgICAgICAgIC8vIG9mIGFjdGlvbnMuIFNpbmNlIGlmIGFueSBvYnNlcnZhYmxlIGNvbXBsZXRlcyB0aGVuXG4gICAgICAgICAgICAgIC8vIGFjdGlvbiB3aWxsIGJlIGNhbmNlbGVkLlxuICAgICAgICAgICAgICAvLyBGb3IgaW5zdGFuY2UgaWYgYW55IGFjdGlvbiBoYW5kbGVyIHdvdWxkJ3ZlIGhhZCBzdWNoIHN0YXRlbWVudDpcbiAgICAgICAgICAgICAgLy8gYGhhbmRsZXIoY3R4KSB7IHJldHVybiBFTVBUWTsgfWBcbiAgICAgICAgICAgICAgLy8gdGhlbiB0aGUgYWN0aW9uIHdpbGwgYmUgY2FuY2VsZWQuXG4gICAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbmd4cy9zdG9yZS9pc3N1ZXMvMTU2OFxuICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQucGlwZShcbiAgICAgICAgICAgICAgICBtZXJnZU1hcCgodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKMm1aXNQcm9taXNlKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnJvbSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBpZiAoaXNPYnNlcnZhYmxlKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICByZXR1cm4gb2YodmFsdWUpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGRlZmF1bHRJZkVtcHR5KHt9KVxuICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgIGlmIChhY3Rpb25NZXRhLm9wdGlvbnMuY2FuY2VsVW5jb21wbGV0ZWQpIHtcbiAgICAgICAgICAgICAgICAvLyB0b2RvOiBvZkFjdGlvbkRpc3BhdGNoZWQgc2hvdWxkIGJlIHVzZWQgd2l0aCBhY3Rpb24gY2xhc3NcbiAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQucGlwZShcbiAgICAgICAgICAgICAgICAgIHRha2VVbnRpbChkaXNwYXRjaGVkJC5waXBlKG9mQWN0aW9uRGlzcGF0Y2hlZChhY3Rpb24gYXMgYW55KSkpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmVzdWx0ID0gb2Yoe30pLnBpcGUoc2hhcmVSZXBsYXkoKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJlc3VsdHMucHVzaChyZXN1bHQpO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJlc3VsdHMucHVzaCh0aHJvd0Vycm9yKGUpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBhY3Rpb25IYXNCZWVuSGFuZGxlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUaGUgYE5neHNVbmhhbmRsZWRBY3Rpb25zTG9nZ2VyYCBpcyBhIHRyZWUtc2hha2FibGUgY2xhc3Mgd2hpY2ggZnVuY3Rpb25zXG4gICAgLy8gb25seSBkdXJpbmcgZGV2ZWxvcG1lbnQuXG4gICAgaWYgKE5HX0RFVl9NT0RFICYmICFhY3Rpb25IYXNCZWVuSGFuZGxlZCkge1xuICAgICAgY29uc3QgdW5oYW5kbGVkQWN0aW9uc0xvZ2dlciA9IHRoaXMuX2luamVjdG9yLmdldChOZ3hzVW5oYW5kbGVkQWN0aW9uc0xvZ2dlciwgbnVsbCk7XG4gICAgICAvLyBUaGUgYE5neHNVbmhhbmRsZWRBY3Rpb25zTG9nZ2VyYCB3aWxsIG5vdCBiZSByZXNvbHZlZCBieSB0aGUgaW5qZWN0b3IgaWYgdGhlXG4gICAgICAvLyBgTmd4c0RldmVsb3BtZW50TW9kdWxlYCBpcyBub3QgcHJvdmlkZWQuIEl0J3MgZW5vdWdoIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGBpbmplY3Rvci5nZXRgXG4gICAgICAvLyBkaWRuJ3QgcmV0dXJuIGBudWxsYCBzbyB3ZSBtYXkgZW5zdXJlIHRoZSBtb2R1bGUgaGFzIGJlZW4gaW1wb3J0ZWQuXG4gICAgICBpZiAodW5oYW5kbGVkQWN0aW9uc0xvZ2dlcikge1xuICAgICAgICB1bmhhbmRsZWRBY3Rpb25zTG9nZ2VyLndhcm4oYWN0aW9uKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIXJlc3VsdHMubGVuZ3RoKSB7XG4gICAgICByZXN1bHRzLnB1c2gob2Yoe30pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm9ya0pvaW4ocmVzdWx0cyk7XG4gIH1cblxuICBwcml2YXRlIGFkZFRvU3RhdGVzTWFwKHN0YXRlQ2xhc3NlczogU3RhdGVDbGFzc0ludGVybmFsW10pOiB7XG4gICAgbmV3U3RhdGVzOiBTdGF0ZUNsYXNzSW50ZXJuYWxbXTtcbiAgfSB7XG4gICAgY29uc3QgbmV3U3RhdGVzOiBTdGF0ZUNsYXNzSW50ZXJuYWxbXSA9IFtdO1xuICAgIGNvbnN0IHN0YXRlc01hcDogU3RhdGVzQnlOYW1lID0gdGhpcy5zdGF0ZXNCeU5hbWU7XG5cbiAgICBmb3IgKGNvbnN0IHN0YXRlQ2xhc3Mgb2Ygc3RhdGVDbGFzc2VzKSB7XG4gICAgICBjb25zdCBzdGF0ZU5hbWUgPSBnZXRTdG9yZU1ldGFkYXRhKHN0YXRlQ2xhc3MpLm5hbWUhO1xuICAgICAgaWYgKE5HX0RFVl9NT0RFKSB7XG4gICAgICAgIGVuc3VyZVN0YXRlTmFtZUlzVW5pcXVlKHN0YXRlTmFtZSwgc3RhdGVDbGFzcywgc3RhdGVzTWFwKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHVubW91bnRlZFN0YXRlID0gIXN0YXRlc01hcFtzdGF0ZU5hbWVdO1xuICAgICAgaWYgKHVubW91bnRlZFN0YXRlKSB7XG4gICAgICAgIG5ld1N0YXRlcy5wdXNoKHN0YXRlQ2xhc3MpO1xuICAgICAgICBzdGF0ZXNNYXBbc3RhdGVOYW1lXSA9IHN0YXRlQ2xhc3M7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgbmV3U3RhdGVzIH07XG4gIH1cblxuICBwcml2YXRlIGFkZFJ1bnRpbWVJbmZvVG9NZXRhKG1ldGE6IE1ldGFEYXRhTW9kZWwsIHBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVQYXRoc1ttZXRhLm5hbWUhXSA9IHBhdGg7XG4gICAgLy8gVE9ETzogdjQgLSB3ZSBwbGFuIHRvIGdldCByaWQgb2YgdGhlIHBhdGggcHJvcGVydHkgYmVjYXVzZSBpdCBpcyBub24tZGV0ZXJtaW5pc3RpY1xuICAgIC8vIHdlIGNhbiBkbyB0aGlzIHdoZW4gd2UgZ2V0IHJpZCBvZiB0aGUgaW5jb3JyZWN0bHkgZXhwb3NlZCBnZXRTdG9yZU1ldGFkYXRhXG4gICAgLy8gV2Ugd2lsbCBuZWVkIHRvIGNvbWUgdXAgd2l0aCBhbiBhbHRlcm5hdGl2ZSBpbiB2NCBiZWNhdXNlIHRoaXMgaXMgdXNlZCBieSBtYW55IHBsdWdpbnNcbiAgICBtZXRhLnBhdGggPSBwYXRoO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNCZWVuTW91bnRlZEFuZEJvb3RzdHJhcHBlZChuYW1lOiBzdHJpbmcsIHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHZhbHVlSXNCb290c3RyYXBwZWRJbkluaXRpYWxTdGF0ZTogYm9vbGVhbiA9XG4gICAgICBnZXRWYWx1ZSh0aGlzLl9pbml0aWFsU3RhdGUsIHBhdGgpICE9PSB1bmRlZmluZWQ7XG4gICAgLy8gVGhpcyBjaGVja3Mgd2hldGhlciBhIHN0YXRlIGhhcyBiZWVuIGFscmVhZHkgYWRkZWQgdG8gdGhlIGdsb2JhbCBncmFwaCBhbmRcbiAgICAvLyBpdHMgbGlmZWN5Y2xlIGlzIGluICdib290c3RyYXBwZWQnIHN0YXRlLlxuICAgIHJldHVybiB0aGlzLnN0YXRlc0J5TmFtZVtuYW1lXSAmJiB2YWx1ZUlzQm9vdHN0cmFwcGVkSW5Jbml0aWFsU3RhdGU7XG4gIH1cbn1cbiJdfQ==
|
|
297
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9pbnRlcm5hbC9zdGF0ZS1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1YsUUFBUSxFQUNSLFFBQVEsRUFDUixRQUFRLEVBQ1IsTUFBTSxFQUVOLFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsUUFBUSxFQUNSLFNBQVMsRUFHVCxpQkFBaUIsRUFFakIsb0JBQW9CLEVBR3JCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLHlCQUF5QixFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRixPQUFPLEVBQ0wsUUFBUSxFQUNSLElBQUksRUFFSixFQUFFLEVBQ0YsVUFBVSxFQUVWLE9BQU8sRUFDUCxZQUFZLEVBQ2IsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsVUFBVSxFQUNWLGNBQWMsRUFDZCxNQUFNLEVBQ04sR0FBRyxFQUNILFFBQVEsRUFDUixXQUFXLEVBQ1gsU0FBUyxFQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN4QyxPQUFPLEVBQ0wsVUFBVSxFQUNWLGtCQUFrQixFQUVsQixXQUFXLEVBQ1gsVUFBVSxFQUlWLGVBQWUsRUFDaEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUErQixlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUs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QzNCLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxVQUFVLENBQUM7YUFDbkM7U0FDRjtRQUVELE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU8sb0JBQW9CLENBQUMsSUFBb0IsRUFBRSxJQUFZO1FBQzdELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUssQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNuQyxxRkFBcUY7UUFDckYsNkVBQTZFO1FBQzdFLHlGQUF5RjtRQUN6RixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRU8sNkJBQTZCLENBQUMsSUFBWSxFQUFFLElBQVk7UUFDOUQsTUFBTSxpQ0FBaUMsR0FDckMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssU0FBUyxDQUFDO1FBQ25ELDZFQUE2RTtRQUM3RSw0Q0FBNEM7UUFDNUMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLGlDQUFpQyxDQUFDO0lBQ3RFLENBQUM7aUlBM1NVLFlBQVksOE9BYWIsb0JBQW9CO3FJQWJuQixZQUFZOzsyRkFBWixZQUFZO2tCQUR4QixVQUFVOzswQkFPTixRQUFROzswQkFDUixRQUFROzswQkFLUixRQUFROzswQkFDUixNQUFNOzJCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGUsXG4gIEluamVjdG9yLFxuICBPcHRpb25hbCxcbiAgU2tpcFNlbGYsXG4gIEluamVjdCxcbiAgT25EZXN0cm95LFxuICDJtWlzUHJvbWlzZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIMm1bWVtb2l6ZSxcbiAgybVNRVRBX0tFWSxcbiAgybVQbGFpbk9iamVjdE9mLFxuICDJtU1ldGFEYXRhTW9kZWwsXG4gIMm1Z2V0U3RvcmVNZXRhZGF0YSxcbiAgybVTdGF0ZUNsYXNzSW50ZXJuYWwsXG4gIMm1SU5JVElBTF9TVEFURV9UT0tFTixcbiAgybVTaGFyZWRTZWxlY3Rvck9wdGlvbnMsXG4gIMm1UnVudGltZVNlbGVjdG9yQ29udGV4dFxufSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgZ2V0QWN0aW9uVHlwZUZyb21JbnN0YW5jZSwgZ2V0VmFsdWUsIHNldFZhbHVlIH0gZnJvbSAnQG5neHMvc3RvcmUvcGx1Z2lucyc7XG5pbXBvcnQge1xuICBmb3JrSm9pbixcbiAgZnJvbSxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHRocm93RXJyb3IsXG4gIFN1YnNjcmlwdGlvbixcbiAgU3ViamVjdCxcbiAgaXNPYnNlcnZhYmxlXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgY2F0Y2hFcnJvcixcbiAgZGVmYXVsdElmRW1wdHksXG4gIGZpbHRlcixcbiAgbWFwLFxuICBtZXJnZU1hcCxcbiAgc2hhcmVSZXBsYXksXG4gIHRha2VVbnRpbFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE5neHNDb25maWcgfSBmcm9tICcuLi9zeW1ib2xzJztcbmltcG9ydCB7XG4gIGJ1aWxkR3JhcGgsXG4gIGZpbmRGdWxsUGFyZW50UGF0aCxcbiAgTWFwcGVkU3RvcmUsXG4gIG5hbWVUb1N0YXRlLFxuICBwcm9wR2V0dGVyLFxuICBTdGF0ZUtleUdyYXBoLFxuICBTdGF0ZXNBbmREZWZhdWx0cyxcbiAgU3RhdGVzQnlOYW1lLFxuICB0b3BvbG9naWNhbFNvcnRcbn0gZnJvbSAnLi9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgb2ZBY3Rpb25EaXNwYXRjaGVkIH0gZnJvbSAnLi4vb3BlcmF0b3JzL29mLWFjdGlvbic7XG5pbXBvcnQgeyBBY3Rpb25Db250ZXh0LCBBY3Rpb25TdGF0dXMsIEludGVybmFsQWN0aW9ucyB9IGZyb20gJy4uL2FjdGlvbnMtc3RyZWFtJztcbmltcG9ydCB7IEludGVybmFsRGlzcGF0Y2hlZEFjdGlvblJlc3VsdHMgfSBmcm9tICcuLi9pbnRlcm5hbC9kaXNwYXRjaGVyJztcbmltcG9ydCB7IFN0YXRlQ29udGV4dEZhY3RvcnkgfSBmcm9tICcuLi9pbnRlcm5hbC9zdGF0ZS1jb250ZXh0LWZhY3RvcnknO1xuaW1wb3J0IHsgZW5zdXJlU3RhdGVOYW1lSXNVbmlxdWUsIGVuc3VyZVN0YXRlc0FyZURlY29yYXRlZCB9IGZyb20gJy4uL3V0aWxzL3N0b3JlLXZhbGlkYXRvcnMnO1xuaW1wb3J0IHsgZW5zdXJlU3RhdGVDbGFzc0lzSW5qZWN0YWJsZSB9IGZyb20gJy4uL2l2eS9pdnktZW5hYmxlZC1pbi1kZXYtbW9kZSc7XG5pbXBvcnQgeyBOZ3hzVW5oYW5kbGVkQWN0aW9uc0xvZ2dlciB9IGZyb20gJy4uL2Rldi1mZWF0dXJlcy9uZ3hzLXVuaGFuZGxlZC1hY3Rpb25zLWxvZ2dlcic7XG5cbmNvbnN0IE5HX0RFVl9NT0RFID0gdHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlO1xuXG5mdW5jdGlvbiBjbG9uZURlZmF1bHRzKGRlZmF1bHRzOiBhbnkpOiBhbnkge1xuICBsZXQgdmFsdWUgPSBkZWZhdWx0cyA9PT0gdW5kZWZpbmVkID8ge30gOiBkZWZhdWx0cztcblxuICBpZiAoZGVmYXVsdHMpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShkZWZhdWx0cykpIHtcbiAgICAgIHZhbHVlID0gZGVmYXVsdHMuc2xpY2UoKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkZWZhdWx0cyA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHZhbHVlID0geyAuLi5kZWZhdWx0cyB9O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2YWx1ZTtcbn1cblxuLyoqXG4gKiBUaGUgYFN0YXRlRmFjdG9yeWAgY2xhc3MgYWRkcyByb290IGFuZCBmZWF0dXJlIHN0YXRlcyB0byB0aGUgZ3JhcGguXG4gKiBUaGlzIGV4dHJhY3RzIHN0YXRlIG5hbWVzIGZyb20gc3RhdGUgY2xhc3NlcywgY2hlY2tzIGlmIHRoZXkgYWxyZWFkeVxuICogZXhpc3QgaW4gdGhlIGdsb2JhbCBncmFwaCwgdGhyb3dzIGVycm9ycyBpZiB0aGVpciBuYW1lcyBhcmUgaW52YWxpZCwgZXRjLlxuICogU2VlIGl0cyBjb25zdHJ1Y3Rvciwgc3RhdGUgZmFjdG9yaWVzIGluamVjdCBzdGF0ZSBmYWN0b3JpZXMgdGhhdCBhcmVcbiAqIHBhcmVudC1sZXZlbCBwcm92aWRlcnMuIFRoaXMgaXMgcmVxdWlyZWQgdG8gZ2V0IGZlYXR1cmUgc3RhdGVzIGZyb20gdGhlXG4gKiBpbmplY3RvciBvbiB0aGUgc2FtZSBsZXZlbC5cbiAqXG4gKiBUaGUgYE5neHNNb2R1bGUuZm9yRmVhdHVyZSguLi4pYCByZXR1cm5zIGBwcm92aWRlcnM6IFtTdGF0ZUZhY3RvcnksIC4uLnN0YXRlc11gLlxuICogVGhlIGBTdGF0ZUZhY3RvcnlgIGlzIGluaXRpYWxpemVkIG9uIHRoZSBmZWF0dXJlIGxldmVsIGFuZCBnb2VzIHRocm91Z2ggYC4uLnN0YXRlc2BcbiAqIHRvIGdldCB0aGVtIGZyb20gdGhlIGluamVjdG9yIHRocm91Z2ggYGluamVjdG9yLmdldChzdGF0ZSlgLlxuICogQGlnbm9yZVxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU3RhdGVGYWN0b3J5IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfYWN0aW9uc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgX2NvbmZpZzogTmd4c0NvbmZpZyxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBTa2lwU2VsZigpXG4gICAgcHJpdmF0ZSBfcGFyZW50RmFjdG9yeTogU3RhdGVGYWN0b3J5LFxuICAgIHByaXZhdGUgX2FjdGlvbnM6IEludGVybmFsQWN0aW9ucyxcbiAgICBwcml2YXRlIF9hY3Rpb25SZXN1bHRzOiBJbnRlcm5hbERpc3BhdGNoZWRBY3Rpb25SZXN1bHRzLFxuICAgIHByaXZhdGUgX3N0YXRlQ29udGV4dEZhY3Rvcnk6IFN0YXRlQ29udGV4dEZhY3RvcnksXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KMm1SU5JVElBTF9TVEFURV9UT0tFTilcbiAgICBwcml2YXRlIF9pbml0aWFsU3RhdGU6IGFueVxuICApIHt9XG5cbiAgcHJpdmF0ZSBfc3RhdGVzOiBNYXBwZWRTdG9yZVtdID0gW107XG5cbiAgZ2V0IHN0YXRlcygpOiBNYXBwZWRTdG9yZVtdIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50RmFjdG9yeSA/IHRoaXMuX3BhcmVudEZhY3Rvcnkuc3RhdGVzIDogdGhpcy5fc3RhdGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3RhdGVzQnlOYW1lOiBTdGF0ZXNCeU5hbWUgPSB7fTtcblxuICBnZXQgc3RhdGVzQnlOYW1lKCk6IFN0YXRlc0J5TmFtZSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcmVudEZhY3RvcnkgPyB0aGlzLl9wYXJlbnRGYWN0b3J5LnN0YXRlc0J5TmFtZSA6IHRoaXMuX3N0YXRlc0J5TmFtZTtcbiAgfVxuXG4gIHByaXZhdGUgX3N0YXRlUGF0aHM6IMm1UGxhaW5PYmplY3RPZjxzdHJpbmc+ID0ge307XG5cbiAgcHJpdmF0ZSBnZXQgc3RhdGVQYXRocygpOiDJtVBsYWluT2JqZWN0T2Y8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcmVudEZhY3RvcnkgPyB0aGlzLl9wYXJlbnRGYWN0b3J5LnN0YXRlUGF0aHMgOiB0aGlzLl9zdGF0ZVBhdGhzO1xuICB9XG5cbiAgZ2V0UnVudGltZVNlbGVjdG9yQ29udGV4dCA9IMm1bWVtb2l6ZSgoKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG4gICAgY29uc3Qgc3RhdGVGYWN0b3J5ID0gdGhpcztcblxuICAgIGZ1bmN0aW9uIHJlc29sdmVHZXR0ZXIoa2V5OiBzdHJpbmcpIHtcbiAgICAgIGNvbnN0IHBhdGggPSBzdGF0ZUZhY3Rvcnkuc3RhdGVQYXRoc1trZXldO1xuICAgICAgcmV0dXJuIHBhdGggPyBwcm9wR2V0dGVyKHBhdGguc3BsaXQoJy4nKSwgc3RhdGVGYWN0b3J5Ll9jb25maWcpIDogbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBjb250ZXh0OiDJtVJ1bnRpbWVTZWxlY3RvckNvbnRleHQgPSB0aGlzLl9wYXJlbnRGYWN0b3J5XG4gICAgICA/IHRoaXMuX3BhcmVudEZhY3RvcnkuZ2V0UnVudGltZVNlbGVjdG9yQ29udGV4dCgpXG4gICAgICA6IHtcbiAgICAgICAgICBnZXRTdGF0ZUdldHRlcihrZXk6IHN0cmluZykge1xuICAgICAgICAgICAgLy8gVXNlIGBAX19JTkxJTkVfX2AgYW5ub3RhdGlvbiB0byBmb3JjZWx5IGlubGluZSBgcmVzb2x2ZUdldHRlcmAuXG4gICAgICAgICAgICAvLyBUaGlzIGlzIGEgVGVyc2VyIGFubm90YXRpb24sIHdoaWNoIHdpbGwgZnVuY3Rpb24gb25seSBpbiB0aGUgcHJvZHVjdGlvbiBtb2RlLlxuICAgICAgICAgICAgbGV0IGdldHRlciA9IC8qQF9fSU5MSU5FX18qLyByZXNvbHZlR2V0dGVyKGtleSk7XG4gICAgICAgICAgICBpZiAoZ2V0dGVyKSB7XG4gICAgICAgICAgICAgIHJldHVybiBnZXR0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgLy8gTGF0ZSBsb2FkZWQgZ2V0dGVyXG4gICAgICAgICAgICAgIGlmICghZ2V0dGVyKSB7XG4gICAgICAgICAgICAgICAgZ2V0dGVyID0gLypAX19JTkxJTkVfXyovIHJlc29sdmVHZXR0ZXIoa2V5KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gZ2V0dGVyID8gZ2V0dGVyKC4uLmFyZ3MpIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGdldFNlbGVjdG9yT3B0aW9ucyhsb2NhbE9wdGlvbnM/OiDJtVNoYXJlZFNlbGVjdG9yT3B0aW9ucykge1xuICAgICAgICAgICAgY29uc3QgZ2xvYmFsU2VsZWN0b3JPcHRpb25zID0gc3RhdGVGYWN0b3J5Ll9jb25maWcuc2VsZWN0b3JPcHRpb25zO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uZ2xvYmFsU2VsZWN0b3JPcHRpb25zLFxuICAgICAgICAgICAgICAuLi4obG9jYWxPcHRpb25zIHx8IHt9KVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgcmV0dXJuIGNvbnRleHQ7XG4gIH0pO1xuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2FjdGlvbnNTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgbmV3IHN0YXRlIHRvIHRoZSBnbG9iYWwgZGVmcy5cbiAgICovXG4gIGFkZChzdGF0ZUNsYXNzZXM6IMm1U3RhdGVDbGFzc0ludGVybmFsW10pOiBNYXBwZWRTdG9yZVtdIHtcbiAgICBpZiAoTkdfREVWX01PREUpIHtcbiAgICAgIGVuc3VyZVN0YXRlc0FyZURlY29yYXRlZChzdGF0ZUNsYXNzZXMpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgbmV3U3RhdGVzIH0gPSB0aGlzLmFkZFRvU3RhdGVzTWFwKHN0YXRlQ2xhc3Nlcyk7XG4gICAgaWYgKCFuZXdTdGF0ZXMubGVuZ3RoKSByZXR1cm4gW107XG5cbiAgICBjb25zdCBzdGF0ZUdyYXBoOiBTdGF0ZUtleUdyYXBoID0gYnVpbGRHcmFwaChuZXdTdGF0ZXMpO1xuICAgIGNvbnN0IHNvcnRlZFN0YXRlczogc3RyaW5nW10gPSB0b3BvbG9naWNhbFNvcnQoc3RhdGVHcmFwaCk7XG4gICAgY29uc3QgcGF0aHM6IMm1UGxhaW5PYmplY3RPZjxzdHJpbmc+ID0gZmluZEZ1bGxQYXJlbnRQYXRoKHN0YXRlR3JhcGgpO1xuICAgIGNvbnN0IG5hbWVHcmFwaDogybVQbGFpbk9iamVjdE9mPMm1U3RhdGVDbGFzc0ludGVybmFsPiA9IG5hbWVUb1N0YXRlKG5ld1N0YXRlcyk7XG4gICAgY29uc3QgYm9vdHN0cmFwcGVkU3RvcmVzOiBNYXBwZWRTdG9yZVtdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IG5hbWUgb2Ygc29ydGVkU3RhdGVzKSB7XG4gICAgICBjb25zdCBzdGF0ZUNsYXNzOiDJtVN0YXRlQ2xhc3NJbnRlcm5hbCA9IG5hbWVHcmFwaFtuYW1lXTtcbiAgICAgIGNvbnN0IHBhdGg6IHN0cmluZyA9IHBhdGhzW25hbWVdO1xuICAgICAgY29uc3QgbWV0YTogybVNZXRhRGF0YU1vZGVsID0gc3RhdGVDbGFzc1vJtU1FVEFfS0VZXSE7XG5cbiAgICAgIHRoaXMuYWRkUnVudGltZUluZm9Ub01ldGEobWV0YSwgcGF0aCk7XG5cbiAgICAgIC8vIE5vdGU6IHByZXZpb3VzbHkgd2UgY2FsbGVkIGBlbnN1cmVTdGF0ZUNsYXNzSXNJbmplY3RhYmxlYCB3aXRoaW4gdGhlXG4gICAgICAvLyBgU3RhdGVgIGRlY29yYXRvci4gVGhpcyBjaGVjayBpcyBtb3ZlZCBoZXJlIGJlY2F1c2UgdGhlIGDJtXByb3ZgIHByb3BlcnR5XG4gICAgICAvLyB3aWxsIG5vdCBleGlzdCBvbiB0aGUgY2xhc3MgaW4gSklUIG1vZGUgKGJlY2F1c2UgaXQncyBzZXQgYXN5bmNocm9ub3VzbHlcbiAgICAgIC8vIGR1cmluZyBKSVQgY29tcGlsYXRpb24gdGhyb3VnaCBgT2JqZWN0LmRlZmluZVByb3BlcnR5YCkuXG4gICAgICBpZiAoTkdfREVWX01PREUpIHtcbiAgICAgICAgZW5zdXJlU3RhdGVDbGFzc0lzSW5qZWN0YWJsZShzdGF0ZUNsYXNzKTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc3RhdGVNYXA6IE1hcHBlZFN0b3JlID0ge1xuICAgICAgICBuYW1lLFxuICAgICAgICBwYXRoLFxuICAgICAgICBpc0luaXRpYWxpc2VkOiBmYWxzZSxcbiAgICAgICAgYWN0aW9uczogbWV0YS5hY3Rpb25zLFxuICAgICAgICBpbnN0YW5jZTogdGhpcy5faW5qZWN0b3IuZ2V0KHN0YXRlQ2xhc3MpLFxuICAgICAgICBkZWZhdWx0czogY2xvbmVEZWZhdWx0cyhtZXRhLmRlZmF1bHRzKVxuICAgICAgfTtcblxuICAgICAgLy8gZW5zdXJlIG91ciBzdG9yZSBoYXNuJ3QgYWxyZWFkeSBiZWVuIGFkZGVkXG4gICAgICAvLyBidXQgZG9uJ3QgdGhyb3cgc2luY2UgaXQgY291bGQgYmUgbGF6eVxuICAgICAgLy8gbG9hZGVkIGZyb20gZGlmZmVyZW50IHBhdGhzXG4gICAgICBpZiAoIXRoaXMuaGFzQmVlbk1vdW50ZWRBbmRCb290c3RyYXBwZWQobmFtZSwgcGF0aCkpIHtcbiAgICAgICAgYm9vdHN0cmFwcGVkU3RvcmVzLnB1c2goc3RhdGVNYXApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnN0YXRlcy5wdXNoKHN0YXRlTWFwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYm9vdHN0cmFwcGVkU3RvcmVzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIHNldCBvZiBzdGF0ZXMgdG8gdGhlIHN0b3JlIGFuZCByZXR1cm4gdGhlIGRlZmF1bHRzXG4gICAqL1xuICBhZGRBbmRSZXR1cm5EZWZhdWx0cyhzdGF0ZUNsYXNzZXM6IMm1U3RhdGVDbGFzc0ludGVybmFsW10pOiBTdGF0ZXNBbmREZWZhdWx0cyB7XG4gICAgY29uc3QgY2xhc3NlczogybVTdGF0ZUNsYXNzSW50ZXJuYWxbXSA9IHN0YXRlQ2xhc3NlcyB8fCBbXTtcblxuICAgIGNvbnN0IG1hcHBlZFN0b3JlczogTWFwcGVkU3RvcmVbXSA9IHRoaXMuYWRkKGNsYXNzZXMpO1xuICAgIGNvbnN0IGRlZmF1bHRzID0gbWFwcGVkU3RvcmVzLnJlZHVjZShcbiAgICAgIChyZXN1bHQ6IGFueSwgbWFwcGVkU3RvcmU6IE1hcHBlZFN0b3JlKSA9PlxuICAgICAgICBzZXRWYWx1ZShyZXN1bHQsIG1hcHBlZFN0b3JlLnBhdGgsIG1hcHBlZFN0b3JlLmRlZmF1bHRzKSxcbiAgICAgIHt9XG4gICAgKTtcbiAgICByZXR1cm4geyBkZWZhdWx0cywgc3RhdGVzOiBtYXBwZWRTdG9yZXMgfTtcbiAgfVxuXG4gIGNvbm5lY3RBY3Rpb25IYW5kbGVycygpOiB2b2lkIHtcbiAgICAvLyBOb3RlOiBXZSBoYXZlIHRvIGNvbm5lY3QgYWN0aW9ucyBvbmx5IG9uY2Ugd2hlbiB0aGUgYFN0YXRlRmFjdG9yeWBcbiAgICAvLyAgICAgICBpcyBiZWluZyBjcmVhdGVkIGZvciB0aGUgZmlyc3QgdGltZS4gVGhpcyBjaGVja3MgaWYgd2UncmUgaW5cbiAgICAvLyAgICAgICBhIGNoaWxkIHN0YXRlIGZhY3RvcnkgYW5kIHRoZSBwYXJlbnQgc3RhdGUgZmFjdG9yeSBhbHJlYWR5IGV4aXN0cy5cbiAgICBpZiAodGhpcy5fcGFyZW50RmFjdG9yeSB8fCB0aGlzLl9hY3Rpb25zU3Vic2NyaXB0aW9uICE9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGlzcGF0Y2hlZCQgPSBuZXcgU3ViamVjdDxBY3Rpb25Db250ZXh0PigpO1xuICAgIHRoaXMuX2FjdGlvbnNTdWJzY3JpcHRpb24gPSB0aGlzLl9hY3Rpb25zXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChjdHg6IEFjdGlvbkNvbnRleHQpID0+IGN0eC5zdGF0dXMgPT09IEFjdGlvblN0YXR1cy5EaXNwYXRjaGVkKSxcbiAgICAgICAgbWVyZ2VNYXAoY3R4ID0+IHtcbiAgICAgICAgICBkaXNwYXRjaGVkJC5uZXh0KGN0eCk7XG4gICAgICAgICAgY29uc3QgYWN0aW9uID0gY3R4LmFjdGlvbjtcbiAgICAgICAgICByZXR1cm4gdGhpcy5pbnZva2VBY3Rpb25zKGRpc3BhdGNoZWQkLCBhY3Rpb24hKS5waXBlKFxuICAgICAgICAgICAgbWFwKCgpID0+IDxBY3Rpb25Db250ZXh0PnsgYWN0aW9uLCBzdGF0dXM6IEFjdGlvblN0YXR1cy5TdWNjZXNzZnVsIH0pLFxuICAgICAgICAgICAgZGVmYXVsdElmRW1wdHkoPEFjdGlvbkNvbnRleHQ+eyBhY3Rpb24sIHN0YXR1czogQWN0aW9uU3RhdHVzLkNhbmNlbGVkIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PlxuICAgICAgICAgICAgICBvZig8QWN0aW9uQ29udGV4dD57IGFjdGlvbiwgc3RhdHVzOiBBY3Rpb25TdGF0dXMuRXJyb3JlZCwgZXJyb3IgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShjdHggPT4gdGhpcy5fYWN0aW9uUmVzdWx0cy5uZXh0KGN0eCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEludm9rZSBhY3Rpb25zIG9uIHRoZSBzdGF0ZXMuXG4gICAqL1xuICBpbnZva2VBY3Rpb25zKGRpc3BhdGNoZWQkOiBPYnNlcnZhYmxlPEFjdGlvbkNvbnRleHQ+LCBhY3Rpb246IGFueSkge1xuICAgIGNvbnN0IHR5cGUgPSBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlKGFjdGlvbikhO1xuICAgIGNvbnN0IHJlc3VsdHMgPSBbXTtcblxuICAgIC8vIERldGVybWluZXMgd2hldGhlciB0aGUgZGlzcGF0Y2hlZCBhY3Rpb24gaGFzIGJlZW4gaGFuZGxlZCwgdGhpcyBpcyBhc3NpZ25lZFxuICAgIC8vIHRvIGB0cnVlYCB3aXRoaW4gdGhlIGJlbG93IGBmb3JgIGxvb3AgaWYgYW55IGBhY3Rpb25NZXRhc2AgaGFzIGJlZW4gZm91bmQuXG4gICAgbGV0IGFjdGlvbkhhc0JlZW5IYW5kbGVkID0gZmFsc2U7XG5cbiAgICBmb3IgKGNvbnN0IG1ldGFkYXRhIG9mIHRoaXMuc3RhdGVzKSB7XG4gICAgICBjb25zdCBhY3Rpb25NZXRhcyA9IG1ldGFkYXRhLmFjdGlvbnNbdHlwZV07XG5cbiAgICAgIGlmIChhY3Rpb25NZXRhcykge1xuICAgICAgICBmb3IgKGNvbnN0IGFjdGlvbk1ldGEgb2YgYWN0aW9uTWV0YXMpIHtcbiAgICAgICAgICBjb25zdCBzdGF0ZUNvbnRleHQgPSB0aGlzLl9zdGF0ZUNvbnRleHRGYWN0b3J5LmNyZWF0ZVN0YXRlQ29udGV4dChtZXRhZGF0YSk7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCByZXN1bHQgPSBtZXRhZGF0YS5pbnN0YW5jZVthY3Rpb25NZXRhLmZuXShzdGF0ZUNvbnRleHQsIGFjdGlvbik7XG5cbiAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gdXNlIGBpc1Byb21pc2VgIGluc3RlYWQgb2YgY2hlY2tpbmcgd2hldGhlclxuICAgICAgICAgICAgLy8gYHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2VgLiBJbiB6b25lLmpzIHBhdGNoZWQgZW52aXJvbm1lbnRzLCBgZ2xvYmFsLlByb21pc2VgXG4gICAgICAgICAgICAvLyBpcyB0aGUgYFpvbmVBd2FyZVByb21pc2VgLiBTb21lIEFQSXMsIHdoaWNoIGFyZSBsaWtlbHkgbm90IHBhdGNoZWQgYnkgem9uZS5qc1xuICAgICAgICAgICAgLy8gZm9yIGNlcnRhaW4gcmVhc29ucywgbWlnaHQgbm90IHdvcmsgd2l0aCBgaW5zdGFuY2VvZmAuIEZvciBpbnN0YW5jZSwgdGhlIGR5bmFtaWNcbiAgICAgICAgICAgIC8vIGltcG9ydCByZXR1cm5zIGEgbmF0aXZlIHByb21pc2UgKG5vdCBhIGBab25lQXdhcmVQcm9taXNlYCksIGNhdXNpbmcgdGhpcyBjaGVjayB0b1xuICAgICAgICAgICAgLy8gYmUgZmFsc3kuXG4gICAgICAgICAgICBpZiAoybVpc1Byb21pc2UocmVzdWx0KSkge1xuICAgICAgICAgICAgICByZXN1bHQgPSBmcm9tKHJlc3VsdCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpc09ic2VydmFibGUocmVzdWx0KSkge1xuICAgICAgICAgICAgICAvLyBJZiB0aGlzIG9ic2VydmFibGUgaGFzIGJlZW4gY29tcGxldGVkIHcvbyBlbWl0dGluZ1xuICAgICAgICAgICAgICAvLyBhbnkgdmFsdWUgdGhlbiB3ZSB3b3VsZG4ndCB3YW50IHRvIGNvbXBsZXRlIHRoZSB3aG9sZSBjaGFpblxuICAgICAgICAgICAgICAvLyBvZiBhY3Rpb25zLiBTaW5jZSBpZiBhbnkgb2JzZXJ2YWJsZSBjb21wbGV0ZXMgdGhlblxuICAgICAgICAgICAgICAvLyBhY3Rpb24gd2lsbCBiZSBjYW5jZWxlZC5cbiAgICAgICAgICAgICAgLy8gRm9yIGluc3RhbmNlIGlmIGFueSBhY3Rpb24gaGFuZGxlciB3b3VsZCd2ZSBoYWQgc3VjaCBzdGF0ZW1lbnQ6XG4gICAgICAgICAgICAgIC8vIGBoYW5kbGVyKGN0eCkgeyByZXR1cm4gRU1QVFk7IH1gXG4gICAgICAgICAgICAgIC8vIHRoZW4gdGhlIGFjdGlvbiB3aWxsIGJlIGNhbmNlbGVkLlxuICAgICAgICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL25neHMvc3RvcmUvaXNzdWVzLzE1NjhcbiAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnBpcGUoXG4gICAgICAgICAgICAgICAgbWVyZ2VNYXAoKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmICjJtWlzUHJvbWlzZSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZyb20odmFsdWUpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgaWYgKGlzT2JzZXJ2YWJsZTxhbnk+KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICByZXR1cm4gb2YodmFsdWUpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGRlZmF1bHRJZkVtcHR5KHt9KVxuICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgIGlmIChhY3Rpb25NZXRhLm9wdGlvbnMuY2FuY2VsVW5jb21wbGV0ZWQpIHtcbiAgICAgICAgICAgICAgICAvLyB0b2RvOiBvZkFjdGlvbkRpc3BhdGNoZWQgc2hvdWxkIGJlIHVzZWQgd2l0aCBhY3Rpb24gY2xhc3NcbiAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQucGlwZShcbiAgICAgICAgICAgICAgICAgIHRha2VVbnRpbChkaXNwYXRjaGVkJC5waXBlKG9mQWN0aW9uRGlzcGF0Y2hlZChhY3Rpb24gYXMgYW55KSkpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmVzdWx0ID0gb2Yoe30pLnBpcGUoc2hhcmVSZXBsYXkoKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJlc3VsdHMucHVzaChyZXN1bHQpO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJlc3VsdHMucHVzaCh0aHJvd0Vycm9yKGUpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBhY3Rpb25IYXNCZWVuSGFuZGxlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUaGUgYE5neHNVbmhhbmRsZWRBY3Rpb25zTG9nZ2VyYCBpcyBhIHRyZWUtc2hha2FibGUgY2xhc3Mgd2hpY2ggZnVuY3Rpb25zXG4gICAgLy8gb25seSBkdXJpbmcgZGV2ZWxvcG1lbnQuXG4gICAgaWYgKE5HX0RFVl9NT0RFICYmICFhY3Rpb25IYXNCZWVuSGFuZGxlZCkge1xuICAgICAgY29uc3QgdW5oYW5kbGVkQWN0aW9uc0xvZ2dlciA9IHRoaXMuX2luamVjdG9yLmdldChOZ3hzVW5oYW5kbGVkQWN0aW9uc0xvZ2dlciwgbnVsbCk7XG4gICAgICAvLyBUaGUgYE5neHNVbmhhbmRsZWRBY3Rpb25zTG9nZ2VyYCB3aWxsIG5vdCBiZSByZXNvbHZlZCBieSB0aGUgaW5qZWN0b3IgaWYgdGhlXG4gICAgICAvLyBgTmd4c0RldmVsb3BtZW50TW9kdWxlYCBpcyBub3QgcHJvdmlkZWQuIEl0J3MgZW5vdWdoIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGBpbmplY3Rvci5nZXRgXG4gICAgICAvLyBkaWRuJ3QgcmV0dXJuIGBudWxsYCBzbyB3ZSBtYXkgZW5zdXJlIHRoZSBtb2R1bGUgaGFzIGJlZW4gaW1wb3J0ZWQuXG4gICAgICBpZiAodW5oYW5kbGVkQWN0aW9uc0xvZ2dlcikge1xuICAgICAgICB1bmhhbmRsZWRBY3Rpb25zTG9nZ2VyLndhcm4oYWN0aW9uKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIXJlc3VsdHMubGVuZ3RoKSB7XG4gICAgICByZXN1bHRzLnB1c2gob2Yoe30pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm9ya0pvaW4ocmVzdWx0cyk7XG4gIH1cblxuICBwcml2YXRlIGFkZFRvU3RhdGVzTWFwKHN0YXRlQ2xhc3NlczogybVTdGF0ZUNsYXNzSW50ZXJuYWxbXSk6IHtcbiAgICBuZXdTdGF0ZXM6IMm1U3RhdGVDbGFzc0ludGVybmFsW107XG4gIH0ge1xuICAgIGNvbnN0IG5ld1N0YXRlczogybVTdGF0ZUNsYXNzSW50ZXJuYWxbXSA9IFtdO1xuICAgIGNvbnN0IHN0YXRlc01hcDogU3RhdGVzQnlOYW1lID0gdGhpcy5zdGF0ZXNCeU5hbWU7XG5cbiAgICBmb3IgKGNvbnN0IHN0YXRlQ2xhc3Mgb2Ygc3RhdGVDbGFzc2VzKSB7XG4gICAgICBjb25zdCBzdGF0ZU5hbWUgPSDJtWdldFN0b3JlTWV0YWRhdGEoc3RhdGVDbGFzcykubmFtZSE7XG4gICAgICBpZiAoTkdfREVWX01PREUpIHtcbiAgICAgICAgZW5zdXJlU3RhdGVOYW1lSXNVbmlxdWUoc3RhdGVOYW1lLCBzdGF0ZUNsYXNzLCBzdGF0ZXNNYXApO1xuICAgICAgfVxuICAgICAgY29uc3QgdW5tb3VudGVkU3RhdGUgPSAhc3RhdGVzTWFwW3N0YXRlTmFtZV07XG4gICAgICBpZiAodW5tb3VudGVkU3RhdGUpIHtcbiAgICAgICAgbmV3U3RhdGVzLnB1c2goc3RhdGVDbGFzcyk7XG4gICAgICAgIHN0YXRlc01hcFtzdGF0ZU5hbWVdID0gc3RhdGVDbGFzcztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4geyBuZXdTdGF0ZXMgfTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkUnVudGltZUluZm9Ub01ldGEobWV0YTogybVNZXRhRGF0YU1vZGVsLCBwYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlUGF0aHNbbWV0YS5uYW1lIV0gPSBwYXRoO1xuICAgIC8vIFRPRE86IHY0IC0gd2UgcGxhbiB0byBnZXQgcmlkIG9mIHRoZSBwYXRoIHByb3BlcnR5IGJlY2F1c2UgaXQgaXMgbm9uLWRldGVybWluaXN0aWNcbiAgICAvLyB3ZSBjYW4gZG8gdGhpcyB3aGVuIHdlIGdldCByaWQgb2YgdGhlIGluY29ycmVjdGx5IGV4cG9zZWQgZ2V0U3RvcmVNZXRhZGF0YVxuICAgIC8vIFdlIHdpbGwgbmVlZCB0byBjb21lIHVwIHdpdGggYW4gYWx0ZXJuYXRpdmUgaW4gdjQgYmVjYXVzZSB0aGlzIGlzIHVzZWQgYnkgbWFueSBwbHVnaW5zXG4gICAgbWV0YS5wYXRoID0gcGF0aDtcbiAgfVxuXG4gIHByaXZhdGUgaGFzQmVlbk1vdW50ZWRBbmRCb290c3RyYXBwZWQobmFtZTogc3RyaW5nLCBwYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCB2YWx1ZUlzQm9vdHN0cmFwcGVkSW5Jbml0aWFsU3RhdGU6IGJvb2xlYW4gPVxuICAgICAgZ2V0VmFsdWUodGhpcy5faW5pdGlhbFN0YXRlLCBwYXRoKSAhPT0gdW5kZWZpbmVkO1xuICAgIC8vIFRoaXMgY2hlY2tzIHdoZXRoZXIgYSBzdGF0ZSBoYXMgYmVlbiBhbHJlYWR5IGFkZGVkIHRvIHRoZSBnbG9iYWwgZ3JhcGggYW5kXG4gICAgLy8gaXRzIGxpZmVjeWNsZSBpcyBpbiAnYm9vdHN0cmFwcGVkJyBzdGF0ZS5cbiAgICByZXR1cm4gdGhpcy5zdGF0ZXNCeU5hbWVbbmFtZV0gJiYgdmFsdWVJc0Jvb3RzdHJhcHBlZEluSW5pdGlhbFN0YXRlO1xuICB9XG59XG4iXX0=
|
|
@@ -1,32 +1,15 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
import { OrderedBehaviorSubject } from './custom-rxjs-subjects';
|
|
2
|
+
import { ɵStateStream } from '@ngxs/store/internals';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
4
|
/**
|
|
6
|
-
*
|
|
7
|
-
* @ignore
|
|
5
|
+
* @deprecated use `ɵStateStream` from `@ngxs/store/internals`.
|
|
8
6
|
*/
|
|
9
|
-
export class StateStream extends
|
|
10
|
-
|
|
11
|
-
super({});
|
|
12
|
-
this.state = toSignal(this, {
|
|
13
|
-
manualCleanup: true,
|
|
14
|
-
requireSync: true
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
ngOnDestroy() {
|
|
18
|
-
// The StateStream should never emit values once the root view is removed,
|
|
19
|
-
// such as when the `NgModuleRef.destroy()` method is called. This is crucial
|
|
20
|
-
// for preventing memory leaks in server-side rendered apps, where a new StateStream
|
|
21
|
-
// is created for each HTTP request. If users forget to unsubscribe from `store.select`
|
|
22
|
-
// or `store.subscribe`, it can result in significant memory leaks in SSR apps.
|
|
23
|
-
this.complete();
|
|
24
|
-
}
|
|
25
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: StateStream, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
7
|
+
export class StateStream extends ɵStateStream {
|
|
8
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: StateStream, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
26
9
|
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: StateStream, providedIn: 'root' }); }
|
|
27
10
|
}
|
|
28
11
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: StateStream, decorators: [{
|
|
29
12
|
type: Injectable,
|
|
30
13
|
args: [{ providedIn: 'root' }]
|
|
31
|
-
}]
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
}] });
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtc3RyZWFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL2ludGVybmFsL3N0YXRlLXN0cmVhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFckQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sV0FBWSxTQUFRLFlBQVk7aUlBQWhDLFdBQVc7cUlBQVgsV0FBVyxjQURFLE1BQU07OzJGQUNuQixXQUFXO2tCQUR2QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IMm1U3RhdGVTdHJlYW0gfSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIHVzZSBgybVTdGF0ZVN0cmVhbWAgZnJvbSBgQG5neHMvc3RvcmUvaW50ZXJuYWxzYC5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBTdGF0ZVN0cmVhbSBleHRlbmRzIMm1U3RhdGVTdHJlYW0ge31cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { getActionTypeFromInstance } from '@ngxs/store/plugins';
|
|
1
2
|
import { map, filter } from 'rxjs/operators';
|
|
2
|
-
import { getActionTypeFromInstance } from '../utils/utils';
|
|
3
3
|
/**
|
|
4
4
|
* RxJS operator for selecting out specific actions.
|
|
5
5
|
*
|
|
@@ -99,4 +99,4 @@ function createAllowedStatusesMap(statuses) {
|
|
|
99
99
|
return filterMap;
|
|
100
100
|
}, {});
|
|
101
101
|
}
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2YtYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL29wZXJhdG9ycy9vZi1hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc3QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQXNCM0Q7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQ3RCLEdBQUcsWUFBZTtJQUtsQixPQUFPLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxHQUFHLFlBQWU7SUFLbEIsT0FBTyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsNENBQXlCLENBQUMsQ0FBQztBQUNuRSxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FDaEMsR0FBRyxZQUFlO0lBS2xCLE9BQU8sZ0JBQWdCLENBQUMsWUFBWSxFQUFFLDRDQUF5QixDQUFDLENBQUM7QUFDbkUsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLEdBQUcsWUFBZTtJQUtsQixPQUFPLGdCQUFnQixDQUFDLFlBQVksRUFBRSx3Q0FBdUIsQ0FBQyxDQUFDO0FBQ2pFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixHQUFHLFlBQWU7SUFLbEIsTUFBTSxlQUFlLEdBQUc7Ozs7S0FJdkIsQ0FBQztJQUNGLE9BQU8sZ0JBQWdCLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxlQUFlLENBQUMsQ0FBQztBQUMxRSxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQzdCLEdBQUcsWUFBZTtJQUtsQixPQUFPLGdCQUFnQixDQUFDLFlBQVksRUFBRSxzQ0FBc0IsQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUN2QixZQUEwQixFQUMxQixRQUF5QjtBQUN6Qix5RkFBeUY7QUFDekYsK0ZBQStGO0FBQy9GLDZEQUE2RDtBQUM3RCxjQUEwRCxTQUFTO0lBRW5FLE1BQU0sVUFBVSxHQUFHLDJCQUEyQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzdELE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxJQUFJLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hFLE9BQU8sVUFBVSxDQUE0QjtRQUMzQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLFlBQXVCLEVBQUUsZUFBMkI7SUFDeEUsT0FBTyxNQUFNLENBQUMsQ0FBQyxHQUFrQixFQUFFLEVBQUU7UUFDbkMsTUFBTSxVQUFVLEdBQUcseUJBQXlCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBRSxDQUFDO1FBQzFELE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzQyxNQUFNLFdBQVcsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN6RSxPQUFPLFNBQVMsSUFBSSxXQUFXLENBQUM7SUFDbEMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxlQUFlO0lBQ3RCLE9BQU8sR0FBRyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBaUIsRUFBRSxFQUFFO1FBQ3RELE9BQXlCO1lBQ3ZCLE1BQU07WUFDTixNQUFNLEVBQUU7Z0JBQ04sVUFBVSxFQUFFLCtDQUE0QixNQUFNO2dCQUM5QyxRQUFRLEVBQUUsMkNBQTBCLE1BQU07Z0JBQzFDLEtBQUs7YUFDTjtTQUNGLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFTLFNBQVM7SUFDaEIsT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFrQixFQUFFLEVBQUUsQ0FBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDcEQsQ0FBQztBQU1ELFNBQVMsMkJBQTJCLENBQUMsS0FBbUI7SUFDdEQsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBb0IsRUFBRSxLQUFVLEVBQUUsRUFBRTtRQUN2RCxTQUFTLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDcEQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQyxFQUFhLEVBQUUsQ0FBQyxDQUFDO0FBQ3BCLENBQUM7QUFFRCxTQUFTLHdCQUF3QixDQUFDLFFBQXdCO0lBQ3hELE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQW9CLEVBQUUsTUFBb0IsRUFBRSxFQUFFO1FBQ3BFLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDekIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQyxFQUFhLEVBQUUsQ0FBQyxDQUFDO0FBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcGVyYXRvckZ1bmN0aW9uLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQWN0aW9uVHlwZSB9IGZyb20gJy4uL2FjdGlvbnMvc3ltYm9scyc7XG5pbXBvcnQgeyBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlIH0gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHsgQWN0aW9uQ29udGV4dCwgQWN0aW9uU3RhdHVzIH0gZnJvbSAnLi4vYWN0aW9ucy1zdHJlYW0nO1xuXG50eXBlIFR1cGxlS2V5czxUIGV4dGVuZHMgYW55W10+ID0gRXhjbHVkZTxrZXlvZiBULCBrZXlvZiBbXT47XG5cbi8qKlxuICogR2l2ZW4gYSBQT0pPLCByZXR1cm5zIHRoZSBQT0pPIHR5cGUsIGdpdmVuIGEgY2xhc3MgY29uc3RydWN0b3Igb2JqZWN0LCByZXR1cm5zIHRoZSB0eXBlIG9mIHRoZSBjbGFzcy5cbiAqXG4gKiBUaGlzIHV0aWxpdHkgdHlwZSBleGlzdHMgZHVlIHRvIHRoZSBjb21wbGV4aXR5IG9mIEFjdGlvblR5cGUgYmVpbmcgZWl0aGVyIGFuIEFjdGlvbkRlZiBjbGFzcyBvciB0aGUgcGxhaW5cbiAqIGB7IHR5cGU6IHN0cmluZyB9YCB0eXBlIChvciBzaW1pbGFyIGNvbXBhdGlibGUgUE9KTyB0eXBlcykuXG4gKi9cbnR5cGUgQ29uc3RydWN0ZWQ8VD4gPSBUIGV4dGVuZHMgbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gaW5mZXIgVSA/IFUgOiBUO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbkNvbXBsZXRpb248VCA9IGFueSwgRSA9IEVycm9yPiB7XG4gIGFjdGlvbjogVDtcbiAgcmVzdWx0OiB7XG4gICAgc3VjY2Vzc2Z1bDogYm9vbGVhbjtcbiAgICBjYW5jZWxlZDogYm9vbGVhbjtcbiAgICBlcnJvcj86IEU7XG4gIH07XG59XG5cbi8qKlxuICogUnhKUyBvcGVyYXRvciBmb3Igc2VsZWN0aW5nIG91dCBzcGVjaWZpYyBhY3Rpb25zLlxuICpcbiAqIFRoaXMgd2lsbCBncmFiIGFjdGlvbnMgdGhhdCBoYXZlIGp1c3QgYmVlbiBkaXNwYXRjaGVkIGFzIHdlbGwgYXMgYWN0aW9ucyB0aGF0IGhhdmUgY29tcGxldGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvZkFjdGlvbjxUIGV4dGVuZHMgQWN0aW9uVHlwZVtdPihcbiAgLi4uYWxsb3dlZFR5cGVzOiBUXG4pOiBPcGVyYXRvckZ1bmN0aW9uPFxuICBBY3Rpb25Db250ZXh0PENvbnN0cnVjdGVkPFRbVHVwbGVLZXlzPFQ+XT4+LFxuICBDb25zdHJ1Y3RlZDxUW1R1cGxlS2V5czxUPl0+XG4+IHtcbiAgcmV0dXJuIG9mQWN0aW9uT3BlcmF0b3IoYWxsb3dlZFR5cGVzKTtcbn1cblxuLyoqXG4gKiBSeEpTIG9wZXJhdG9yIGZvciBzZWxlY3Rpbmcgb3V0IHNwZWNpZmljIGFjdGlvbnMuXG4gKlxuICogVGhpcyB3aWxsIE9OTFkgZ3JhYiBhY3Rpb25zIHRoYXQgaGF2ZSBqdXN0IGJlZW4gZGlzcGF0Y2hlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gb2ZBY3Rpb25EaXNwYXRjaGVkPFQgZXh0ZW5kcyBBY3Rpb25UeXBlW10+KFxuICAuLi5hbGxvd2VkVHlwZXM6IFRcbik6IE9wZXJhdG9yRnVuY3Rpb248XG4gIEFjdGlvbkNvbnRleHQ8Q29uc3RydWN0ZWQ8VFtUdXBsZUtleXM8VD5dPj4sXG4gIENvbnN0cnVjdGVkPFRbVHVwbGVLZXlzPFQ+XT5cbj4ge1xuICByZXR1cm4gb2ZBY3Rpb25PcGVyYXRvcihhbGxvd2VkVHlwZXMsIFtBY3Rpb25TdGF0dXMuRGlzcGF0Y2hlZF0pO1xufVxuXG4vKipcbiAqIFJ4SlMgb3BlcmF0b3IgZm9yIHNlbGVjdGluZyBvdXQgc3BlY2lmaWMgYWN0aW9ucy5cbiAqXG4gKiBUaGlzIHdpbGwgT05MWSBncmFiIGFjdGlvbnMgdGhhdCBoYXZlIGp1c3QgYmVlbiBzdWNjZXNzZnVsbHkgY29tcGxldGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvZkFjdGlvblN1Y2Nlc3NmdWw8VCBleHRlbmRzIEFjdGlvblR5cGVbXT4oXG4gIC4uLmFsbG93ZWRUeXBlczogVFxuKTogT3BlcmF0b3JGdW5jdGlvbjxcbiAgQWN0aW9uQ29udGV4dDxDb25zdHJ1Y3RlZDxUW1R1cGxlS2V5czxUPl0+PixcbiAgQ29uc3RydWN0ZWQ8VFtUdXBsZUtleXM8VD5dPlxuPiB7XG4gIHJldHVybiBvZkFjdGlvbk9wZXJhdG9yKGFsbG93ZWRUeXBlcywgW0FjdGlvblN0YXR1cy5TdWNjZXNzZnVsXSk7XG59XG5cbi8qKlxuICogUnhKUyBvcGVyYXRvciBmb3Igc2VsZWN0aW5nIG91dCBzcGVjaWZpYyBhY3Rpb25zLlxuICpcbiAqIFRoaXMgd2lsbCBPTkxZIGdyYWIgYWN0aW9ucyB0aGF0IGhhdmUganVzdCBiZWVuIGNhbmNlbGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvZkFjdGlvbkNhbmNlbGVkPFQgZXh0ZW5kcyBBY3Rpb25UeXBlW10+KFxuICAuLi5hbGxvd2VkVHlwZXM6IFRcbik6IE9wZXJhdG9yRnVuY3Rpb248XG4gIEFjdGlvbkNvbnRleHQ8Q29uc3RydWN0ZWQ8VFtUdXBsZUtleXM8VD5dPj4sXG4gIENvbnN0cnVjdGVkPFRbVHVwbGVLZXlzPFQ+XT5cbj4ge1xuICByZXR1cm4gb2ZBY3Rpb25PcGVyYXRvcihhbGxvd2VkVHlwZXMsIFtBY3Rpb25TdGF0dXMuQ2FuY2VsZWRdKTtcbn1cblxuLyoqXG4gKiBSeEpTIG9wZXJhdG9yIGZvciBzZWxlY3Rpbmcgb3V0IHNwZWNpZmljIGFjdGlvbnMuXG4gKlxuICogVGhpcyB3aWxsIE9OTFkgZ3JhYiBhY3Rpb25zIHRoYXQgaGF2ZSBqdXN0IGJlZW4gY29tcGxldGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvZkFjdGlvbkNvbXBsZXRlZDxUIGV4dGVuZHMgQWN0aW9uVHlwZVtdPihcbiAgLi4uYWxsb3dlZFR5cGVzOiBUXG4pOiBPcGVyYXRvckZ1bmN0aW9uPFxuICBBY3Rpb25Db250ZXh0PENvbnN0cnVjdGVkPFRbVHVwbGVLZXlzPFQ+XT4+LFxuICBBY3Rpb25Db21wbGV0aW9uPENvbnN0cnVjdGVkPFRbVHVwbGVLZXlzPFQ+XT4+XG4+IHtcbiAgY29uc3QgYWxsb3dlZFN0YXR1c2VzID0gW1xuICAgIEFjdGlvblN0YXR1cy5TdWNjZXNzZnVsLFxuICAgIEFjdGlvblN0YXR1cy5DYW5jZWxlZCxcbiAgICBBY3Rpb25TdGF0dXMuRXJyb3JlZFxuICBdO1xuICByZXR1cm4gb2ZBY3Rpb25PcGVyYXRvcihhbGxvd2VkVHlwZXMsIGFsbG93ZWRTdGF0dXNlcywgbWFwQWN0aW9uUmVzdWx0KTtcbn1cblxuLyoqXG4gKiBSeEpTIG9wZXJhdG9yIGZvciBzZWxlY3Rpbmcgb3V0IHNwZWNpZmljIGFjdGlvbnMuXG4gKlxuICogVGhpcyB3aWxsIE9OTFkgZ3JhYiBhY3Rpb25zIHRoYXQgaGF2ZSBqdXN0IHRocm93biBhbiBlcnJvclxuICovXG5leHBvcnQgZnVuY3Rpb24gb2ZBY3Rpb25FcnJvcmVkPFQgZXh0ZW5kcyBBY3Rpb25UeXBlW10+KFxuICAuLi5hbGxvd2VkVHlwZXM6IFRcbik6IE9wZXJhdG9yRnVuY3Rpb248XG4gIEFjdGlvbkNvbnRleHQ8Q29uc3RydWN0ZWQ8VFtUdXBsZUtleXM8VD5dPj4sXG4gIENvbnN0cnVjdGVkPFRbVHVwbGVLZXlzPFQ+XT5cbj4ge1xuICByZXR1cm4gb2ZBY3Rpb25PcGVyYXRvcihhbGxvd2VkVHlwZXMsIFtBY3Rpb25TdGF0dXMuRXJyb3JlZF0pO1xufVxuXG5mdW5jdGlvbiBvZkFjdGlvbk9wZXJhdG9yKFxuICBhbGxvd2VkVHlwZXM6IEFjdGlvblR5cGVbXSxcbiAgc3RhdHVzZXM/OiBBY3Rpb25TdGF0dXNbXSxcbiAgLy8gVGhpcyBhY3R1YWxseSBjb3VsZCd2ZSBiZWVuIGBPcGVyYXRvckZ1bmN0aW9uPEFjdGlvbkNvbnRleHQsIEFjdGlvbkNvbXBsZXRpb24gfCBhbnk+YCxcbiAgLy8gc2luY2UgaXQgbWFwcyBlaXRoZXIgdG8gYGN0eC5hY3Rpb25gIE9SIHRvIGBBY3Rpb25Db21wbGV0aW9uYC4gQnV0IGBBY3Rpb25Db21wbGV0ZWlvbiB8IGFueWBcbiAgLy8gZGVmYXVsdHMgdG8gYGFueWAsIHRodXMgdGhlcmUgaXMgbm8gc2Vuc2UgZnJvbSB1bmlvbiB0eXBlLlxuICBtYXBPcGVyYXRvcjogKCkgPT4gT3BlcmF0b3JGdW5jdGlvbjxBY3Rpb25Db250ZXh0LCBhbnk+ID0gbWFwQWN0aW9uXG4pOiBPcGVyYXRvckZ1bmN0aW9uPEFjdGlvbkNvbnRleHQsIGFueT4ge1xuICBjb25zdCBhbGxvd2VkTWFwID0gY3JlYXRlQWxsb3dlZEFjdGlvblR5cGVzTWFwKGFsbG93ZWRUeXBlcyk7XG4gIGNvbnN0IGFsbG93ZWRTdGF0dXNNYXAgPSBzdGF0dXNlcyAmJiBjcmVhdGVBbGxvd2VkU3RhdHVzZXNNYXAoc3RhdHVzZXMpO1xuICByZXR1cm4gZnVuY3Rpb24gKG86IE9ic2VydmFibGU8QWN0aW9uQ29udGV4dD4pIHtcbiAgICByZXR1cm4gby5waXBlKGZpbHRlclN0YXR1cyhhbGxvd2VkTWFwLCBhbGxvd2VkU3RhdHVzTWFwKSwgbWFwT3BlcmF0b3IoKSk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGZpbHRlclN0YXR1cyhhbGxvd2VkVHlwZXM6IEZpbHRlck1hcCwgYWxsb3dlZFN0YXR1c2VzPzogRmlsdGVyTWFwKSB7XG4gIHJldHVybiBmaWx0ZXIoKGN0eDogQWN0aW9uQ29udGV4dCkgPT4ge1xuICAgIGNvbnN0IGFjdGlvblR5cGUgPSBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlKGN0eC5hY3Rpb24pITtcbiAgICBjb25zdCB0eXBlTWF0Y2ggPSBhbGxvd2VkVHlwZXNbYWN0aW9uVHlwZV07XG4gICAgY29uc3Qgc3RhdHVzTWF0Y2ggPSBhbGxvd2VkU3RhdHVzZXMgPyBhbGxvd2VkU3RhdHVzZXNbY3R4LnN0YXR1c10gOiB0cnVlO1xuICAgIHJldHVybiB0eXBlTWF0Y2ggJiYgc3RhdHVzTWF0Y2g7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBtYXBBY3Rpb25SZXN1bHQoKTogT3BlcmF0b3JGdW5jdGlvbjxBY3Rpb25Db250ZXh0LCBBY3Rpb25Db21wbGV0aW9uPiB7XG4gIHJldHVybiBtYXAoKHsgYWN0aW9uLCBzdGF0dXMsIGVycm9yIH06IEFjdGlvbkNvbnRleHQpID0+IHtcbiAgICByZXR1cm4gPEFjdGlvbkNvbXBsZXRpb24+e1xuICAgICAgYWN0aW9uLFxuICAgICAgcmVzdWx0OiB7XG4gICAgICAgIHN1Y2Nlc3NmdWw6IEFjdGlvblN0YXR1cy5TdWNjZXNzZnVsID09PSBzdGF0dXMsXG4gICAgICAgIGNhbmNlbGVkOiBBY3Rpb25TdGF0dXMuQ2FuY2VsZWQgPT09IHN0YXR1cyxcbiAgICAgICAgZXJyb3JcbiAgICAgIH1cbiAgICB9O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gbWFwQWN0aW9uPFQgPSBhbnk+KCk6IE9wZXJhdG9yRnVuY3Rpb248QWN0aW9uQ29udGV4dCwgVD4ge1xuICByZXR1cm4gbWFwKChjdHg6IEFjdGlvbkNvbnRleHQpID0+IDxUPmN0eC5hY3Rpb24pO1xufVxuXG5pbnRlcmZhY2UgRmlsdGVyTWFwIHtcbiAgW2tleTogc3RyaW5nXTogYm9vbGVhbjtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQWxsb3dlZEFjdGlvblR5cGVzTWFwKHR5cGVzOiBBY3Rpb25UeXBlW10pOiBGaWx0ZXJNYXAge1xuICByZXR1cm4gdHlwZXMucmVkdWNlKChmaWx0ZXJNYXA6IEZpbHRlck1hcCwga2xhc3M6IGFueSkgPT4ge1xuICAgIGZpbHRlck1hcFtnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlKGtsYXNzKSFdID0gdHJ1ZTtcbiAgICByZXR1cm4gZmlsdGVyTWFwO1xuICB9LCA8RmlsdGVyTWFwPnt9KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQWxsb3dlZFN0YXR1c2VzTWFwKHN0YXR1c2VzOiBBY3Rpb25TdGF0dXNbXSk6IEZpbHRlck1hcCB7XG4gIHJldHVybiBzdGF0dXNlcy5yZWR1Y2UoKGZpbHRlck1hcDogRmlsdGVyTWFwLCBzdGF0dXM6IEFjdGlvblN0YXR1cykgPT4ge1xuICAgIGZpbHRlck1hcFtzdGF0dXNdID0gdHJ1ZTtcbiAgICByZXR1cm4gZmlsdGVyTWFwO1xuICB9LCA8RmlsdGVyTWFwPnt9KTtcbn1cbiJdfQ==
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2YtYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL29wZXJhdG9ycy9vZi1hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFaEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQXdCN0M7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQ3RCLEdBQUcsWUFBZTtJQUtsQixPQUFPLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxHQUFHLFlBQWU7SUFLbEIsT0FBTyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsNENBQXlCLENBQUMsQ0FBQztBQUNuRSxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FDaEMsR0FBRyxZQUFlO0lBS2xCLE9BQU8sZ0JBQWdCLENBQUMsWUFBWSxFQUFFLDRDQUF5QixDQUFDLENBQUM7QUFDbkUsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLEdBQUcsWUFBZTtJQUtsQixPQUFPLGdCQUFnQixDQUFDLFlBQVksRUFBRSx3Q0FBdUIsQ0FBQyxDQUFDO0FBQ2pFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixHQUFHLFlBQWU7SUFLbEIsTUFBTSxlQUFlLEdBQUc7Ozs7S0FJdkIsQ0FBQztJQUNGLE9BQU8sZ0JBQWdCLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxlQUFlLENBQUMsQ0FBQztBQUMxRSxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQzdCLEdBQUcsWUFBZTtJQUtsQixPQUFPLGdCQUFnQixDQUFDLFlBQVksRUFBRSxzQ0FBc0IsQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUN2QixZQUEwQixFQUMxQixRQUF5QjtBQUN6Qix5RkFBeUY7QUFDekYsK0ZBQStGO0FBQy9GLDZEQUE2RDtBQUM3RCxjQUEwRCxTQUFTO0lBRW5FLE1BQU0sVUFBVSxHQUFHLDJCQUEyQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzdELE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxJQUFJLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hFLE9BQU8sVUFBVSxDQUE0QjtRQUMzQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLFlBQXVCLEVBQUUsZUFBMkI7SUFDeEUsT0FBTyxNQUFNLENBQUMsQ0FBQyxHQUFrQixFQUFFLEVBQUU7UUFDbkMsTUFBTSxVQUFVLEdBQUcseUJBQXlCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBRSxDQUFDO1FBQzFELE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzQyxNQUFNLFdBQVcsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN6RSxPQUFPLFNBQVMsSUFBSSxXQUFXLENBQUM7SUFDbEMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxlQUFlO0lBQ3RCLE9BQU8sR0FBRyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBaUIsRUFBRSxFQUFFO1FBQ3RELE9BQXlCO1lBQ3ZCLE1BQU07WUFDTixNQUFNLEVBQUU7Z0JBQ04sVUFBVSxFQUFFLCtDQUE0QixNQUFNO2dCQUM5QyxRQUFRLEVBQUUsMkNBQTBCLE1BQU07Z0JBQzFDLEtBQUs7YUFDTjtTQUNGLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFTLFNBQVM7SUFDaEIsT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFrQixFQUFFLEVBQUUsQ0FBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDcEQsQ0FBQztBQU1ELFNBQVMsMkJBQTJCLENBQUMsS0FBbUI7SUFDdEQsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUNqQixDQUFDLFNBQW9CLEVBQUUsS0FBVSxFQUFFLEVBQUU7UUFDbkMsU0FBUyxDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3BELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUMsRUFDVSxFQUFFLENBQ2QsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLHdCQUF3QixDQUFDLFFBQXdCO0lBQ3hELE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FDcEIsQ0FBQyxTQUFvQixFQUFFLE1BQW9CLEVBQUUsRUFBRTtRQUM3QyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUMsRUFDVSxFQUFFLENBQ2QsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlIH0gZnJvbSAnQG5neHMvc3RvcmUvcGx1Z2lucyc7XG5pbXBvcnQgeyBPcGVyYXRvckZ1bmN0aW9uLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQWN0aW9uVHlwZSB9IGZyb20gJy4uL2FjdGlvbnMvc3ltYm9scyc7XG5pbXBvcnQgeyBBY3Rpb25Db250ZXh0LCBBY3Rpb25TdGF0dXMgfSBmcm9tICcuLi9hY3Rpb25zLXN0cmVhbSc7XG5cbnR5cGUgVHVwbGVLZXlzPFQgZXh0ZW5kcyBhbnlbXT4gPSBFeGNsdWRlPGtleW9mIFQsIGtleW9mIFtdPjtcblxuLyoqXG4gKiBHaXZlbiBhIFBPSk8sIHJldHVybnMgdGhlIFBPSk8gdHlwZSwgZ2l2ZW4gYSBjbGFzcyBjb25zdHJ1Y3RvciBvYmplY3QsIHJldHVybnMgdGhlIHR5cGUgb2YgdGhlIGNsYXNzLlxuICpcbiAqIFRoaXMgdXRpbGl0eSB0eXBlIGV4aXN0cyBkdWUgdG8gdGhlIGNvbXBsZXhpdHkgb2YgQWN0aW9uVHlwZSBiZWluZyBlaXRoZXIgYW4gQWN0aW9uRGVmIGNsYXNzIG9yIHRoZSBwbGFpblxuICogYHsgdHlwZTogc3RyaW5nIH1gIHR5cGUgKG9yIHNpbWlsYXIgY29tcGF0aWJsZSBQT0pPIHR5cGVzKS5cbiAqL1xudHlwZSBDb25zdHJ1Y3RlZDxUPiA9IFQgZXh0ZW5kcyBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBpbmZlciBVID8gVSA6IFQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uQ29tcGxldGlvbjxUID0gYW55LCBFID0gRXJyb3I+IHtcbiAgYWN0aW9uOiBUO1xuICByZXN1bHQ6IHtcbiAgICBzdWNjZXNzZnVsOiBib29sZWFuO1xuICAgIGNhbmNlbGVkOiBib29sZWFuO1xuICAgIGVycm9yPzogRTtcbiAgfTtcbn1cblxuLyoqXG4gKiBSeEpTIG9wZXJhdG9yIGZvciBzZWxlY3Rpbmcgb3V0IHNwZWNpZmljIGFjdGlvbnMuXG4gKlxuICogVGhpcyB3aWxsIGdyYWIgYWN0aW9ucyB0aGF0IGhhdmUganVzdCBiZWVuIGRpc3BhdGNoZWQgYXMgd2VsbCBhcyBhY3Rpb25zIHRoYXQgaGF2ZSBjb21wbGV0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9mQWN0aW9uPFQgZXh0ZW5kcyBBY3Rpb25UeXBlW10+KFxuICAuLi5hbGxvd2VkVHlwZXM6IFRcbik6IE9wZXJhdG9yRnVuY3Rpb248XG4gIEFjdGlvbkNvbnRleHQ8Q29uc3RydWN0ZWQ8VFtUdXBsZUtleXM8VD5dPj4sXG4gIENvbnN0cnVjdGVkPFRbVHVwbGVLZXlzPFQ+XT5cbj4ge1xuICByZXR1cm4gb2ZBY3Rpb25PcGVyYXRvcihhbGxvd2VkVHlwZXMpO1xufVxuXG4vKipcbiAqIFJ4SlMgb3BlcmF0b3IgZm9yIHNlbGVjdGluZyBvdXQgc3BlY2lmaWMgYWN0aW9ucy5cbiAqXG4gKiBUaGlzIHdpbGwgT05MWSBncmFiIGFjdGlvbnMgdGhhdCBoYXZlIGp1c3QgYmVlbiBkaXNwYXRjaGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvZkFjdGlvbkRpc3BhdGNoZWQ8VCBleHRlbmRzIEFjdGlvblR5cGVbXT4oXG4gIC4uLmFsbG93ZWRUeXBlczogVFxuKTogT3BlcmF0b3JGdW5jdGlvbjxcbiAgQWN0aW9uQ29udGV4dDxDb25zdHJ1Y3RlZDxUW1R1cGxlS2V5czxUPl0+PixcbiAgQ29uc3RydWN0ZWQ8VFtUdXBsZUtleXM8VD5dPlxuPiB7XG4gIHJldHVybiBvZkFjdGlvbk9wZXJhdG9yKGFsbG93ZWRUeXBlcywgW0FjdGlvblN0YXR1cy5EaXNwYXRjaGVkXSk7XG59XG5cbi8qKlxuICogUnhKUyBvcGVyYXRvciBmb3Igc2VsZWN0aW5nIG91dCBzcGVjaWZpYyBhY3Rpb25zLlxuICpcbiAqIFRoaXMgd2lsbCBPTkxZIGdyYWIgYWN0aW9ucyB0aGF0IGhhdmUganVzdCBiZWVuIHN1Y2Nlc3NmdWxseSBjb21wbGV0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9mQWN0aW9uU3VjY2Vzc2Z1bDxUIGV4dGVuZHMgQWN0aW9uVHlwZVtdPihcbiAgLi4uYWxsb3dlZFR5cGVzOiBUXG4pOiBPcGVyYXRvckZ1bmN0aW9uPFxuICBBY3Rpb25Db250ZXh0PENvbnN0cnVjdGVkPFRbVHVwbGVLZXlzPFQ+XT4+LFxuICBDb25zdHJ1Y3RlZDxUW1R1cGxlS2V5czxUPl0+XG4+IHtcbiAgcmV0dXJuIG9mQWN0aW9uT3BlcmF0b3IoYWxsb3dlZFR5cGVzLCBbQWN0aW9uU3RhdHVzLlN1Y2Nlc3NmdWxdKTtcbn1cblxuLyoqXG4gKiBSeEpTIG9wZXJhdG9yIGZvciBzZWxlY3Rpbmcgb3V0IHNwZWNpZmljIGFjdGlvbnMuXG4gKlxuICogVGhpcyB3aWxsIE9OTFkgZ3JhYiBhY3Rpb25zIHRoYXQgaGF2ZSBqdXN0IGJlZW4gY2FuY2VsZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9mQWN0aW9uQ2FuY2VsZWQ8VCBleHRlbmRzIEFjdGlvblR5cGVbXT4oXG4gIC4uLmFsbG93ZWRUeXBlczogVFxuKTogT3BlcmF0b3JGdW5jdGlvbjxcbiAgQWN0aW9uQ29udGV4dDxDb25zdHJ1Y3RlZDxUW1R1cGxlS2V5czxUPl0+PixcbiAgQ29uc3RydWN0ZWQ8VFtUdXBsZUtleXM8VD5dPlxuPiB7XG4gIHJldHVybiBvZkFjdGlvbk9wZXJhdG9yKGFsbG93ZWRUeXBlcywgW0FjdGlvblN0YXR1cy5DYW5jZWxlZF0pO1xufVxuXG4vKipcbiAqIFJ4SlMgb3BlcmF0b3IgZm9yIHNlbGVjdGluZyBvdXQgc3BlY2lmaWMgYWN0aW9ucy5cbiAqXG4gKiBUaGlzIHdpbGwgT05MWSBncmFiIGFjdGlvbnMgdGhhdCBoYXZlIGp1c3QgYmVlbiBjb21wbGV0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9mQWN0aW9uQ29tcGxldGVkPFQgZXh0ZW5kcyBBY3Rpb25UeXBlW10+KFxuICAuLi5hbGxvd2VkVHlwZXM6IFRcbik6IE9wZXJhdG9yRnVuY3Rpb248XG4gIEFjdGlvbkNvbnRleHQ8Q29uc3RydWN0ZWQ8VFtUdXBsZUtleXM8VD5dPj4sXG4gIEFjdGlvbkNvbXBsZXRpb248Q29uc3RydWN0ZWQ8VFtUdXBsZUtleXM8VD5dPj5cbj4ge1xuICBjb25zdCBhbGxvd2VkU3RhdHVzZXMgPSBbXG4gICAgQWN0aW9uU3RhdHVzLlN1Y2Nlc3NmdWwsXG4gICAgQWN0aW9uU3RhdHVzLkNhbmNlbGVkLFxuICAgIEFjdGlvblN0YXR1cy5FcnJvcmVkXG4gIF07XG4gIHJldHVybiBvZkFjdGlvbk9wZXJhdG9yKGFsbG93ZWRUeXBlcywgYWxsb3dlZFN0YXR1c2VzLCBtYXBBY3Rpb25SZXN1bHQpO1xufVxuXG4vKipcbiAqIFJ4SlMgb3BlcmF0b3IgZm9yIHNlbGVjdGluZyBvdXQgc3BlY2lmaWMgYWN0aW9ucy5cbiAqXG4gKiBUaGlzIHdpbGwgT05MWSBncmFiIGFjdGlvbnMgdGhhdCBoYXZlIGp1c3QgdGhyb3duIGFuIGVycm9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvZkFjdGlvbkVycm9yZWQ8VCBleHRlbmRzIEFjdGlvblR5cGVbXT4oXG4gIC4uLmFsbG93ZWRUeXBlczogVFxuKTogT3BlcmF0b3JGdW5jdGlvbjxcbiAgQWN0aW9uQ29udGV4dDxDb25zdHJ1Y3RlZDxUW1R1cGxlS2V5czxUPl0+PixcbiAgQ29uc3RydWN0ZWQ8VFtUdXBsZUtleXM8VD5dPlxuPiB7XG4gIHJldHVybiBvZkFjdGlvbk9wZXJhdG9yKGFsbG93ZWRUeXBlcywgW0FjdGlvblN0YXR1cy5FcnJvcmVkXSk7XG59XG5cbmZ1bmN0aW9uIG9mQWN0aW9uT3BlcmF0b3IoXG4gIGFsbG93ZWRUeXBlczogQWN0aW9uVHlwZVtdLFxuICBzdGF0dXNlcz86IEFjdGlvblN0YXR1c1tdLFxuICAvLyBUaGlzIGFjdHVhbGx5IGNvdWxkJ3ZlIGJlZW4gYE9wZXJhdG9yRnVuY3Rpb248QWN0aW9uQ29udGV4dCwgQWN0aW9uQ29tcGxldGlvbiB8IGFueT5gLFxuICAvLyBzaW5jZSBpdCBtYXBzIGVpdGhlciB0byBgY3R4LmFjdGlvbmAgT1IgdG8gYEFjdGlvbkNvbXBsZXRpb25gLiBCdXQgYEFjdGlvbkNvbXBsZXRlaW9uIHwgYW55YFxuICAvLyBkZWZhdWx0cyB0byBgYW55YCwgdGh1cyB0aGVyZSBpcyBubyBzZW5zZSBmcm9tIHVuaW9uIHR5cGUuXG4gIG1hcE9wZXJhdG9yOiAoKSA9PiBPcGVyYXRvckZ1bmN0aW9uPEFjdGlvbkNvbnRleHQsIGFueT4gPSBtYXBBY3Rpb25cbik6IE9wZXJhdG9yRnVuY3Rpb248QWN0aW9uQ29udGV4dCwgYW55PiB7XG4gIGNvbnN0IGFsbG93ZWRNYXAgPSBjcmVhdGVBbGxvd2VkQWN0aW9uVHlwZXNNYXAoYWxsb3dlZFR5cGVzKTtcbiAgY29uc3QgYWxsb3dlZFN0YXR1c01hcCA9IHN0YXR1c2VzICYmIGNyZWF0ZUFsbG93ZWRTdGF0dXNlc01hcChzdGF0dXNlcyk7XG4gIHJldHVybiBmdW5jdGlvbiAobzogT2JzZXJ2YWJsZTxBY3Rpb25Db250ZXh0Pikge1xuICAgIHJldHVybiBvLnBpcGUoZmlsdGVyU3RhdHVzKGFsbG93ZWRNYXAsIGFsbG93ZWRTdGF0dXNNYXApLCBtYXBPcGVyYXRvcigpKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gZmlsdGVyU3RhdHVzKGFsbG93ZWRUeXBlczogRmlsdGVyTWFwLCBhbGxvd2VkU3RhdHVzZXM/OiBGaWx0ZXJNYXApIHtcbiAgcmV0dXJuIGZpbHRlcigoY3R4OiBBY3Rpb25Db250ZXh0KSA9PiB7XG4gICAgY29uc3QgYWN0aW9uVHlwZSA9IGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UoY3R4LmFjdGlvbikhO1xuICAgIGNvbnN0IHR5cGVNYXRjaCA9IGFsbG93ZWRUeXBlc1thY3Rpb25UeXBlXTtcbiAgICBjb25zdCBzdGF0dXNNYXRjaCA9IGFsbG93ZWRTdGF0dXNlcyA/IGFsbG93ZWRTdGF0dXNlc1tjdHguc3RhdHVzXSA6IHRydWU7XG4gICAgcmV0dXJuIHR5cGVNYXRjaCAmJiBzdGF0dXNNYXRjaDtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIG1hcEFjdGlvblJlc3VsdCgpOiBPcGVyYXRvckZ1bmN0aW9uPEFjdGlvbkNvbnRleHQsIEFjdGlvbkNvbXBsZXRpb24+IHtcbiAgcmV0dXJuIG1hcCgoeyBhY3Rpb24sIHN0YXR1cywgZXJyb3IgfTogQWN0aW9uQ29udGV4dCkgPT4ge1xuICAgIHJldHVybiA8QWN0aW9uQ29tcGxldGlvbj57XG4gICAgICBhY3Rpb24sXG4gICAgICByZXN1bHQ6IHtcbiAgICAgICAgc3VjY2Vzc2Z1bDogQWN0aW9uU3RhdHVzLlN1Y2Nlc3NmdWwgPT09IHN0YXR1cyxcbiAgICAgICAgY2FuY2VsZWQ6IEFjdGlvblN0YXR1cy5DYW5jZWxlZCA9PT0gc3RhdHVzLFxuICAgICAgICBlcnJvclxuICAgICAgfVxuICAgIH07XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBtYXBBY3Rpb248VCA9IGFueT4oKTogT3BlcmF0b3JGdW5jdGlvbjxBY3Rpb25Db250ZXh0LCBUPiB7XG4gIHJldHVybiBtYXAoKGN0eDogQWN0aW9uQ29udGV4dCkgPT4gPFQ+Y3R4LmFjdGlvbik7XG59XG5cbmludGVyZmFjZSBGaWx0ZXJNYXAge1xuICBba2V5OiBzdHJpbmddOiBib29sZWFuO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVBbGxvd2VkQWN0aW9uVHlwZXNNYXAodHlwZXM6IEFjdGlvblR5cGVbXSk6IEZpbHRlck1hcCB7XG4gIHJldHVybiB0eXBlcy5yZWR1Y2UoXG4gICAgKGZpbHRlck1hcDogRmlsdGVyTWFwLCBrbGFzczogYW55KSA9PiB7XG4gICAgICBmaWx0ZXJNYXBbZ2V0QWN0aW9uVHlwZUZyb21JbnN0YW5jZShrbGFzcykhXSA9IHRydWU7XG4gICAgICByZXR1cm4gZmlsdGVyTWFwO1xuICAgIH0sXG4gICAgPEZpbHRlck1hcD57fVxuICApO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVBbGxvd2VkU3RhdHVzZXNNYXAoc3RhdHVzZXM6IEFjdGlvblN0YXR1c1tdKTogRmlsdGVyTWFwIHtcbiAgcmV0dXJuIHN0YXR1c2VzLnJlZHVjZShcbiAgICAoZmlsdGVyTWFwOiBGaWx0ZXJNYXAsIHN0YXR1czogQWN0aW9uU3RhdHVzKSA9PiB7XG4gICAgICBmaWx0ZXJNYXBbc3RhdHVzXSA9IHRydWU7XG4gICAgICByZXR1cm4gZmlsdGVyTWFwO1xuICAgIH0sXG4gICAgPEZpbHRlck1hcD57fVxuICApO1xufVxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Inject, Injectable, Optional, SkipSelf } from '@angular/core';
|
|
2
|
-
import { NGXS_PLUGINS } from '
|
|
2
|
+
import { NGXS_PLUGINS } from '@ngxs/store/plugins';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class PluginManager {
|
|
5
5
|
constructor(_parentManager, _pluginHandlers) {
|
|
@@ -34,4 +34,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImpor
|
|
|
34
34
|
}, {
|
|
35
35
|
type: Optional
|
|
36
36
|
}] }] });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvcGx1Z2luLW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUE0QixNQUFNLHFCQUFxQixDQUFDOztBQUc3RSxNQUFNLE9BQU8sYUFBYTtJQUd4QixZQUdVLGNBQTZCLEVBRzdCLGVBQTZCO1FBSDdCLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBRzdCLG9CQUFlLEdBQWYsZUFBZSxDQUFjO1FBUmhDLFlBQU8sR0FBbUIsRUFBRSxDQUFDO1FBVWxDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFZLFdBQVc7UUFDckIsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQzlFLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsTUFBTSxjQUFjLEdBQW1CLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ2hFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsY0FBYyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixNQUFNLFFBQVEsR0FBaUIsSUFBSSxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUM7UUFDMUQsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUNqQixDQUFDLE1BQWtCLEVBQUUsRUFBRSxDQUNyQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQWlCLENBQ3hFLENBQUM7SUFDSixDQUFDO2lJQTdCVSxhQUFhLDRFQU9kLFlBQVk7cUlBUFgsYUFBYTs7MkZBQWIsYUFBYTtrQkFEekIsVUFBVTs7MEJBS04sUUFBUTs7MEJBQ1IsUUFBUTs7MEJBRVIsTUFBTTsyQkFBQyxZQUFZOzswQkFDbkIsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIFNraXBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR1hTX1BMVUdJTlMsIE5neHNQbHVnaW4sIE5neHNQbHVnaW5GbiB9IGZyb20gJ0BuZ3hzL3N0b3JlL3BsdWdpbnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGx1Z2luTWFuYWdlciB7XG4gIHB1YmxpYyBwbHVnaW5zOiBOZ3hzUGx1Z2luRm5bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpXG4gICAgQFNraXBTZWxmKClcbiAgICBwcml2YXRlIF9wYXJlbnRNYW5hZ2VyOiBQbHVnaW5NYW5hZ2VyLFxuICAgIEBJbmplY3QoTkdYU19QTFVHSU5TKVxuICAgIEBPcHRpb25hbCgpXG4gICAgcHJpdmF0ZSBfcGx1Z2luSGFuZGxlcnM6IE5neHNQbHVnaW5bXVxuICApIHtcbiAgICB0aGlzLnJlZ2lzdGVySGFuZGxlcnMoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHJvb3RQbHVnaW5zKCk6IE5neHNQbHVnaW5GbltdIHtcbiAgICByZXR1cm4gKHRoaXMuX3BhcmVudE1hbmFnZXIgJiYgdGhpcy5fcGFyZW50TWFuYWdlci5wbHVnaW5zKSB8fCB0aGlzLnBsdWdpbnM7XG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVySGFuZGxlcnMoKTogdm9pZCB7XG4gICAgY29uc3QgcGx1Z2luSGFuZGxlcnM6IE5neHNQbHVnaW5GbltdID0gdGhpcy5nZXRQbHVnaW5IYW5kbGVycygpO1xuICAgIHRoaXMucm9vdFBsdWdpbnMucHVzaCguLi5wbHVnaW5IYW5kbGVycyk7XG4gIH1cblxuICBwcml2YXRlIGdldFBsdWdpbkhhbmRsZXJzKCk6IE5neHNQbHVnaW5GbltdIHtcbiAgICBjb25zdCBoYW5kbGVyczogTmd4c1BsdWdpbltdID0gdGhpcy5fcGx1Z2luSGFuZGxlcnMgfHwgW107XG4gICAgcmV0dXJuIGhhbmRsZXJzLm1hcChcbiAgICAgIChwbHVnaW46IE5neHNQbHVnaW4pID0+XG4gICAgICAgIChwbHVnaW4uaGFuZGxlID8gcGx1Z2luLmhhbmRsZS5iaW5kKHBsdWdpbikgOiBwbHVnaW4pIGFzIE5neHNQbHVnaW5GblxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
export { NgxsModule } from './module';
|
|
2
|
-
export { NGXS_PLUGINS } from './symbols';
|
|
3
1
|
export { StateStream } from './internal/state-stream';
|
|
4
|
-
export { getActionTypeFromInstance, setValue, getValue } from '
|
|
5
|
-
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9wbHVnaW5fYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEMsT0FBTyxFQUFFLFlBQVksRUFBOEMsTUFBTSxXQUFXLENBQUM7QUFDckYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBOZ3hzTW9kdWxlIH0gZnJvbSAnLi9tb2R1bGUnO1xuZXhwb3J0IHsgTkdYU19QTFVHSU5TLCBOZ3hzUGx1Z2luLCBOZ3hzUGx1Z2luRm4sIE5neHNOZXh0UGx1Z2luRm4gfSBmcm9tICcuL3N5bWJvbHMnO1xuZXhwb3J0IHsgU3RhdGVTdHJlYW0gfSBmcm9tICcuL2ludGVybmFsL3N0YXRlLXN0cmVhbSc7XG5leHBvcnQgeyBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlLCBzZXRWYWx1ZSwgZ2V0VmFsdWUgfSBmcm9tICcuL3V0aWxzL3V0aWxzJztcbmV4cG9ydCB7IEluaXRTdGF0ZSwgVXBkYXRlU3RhdGUgfSBmcm9tICcuL2FjdGlvbnMvYWN0aW9ucyc7XG4iXX0=
|
|
2
|
+
export { InitState, UpdateState, getActionTypeFromInstance, setValue, getValue, NGXS_PLUGINS } from '@ngxs/store/plugins';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9wbHVnaW5fYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFDWCx5QkFBeUIsRUFDekIsUUFBUSxFQUNSLFFBQVEsRUFDUixZQUFZLEVBSWIsTUFBTSxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFN0YXRlU3RyZWFtIH0gZnJvbSAnLi9pbnRlcm5hbC9zdGF0ZS1zdHJlYW0nO1xuZXhwb3J0IHtcbiAgSW5pdFN0YXRlLFxuICBVcGRhdGVTdGF0ZSxcbiAgZ2V0QWN0aW9uVHlwZUZyb21JbnN0YW5jZSxcbiAgc2V0VmFsdWUsXG4gIGdldFZhbHVlLFxuICBOR1hTX1BMVUdJTlMsXG4gIE5neHNQbHVnaW4sXG4gIE5neHNQbHVnaW5GbixcbiAgTmd4c05leHRQbHVnaW5GblxufSBmcm9tICdAbmd4cy9zdG9yZS9wbHVnaW5zJztcbiJdfQ==
|
|
@@ -18,11 +18,11 @@ export { getSelectorMetadata, getStoreMetadata, ensureStoreMetadata, ensureSelec
|
|
|
18
18
|
export { ofAction, ofActionDispatched, ofActionSuccessful, ofActionCanceled, ofActionErrored, ofActionCompleted } from './operators/of-action';
|
|
19
19
|
export { NgxsSimpleChange } from './symbols';
|
|
20
20
|
export { Selector } from './decorators/selector/selector';
|
|
21
|
-
export { getActionTypeFromInstance, actionMatcher } from './utils/utils';
|
|
22
21
|
export { NoopNgxsExecutionStrategy } from './execution/noop-ngxs-execution-strategy';
|
|
23
|
-
export { StateToken } from './state-token/state-token';
|
|
24
22
|
export { NgxsDevelopmentModule } from './dev-features/ngxs-development.module';
|
|
25
23
|
export { NgxsUnhandledActionsLogger } from './dev-features/ngxs-unhandled-actions-logger';
|
|
26
24
|
export { createModelSelector, createPickSelector, createPropertySelectors, createSelector } from './selectors';
|
|
27
25
|
export * from './standalone-features';
|
|
28
|
-
|
|
26
|
+
export { StateToken } from '@ngxs/store/internals';
|
|
27
|
+
export { getActionTypeFromInstance, actionMatcher } from '@ngxs/store/plugins';
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBK0IsTUFBTSxrQkFBa0IsQ0FBQztBQUV4RSxrRkFBa0Y7QUFDbEYsMkVBQTJFO0FBQzNFLHVJQUF1STtBQUN2SSxzSUFBc0k7QUFDdEksNkhBQTZIO0FBQzdILGtDQUFrQztBQUNsQyxnSkFBZ0o7QUFDaEosMEpBQTBKO0FBQzFKLGlDQUFpQztBQUNqQyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsc0JBQXNCLEVBQ3ZCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUNMLFFBQVEsRUFDUixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsaUJBQWlCLEVBRWxCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQU9MLGdCQUFnQixFQUNqQixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHMUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFHckYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFMUYsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsdUJBQXVCLEVBQ3ZCLGNBQWMsRUFHZixNQUFNLGFBQWEsQ0FBQztBQUVyQixjQUFjLHVCQUF1QixDQUFDO0FBRXRDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUduRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBOZ3hzTW9kdWxlIH0gZnJvbSAnLi9tb2R1bGUnO1xuZXhwb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi9kZWNvcmF0b3JzL2FjdGlvbic7XG5leHBvcnQgeyBTdG9yZSB9IGZyb20gJy4vc3RvcmUnO1xuZXhwb3J0IHsgU3RhdGUgfSBmcm9tICcuL2RlY29yYXRvcnMvc3RhdGUnO1xuZXhwb3J0IHsgU2VsZWN0IH0gZnJvbSAnLi9kZWNvcmF0b3JzL3NlbGVjdC9zZWxlY3QnO1xuZXhwb3J0IHsgU2VsZWN0b3JPcHRpb25zIH0gZnJvbSAnLi9kZWNvcmF0b3JzL3NlbGVjdG9yLW9wdGlvbnMnO1xuZXhwb3J0IHsgQWN0aW9ucywgQWN0aW9uQ29udGV4dCwgQWN0aW9uU3RhdHVzIH0gZnJvbSAnLi9hY3Rpb25zLXN0cmVhbSc7XG5cbi8vIFRPRE86IHY0IC0gV2UgbmVlZCB0byBjb21lIHVwIHdpdGggYW4gYWx0ZXJuYXRpdmUgYXBpIHRvIGV4cG9zaW5nIHRoaXMgbWV0YWRhdGFcbi8vICAgYmVjYXVzZSBpdCBpcyBjdXJyZW50bHkgdXNlZCBieSB0aGUgZm9sbG93aW5nIChhZnRlciBhIGdpdGh1YiBzZWFyY2gpOlxuLy8gLSBodHRwczovL2dpdGh1Yi5jb20vbmd4cy1sYWJzL2VtaXR0ZXIvYmxvYi84MWQyMWQxMzU0MDBkN2UzNzY1ZmM1NzllMDlhZWEyOWIxYjkyYmY3L2VtaXR0ZXIvc3JjL2xpYi9jb3JlL2RlY29yYXRvcnMvcmVjZWl2ZXIudHMjTDkxXG4vLyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3hzLWxhYnMvZGF0YS9ibG9iLzczYTMyMDA1OWYyMTkyNGViOTc1YTg2YWRhZTUxNjlhNDA0MDcxZmQvc3JjL2xpYi9kZWNvcmF0b3JzL3BlcnNpc3RlbmNlL3BlcnNpc3RlbmNlLnRzI0wxM1xuLy8gLSBodHRwczovL2dpdGh1Yi5jb20vbmctdHVya2V5L25neHMtcmVzZXQtcGx1Z2luL2Jsb2IvMGYyMmYyMmUyNzdjN2RlNWIzNDBkMTkxN2FhZTMwM2QwMTAyMGNlZS9zcmMvbGliL3Jlc2V0LnBsdWdpbi50cyNMMTlcbi8vIHRzbGludDpkaXNhYmxlOiBtYXgtbGluZS1sZW5ndGhcbi8vIC0gaHR0cHM6Ly9naXRodWIuY29tL25neHMtbGFicy9maXJlYmFzZS1wbHVnaW4vYmxvYi83MjUxZDg3N2FlYWRlZmVhOGMzYzg5MWI3YjU1ZTc2NTNhOWYyODljL3NyYy9saWIvZGVjb3JhdG9ycy9uZ3hzLWZpcmVzdG9yZS1jb25uZWN0LnRzI0wyM1xuLy8gLSBodHRwczovL2dpdGh1Yi5jb20vc3RlZmFuLXNjaHViZXJ0L25neHMtZXh0ZW5zaW9ucy9ibG9iLzkyMmVlMmY4N2ViYTE3ODIzYjVlZmFiMTQyYjY1NmIwZDI5ZjgyN2Qvc3JjL2xpYi9jb3JlL2RlY29yYXRvcnMvcmVzZXQtc3RhdGUuZGVjb3JhdG9yLnRzI0wxOFxuLy8gdHNsaW50OmVuYWJsZTogbWF4LWxpbmUtbGVuZ3RoXG5leHBvcnQge1xuICBnZXRTZWxlY3Rvck1ldGFkYXRhLFxuICBnZXRTdG9yZU1ldGFkYXRhLFxuICBlbnN1cmVTdG9yZU1ldGFkYXRhLFxuICBlbnN1cmVTZWxlY3Rvck1ldGFkYXRhXG59IGZyb20gJy4vcHVibGljX3RvX2RlcHJlY2F0ZSc7XG5leHBvcnQge1xuICBvZkFjdGlvbixcbiAgb2ZBY3Rpb25EaXNwYXRjaGVkLFxuICBvZkFjdGlvblN1Y2Nlc3NmdWwsXG4gIG9mQWN0aW9uQ2FuY2VsZWQsXG4gIG9mQWN0aW9uRXJyb3JlZCxcbiAgb2ZBY3Rpb25Db21wbGV0ZWQsXG4gIEFjdGlvbkNvbXBsZXRpb25cbn0gZnJvbSAnLi9vcGVyYXRvcnMvb2YtYWN0aW9uJztcbmV4cG9ydCB7XG4gIFN0YXRlQ29udGV4dCxcbiAgU3RhdGVPcGVyYXRvcixcbiAgTmd4c09uSW5pdCxcbiAgTmd4c0FmdGVyQm9vdHN0cmFwLFxuICBOZ3hzT25DaGFuZ2VzLFxuICBOZ3hzTW9kdWxlT3B0aW9ucyxcbiAgTmd4c1NpbXBsZUNoYW5nZVxufSBmcm9tICcuL3N5bWJvbHMnO1xuZXhwb3J0IHsgU2VsZWN0b3IgfSBmcm9tICcuL2RlY29yYXRvcnMvc2VsZWN0b3Ivc2VsZWN0b3InO1xuZXhwb3J0IHsgTmd4c0V4ZWN1dGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9leGVjdXRpb24vc3ltYm9scyc7XG5leHBvcnQgeyBBY3Rpb25UeXBlIH0gZnJvbSAnLi9hY3Rpb25zL3N5bWJvbHMnO1xuZXhwb3J0IHsgTm9vcE5neHNFeGVjdXRpb25TdHJhdGVneSB9IGZyb20gJy4vZXhlY3V0aW9uL25vb3Atbmd4cy1leGVjdXRpb24tc3RyYXRlZ3knO1xuXG5leHBvcnQgeyBOZ3hzRGV2ZWxvcG1lbnRPcHRpb25zIH0gZnJvbSAnLi9kZXYtZmVhdHVyZXMvc3ltYm9scyc7XG5leHBvcnQgeyBOZ3hzRGV2ZWxvcG1lbnRNb2R1bGUgfSBmcm9tICcuL2Rldi1mZWF0dXJlcy9uZ3hzLWRldmVsb3BtZW50Lm1vZHVsZSc7XG5leHBvcnQgeyBOZ3hzVW5oYW5kbGVkQWN0aW9uc0xvZ2dlciB9IGZyb20gJy4vZGV2LWZlYXR1cmVzL25neHMtdW5oYW5kbGVkLWFjdGlvbnMtbG9nZ2VyJztcblxuZXhwb3J0IHtcbiAgY3JlYXRlTW9kZWxTZWxlY3RvcixcbiAgY3JlYXRlUGlja1NlbGVjdG9yLFxuICBjcmVhdGVQcm9wZXJ0eVNlbGVjdG9ycyxcbiAgY3JlYXRlU2VsZWN0b3IsXG4gIFByb3BlcnR5U2VsZWN0b3JzLFxuICBUeXBlZFNlbGVjdG9yXG59IGZyb20gJy4vc2VsZWN0b3JzJztcblxuZXhwb3J0ICogZnJvbSAnLi9zdGFuZGFsb25lLWZlYXR1cmVzJztcblxuZXhwb3J0IHsgU3RhdGVUb2tlbiB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5leHBvcnQgeyDJtUFjdGlvbk9wdGlvbnMgYXMgQWN0aW9uT3B0aW9ucyB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5cbmV4cG9ydCB7IGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UsIGFjdGlvbk1hdGNoZXIgfSBmcm9tICdAbmd4cy9zdG9yZS9wbHVnaW5zJztcbiJdfQ==
|
|
@@ -1,14 +1,26 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ɵgetSelectorMetadata, ɵgetStoreMetadata, ɵensureStoreMetadata, ɵensureSelectorMetadata } from '@ngxs/store/internals';
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated will be removed after v4
|
|
4
|
+
*/
|
|
2
5
|
export function ensureStoreMetadata(target) {
|
|
3
|
-
return
|
|
6
|
+
return ɵensureStoreMetadata(target);
|
|
4
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated will be removed after v4
|
|
10
|
+
*/
|
|
5
11
|
export function getStoreMetadata(target) {
|
|
6
|
-
return
|
|
12
|
+
return ɵgetStoreMetadata(target);
|
|
7
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* @deprecated will be removed after v4
|
|
16
|
+
*/
|
|
8
17
|
export function ensureSelectorMetadata(target) {
|
|
9
|
-
return
|
|
18
|
+
return ɵensureSelectorMetadata(target);
|
|
10
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* @deprecated will be removed after v4
|
|
22
|
+
*/
|
|
11
23
|
export function getSelectorMetadata(target) {
|
|
12
|
-
return
|
|
24
|
+
return ɵgetSelectorMetadata(target);
|
|
13
25
|
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX3RvX2RlcHJlY2F0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9wdWJsaWNfdG9fZGVwcmVjYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFPTCxvQkFBb0IsRUFDcEIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUNwQix1QkFBdUIsRUFDeEIsTUFBTSx1QkFBdUIsQ0FBQztBQW1CL0I7O0dBRUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsTUFBcUM7SUFDdkUsT0FBTyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsTUFBcUM7SUFDcEUsT0FBTyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNuQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsTUFBZ0I7SUFDckQsT0FBTyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsTUFBVztJQUM3QyxPQUFPLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3RDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICDJtUFjdGlvbkhhbmRsZXJNZXRhRGF0YSxcbiAgybVNZXRhRGF0YU1vZGVsLFxuICDJtVBsYWluT2JqZWN0T2YsXG4gIMm1U2VsZWN0b3JNZXRhRGF0YU1vZGVsLFxuICDJtVN0YXRlQ2xhc3NJbnRlcm5hbCxcbiAgybVTaGFyZWRTZWxlY3Rvck9wdGlvbnMsXG4gIMm1Z2V0U2VsZWN0b3JNZXRhZGF0YSxcbiAgybVnZXRTdG9yZU1ldGFkYXRhLFxuICDJtWVuc3VyZVN0b3JlTWV0YWRhdGEsXG4gIMm1ZW5zdXJlU2VsZWN0b3JNZXRhZGF0YVxufSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIHdpbGwgYmUgcmVtb3ZlZCBhZnRlciB2NFxuICovXG5leHBvcnQgdHlwZSBTdGF0ZUNsYXNzSW50ZXJuYWwgPSDJtVN0YXRlQ2xhc3NJbnRlcm5hbDtcbi8qKlxuICogQGRlcHJlY2F0ZWQgd2lsbCBiZSByZW1vdmVkIGFmdGVyIHY0XG4gKi9cbmV4cG9ydCB0eXBlIFBsYWluT2JqZWN0T2Y8VD4gPSDJtVBsYWluT2JqZWN0T2Y8VD47XG4vKipcbiAqIEBkZXByZWNhdGVkIHdpbGwgYmUgcmVtb3ZlZCBhZnRlciB2NFxuICovXG5leHBvcnQgdHlwZSBBY3Rpb25IYW5kbGVyTWV0YURhdGEgPSDJtUFjdGlvbkhhbmRsZXJNZXRhRGF0YTtcbi8qKlxuICogQGRlcHJlY2F0ZWQgd2lsbCBiZSByZW1vdmVkIGFmdGVyIHY0XG4gKi9cbmV4cG9ydCB0eXBlIFNoYXJlZFNlbGVjdG9yT3B0aW9ucyA9IMm1U2hhcmVkU2VsZWN0b3JPcHRpb25zO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIHdpbGwgYmUgcmVtb3ZlZCBhZnRlciB2NFxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlU3RvcmVNZXRhZGF0YSh0YXJnZXQ6IMm1U3RhdGVDbGFzc0ludGVybmFsPGFueSwgYW55Pik6IMm1TWV0YURhdGFNb2RlbCB7XG4gIHJldHVybiDJtWVuc3VyZVN0b3JlTWV0YWRhdGEodGFyZ2V0KTtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCB3aWxsIGJlIHJlbW92ZWQgYWZ0ZXIgdjRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0b3JlTWV0YWRhdGEodGFyZ2V0OiDJtVN0YXRlQ2xhc3NJbnRlcm5hbDxhbnksIGFueT4pOiDJtU1ldGFEYXRhTW9kZWwge1xuICByZXR1cm4gybVnZXRTdG9yZU1ldGFkYXRhKHRhcmdldCk7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgd2lsbCBiZSByZW1vdmVkIGFmdGVyIHY0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVTZWxlY3Rvck1ldGFkYXRhKHRhcmdldDogRnVuY3Rpb24pOiDJtVNlbGVjdG9yTWV0YURhdGFNb2RlbCB7XG4gIHJldHVybiDJtWVuc3VyZVNlbGVjdG9yTWV0YWRhdGEodGFyZ2V0KTtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCB3aWxsIGJlIHJlbW92ZWQgYWZ0ZXIgdjRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNlbGVjdG9yTWV0YWRhdGEodGFyZ2V0OiBhbnkpOiDJtVNlbGVjdG9yTWV0YURhdGFNb2RlbCB7XG4gIHJldHVybiDJtWdldFNlbGVjdG9yTWV0YWRhdGEodGFyZ2V0KTtcbn1cbiJdfQ==
|
|
@@ -13,4 +13,4 @@ export function createPickSelector(selector, keys) {
|
|
|
13
13
|
}, {});
|
|
14
14
|
});
|
|
15
15
|
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXBpY2stc2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvc2VsZWN0b3JzL2NyZWF0ZS1waWNrLXNlbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU83RCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLFFBQStCLEVBQy9CLElBQWU7SUFFZixJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLEVBQUU7UUFDakQsbUJBQW1CLENBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLHNCQUFzQixFQUFFLENBQUMsQ0FBQztLQUNuRTtJQUNELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkMsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFGLE9BQU8sY0FBYyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBaUMsRUFBRSxFQUFFO1FBQzdFLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FDckIsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ2xCLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQ0QsRUFBZ0MsQ0FDakMsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSAnLi9jcmVhdGUtc2VsZWN0b3InO1xuaW1wb3J0IHsgZW5zdXJlVmFsaWRTZWxlY3RvciB9IGZyb20gJy4vc2VsZWN0b3ItY2hlY2tzLnV0aWwnO1xuaW1wb3J0IHsgVHlwZWRTZWxlY3RvciB9IGZyb20gJy4vc2VsZWN0b3ItdHlwZXMudXRpbCc7XG5cbnR5cGUgS2V5c1RvVmFsdWVzPFQsIEtleXMgZXh0ZW5kcyAoa2V5b2YgVClbXT4gPSB7XG4gIFtJbmRleCBpbiBrZXlvZiBLZXlzXTogS2V5c1tJbmRleF0gZXh0ZW5kcyBrZXlvZiBUID8gVFtLZXlzW0luZGV4XV0gOiBuZXZlcjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQaWNrU2VsZWN0b3I8VE1vZGVsLCBLZXlzIGV4dGVuZHMgKGtleW9mIFRNb2RlbClbXT4oXG4gIHNlbGVjdG9yOiBUeXBlZFNlbGVjdG9yPFRNb2RlbD4sXG4gIGtleXM6IFsuLi5LZXlzXVxuKSB7XG4gIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICBlbnN1cmVWYWxpZFNlbGVjdG9yKHNlbGVjdG9yLCB7IHByZWZpeDogJ1tjcmVhdGVQaWNrU2VsZWN0b3JdJyB9KTtcbiAgfVxuICBjb25zdCB2YWxpZEtleXMgPSBrZXlzLmZpbHRlcihCb29sZWFuKTtcbiAgY29uc3Qgc2VsZWN0b3JzID0gdmFsaWRLZXlzLm1hcChrZXkgPT4gY3JlYXRlU2VsZWN0b3IoW3NlbGVjdG9yXSwgKHM6IFRNb2RlbCkgPT4gc1trZXldKSk7XG4gIHJldHVybiBjcmVhdGVTZWxlY3RvcihbLi4uc2VsZWN0b3JzXSwgKC4uLnByb3BzOiBLZXlzVG9WYWx1ZXM8VE1vZGVsLCBLZXlzPikgPT4ge1xuICAgIHJldHVybiB2YWxpZEtleXMucmVkdWNlKFxuICAgICAgKGFjYywga2V5LCBpbmRleCkgPT4ge1xuICAgICAgICBhY2Nba2V5XSA9IHByb3BzW2luZGV4XTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sXG4gICAgICB7fSBhcyBQaWNrPFRNb2RlbCwgS2V5c1tudW1iZXJdPlxuICAgICk7XG4gIH0pO1xufVxuIl19
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ɵgetSelectorMetadata, ɵgetStoreMetadata } from '@ngxs/store/internals';
|
|
2
2
|
export function ensureValidSelector(selector, context = {}) {
|
|
3
3
|
const noun = context.noun || 'selector';
|
|
4
4
|
const prefix = context.prefix ? context.prefix + ': ' : '';
|
|
5
5
|
ensureValueProvided(selector, { noun, prefix: context.prefix });
|
|
6
|
-
const metadata =
|
|
6
|
+
const metadata = ɵgetSelectorMetadata(selector) || ɵgetStoreMetadata(selector);
|
|
7
7
|
if (!metadata) {
|
|
8
8
|
throw new Error(`${prefix}The value provided as the ${noun} is not a valid selector.`);
|
|
9
9
|
}
|
|
@@ -15,4 +15,4 @@ export function ensureValueProvided(value, context = {}) {
|
|
|
15
15
|
throw new Error(`${prefix}A ${noun} must be provided.`);
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3ItY2hlY2tzLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvc2VsZWN0b3JzL3NlbGVjdG9yLWNoZWNrcy51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSWhGLE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsUUFBMEIsRUFDMUIsVUFBOEMsRUFBRTtJQUVoRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLFVBQVUsQ0FBQztJQUN4QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzNELG1CQUFtQixDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDaEUsTUFBTSxRQUFRLEdBQUcsb0JBQW9CLENBQUMsUUFBUSxDQUFDLElBQUksaUJBQWlCLENBQUMsUUFBZSxDQUFDLENBQUM7SUFDdEYsSUFBSSxDQUFDLFFBQVEsRUFBRTtRQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxNQUFNLDZCQUE2QixJQUFJLDJCQUEyQixDQUFDLENBQUM7S0FDeEY7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxLQUFVLEVBQ1YsVUFBOEMsRUFBRTtJQUVoRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQztJQUNyQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzNELElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsTUFBTSxLQUFLLElBQUksb0JBQW9CLENBQUMsQ0FBQztLQUN6RDtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyDJtWdldFNlbGVjdG9yTWV0YWRhdGEsIMm1Z2V0U3RvcmVNZXRhZGF0YSB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5cbmltcG9ydCB7IFNlbGVjdG9yRGVmIH0gZnJvbSAnLi9zZWxlY3Rvci10eXBlcy51dGlsJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZVZhbGlkU2VsZWN0b3IoXG4gIHNlbGVjdG9yOiBTZWxlY3RvckRlZjxhbnk+LFxuICBjb250ZXh0OiB7IHByZWZpeD86IHN0cmluZzsgbm91bj86IHN0cmluZyB9ID0ge31cbikge1xuICBjb25zdCBub3VuID0gY29udGV4dC5ub3VuIHx8ICdzZWxlY3Rvcic7XG4gIGNvbnN0IHByZWZpeCA9IGNvbnRleHQucHJlZml4ID8gY29udGV4dC5wcmVmaXggKyAnOiAnIDogJyc7XG4gIGVuc3VyZVZhbHVlUHJvdmlkZWQoc2VsZWN0b3IsIHsgbm91biwgcHJlZml4OiBjb250ZXh0LnByZWZpeCB9KTtcbiAgY29uc3QgbWV0YWRhdGEgPSDJtWdldFNlbGVjdG9yTWV0YWRhdGEoc2VsZWN0b3IpIHx8IMm1Z2V0U3RvcmVNZXRhZGF0YShzZWxlY3RvciBhcyBhbnkpO1xuICBpZiAoIW1ldGFkYXRhKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGAke3ByZWZpeH1UaGUgdmFsdWUgcHJvdmlkZWQgYXMgdGhlICR7bm91bn0gaXMgbm90IGEgdmFsaWQgc2VsZWN0b3IuYCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZVZhbHVlUHJvdmlkZWQoXG4gIHZhbHVlOiBhbnksXG4gIGNvbnRleHQ6IHsgcHJlZml4Pzogc3RyaW5nOyBub3VuPzogc3RyaW5nIH0gPSB7fVxuKSB7XG4gIGNvbnN0IG5vdW4gPSBjb250ZXh0Lm5vdW4gfHwgJ3ZhbHVlJztcbiAgY29uc3QgcHJlZml4ID0gY29udGV4dC5wcmVmaXggPyBjb250ZXh0LnByZWZpeCArICc6ICcgOiAnJztcbiAgaWYgKCF2YWx1ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgJHtwcmVmaXh9QSAke25vdW59IG11c3QgYmUgcHJvdmlkZWQuYCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ɵensureSelectorMetadata } from '@ngxs/store/internals';
|
|
2
2
|
const SELECTOR_OPTIONS_META_KEY = 'NGXS_SELECTOR_OPTIONS_META';
|
|
3
3
|
export const selectorOptionsMetaAccessor = {
|
|
4
4
|
getOptions: (target) => {
|
|
@@ -11,7 +11,7 @@ export const selectorOptionsMetaAccessor = {
|
|
|
11
11
|
}
|
|
12
12
|
};
|
|
13
13
|
export function setupSelectorMetadata(originalFn, creationMetadata) {
|
|
14
|
-
const selectorMetaData =
|
|
14
|
+
const selectorMetaData = ɵensureSelectorMetadata(originalFn);
|
|
15
15
|
selectorMetaData.originalFn = originalFn;
|
|
16
16
|
let getExplicitSelectorOptions = () => ({});
|
|
17
17
|
if (creationMetadata) {
|
|
@@ -32,4 +32,4 @@ function getLocalSelectorOptions(selectorMetaData, explicitOptions) {
|
|
|
32
32
|
...explicitOptions
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3ItbWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvc2VsZWN0b3JzL3NlbGVjdG9yLW1ldGFkYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCx1QkFBdUIsRUFDeEIsTUFBTSx1QkFBdUIsQ0FBQztBQUkvQixNQUFNLHlCQUF5QixHQUFHLDRCQUE0QixDQUFDO0FBRS9ELE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHO0lBQ3pDLFVBQVUsRUFBRSxDQUFDLE1BQVcsRUFBMEIsRUFBRTtRQUNsRCxPQUFPLENBQUMsTUFBTSxJQUFVLE1BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BFLENBQUM7SUFDRCxhQUFhLEVBQUUsQ0FBQyxNQUFXLEVBQUUsT0FBK0IsRUFBRSxFQUFFO1FBQzlELElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTztRQUNkLE1BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLE9BQU8sQ0FBQztJQUNyRCxDQUFDO0NBQ0YsQ0FBQztBQUVGLE1BQU0sVUFBVSxxQkFBcUIsQ0FDbkMsVUFBYSxFQUNiLGdCQUF1RDtJQUV2RCxNQUFNLGdCQUFnQixHQUFHLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdELGdCQUFnQixDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDekMsSUFBSSwwQkFBMEIsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLElBQUksZ0JBQWdCLEVBQUU7UUFDcEIsZ0JBQWdCLENBQUMsY0FBYyxHQUFHLGdCQUFnQixDQUFDLGNBQWMsQ0FBQztRQUNsRSxnQkFBZ0IsQ0FBQyxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQztRQUN0RSwwQkFBMEI7WUFDeEIsZ0JBQWdCLENBQUMsa0JBQWtCLElBQUksMEJBQTBCLENBQUM7S0FDckU7SUFDRCxNQUFNLHFCQUFxQixHQUFHLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3RELGdCQUFnQixDQUFDLGtCQUFrQixHQUFHLEdBQUcsRUFBRSxDQUN6Qyx1QkFBdUIsQ0FBQyxxQkFBcUIsRUFBRSwwQkFBMEIsRUFBRSxDQUFDLENBQUM7SUFDL0UsT0FBTyxnQkFBZ0IsQ0FBQztBQUMxQixDQUFDO0FBRUQsU0FBUyx1QkFBdUIsQ0FDOUIsZ0JBQXdDLEVBQ3hDLGVBQXVDO0lBRXZDLE9BQU87UUFDTCxHQUFHLENBQUMsMkJBQTJCLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsRixHQUFHLENBQUMsMkJBQTJCLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM5RSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDaEQsR0FBRyxlQUFlO0tBQ25CLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgybVTZWxlY3Rvck1ldGFEYXRhTW9kZWwsXG4gIMm1U2hhcmVkU2VsZWN0b3JPcHRpb25zLFxuICDJtWVuc3VyZVNlbGVjdG9yTWV0YWRhdGFcbn0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcblxuaW1wb3J0IHsgQ3JlYXRpb25NZXRhZGF0YSB9IGZyb20gJy4vc2VsZWN0b3ItbW9kZWxzJztcblxuY29uc3QgU0VMRUNUT1JfT1BUSU9OU19NRVRBX0tFWSA9ICdOR1hTX1NFTEVDVE9SX09QVElPTlNfTUVUQSc7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3Rvck9wdGlvbnNNZXRhQWNjZXNzb3IgPSB7XG4gIGdldE9wdGlvbnM6ICh0YXJnZXQ6IGFueSk6IMm1U2hhcmVkU2VsZWN0b3JPcHRpb25zID0+IHtcbiAgICByZXR1cm4gKHRhcmdldCAmJiAoPGFueT50YXJnZXQpW1NFTEVDVE9SX09QVElPTlNfTUVUQV9LRVldKSB8fCB7fTtcbiAgfSxcbiAgZGVmaW5lT3B0aW9uczogKHRhcmdldDogYW55LCBvcHRpb25zOiDJtVNoYXJlZFNlbGVjdG9yT3B0aW9ucykgPT4ge1xuICAgIGlmICghdGFyZ2V0KSByZXR1cm47XG4gICAgKDxhbnk+dGFyZ2V0KVtTRUxFQ1RPUl9PUFRJT05TX01FVEFfS0VZXSA9IG9wdGlvbnM7XG4gIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cFNlbGVjdG9yTWV0YWRhdGE8VCBleHRlbmRzICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PihcbiAgb3JpZ2luYWxGbjogVCxcbiAgY3JlYXRpb25NZXRhZGF0YTogUGFydGlhbDxDcmVhdGlvbk1ldGFkYXRhPiB8IHVuZGVmaW5lZFxuKSB7XG4gIGNvbnN0IHNlbGVjdG9yTWV0YURhdGEgPSDJtWVuc3VyZVNlbGVjdG9yTWV0YWRhdGEob3JpZ2luYWxGbik7XG4gIHNlbGVjdG9yTWV0YURhdGEub3JpZ2luYWxGbiA9IG9yaWdpbmFsRm47XG4gIGxldCBnZXRFeHBsaWNpdFNlbGVjdG9yT3B0aW9ucyA9ICgpID0+ICh7fSk7XG4gIGlmIChjcmVhdGlvbk1ldGFkYXRhKSB7XG4gICAgc2VsZWN0b3JNZXRhRGF0YS5jb250YWluZXJDbGFzcyA9IGNyZWF0aW9uTWV0YWRhdGEuY29udGFpbmVyQ2xhc3M7XG4gICAgc2VsZWN0b3JNZXRhRGF0YS5zZWxlY3Rvck5hbWUgPSBjcmVhdGlvbk1ldGFkYXRhLnNlbGVjdG9yTmFtZSB8fCBudWxsO1xuICAgIGdldEV4cGxpY2l0U2VsZWN0b3JPcHRpb25zID1cbiAgICAgIGNyZWF0aW9uTWV0YWRhdGEuZ2V0U2VsZWN0b3JPcHRpb25zIHx8IGdldEV4cGxpY2l0U2VsZWN0b3JPcHRpb25zO1xuICB9XG4gIGNvbnN0IHNlbGVjdG9yTWV0YURhdGFDbG9uZSA9IHsgLi4uc2VsZWN0b3JNZXRhRGF0YSB9O1xuICBzZWxlY3Rvck1ldGFEYXRhLmdldFNlbGVjdG9yT3B0aW9ucyA9ICgpID0+XG4gICAgZ2V0TG9jYWxTZWxlY3Rvck9wdGlvbnMoc2VsZWN0b3JNZXRhRGF0YUNsb25lLCBnZXRFeHBsaWNpdFNlbGVjdG9yT3B0aW9ucygpKTtcbiAgcmV0dXJuIHNlbGVjdG9yTWV0YURhdGE7XG59XG5cbmZ1bmN0aW9uIGdldExvY2FsU2VsZWN0b3JPcHRpb25zKFxuICBzZWxlY3Rvck1ldGFEYXRhOiDJtVNlbGVjdG9yTWV0YURhdGFNb2RlbCxcbiAgZXhwbGljaXRPcHRpb25zOiDJtVNoYXJlZFNlbGVjdG9yT3B0aW9uc1xuKTogybVTaGFyZWRTZWxlY3Rvck9wdGlvbnMge1xuICByZXR1cm4ge1xuICAgIC4uLihzZWxlY3Rvck9wdGlvbnNNZXRhQWNjZXNzb3IuZ2V0T3B0aW9ucyhzZWxlY3Rvck1ldGFEYXRhLmNvbnRhaW5lckNsYXNzKSB8fCB7fSksXG4gICAgLi4uKHNlbGVjdG9yT3B0aW9uc01ldGFBY2Nlc3Nvci5nZXRPcHRpb25zKHNlbGVjdG9yTWV0YURhdGEub3JpZ2luYWxGbikgfHwge30pLFxuICAgIC4uLihzZWxlY3Rvck1ldGFEYXRhLmdldFNlbGVjdG9yT3B0aW9ucygpIHx8IHt9KSxcbiAgICAuLi5leHBsaWNpdE9wdGlvbnNcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3ItbW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL3NlbGVjdG9ycy9zZWxlY3Rvci1tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IMm1U2hhcmVkU2VsZWN0b3JPcHRpb25zLCDJtVNlbGVjdEZyb21Sb290U3RhdGUgfSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0aW9uTWV0YWRhdGEge1xuICBjb250YWluZXJDbGFzczogYW55O1xuICBzZWxlY3Rvck5hbWU6IHN0cmluZztcbiAgZ2V0U2VsZWN0b3JPcHRpb25zPzogKCkgPT4gybVTaGFyZWRTZWxlY3Rvck9wdGlvbnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVudGltZVNlbGVjdG9ySW5mbyB7XG4gIHNlbGVjdG9yT3B0aW9uczogybVTaGFyZWRTZWxlY3Rvck9wdGlvbnM7XG4gIGFyZ3VtZW50U2VsZWN0b3JGdW5jdGlvbnM6IMm1U2VsZWN0RnJvbVJvb3RTdGF0ZVtdO1xufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3ItdHlwZXMudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9zZWxlY3RvcnMvc2VsZWN0b3ItdHlwZXMudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgybVTdGF0ZUNsYXNzLCBTdGF0ZVRva2VuIH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcblxuZXhwb3J0IHR5cGUgU2VsZWN0b3JGdW5jPFRNb2RlbD4gPSAoLi4uYXJnOiBhbnlbXSkgPT4gVE1vZGVsO1xuXG5leHBvcnQgdHlwZSBUeXBlZFNlbGVjdG9yPFRNb2RlbD4gPSBTdGF0ZVRva2VuPFRNb2RlbD4gfCBTZWxlY3RvckZ1bmM8VE1vZGVsPjtcblxuZXhwb3J0IHR5cGUgU3RhdGVTZWxlY3RvciA9IMm1U3RhdGVDbGFzczxhbnk+O1xuXG5leHBvcnQgdHlwZSBTZWxlY3RvckRlZjxUTW9kZWw+ID0gU3RhdGVTZWxlY3RvciB8IFR5cGVkU2VsZWN0b3I8VE1vZGVsPjtcblxuZXhwb3J0IHR5cGUgU2VsZWN0b3JSZXR1cm5UeXBlPFQgZXh0ZW5kcyBTZWxlY3RvckRlZjxhbnk+PiA9XG4gIFQgZXh0ZW5kcyBTdGF0ZVRva2VuPGluZmVyIFIxPlxuICAgID8gUjFcbiAgICA6IFQgZXh0ZW5kcyBTZWxlY3RvckZ1bmM8aW5mZXIgUjI+XG4gICAgICA/IFIyXG4gICAgICA6IFQgZXh0ZW5kcyDJtVN0YXRlQ2xhc3M8YW55PlxuICAgICAgICA/IGFueSAvKiAoQmxvY2sgY29tbWVudCB0byBzdG9wIHByZXR0aWVyIGJyZWFraW5nIHRoZSBjb21tZW50IGJlbG93KVxuICAvLyBJZiB0aGUgc3RhdGUgc2VsZWN0b3IgaXMgYSBjbGFzcyB0aGVuIHdlIHNob3VsZCBpbmZlciBpdHMgcmV0dXJuIHR5cGUgdG8gYGFueWAsIGFuZCBub3QgdG8gYHVua25vd25gLlxuICAvLyBTaW5jZSB3ZSdsbCBnZXQgYW4gZXJyb3IgdGhhdCBgVHlwZSAndW5rbm93bicgaXMgbm90IGFzc2lnbmFibGUgdG8gdHlwZSAnQXV0aFN0YXRlTW9kZWwnLmBcbiAgLy8gVGhlIGB1bmtub3duYCB0eXBlIGlzIG5vdCBvdmVycmlkYWJsZSB3aGVuIHRoZSBzdHJpY3QgbW9kZSBpcyBlbmFibGVkOlxuICAvLyBmdW5jdGlvbiBkb1NvbWV0aGluZ1dpdGhBcnJheShhcnJheTogbnVtYmVyW10sIGZhY3Rvcnk6ICh4OiB1bmtub3duKSA9PiB2b2lkKSB7XG4gIC8vICAgYXJyYXkuZm9yRWFjaChmYWN0b3J5KTtcbiAgLy8gfVxuICAvLyBkb1NvbWV0aGluZ1dpdGhBcnJheShbMSwgMl0sICh4OiBudW1iZXIpID0+IGNvbnNvbGUubG9nKHgpKTtcbiAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flxuICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFR5cGUgJ3Vua25vd24nIGlzIG5vdCBhc3NpZ25hYmxlIHRvIHR5cGUgJ251bWJlcicuXG4gICovXG4gICAgICAgIDogbmV2ZXI7XG4iXX0=
|