ntk-cms-api 18.3.423 → 18.3.425
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/esm2020/lib/models/entity/base/_export.mjs +7 -6
- package/esm2020/lib/models/entity/base/processInfoModel.mjs +17 -0
- package/esm2020/lib/models/entity/base-config/baseModuleConfigSiteAccessValuesModel.mjs +1 -1
- package/esm2020/lib/reducers/_export.mjs +2 -2
- package/esm2020/lib/reducers/cmsStore.mjs +23 -24
- package/esm2020/lib/reducers/ntkCmsApiStore.interface.mjs +1 -1
- package/esm2020/lib/reducers/ntkCmsApiStore.service.mjs +7 -82
- package/esm2020/lib/reducers/reducer.factory.mjs +48 -2
- package/esm2020/lib/service/core-token/coreAuth.service.mjs +2 -2
- package/fesm2015/ntk-cms-api.mjs +115 -130
- package/fesm2015/ntk-cms-api.mjs.map +1 -1
- package/fesm2020/ntk-cms-api.mjs +115 -127
- package/fesm2020/ntk-cms-api.mjs.map +1 -1
- package/lib/models/entity/base/_export.d.ts +6 -5
- package/lib/models/entity/base/processInfoModel.d.ts +10 -0
- package/lib/models/entity/base-config/baseModuleConfigSiteAccessValuesModel.d.ts +1 -0
- package/lib/reducers/_export.d.ts +1 -1
- package/lib/reducers/cmsStore.d.ts +9 -6
- package/lib/reducers/ntkCmsApiStore.interface.d.ts +5 -4
- package/lib/reducers/ntkCmsApiStore.service.d.ts +4 -35
- package/lib/reducers/reducer.factory.d.ts +31 -1
- package/package.json +1 -1
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
export * from './fieldInfo/dataFieldInfoModel';
|
|
2
|
-
export * from './fieldInfo/fieldInfoModel';
|
|
3
|
-
export * from './fieldInfo/fieldInputDataSourceModel';
|
|
4
|
-
export * from './fieldInfo/getPropertiesInfoModel';
|
|
5
1
|
export * from './accessModel';
|
|
6
2
|
export * from './baseEntity';
|
|
7
3
|
export * from './baseModuleEntity';
|
|
8
4
|
export * from './captchaModel';
|
|
9
|
-
export * from './infoEnumModel';
|
|
10
5
|
export * from './errorExceptionResult';
|
|
11
6
|
export * from './errorExceptionResultBase';
|
|
12
7
|
export * from './errorExceptionResultExportFile';
|
|
13
8
|
export * from './exportFileModel';
|
|
9
|
+
export * from './fieldInfo/dataFieldInfoModel';
|
|
10
|
+
export * from './fieldInfo/fieldInfoModel';
|
|
11
|
+
export * from './fieldInfo/fieldInputDataSourceModel';
|
|
12
|
+
export * from './fieldInfo/getPropertiesInfoModel';
|
|
14
13
|
export * from './filterDataModel';
|
|
15
14
|
export * from './filterModel';
|
|
16
15
|
export * from './formInfoModel';
|
|
16
|
+
export * from './infoEnumModel';
|
|
17
17
|
export * from './itemState';
|
|
18
18
|
export * from './PageModel';
|
|
19
|
+
export * from './processInfoModel';
|
|
19
20
|
export * from './searchModel';
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2V4cG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL250ay1jbXMtYXBpL3NyYy9saWIvbW9kZWxzL2VudGl0eS9iYXNlL19leHBvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmV4cG9ydCAqIGZyb20gJy4vYWNjZXNzTW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Jhc2VFbnRpdHknO1xyXG5leHBvcnQgKiBmcm9tICcuL2Jhc2VNb2R1bGVFbnRpdHknO1xyXG5leHBvcnQgKiBmcm9tICcuL2NhcHRjaGFNb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3JFeGNlcHRpb25SZXN1bHQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vycm9yRXhjZXB0aW9uUmVzdWx0QmFzZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3JFeGNlcHRpb25SZXN1bHRFeHBvcnRGaWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9leHBvcnRGaWxlTW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ZpZWxkSW5mby9kYXRhRmllbGRJbmZvTW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ZpZWxkSW5mby9maWVsZEluZm9Nb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZmllbGRJbmZvL2ZpZWxkSW5wdXREYXRhU291cmNlTW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ZpZWxkSW5mby9nZXRQcm9wZXJ0aWVzSW5mb01vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9maWx0ZXJEYXRhTW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ZpbHRlck1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9mb3JtSW5mb01vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbmZvRW51bU1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9pdGVtU3RhdGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL1BhZ2VNb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcHJvY2Vzc0luZm9Nb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoTW9kZWwnO1xyXG5cclxuIl19
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export class ProcessInfoModel {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.isComplate = false;
|
|
4
|
+
this.isSuccess = false;
|
|
5
|
+
this.title = '';
|
|
6
|
+
this.component = '';
|
|
7
|
+
this.infoAreaId = '';
|
|
8
|
+
this.guid = `${this.S4()}${this.S4()}-${this.S4()}-${this.S4()}-${this.S4()}-${this.S4()}${this.S4()}${this.S4()}`;
|
|
9
|
+
/** GUID */
|
|
10
|
+
}
|
|
11
|
+
/** GUID */
|
|
12
|
+
S4() {
|
|
13
|
+
const ran = (1 + Math.random()) * 0x10000;
|
|
14
|
+
return (ran | 0).toString(16).substring(1);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzc0luZm9Nb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL250ay1jbXMtYXBpL3NyYy9saWIvbW9kZWxzL2VudGl0eS9iYXNlL3Byb2Nlc3NJbmZvTW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGdCQUFnQjtJQUE3QjtRQUNJLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsU0FBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBTzlHLFdBQVc7SUFDZixDQUFDO0lBTkcsV0FBVztJQUNILEVBQUU7UUFDTixNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUM7UUFDMUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7Q0FFSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBQcm9jZXNzSW5mb01vZGVsIHtcclxuICAgIGlzQ29tcGxhdGUgPSBmYWxzZTtcclxuICAgIGlzU3VjY2VzcyA9IGZhbHNlO1xyXG4gICAgdGl0bGUgPSAnJztcclxuICAgIGNvbXBvbmVudCA9ICcnO1xyXG4gICAgaW5mb0FyZWFJZCA9ICcnO1xyXG4gICAgZ3VpZCA9IGAke3RoaXMuUzQoKX0ke3RoaXMuUzQoKX0tJHt0aGlzLlM0KCl9LSR7dGhpcy5TNCgpfS0ke3RoaXMuUzQoKX0tJHt0aGlzLlM0KCl9JHt0aGlzLlM0KCl9JHt0aGlzLlM0KCl9YDtcclxuXHJcbiAgICAvKiogR1VJRCAqL1xyXG4gICAgcHJpdmF0ZSBTNCgpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IHJhbiA9ICgxICsgTWF0aC5yYW5kb20oKSkgKiAweDEwMDAwO1xyXG4gICAgICAgIHJldHVybiAocmFuIHwgMCkudG9TdHJpbmcoMTYpLnN1YnN0cmluZygxKTtcclxuICAgIH1cclxuICAgIC8qKiBHVUlEICovXHJcbn1cclxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
//@@tag-Version-2201011
|
|
2
2
|
export class BaseModuleConfigSiteAccessValuesModel {
|
|
3
3
|
}
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZU1vZHVsZUNvbmZpZ1NpdGVBY2Nlc3NWYWx1ZXNNb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL250ay1jbXMtYXBpL3NyYy9saWIvbW9kZWxzL2VudGl0eS9iYXNlLWNvbmZpZy9iYXNlTW9kdWxlQ29uZmlnU2l0ZUFjY2Vzc1ZhbHVlc01vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVCQUF1QjtBQUN2QixNQUFNLE9BQU8scUNBQXFDO0NBR2pEIiwic291cmNlc0NvbnRlbnQiOlsiLy9AQHRhZy1WZXJzaW9uLTIyMDEwMTFcclxuZXhwb3J0IGNsYXNzIEJhc2VNb2R1bGVDb25maWdTaXRlQWNjZXNzVmFsdWVzTW9kZWwge1xyXG4gIG1haW5EYXRhQ29udGVudFJvd0NvdW50OiBudW1iZXI7XHJcbiAgdXNlRGF0YURlZmF1bHRlU2l0ZUlkOiBudW1iZXI7XHJcbn1cclxuXHJcbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from './cmsStore';
|
|
2
|
-
export * from './reducer.factory';
|
|
3
2
|
export * from './ntkCmsApiStore.interface';
|
|
4
3
|
export * from './ntkCmsApiStore.service';
|
|
5
|
-
|
|
4
|
+
export * from './reducer.factory';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2V4cG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL250ay1jbXMtYXBpL3NyYy9saWIvcmVkdWNlcnMvX2V4cG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY21zU3RvcmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL250a0Ntc0FwaVN0b3JlLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbnRrQ21zQXBpU3RvcmUuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcmVkdWNlci5mYWN0b3J5JztcclxuXHJcblxyXG4iXX0=
|
|
@@ -1,42 +1,41 @@
|
|
|
1
1
|
// Import the core angular services.
|
|
2
|
-
import { BehaviorSubject } from 'rxjs';
|
|
2
|
+
import { BehaviorSubject, Subject } from 'rxjs';
|
|
3
3
|
import { distinctUntilChanged, map } from 'rxjs/operators';
|
|
4
4
|
// ----------------------------------------------------------------------------------- //
|
|
5
5
|
// ----------------------------------------------------------------------------------- //
|
|
6
6
|
export class CmsStore {
|
|
7
|
-
// I initialize the simple store with the givne initial state value.
|
|
8
7
|
constructor(initialState) {
|
|
8
|
+
this.sub = new Subject();
|
|
9
|
+
this.state = initialState;
|
|
9
10
|
this.stateSubject = new BehaviorSubject(initialState);
|
|
11
|
+
// @ts-ignore
|
|
12
|
+
window.getInfo = () => this.state;
|
|
10
13
|
}
|
|
11
|
-
// ---
|
|
12
|
-
// PUBLIC METHODS.
|
|
13
|
-
// ---
|
|
14
|
-
// I get the current state as a stream (will always emit the current state value as
|
|
15
|
-
// the first item in the stream).
|
|
16
|
-
getState() {
|
|
17
|
-
return (this.stateSubject.pipe(distinctUntilChanged()));
|
|
18
|
-
}
|
|
19
|
-
// I get the current state snapshot.
|
|
20
14
|
getStateSnapshot() {
|
|
21
15
|
return (this.stateSubject.getValue());
|
|
22
16
|
}
|
|
23
|
-
|
|
24
|
-
|
|
17
|
+
setState(partialState) {
|
|
18
|
+
const currentState = this.getStateSnapshot();
|
|
19
|
+
this.state = Object.assign({}, currentState, partialState);
|
|
20
|
+
this.sub.next(this.state);
|
|
21
|
+
this.stateSubject.next(this.state);
|
|
22
|
+
}
|
|
23
|
+
getStateDirect() {
|
|
24
|
+
return (this.stateSubject.pipe(distinctUntilChanged()));
|
|
25
|
+
}
|
|
26
|
+
getState(mapFn) {
|
|
27
|
+
if (typeof mapFn !== 'function') {
|
|
28
|
+
throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');
|
|
29
|
+
}
|
|
30
|
+
return this.sub.asObservable()
|
|
31
|
+
.pipe(map(mapFn))
|
|
32
|
+
.pipe(distinctUntilChanged());
|
|
33
|
+
}
|
|
25
34
|
select(key) {
|
|
26
35
|
const selectStream = this.stateSubject.pipe(map((state) => {
|
|
27
36
|
return (state[key]);
|
|
28
37
|
}), distinctUntilChanged());
|
|
29
38
|
return (selectStream);
|
|
30
39
|
}
|
|
31
|
-
// I move the store to a new state by merging the given partial state into the
|
|
32
|
-
// existing state (creating a new state object).
|
|
33
|
-
// --
|
|
34
|
-
// CAUTION: Partial<T> does not currently project against "undefined" values. This is
|
|
35
|
-
// a known type safety issue in TypeScript.
|
|
36
|
-
setState(partialState) {
|
|
37
|
-
const currentState = this.getStateSnapshot();
|
|
38
|
-
const nextState = Object.assign({}, currentState, partialState);
|
|
39
|
-
this.stateSubject.next(nextState);
|
|
40
|
-
}
|
|
41
40
|
}
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zU3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udGstY21zLWFwaS9zcmMvbGliL3JlZHVjZXJzL2Ntc1N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0QseUZBQXlGO0FBQ3pGLHlGQUF5RjtBQUV6RixNQUFNLE9BQU8sUUFBUTtJQUluQixZQUFZLFlBQXlCO1FBRjdCLFFBQUcsR0FBeUIsSUFBSSxPQUFPLEVBQWUsQ0FBQztRQUc3RCxJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQztRQUMxQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RELGFBQWE7UUFDYixNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUNNLGdCQUFnQjtRQUNyQixPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFDRCxRQUFRLENBQUMsWUFBa0M7UUFDekMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsY0FBYztRQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ0QsUUFBUSxDQUFJLEtBQStDO1FBQ3pELElBQUksT0FBTyxLQUFLLEtBQUssVUFBVSxFQUFFO1lBQy9CLE1BQU0sSUFBSSxTQUFTLENBQUMsNERBQTRELENBQUMsQ0FBQztTQUNuRjtRQUNELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUU7YUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNoQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxNQUFNLENBQThCLEdBQU07UUFDeEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ3pDLEdBQUcsQ0FDRCxDQUFDLEtBQWtCLEVBQUUsRUFBRTtZQUNyQixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdEIsQ0FBQyxDQUNGLEVBQ0Qsb0JBQW9CLEVBQUUsQ0FDdkIsQ0FBQztRQUNGLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN4QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnQgdGhlIGNvcmUgYW5ndWxhciBzZXJ2aWNlcy5cclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAvL1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAvL1xyXG5cclxuZXhwb3J0IGNsYXNzIENtc1N0b3JlPFRTdGF0ZU1vZGVsID0gYW55PiB7XHJcbiAgcHJpdmF0ZSBzdGF0ZTogVFN0YXRlTW9kZWw7XHJcbiAgcHJpdmF0ZSBzdWI6IFN1YmplY3Q8VFN0YXRlTW9kZWw+ID0gbmV3IFN1YmplY3Q8VFN0YXRlTW9kZWw+KCk7XHJcbiAgcHJpdmF0ZSBzdGF0ZVN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxUU3RhdGVNb2RlbD47XHJcbiAgY29uc3RydWN0b3IoaW5pdGlhbFN0YXRlOiBUU3RhdGVNb2RlbCkge1xyXG4gICAgdGhpcy5zdGF0ZSA9IGluaXRpYWxTdGF0ZTtcclxuICAgIHRoaXMuc3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdChpbml0aWFsU3RhdGUpO1xyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgd2luZG93LmdldEluZm8gPSAoKSA9PiB0aGlzLnN0YXRlO1xyXG4gIH1cclxuICBwdWJsaWMgZ2V0U3RhdGVTbmFwc2hvdCgpOiBUU3RhdGVNb2RlbCB7XHJcbiAgICByZXR1cm4gKHRoaXMuc3RhdGVTdWJqZWN0LmdldFZhbHVlKCkpO1xyXG4gIH1cclxuICBzZXRTdGF0ZShwYXJ0aWFsU3RhdGU6IFBhcnRpYWw8VFN0YXRlTW9kZWw+KTogdm9pZCB7XHJcbiAgICBjb25zdCBjdXJyZW50U3RhdGUgPSB0aGlzLmdldFN0YXRlU25hcHNob3QoKTtcclxuICAgIHRoaXMuc3RhdGUgPSBPYmplY3QuYXNzaWduKHt9LCBjdXJyZW50U3RhdGUsIHBhcnRpYWxTdGF0ZSk7XHJcbiAgICB0aGlzLnN1Yi5uZXh0KHRoaXMuc3RhdGUpO1xyXG4gICAgdGhpcy5zdGF0ZVN1YmplY3QubmV4dCh0aGlzLnN0YXRlKTtcclxuICB9XHJcbiAgZ2V0U3RhdGVEaXJlY3QoKTogT2JzZXJ2YWJsZTxUU3RhdGVNb2RlbD4ge1xyXG4gICAgcmV0dXJuICh0aGlzLnN0YXRlU3ViamVjdC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpKTtcclxuICB9XHJcbiAgZ2V0U3RhdGU8Uj4obWFwRm46ICh2YWx1ZTogVFN0YXRlTW9kZWwsIGluZGV4OiBudW1iZXIpID0+IFIpOiBPYnNlcnZhYmxlPFI+IHtcclxuICAgIGlmICh0eXBlb2YgbWFwRm4gIT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignYXJndW1lbnQgaXMgbm90IGEgZnVuY3Rpb24uIEFyZSB5b3UgbG9va2luZyBmb3IgYG1hcFRvKClgPycpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuc3ViLmFzT2JzZXJ2YWJsZSgpXHJcbiAgICAgIC5waXBlKG1hcChtYXBGbikpXHJcbiAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xyXG4gIH1cclxuICBzZWxlY3Q8SyBleHRlbmRzIGtleW9mIFRTdGF0ZU1vZGVsPihrZXk6IEspOiBPYnNlcnZhYmxlPFRTdGF0ZU1vZGVsW0tdPiB7XHJcbiAgICBjb25zdCBzZWxlY3RTdHJlYW0gPSB0aGlzLnN0YXRlU3ViamVjdC5waXBlKFxyXG4gICAgICBtYXAoXHJcbiAgICAgICAgKHN0YXRlOiBUU3RhdGVNb2RlbCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIChzdGF0ZVtrZXldKTtcclxuICAgICAgICB9XHJcbiAgICAgICksXHJcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gKHNlbGVjdFN0cmVhbSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnRrQ21zQXBpU3RvcmUuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnRrLWNtcy1hcGkvc3JjL2xpYi9yZWR1Y2Vycy9udGtDbXNBcGlTdG9yZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2Nlc3NJbmZvTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZW50aXR5L2Jhc2UvcHJvY2Vzc0luZm9Nb2RlbCc7XHJcbmltcG9ydCB7IFRva2VuRGV2aWNlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZW50aXR5L2NvcmUtdG9rZW4vdG9rZW5EZXZpY2VNb2RlbCc7XHJcbmltcG9ydCB7IFRva2VuSW5mb01vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2VudGl0eS9jb3JlLXRva2VuL3Rva2VuSW5mb01vZGVsJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTnRrQ21zQXBpU3RvcmVJbnRlcmZhY2Uge1xyXG4gIHRva2VuSW5mb1N0b3JlOiBUb2tlbkluZm9Nb2RlbDtcclxuICBkZXZpY2VUb2tlbkluZm9TdG9yZTogVG9rZW5EZXZpY2VNb2RlbDtcclxuICBpc0xvYWRpbmdTdG9yZTogYm9vbGVhbjtcclxuICBwcm9jZXNzSW5mb1N0b3JlOiBNYXA8c3RyaW5nLCBQcm9jZXNzSW5mb01vZGVsPjtcclxufVxyXG4iXX0=
|
|
@@ -1,15 +1,8 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { BehaviorSubject, Subject } from 'rxjs';
|
|
3
3
|
import { distinctUntilChanged, map } from 'rxjs/operators';
|
|
4
|
-
import {
|
|
5
|
-
import { TokenInfoModel } from '../models/entity/core-token/tokenInfoModel';
|
|
4
|
+
import { initialState, stateReducer } from './reducer.factory';
|
|
6
5
|
import * as i0 from "@angular/core";
|
|
7
|
-
const initialState = {
|
|
8
|
-
isLoading: true,
|
|
9
|
-
tokenInfo: new TokenInfoModel(),
|
|
10
|
-
deviceTokenInfo: new TokenDeviceModel(),
|
|
11
|
-
inProcessingList: []
|
|
12
|
-
};
|
|
13
6
|
export class NtkCmsApiStoreService {
|
|
14
7
|
constructor() {
|
|
15
8
|
this.sub = new Subject();
|
|
@@ -20,6 +13,9 @@ export class NtkCmsApiStoreService {
|
|
|
20
13
|
// @ts-ignore
|
|
21
14
|
window.getInfo = () => this.state;
|
|
22
15
|
}
|
|
16
|
+
getStateSnapshot() {
|
|
17
|
+
return (this.stateSubject.getValue());
|
|
18
|
+
}
|
|
23
19
|
setState(param) {
|
|
24
20
|
Object.assign(this.state.ntkCmsAPiState, stateReducer(this.state.ntkCmsAPiState, param));
|
|
25
21
|
this.sub.next(this.state);
|
|
@@ -33,40 +29,8 @@ export class NtkCmsApiStoreService {
|
|
|
33
29
|
.pipe(map(mapFn))
|
|
34
30
|
.pipe(distinctUntilChanged());
|
|
35
31
|
}
|
|
36
|
-
|
|
37
|
-
return (this.stateSubject.
|
|
38
|
-
}
|
|
39
|
-
processStart(name) {
|
|
40
|
-
if (this.state?.ntkCmsAPiState?.inProcessingList) {
|
|
41
|
-
const index = this.state.ntkCmsAPiState.inProcessingList.indexOf(name);
|
|
42
|
-
if (index < 0) {
|
|
43
|
-
// console.log('processStart 1', this.state.ntkCmsAPiState.inProcessingList);
|
|
44
|
-
const list = [...this.state.ntkCmsAPiState.inProcessingList];
|
|
45
|
-
list.push(name);
|
|
46
|
-
// console.log('processStart 2', this.state.ntkCmsAPiState.inProcessingList);
|
|
47
|
-
this.setState({ type: SET_IN_PROCESSING_LIST, payload: list });
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
processInRun(name) {
|
|
52
|
-
if (this.state?.ntkCmsAPiState?.inProcessingList) {
|
|
53
|
-
const index = this.state.ntkCmsAPiState.inProcessingList.indexOf(name);
|
|
54
|
-
if (index >= 0)
|
|
55
|
-
return true;
|
|
56
|
-
}
|
|
57
|
-
return false;
|
|
58
|
-
}
|
|
59
|
-
processStop(name) {
|
|
60
|
-
if (this.state?.ntkCmsAPiState?.inProcessingList) {
|
|
61
|
-
const index = this.state.ntkCmsAPiState.inProcessingList.indexOf(name);
|
|
62
|
-
if (index >= 0) {
|
|
63
|
-
// console.log('processStop 1', this.state.ntkCmsAPiState.inProcessingList);
|
|
64
|
-
const list = [...this.state.ntkCmsAPiState.inProcessingList];
|
|
65
|
-
list.splice(index, 1);
|
|
66
|
-
// console.log('processStop 2', this.state.ntkCmsAPiState.inProcessingList);
|
|
67
|
-
this.setState({ type: SET_IN_PROCESSING_LIST, payload: list });
|
|
68
|
-
}
|
|
69
|
-
}
|
|
32
|
+
getStateDirect() {
|
|
33
|
+
return (this.stateSubject.pipe(distinctUntilChanged()));
|
|
70
34
|
}
|
|
71
35
|
}
|
|
72
36
|
NtkCmsApiStoreService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NtkCmsApiStoreService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -77,43 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
77
41
|
providedIn: 'root',
|
|
78
42
|
}]
|
|
79
43
|
}], ctorParameters: function () { return []; } });
|
|
80
|
-
|
|
81
|
-
export function stateReducer(state = initialState, action) {
|
|
82
|
-
switch (action.type) {
|
|
83
|
-
case SET_LOADING_STATE:
|
|
84
|
-
return { ...state, isLoading: action.payload };
|
|
85
|
-
case SET_TOKEN_INFO:
|
|
86
|
-
return { ...state, tokenInfo: action.payload };
|
|
87
|
-
case SET_DEVICE_TOKEN_INFO:
|
|
88
|
-
return { ...state, deviceTokenInfo: action.payload };
|
|
89
|
-
case SET_IN_PROCESSING_LIST:
|
|
90
|
-
return { ...state, inProcessingList: action.payload };
|
|
91
|
-
default:
|
|
92
|
-
return initialState;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
export const SET_LOADING_STATE = 'SET_LOADING_STATE';
|
|
96
|
-
export const SET_TOKEN_INFO = 'SET_TOKEN_INFO';
|
|
97
|
-
export const SET_DEVICE_TOKEN_INFO = 'SET_DEVICE_TOKEN_INFO';
|
|
98
|
-
export const SET_IN_PROCESSING_LIST = 'SET_IN_PROCESSING_LIST';
|
|
99
|
-
export class SetLoadingState {
|
|
100
|
-
constructor() {
|
|
101
|
-
this.type = SET_LOADING_STATE;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
export class SetTokenInfoState {
|
|
105
|
-
constructor() {
|
|
106
|
-
this.type = SET_TOKEN_INFO;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
export class SetDeviceTokenInfoState {
|
|
110
|
-
constructor() {
|
|
111
|
-
this.type = SET_DEVICE_TOKEN_INFO;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
export class SetInProcessingList {
|
|
115
|
-
constructor() {
|
|
116
|
-
this.type = SET_IN_PROCESSING_LIST;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnRrQ21zQXBpU3RvcmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL250ay1jbXMtYXBpL3NyYy9saWIvcmVkdWNlcnMvbnRrQ21zQXBpU3RvcmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNENBQTRDLENBQUM7O0FBSTVFLE1BQU0sWUFBWSxHQUE0QjtJQUM1QyxTQUFTLEVBQUUsSUFBSTtJQUNmLFNBQVMsRUFBRSxJQUFJLGNBQWMsRUFBRTtJQUMvQixlQUFlLEVBQUUsSUFBSSxnQkFBZ0IsRUFBRTtJQUN2QyxnQkFBZ0IsRUFBRSxFQUFFO0NBQ3JCLENBQUM7QUFLRixNQUFNLE9BQU8scUJBQXFCO0lBS2hDO1FBSFEsUUFBRyxHQUFzQixJQUFJLE9BQU8sRUFBWSxDQUFDO1FBSXZELElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxjQUFjLEVBQUUsWUFBWTtTQUM3QixDQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFcEQsYUFBYTtRQUNiLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQWM7UUFFckIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxZ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IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVG9rZW5EZXZpY2VNb2RlbCB9IGZyb20gJy4uL21vZGVscy9lbnRpdHkvY29yZS10b2tlbi90b2tlbkRldmljZU1vZGVsJztcclxuaW1wb3J0IHsgVG9rZW5JbmZvTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZW50aXR5L2NvcmUtdG9rZW4vdG9rZW5JbmZvTW9kZWwnO1xyXG5pbXBvcnQgeyBOdGtDbXNBcGlTdG9yZUludGVyZmFjZSB9IGZyb20gJy4vbnRrQ21zQXBpU3RvcmUuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQXBwU3RvcmUgfSBmcm9tICcuL3JlZHVjZXIuZmFjdG9yeSc7XHJcblxyXG5jb25zdCBpbml0aWFsU3RhdGU6IE50a0Ntc0FwaVN0b3JlSW50ZXJmYWNlID0ge1xyXG4gIGlzTG9hZGluZzogdHJ1ZSxcclxuICB0b2tlbkluZm86IG5ldyBUb2tlbkluZm9Nb2RlbCgpLFxyXG4gIGRldmljZVRva2VuSW5mbzogbmV3IFRva2VuRGV2aWNlTW9kZWwoKSxcclxuICBpblByb2Nlc3NpbmdMaXN0OiBbXVxyXG59O1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE50a0Ntc0FwaVN0b3JlU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBzdGF0ZTogQXBwU3RvcmU7XHJcbiAgcHJpdmF0ZSBzdWI6IFN1YmplY3Q8QXBwU3RvcmU+ID0gbmV3IFN1YmplY3Q8QXBwU3RvcmU+KCk7XHJcbiAgcHJpdmF0ZSBzdGF0ZVN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxBcHBTdG9yZT47XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgbnRrQ21zQVBpU3RhdGU6IGluaXRpYWxTdGF0ZSxcclxuICAgIH07XHJcbiAgICB0aGlzLnN0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5zdGF0ZSk7XHJcblxyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgd2luZG93LmdldEluZm8gPSAoKSA9PiB0aGlzLnN0YXRlO1xyXG4gIH1cclxuXHJcbiAgc2V0U3RhdGUocGFyYW06IEFjdGlvbnMpOiB2b2lkIHtcclxuXHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMuc3RhdGUubnRrQ21zQVBpU3RhdGUsIHN0YXRlUmVkdWNlcih0aGlzLnN0YXRlLm50a0Ntc0FQaVN0YXRlLCBwYXJhbSkpO1xyXG4gICAgdGhpcy5zdWIubmV4dCh0aGlzLnN0YXRlKTtcclxuICAgIHRoaXMuc3RhdGVTdWJqZWN0Lm5leHQodGhpcy5zdGF0ZSk7XHJcbiAgfVxyXG5cclxuICBnZXRTdGF0ZTxSPihtYXBGbjogKHZhbHVlOiBBcHBTdG9yZSwgaW5kZXg6IG51bWJlcikgPT4gUik6IE9ic2VydmFibGU8Uj4ge1xyXG4gICAgaWYgKHR5cGVvZiBtYXBGbiAhPT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdhcmd1bWVudCBpcyBub3QgYSBmdW5jdGlvbi4gQXJlIHlvdSBsb29raW5nIGZvciBgbWFwVG8oKWA/Jyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5zdWIuYXNPYnNlcnZhYmxlKClcclxuICAgICAgLnBpcGUobWFwKG1hcEZuKSlcclxuICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXRTdGF0ZVNuYXBzaG90KCk6IEFwcFN0b3JlIHtcclxuICAgIHJldHVybiAodGhpcy5zdGF0ZVN1YmplY3QuZ2V0VmFsdWUoKSk7XHJcbiAgfVxyXG4gIHByb2Nlc3NTdGFydChuYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnN0YXRlPy5udGtDbXNBUGlTdGF0ZT8uaW5Qcm9jZXNzaW5nTGlzdCkge1xyXG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuc3RhdGUubnRrQ21zQVBpU3RhdGUuaW5Qcm9jZXNzaW5nTGlzdC5pbmRleE9mKG5hbWUpO1xyXG4gICAgICBpZiAoaW5kZXggPCAwKSB7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ3Byb2Nlc3NTdGFydCAxJywgdGhpcy5zdGF0ZS5udGtDbXNBUGlTdGF0ZS5pblByb2Nlc3NpbmdMaXN0KTtcclxuICAgICAgICBjb25zdCBsaXN0ID0gWy4uLnRoaXMuc3RhdGUubnRrQ21zQVBpU3RhdGUuaW5Qcm9jZXNzaW5nTGlzdF07XHJcbiAgICAgICAgbGlzdC5wdXNoKG5hbWUpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdwcm9jZXNzU3RhcnQgMicsIHRoaXMuc3RhdGUubnRrQ21zQVBpU3RhdGUuaW5Qcm9jZXNzaW5nTGlzdCk7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHR5cGU6IFNFVF9JTl9QUk9DRVNTSU5HX0xJU1QsIHBheWxvYWQ6IGxpc3QgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcHJvY2Vzc0luUnVuKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuc3RhdGU/Lm50a0Ntc0FQaVN0YXRlPy5pblByb2Nlc3NpbmdMaXN0KSB7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zdGF0ZS5udGtDbXNBUGlTdGF0ZS5pblByb2Nlc3NpbmdMaXN0LmluZGV4T2YobmFtZSk7XHJcbiAgICAgIGlmIChpbmRleCA+PSAwKVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBwcm9jZXNzU3RvcChuYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnN0YXRlPy5udGtDbXNBUGlTdGF0ZT8uaW5Qcm9jZXNzaW5nTGlzdCkge1xyXG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuc3RhdGUubnRrQ21zQVBpU3RhdGUuaW5Qcm9jZXNzaW5nTGlzdC5pbmRleE9mKG5hbWUpO1xyXG4gICAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdwcm9jZXNzU3RvcCAxJywgdGhpcy5zdGF0ZS5udGtDbXNBUGlTdGF0ZS5pblByb2Nlc3NpbmdMaXN0KTtcclxuICAgICAgICBjb25zdCBsaXN0ID0gWy4uLnRoaXMuc3RhdGUubnRrQ21zQVBpU3RhdGUuaW5Qcm9jZXNzaW5nTGlzdF07XHJcbiAgICAgICAgbGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdwcm9jZXNzU3RvcCAyJywgdGhpcy5zdGF0ZS5udGtDbXNBUGlTdGF0ZS5pblByb2Nlc3NpbmdMaXN0KTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgdHlwZTogU0VUX0lOX1BST0NFU1NJTkdfTElTVCwgcGF5bG9hZDogbGlzdCB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG4vLyBSRURVQ0VSU1xyXG5leHBvcnQgZnVuY3Rpb24gc3RhdGVSZWR1Y2VyKHN0YXRlOiBOdGtDbXNBcGlTdG9yZUludGVyZmFjZSA9IGluaXRpYWxTdGF0ZSwgYWN0aW9uOiBBY3Rpb25zKTogTnRrQ21zQXBpU3RvcmVJbnRlcmZhY2Uge1xyXG4gIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcclxuICAgIGNhc2UgU0VUX0xPQURJTkdfU1RBVEU6XHJcbiAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBpc0xvYWRpbmc6IGFjdGlvbi5wYXlsb2FkIH07XHJcbiAgICBjYXNlIFNFVF9UT0tFTl9JTkZPOlxyXG4gICAgICByZXR1cm4geyAuLi5zdGF0ZSwgdG9rZW5JbmZvOiBhY3Rpb24ucGF5bG9hZCB9O1xyXG4gICAgY2FzZSBTRVRfREVWSUNFX1RPS0VOX0lORk86XHJcbiAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBkZXZpY2VUb2tlbkluZm86IGFjdGlvbi5wYXlsb2FkIH07XHJcbiAgICBjYXNlIFNFVF9JTl9QUk9DRVNTSU5HX0xJU1Q6XHJcbiAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBpblByb2Nlc3NpbmdMaXN0OiBhY3Rpb24ucGF5bG9hZCB9O1xyXG4gICAgZGVmYXVsdDpcclxuICAgICAgcmV0dXJuIGluaXRpYWxTdGF0ZTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vLyBBQ1RJT05TXHJcbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uSW50ZXJmYWNlIHtcclxuICByZWFkb25seSB0eXBlOiBzdHJpbmc7XHJcbiAgcGF5bG9hZD86IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFNFVF9MT0FESU5HX1NUQVRFID0gJ1NFVF9MT0FESU5HX1NUQVRFJztcclxuZXhwb3J0IGNvbnN0IFNFVF9UT0tFTl9JTkZPID0gJ1NFVF9UT0tFTl9JTkZPJztcclxuZXhwb3J0IGNvbnN0IFNFVF9ERVZJQ0VfVE9LRU5fSU5GTyA9ICdTRVRfREVWSUNFX1RPS0VOX0lORk8nO1xyXG5leHBvcnQgY29uc3QgU0VUX0lOX1BST0NFU1NJTkdfTElTVCA9ICdTRVRfSU5fUFJPQ0VTU0lOR19MSVNUJztcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgU2V0TG9hZGluZ1N0YXRlIGltcGxlbWVudHMgQWN0aW9uSW50ZXJmYWNlIHtcclxuICByZWFkb25seSB0eXBlID0gU0VUX0xPQURJTkdfU1RBVEU7XHJcbiAgcGF5bG9hZDogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNldFRva2VuSW5mb1N0YXRlIGltcGxlbWVudHMgQWN0aW9uSW50ZXJmYWNlIHtcclxuICByZWFkb25seSB0eXBlID0gU0VUX1RPS0VOX0lORk87XHJcbiAgcGF5bG9hZDogVG9rZW5JbmZvTW9kZWw7XHJcbn1cclxuZXhwb3J0IGNsYXNzIFNldERldmljZVRva2VuSW5mb1N0YXRlIGltcGxlbWVudHMgQWN0aW9uSW50ZXJmYWNlIHtcclxuICByZWFkb25seSB0eXBlID0gU0VUX0RFVklDRV9UT0tFTl9JTkZPO1xyXG4gIHBheWxvYWQ6IFRva2VuRGV2aWNlTW9kZWw7XHJcbn1cclxuZXhwb3J0IGNsYXNzIFNldEluUHJvY2Vzc2luZ0xpc3QgaW1wbGVtZW50cyBBY3Rpb25JbnRlcmZhY2Uge1xyXG4gIHJlYWRvbmx5IHR5cGUgPSBTRVRfSU5fUFJPQ0VTU0lOR19MSVNUO1xyXG4gIHBheWxvYWQ6IEFycmF5PHN0cmluZz47XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEFjdGlvbnMgPSBTZXRMb2FkaW5nU3RhdGUgfCBTZXREZXZpY2VUb2tlbkluZm9TdGF0ZSB8IFNldFRva2VuSW5mb1N0YXRlIHwgU2V0SW5Qcm9jZXNzaW5nTGlzdDtcclxuIl19
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnRrQ21zQXBpU3RvcmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL250ay1jbXMtYXBpL3NyYy9saWIvcmVkdWNlcnMvbnRrQ21zQXBpU3RvcmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEVBQTBCLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFNdkYsTUFBTSxPQUFPLHFCQUFxQjtJQUloQztRQUZRLFFBQUcsR0FBMkIsSUFBSSxPQUFPLEVBQWlCLENBQUM7UUFHakUsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLGNBQWMsRUFBRSxZQUFZO1NBQzdCLENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRCxhQUFhO1FBQ2IsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUFDTSxnQkFBZ0I7UUFDckIsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBQ0QsUUFBUSxDQUFDLEtBQWM7UUFDckIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN6RixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxRQUFRLENBQUksS0FBaUQ7UUFDM0QsSUFBSSxPQUFPLEtBQUssS0FBSyxVQUFVLEVBQUU7WUFDL0IsTUFBTSxJQUFJLFNBQVMsQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO1NBQ25GO1FBQ0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRTthQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2hCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELGNBQWM7UUFDWixPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQzs7bUhBOUJVLHFCQUFxQjt1SEFBckIscUJBQXFCLGNBRnBCLE1BQU07NEZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFjdGlvbnMsIEFwcFN0b3JlTW9kZWwsIGluaXRpYWxTdGF0ZSwgc3RhdGVSZWR1Y2VyIH0gZnJvbSAnLi9yZWR1Y2VyLmZhY3RvcnknO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOdGtDbXNBcGlTdG9yZVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgc3RhdGU6IEFwcFN0b3JlTW9kZWw7XHJcbiAgcHJpdmF0ZSBzdWI6IFN1YmplY3Q8QXBwU3RvcmVNb2RlbD4gPSBuZXcgU3ViamVjdDxBcHBTdG9yZU1vZGVsPigpO1xyXG4gIHByaXZhdGUgc3RhdGVTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8QXBwU3RvcmVNb2RlbD47XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICBudGtDbXNBUGlTdGF0ZTogaW5pdGlhbFN0YXRlLFxyXG4gICAgfTtcclxuICAgIHRoaXMuc3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLnN0YXRlKTtcclxuICAgIC8vIEB0cy1pZ25vcmVcclxuICAgIHdpbmRvdy5nZXRJbmZvID0gKCkgPT4gdGhpcy5zdGF0ZTtcclxuICB9XHJcbiAgcHVibGljIGdldFN0YXRlU25hcHNob3QoKTogQXBwU3RvcmVNb2RlbCB7XHJcbiAgICByZXR1cm4gKHRoaXMuc3RhdGVTdWJqZWN0LmdldFZhbHVlKCkpO1xyXG4gIH1cclxuICBzZXRTdGF0ZShwYXJhbTogQWN0aW9ucyk6IHZvaWQge1xyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLnN0YXRlLm50a0Ntc0FQaVN0YXRlLCBzdGF0ZVJlZHVjZXIodGhpcy5zdGF0ZS5udGtDbXNBUGlTdGF0ZSwgcGFyYW0pKTtcclxuICAgIHRoaXMuc3ViLm5leHQodGhpcy5zdGF0ZSk7XHJcbiAgICB0aGlzLnN0YXRlU3ViamVjdC5uZXh0KHRoaXMuc3RhdGUpO1xyXG4gIH1cclxuICBnZXRTdGF0ZTxSPihtYXBGbjogKHZhbHVlOiBBcHBTdG9yZU1vZGVsLCBpbmRleDogbnVtYmVyKSA9PiBSKTogT2JzZXJ2YWJsZTxSPiB7XHJcbiAgICBpZiAodHlwZW9mIG1hcEZuICE9PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2FyZ3VtZW50IGlzIG5vdCBhIGZ1bmN0aW9uLiBBcmUgeW91IGxvb2tpbmcgZm9yIGBtYXBUbygpYD8nKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLnN1Yi5hc09ic2VydmFibGUoKVxyXG4gICAgICAucGlwZShtYXAobWFwRm4pKVxyXG4gICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcclxuICB9XHJcbiAgZ2V0U3RhdGVEaXJlY3QoKTogT2JzZXJ2YWJsZTxBcHBTdG9yZU1vZGVsPiB7XHJcbiAgICByZXR1cm4gKHRoaXMuc3RhdGVTdWJqZWN0LnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSkpO1xyXG4gIH1cclxuXHJcblxyXG59XHJcblxyXG4iXX0=
|
|
@@ -1,2 +1,48 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { TokenDeviceModel } from '../models/entity/core-token/tokenDeviceModel';
|
|
2
|
+
import { TokenInfoModel } from '../models/entity/core-token/tokenInfoModel';
|
|
3
|
+
export const initialState = {
|
|
4
|
+
isLoadingStore: true,
|
|
5
|
+
tokenInfoStore: new TokenInfoModel(),
|
|
6
|
+
deviceTokenInfoStore: new TokenDeviceModel(),
|
|
7
|
+
processInfoStore: new Map(),
|
|
8
|
+
};
|
|
9
|
+
// REDUCERS
|
|
10
|
+
export function stateReducer(state = initialState, action) {
|
|
11
|
+
switch (action.type) {
|
|
12
|
+
case SET_LOADING_STATE:
|
|
13
|
+
return { ...state, isLoadingStore: action.payload };
|
|
14
|
+
case SET_TOKEN_INFO:
|
|
15
|
+
return { ...state, tokenInfoStore: action.payload };
|
|
16
|
+
case SET_DEVICE_TOKEN_INFO:
|
|
17
|
+
return { ...state, deviceTokenInfoStore: action.payload };
|
|
18
|
+
case SET_IN_PROCESSING_LIST:
|
|
19
|
+
return { ...state, processInfoStore: action.payload };
|
|
20
|
+
default:
|
|
21
|
+
return initialState;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export const SET_LOADING_STATE = 'SET_LOADING_STATE';
|
|
25
|
+
export const SET_TOKEN_INFO = 'SET_TOKEN_INFO';
|
|
26
|
+
export const SET_DEVICE_TOKEN_INFO = 'SET_DEVICE_TOKEN_INFO';
|
|
27
|
+
export const SET_IN_PROCESSING_LIST = 'SET_IN_PROCESSING_LIST';
|
|
28
|
+
export class SetLoadingState {
|
|
29
|
+
constructor() {
|
|
30
|
+
this.type = SET_LOADING_STATE;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export class SetTokenInfoState {
|
|
34
|
+
constructor() {
|
|
35
|
+
this.type = SET_TOKEN_INFO;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export class SetDeviceTokenInfoState {
|
|
39
|
+
constructor() {
|
|
40
|
+
this.type = SET_DEVICE_TOKEN_INFO;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export class SetProcessInfoStore {
|
|
44
|
+
constructor() {
|
|
45
|
+
this.type = SET_IN_PROCESSING_LIST;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdWNlci5mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnRrLWNtcy1hcGkvc3JjL2xpYi9yZWR1Y2Vycy9yZWR1Y2VyLmZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBTTVFLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBNEI7SUFDbkQsY0FBYyxFQUFFLElBQUk7SUFDcEIsY0FBYyxFQUFFLElBQUksY0FBYyxFQUFFO0lBQ3BDLG9CQUFvQixFQUFFLElBQUksZ0JBQWdCLEVBQUU7SUFDNUMsZ0JBQWdCLEVBQUUsSUFBSSxHQUFHLEVBQTRCO0NBQ3RELENBQUM7QUFHRixXQUFXO0FBQ1gsTUFBTSxVQUFVLFlBQVksQ0FBQyxRQUFpQyxZQUFZLEVBQUUsTUFBZTtJQUN6RixRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUU7UUFDbkIsS0FBSyxpQkFBaUI7WUFDcEIsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDdEQsS0FBSyxjQUFjO1lBQ2pCLE9BQU8sRUFBRSxHQUFHLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3RELEtBQUsscUJBQXFCO1lBQ3hCLE9BQU8sRUFBRSxHQUFHLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDNUQsS0FBSyxzQkFBc0I7WUFDekIsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4RDtZQUNFLE9BQU8sWUFBWSxDQUFDO0tBQ3ZCO0FBQ0gsQ0FBQztBQVNELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLG1CQUFtQixDQUFDO0FBQ3JELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQztBQUMvQyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyx1QkFBdUIsQ0FBQztBQUM3RCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyx3QkFBd0IsQ0FBQztBQUcvRCxNQUFNLE9BQU8sZUFBZTtJQUE1QjtRQUNXLFNBQUksR0FBRyxpQkFBaUIsQ0FBQztJQUVwQyxDQUFDO0NBQUE7QUFFRCxNQUFNLE9BQU8saUJBQWlCO0lBQTlCO1FBQ1csU0FBSSxHQUFHLGNBQWMsQ0FBQztJQUVqQyxDQUFDO0NBQUE7QUFDRCxNQUFNLE9BQU8sdUJBQXVCO0lBQXBDO1FBQ1csU0FBSSxHQUFHLHFCQUFxQixDQUFDO0lBRXhDLENBQUM7Q0FBQTtBQUNELE1BQU0sT0FBTyxtQkFBbUI7SUFBaEM7UUFDVyxTQUFJLEdBQUcsc0JBQXNCLENBQUM7SUFFekMsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvY2Vzc0luZm9Nb2RlbCB9IGZyb20gJy4uL21vZGVscy9lbnRpdHkvYmFzZS9wcm9jZXNzSW5mb01vZGVsJztcclxuaW1wb3J0IHsgVG9rZW5EZXZpY2VNb2RlbCB9IGZyb20gJy4uL21vZGVscy9lbnRpdHkvY29yZS10b2tlbi90b2tlbkRldmljZU1vZGVsJztcclxuaW1wb3J0IHsgVG9rZW5JbmZvTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZW50aXR5L2NvcmUtdG9rZW4vdG9rZW5JbmZvTW9kZWwnO1xyXG5pbXBvcnQgeyBOdGtDbXNBcGlTdG9yZUludGVyZmFjZSB9IGZyb20gJy4vbnRrQ21zQXBpU3RvcmUuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXBwU3RvcmVNb2RlbCB7XHJcbiAgbnRrQ21zQVBpU3RhdGU6IE50a0Ntc0FwaVN0b3JlSW50ZXJmYWNlO1xyXG59XHJcbmV4cG9ydCBjb25zdCBpbml0aWFsU3RhdGU6IE50a0Ntc0FwaVN0b3JlSW50ZXJmYWNlID0ge1xyXG4gIGlzTG9hZGluZ1N0b3JlOiB0cnVlLFxyXG4gIHRva2VuSW5mb1N0b3JlOiBuZXcgVG9rZW5JbmZvTW9kZWwoKSxcclxuICBkZXZpY2VUb2tlbkluZm9TdG9yZTogbmV3IFRva2VuRGV2aWNlTW9kZWwoKSxcclxuICBwcm9jZXNzSW5mb1N0b3JlOiBuZXcgTWFwPHN0cmluZywgUHJvY2Vzc0luZm9Nb2RlbD4oKSxcclxufTtcclxuXHJcblxyXG4vLyBSRURVQ0VSU1xyXG5leHBvcnQgZnVuY3Rpb24gc3RhdGVSZWR1Y2VyKHN0YXRlOiBOdGtDbXNBcGlTdG9yZUludGVyZmFjZSA9IGluaXRpYWxTdGF0ZSwgYWN0aW9uOiBBY3Rpb25zKTogTnRrQ21zQXBpU3RvcmVJbnRlcmZhY2Uge1xyXG4gIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcclxuICAgIGNhc2UgU0VUX0xPQURJTkdfU1RBVEU6XHJcbiAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBpc0xvYWRpbmdTdG9yZTogYWN0aW9uLnBheWxvYWQgfTtcclxuICAgIGNhc2UgU0VUX1RPS0VOX0lORk86XHJcbiAgICAgIHJldHVybiB7IC4uLnN0YXRlLCB0b2tlbkluZm9TdG9yZTogYWN0aW9uLnBheWxvYWQgfTtcclxuICAgIGNhc2UgU0VUX0RFVklDRV9UT0tFTl9JTkZPOlxyXG4gICAgICByZXR1cm4geyAuLi5zdGF0ZSwgZGV2aWNlVG9rZW5JbmZvU3RvcmU6IGFjdGlvbi5wYXlsb2FkIH07XHJcbiAgICBjYXNlIFNFVF9JTl9QUk9DRVNTSU5HX0xJU1Q6XHJcbiAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBwcm9jZXNzSW5mb1N0b3JlOiBhY3Rpb24ucGF5bG9hZCB9O1xyXG4gICAgZGVmYXVsdDpcclxuICAgICAgcmV0dXJuIGluaXRpYWxTdGF0ZTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vLyBBQ1RJT05TXHJcbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uSW50ZXJmYWNlIHtcclxuICByZWFkb25seSB0eXBlOiBzdHJpbmc7XHJcbiAgcGF5bG9hZD86IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFNFVF9MT0FESU5HX1NUQVRFID0gJ1NFVF9MT0FESU5HX1NUQVRFJztcclxuZXhwb3J0IGNvbnN0IFNFVF9UT0tFTl9JTkZPID0gJ1NFVF9UT0tFTl9JTkZPJztcclxuZXhwb3J0IGNvbnN0IFNFVF9ERVZJQ0VfVE9LRU5fSU5GTyA9ICdTRVRfREVWSUNFX1RPS0VOX0lORk8nO1xyXG5leHBvcnQgY29uc3QgU0VUX0lOX1BST0NFU1NJTkdfTElTVCA9ICdTRVRfSU5fUFJPQ0VTU0lOR19MSVNUJztcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgU2V0TG9hZGluZ1N0YXRlIGltcGxlbWVudHMgQWN0aW9uSW50ZXJmYWNlIHtcclxuICByZWFkb25seSB0eXBlID0gU0VUX0xPQURJTkdfU1RBVEU7XHJcbiAgcGF5bG9hZDogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNldFRva2VuSW5mb1N0YXRlIGltcGxlbWVudHMgQWN0aW9uSW50ZXJmYWNlIHtcclxuICByZWFkb25seSB0eXBlID0gU0VUX1RPS0VOX0lORk87XHJcbiAgcGF5bG9hZDogVG9rZW5JbmZvTW9kZWw7XHJcbn1cclxuZXhwb3J0IGNsYXNzIFNldERldmljZVRva2VuSW5mb1N0YXRlIGltcGxlbWVudHMgQWN0aW9uSW50ZXJmYWNlIHtcclxuICByZWFkb25seSB0eXBlID0gU0VUX0RFVklDRV9UT0tFTl9JTkZPO1xyXG4gIHBheWxvYWQ6IFRva2VuRGV2aWNlTW9kZWw7XHJcbn1cclxuZXhwb3J0IGNsYXNzIFNldFByb2Nlc3NJbmZvU3RvcmUgaW1wbGVtZW50cyBBY3Rpb25JbnRlcmZhY2Uge1xyXG4gIHJlYWRvbmx5IHR5cGUgPSBTRVRfSU5fUFJPQ0VTU0lOR19MSVNUO1xyXG4gIHBheWxvYWQ6IE1hcDxzdHJpbmcsIFByb2Nlc3NJbmZvTW9kZWw+O1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBBY3Rpb25zID0gU2V0TG9hZGluZ1N0YXRlIHwgU2V0RGV2aWNlVG9rZW5JbmZvU3RhdGUgfCBTZXRUb2tlbkluZm9TdGF0ZSB8IFNldFByb2Nlc3NJbmZvU3RvcmU7XHJcbiJdfQ==
|
|
@@ -7,7 +7,7 @@ import { AuthUserSignOutModel } from '../../models/dto/core-main/authUserSignOut
|
|
|
7
7
|
import { FilterModel } from '../../models/entity/base/filterModel';
|
|
8
8
|
import { TokenDeviceModel } from '../../models/entity/core-token/tokenDeviceModel';
|
|
9
9
|
import { TokenInfoModel } from '../../models/entity/core-token/tokenInfoModel';
|
|
10
|
-
import { SET_DEVICE_TOKEN_INFO, SET_TOKEN_INFO } from '../../reducers/
|
|
10
|
+
import { SET_DEVICE_TOKEN_INFO, SET_TOKEN_INFO } from '../../reducers/reducer.factory';
|
|
11
11
|
import { ApiServerBase } from '../base/apiServerBase.service';
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
13
13
|
export class CoreAuthService extends ApiServerBase {
|
|
@@ -218,4 +218,4 @@ CoreAuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", vers
|
|
|
218
218
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CoreAuthService, decorators: [{
|
|
219
219
|
type: Injectable
|
|
220
220
|
}] });
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZUF1dGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL250ay1jbXMtYXBpL3NyYy9saWIvc2VydmljZS9jb3JlLXRva2VuL2NvcmVBdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDL0YsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDakcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFNckYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFPdkYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDOUYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQUk5RCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxhQUFhO0lBQ2hELHNCQUFzQjtRQUNwQixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ0QsbUJBQW1CLENBQUMsS0FBNEI7UUFDOUMsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsT0FB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M0IsQ0FBQzthQUNELElBQUk7UUFDSCwrQkFBK0I7UUFDL0IsR0FBRyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDZixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDOzs2R0FwT1UsZUFBZTtpSEFBZixlQUFlOzRGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBdXRoRW1haWxDb25maXJtRHRvTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZHRvL2NvcmUtbWFpbi9hdXRoRW1haWxDb25maXJtRHRvTW9kZWwnO1xyXG5pbXBvcnQgeyBBdXRoTW9iaWxlQ29uZmlybUR0b01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R0by9jb3JlLW1haW4vYXV0aE1vYmlsZUNvbmZpcm1EdG9Nb2RlbCc7XHJcbmltcG9ydCB7IEF1dGhSZW5ld1Rva2VuTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZHRvL2NvcmUtbWFpbi9hdXRoUmVuZXdUb2tlbk1vZGVsJztcclxuaW1wb3J0IHsgQXV0aFVzZXJDaGFuZ2VQYXNzd29yZE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R0by9jb3JlLW1haW4vYXV0aFVzZXJDaGFuZ2VQYXNzd29yZE1vZGVsJztcclxuaW1wb3J0IHsgQXV0aFVzZXJGb3JnZXRQYXNzd29yZEVudHJ5UGluQ29kZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R0by9jb3JlLW1haW4vYXV0aFVzZXJGb3JnZXRQYXNzd29yZEVudHJ5UGluQ29kZU1vZGVsJztcclxuaW1wb3J0IHsgQXV0aFVzZXJGb3JnZXRQYXNzd29yZE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R0by9jb3JlLW1haW4vYXV0aFVzZXJGb3JnZXRQYXNzd29yZE1vZGVsJztcclxuaW1wb3J0IHsgQXV0aFVzZXJTaWduSW5CeVNtc0R0b01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R0by9jb3JlLW1haW4vYXV0aFVzZXJTaWduSW5CeVNtc0R0b01vZGVsJztcclxuaW1wb3J0IHsgQXV0aFVzZXJTaWduSW5Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9kdG8vY29yZS1tYWluL2F1dGhVc2VyU2lnbkluTW9kZWwnO1xyXG5pbXBvcnQgeyBBdXRoVXNlclNpZ25PdXRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9kdG8vY29yZS1tYWluL2F1dGhVc2VyU2lnbk91dE1vZGVsJztcclxuaW1wb3J0IHsgQXV0aFVzZXJTaWduVXBNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9kdG8vY29yZS1tYWluL2F1dGhVc2VyU2lnblVwTW9kZWwnO1xyXG5pbXBvcnQgeyBUb2tlbkRldmljZUNsaWVudEluZm9EdG9Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9kdG8vY29yZS1tYWluL3Rva2VuRGV2aWNlQ2xpZW50SW5mb0R0b01vZGVsJztcclxuaW1wb3J0IHsgVG9rZW5EZXZpY2VTZXROb3RpZmljYXRpb25JZER0b01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R0by9jb3JlLW1haW4vdG9rZW5EZXZpY2VTZXROb3RpZmljYXRpb25JZER0b01vZGVsJztcclxuaW1wb3J0IHsgQ2FwdGNoYU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iYXNlL2NhcHRjaGFNb2RlbCc7XHJcbmltcG9ydCB7IEVycm9yRXhjZXB0aW9uUmVzdWx0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iYXNlL2Vycm9yRXhjZXB0aW9uUmVzdWx0JztcclxuaW1wb3J0IHsgRXJyb3JFeGNlcHRpb25SZXN1bHRCYXNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iYXNlL2Vycm9yRXhjZXB0aW9uUmVzdWx0QmFzZSc7XHJcbmltcG9ydCB7IEZpbHRlck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iYXNlL2ZpbHRlck1vZGVsJztcclxuaW1wb3J0IHsgVG9rZW5EZXZpY2VNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpdHkvY29yZS10b2tlbi90b2tlbkRldmljZU1vZGVsJztcclxuaW1wb3J0IHsgVG9rZW5JbmZvTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZW50aXR5L2NvcmUtdG9rZW4vdG9rZW5JbmZvTW9kZWwnO1xyXG5pbXBvcnQgeyBTRVRfREVWSUNFX1RPS0VOX0lORk8sIFNFVF9UT0tFTl9JTkZPIH0gZnJvbSAnLi4vLi4vcmVkdWNlcnMvbnRrQ21zQXBpU3RvcmUuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwaVNlcnZlckJhc2UgfSBmcm9tICcuLi9iYXNlL2FwaVNlcnZlckJhc2Uuc2VydmljZSc7XHJcblxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ29yZUF1dGhTZXJ2aWNlIGV4dGVuZHMgQXBpU2VydmVyQmFzZSB7XHJcbiAgZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICdhdXRoJztcclxuICB9XHJcbiAgU2V0Q3VycmVudFRva2VuSW5mbyhtb2RlbDogVG9rZW5JbmZvTW9kZWwgfCBudWxsKTogYW55IHtcclxuICAgIGlmIChtb2RlbCA9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlVG9rZW4oKTtcclxuICAgICAgdGhpcy5jbXNBcGlTdG9yZS5zZXRTdGF0ZSh7IHR5cGU6IFNFVF9UT0tFTl9JTkZPLCBwYXlsb2FkOiBuZXcgVG9rZW5JbmZvTW9kZWwoKSB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKG1vZGVsLnRva2VuICYmIG1vZGVsLmRldmljZVRva2VuICYmIG1vZGVsLnJlZnJlc2hUb2tlbikge1xyXG4gICAgICB0aGlzLnNldFRva2VuKG1vZGVsLnRva2VuLCBtb2RlbC5kZXZpY2VUb2tlbiwgbW9kZWwucmVmcmVzaFRva2VuKTtcclxuICAgIH0gZWxzZSBpZiAobW9kZWwudG9rZW4gJiYgbW9kZWwuZGV2aWNlVG9rZW4pIHtcclxuICAgICAgdGhpcy5zZXRUb2tlbihtb2RlbC50b2tlbiwgbW9kZWwuZGV2aWNlVG9rZW4sICcnKTtcclxuICAgIH0gZWxzZSBpZiAobW9kZWwudG9rZW4pIHtcclxuICAgICAgdGhpcy5zZXRUb2tlbihtb2RlbC50b2tlbiwgJycsICcnKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKG1vZGVsLmRldmljZVRva2VuKSB7XHJcbiAgICAgIHRoaXMuc2V0VG9rZW4oJycsIG1vZGVsLmRldmljZVRva2VuLCAnJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNtc0FwaVN0b3JlLnNldFN0YXRlKHsgdHlwZTogU0VUX1RPS0VOX0lORk8sIHBheWxvYWQ6IG1vZGVsIH0pO1xyXG4gIH1cclxuICBTZXRDdXJyZW50RGV2aWNlVG9rZW5JbmZvKG1vZGVsOiBUb2tlbkRldmljZU1vZGVsIHwgbnVsbCk6IGFueSB7XHJcbiAgICBpZiAobW9kZWwgPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnJlbW92ZVRva2VuKCk7XHJcbiAgICAgIHRoaXMuY21zQXBpU3RvcmUuc2V0U3RhdGUoeyB0eXBlOiBTRVRfREVWSUNFX1RPS0VOX0lORk8sIHBheWxvYWQ6IG5ldyBUb2tlbkRldmljZU1vZGVsKCkgfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChtb2RlbC5kZXZpY2VUb2tlbikge1xyXG4gICAgICB0aGlzLnNldERldmljZVRva2VuKG1vZGVsLmRldmljZVRva2VuKTtcclxuICAgIH1cclxuICAgIHRoaXMuY21zQXBpU3RvcmUuc2V0U3RhdGUoeyB0eXBlOiBTRVRfREVWSUNFX1RPS0VOX0lORk8sIHBheWxvYWQ6IG1vZGVsIH0pO1xyXG4gIH1cclxuXHJcbiAgQ3VycmVudFRva2VuSW5mb1JlbmV3KCk6IHZvaWQge1xyXG4gICAgdGhpcy5TZXJ2aWNlQ3VycmVudFRva2VuKCkuc3Vic2NyaWJlKFxyXG4gICAgICAobmV4dCkgPT4ge1xyXG4gICAgICAgIHRoaXMuU2V0Q3VycmVudFRva2VuSW5mbyhuZXh0Lml0ZW0pO1xyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIFNlcnZpY2VDdXJyZW50VG9rZW4oKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxUb2tlbkluZm9Nb2RlbD4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0N1cnJlbnRUb2tlbicsIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCkgfSkucGlwZShcclxuICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRUb2tlbihyZXQuaXRlbS50b2tlbiwgcmV0Lml0ZW0uZGV2aWNlVG9rZW4sICcnKTtcclxuICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgICB9KSxcclxuICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VDdXJyZW50RGV2aWNlVG9rZW4oKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxUb2tlbkRldmljZU1vZGVsPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvQ3VycmVudERldmljZVRva2VuJywgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSB9KS5waXBlKFxyXG4gICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnNldERldmljZVRva2VuKHJldC5pdGVtLmRldmljZVRva2VuKTtcclxuICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgICB9KSxcclxuICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VDYXB0Y2hhKCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8Q2FwdGNoYU1vZGVsPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvY2FwdGNoYScpLnBpcGUoXHJcbiAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiByZXQ7XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcbiAgU2VydmljZUdldFRva2VuRGV2aWNlKG1vZGVsOiBUb2tlbkRldmljZUNsaWVudEluZm9EdG9Nb2RlbCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8VG9rZW5EZXZpY2VNb2RlbD4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9HZXRUb2tlbkRldmljZS8nLCBtb2RlbCkucGlwZShcclxuICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXREZXZpY2VUb2tlbihyZXQuaXRlbS5kZXZpY2VUb2tlbik7XHJcbiAgICAgICAgcmV0dXJuIHJldDtcclxuICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxuICBTZXJ2aWNlU2V0VG9rZW5EZXZpY2VOb3RpZmljYXRpb25JZChtb2RlbDogVG9rZW5EZXZpY2VTZXROb3RpZmljYXRpb25JZER0b01vZGVsKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdEJhc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9TZXRUb2tlbkRldmljZU5vdGlmaWNhdGlvbklkLycsIG1vZGVsKS5waXBlKFxyXG4gICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgICB9KSxcclxuICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VTaWdudXBVc2VyKG1vZGVsOiBBdXRoVXNlclNpZ25VcE1vZGVsKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxUb2tlbkluZm9Nb2RlbD4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9zaWdudXAnLCBtb2RlbCkucGlwZShcclxuICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHJldDtcclxuICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgU2VydmljZVNpZ25pblVzZXIobW9kZWw6IEF1dGhVc2VyU2lnbkluTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PFRva2VuSW5mb01vZGVsPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL3NpZ25pbicsIG1vZGVsKS5waXBlKFxyXG4gICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmV0LmlzU3VjY2Vzcykge1xyXG4gICAgICAgICAgdGhpcy5TZXRDdXJyZW50VG9rZW5JbmZvKHJldC5pdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJldDtcclxuICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgU2VydmljZVNpZ25pblVzZXJCeVNNUyhtb2RlbDogQXV0aFVzZXJTaWduSW5CeVNtc0R0b01vZGVsKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxUb2tlbkluZm9Nb2RlbD4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9zaWduSW5CeVNtcycsIG1vZGVsKS5waXBlKFxyXG4gICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmV0LmlzU3VjY2Vzcykge1xyXG4gICAgICAgICAgdGhpcy5TZXRDdXJyZW50VG9rZW5JbmZvKHJldC5pdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJldDtcclxuICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgU2VydmljZVJlbmV3VG9rZW4obW9kZWw6IEF1dGhSZW5ld1Rva2VuTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PFRva2VuSW5mb01vZGVsPj4ge1xyXG4gICAgaWYgKG1vZGVsID09IG51bGwpIHtcclxuICAgICAgbW9kZWwgPSBuZXcgQXV0aFJlbmV3VG9rZW5Nb2RlbCgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9yZW5ld1Rva2VuJywgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXQuaXNTdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuU2V0Q3VycmVudFRva2VuSW5mbyhyZXQuaXRlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuICBTZXJ2aWNlQ2hhbmdlUGFzc3dvcmQobW9kZWw6IEF1dGhVc2VyQ2hhbmdlUGFzc3dvcmRNb2RlbCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHRCYXNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL2NoYW5nZVBhc3N3b3JkJywgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXQ7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VGb3JnZXRQYXNzd29yZChtb2RlbDogQXV0aFVzZXJGb3JnZXRQYXNzd29yZE1vZGVsKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxUb2tlbkluZm9Nb2RlbD4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9mb3JnZXRQYXNzd29yZCcsIG1vZGVsKS5waXBlKFxyXG4gICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgICB9KSxcclxuICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VGb3JnZXRQYXNzd29yZEVudHJ5UGluQ29kZShtb2RlbDogQXV0aFVzZXJGb3JnZXRQYXNzd29yZEVudHJ5UGluQ29kZU1vZGVsKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxUb2tlbkluZm9Nb2RlbD4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9Gb3JnZXRQYXNzd29yZEVudHJ5UGluQ29kZScsIG1vZGVsKS5waXBlKFxyXG4gICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgICB9KSxcclxuICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VMb2dvdXQobW9kZWw6IEF1dGhVc2VyU2lnbk91dE1vZGVsID0gbmV3IEF1dGhVc2VyU2lnbk91dE1vZGVsKCkpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0QmFzZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9zaWduT3V0JywgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuU2V0Q3VycmVudFRva2VuSW5mbyhudWxsKTtcclxuXHJcbiAgICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgU2VydmljZUV4aXN0VG9rZW4obW9kZWw6IEZpbHRlck1vZGVsKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdEJhc2U+IHtcclxuICAgIGlmIChtb2RlbCA9PSBudWxsKSB7XHJcbiAgICAgIG1vZGVsID0gbmV3IEZpbHRlck1vZGVsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9leGlzdFRva2VuJywgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXQ7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VNb2JpbGVDb25maXJtKG1vZGVsOiBBdXRoTW9iaWxlQ29uZmlybUR0b01vZGVsKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdEJhc2U+IHtcclxuICAgIGlmIChtb2RlbCA9PSBudWxsKSB7XHJcbiAgICAgIG1vZGVsID0gbmV3IEF1dGhNb2JpbGVDb25maXJtRHRvTW9kZWwoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL21vYmlsZUNvbmZpcm0nLCBtb2RlbCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJldDtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZUVtYWlsQ29uZmlybShtb2RlbDogQXV0aEVtYWlsQ29uZmlybUR0b01vZGVsKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdEJhc2U+IHtcclxuICAgIGlmIChtb2RlbCA9PSBudWxsKSB7XHJcbiAgICAgIG1vZGVsID0gbmV3IEF1dGhFbWFpbENvbmZpcm1EdG9Nb2RlbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvZW1haWxDb25maXJtJywgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXQ7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZUF1dGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL250ay1jbXMtYXBpL3NyYy9saWIvc2VydmljZS9jb3JlLXRva2VuL2NvcmVBdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDL0YsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDakcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFNckYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFPdkYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQUk5RCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxhQUFhO0lBQ2hELHNCQUFzQjtRQUNwQixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ0QsbUJBQW1CLENBQUMsS0FBNEI7UUFDOUMsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsT0FB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M0IsQ0FBQzthQUNELElBQUk7UUFDSCwrQkFBK0I7UUFDL0IsR0FBRyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDZixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDOzs2R0FwT1UsZUFBZTtpSEFBZixlQUFlOzRGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBdXRoRW1haWxDb25maXJtRHRvTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZHRvL2NvcmUtbWFpbi9hdXRoRW1haWxDb25maXJtRHRvTW9kZWwnO1xyXG5pbXBvcnQgeyBBdXRoTW9iaWxlQ29uZmlybUR0b01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R0by9jb3JlLW1haW4vYXV0aE1vYmlsZUNvbmZpcm1EdG9Nb2RlbCc7XHJcbmltcG9ydCB7IEF1dGhSZW5ld1Rva2VuTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZHRvL2NvcmUtbWFpbi9hdXRoUmVuZXdUb2tlbk1vZGVsJztcclxuaW1wb3J0IHsgQXV0aFVzZXJDaGFuZ2VQYXNzd29yZE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R0by9jb3JlLW1haW4vYXV0aFVzZXJDaGFuZ2VQYXNzd29yZE1vZGVsJztcclxuaW1wb3J0IHsgQXV0aFVzZXJGb3JnZXRQYXNzd29yZEVudHJ5UGluQ29kZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R0by9jb3JlLW1haW4vYXV0aFVzZXJGb3JnZXRQYXNzd29yZEVudHJ5UGluQ29kZU1vZGVsJztcclxuaW1wb3J0IHsgQXV0aFVzZXJGb3JnZXRQYXNzd29yZE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R0by9jb3JlLW1haW4vYXV0aFVzZXJGb3JnZXRQYXNzd29yZE1vZGVsJztcclxuaW1wb3J0IHsgQXV0aFVzZXJTaWduSW5CeVNtc0R0b01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R0by9jb3JlLW1haW4vYXV0aFVzZXJTaWduSW5CeVNtc0R0b01vZGVsJztcclxuaW1wb3J0IHsgQXV0aFVzZXJTaWduSW5Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9kdG8vY29yZS1tYWluL2F1dGhVc2VyU2lnbkluTW9kZWwnO1xyXG5pbXBvcnQgeyBBdXRoVXNlclNpZ25PdXRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9kdG8vY29yZS1tYWluL2F1dGhVc2VyU2lnbk91dE1vZGVsJztcclxuaW1wb3J0IHsgQXV0aFVzZXJTaWduVXBNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9kdG8vY29yZS1tYWluL2F1dGhVc2VyU2lnblVwTW9kZWwnO1xyXG5pbXBvcnQgeyBUb2tlbkRldmljZUNsaWVudEluZm9EdG9Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9kdG8vY29yZS1tYWluL3Rva2VuRGV2aWNlQ2xpZW50SW5mb0R0b01vZGVsJztcclxuaW1wb3J0IHsgVG9rZW5EZXZpY2VTZXROb3RpZmljYXRpb25JZER0b01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R0by9jb3JlLW1haW4vdG9rZW5EZXZpY2VTZXROb3RpZmljYXRpb25JZER0b01vZGVsJztcclxuaW1wb3J0IHsgQ2FwdGNoYU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iYXNlL2NhcHRjaGFNb2RlbCc7XHJcbmltcG9ydCB7IEVycm9yRXhjZXB0aW9uUmVzdWx0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iYXNlL2Vycm9yRXhjZXB0aW9uUmVzdWx0JztcclxuaW1wb3J0IHsgRXJyb3JFeGNlcHRpb25SZXN1bHRCYXNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iYXNlL2Vycm9yRXhjZXB0aW9uUmVzdWx0QmFzZSc7XHJcbmltcG9ydCB7IEZpbHRlck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iYXNlL2ZpbHRlck1vZGVsJztcclxuaW1wb3J0IHsgVG9rZW5EZXZpY2VNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpdHkvY29yZS10b2tlbi90b2tlbkRldmljZU1vZGVsJztcclxuaW1wb3J0IHsgVG9rZW5JbmZvTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZW50aXR5L2NvcmUtdG9rZW4vdG9rZW5JbmZvTW9kZWwnO1xyXG5pbXBvcnQgeyBTRVRfREVWSUNFX1RPS0VOX0lORk8sIFNFVF9UT0tFTl9JTkZPIH0gZnJvbSAnLi4vLi4vcmVkdWNlcnMvcmVkdWNlci5mYWN0b3J5JztcclxuaW1wb3J0IHsgQXBpU2VydmVyQmFzZSB9IGZyb20gJy4uL2Jhc2UvYXBpU2VydmVyQmFzZS5zZXJ2aWNlJztcclxuXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDb3JlQXV0aFNlcnZpY2UgZXh0ZW5kcyBBcGlTZXJ2ZXJCYXNlIHtcclxuICBnZXRNb2R1bGVDb250cm9sbGVyVXJsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJ2F1dGgnO1xyXG4gIH1cclxuICBTZXRDdXJyZW50VG9rZW5JbmZvKG1vZGVsOiBUb2tlbkluZm9Nb2RlbCB8IG51bGwpOiBhbnkge1xyXG4gICAgaWYgKG1vZGVsID09IG51bGwpIHtcclxuICAgICAgdGhpcy5yZW1vdmVUb2tlbigpO1xyXG4gICAgICB0aGlzLmNtc0FwaVN0b3JlLnNldFN0YXRlKHsgdHlwZTogU0VUX1RPS0VOX0lORk8sIHBheWxvYWQ6IG5ldyBUb2tlbkluZm9Nb2RlbCgpIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAobW9kZWwudG9rZW4gJiYgbW9kZWwuZGV2aWNlVG9rZW4gJiYgbW9kZWwucmVmcmVzaFRva2VuKSB7XHJcbiAgICAgIHRoaXMuc2V0VG9rZW4obW9kZWwudG9rZW4sIG1vZGVsLmRldmljZVRva2VuLCBtb2RlbC5yZWZyZXNoVG9rZW4pO1xyXG4gICAgfSBlbHNlIGlmIChtb2RlbC50b2tlbiAmJiBtb2RlbC5kZXZpY2VUb2tlbikge1xyXG4gICAgICB0aGlzLnNldFRva2VuKG1vZGVsLnRva2VuLCBtb2RlbC5kZXZpY2VUb2tlbiwgJycpO1xyXG4gICAgfSBlbHNlIGlmIChtb2RlbC50b2tlbikge1xyXG4gICAgICB0aGlzLnNldFRva2VuKG1vZGVsLnRva2VuLCAnJywgJycpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAobW9kZWwuZGV2aWNlVG9rZW4pIHtcclxuICAgICAgdGhpcy5zZXRUb2tlbignJywgbW9kZWwuZGV2aWNlVG9rZW4sICcnKTtcclxuICAgIH1cclxuICAgIHRoaXMuY21zQXBpU3RvcmUuc2V0U3RhdGUoeyB0eXBlOiBTRVRfVE9LRU5fSU5GTywgcGF5bG9hZDogbW9kZWwgfSk7XHJcbiAgfVxyXG4gIFNldEN1cnJlbnREZXZpY2VUb2tlbkluZm8obW9kZWw6IFRva2VuRGV2aWNlTW9kZWwgfCBudWxsKTogYW55IHtcclxuICAgIGlmIChtb2RlbCA9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlVG9rZW4oKTtcclxuICAgICAgdGhpcy5jbXNBcGlTdG9yZS5zZXRTdGF0ZSh7IHR5cGU6IFNFVF9ERVZJQ0VfVE9LRU5fSU5GTywgcGF5bG9hZDogbmV3IFRva2VuRGV2aWNlTW9kZWwoKSB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKG1vZGVsLmRldmljZVRva2VuKSB7XHJcbiAgICAgIHRoaXMuc2V0RGV2aWNlVG9rZW4obW9kZWwuZGV2aWNlVG9rZW4pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jbXNBcGlTdG9yZS5zZXRTdGF0ZSh7IHR5cGU6IFNFVF9ERVZJQ0VfVE9LRU5fSU5GTywgcGF5bG9hZDogbW9kZWwgfSk7XHJcbiAgfVxyXG5cclxuICBDdXJyZW50VG9rZW5JbmZvUmVuZXcoKTogdm9pZCB7XHJcbiAgICB0aGlzLlNlcnZpY2VDdXJyZW50VG9rZW4oKS5zdWJzY3JpYmUoXHJcbiAgICAgIChuZXh0KSA9PiB7XHJcbiAgICAgICAgdGhpcy5TZXRDdXJyZW50VG9rZW5JbmZvKG5leHQuaXRlbSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgU2VydmljZUN1cnJlbnRUb2tlbigpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PFRva2VuSW5mb01vZGVsPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvQ3VycmVudFRva2VuJywgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSB9KS5waXBlKFxyXG4gICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnNldFRva2VuKHJldC5pdGVtLnRva2VuLCByZXQuaXRlbS5kZXZpY2VUb2tlbiwgJycpO1xyXG4gICAgICAgIHJldHVybiByZXQ7XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcbiAgU2VydmljZUN1cnJlbnREZXZpY2VUb2tlbigpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PFRva2VuRGV2aWNlTW9kZWw+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9DdXJyZW50RGV2aWNlVG9rZW4nLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpIH0pLnBpcGUoXHJcbiAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0RGV2aWNlVG9rZW4ocmV0Lml0ZW0uZGV2aWNlVG9rZW4pO1xyXG4gICAgICAgIHJldHVybiByZXQ7XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcbiAgU2VydmljZUNhcHRjaGEoKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxDYXB0Y2hhTW9kZWw+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9jYXB0Y2hhJykucGlwZShcclxuICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHJldDtcclxuICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxuICBTZXJ2aWNlR2V0VG9rZW5EZXZpY2UobW9kZWw6IFRva2VuRGV2aWNlQ2xpZW50SW5mb0R0b01vZGVsKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxUb2tlbkRldmljZU1vZGVsPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0dldFRva2VuRGV2aWNlLycsIG1vZGVsKS5waXBlKFxyXG4gICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnNldERldmljZVRva2VuKHJldC5pdGVtLmRldmljZVRva2VuKTtcclxuICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgICB9KSxcclxuICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VTZXRUb2tlbkRldmljZU5vdGlmaWNhdGlvbklkKG1vZGVsOiBUb2tlbkRldmljZVNldE5vdGlmaWNhdGlvbklkRHRvTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0QmFzZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL1NldFRva2VuRGV2aWNlTm90aWZpY2F0aW9uSWQvJywgbW9kZWwpLnBpcGUoXHJcbiAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiByZXQ7XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcbiAgU2VydmljZVNpZ251cFVzZXIobW9kZWw6IEF1dGhVc2VyU2lnblVwTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PFRva2VuSW5mb01vZGVsPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL3NpZ251cCcsIG1vZGVsKS5waXBlKFxyXG4gICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgICB9KSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBTZXJ2aWNlU2lnbmluVXNlcihtb2RlbDogQXV0aFVzZXJTaWduSW5Nb2RlbCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8VG9rZW5JbmZvTW9kZWw+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvc2lnbmluJywgbW9kZWwpLnBpcGUoXHJcbiAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXQuaXNTdWNjZXNzKSB7XHJcbiAgICAgICAgICB0aGlzLlNldEN1cnJlbnRUb2tlbkluZm8ocmV0Lml0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgICB9KSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBTZXJ2aWNlU2lnbmluVXNlckJ5U01TKG1vZGVsOiBBdXRoVXNlclNpZ25JbkJ5U21zRHRvTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PFRva2VuSW5mb01vZGVsPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL3NpZ25JbkJ5U21zJywgbW9kZWwpLnBpcGUoXHJcbiAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXQuaXNTdWNjZXNzKSB7XHJcbiAgICAgICAgICB0aGlzLlNldEN1cnJlbnRUb2tlbkluZm8ocmV0Lml0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgICB9KSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBTZXJ2aWNlUmVuZXdUb2tlbihtb2RlbDogQXV0aFJlbmV3VG9rZW5Nb2RlbCk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHQ8VG9rZW5JbmZvTW9kZWw+PiB7XHJcbiAgICBpZiAobW9kZWwgPT0gbnVsbCkge1xyXG4gICAgICBtb2RlbCA9IG5ldyBBdXRoUmVuZXdUb2tlbk1vZGVsKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL3JlbmV3VG9rZW4nLCBtb2RlbCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJldC5pc1N1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgdGhpcy5TZXRDdXJyZW50VG9rZW5JbmZvKHJldC5pdGVtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiByZXQ7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VDaGFuZ2VQYXNzd29yZChtb2RlbDogQXV0aFVzZXJDaGFuZ2VQYXNzd29yZE1vZGVsKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdEJhc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvY2hhbmdlUGFzc3dvcmQnLCBtb2RlbCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJldDtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZUZvcmdldFBhc3N3b3JkKG1vZGVsOiBBdXRoVXNlckZvcmdldFBhc3N3b3JkTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PFRva2VuSW5mb01vZGVsPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL2ZvcmdldFBhc3N3b3JkJywgbW9kZWwpLnBpcGUoXHJcbiAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiByZXQ7XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcbiAgU2VydmljZUZvcmdldFBhc3N3b3JkRW50cnlQaW5Db2RlKG1vZGVsOiBBdXRoVXNlckZvcmdldFBhc3N3b3JkRW50cnlQaW5Db2RlTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PFRva2VuSW5mb01vZGVsPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0ZvcmdldFBhc3N3b3JkRW50cnlQaW5Db2RlJywgbW9kZWwpLnBpcGUoXHJcbiAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiByZXQ7XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcbiAgU2VydmljZUxvZ291dChtb2RlbDogQXV0aFVzZXJTaWduT3V0TW9kZWwgPSBuZXcgQXV0aFVzZXJTaWduT3V0TW9kZWwoKSk6IE9ic2VydmFibGU8RXJyb3JFeGNlcHRpb25SZXN1bHRCYXNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL3NpZ25PdXQnLCBtb2RlbCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5TZXRDdXJyZW50VG9rZW5JbmZvKG51bGwpO1xyXG5cclxuICAgICAgICAgIHJldHVybiByZXQ7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBTZXJ2aWNlRXhpc3RUb2tlbihtb2RlbDogRmlsdGVyTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0QmFzZT4ge1xyXG4gICAgaWYgKG1vZGVsID09IG51bGwpIHtcclxuICAgICAgbW9kZWwgPSBuZXcgRmlsdGVyTW9kZWwoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL2V4aXN0VG9rZW4nLCBtb2RlbCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJldDtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZU1vYmlsZUNvbmZpcm0obW9kZWw6IEF1dGhNb2JpbGVDb25maXJtRHRvTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0QmFzZT4ge1xyXG4gICAgaWYgKG1vZGVsID09IG51bGwpIHtcclxuICAgICAgbW9kZWwgPSBuZXcgQXV0aE1vYmlsZUNvbmZpcm1EdG9Nb2RlbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvbW9iaWxlQ29uZmlybScsIG1vZGVsLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmV0O1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuICBTZXJ2aWNlRW1haWxDb25maXJtKG1vZGVsOiBBdXRoRW1haWxDb25maXJtRHRvTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0QmFzZT4ge1xyXG4gICAgaWYgKG1vZGVsID09IG51bGwpIHtcclxuICAgICAgbW9kZWwgPSBuZXcgQXV0aEVtYWlsQ29uZmlybUR0b01vZGVsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9lbWFpbENvbmZpcm0nLCBtb2RlbCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJldDtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbn1cclxuIl19
|