@ngxs/store 3.7.4-dev.master-38cbcac → 3.7.4-dev.master-80a3014
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/bundles/ngxs-store-internals.umd.js +0 -241
- package/bundles/ngxs-store-internals.umd.js.map +1 -1
- package/bundles/ngxs-store-internals.umd.min.js +1 -1
- package/bundles/ngxs-store-internals.umd.min.js.map +1 -1
- package/bundles/ngxs-store.umd.js +32 -105
- package/bundles/ngxs-store.umd.js.map +1 -1
- package/bundles/ngxs-store.umd.min.js +1 -1
- package/bundles/ngxs-store.umd.min.js.map +1 -1
- package/esm2015/internals/index.js +1 -2
- package/esm2015/internals/ngxs-store-internals.js +2 -2
- package/esm2015/ngxs-store.js +5 -4
- package/esm2015/src/decorators/select/select-factory.js +2 -6
- package/esm2015/src/decorators/select/select.js +11 -39
- package/esm2015/src/decorators/select/symbols.js +11 -55
- package/esm2015/src/internal/dispatcher.js +8 -6
- package/esm2015/src/module.js +3 -1
- package/esm2015/src/modules/ngxs-root.module.js +5 -8
- package/esm5/internals/index.js +1 -2
- package/esm5/internals/ngxs-store-internals.js +2 -2
- package/esm5/ngxs-store.js +5 -4
- package/esm5/src/decorators/select/select-factory.js +2 -6
- package/esm5/src/decorators/select/select.js +5 -40
- package/esm5/src/decorators/select/symbols.js +11 -55
- package/esm5/src/internal/dispatcher.js +8 -6
- package/esm5/src/module.js +3 -1
- package/esm5/src/modules/ngxs-root.module.js +4 -7
- package/fesm2015/ngxs-store-internals.js +2 -240
- package/fesm2015/ngxs-store-internals.js.map +1 -1
- package/fesm2015/ngxs-store.js +34 -101
- package/fesm2015/ngxs-store.js.map +1 -1
- package/fesm5/ngxs-store-internals.js +2 -240
- package/fesm5/ngxs-store-internals.js.map +1 -1
- package/fesm5/ngxs-store.js +27 -101
- package/fesm5/ngxs-store.js.map +1 -1
- package/internals/index.d.ts +0 -1
- package/internals/ngxs-store-internals.metadata.json +1 -1
- package/ngxs-store.d.ts +5 -4
- package/ngxs-store.metadata.json +1 -1
- package/package.json +1 -1
- package/src/decorators/select/select.d.ts +1 -0
- package/src/decorators/select/symbols.d.ts +2 -6
- package/src/modules/ngxs-root.module.d.ts +2 -2
- package/esm2015/internals/decorator-injector-adapter.js +0 -242
- package/esm5/internals/decorator-injector-adapter.js +0 -242
- package/internals/decorator-injector-adapter.d.ts +0 -15
|
@@ -1,242 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
-
*/
|
|
5
|
-
import { INJECTOR, ɵglobal, ɵɵdirectiveInject } from '@angular/core';
|
|
6
|
-
import { ReplaySubject } from 'rxjs';
|
|
7
|
-
import { isAngularInTestMode } from './angular';
|
|
8
|
-
// Angular doesn't export `NG_FACTORY_DEF`.
|
|
9
|
-
/** @type {?} */
|
|
10
|
-
var NG_FACTORY_DEF = 'ɵfac';
|
|
11
|
-
// A `Symbol` which is used to save the `Injector` onto the class instance.
|
|
12
|
-
/** @type {?} */
|
|
13
|
-
var InjectorInstance = Symbol('InjectorInstance');
|
|
14
|
-
// A `Symbol` which is used to determine if factory has been decorated previously or not.
|
|
15
|
-
/** @type {?} */
|
|
16
|
-
var FactoryHasBeenDecorated = Symbol('FactoryHasBeenDecorated');
|
|
17
|
-
// A `Symbol` which is used to save the notifier on the class instance. The `InjectorInstance` cannot
|
|
18
|
-
// be retrieved within the `constructor` since it's set after the `factory()` is called.
|
|
19
|
-
/** @type {?} */
|
|
20
|
-
var InjectorNotifier = Symbol('InjectorNotifier');
|
|
21
|
-
/**
|
|
22
|
-
* @record
|
|
23
|
-
*/
|
|
24
|
-
function PrototypeWithInjectorNotifier() { }
|
|
25
|
-
if (false) {
|
|
26
|
-
/* Skipping unnamed member:
|
|
27
|
-
[InjectorNotifier]?: ReplaySubject<boolean>;*/
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* @param {?} target
|
|
31
|
-
* @return {?}
|
|
32
|
-
*/
|
|
33
|
-
export function ensureInjectorNotifierIsCaptured(target) {
|
|
34
|
-
if (target[InjectorNotifier]) {
|
|
35
|
-
return (/** @type {?} */ (target[InjectorNotifier]));
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
/** @type {?} */
|
|
39
|
-
var injectorNotifier$_1 = new ReplaySubject(1);
|
|
40
|
-
Object.defineProperty(target, InjectorNotifier, {
|
|
41
|
-
get: (/**
|
|
42
|
-
* @return {?}
|
|
43
|
-
*/
|
|
44
|
-
function () { return injectorNotifier$_1; })
|
|
45
|
-
});
|
|
46
|
-
return injectorNotifier$_1;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
50
|
-
/**
|
|
51
|
-
* @param {?} target
|
|
52
|
-
* @return {?}
|
|
53
|
-
*/
|
|
54
|
-
export function ensureLocalInjectorCaptured(target) {
|
|
55
|
-
if (FactoryHasBeenDecorated in target.constructor.prototype) {
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
/** @type {?} */
|
|
59
|
-
var constructor = target.constructor;
|
|
60
|
-
// The factory is set later by the Angular compiler in JIT mode, and we're not able to patch the factory now.
|
|
61
|
-
// We can't use any asynchronous code like `Promise.resolve().then(...)` since this is not functional in unit
|
|
62
|
-
// tests that are being run in `SyncTestZoneSpec`.
|
|
63
|
-
// Given the following example:
|
|
64
|
-
// @Component()
|
|
65
|
-
// class BaseComponent {}
|
|
66
|
-
// @Component()
|
|
67
|
-
// class MainComponent extends BaseComponent {
|
|
68
|
-
// @Select(AnimalsState) animals$: Observable<string[]>;
|
|
69
|
-
// }
|
|
70
|
-
// In this example, the factory will be defined for the `BaseComponent`, but will not be defined for the `MainComponent`.
|
|
71
|
-
// If we try to decorate the factory immediately, we'll get `Cannot redefine property` exception when Angular will try to define
|
|
72
|
-
// an original factory for the `MainComponent`.
|
|
73
|
-
// Note: the factory is defined statically in the code in AOT mode.
|
|
74
|
-
// AppComponent.ɵfac = function AppComponent_Factory(t) {
|
|
75
|
-
// return new (t || AppComponent)();
|
|
76
|
-
// };
|
|
77
|
-
// __decorate([Select], AppComponent.prototype, 'animals$', void 0);
|
|
78
|
-
/** @type {?} */
|
|
79
|
-
var isJitModeOrIsAngularInTestMode = isAngularInTestMode() || !!(ɵglobal.ng && ɵglobal.ng.ɵcompilerFacade);
|
|
80
|
-
// If we're in development mode AND we're running unit tests or there's a compiler facade exposed,
|
|
81
|
-
// then patch `Object.defineProperty`. The compiler facade is exposed in JIT mode.
|
|
82
|
-
if (ngDevMode && isJitModeOrIsAngularInTestMode) {
|
|
83
|
-
patchObjectDefineProperty();
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
decorateFactory(constructor);
|
|
87
|
-
}
|
|
88
|
-
target.constructor.prototype[FactoryHasBeenDecorated] = true;
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* @template T
|
|
92
|
-
* @param {?} instance
|
|
93
|
-
* @param {?} token
|
|
94
|
-
* @return {?}
|
|
95
|
-
*/
|
|
96
|
-
export function localInject(instance, token) {
|
|
97
|
-
/** @type {?} */
|
|
98
|
-
var injector = instance[InjectorInstance];
|
|
99
|
-
return injector ? injector.get(token) : null;
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* @param {?} constructor
|
|
103
|
-
* @return {?}
|
|
104
|
-
*/
|
|
105
|
-
function decorateFactory(constructor) {
|
|
106
|
-
/** @type {?} */
|
|
107
|
-
var factory = constructor[NG_FACTORY_DEF];
|
|
108
|
-
if (typeof factory !== 'function') {
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
// Let's try to get any definition.
|
|
112
|
-
// Caretaker note: this will be compatible only with Angular 9+, since Angular 9 is the first
|
|
113
|
-
// Ivy-stable version. Previously definition properties were named differently (e.g. `ngComponentDef`).
|
|
114
|
-
/** @type {?} */
|
|
115
|
-
var def = constructor.ɵprov || constructor.ɵpipe || constructor.ɵcmp || constructor.ɵdir;
|
|
116
|
-
/** @type {?} */
|
|
117
|
-
var decoratedFactory = (/**
|
|
118
|
-
* @return {?}
|
|
119
|
-
*/
|
|
120
|
-
function () {
|
|
121
|
-
/** @type {?} */
|
|
122
|
-
var instance = factory();
|
|
123
|
-
// Caretaker note: `inject()` won't work here.
|
|
124
|
-
// We can use the `directiveInject` only during the component
|
|
125
|
-
// construction, since Angular captures the currently active injector.
|
|
126
|
-
// We're not able to use this function inside the getter (when the `selectorId` property is
|
|
127
|
-
// requested for the first time), since the currently active injector will be null.
|
|
128
|
-
instance[InjectorInstance] = ɵɵdirectiveInject(
|
|
129
|
-
// We're using `INJECTOR` token except of the `Injector` class since the compiler
|
|
130
|
-
// throws: `Cannot assign an abstract constructor type to a non-abstract constructor type.`.
|
|
131
|
-
// Caretaker note: that this is the same way of getting the injector.
|
|
132
|
-
INJECTOR);
|
|
133
|
-
// Caretaker note: the notifier will be available only if consumers call the `ensureInjectorNotifierIsCaptured()`.
|
|
134
|
-
/** @type {?} */
|
|
135
|
-
var injectorNotifier$ = instance[InjectorNotifier];
|
|
136
|
-
if (injectorNotifier$) {
|
|
137
|
-
injectorNotifier$.next(true);
|
|
138
|
-
injectorNotifier$.complete();
|
|
139
|
-
}
|
|
140
|
-
return instance;
|
|
141
|
-
});
|
|
142
|
-
// If we've found any definition then it's enough to override the `def.factory` since Angular
|
|
143
|
-
// code uses the `def.factory` and then fallbacks to `ɵfac`.
|
|
144
|
-
if (def) {
|
|
145
|
-
def.factory = decoratedFactory;
|
|
146
|
-
}
|
|
147
|
-
// `@NgModule()` doesn't doesn't have definition factory, also providers have definitions but Angular
|
|
148
|
-
// still uses the `ɵfac`.
|
|
149
|
-
Object.defineProperty(constructor, NG_FACTORY_DEF, {
|
|
150
|
-
get: (/**
|
|
151
|
-
* @return {?}
|
|
152
|
-
*/
|
|
153
|
-
function () { return decoratedFactory; })
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
// Note: this function will be tree-shaken in production.
|
|
157
|
-
var ɵ0 = /**
|
|
158
|
-
* @return {?}
|
|
159
|
-
*/
|
|
160
|
-
function () {
|
|
161
|
-
/** @type {?} */
|
|
162
|
-
var objectDefinePropertyPatched = false;
|
|
163
|
-
return (/**
|
|
164
|
-
* @return {?}
|
|
165
|
-
*/
|
|
166
|
-
function () {
|
|
167
|
-
if (objectDefinePropertyPatched) {
|
|
168
|
-
return;
|
|
169
|
-
}
|
|
170
|
-
/** @type {?} */
|
|
171
|
-
var defineProperty = Object.defineProperty;
|
|
172
|
-
// We should not be patching globals, but there's no other way to know when it's appropriate
|
|
173
|
-
// to decorate the original factory. There're different edge cases, e.g., when the class extends
|
|
174
|
-
// another class, the factory will be defined for the base class but not for the child class.
|
|
175
|
-
// The patching will be done only during the development and in JIT mode.
|
|
176
|
-
Object.defineProperty = (/**
|
|
177
|
-
* @template T
|
|
178
|
-
* @param {?} object
|
|
179
|
-
* @param {?} propertyKey
|
|
180
|
-
* @param {?} attributes
|
|
181
|
-
* @return {?}
|
|
182
|
-
*/
|
|
183
|
-
function (object, propertyKey, attributes) {
|
|
184
|
-
// Angular calls `Object.defineProperty(target, 'ɵfac', { get: ..., configurable: true })` when defining a factory function.
|
|
185
|
-
// We only want to intercept `ɵfac` key.
|
|
186
|
-
// If the property is `ɵfac` AND `configurable` equals `true`, then let's call the original
|
|
187
|
-
// implementation and then decorate the factory.
|
|
188
|
-
// // https://github.com/angular/angular/blob/3a60063a54d850c50ce962a8a39ce01cfee71398/packages/core/src/render3/jit/pipe.ts#L21-L39
|
|
189
|
-
if (propertyKey !== NG_FACTORY_DEF ||
|
|
190
|
-
// We also call `Object.defineProperty(target, 'ɵfac', ...)`, but we don't set `configurable` property.
|
|
191
|
-
(propertyKey === NG_FACTORY_DEF && !attributes.configurable)) {
|
|
192
|
-
return (/** @type {?} */ (defineProperty.call(this, object, propertyKey, attributes)));
|
|
193
|
-
}
|
|
194
|
-
else {
|
|
195
|
-
// If the property is `ɵfac` AND `configurable` equals `true`, then let's call the original
|
|
196
|
-
// implementation and then decorate the factory.
|
|
197
|
-
defineProperty.call(this, object, propertyKey, attributes);
|
|
198
|
-
decorateFactory((/** @type {?} */ (((/** @type {?} */ (object))))));
|
|
199
|
-
return object;
|
|
200
|
-
}
|
|
201
|
-
});
|
|
202
|
-
objectDefinePropertyPatched = true;
|
|
203
|
-
});
|
|
204
|
-
};
|
|
205
|
-
/** @type {?} */
|
|
206
|
-
var patchObjectDefineProperty = ((ɵ0))();
|
|
207
|
-
/**
|
|
208
|
-
* @record
|
|
209
|
-
*/
|
|
210
|
-
function Definition() { }
|
|
211
|
-
if (false) {
|
|
212
|
-
/** @type {?} */
|
|
213
|
-
Definition.prototype.factory;
|
|
214
|
-
}
|
|
215
|
-
/**
|
|
216
|
-
* @record
|
|
217
|
-
*/
|
|
218
|
-
function ConstructorWithDefinitionAndFactory() { }
|
|
219
|
-
if (false) {
|
|
220
|
-
/** @type {?|undefined} */
|
|
221
|
-
ConstructorWithDefinitionAndFactory.prototype.ɵprov;
|
|
222
|
-
/** @type {?|undefined} */
|
|
223
|
-
ConstructorWithDefinitionAndFactory.prototype.ɵpipe;
|
|
224
|
-
/** @type {?|undefined} */
|
|
225
|
-
ConstructorWithDefinitionAndFactory.prototype.ɵcmp;
|
|
226
|
-
/** @type {?|undefined} */
|
|
227
|
-
ConstructorWithDefinitionAndFactory.prototype.ɵdir;
|
|
228
|
-
/* Skipping unnamed member:
|
|
229
|
-
[NG_FACTORY_DEF]?: Factory;*/
|
|
230
|
-
}
|
|
231
|
-
/**
|
|
232
|
-
* @record
|
|
233
|
-
*/
|
|
234
|
-
function PrivateInstance() { }
|
|
235
|
-
if (false) {
|
|
236
|
-
/* Skipping unnamed member:
|
|
237
|
-
[InjectorInstance]?: Injector;*/
|
|
238
|
-
/* Skipping unnamed member:
|
|
239
|
-
[InjectorNotifier]?: ReplaySubject<boolean>;*/
|
|
240
|
-
}
|
|
241
|
-
export { ɵ0 };
|
|
242
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9yLWluamVjdG9yLWFkYXB0ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9pbnRlcm5hbHMvIiwic291cmNlcyI6WyJkZWNvcmF0b3ItaW5qZWN0b3ItYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUdMLFFBQVEsRUFFUixPQUFPLEVBQ1AsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFckMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7SUFPMUMsY0FBYyxHQUFHLE1BQU07OztJQUd2QixnQkFBZ0IsR0FBa0IsTUFBTSxDQUFDLGtCQUFrQixDQUFDOzs7SUFHNUQsdUJBQXVCLEdBQWtCLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQzs7OztJQUkxRSxnQkFBZ0IsR0FBa0IsTUFBTSxDQUFDLGtCQUFrQixDQUFDOzs7O0FBRWxFLDRDQUVDOzs7Ozs7Ozs7QUFFRCxNQUFNLFVBQVUsZ0NBQWdDLENBQzlDLE1BQXVEO0lBRXZELElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLEVBQUU7UUFDNUIsT0FBTyxtQkFBQSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsRUFBQyxDQUFDO0tBQ2xDO1NBQU07O1lBQ0MsbUJBQWlCLEdBQUcsSUFBSSxhQUFhLENBQVUsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFFO1lBQzlDLEdBQUc7OztZQUFFLGNBQU0sT0FBQSxtQkFBaUIsRUFBakIsQ0FBaUIsQ0FBQTtTQUM3QixDQUFDLENBQUM7UUFDSCxPQUFPLG1CQUFpQixDQUFDO0tBQzFCO0FBQ0gsQ0FBQzs7Ozs7O0FBR0QsTUFBTSxVQUFVLDJCQUEyQixDQUFDLE1BQWM7SUFDeEQsSUFBSSx1QkFBdUIsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRTtRQUMzRCxPQUFPO0tBQ1I7O1FBRUssV0FBVyxHQUF3QyxNQUFNLENBQUMsV0FBVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7UUFzQnJFLDhCQUE4QixHQUNsQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUM7SUFFdkUsa0dBQWtHO0lBQ2xHLGtGQUFrRjtJQUNsRixJQUFJLFNBQVMsSUFBSSw4QkFBOEIsRUFBRTtRQUMvQyx5QkFBeUIsRUFBRSxDQUFDO0tBQzdCO1NBQU07UUFDTCxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7S0FDOUI7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUMvRCxDQUFDOzs7Ozs7O0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FDekIsUUFBeUIsRUFDekIsS0FBa0M7O1FBRTVCLFFBQVEsR0FBeUIsUUFBUSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pFLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDL0MsQ0FBQzs7Ozs7QUFFRCxTQUFTLGVBQWUsQ0FBQyxXQUFnRDs7UUFDakUsT0FBTyxHQUFHLFdBQVcsQ0FBQyxjQUFjLENBQUM7SUFFM0MsSUFBSSxPQUFPLE9BQU8sS0FBSyxVQUFVLEVBQUU7UUFDakMsT0FBTztLQUNSOzs7OztRQUtLLEdBQUcsR0FBRyxXQUFXLENBQUMsS0FBSyxJQUFJLFdBQVcsQ0FBQyxLQUFLLElBQUksV0FBVyxDQUFDLElBQUksSUFBSSxXQUFXLENBQUMsSUFBSTs7UUFFcEYsZ0JBQWdCOzs7SUFBRzs7WUFDakIsUUFBUSxHQUFHLE9BQU8sRUFBRTtRQUMxQiw4Q0FBOEM7UUFDOUMsNkRBQTZEO1FBQzdELHNFQUFzRTtRQUN0RSwyRkFBMkY7UUFDM0YsbUZBQW1GO1FBQ25GLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLGlCQUFpQjtRQUM1QyxpRkFBaUY7UUFDakYsNEZBQTRGO1FBQzVGLHFFQUFxRTtRQUNyRSxRQUFRLENBQ1QsQ0FBQzs7O1lBR0ksaUJBQWlCLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDO1FBQ3BELElBQUksaUJBQWlCLEVBQUU7WUFDckIsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdCLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQzlCO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQyxDQUFBO0lBRUQsNkZBQTZGO0lBQzdGLDREQUE0RDtJQUM1RCxJQUFJLEdBQUcsRUFBRTtRQUNQLEdBQUcsQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCLENBQUM7S0FDaEM7SUFFRCxxR0FBcUc7SUFDckcseUJBQXlCO0lBQ3pCLE1BQU0sQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLGNBQWMsRUFBRTtRQUNqRCxHQUFHOzs7UUFBRSxjQUFNLE9BQUEsZ0JBQWdCLEVBQWhCLENBQWdCLENBQUE7S0FDNUIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQzs7Ozs7QUFHa0M7O1FBQzdCLDJCQUEyQixHQUFHLEtBQUs7SUFDdkM7OztJQUFPO1FBQ0wsSUFBSSwyQkFBMkIsRUFBRTtZQUMvQixPQUFPO1NBQ1I7O1lBQ0ssY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjO1FBQzVDLDRGQUE0RjtRQUM1RixnR0FBZ0c7UUFDaEcsNkZBQTZGO1FBQzdGLHlFQUF5RTtRQUN6RSxNQUFNLENBQUMsY0FBYzs7Ozs7OztRQUFHLFVBQ3RCLE1BQVMsRUFDVCxXQUF3QixFQUN4QixVQUE4QztZQUU5Qyw0SEFBNEg7WUFDNUgsd0NBQXdDO1lBQ3hDLDJGQUEyRjtZQUMzRixnREFBZ0Q7WUFDaEQsb0lBQW9JO1lBQ3BJLElBQ0UsV0FBVyxLQUFLLGNBQWM7Z0JBQzlCLHVHQUF1RztnQkFDdkcsQ0FBQyxXQUFXLEtBQUssY0FBYyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUM1RDtnQkFDQSxPQUFPLG1CQUFBLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEVBQUssQ0FBQzthQUN4RTtpQkFBTTtnQkFDTCwyRkFBMkY7Z0JBQzNGLGdEQUFnRDtnQkFDaEQsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDM0QsZUFBZSxDQUFDLG1CQUFBLENBQUMsbUJBQUEsTUFBTSxFQUFXLENBQUMsRUFBdUMsQ0FBQyxDQUFDO2dCQUM1RSxPQUFPLE1BQU0sQ0FBQzthQUNmO1FBQ0gsQ0FBQyxDQUFBLENBQUM7UUFDRiwyQkFBMkIsR0FBRyxJQUFJLENBQUM7SUFDckMsQ0FBQyxFQUFDO0FBQ0osQ0FBQzs7SUFyQ0sseUJBQXlCLEdBQUcsTUFxQ2hDLEVBQUU7Ozs7QUFRSix5QkFFQzs7O0lBREMsNkJBQXdCOzs7OztBQUcxQixrREFVQzs7O0lBUkMsb0RBQW1COztJQUVuQixvREFBbUI7O0lBRW5CLG1EQUFrQjs7SUFFbEIsbURBQWtCOzs7Ozs7O0FBSXBCLDhCQUdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIEluamVjdG9yLFxuICBJTkpFQ1RPUixcbiAgVHlwZSxcbiAgybVnbG9iYWwsXG4gIMm1ybVkaXJlY3RpdmVJbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGlzQW5ndWxhckluVGVzdE1vZGUgfSBmcm9tICcuL2FuZ3VsYXInO1xuXG4vLyBXaWxsIGJlIHByb3ZpZGVkIHRocm91Z2ggVGVyc2VyIGdsb2JhbCBkZWZpbml0aW9ucyBieSBBbmd1bGFyIENMSVxuLy8gZHVyaW5nIHRoZSBwcm9kdWN0aW9uIGJ1aWxkLiBUaGlzIGlzIGhvdyBBbmd1bGFyIGRvZXMgdHJlZS1zaGFraW5nIGludGVybmFsbHkuXG5kZWNsYXJlIGNvbnN0IG5nRGV2TW9kZTogYm9vbGVhbjtcblxuLy8gQW5ndWxhciBkb2Vzbid0IGV4cG9ydCBgTkdfRkFDVE9SWV9ERUZgLlxuY29uc3QgTkdfRkFDVE9SWV9ERUYgPSAnybVmYWMnO1xuXG4vLyBBIGBTeW1ib2xgIHdoaWNoIGlzIHVzZWQgdG8gc2F2ZSB0aGUgYEluamVjdG9yYCBvbnRvIHRoZSBjbGFzcyBpbnN0YW5jZS5cbmNvbnN0IEluamVjdG9ySW5zdGFuY2U6IHVuaXF1ZSBzeW1ib2wgPSBTeW1ib2woJ0luamVjdG9ySW5zdGFuY2UnKTtcblxuLy8gQSBgU3ltYm9sYCB3aGljaCBpcyB1c2VkIHRvIGRldGVybWluZSBpZiBmYWN0b3J5IGhhcyBiZWVuIGRlY29yYXRlZCBwcmV2aW91c2x5IG9yIG5vdC5cbmNvbnN0IEZhY3RvcnlIYXNCZWVuRGVjb3JhdGVkOiB1bmlxdWUgc3ltYm9sID0gU3ltYm9sKCdGYWN0b3J5SGFzQmVlbkRlY29yYXRlZCcpO1xuXG4vLyBBIGBTeW1ib2xgIHdoaWNoIGlzIHVzZWQgdG8gc2F2ZSB0aGUgbm90aWZpZXIgb24gdGhlIGNsYXNzIGluc3RhbmNlLiBUaGUgYEluamVjdG9ySW5zdGFuY2VgIGNhbm5vdFxuLy8gYmUgcmV0cmlldmVkIHdpdGhpbiB0aGUgYGNvbnN0cnVjdG9yYCBzaW5jZSBpdCdzIHNldCBhZnRlciB0aGUgYGZhY3RvcnkoKWAgaXMgY2FsbGVkLlxuY29uc3QgSW5qZWN0b3JOb3RpZmllcjogdW5pcXVlIHN5bWJvbCA9IFN5bWJvbCgnSW5qZWN0b3JOb3RpZmllcicpO1xuXG5pbnRlcmZhY2UgUHJvdG90eXBlV2l0aEluamVjdG9yTm90aWZpZXIgZXh0ZW5kcyBPYmplY3Qge1xuICBbSW5qZWN0b3JOb3RpZmllcl0/OiBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlSW5qZWN0b3JOb3RpZmllcklzQ2FwdHVyZWQoXG4gIHRhcmdldDogUHJvdG90eXBlV2l0aEluamVjdG9yTm90aWZpZXIgfCBQcml2YXRlSW5zdGFuY2Vcbik6IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4ge1xuICBpZiAodGFyZ2V0W0luamVjdG9yTm90aWZpZXJdKSB7XG4gICAgcmV0dXJuIHRhcmdldFtJbmplY3Rvck5vdGlmaWVyXSE7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgaW5qZWN0b3JOb3RpZmllciQgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBJbmplY3Rvck5vdGlmaWVyLCB7XG4gICAgICBnZXQ6ICgpID0+IGluamVjdG9yTm90aWZpZXIkXG4gICAgfSk7XG4gICAgcmV0dXJuIGluamVjdG9yTm90aWZpZXIkO1xuICB9XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlTG9jYWxJbmplY3RvckNhcHR1cmVkKHRhcmdldDogT2JqZWN0KTogdm9pZCB7XG4gIGlmIChGYWN0b3J5SGFzQmVlbkRlY29yYXRlZCBpbiB0YXJnZXQuY29uc3RydWN0b3IucHJvdG90eXBlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgY29uc3RydWN0b3I6IENvbnN0cnVjdG9yV2l0aERlZmluaXRpb25BbmRGYWN0b3J5ID0gdGFyZ2V0LmNvbnN0cnVjdG9yO1xuXG4gIC8vIFRoZSBmYWN0b3J5IGlzIHNldCBsYXRlciBieSB0aGUgQW5ndWxhciBjb21waWxlciBpbiBKSVQgbW9kZSwgYW5kIHdlJ3JlIG5vdCBhYmxlIHRvIHBhdGNoIHRoZSBmYWN0b3J5IG5vdy5cbiAgLy8gV2UgY2FuJ3QgdXNlIGFueSBhc3luY2hyb25vdXMgY29kZSBsaWtlIGBQcm9taXNlLnJlc29sdmUoKS50aGVuKC4uLilgIHNpbmNlIHRoaXMgaXMgbm90IGZ1bmN0aW9uYWwgaW4gdW5pdFxuICAvLyB0ZXN0cyB0aGF0IGFyZSBiZWluZyBydW4gaW4gYFN5bmNUZXN0Wm9uZVNwZWNgLlxuICAvLyBHaXZlbiB0aGUgZm9sbG93aW5nIGV4YW1wbGU6XG4gIC8vIEBDb21wb25lbnQoKVxuICAvLyBjbGFzcyBCYXNlQ29tcG9uZW50IHt9XG4gIC8vIEBDb21wb25lbnQoKVxuICAvLyBjbGFzcyBNYWluQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIC8vICAgQFNlbGVjdChBbmltYWxzU3RhdGUpIGFuaW1hbHMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcbiAgLy8gfVxuICAvLyBJbiB0aGlzIGV4YW1wbGUsIHRoZSBmYWN0b3J5IHdpbGwgYmUgZGVmaW5lZCBmb3IgdGhlIGBCYXNlQ29tcG9uZW50YCwgYnV0IHdpbGwgbm90IGJlIGRlZmluZWQgZm9yIHRoZSBgTWFpbkNvbXBvbmVudGAuXG4gIC8vIElmIHdlIHRyeSB0byBkZWNvcmF0ZSB0aGUgZmFjdG9yeSBpbW1lZGlhdGVseSwgd2UnbGwgZ2V0IGBDYW5ub3QgcmVkZWZpbmUgcHJvcGVydHlgIGV4Y2VwdGlvbiB3aGVuIEFuZ3VsYXIgd2lsbCB0cnkgdG8gZGVmaW5lXG4gIC8vIGFuIG9yaWdpbmFsIGZhY3RvcnkgZm9yIHRoZSBgTWFpbkNvbXBvbmVudGAuXG5cbiAgLy8gTm90ZTogdGhlIGZhY3RvcnkgaXMgZGVmaW5lZCBzdGF0aWNhbGx5IGluIHRoZSBjb2RlIGluIEFPVCBtb2RlLlxuICAvLyBBcHBDb21wb25lbnQuybVmYWMgPSBmdW5jdGlvbiBBcHBDb21wb25lbnRfRmFjdG9yeSh0KSB7XG4gIC8vICAgcmV0dXJuIG5ldyAodCB8fCBBcHBDb21wb25lbnQpKCk7XG4gIC8vIH07XG4gIC8vIF9fZGVjb3JhdGUoW1NlbGVjdF0sIEFwcENvbXBvbmVudC5wcm90b3R5cGUsICdhbmltYWxzJCcsIHZvaWQgMCk7XG5cbiAgY29uc3QgaXNKaXRNb2RlT3JJc0FuZ3VsYXJJblRlc3RNb2RlID1cbiAgICBpc0FuZ3VsYXJJblRlc3RNb2RlKCkgfHwgISEoybVnbG9iYWwubmcgJiYgybVnbG9iYWwubmcuybVjb21waWxlckZhY2FkZSk7XG5cbiAgLy8gSWYgd2UncmUgaW4gZGV2ZWxvcG1lbnQgbW9kZSBBTkQgd2UncmUgcnVubmluZyB1bml0IHRlc3RzIG9yIHRoZXJlJ3MgYSBjb21waWxlciBmYWNhZGUgZXhwb3NlZCxcbiAgLy8gdGhlbiBwYXRjaCBgT2JqZWN0LmRlZmluZVByb3BlcnR5YC4gVGhlIGNvbXBpbGVyIGZhY2FkZSBpcyBleHBvc2VkIGluIEpJVCBtb2RlLlxuICBpZiAobmdEZXZNb2RlICYmIGlzSml0TW9kZU9ySXNBbmd1bGFySW5UZXN0TW9kZSkge1xuICAgIHBhdGNoT2JqZWN0RGVmaW5lUHJvcGVydHkoKTtcbiAgfSBlbHNlIHtcbiAgICBkZWNvcmF0ZUZhY3RvcnkoY29uc3RydWN0b3IpO1xuICB9XG5cbiAgdGFyZ2V0LmNvbnN0cnVjdG9yLnByb3RvdHlwZVtGYWN0b3J5SGFzQmVlbkRlY29yYXRlZF0gPSB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9jYWxJbmplY3Q8VD4oXG4gIGluc3RhbmNlOiBQcml2YXRlSW5zdGFuY2UsXG4gIHRva2VuOiBJbmplY3Rpb25Ub2tlbjxUPiB8IFR5cGU8VD5cbik6IFQgfCBudWxsIHtcbiAgY29uc3QgaW5qZWN0b3I6IEluamVjdG9yIHwgdW5kZWZpbmVkID0gaW5zdGFuY2VbSW5qZWN0b3JJbnN0YW5jZV07XG4gIHJldHVybiBpbmplY3RvciA/IGluamVjdG9yLmdldCh0b2tlbikgOiBudWxsO1xufVxuXG5mdW5jdGlvbiBkZWNvcmF0ZUZhY3RvcnkoY29uc3RydWN0b3I6IENvbnN0cnVjdG9yV2l0aERlZmluaXRpb25BbmRGYWN0b3J5KTogdm9pZCB7XG4gIGNvbnN0IGZhY3RvcnkgPSBjb25zdHJ1Y3RvcltOR19GQUNUT1JZX0RFRl07XG5cbiAgaWYgKHR5cGVvZiBmYWN0b3J5ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gTGV0J3MgdHJ5IHRvIGdldCBhbnkgZGVmaW5pdGlvbi5cbiAgLy8gQ2FyZXRha2VyIG5vdGU6IHRoaXMgd2lsbCBiZSBjb21wYXRpYmxlIG9ubHkgd2l0aCBBbmd1bGFyIDkrLCBzaW5jZSBBbmd1bGFyIDkgaXMgdGhlIGZpcnN0XG4gIC8vIEl2eS1zdGFibGUgdmVyc2lvbi4gUHJldmlvdXNseSBkZWZpbml0aW9uIHByb3BlcnRpZXMgd2VyZSBuYW1lZCBkaWZmZXJlbnRseSAoZS5nLiBgbmdDb21wb25lbnREZWZgKS5cbiAgY29uc3QgZGVmID0gY29uc3RydWN0b3IuybVwcm92IHx8IGNvbnN0cnVjdG9yLsm1cGlwZSB8fCBjb25zdHJ1Y3Rvci7JtWNtcCB8fCBjb25zdHJ1Y3Rvci7JtWRpcjtcblxuICBjb25zdCBkZWNvcmF0ZWRGYWN0b3J5ID0gKCkgPT4ge1xuICAgIGNvbnN0IGluc3RhbmNlID0gZmFjdG9yeSgpO1xuICAgIC8vIENhcmV0YWtlciBub3RlOiBgaW5qZWN0KClgIHdvbid0IHdvcmsgaGVyZS5cbiAgICAvLyBXZSBjYW4gdXNlIHRoZSBgZGlyZWN0aXZlSW5qZWN0YCBvbmx5IGR1cmluZyB0aGUgY29tcG9uZW50XG4gICAgLy8gY29uc3RydWN0aW9uLCBzaW5jZSBBbmd1bGFyIGNhcHR1cmVzIHRoZSBjdXJyZW50bHkgYWN0aXZlIGluamVjdG9yLlxuICAgIC8vIFdlJ3JlIG5vdCBhYmxlIHRvIHVzZSB0aGlzIGZ1bmN0aW9uIGluc2lkZSB0aGUgZ2V0dGVyICh3aGVuIHRoZSBgc2VsZWN0b3JJZGAgcHJvcGVydHkgaXNcbiAgICAvLyByZXF1ZXN0ZWQgZm9yIHRoZSBmaXJzdCB0aW1lKSwgc2luY2UgdGhlIGN1cnJlbnRseSBhY3RpdmUgaW5qZWN0b3Igd2lsbCBiZSBudWxsLlxuICAgIGluc3RhbmNlW0luamVjdG9ySW5zdGFuY2VdID0gybXJtWRpcmVjdGl2ZUluamVjdChcbiAgICAgIC8vIFdlJ3JlIHVzaW5nIGBJTkpFQ1RPUmAgdG9rZW4gZXhjZXB0IG9mIHRoZSBgSW5qZWN0b3JgIGNsYXNzIHNpbmNlIHRoZSBjb21waWxlclxuICAgICAgLy8gdGhyb3dzOiBgQ2Fubm90IGFzc2lnbiBhbiBhYnN0cmFjdCBjb25zdHJ1Y3RvciB0eXBlIHRvIGEgbm9uLWFic3RyYWN0IGNvbnN0cnVjdG9yIHR5cGUuYC5cbiAgICAgIC8vIENhcmV0YWtlciBub3RlOiB0aGF0IHRoaXMgaXMgdGhlIHNhbWUgd2F5IG9mIGdldHRpbmcgdGhlIGluamVjdG9yLlxuICAgICAgSU5KRUNUT1JcbiAgICApO1xuXG4gICAgLy8gQ2FyZXRha2VyIG5vdGU6IHRoZSBub3RpZmllciB3aWxsIGJlIGF2YWlsYWJsZSBvbmx5IGlmIGNvbnN1bWVycyBjYWxsIHRoZSBgZW5zdXJlSW5qZWN0b3JOb3RpZmllcklzQ2FwdHVyZWQoKWAuXG4gICAgY29uc3QgaW5qZWN0b3JOb3RpZmllciQgPSBpbnN0YW5jZVtJbmplY3Rvck5vdGlmaWVyXTtcbiAgICBpZiAoaW5qZWN0b3JOb3RpZmllciQpIHtcbiAgICAgIGluamVjdG9yTm90aWZpZXIkLm5leHQodHJ1ZSk7XG4gICAgICBpbmplY3Rvck5vdGlmaWVyJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHJldHVybiBpbnN0YW5jZTtcbiAgfTtcblxuICAvLyBJZiB3ZSd2ZSBmb3VuZCBhbnkgZGVmaW5pdGlvbiB0aGVuIGl0J3MgZW5vdWdoIHRvIG92ZXJyaWRlIHRoZSBgZGVmLmZhY3RvcnlgIHNpbmNlIEFuZ3VsYXJcbiAgLy8gY29kZSB1c2VzIHRoZSBgZGVmLmZhY3RvcnlgIGFuZCB0aGVuIGZhbGxiYWNrcyB0byBgybVmYWNgLlxuICBpZiAoZGVmKSB7XG4gICAgZGVmLmZhY3RvcnkgPSBkZWNvcmF0ZWRGYWN0b3J5O1xuICB9XG5cbiAgLy8gYEBOZ01vZHVsZSgpYCBkb2Vzbid0IGRvZXNuJ3QgaGF2ZSBkZWZpbml0aW9uIGZhY3RvcnksIGFsc28gcHJvdmlkZXJzIGhhdmUgZGVmaW5pdGlvbnMgYnV0IEFuZ3VsYXJcbiAgLy8gc3RpbGwgdXNlcyB0aGUgYMm1ZmFjYC5cbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvbnN0cnVjdG9yLCBOR19GQUNUT1JZX0RFRiwge1xuICAgIGdldDogKCkgPT4gZGVjb3JhdGVkRmFjdG9yeVxuICB9KTtcbn1cblxuLy8gTm90ZTogdGhpcyBmdW5jdGlvbiB3aWxsIGJlIHRyZWUtc2hha2VuIGluIHByb2R1Y3Rpb24uXG5jb25zdCBwYXRjaE9iamVjdERlZmluZVByb3BlcnR5ID0gKCgpID0+IHtcbiAgbGV0IG9iamVjdERlZmluZVByb3BlcnR5UGF0Y2hlZCA9IGZhbHNlO1xuICByZXR1cm4gKCkgPT4ge1xuICAgIGlmIChvYmplY3REZWZpbmVQcm9wZXJ0eVBhdGNoZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZGVmaW5lUHJvcGVydHkgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG4gICAgLy8gV2Ugc2hvdWxkIG5vdCBiZSBwYXRjaGluZyBnbG9iYWxzLCBidXQgdGhlcmUncyBubyBvdGhlciB3YXkgdG8ga25vdyB3aGVuIGl0J3MgYXBwcm9wcmlhdGVcbiAgICAvLyB0byBkZWNvcmF0ZSB0aGUgb3JpZ2luYWwgZmFjdG9yeS4gVGhlcmUncmUgZGlmZmVyZW50IGVkZ2UgY2FzZXMsIGUuZy4sIHdoZW4gdGhlIGNsYXNzIGV4dGVuZHNcbiAgICAvLyBhbm90aGVyIGNsYXNzLCB0aGUgZmFjdG9yeSB3aWxsIGJlIGRlZmluZWQgZm9yIHRoZSBiYXNlIGNsYXNzIGJ1dCBub3QgZm9yIHRoZSBjaGlsZCBjbGFzcy5cbiAgICAvLyBUaGUgcGF0Y2hpbmcgd2lsbCBiZSBkb25lIG9ubHkgZHVyaW5nIHRoZSBkZXZlbG9wbWVudCBhbmQgaW4gSklUIG1vZGUuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5ID0gZnVuY3Rpb248VD4oXG4gICAgICBvYmplY3Q6IFQsXG4gICAgICBwcm9wZXJ0eUtleTogUHJvcGVydHlLZXksXG4gICAgICBhdHRyaWJ1dGVzOiBQcm9wZXJ0eURlc2NyaXB0b3IgJiBUaGlzVHlwZTxhbnk+XG4gICAgKSB7XG4gICAgICAvLyBBbmd1bGFyIGNhbGxzIGBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCAnybVmYWMnLCB7IGdldDogLi4uLCBjb25maWd1cmFibGU6IHRydWUgfSlgIHdoZW4gZGVmaW5pbmcgYSBmYWN0b3J5IGZ1bmN0aW9uLlxuICAgICAgLy8gV2Ugb25seSB3YW50IHRvIGludGVyY2VwdCBgybVmYWNgIGtleS5cbiAgICAgIC8vIElmIHRoZSBwcm9wZXJ0eSBpcyBgybVmYWNgIEFORCBgY29uZmlndXJhYmxlYCBlcXVhbHMgYHRydWVgLCB0aGVuIGxldCdzIGNhbGwgdGhlIG9yaWdpbmFsXG4gICAgICAvLyBpbXBsZW1lbnRhdGlvbiBhbmQgdGhlbiBkZWNvcmF0ZSB0aGUgZmFjdG9yeS5cbiAgICAgIC8vIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvYmxvYi8zYTYwMDYzYTU0ZDg1MGM1MGNlOTYyYThhMzljZTAxY2ZlZTcxMzk4L3BhY2thZ2VzL2NvcmUvc3JjL3JlbmRlcjMvaml0L3BpcGUudHMjTDIxLUwzOVxuICAgICAgaWYgKFxuICAgICAgICBwcm9wZXJ0eUtleSAhPT0gTkdfRkFDVE9SWV9ERUYgfHxcbiAgICAgICAgLy8gV2UgYWxzbyBjYWxsIGBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCAnybVmYWMnLCAuLi4pYCwgYnV0IHdlIGRvbid0IHNldCBgY29uZmlndXJhYmxlYCBwcm9wZXJ0eS5cbiAgICAgICAgKHByb3BlcnR5S2V5ID09PSBOR19GQUNUT1JZX0RFRiAmJiAhYXR0cmlidXRlcy5jb25maWd1cmFibGUpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGRlZmluZVByb3BlcnR5LmNhbGwodGhpcywgb2JqZWN0LCBwcm9wZXJ0eUtleSwgYXR0cmlidXRlcykgYXMgVDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIElmIHRoZSBwcm9wZXJ0eSBpcyBgybVmYWNgIEFORCBgY29uZmlndXJhYmxlYCBlcXVhbHMgYHRydWVgLCB0aGVuIGxldCdzIGNhbGwgdGhlIG9yaWdpbmFsXG4gICAgICAgIC8vIGltcGxlbWVudGF0aW9uIGFuZCB0aGVuIGRlY29yYXRlIHRoZSBmYWN0b3J5LlxuICAgICAgICBkZWZpbmVQcm9wZXJ0eS5jYWxsKHRoaXMsIG9iamVjdCwgcHJvcGVydHlLZXksIGF0dHJpYnV0ZXMpO1xuICAgICAgICBkZWNvcmF0ZUZhY3RvcnkoKG9iamVjdCBhcyB1bmtub3duKSBhcyBDb25zdHJ1Y3RvcldpdGhEZWZpbml0aW9uQW5kRmFjdG9yeSk7XG4gICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgICB9XG4gICAgfTtcbiAgICBvYmplY3REZWZpbmVQcm9wZXJ0eVBhdGNoZWQgPSB0cnVlO1xuICB9O1xufSkoKTtcblxuLy8gV2UgY291bGQndmUgdXNlZCBgybXJtUZhY3RvcnlEZWZgIGJ1dCB3ZSB0cnkgdG8gYmUgYmFja3dhcmRzLWNvbXBhdGlibGUsXG4vLyBzaW5jZSBpdCdzIG5vdCBleHBvcnRlZCBpbiBvbGRlciBBbmd1bGFyIHZlcnNpb25zLlxudHlwZSBGYWN0b3J5ID0gKCkgPT4gUHJpdmF0ZUluc3RhbmNlO1xuXG4vLyBXZSBjb3VsZCd2ZSB1c2VkIGDJtcm1SW5qZWN0YWJsZURlZmAsIGDJtcm1UGlwZURlZmAsIGV0Yy4gV2UgdHJ5IHRvIGJlIGJhY2t3YXJkcy1jb21wYXRpYmxlXG4vLyBzaW5jZSB0aGV5J3JlIG5vdCBleHBvcnRlZCBpbiBvbGRlciBBbmd1bGFyIHZlcnNpb25zLlxuaW50ZXJmYWNlIERlZmluaXRpb24ge1xuICBmYWN0b3J5OiBGYWN0b3J5IHwgbnVsbDtcbn1cblxuaW50ZXJmYWNlIENvbnN0cnVjdG9yV2l0aERlZmluaXRpb25BbmRGYWN0b3J5IGV4dGVuZHMgRnVuY3Rpb24ge1xuICAvLyBQcm92aWRlciBkZWZpbml0aW9uIGZvciB0aGUgYEBJbmplY3RhYmxlKClgIGNsYXNzLlxuICDJtXByb3Y/OiBEZWZpbml0aW9uO1xuICAvLyBQaXBlIGRlZmluaXRpb24gZm9yIHRoZSBgQFBpcGUoKWAgY2xhc3MuXG4gIMm1cGlwZT86IERlZmluaXRpb247XG4gIC8vIENvbXBvbmVudCBkZWZpbml0aW9uIGZvciB0aGUgYEBDb21wb25lbnQoKWAgY2xhc3MuXG4gIMm1Y21wPzogRGVmaW5pdGlvbjtcbiAgLy8gRGlyZWN0aXZlIGRlZmluaXRpb24gZm9yIHRoZSBgQERpcmVjdGl2ZSgpYCBjbGFzcy5cbiAgybVkaXI/OiBEZWZpbml0aW9uO1xuICBbTkdfRkFDVE9SWV9ERUZdPzogRmFjdG9yeTtcbn1cblxuaW50ZXJmYWNlIFByaXZhdGVJbnN0YW5jZSB7XG4gIFtJbmplY3Rvckluc3RhbmNlXT86IEluamVjdG9yO1xuICBbSW5qZWN0b3JOb3RpZmllcl0/OiBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+O1xufVxuIl19
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { InjectionToken, Injector, Type } from '@angular/core';
|
|
2
|
-
import { ReplaySubject } from 'rxjs';
|
|
3
|
-
declare const InjectorInstance: unique symbol;
|
|
4
|
-
declare const InjectorNotifier: unique symbol;
|
|
5
|
-
interface PrototypeWithInjectorNotifier extends Object {
|
|
6
|
-
[InjectorNotifier]?: ReplaySubject<boolean>;
|
|
7
|
-
}
|
|
8
|
-
export declare function ensureInjectorNotifierIsCaptured(target: PrototypeWithInjectorNotifier | PrivateInstance): ReplaySubject<boolean>;
|
|
9
|
-
export declare function ensureLocalInjectorCaptured(target: Object): void;
|
|
10
|
-
export declare function localInject<T>(instance: PrivateInstance, token: InjectionToken<T> | Type<T>): T | null;
|
|
11
|
-
interface PrivateInstance {
|
|
12
|
-
[InjectorInstance]?: Injector;
|
|
13
|
-
[InjectorNotifier]?: ReplaySubject<boolean>;
|
|
14
|
-
}
|
|
15
|
-
export {};
|