@eo-sdk/client 10.6.0-rc.2 → 10.6.0-rc.4
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/app/eo-client/dashboard/dashboard.component.d.ts +5 -3
- package/app/eo-client/dashboard/dashboard.component.d.ts.map +1 -1
- package/app/eo-client/login/login.component.d.ts +2 -4
- package/app/eo-client/login/login.component.d.ts.map +1 -1
- package/app/eo-client/settings/settings.component.d.ts +2 -4
- package/app/eo-client/settings/settings.component.d.ts.map +1 -1
- package/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.d.ts +1 -0
- package/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.d.ts.map +1 -1
- package/app/eo-framework/app-shell/app-bar/app-bar.component.d.ts +10 -5
- package/app/eo-framework/app-shell/app-bar/app-bar.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/date/date.component.d.ts +2 -1
- package/app/eo-framework/form-elements/date/date.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/id-reference/id-reference.component.d.ts +1 -0
- package/app/eo-framework/form-elements/id-reference/id-reference.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/organization/organization.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/string/string.component.d.ts +2 -3
- package/app/eo-framework/form-elements/string/string.component.d.ts.map +1 -1
- package/app/eo-framework/inbox-details/inbox-details.component.d.ts +2 -1
- package/app/eo-framework/inbox-details/inbox-details.component.d.ts.map +1 -1
- package/app/eo-framework/media/media.component.d.ts.map +1 -1
- package/app/eo-framework/object-details/object-details.component.d.ts +5 -8
- package/app/eo-framework/object-details/object-details.component.d.ts.map +1 -1
- package/app/eo-framework/object-details/object-details.module.d.ts +2 -1
- package/app/eo-framework/object-details/object-details.module.d.ts.map +1 -1
- package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts +1 -1
- package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts.map +1 -1
- package/app/eo-framework/object-state-details/object-state-details.component.d.ts +3 -3
- package/app/eo-framework/object-state-details/object-state-details.component.d.ts.map +1 -1
- package/app/eo-framework/plugins/plugin.component.d.ts +7 -7
- package/app/eo-framework/plugins/plugin.component.d.ts.map +1 -1
- package/app/eo-framework/plugins/plugins.module.d.ts +1 -1
- package/app/eo-framework/process/details/process-details.component.d.ts +2 -1
- package/app/eo-framework/process/details/process-details.component.d.ts.map +1 -1
- package/app/eo-framework/recyclebin-details/recyclebin-details.component.d.ts +2 -1
- package/app/eo-framework/recyclebin-details/recyclebin-details.component.d.ts.map +1 -1
- package/app/eo-framework-core/api/plugins.service.d.ts +5 -0
- package/app/eo-framework-core/api/plugins.service.d.ts.map +1 -1
- package/assets/_default/i18n/de.json +2 -4
- package/assets/_default/i18n/en.json +8 -10
- package/esm2020/app/eo-client/about-state/about-state.component.mjs +3 -3
- package/esm2020/app/eo-client/dashboard/dashboard.component.mjs +17 -7
- package/esm2020/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.mjs +3 -3
- package/esm2020/app/eo-client/favorite-state/favorite-state.component.mjs +5 -5
- package/esm2020/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +5 -5
- package/esm2020/app/eo-client/login/login.component.mjs +7 -11
- package/esm2020/app/eo-client/notifications-state/notifications-state.component.mjs +5 -5
- package/esm2020/app/eo-client/object-state/object-state/object-state.component.mjs +7 -7
- package/esm2020/app/eo-client/process-state/process-state.component.mjs +5 -5
- package/esm2020/app/eo-client/recyclebin-state/recyclebin-state.component.mjs +5 -5
- package/esm2020/app/eo-client/result-state/result-state.component.mjs +5 -5
- package/esm2020/app/eo-client/settings/settings.component.mjs +6 -10
- package/esm2020/app/eo-client/version-state/version-state.component.mjs +5 -5
- package/esm2020/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.mjs +10 -4
- package/esm2020/app/eo-framework/actions/actions/download-action/download-action.mjs +2 -2
- package/esm2020/app/eo-framework/actions/actions/signature-action/signature-action.component.mjs +5 -5
- package/esm2020/app/eo-framework/app-shell/app-bar/app-bar.component.mjs +44 -19
- package/esm2020/app/eo-framework/form-elements/date/date.component.mjs +7 -4
- package/esm2020/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +1 -1
- package/esm2020/app/eo-framework/form-elements/id-reference/id-reference.component.mjs +10 -3
- package/esm2020/app/eo-framework/form-elements/organization/organization.component.mjs +2 -1
- package/esm2020/app/eo-framework/form-elements/string/string.component.mjs +4 -5
- package/esm2020/app/eo-framework/grid/filters/datetime-filter.component.mjs +3 -3
- package/esm2020/app/eo-framework/inbox-details/inbox-details.component.mjs +10 -13
- package/esm2020/app/eo-framework/media/media.component.mjs +2 -5
- package/esm2020/app/eo-framework/object-details/object-details.component.mjs +38 -34
- package/esm2020/app/eo-framework/object-details/object-details.module.mjs +7 -3
- package/esm2020/app/eo-framework/object-form/object-form/form-element/form-element.component.mjs +1 -1
- package/esm2020/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +11 -21
- package/esm2020/app/eo-framework/object-state-details/object-state-details.component.mjs +14 -22
- package/esm2020/app/eo-framework/plugins/plugin.component.mjs +19 -27
- package/esm2020/app/eo-framework/plugins/plugins.module.mjs +6 -6
- package/esm2020/app/eo-framework/process/details/process-details.component.mjs +10 -13
- package/esm2020/app/eo-framework/recyclebin-details/recyclebin-details.component.mjs +7 -7
- package/esm2020/app/eo-framework/ui/eo-dialog/eo-dialog.component.mjs +2 -2
- package/esm2020/app/eo-framework-core/api/plugins.service.mjs +6 -3
- package/esm2020/projects/eo-sdk/core/lib/service/auth/auth.service.mjs +21 -169
- package/esm2020/projects/eo-sdk/core/lib/service/dms/dms.service.mjs +3 -2
- package/esm2020/projects/eo-sdk/core/lib/service/user/user.service.mjs +4 -4
- package/esm2020/projects/eo-sdk/core/public_api.mjs +1 -3
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs +21 -192
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
- package/fesm2015/eo-sdk-client.mjs +275 -259
- package/fesm2015/eo-sdk-client.mjs.map +1 -1
- package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs +21 -192
- package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
- package/fesm2020/eo-sdk-client.mjs +271 -258
- package/fesm2020/eo-sdk-client.mjs.map +1 -1
- package/package.json +4 -4
- package/projects/eo-sdk/core/lib/service/auth/auth.service.d.ts +1 -23
- package/projects/eo-sdk/core/lib/service/auth/auth.service.d.ts.map +1 -1
- package/projects/eo-sdk/core/lib/service/dms/dms.service.d.ts +1 -0
- package/projects/eo-sdk/core/lib/service/dms/dms.service.d.ts.map +1 -1
- package/projects/eo-sdk/core/lib/service/user/user.service.d.ts.map +1 -1
- package/projects/eo-sdk/core/public_api.d.ts +0 -2
- package/projects/eo-sdk/core/public_api.d.ts.map +1 -1
- package/scss/_main.scss +2 -1
- package/styles.css +2 -1
- package/esm2020/projects/eo-sdk/core/lib/service/auth/auth.cloud.interface.mjs +0 -2
- package/esm2020/projects/eo-sdk/core/lib/service/environment/environment.service.mjs +0 -28
- package/projects/eo-sdk/core/lib/service/auth/auth.cloud.interface.d.ts +0 -12
- package/projects/eo-sdk/core/lib/service/auth/auth.cloud.interface.d.ts.map +0 -1
- package/projects/eo-sdk/core/lib/service/environment/environment.service.d.ts +0 -14
- package/projects/eo-sdk/core/lib/service/environment/environment.service.d.ts.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject, forkJoin, of } from 'rxjs';
|
|
3
|
-
import { map, tap, debounceTime, filter } from 'rxjs/operators';
|
|
2
|
+
import { BehaviorSubject, forkJoin, of, EMPTY } from 'rxjs';
|
|
3
|
+
import { map, tap, debounceTime, filter, catchError } from 'rxjs/operators';
|
|
4
4
|
import { EoUser } from '../../model/eo-user.model';
|
|
5
5
|
import { Utils } from '../../util/utils';
|
|
6
6
|
import { EnaioEvent } from '../events/events';
|
|
@@ -385,7 +385,7 @@ export class UserService {
|
|
|
385
385
|
* @returns The saved settings
|
|
386
386
|
*/
|
|
387
387
|
loadLocalSettings() {
|
|
388
|
-
return this.backend.get('/user/config/localSettings');
|
|
388
|
+
return this.backend.get('/user/config/localSettings').pipe(catchError(() => EMPTY));
|
|
389
389
|
}
|
|
390
390
|
}
|
|
391
391
|
UserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: UserService, deps: [{ token: i1.BackendService }, { token: i2.TranslateService }, { token: i3.Logger }, { token: i4.EventService }, { token: i5.SystemService }, { token: i6.HttpClient }, { token: i7.Config }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -396,4 +396,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
396
396
|
providedIn: 'root'
|
|
397
397
|
}]
|
|
398
398
|
}], ctorParameters: function () { return [{ type: i1.BackendService }, { type: i2.TranslateService }, { type: i3.Logger }, { type: i4.EventService }, { type: i5.SystemService }, { type: i6.HttpClient }, { type: i7.Config }]; } });
|
|
399
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW8tc2RrL2NvcmUvc3JjL2xpYi9zZXJ2aWNlL3VzZXIvdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFhLGVBQWUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUk5RCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFJakQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUU1QyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7OztBQUloRDs7Ozs7Ozs7OztHQVVHO0FBSUgsTUFBTSxPQUFPLFdBQVc7SUF5Q3RCOztPQUVHO0lBQ0gsWUFBb0IsT0FBdUIsRUFDdkIsU0FBMkIsRUFDM0IsTUFBYyxFQUNkLFlBQTBCLEVBQzFCLE1BQXFCLEVBQ3JCLElBQWdCLEVBQ2hCLE1BQWM7UUFOZCxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFoRGxDLG1CQUFjLEdBQUcsa0ZBQWtGLENBQUM7UUFFNUYsU0FBSSxHQUFX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TyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsSUFBSSxnQkFBZ0IsV0FBVyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUM7SUFDakcsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGdCQUFnQixDQUFDLGlCQUEwQjtRQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUM3RCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDaEYsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksaUJBQWlCLENBQUMsYUFBa0IsRUFBRSxhQUFrQjtRQUM3RCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixFQUFFLEVBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNoSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7T0FHRztJQUNJLGlCQUFpQjtRQUN0QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDeEQsQ0FBQzs7d0dBNWFVLFdBQVc7NEdBQVgsV0FBVyxjQUZWLE1BQU07MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBCZWhhdmlvclN1YmplY3QsIGZvcmtKb2luLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgdGFwLCBkZWJvdW5jZVRpbWUsIGZpbHRlcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Q2hhbmdlUGFzc3dvcmRJbnRlcmZhY2V9IGZyb20gJy4uLy4uL2ludGVyZmFjZS9jaGFuZ2UtcGFzc3dvcmQuaW50ZXJmYWNlJztcbmltcG9ydCB7QmFja2VuZFNlcnZpY2V9IGZyb20gJy4uL2JhY2tlbmQvYmFja2VuZC5zZXJ2aWNlJztcbmltcG9ydCB7RW9Vc2VyfSBmcm9tICcuLi8uLi9tb2RlbC9lby11c2VyLm1vZGVsJztcbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHtMb2dnZXJ9IGZyb20gJy4uL2xvZ2dlci9sb2dnZXInO1xuaW1wb3J0IHtTeXN0ZW1TZXJ2aWNlfSBmcm9tICcuLi9zeXN0ZW0vc3lzdGVtLnNlcnZpY2UnO1xuaW1wb3J0IHtVdGlsc30gZnJvbSAnLi4vLi4vdXRpbC91dGlscyc7XG5pbXBvcnQge0VuYWlvRXZlbnR9IGZyb20gJy4uL2V2ZW50cy9ldmVudHMnO1xuaW1wb3J0IHtFdmVudFNlcnZpY2V9IGZyb20gJy4uL2V2ZW50cy9ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7RGlyZWN0aW9ufSBmcm9tICcuLi9jb25maWcvY29uZmlnLmVudW0nO1xuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge1dpZGdldEdyaWRXb3Jrc3BhY2VDb25maWd9IGZyb20gJ0B5dXV2aXMvd2lkZ2V0LWdyaWQnO1xuXG4vKipcbiAqIEFwcGxpY2F0aW9ucyB1c2VyIHNlcnZpY2UuXG4gKiBUbyBnZXQgdGhlIGN1cnJlbnQgdXNlciB5b3UgaGF2ZSB0byBzdWJzY3JpYmUgdG8gdGhlIHNlcnZpY2VzIGB1c2VyJGAgb2JzZXJ2YWJsZS5cbiAqXG4gKiBgYGBqYXZhc2NyaXB0XG4gKiB1c2VyU2VydmljZS51c2VyJC5zdWJzY3JpYmUoKHVzZXIpID0+IHRoaXMudXNlciA9IHVzZXIpO1xuICogYGBgXG4gKlxuICogVGhpcyB3YXkgeW91ciBjb21wb25lbnQgd2lsbCBiZSBwcm92aWRlZCB3aXRoIGFuIHVwLXRvLWRhdGUgdXNlciBvYmplY3Qgbm8gbWF0dGVyXG4gKiB3aGljaCBjb21wb25lbnQgY2hhbmdlcyBvbiBvZiB0aGUgdXNlcnMgcHJvcGVydGllcy5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVXNlclNlcnZpY2Uge1xuXG4gIFVTRVJfRkVUQ0hfVVJJID0gJy91c2VyP2Zhdm9yaXRlcz10cnVlJnByaXZpbGVnZXM9dHJ1ZSZyb2xlcz10cnVlJmRlcHV0aWVzPXRydWUmc3Vic3RpdHV0ZXNPZj10cnVlJztcblxuICBwcml2YXRlIHVzZXI6IEVvVXNlciA9IG51bGw7XG4gIHByaXZhdGUgdXNlclNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RW9Vc2VyPih0aGlzLnVzZXIpO1xuICAvKipcbiAgICogT2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgY3VycmVudCB1c2VyXG4gICAqL1xuICBwdWJsaWMgdXNlciQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMudXNlclNvdXJjZS5hc09ic2VydmFibGUoKTtcblxuICBwcml2YXRlIGZhdm9yaXRlcyA9IG51bGw7XG4gIHByaXZhdGUgZmF2b3JpdGVzU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHRoaXMuZmF2b3JpdGVzKTtcbiAgLyoqXG4gICAqIE9ic2VydmFibGUgZW1pdHRpbmcgY3VycmVudCB1c2VycyBmYXZvcml0ZXNcbiAgICovXG4gIHB1YmxpYyBmYXZvcml0ZXNHcmlkRGF0YSQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuZmF2b3JpdGVzU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGVib3VuY2VUaW1lKDEwMCksIGZpbHRlcih2ID0+IHYpKTtcbiAgcHVibGljIGZhdm9yaXRlcyQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuZmF2b3JpdGVzR3JpZERhdGEkLnBpcGUodGhpcy5iYWNrZW5kLmdyaWREYXRhRmlsdGVyKTtcblxuICBwcml2YXRlIG5vdGlmaWNhdGlvbnMgPSBudWxsO1xuICBwcml2YXRlIG5vdGlmaWNhdGlvbnNTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4odGhpcy5ub3RpZmljYXRpb25zKTtcblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSBlbWl0dGluZyBjdXJyZW50IHVzZXJzIHJlY3ljbGViaW5cbiAgICovXG5cbiAgcHJpdmF0ZSByZWN5Y2xlcyA9IG51bGw7XG4gIHByaXZhdGUgcmVjeWNsZXNTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4odGhpcy5yZWN5Y2xlcyk7XG5cbiAgcHVibGljIHJlY3ljbGVzR3JpZERhdGEkIDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5yZWN5Y2xlc1NvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKGRlYm91bmNlVGltZSgxMDApLCBmaWx0ZXIodiA9PiB2KSk7XG4gIHB1YmxpYyByZWN5Y2xlcyQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMucmVjeWNsZXNHcmlkRGF0YSQucGlwZSh0aGlzLmJhY2tlbmQuZ3JpZERhdGFGaWx0ZXIpO1xuXG5cbiAgLyoqXG4gICAqIE9ic2VydmFibGUgZW1pdHRpbmcgY3VycmVudCB1c2VycyBub3RpZmljYXRpb25zXG4gICAqL1xuICBwdWJsaWMgbm90aWZpY2F0aW9uc0dyaWREYXRhJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5ub3RpZmljYXRpb25zU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGVib3VuY2VUaW1lKDEwMCksIGZpbHRlcih2ID0+IHYpKTtcbiAgcHVibGljIG5vdGlmaWNhdGlvbnMkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLm5vdGlmaWNhdGlvbnNHcmlkRGF0YSQucGlwZSh0aGlzLmJhY2tlbmQuZ3JpZERhdGFGaWx0ZXIpO1xuXG4gIHB1YmxpYyBwYXNzd29yZFZhbGlkYXRpb25TZXR0aW5nczogYW55O1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBzeXN0ZW06IFN5c3RlbVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZykge1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgdXNlci5cbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgdXNlciBvciBOVUxMIGlmIG5vIHVzZXIgaXMgbG9nZ2VkIGluXG4gICAqL1xuICBwdWJsaWMgZ2V0Q3VycmVudFVzZXIoKTogRW9Vc2VyIHtcbiAgICByZXR1cm4gdGhpcy51c2VyO1xuICB9XG5cblxuICAvKipcbiAgICogU2V0IHByZXNlbmNlIG9mIHRoZSBjdXJyZW50IHVzZXJcbiAgICogQHBhcmFtIHByZXNlbnQgVmFsdWUgdG8gc2V0IHRoZSB1c2VycyBwcmVzZW5jZSB0b1xuICAgKi9cbiAgcHVibGljIHNldFByZXNlbmNlKHByZXNlbnQ6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgaWYgKHByZXNlbnQgIT09IHRoaXMudXNlci5wcmVzZW50KSB7XG4gICAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnB1dCgnL3VzZXI/cHJlc2VuY2U9JyArIHByZXNlbnQpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRhcChfID0+IHtcbiAgICAgICAgICAgIHRoaXMudXNlci5wcmVzZW50ID0gcHJlc2VudDtcbiAgICAgICAgICAgIHRoaXMudXNlclNvdXJjZS5uZXh0KHRoaXMudXNlcik7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB1cmlcbiAgICogQHJldHVybnNcbiAgICovXG5cbiAgcHVibGljIGRlbFVzZXJJbWFnZSh1cmk6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodXJpLCBudWxsKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRVc2VySW1hZ2UoZmlsZTogRmlsZSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wdXQoYC91c2VyL2ltYWdlYCxmaWxlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkZXB1dGllcyBmb3IgdGhlIGN1cnJlbnQgdXNlclxuICAgKiBAcGFyYW0gZGVwdXRpZXNOYW1lcyBOYW1lcyBvZiB0aGUgdXNlcnMgdG8gYmUgc2V0IGFzIGRlcHV0aWVzXG4gICAqL1xuICBwdWJsaWMgc2V0RGVwdXRpZXMoZGVwdXRpZXNOYW1lczogc3RyaW5nW10pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucHV0KGAvdXNlci9kZXB1dHk/dXNlcj0ke2RlcHV0aWVzTmFtZXMuam9pbignJnVzZXI9Jyl9YCkucGlwZShcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnJlZnJlc2hDdXJyZW50VXNlcigpLnN1YnNjcmliZSgpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlIHRoZSB1c2VycyBjbGllbnQgbG9jYWxlXG4gICAqIEBwYXJhbSBpc28gSVNPIGxvY2FsZSBzdHJpbmcgdG8gYmUgc2V0IGFzIG5ldyBjbGllbnQgbG9jYWxlXG4gICAqL1xuICBwdWJsaWMgY2hhbmdlQ2xpZW50TG9jYWxlKGlzbzogc3RyaW5nKSB7XG4gICAgdGhpcy51c2VyLnVzZXJTZXR0aW5nc1snY2xpZW50bG9jYWxlJ10gPSBpc287XG4gICAgdGhpcy5iYWNrZW5kXG4gICAgICAucHV0KCcvdXNlci9jb25maWcvd2ViJywgdGhpcy51c2VyLnVzZXJTZXR0aW5ncylcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQ2hhbmdlZCBjbGllbnQgbG9jYWxlIHRvIFxcJycgKyBpc28gKyAnXFwnJyk7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlLnVzZShpc28pO1xuICAgICAgICB0aGlzLnVzZXIudWlEaXJlY3Rpb24gPSAodGhpcy5jb25maWcuZ2V0Q2xpZW50TG9jYWxlcygpLmZpbmQobCA9PiBsLmlzbyA9PT0gaXNvKSB8fCB7fSkuZGlyIHx8IERpcmVjdGlvbi5MVFI7XG4gICAgICAgIHRoaXMudXNlclNvdXJjZS5uZXh0KHRoaXMudXNlcik7XG4gICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnRyaWdnZXIoRW5haW9FdmVudC5DTElFTlRfTE9DQUxFX0NIQU5HRUQsIGlzbyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2UgdGhlIHVzZXJzIHNjaGVtYSBsb2NhbGVcbiAgICogQHBhcmFtIGlzbyBJU08gbG9jYWxlIHN0cmluZyB0byBiZSBzZXQgYXMgbmV3IHNjaGVtYSBsb2NhbGVcbiAgICovXG4gIHB1YmxpYyBjaGFuZ2VTY2hlbWFMb2NhbGUoaXNvOiBzdHJpbmcpIHtcbiAgICB0aGlzLnVzZXIuc2NoZW1hTG9jYWxlID0gaXNvO1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcbiAgICAgIC5wdXQoJy91c2VyL2xvY2FsZS8nICsgdGhpcy51c2VyLnNjaGVtYUxvY2FsZSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdDaGFuZ2VkIHNjaGVtYSBsb2NhbGUgdG8gXFwnJyArIGlzbyArICdcXCcnKTtcbiAgICAgICAgICB0aGlzLnVzZXJTb3VyY2UubmV4dCh0aGlzLnVzZXIpO1xuICAgICAgICAgIHRoaXMuYmFja2VuZC5zZXRIZWFkZXIoJ0FjY2VwdC1MYW5ndWFnZScsIHRoaXMudXNlci5nZXRTY2hlbWFMb2NhbGUoKSk7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0xvYWRpbmcgc3lzdGVtIGRlZmluaXRpb24gZm9yIG5ldyBsb2NhbGUuJyk7XG4gICAgICAgICAgdGhpcy5zeXN0ZW0uZ2V0U3lzdGVtRGVmaW5pdGlvbih0aGlzLnVzZXIpLnN1YnNjcmliZSgpO1xuICAgICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnRyaWdnZXIoRW5haW9FdmVudC5TQ0hFTUFfTE9DQUxFX0NIQU5HRUQsIGlzbyk7XG4gICAgICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYSBuZXcgY3VycmVudCB1c2VyXG4gICAqIEBwYXJhbSByZXMgVGhlIHVzZXIgdG8gYmUgc2V0IGFzIGN1cnJlbnQgdXNlclxuICAgKi9cbiAgcHVibGljIHNldEN1cnJlbnRVc2VyKHJlczogYW55KSB7XG4gICAgdGhpcy51c2VyID0gbmV3IEVvVXNlcihyZXMpO1xuICAgIHRoaXMucGFzc3dvcmRWYWxpZGF0aW9uU2V0dGluZ3MgPSByZXMucGFzc3dvcnR2YWxpZGF0aW9uO1xuICAgIHRoaXMudXNlci5zZXRJbWFnZUJhc2UodGhpcy5iYWNrZW5kLmdldFNlcnZpY2VCYXNlKCkpO1xuICAgIHRoaXMuYmFja2VuZC5zZXRIZWFkZXIoJ0FjY2VwdC1MYW5ndWFnZScsIHRoaXMudXNlci5nZXRTY2hlbWFMb2NhbGUoKSk7XG5cbiAgICBjb25zdCBsYW5ndWFnZXMgPSB0aGlzLmNvbmZpZy5nZXRDbGllbnRMb2NhbGVzKCkubWFwKGxhbmcgPT4gbGFuZy5pc28pO1xuICAgIGxldCB1c2VyTGFuZyA9IHRoaXMudXNlci5nZXRDbGllbnRMb2NhbGUoKTtcbiAgICBpZiAobGFuZ3VhZ2VzLmluZGV4T2YodXNlckxhbmcpID09PSAtMSkge1xuICAgICAgdXNlckxhbmcgPSB0aGlzLmNvbmZpZy5nZXREZWZhdWx0Q2xpZW50TG9jYWxlKCk7XG4gICAgfVxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdTZXR0aW5nIGNsaWVudCBsb2NhbGUgdG8gXFwnJyArIHVzZXJMYW5nICsgJ1xcJycpO1xuICAgIHRoaXMudHJhbnNsYXRlLnVzZSh1c2VyTGFuZyk7XG4gICAgdGhpcy51c2VyLnVpRGlyZWN0aW9uID0gKHRoaXMuY29uZmlnLmdldENsaWVudExvY2FsZXMoKS5maW5kKGwgPT4gbC5pc28gPT09IHVzZXJMYW5nKSB8fCB7fSkuZGlyIHx8IERpcmVjdGlvbi5MVFI7XG5cbiAgICB0aGlzLnVzZXJTb3VyY2UubmV4dCh0aGlzLnVzZXIpO1xuXG4gICAgdGhpcy5mYXZvcml0ZXMgPSBudWxsO1xuICAgIHRoaXMuZmF2b3JpdGVzU291cmNlLm5leHQodGhpcy5mYXZvcml0ZXMpO1xuXG4gICAgdGhpcy5ub3RpZmljYXRpb25zID0gbnVsbDtcbiAgICB0aGlzLm5vdGlmaWNhdGlvbnNTb3VyY2UubmV4dCh0aGlzLm5vdGlmaWNhdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIGN1cnJlbnQgdXNlcnMgZmF2b3JpdGVzXG4gICAqL1xuICBwdWJsaWMgZ2V0RmF2b3JpdGVzKCk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICAvLyBvbmx5IGZhdm9yaXRlIG9iamVjdHMgb2YgdHlwZSAnRE1TX09CSkVDVCcsIGFyZSBhY2NlcHRlZFxuICAgIC8vIHJlYWQgbW9yZTogaHR0cDovL2ppcmEub3B0aW1hbC1zeXN0ZW1zLmRlL2Jyb3dzZS9DT09MLTIzMTZcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAuZ2V0SnNvbignL3VzZXIvZmF2b3JpdGVzJylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzID0+IHJlcyAmJiByZXMuZmlsdGVyKHIgPT4gci5mYXZvcml0ZXR5cGUgPT09ICdETVNfT0JKRUNUJykpLFxuICAgICAgICB0YXAocmVzID0+IHtcbiAgICAgICAgICB0aGlzLmZhdm9yaXRlcyA9IHJlcztcbiAgICAgICAgICB0aGlzLmZhdm9yaXRlc1NvdXJjZS5uZXh0KHRoaXMuZmF2b3JpdGVzKTtcbiAgICAgICAgfSkpO1xuXG4gICAgLy8gLm1hcChyZXMgPT4ge1xuICAgIC8vICAgbGV0IGRtc09iamVjdCA9IHRoaXMucmVzb2x2ZU9iamVjdFR5cGVzKG5ldyBEbXNPYmplY3QocmVzKSk7XG4gICAgLy8gICByZXR1cm4gZG1zT2JqZWN0O1xuICAgIC8vIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNvZnQgdXBkYXRlIGZvciB0aGUgdXNlcnMgZmF2b3JpdGVzXG4gICAqIEBwYXJhbSBpZCBJRCBvZiB0aGUgZmF2b3JpdGUgdG8gYmUgdXBkYXRlZFxuICAgKiBAcGFyYW0gaXRlbSBUaGUgbmV3IGZhdm9yaXRlIGl0ZW1cbiAgICogQHBhcmFtIG11bHRpIFdoZXRoZXIgb3Igbm90IHRvIHVwZGF0ZSBtdWx0aXBsZSBpdGVtc1xuICAgKi9cbiAgcHVibGljIHVwZGF0ZUZhdm9yaXRlcyhpZD86IHN0cmluZywgaXRlbT86IGFueSwgbXVsdGk/OiBhbnlbXSkge1xuICAgIGlmICh0aGlzLmJhY2tlbmQudXBkYXRlKHRoaXMuZmF2b3JpdGVzLCBtdWx0aSB8fCBbe2lkLCBpdGVtfV0pKSB7XG4gICAgICB0aGlzLmZhdm9yaXRlc1NvdXJjZS5uZXh0KHRoaXMuZmF2b3JpdGVzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdXNlcnMgbm90aWZpY2F0aW9ucyAocmVzdWJtaXNzaW9ucyBhbmQgc3Vic2NyaXB0aW9ucylcbiAgICogQHJldHVybnMgUmVzb2x2ZWQgYnkgbGlzdCBvZiB0aGUgdXNlcnMgbm90aWZpY2F0aW9uc1xuICAgKi9cbiAgcHVibGljIGdldE5vdGlmaWNhdGlvbnMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBub3RpZmljYXRpb25EYXRhID0gW1xuICAgICAgdGhpcy5nZXRTdWJzY3JpcHRpb24oKSxcbiAgICAgIHRoaXMuZ2V0UmVzdWJtaXNzaW9uKClcbiAgICBdO1xuICAgIHJldHVybiBmb3JrSm9pbihub3RpZmljYXRpb25EYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB1c2VycyByZXN1Ym1pc3Npb25zXG4gICAqIEByZXR1cm5zIENvbGxlY3Rpb24gb2YgdXNlcnMgcmVzdWJtaXNzaW9uc1xuICAgKi9cbiAgcHVibGljIGdldFJlc3VibWlzc2lvbigpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0SnNvbignL21lc3NhZ2Vwcm92aWRlci9yZXN1Ym1pc3Npb24vbGlzdCcpLnBpcGUoXG4gICAgICB0YXAocmVzcG9uc2UgPT4ge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMgPSByZXNwb25zZTtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zU291cmNlLm5leHQodGhpcy5ub3RpZmljYXRpb25zKTtcbiAgICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB1c2VycyBzdWJzY3JpcHRpb25zXG4gICAqIEByZXR1cm5zIENvbGxlY3Rpb24gb2YgdXNlcnMgc3Vic2NyaXB0aW9uc1xuICAgKi9cbiAgcHVibGljIGdldFN1YnNjcmlwdGlvbigpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcbiAgICAgIC5nZXRKc29uKCcvbWVzc2FnZXByb3ZpZGVyL3N1YnNjcmlwdGlvbi9saXN0JykucGlwZShcbiAgICAgICAgdGFwKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMgPSByZXNwb25zZTtcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnNTb3VyY2UubmV4dCh0aGlzLm5vdGlmaWNhdGlvbnMpO1xuICAgICAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhIG5vdGlmaWNhdGlvblxuICAgKiBAcGFyYW0gaWQgSUQgb2YgdGhlIG5vdGlmaWNhdGlvbiB0byBiZSByZW1vdmVkXG4gICAqIEBwYXJhbSB0eXBlIFRoZSBub3RpZmljYXRpb25zIHR5cGUgKCdTVUJTQ1JJUFRJT04nLCAnUkVTVUJNSVNTSU9OJylcbiAgICovXG4gIHB1YmxpYyByZW1vdmVOb3RpZmljYXRpb25zKGlkOiBzdHJpbmcsIHR5cGU6IHN0cmluZykge1xuICAgIGxldCBtZXNzYWdldHlwZTogc3RyaW5nO1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnU1VCU0NSSVBUSU9OJzpcbiAgICAgICAgbWVzc2FnZXR5cGUgPSAnc3Vic2NyaXB0aW9uJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdSRVNVQk1JU1NJT04nOlxuICAgICAgICBtZXNzYWdldHlwZSA9ICdyZXN1Ym1pc3Npb24nO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5kZWwoYC9tZXNzYWdlcHJvdmlkZXIvJHttZXNzYWdldHlwZX0vYCArIGlkKS5waXBlKHRhcChyZXMgPT4gdGhpcy51cGRhdGVOb3RpZmljYXRpb25zKCcnKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNvZnQgdXBkYXRlIGZvciB1c2VycyBub3RpZmljYXRpb25zXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlTm90aWZpY2F0aW9ucyhpZD86IHN0cmluZywgaXRlbT86IGFueSwgbXVsdGk/OiBhbnlbXSkge1xuICAgIGlmICh0aGlzLmJhY2tlbmQudXBkYXRlKHRoaXMubm90aWZpY2F0aW9ucywgbXVsdGkgfHwgW3tpZCwgaXRlbX1dKSkge1xuICAgICAgdGhpcy5ub3RpZmljYXRpb25zU291cmNlLm5leHQodGhpcy5ub3RpZmljYXRpb25zKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgVVJJIHRvIGEgdXNlcnMgYXZhdGFyIGltYWdlXG4gICAqIEBwYXJhbSB1c2VySWQgVGhlIHVzZXJzIElEXG4gICAqIEByZXR1cm5zIFVSSSB0byB0aGUgdXNlciBpbWFnZVxuICAgKi9cbiAgcHVibGljIGdldFVzZXJJbWFnZVVyaSh1c2VySWQ6IHN0cmluZykge1xuICAgIHJldHVybiBgJHt0aGlzLmJhY2tlbmQuZ2V0QmFzZVdpdGhDb250ZXh0KHRoaXMuYmFja2VuZC5nZXRTZXJ2aWNlQmFzZSgpKX0vb3JnYW5pemF0aW9uL2ltYWdlLyR7dXNlcklkfT91c2VkZWZhdWx0PXRydWVgO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBmYXZvcml0ZSBpdGVtXG4gICAqIEBwYXJhbSBmYXZvcml0ZUlkIElEIG9mIHRoZSBmYXZvcml0ZSBpdGVtIHRvIGJlIHJlbW92ZWRcbiAgICovXG4gIHB1YmxpYyByZW1vdmVGYXZvcml0ZShmYXZvcml0ZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmRlbCgnL3VzZXIvZmF2b3JpdGUvJyArIGZhdm9yaXRlSWQpLnBpcGUodGFwKHJlcyA9PiB0aGlzLnVwZGF0ZUZhdm9yaXRlcyhmYXZvcml0ZUlkKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBmYXZvcml0ZSBpdGVtIGZvciB0aGUgY3VycmVudCB1c2VyXG4gICAqIEBwYXJhbSBpZCBJRCBvZiB0aGUgZG1zIG9iamVjdCB0byBiZSBzZXQgdXAgYXMgZmF2b3JpdGVcbiAgICogQHBhcmFtIHR5cGUgVGhlIG9iamVjdCB0eXBlIG9mIHRoZSBkbXMgb2JqZWN0XG4gICAqIEBwYXJhbSB0aXRsZSBUaGUgZmF2b3JpdGVzIHRpdGxlXG4gICAqL1xuICBwdWJsaWMgY3JlYXRlRmF2b3JpdGUoaWQ6IHN0cmluZywgdHlwZTogc3RyaW5nLCB0aXRsZTogc3RyaW5nKSB7XG4gICAgY29uc3QgdXJpID0gVXRpbHMuYnVpbGRVcmkoJy9kbXMvZmF2b3JpdGUvJyArIGlkLCB7dHlwZSwgdGl0bGV9KTtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnBvc3QodXJpLCB7fSkucGlwZSh0YXAocmVzID0+IHRoaXMuZ2V0RmF2b3JpdGVzKCkuc3Vic2NyaWJlKCkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlRmF2b3JpdGVzRm9yVGFyZ2V0KGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmRlbCgnL2Rtcy9mYXZvcml0ZS8nICsgaWQpLnBpcGUodGFwKFxuICAgICAgcmVzID0+IHtcbiAgICAgICAgY29uc3QgdG9SZW1vdmUgPSB0aGlzLmZhdm9yaXRlcy5maWx0ZXIoaSA9PiBpLnRhcmdldC5pZCA9PT0gaWQpLm1hcChpID0+IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgIGlkOiBpLmlkXG4gICAgICAgIH0pKTtcbiAgICAgICAgdGhpcy51cGRhdGVGYXZvcml0ZXMobnVsbCwgbnVsbCwgdG9SZW1vdmUpO1xuICAgICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHVzZXJzIHJlY3ljbGViaW5cbiAgKi9cbiAgZ2V0UmVjeWNsZUJpbigpOiBPYnNlcnZhYmxlPGFueT4gIHtcbiAgICAgcmV0dXJuIHRoaXMuYmFja2VuZC5nZXRKc29uKGAvdXNlci9yZWN5Y2xlYmluYCkucGlwZShcbiAgICAgIHRhcChyZXNwb25zZT0+e1xuICAgICAgICB0aGlzLnJlY3ljbGVzPXJlc3BvbnNlO1xuICAgICAgICB0aGlzLnJlY3ljbGVzU291cmNlLm5leHQodGhpcy5yZWN5Y2xlcyk7XG4gICAgICB9KSk7XG4gICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZXMgdGhlIHVzZXJzIHByZWZlcnJlZCBsb2NrIG1vZGUgYW5kIHBlcnNpc3RzIGl0IG9uIHRoZSBzZXJ2ZXJcbiAgICogQHBhcmFtIGxvY2sgVGhlIHZhbHVlIHRvIHNldCB0aGUgbG9jayBzZXR0aW5ncyB0b1xuICAgKi9cbiAgcHVibGljIGNoYW5nZUxvY2tTZXR0aW5nKGxvY2s6IHN0cmluZykge1xuICAgIHRoaXMudXNlci51c2VyU2V0dGluZ3MuYWx3YXlzbG9jayA9IGxvY2s7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wdXQoJy91c2VyL2NvbmZpZy93ZWInLCB0aGlzLnVzZXIudXNlclNldHRpbmdzKS5waXBlKG1hcCgoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2hDdXJyZW50VXNlcigpLnN1YnNjcmliZSgpO1xuICAgIH0pKTtcbiAgfVxuXG4gIHB1YmxpYyBoYXNQcml2aWxlZ2UocHJpdmlsZWdlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnVzZXIucHJpdmlsZWdlcy5maW5kKHByaXYgPT4gcHJpdi5uYW1lID09PSBwcml2aWxlZ2UpO1xuICB9XG5cblxuICAvKipcbiAgICogQ2hhbmdlcyB0aGUgdXNlcnMgcGFzc3dvcmQgYW5kIHBlcnNpc3RzIGl0IG9uIHRoZSBzZXJ2ZXJcbiAgICovXG4gIGNoYW5nZVBhc3N3b3JkKHBheWxvYWQ6IENoYW5nZVBhc3N3b3JkSW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnB1dChgL3VzZXIvcGFzc3dvcmRgLCBwYXlsb2FkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIHRoZSBzZXR0aW5ncyBmb3IgdGhlIGN1cnJlbnQgdXNlciBhbmQgc3RvcmVzIHRoZSBuZXcgVXNlciBvYmplY3Qgb24gdGhlIHNlc3Npb25cbiAgICovXG4gIHByaXZhdGUgcmVmcmVzaEN1cnJlbnRVc2VyKCkge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0KHRoaXMuVVNFUl9GRVRDSF9VUkkpLnBpcGUobWFwKHJlcyA9PiB0aGlzLnNldEN1cnJlbnRVc2VyKHJlcykpKTtcbiAgfVxuXG4gIHB1YmxpYyB2YWxpZGF0ZVBhc3N3b3JkKHBhc3N3b3JkOiBzdHJpbmcpOiB7dHlwZTogc3RyaW5nLCBhbW91bnQ6IG51bWJlcn0ge1xuICAgIGlmIChwYXNzd29yZC5sZW5ndGggPCB0aGlzLnBhc3N3b3JkVmFsaWRhdGlvblNldHRpbmdzLm1pbmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHt0eXBlOiAnc2hvcnQnLCBhbW91bnQ6IHRoaXMucGFzc3dvcmRWYWxpZGF0aW9uU2V0dGluZ3MubWlubGVuZ3RofTtcbiAgICB9XG5cbiAgICBpZiAocGFzc3dvcmQucmVwbGFjZSgvW14wLTldL2csICcnKS5sZW5ndGggPCB0aGlzLnBhc3N3b3JkVmFsaWRhdGlvblNldHRpbmdzLm1pbm51bWJlcikge1xuICAgICAgcmV0dXJuIHt0eXBlOiAnbnVtYmVyJywgYW1vdW50OiB0aGlzLnBhc3N3b3JkVmFsaWRhdGlvblNldHRpbmdzLm1pbm51bWJlcn07XG4gICAgfVxuXG4gICAgaWYgKHBhc3N3b3JkLnJlcGxhY2UoL1thLXpBLVowLTnDnyBdL2csICcnKS5sZW5ndGggPCB0aGlzLnBhc3N3b3JkVmFsaWRhdGlvblNldHRpbmdzLm1pbnNwZWNpYWxjaGFycykge1xuICAgICAgcmV0dXJuIHt0eXBlOiAnc3BlY2lhbGNoYXJzJywgYW1vdW50OiB0aGlzLnBhc3N3b3JkVmFsaWRhdGlvblNldHRpbmdzLm1pbnNwZWNpYWxjaGFyc307XG4gICAgfVxuXG4gICAgcmV0dXJuICB7dHlwZTogJ3ZhbGlkJywgYW1vdW50OiBudWxsfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2VzIHRoZSB1c2VycyBzYXZlZCBpbmJveCBmaWx0ZXIgdGVybXNcbiAgICogQHBhcmFtIGZpbHRlclRlcm1zIFRoZSB2YWx1ZSB0byBzZXQgdGhlIHNhdmVkIGluYm94IGZpbHRlcnMgbGlzdCB0b1xuICAgKi9cbiAgcHVibGljIGNoYW5nZVNhdmVkSW5ib3hGaWx0ZXJzKGZpbHRlclRlcm1zOiBzdHJpbmdbXSkge1xuICAgIHRoaXMudXNlci51c2VyU2V0dGluZ3Muc2F2ZWRJbmJveEZpbHRlciA9IGZpbHRlclRlcm1zO1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucHV0KCcvdXNlci9jb25maWcvd2ViJywgdGhpcy51c2VyLnVzZXJTZXR0aW5ncykucGlwZShtYXAoKCkgPT4ge1xuICAgICAgdGhpcy5yZWZyZXNoQ3VycmVudFVzZXIoKS5zdWJzY3JpYmUoKTtcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogU2F2ZSBvciBjaGFuZ2UgdGhlIHdvcmtzcGFjZSBvZiB0aGUgY3VycmVudCB1c2VyXG4gICAqIEBwYXJhbSB3b3Jrc3BhY2VDb25maWcgVGhlIHZhbHVlIHRvIHNldCB0aGUgc2F2ZWQgd29ya3NwYWNlIG9yIGNyZWF0ZSBhIG5ldyB3b3Jrc3BhY2VcbiAgICovXG4gIHB1YmxpYyBzYXZlQ2hhbmdlV29ya3NwYWNlKHdvcmtzcGFjZUNvbmZpZzogV2lkZ2V0R3JpZFdvcmtzcGFjZUNvbmZpZykge1xuICAgIHRoaXMudXNlci51c2VyU2V0dGluZ3Mud29ya3NwYWNlT3B0aW9ucyA9IHdvcmtzcGFjZUNvbmZpZztcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnB1dCgnL3VzZXIvY29uZmlnL3dlYicsIHRoaXMudXNlci51c2VyU2V0dGluZ3MpLnBpcGUobWFwKCgpID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaEN1cnJlbnRVc2VyKCkuc3Vic2NyaWJlKCk7XG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbGwgdGhlIGZpZWxkIGRlZmluaXRpb25zIG9mIGFuIG9iamVjdCB0eXBlXG4gICAqIEBwYXJhbSB0eXBlIFRoZSBvYmplY3QgdHlwZVxuICAgKi9cblxuICBwdWJsaWMgZ2V0RmllbGREZWZpbml0aW9uKHR5cGU6IHN0cmluZykge1xuICAgIGNvbnN0IGNvbnRleHRUeXBlID0gJ3N5c2ZvbGRlcic7XG4gICAgbGV0IG1vZGUgPSAnQUxMJztcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldChgL3VzZXIvY29uZmlnL3Jlc3VsdC8ke3R5cGV9P2NvbnRleHR0eXBlPSR7Y29udGV4dFR5cGV9Jm1vZGU9JHttb2RlfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdmUgb3IgY2hhbmdlIHRoZSB2aXNpYmlsaXR5IHN0YXRlIG9mIGRhc2hib2FyZCB0b29sYmFyIGZvciB0aGUgY3VycmVudCB1c2VyXG4gICAqIEBwYXJhbSB0b29sYmFyVmlzaWJpbGl0eSBUaGUgdmlzaWJpbGl0eSBzdGF0ZVxuICAgKi9cbiAgcHVibGljIHNhdmVUb29sYmFyU3RhdGUodG9vbGJhclZpc2liaWxpdHk6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnVzZXIudXNlclNldHRpbmdzLnRvb2xiYXJWaXNpYmlsaXR5ID0gdG9vbGJhclZpc2liaWxpdHk7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wdXQoJy91c2VyL2NvbmZpZy93ZWInLCB0aGlzLnVzZXIudXNlclNldHRpbmdzKS5waXBlKG1hcCgoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2hDdXJyZW50VXNlcigpLnN1YnNjcmliZSgpO1xuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlIHRoZSBsb2NhbCBzdG9yYWdlIHNldHRpbmdzXG4gICAqIEBwYXJhbSBsb2NhbFNldHRpbmdzIFRoZSBsb2NhbCBzZXR0aW5ncyB0byBiZSBzYXZlZCBmcm9tIHRoZSBsb2NhbHN0b3JhZ2VcbiAgICogQHBhcmFtIGNhY2hlU2V0dGluZ3MgVGhlIGxvY2FsIHNldHRpbmdzIHRvIGJlIHNhdmVkIGZyb20gdGhlIGFwcCBjYWNoZVxuICAgKi9cbiAgcHVibGljIHNhdmVMb2NhbFNldHRpbmdzKGxvY2FsU2V0dGluZ3M6IGFueSwgY2FjaGVTZXR0aW5nczogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wdXQoJy91c2VyL2NvbmZpZy9sb2NhbFNldHRpbmdzJywge2xvY2FsU2V0dGluZ3M6IGxvY2FsU2V0dGluZ3MsIGNhY2hlU2V0dGluZ3M6IGNhY2hlU2V0dGluZ3N9KS5waXBlKG1hcCgoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2hDdXJyZW50VXNlcigpLnN1YnNjcmliZSgpO1xuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyB0aGUgbG9jYWwgc3RvcmFnZSBzZXR0aW5nc1xuICAgKiBAcmV0dXJucyBUaGUgc2F2ZWQgc2V0dGluZ3NcbiAgICovXG4gIHB1YmxpYyBsb2FkTG9jYWxTZXR0aW5ncygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0KCcvdXNlci9jb25maWcvbG9jYWxTZXR0aW5ncycpO1xuICB9XG59XG4iXX0=
|
|
399
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW8tc2RrL2NvcmUvc3JjL2xpYi9zZXJ2aWNlL3VzZXIvdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFhLGVBQWUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN0RSxPQUFPLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBSTFFLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUlqRCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDdkMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRTVDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7O0FBSWhEOzs7Ozs7Ozs7O0dBVUc7QUFJSCxNQUFNLE9BQU8sV0FBVztJQXlDdEI7O09BRUc7SUFDSCxZQUFvQixPQUF1QixFQUN2QixTQUEyQixFQUMzQixNQUFjLEVBQ2QsWUFBMEIsRUFDMUIsTUFBcUIsRUFDckIsSUFBZ0IsRUFDaEIsTUFBYztRQU5kLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWhEbEMsbUJBQWMsR0FBRyxrRkFBa0Ys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bkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBCZWhhdmlvclN1YmplY3QsIGZvcmtKb2luLCBvZiwgRU1QVFl9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHRhcCwgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIGNhdGNoRXJyb3J9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0NoYW5nZVBhc3N3b3JkSW50ZXJmYWNlfSBmcm9tICcuLi8uLi9pbnRlcmZhY2UvY2hhbmdlLXBhc3N3b3JkLmludGVyZmFjZSc7XG5pbXBvcnQge0JhY2tlbmRTZXJ2aWNlfSBmcm9tICcuLi9iYWNrZW5kL2JhY2tlbmQuc2VydmljZSc7XG5pbXBvcnQge0VvVXNlcn0gZnJvbSAnLi4vLi4vbW9kZWwvZW8tdXNlci5tb2RlbCc7XG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnL2NvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7TG9nZ2VyfSBmcm9tICcuLi9sb2dnZXIvbG9nZ2VyJztcbmltcG9ydCB7U3lzdGVtU2VydmljZX0gZnJvbSAnLi4vc3lzdGVtL3N5c3RlbS5zZXJ2aWNlJztcbmltcG9ydCB7VXRpbHN9IGZyb20gJy4uLy4uL3V0aWwvdXRpbHMnO1xuaW1wb3J0IHtFbmFpb0V2ZW50fSBmcm9tICcuLi9ldmVudHMvZXZlbnRzJztcbmltcG9ydCB7RXZlbnRTZXJ2aWNlfSBmcm9tICcuLi9ldmVudHMvZXZlbnQuc2VydmljZSc7XG5pbXBvcnQge0RpcmVjdGlvbn0gZnJvbSAnLi4vY29uZmlnL2NvbmZpZy5lbnVtJztcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtXaWRnZXRHcmlkV29ya3NwYWNlQ29uZmlnfSBmcm9tICdAeXV1dmlzL3dpZGdldC1ncmlkJztcblxuLyoqXG4gKiBBcHBsaWNhdGlvbnMgdXNlciBzZXJ2aWNlLlxuICogVG8gZ2V0IHRoZSBjdXJyZW50IHVzZXIgeW91IGhhdmUgdG8gc3Vic2NyaWJlIHRvIHRoZSBzZXJ2aWNlcyBgdXNlciRgIG9ic2VydmFibGUuXG4gKlxuICogYGBgamF2YXNjcmlwdFxuICogdXNlclNlcnZpY2UudXNlciQuc3Vic2NyaWJlKCh1c2VyKSA9PiB0aGlzLnVzZXIgPSB1c2VyKTtcbiAqIGBgYFxuICpcbiAqIFRoaXMgd2F5IHlvdXIgY29tcG9uZW50IHdpbGwgYmUgcHJvdmlkZWQgd2l0aCBhbiB1cC10by1kYXRlIHVzZXIgb2JqZWN0IG5vIG1hdHRlclxuICogd2hpY2ggY29tcG9uZW50IGNoYW5nZXMgb24gb2YgdGhlIHVzZXJzIHByb3BlcnRpZXMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJTZXJ2aWNlIHtcblxuICBVU0VSX0ZFVENIX1VSSSA9ICcvdXNlcj9mYXZvcml0ZXM9dHJ1ZSZwcml2aWxlZ2VzPXRydWUmcm9sZXM9dHJ1ZSZkZXB1dGllcz10cnVlJnN1YnN0aXR1dGVzT2Y9dHJ1ZSc7XG5cbiAgcHJpdmF0ZSB1c2VyOiBFb1VzZXIgPSBudWxsO1xuICBwcml2YXRlIHVzZXJTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEVvVXNlcj4odGhpcy51c2VyKTtcbiAgLyoqXG4gICAqIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIGN1cnJlbnQgdXNlclxuICAgKi9cbiAgcHVibGljIHVzZXIkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLnVzZXJTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSBmYXZvcml0ZXMgPSBudWxsO1xuICBwcml2YXRlIGZhdm9yaXRlc1NvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih0aGlzLmZhdm9yaXRlcyk7XG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIGVtaXR0aW5nIGN1cnJlbnQgdXNlcnMgZmF2b3JpdGVzXG4gICAqL1xuICBwdWJsaWMgZmF2b3JpdGVzR3JpZERhdGEkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmZhdm9yaXRlc1NvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKGRlYm91bmNlVGltZSgxMDApLCBmaWx0ZXIodiA9PiB2KSk7XG4gIHB1YmxpYyBmYXZvcml0ZXMkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmZhdm9yaXRlc0dyaWREYXRhJC5waXBlKHRoaXMuYmFja2VuZC5ncmlkRGF0YUZpbHRlcik7XG5cbiAgcHJpdmF0ZSBub3RpZmljYXRpb25zID0gbnVsbDtcbiAgcHJpdmF0ZSBub3RpZmljYXRpb25zU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHRoaXMubm90aWZpY2F0aW9ucyk7XG5cbiAgLyoqXG4gICAqIE9ic2VydmFibGUgZW1pdHRpbmcgY3VycmVudCB1c2VycyByZWN5Y2xlYmluXG4gICAqL1xuXG4gIHByaXZhdGUgcmVjeWNsZXMgPSBudWxsO1xuICBwcml2YXRlIHJlY3ljbGVzU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHRoaXMucmVjeWNsZXMpO1xuXG4gIHB1YmxpYyByZWN5Y2xlc0dyaWREYXRhJCA6IE9ic2VydmFibGU8YW55PiA9IHRoaXMucmVjeWNsZXNTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZShkZWJvdW5jZVRpbWUoMTAwKSwgZmlsdGVyKHYgPT4gdikpO1xuICBwdWJsaWMgcmVjeWNsZXMkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLnJlY3ljbGVzR3JpZERhdGEkLnBpcGUodGhpcy5iYWNrZW5kLmdyaWREYXRhRmlsdGVyKTtcblxuXG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIGVtaXR0aW5nIGN1cnJlbnQgdXNlcnMgbm90aWZpY2F0aW9uc1xuICAgKi9cbiAgcHVibGljIG5vdGlmaWNhdGlvbnNHcmlkRGF0YSQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMubm90aWZpY2F0aW9uc1NvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKGRlYm91bmNlVGltZSgxMDApLCBmaWx0ZXIodiA9PiB2KSk7XG4gIHB1YmxpYyBub3RpZmljYXRpb25zJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5ub3RpZmljYXRpb25zR3JpZERhdGEkLnBpcGUodGhpcy5iYWNrZW5kLmdyaWREYXRhRmlsdGVyKTtcblxuICBwdWJsaWMgcGFzc3dvcmRWYWxpZGF0aW9uU2V0dGluZ3M6IGFueTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBiYWNrZW5kOiBCYWNrZW5kU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgc3lzdGVtOiBTeXN0ZW1TZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgICAgICAgICAgIHByaXZhdGUgY29uZmlnOiBDb25maWcpIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IHVzZXIuXG4gICAqIEByZXR1cm5zIFRoZSBjdXJyZW50IHVzZXIgb3IgTlVMTCBpZiBubyB1c2VyIGlzIGxvZ2dlZCBpblxuICAgKi9cbiAgcHVibGljIGdldEN1cnJlbnRVc2VyKCk6IEVvVXNlciB7XG4gICAgcmV0dXJuIHRoaXMudXNlcjtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIFNldCBwcmVzZW5jZSBvZiB0aGUgY3VycmVudCB1c2VyXG4gICAqIEBwYXJhbSBwcmVzZW50IFZhbHVlIHRvIHNldCB0aGUgdXNlcnMgcHJlc2VuY2UgdG9cbiAgICovXG4gIHB1YmxpYyBzZXRQcmVzZW5jZShwcmVzZW50OiBib29sZWFuKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgIGlmIChwcmVzZW50ICE9PSB0aGlzLnVzZXIucHJlc2VudCkge1xuICAgICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wdXQoJy91c2VyP3ByZXNlbmNlPScgKyBwcmVzZW50KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YXAoXyA9PiB7XG4gICAgICAgICAgICB0aGlzLnVzZXIucHJlc2VudCA9IHByZXNlbnQ7XG4gICAgICAgICAgICB0aGlzLnVzZXJTb3VyY2UubmV4dCh0aGlzLnVzZXIpO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gdXJpXG4gICAqIEByZXR1cm5zXG4gICAqL1xuXG4gIHB1YmxpYyBkZWxVc2VySW1hZ2UodXJpOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHVyaSwgbnVsbCk7XG4gIH1cblxuICBwdWJsaWMgc2V0VXNlckltYWdlKGZpbGU6IEZpbGUpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucHV0KGAvdXNlci9pbWFnZWAsZmlsZSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZGVwdXRpZXMgZm9yIHRoZSBjdXJyZW50IHVzZXJcbiAgICogQHBhcmFtIGRlcHV0aWVzTmFtZXMgTmFtZXMgb2YgdGhlIHVzZXJzIHRvIGJlIHNldCBhcyBkZXB1dGllc1xuICAgKi9cbiAgcHVibGljIHNldERlcHV0aWVzKGRlcHV0aWVzTmFtZXM6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnB1dChgL3VzZXIvZGVwdXR5P3VzZXI9JHtkZXB1dGllc05hbWVzLmpvaW4oJyZ1c2VyPScpfWApLnBpcGUoXG4gICAgICB0YXAoKCkgPT4gdGhpcy5yZWZyZXNoQ3VycmVudFVzZXIoKS5zdWJzY3JpYmUoKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSB0aGUgdXNlcnMgY2xpZW50IGxvY2FsZVxuICAgKiBAcGFyYW0gaXNvIElTTyBsb2NhbGUgc3RyaW5nIHRvIGJlIHNldCBhcyBuZXcgY2xpZW50IGxvY2FsZVxuICAgKi9cbiAgcHVibGljIGNoYW5nZUNsaWVudExvY2FsZShpc286IHN0cmluZykge1xuICAgIHRoaXMudXNlci51c2VyU2V0dGluZ3NbJ2NsaWVudGxvY2FsZSddID0gaXNvO1xuICAgIHRoaXMuYmFja2VuZFxuICAgICAgLnB1dCgnL3VzZXIvY29uZmlnL3dlYicsIHRoaXMudXNlci51c2VyU2V0dGluZ3MpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0NoYW5nZWQgY2xpZW50IGxvY2FsZSB0byBcXCcnICsgaXNvICsgJ1xcJycpO1xuICAgICAgICB0aGlzLnRyYW5zbGF0ZS51c2UoaXNvKTtcbiAgICAgICAgdGhpcy51c2VyLnVpRGlyZWN0aW9uID0gKHRoaXMuY29uZmlnLmdldENsaWVudExvY2FsZXMoKS5maW5kKGwgPT4gbC5pc28gPT09IGlzbykgfHwge30pLmRpciB8fCBEaXJlY3Rpb24uTFRSO1xuICAgICAgICB0aGlzLnVzZXJTb3VyY2UubmV4dCh0aGlzLnVzZXIpO1xuICAgICAgICB0aGlzLmV2ZW50U2VydmljZS50cmlnZ2VyKEVuYWlvRXZlbnQuQ0xJRU5UX0xPQ0FMRV9DSEFOR0VELCBpc28pO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlIHRoZSB1c2VycyBzY2hlbWEgbG9jYWxlXG4gICAqIEBwYXJhbSBpc28gSVNPIGxvY2FsZSBzdHJpbmcgdG8gYmUgc2V0IGFzIG5ldyBzY2hlbWEgbG9jYWxlXG4gICAqL1xuICBwdWJsaWMgY2hhbmdlU2NoZW1hTG9jYWxlKGlzbzogc3RyaW5nKSB7XG4gICAgdGhpcy51c2VyLnNjaGVtYUxvY2FsZSA9IGlzbztcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAucHV0KCcvdXNlci9sb2NhbGUvJyArIHRoaXMudXNlci5zY2hlbWFMb2NhbGUpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQ2hhbmdlZCBzY2hlbWEgbG9jYWxlIHRvIFxcJycgKyBpc28gKyAnXFwnJyk7XG4gICAgICAgICAgdGhpcy51c2VyU291cmNlLm5leHQodGhpcy51c2VyKTtcbiAgICAgICAgICB0aGlzLmJhY2tlbmQuc2V0SGVhZGVyKCdBY2NlcHQtTGFuZ3VhZ2UnLCB0aGlzLnVzZXIuZ2V0U2NoZW1hTG9jYWxlKCkpO1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdMb2FkaW5nIHN5c3RlbSBkZWZpbml0aW9uIGZvciBuZXcgbG9jYWxlLicpO1xuICAgICAgICAgIHRoaXMuc3lzdGVtLmdldFN5c3RlbURlZmluaXRpb24odGhpcy51c2VyKS5zdWJzY3JpYmUoKTtcbiAgICAgICAgICB0aGlzLmV2ZW50U2VydmljZS50cmlnZ2VyKEVuYWlvRXZlbnQuU0NIRU1BX0xPQ0FMRV9DSEFOR0VELCBpc28pO1xuICAgICAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGEgbmV3IGN1cnJlbnQgdXNlclxuICAgKiBAcGFyYW0gcmVzIFRoZSB1c2VyIHRvIGJlIHNldCBhcyBjdXJyZW50IHVzZXJcbiAgICovXG4gIHB1YmxpYyBzZXRDdXJyZW50VXNlcihyZXM6IGFueSkge1xuICAgIHRoaXMudXNlciA9IG5ldyBFb1VzZXIocmVzKTtcbiAgICB0aGlzLnBhc3N3b3JkVmFsaWRhdGlvblNldHRpbmdzID0gcmVzLnBhc3N3b3J0dmFsaWRhdGlvbjtcbiAgICB0aGlzLnVzZXIuc2V0SW1hZ2VCYXNlKHRoaXMuYmFja2VuZC5nZXRTZXJ2aWNlQmFzZSgpKTtcbiAgICB0aGlzLmJhY2tlbmQuc2V0SGVhZGVyKCdBY2NlcHQtTGFuZ3VhZ2UnLCB0aGlzLnVzZXIuZ2V0U2NoZW1hTG9jYWxlKCkpO1xuXG4gICAgY29uc3QgbGFuZ3VhZ2VzID0gdGhpcy5jb25maWcuZ2V0Q2xpZW50TG9jYWxlcygpLm1hcChsYW5nID0+IGxhbmcuaXNvKTtcbiAgICBsZXQgdXNlckxhbmcgPSB0aGlzLnVzZXIuZ2V0Q2xpZW50TG9jYWxlKCk7XG4gICAgaWYgKGxhbmd1YWdlcy5pbmRleE9mKHVzZXJMYW5nKSA9PT0gLTEpIHtcbiAgICAgIHVzZXJMYW5nID0gdGhpcy5jb25maWcuZ2V0RGVmYXVsdENsaWVudExvY2FsZSgpO1xuICAgIH1cbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnU2V0dGluZyBjbGllbnQgbG9jYWxlIHRvIFxcJycgKyB1c2VyTGFuZyArICdcXCcnKTtcbiAgICB0aGlzLnRyYW5zbGF0ZS51c2UodXNlckxhbmcpO1xuICAgIHRoaXMudXNlci51aURpcmVjdGlvbiA9ICh0aGlzLmNvbmZpZy5nZXRDbGllbnRMb2NhbGVzKCkuZmluZChsID0+IGwuaXNvID09PSB1c2VyTGFuZykgfHwge30pLmRpciB8fCBEaXJlY3Rpb24uTFRSO1xuXG4gICAgdGhpcy51c2VyU291cmNlLm5leHQodGhpcy51c2VyKTtcblxuICAgIHRoaXMuZmF2b3JpdGVzID0gbnVsbDtcbiAgICB0aGlzLmZhdm9yaXRlc1NvdXJjZS5uZXh0KHRoaXMuZmF2b3JpdGVzKTtcblxuICAgIHRoaXMubm90aWZpY2F0aW9ucyA9IG51bGw7XG4gICAgdGhpcy5ub3RpZmljYXRpb25zU291cmNlLm5leHQodGhpcy5ub3RpZmljYXRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIHRoZSBjdXJyZW50IHVzZXJzIGZhdm9yaXRlc1xuICAgKi9cbiAgcHVibGljIGdldEZhdm9yaXRlcygpOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgLy8gb25seSBmYXZvcml0ZSBvYmplY3RzIG9mIHR5cGUgJ0RNU19PQkpFQ1QnLCBhcmUgYWNjZXB0ZWRcbiAgICAvLyByZWFkIG1vcmU6IGh0dHA6Ly9qaXJhLm9wdGltYWwtc3lzdGVtcy5kZS9icm93c2UvQ09PTC0yMzE2XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgLmdldEpzb24oJy91c2VyL2Zhdm9yaXRlcycpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlcyA9PiByZXMgJiYgcmVzLmZpbHRlcihyID0+IHIuZmF2b3JpdGV0eXBlID09PSAnRE1TX09CSkVDVCcpKSxcbiAgICAgICAgdGFwKHJlcyA9PiB7XG4gICAgICAgICAgdGhpcy5mYXZvcml0ZXMgPSByZXM7XG4gICAgICAgICAgdGhpcy5mYXZvcml0ZXNTb3VyY2UubmV4dCh0aGlzLmZhdm9yaXRlcyk7XG4gICAgICAgIH0pKTtcblxuICAgIC8vIC5tYXAocmVzID0+IHtcbiAgICAvLyAgIGxldCBkbXNPYmplY3QgPSB0aGlzLnJlc29sdmVPYmplY3RUeXBlcyhuZXcgRG1zT2JqZWN0KHJlcykpO1xuICAgIC8vICAgcmV0dXJuIGRtc09iamVjdDtcbiAgICAvLyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTb2Z0IHVwZGF0ZSBmb3IgdGhlIHVzZXJzIGZhdm9yaXRlc1xuICAgKiBAcGFyYW0gaWQgSUQgb2YgdGhlIGZhdm9yaXRlIHRvIGJlIHVwZGF0ZWRcbiAgICogQHBhcmFtIGl0ZW0gVGhlIG5ldyBmYXZvcml0ZSBpdGVtXG4gICAqIEBwYXJhbSBtdWx0aSBXaGV0aGVyIG9yIG5vdCB0byB1cGRhdGUgbXVsdGlwbGUgaXRlbXNcbiAgICovXG4gIHB1YmxpYyB1cGRhdGVGYXZvcml0ZXMoaWQ/OiBzdHJpbmcsIGl0ZW0/OiBhbnksIG11bHRpPzogYW55W10pIHtcbiAgICBpZiAodGhpcy5iYWNrZW5kLnVwZGF0ZSh0aGlzLmZhdm9yaXRlcywgbXVsdGkgfHwgW3tpZCwgaXRlbX1dKSkge1xuICAgICAgdGhpcy5mYXZvcml0ZXNTb3VyY2UubmV4dCh0aGlzLmZhdm9yaXRlcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHVzZXJzIG5vdGlmaWNhdGlvbnMgKHJlc3VibWlzc2lvbnMgYW5kIHN1YnNjcmlwdGlvbnMpXG4gICAqIEByZXR1cm5zIFJlc29sdmVkIGJ5IGxpc3Qgb2YgdGhlIHVzZXJzIG5vdGlmaWNhdGlvbnNcbiAgICovXG4gIHB1YmxpYyBnZXROb3RpZmljYXRpb25zKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgbm90aWZpY2F0aW9uRGF0YSA9IFtcbiAgICAgIHRoaXMuZ2V0U3Vic2NyaXB0aW9uKCksXG4gICAgICB0aGlzLmdldFJlc3VibWlzc2lvbigpXG4gICAgXTtcbiAgICByZXR1cm4gZm9ya0pvaW4obm90aWZpY2F0aW9uRGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdXNlcnMgcmVzdWJtaXNzaW9uc1xuICAgKiBAcmV0dXJucyBDb2xsZWN0aW9uIG9mIHVzZXJzIHJlc3VibWlzc2lvbnNcbiAgICovXG4gIHB1YmxpYyBnZXRSZXN1Ym1pc3Npb24oKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldEpzb24oJy9tZXNzYWdlcHJvdmlkZXIvcmVzdWJtaXNzaW9uL2xpc3QnKS5waXBlKFxuICAgICAgdGFwKHJlc3BvbnNlID0+IHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zID0gcmVzcG9uc2U7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uc1NvdXJjZS5uZXh0KHRoaXMubm90aWZpY2F0aW9ucyk7XG4gICAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdXNlcnMgc3Vic2NyaXB0aW9uc1xuICAgKiBAcmV0dXJucyBDb2xsZWN0aW9uIG9mIHVzZXJzIHN1YnNjcmlwdGlvbnNcbiAgICovXG4gIHB1YmxpYyBnZXRTdWJzY3JpcHRpb24oKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAuZ2V0SnNvbignL21lc3NhZ2Vwcm92aWRlci9zdWJzY3JpcHRpb24vbGlzdCcpLnBpcGUoXG4gICAgICAgIHRhcChyZXNwb25zZSA9PiB7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zID0gcmVzcG9uc2U7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zU291cmNlLm5leHQodGhpcy5ub3RpZmljYXRpb25zKTtcbiAgICAgICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBub3RpZmljYXRpb25cbiAgICogQHBhcmFtIGlkIElEIG9mIHRoZSBub3RpZmljYXRpb24gdG8gYmUgcmVtb3ZlZFxuICAgKiBAcGFyYW0gdHlwZSBUaGUgbm90aWZpY2F0aW9ucyB0eXBlICgnU1VCU0NSSVBUSU9OJywgJ1JFU1VCTUlTU0lPTicpXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlTm90aWZpY2F0aW9ucyhpZDogc3RyaW5nLCB0eXBlOiBzdHJpbmcpIHtcbiAgICBsZXQgbWVzc2FnZXR5cGU6IHN0cmluZztcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ1NVQlNDUklQVElPTic6XG4gICAgICAgIG1lc3NhZ2V0eXBlID0gJ3N1YnNjcmlwdGlvbic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUkVTVUJNSVNTSU9OJzpcbiAgICAgICAgbWVzc2FnZXR5cGUgPSAncmVzdWJtaXNzaW9uJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZGVsKGAvbWVzc2FnZXByb3ZpZGVyLyR7bWVzc2FnZXR5cGV9L2AgKyBpZCkucGlwZSh0YXAocmVzID0+IHRoaXMudXBkYXRlTm90aWZpY2F0aW9ucygnJykpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTb2Z0IHVwZGF0ZSBmb3IgdXNlcnMgbm90aWZpY2F0aW9uc1xuICAgKi9cbiAgcHVibGljIHVwZGF0ZU5vdGlmaWNhdGlvbnMoaWQ/OiBzdHJpbmcsIGl0ZW0/OiBhbnksIG11bHRpPzogYW55W10pIHtcbiAgICBpZiAodGhpcy5iYWNrZW5kLnVwZGF0ZSh0aGlzLm5vdGlmaWNhdGlvbnMsIG11bHRpIHx8IFt7aWQsIGl0ZW19XSkpIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uc1NvdXJjZS5uZXh0KHRoaXMubm90aWZpY2F0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIFVSSSB0byBhIHVzZXJzIGF2YXRhciBpbWFnZVxuICAgKiBAcGFyYW0gdXNlcklkIFRoZSB1c2VycyBJRFxuICAgKiBAcmV0dXJucyBVUkkgdG8gdGhlIHVzZXIgaW1hZ2VcbiAgICovXG4gIHB1YmxpYyBnZXRVc2VySW1hZ2VVcmkodXNlcklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5iYWNrZW5kLmdldEJhc2VXaXRoQ29udGV4dCh0aGlzLmJhY2tlbmQuZ2V0U2VydmljZUJhc2UoKSl9L29yZ2FuaXphdGlvbi9pbWFnZS8ke3VzZXJJZH0/dXNlZGVmYXVsdD10cnVlYDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgZmF2b3JpdGUgaXRlbVxuICAgKiBAcGFyYW0gZmF2b3JpdGVJZCBJRCBvZiB0aGUgZmF2b3JpdGUgaXRlbSB0byBiZSByZW1vdmVkXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlRmF2b3JpdGUoZmF2b3JpdGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5kZWwoJy91c2VyL2Zhdm9yaXRlLycgKyBmYXZvcml0ZUlkKS5waXBlKHRhcChyZXMgPT4gdGhpcy51cGRhdGVGYXZvcml0ZXMoZmF2b3JpdGVJZCkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgZmF2b3JpdGUgaXRlbSBmb3IgdGhlIGN1cnJlbnQgdXNlclxuICAgKiBAcGFyYW0gaWQgSUQgb2YgdGhlIGRtcyBvYmplY3QgdG8gYmUgc2V0IHVwIGFzIGZhdm9yaXRlXG4gICAqIEBwYXJhbSB0eXBlIFRoZSBvYmplY3QgdHlwZSBvZiB0aGUgZG1zIG9iamVjdFxuICAgKiBAcGFyYW0gdGl0bGUgVGhlIGZhdm9yaXRlcyB0aXRsZVxuICAgKi9cbiAgcHVibGljIGNyZWF0ZUZhdm9yaXRlKGlkOiBzdHJpbmcsIHR5cGU6IHN0cmluZywgdGl0bGU6IHN0cmluZykge1xuICAgIGNvbnN0IHVyaSA9IFV0aWxzLmJ1aWxkVXJpKCcvZG1zL2Zhdm9yaXRlLycgKyBpZCwge3R5cGUsIHRpdGxlfSk7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wb3N0KHVyaSwge30pLnBpcGUodGFwKHJlcyA9PiB0aGlzLmdldEZhdm9yaXRlcygpLnN1YnNjcmliZSgpKSk7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHVibGljIHJlbW92ZUZhdm9yaXRlc0ZvclRhcmdldChpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5kZWwoJy9kbXMvZmF2b3JpdGUvJyArIGlkKS5waXBlKHRhcChcbiAgICAgIHJlcyA9PiB7XG4gICAgICAgIGNvbnN0IHRvUmVtb3ZlID0gdGhpcy5mYXZvcml0ZXMuZmlsdGVyKGkgPT4gaS50YXJnZXQuaWQgPT09IGlkKS5tYXAoaSA9PiBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICBpZDogaS5pZFxuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMudXBkYXRlRmF2b3JpdGVzKG51bGwsIG51bGwsIHRvUmVtb3ZlKTtcbiAgICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB1c2VycyByZWN5Y2xlYmluXG4gICovXG4gIGdldFJlY3ljbGVCaW4oKTogT2JzZXJ2YWJsZTxhbnk+ICB7XG4gICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0SnNvbihgL3VzZXIvcmVjeWNsZWJpbmApLnBpcGUoXG4gICAgICB0YXAocmVzcG9uc2U9PntcbiAgICAgICAgdGhpcy5yZWN5Y2xlcz1yZXNwb25zZTtcbiAgICAgICAgdGhpcy5yZWN5Y2xlc1NvdXJjZS5uZXh0KHRoaXMucmVjeWNsZXMpO1xuICAgICAgfSkpO1xuICAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2VzIHRoZSB1c2VycyBwcmVmZXJyZWQgbG9jayBtb2RlIGFuZCBwZXJzaXN0cyBpdCBvbiB0aGUgc2VydmVyXG4gICAqIEBwYXJhbSBsb2NrIFRoZSB2YWx1ZSB0byBzZXQgdGhlIGxvY2sgc2V0dGluZ3MgdG9cbiAgICovXG4gIHB1YmxpYyBjaGFuZ2VMb2NrU2V0dGluZyhsb2NrOiBzdHJpbmcpIHtcbiAgICB0aGlzLnVzZXIudXNlclNldHRpbmdzLmFsd2F5c2xvY2sgPSBsb2NrO1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucHV0KCcvdXNlci9jb25maWcvd2ViJywgdGhpcy51c2VyLnVzZXJTZXR0aW5ncykucGlwZShtYXAoKCkgPT4ge1xuICAgICAgdGhpcy5yZWZyZXNoQ3VycmVudFVzZXIoKS5zdWJzY3JpYmUoKTtcbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgaGFzUHJpdmlsZWdlKHByaXZpbGVnZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy51c2VyLnByaXZpbGVnZXMuZmluZChwcml2ID0+IHByaXYubmFtZSA9PT0gcHJpdmlsZWdlKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIENoYW5nZXMgdGhlIHVzZXJzIHBhc3N3b3JkIGFuZCBwZXJzaXN0cyBpdCBvbiB0aGUgc2VydmVyXG4gICAqL1xuICBjaGFuZ2VQYXNzd29yZChwYXlsb2FkOiBDaGFuZ2VQYXNzd29yZEludGVyZmFjZSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wdXQoYC91c2VyL3Bhc3N3b3JkYCwgcGF5bG9hZCk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyB0aGUgc2V0dGluZ3MgZm9yIHRoZSBjdXJyZW50IHVzZXIgYW5kIHN0b3JlcyB0aGUgbmV3IFVzZXIgb2JqZWN0IG9uIHRoZSBzZXNzaW9uXG4gICAqL1xuICBwcml2YXRlIHJlZnJlc2hDdXJyZW50VXNlcigpIHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldCh0aGlzLlVTRVJfRkVUQ0hfVVJJKS5waXBlKG1hcChyZXMgPT4gdGhpcy5zZXRDdXJyZW50VXNlcihyZXMpKSk7XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGVQYXNzd29yZChwYXNzd29yZDogc3RyaW5nKToge3R5cGU6IHN0cmluZywgYW1vdW50OiBudW1iZXJ9IHtcbiAgICBpZiAocGFzc3dvcmQubGVuZ3RoIDwgdGhpcy5wYXNzd29yZFZhbGlkYXRpb25TZXR0aW5ncy5taW5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB7dHlwZTogJ3Nob3J0JywgYW1vdW50OiB0aGlzLnBhc3N3b3JkVmFsaWRhdGlvblNldHRpbmdzLm1pbmxlbmd0aH07XG4gICAgfVxuXG4gICAgaWYgKHBhc3N3b3JkLnJlcGxhY2UoL1teMC05XS9nLCAnJykubGVuZ3RoIDwgdGhpcy5wYXNzd29yZFZhbGlkYXRpb25TZXR0aW5ncy5taW5udW1iZXIpIHtcbiAgICAgIHJldHVybiB7dHlwZTogJ251bWJlcicsIGFtb3VudDogdGhpcy5wYXNzd29yZFZhbGlkYXRpb25TZXR0aW5ncy5taW5udW1iZXJ9O1xuICAgIH1cblxuICAgIGlmIChwYXNzd29yZC5yZXBsYWNlKC9bYS16QS1aMC05w58gXS9nLCAnJykubGVuZ3RoIDwgdGhpcy5wYXNzd29yZFZhbGlkYXRpb25TZXR0aW5ncy5taW5zcGVjaWFsY2hhcnMpIHtcbiAgICAgIHJldHVybiB7dHlwZTogJ3NwZWNpYWxjaGFycycsIGFtb3VudDogdGhpcy5wYXNzd29yZFZhbGlkYXRpb25TZXR0aW5ncy5taW5zcGVjaWFsY2hhcnN9O1xuICAgIH1cblxuICAgIHJldHVybiAge3R5cGU6ICd2YWxpZCcsIGFtb3VudDogbnVsbH07XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlcyB0aGUgdXNlcnMgc2F2ZWQgaW5ib3ggZmlsdGVyIHRlcm1zXG4gICAqIEBwYXJhbSBmaWx0ZXJUZXJtcyBUaGUgdmFsdWUgdG8gc2V0IHRoZSBzYXZlZCBpbmJveCBmaWx0ZXJzIGxpc3QgdG9cbiAgICovXG4gIHB1YmxpYyBjaGFuZ2VTYXZlZEluYm94RmlsdGVycyhmaWx0ZXJUZXJtczogc3RyaW5nW10pIHtcbiAgICB0aGlzLnVzZXIudXNlclNldHRpbmdzLnNhdmVkSW5ib3hGaWx0ZXIgPSBmaWx0ZXJUZXJtcztcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnB1dCgnL3VzZXIvY29uZmlnL3dlYicsIHRoaXMudXNlci51c2VyU2V0dGluZ3MpLnBpcGUobWFwKCgpID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaEN1cnJlbnRVc2VyKCkuc3Vic2NyaWJlKCk7XG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdmUgb3IgY2hhbmdlIHRoZSB3b3Jrc3BhY2Ugb2YgdGhlIGN1cnJlbnQgdXNlclxuICAgKiBAcGFyYW0gd29ya3NwYWNlQ29uZmlnIFRoZSB2YWx1ZSB0byBzZXQgdGhlIHNhdmVkIHdvcmtzcGFjZSBvciBjcmVhdGUgYSBuZXcgd29ya3NwYWNlXG4gICAqL1xuICBwdWJsaWMgc2F2ZUNoYW5nZVdvcmtzcGFjZSh3b3Jrc3BhY2VDb25maWc6IFdpZGdldEdyaWRXb3Jrc3BhY2VDb25maWcpIHtcbiAgICB0aGlzLnVzZXIudXNlclNldHRpbmdzLndvcmtzcGFjZU9wdGlvbnMgPSB3b3Jrc3BhY2VDb25maWc7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wdXQoJy91c2VyL2NvbmZpZy93ZWInLCB0aGlzLnVzZXIudXNlclNldHRpbmdzKS5waXBlKG1hcCgoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2hDdXJyZW50VXNlcigpLnN1YnNjcmliZSgpO1xuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIHRoZSBmaWVsZCBkZWZpbml0aW9ucyBvZiBhbiBvYmplY3QgdHlwZVxuICAgKiBAcGFyYW0gdHlwZSBUaGUgb2JqZWN0IHR5cGVcbiAgICovXG5cbiAgcHVibGljIGdldEZpZWxkRGVmaW5pdGlvbih0eXBlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBjb250ZXh0VHlwZSA9ICdzeXNmb2xkZXInO1xuICAgIGxldCBtb2RlID0gJ0FMTCc7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5nZXQoYC91c2VyL2NvbmZpZy9yZXN1bHQvJHt0eXBlfT9jb250ZXh0dHlwZT0ke2NvbnRleHRUeXBlfSZtb2RlPSR7bW9kZX1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlIG9yIGNoYW5nZSB0aGUgdmlzaWJpbGl0eSBzdGF0ZSBvZiBkYXNoYm9hcmQgdG9vbGJhciBmb3IgdGhlIGN1cnJlbnQgdXNlclxuICAgKiBAcGFyYW0gdG9vbGJhclZpc2liaWxpdHkgVGhlIHZpc2liaWxpdHkgc3RhdGVcbiAgICovXG4gIHB1YmxpYyBzYXZlVG9vbGJhclN0YXRlKHRvb2xiYXJWaXNpYmlsaXR5OiBib29sZWFuKSB7XG4gICAgdGhpcy51c2VyLnVzZXJTZXR0aW5ncy50b29sYmFyVmlzaWJpbGl0eSA9IHRvb2xiYXJWaXNpYmlsaXR5O1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucHV0KCcvdXNlci9jb25maWcvd2ViJywgdGhpcy51c2VyLnVzZXJTZXR0aW5ncykucGlwZShtYXAoKCkgPT4ge1xuICAgICAgdGhpcy5yZWZyZXNoQ3VycmVudFVzZXIoKS5zdWJzY3JpYmUoKTtcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogU2F2ZSB0aGUgbG9jYWwgc3RvcmFnZSBzZXR0aW5nc1xuICAgKiBAcGFyYW0gbG9jYWxTZXR0aW5ncyBUaGUgbG9jYWwgc2V0dGluZ3MgdG8gYmUgc2F2ZWQgZnJvbSB0aGUgbG9jYWxzdG9yYWdlXG4gICAqIEBwYXJhbSBjYWNoZVNldHRpbmdzIFRoZSBsb2NhbCBzZXR0aW5ncyB0byBiZSBzYXZlZCBmcm9tIHRoZSBhcHAgY2FjaGVcbiAgICovXG4gIHB1YmxpYyBzYXZlTG9jYWxTZXR0aW5ncyhsb2NhbFNldHRpbmdzOiBhbnksIGNhY2hlU2V0dGluZ3M6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucHV0KCcvdXNlci9jb25maWcvbG9jYWxTZXR0aW5ncycsIHtsb2NhbFNldHRpbmdzOiBsb2NhbFNldHRpbmdzLCBjYWNoZVNldHRpbmdzOiBjYWNoZVNldHRpbmdzfSkucGlwZShtYXAoKCkgPT4ge1xuICAgICAgdGhpcy5yZWZyZXNoQ3VycmVudFVzZXIoKS5zdWJzY3JpYmUoKTtcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIGxvY2FsIHN0b3JhZ2Ugc2V0dGluZ3NcbiAgICogQHJldHVybnMgVGhlIHNhdmVkIHNldHRpbmdzXG4gICAqL1xuICBwdWJsaWMgbG9hZExvY2FsU2V0dGluZ3MoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldCgnL3VzZXIvY29uZmlnL2xvY2FsU2V0dGluZ3MnKS5waXBlKGNhdGNoRXJyb3IoKCkgPT4gRU1QVFkpKTtcbiAgfVxufVxuIl19
|
|
@@ -31,7 +31,6 @@ export * from './lib/service/system/systemdefinition.interface';
|
|
|
31
31
|
export * from './lib/service/upload/upload.service';
|
|
32
32
|
export * from './lib/service/upload-registry/upload-registry.service';
|
|
33
33
|
export * from './lib/service/user/user.service';
|
|
34
|
-
export * from './lib/service/environment/environment.service';
|
|
35
34
|
export * from './lib/service/signing/signing.service';
|
|
36
35
|
/**
|
|
37
36
|
* Models
|
|
@@ -58,7 +57,6 @@ export * from './lib/service/stored-queries/stored-query.model';
|
|
|
58
57
|
/**
|
|
59
58
|
* Interfaces
|
|
60
59
|
*/
|
|
61
|
-
export * from './lib/service/auth/auth.cloud.interface';
|
|
62
60
|
export * from './lib/service/dms/dmsParams.interface';
|
|
63
61
|
export * from './lib/service/clipboard/clipboard.interface';
|
|
64
62
|
export * from './lib/service/system-status/system.status.interface';
|
|
@@ -84,4 +82,4 @@ export * from './lib/service/clipboard/clipboard-action.enum';
|
|
|
84
82
|
export * from './lib/service/system-status/system.status.enum';
|
|
85
83
|
export * from './lib/service/config/config.enum';
|
|
86
84
|
export * from './lib/util/utils';
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VvLXNkay9jb3JlL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxFQUFDLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx5QkFBeUIsQ0FBQztBQUV4Qzs7R0FFRztBQUNILGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHVDQUF1QyxDQUFDO0FBRXREOztHQUVHO0FBQ0gsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsaUNBQWlDLENBQUM7QUFFaEQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxpREFBaUQsQ0FBQztBQUVoRTs7R0FFRztBQUNILGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLHFDQUFxQyxDQUFDO0FBRXBEOztHQUVHO0FBQ0gsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsb0NBQW9DLENBQUM7QUFFbkQ7O0dBRUc7QUFDSCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBjb3JlXG4gKi9cblxuZXhwb3J0IHtUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UsIFRyYW5zbGF0ZUxvYWRlcn0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lby1jb3JlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lby1jb3JlLXNoYXJlZC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZW52aXJvbm1lbnQuZW5haW8nO1xuXG4vKipcbiAqIFNlcnZpY2VzXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvYXV0aC9hdXRoLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9iYWNrZW5kL2JhY2tlbmQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2JwbS9icG0uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2NhY2hlL2FwcC1jYWNoZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvY2FwYWJpbGl0aWVzL2NhcGFiaWxpdGllcy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvY2FwYWJpbGl0aWVzL2NhcGFiaWxpdGllcy5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2NsaXBib2FyZC9jbGlwYm9hcmQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2NvbmZpZy9jb25maWcuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2Rtcy9kbXMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2V2ZW50cy9ldmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9ldmVudHMvZXZlbnQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2luYm94L2luYm94LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9sb2dnZXIvbG9nZ2VyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2Uvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9wcmVwYXJlL3ByZXBhcmUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3NlYXJjaC9zZWFyY2guc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3N0b3JhZ2UvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2Uvc3RvcmVkLXF1ZXJpZXMvc3RvcmVkLXF1ZXJpZXMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3N5c3RlbS9zeXN0ZW0uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3N5c3RlbS9zeXN0ZW1kZWZpbml0aW9uLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3VwbG9hZC91cGxvYWQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3VwbG9hZC1yZWdpc3RyeS91cGxvYWQtcmVnaXN0cnkuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3VzZXIvdXNlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2Uvc2lnbmluZy9zaWduaW5nLnNlcnZpY2UnO1xuXG4vKipcbiAqIE1vZGVsc1xuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9iYXNlcGFyYW1zLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL2N1c3RvbS1hY3Rpb24ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWwvZG1zLW9iamVjdC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9lby1lcnJvci5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9lby11c2VyLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL2luYm94LWl0ZW0ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWwvZG1zLW9iamVjdC1oaXN0b3J5Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL29iamVjdC10eXBlLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL29yZy5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9wcmVwYXJlZC1pdGVtLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL2JwbS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9yYW5nZS12YWx1ZS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC93b3JrLWl0ZW0taGlzdG9yeS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC91cGxvYWQtZmlsZS1pdGVtLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL3VwbG9hZC10YXJnZXQubW9kZWwnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3NlYXJjaC9zZWFyY2gtcXVlcnkubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWwvdXBsb2FkLWZpbGUtaXRlbS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC91cGxvYWQtdGFyZ2V0Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2Uvc3RvcmVkLXF1ZXJpZXMvc3RvcmVkLXF1ZXJ5Lm1vZGVsJztcblxuLyoqXG4gKiBJbnRlcmZhY2VzXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvZG1zL2Rtc1BhcmFtcy5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9jbGlwYm9hcmQvY2xpcGJvYXJkLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3N5c3RlbS1zdGF0dXMvc3lzdGVtLnN0YXR1cy5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlL2xvZ2dlci5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlL2NoYW5nZS1wYXNzd29yZC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlL2V2ZW50LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2UvaHR0cC1vcHRpb25zLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2Uvb3JnYW5pemF0aW9uLW9iamVjdHMuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZS90cmVlLW5vZGUuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBDb25maWdcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uZmlnL2NvcmUtY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbmZpZy9jb3JlLWluaXQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25maWcvY29yZS1pbml0LnRva2Vucyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25maWcvaW5pdGlhbGl6ZS1tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uZmlnL21pc3NpbmctdHJhbnNsYXRpb24taGFuZGxlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25maWcvdHJhbnNsYXRlLWpzb24tbG9hZGVyJztcblxuLyoqXG4gKiBNaXNjZWxsYW5lb3VzXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvY2xpcGJvYXJkL2NsaXBib2FyZC1hY3Rpb24uZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3N5c3RlbS1zdGF0dXMvc3lzdGVtLnN0YXR1cy5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvY29uZmlnL2NvbmZpZy5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWwvdXRpbHMnO1xuIl19
|
|
@@ -8,7 +8,7 @@ import { InjectionToken, Inject, Injectable, NgModule, APP_INITIALIZER, Optional
|
|
|
8
8
|
import * as i1$3 from 'ngx-toastr';
|
|
9
9
|
import { ToastrModule } from 'ngx-toastr';
|
|
10
10
|
import { __decorate, __param } from 'tslib';
|
|
11
|
-
import { EMPTY, throwError, Subject, of, forkJoin, Observable, ReplaySubject, BehaviorSubject, timer
|
|
11
|
+
import { EMPTY, throwError, Subject, of, forkJoin, Observable, ReplaySubject, BehaviorSubject, timer } from 'rxjs';
|
|
12
12
|
import { filter, map, tap, finalize, shareReplay, debounceTime, switchMap, first, catchError, expand, skipWhile, mergeMap, takeUntil } from 'rxjs/operators';
|
|
13
13
|
import { DatePipe, registerLocaleData } from '@angular/common';
|
|
14
14
|
import moment from 'moment';
|
|
@@ -1224,18 +1224,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
1224
1224
|
}]
|
|
1225
1225
|
}], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: EventService }]; } });
|
|
1226
1226
|
|
|
1227
|
-
class EnvironmentEnaio {
|
|
1228
|
-
static isWebEnvironment() {
|
|
1229
|
-
return !EnvironmentEnaio.isDesktopEnvironment() && !EnvironmentEnaio.isMobileEnvironment();
|
|
1230
|
-
}
|
|
1231
|
-
static isMobileEnvironment() {
|
|
1232
|
-
return window.hasOwnProperty('cordova');
|
|
1233
|
-
}
|
|
1234
|
-
static isDesktopEnvironment() {
|
|
1235
|
-
return window.hasOwnProperty('process') && window['process'].versions.hasOwnProperty('electron');
|
|
1236
|
-
}
|
|
1237
|
-
}
|
|
1238
|
-
|
|
1239
1227
|
class EoUser {
|
|
1240
1228
|
/**
|
|
1241
1229
|
* Creates a new instance
|
|
@@ -1322,32 +1310,6 @@ class EoUser {
|
|
|
1322
1310
|
}
|
|
1323
1311
|
}
|
|
1324
1312
|
|
|
1325
|
-
/**
|
|
1326
|
-
* Wrapper for Cloud Services through Auth Service
|
|
1327
|
-
*/
|
|
1328
|
-
class EnvironmentService {
|
|
1329
|
-
constructor() {
|
|
1330
|
-
this._cloudEnvironment = false;
|
|
1331
|
-
}
|
|
1332
|
-
set cloudEnvironment(env) {
|
|
1333
|
-
this._cloudEnvironment = env;
|
|
1334
|
-
}
|
|
1335
|
-
get cloudEnvironment() {
|
|
1336
|
-
return this._cloudEnvironment;
|
|
1337
|
-
}
|
|
1338
|
-
isCloud() {
|
|
1339
|
-
return this.cloudEnvironment;
|
|
1340
|
-
}
|
|
1341
|
-
}
|
|
1342
|
-
EnvironmentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: EnvironmentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1343
|
-
EnvironmentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: EnvironmentService, providedIn: 'root' });
|
|
1344
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: EnvironmentService, decorators: [{
|
|
1345
|
-
type: Injectable,
|
|
1346
|
-
args: [{
|
|
1347
|
-
providedIn: 'root'
|
|
1348
|
-
}]
|
|
1349
|
-
}], ctorParameters: function () { return []; } });
|
|
1350
|
-
|
|
1351
1313
|
/**
|
|
1352
1314
|
* History entry of a work item.
|
|
1353
1315
|
*/
|
|
@@ -3241,7 +3203,7 @@ class UserService {
|
|
|
3241
3203
|
* @returns The saved settings
|
|
3242
3204
|
*/
|
|
3243
3205
|
loadLocalSettings() {
|
|
3244
|
-
return this.backend.get('/user/config/localSettings');
|
|
3206
|
+
return this.backend.get('/user/config/localSettings').pipe(catchError(() => EMPTY));
|
|
3245
3207
|
}
|
|
3246
3208
|
}
|
|
3247
3209
|
UserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: UserService, deps: [{ token: BackendService }, { token: i1.TranslateService }, { token: Logger }, { token: EventService }, { token: SystemService }, { token: i1$1.HttpClient }, { token: Config }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -3808,13 +3770,11 @@ class AuthService {
|
|
|
3808
3770
|
/**
|
|
3809
3771
|
* @ignore
|
|
3810
3772
|
*/
|
|
3811
|
-
constructor(config, coreConfig,
|
|
3773
|
+
constructor(config, coreConfig, http, bpmService, capabilitiesService, inboxService, prepareService, backend, systemService, userService, eventService, systemStatusService, storage, local) {
|
|
3812
3774
|
this.config = config;
|
|
3813
3775
|
this.coreConfig = coreConfig;
|
|
3814
|
-
this.envService = envService;
|
|
3815
3776
|
this.http = http;
|
|
3816
3777
|
this.bpmService = bpmService;
|
|
3817
|
-
this.ngZone = ngZone;
|
|
3818
3778
|
this.capabilitiesService = capabilitiesService;
|
|
3819
3779
|
this.inboxService = inboxService;
|
|
3820
3780
|
this.prepareService = prepareService;
|
|
@@ -3825,7 +3785,6 @@ class AuthService {
|
|
|
3825
3785
|
this.systemStatusService = systemStatusService;
|
|
3826
3786
|
this.storage = storage;
|
|
3827
3787
|
this.local = local;
|
|
3828
|
-
this.TOKEN_STORAGE_KEY = 'eo.auth.cloud.credentials';
|
|
3829
3788
|
this.userProfileUri = this.userService.USER_FETCH_URI;
|
|
3830
3789
|
this.authSource = new BehaviorSubject(false);
|
|
3831
3790
|
this.loggedInCacheKey = 'eo.user.loggedIn';
|
|
@@ -3875,124 +3834,6 @@ class AuthService {
|
|
|
3875
3834
|
withCredentials: this.coreConfig.withCredentials
|
|
3876
3835
|
}).pipe(switchMap(() => this.initUser(host)));
|
|
3877
3836
|
}
|
|
3878
|
-
/**
|
|
3879
|
-
* Log in to a cloud backend using device flow.
|
|
3880
|
-
* @param host The target host (could be null if you are running in web environment)
|
|
3881
|
-
* @param tenant The tenant
|
|
3882
|
-
* @returns Resolves with the logged in user
|
|
3883
|
-
*/
|
|
3884
|
-
cloudLogin(host, tenant) {
|
|
3885
|
-
return Observable.create(o => {
|
|
3886
|
-
const stopTrigger$ = new Subject();
|
|
3887
|
-
//const targetHost = this.location.pathname.substring(0, this.location.pathname.indexOf('/enter')); // host || '';
|
|
3888
|
-
const targetHost = host || '';
|
|
3889
|
-
// start auth flow
|
|
3890
|
-
this.http.get(`${targetHost}/tenant/${tenant}/loginDevice`).subscribe((res) => {
|
|
3891
|
-
// open new window for the authentication process ...
|
|
3892
|
-
const targetUri = `${targetHost}/oauth/${tenant}?user_code=${res.user_code}`;
|
|
3893
|
-
const win = window.open(targetUri, 'auth');
|
|
3894
|
-
if (win) {
|
|
3895
|
-
// @see: http://atashbahar.com/post/2010-04-27-detect-when-a-javascript-popup-window-gets-closed
|
|
3896
|
-
this.ngZone.runOutsideAngular(() => {
|
|
3897
|
-
const winTimer = setInterval(() => {
|
|
3898
|
-
if (win.closed) {
|
|
3899
|
-
clearInterval(winTimer);
|
|
3900
|
-
this.ngZone.run(() => {
|
|
3901
|
-
stopTrigger$.next();
|
|
3902
|
-
stopTrigger$.complete();
|
|
3903
|
-
});
|
|
3904
|
-
}
|
|
3905
|
-
}, 1000);
|
|
3906
|
-
});
|
|
3907
|
-
}
|
|
3908
|
-
// ... and start polling for authentication results
|
|
3909
|
-
this.cloudLoginPollForResult(`${targetHost}/auth/info/state?device_code=${res.device_code}`, 1000, stopTrigger$)
|
|
3910
|
-
.pipe(tap((accessToken) => {
|
|
3911
|
-
if (accessToken) {
|
|
3912
|
-
this.cloudLoginSetHeaders(accessToken, tenant);
|
|
3913
|
-
const storeToken = {
|
|
3914
|
-
tenant: tenant,
|
|
3915
|
-
accessToken: accessToken
|
|
3916
|
-
};
|
|
3917
|
-
this.storage.setItem(this.TOKEN_STORAGE_KEY, storeToken).subscribe();
|
|
3918
|
-
}
|
|
3919
|
-
}), switchMap((authRes) => {
|
|
3920
|
-
if (authRes) {
|
|
3921
|
-
return this.initUser(targetHost);
|
|
3922
|
-
}
|
|
3923
|
-
else {
|
|
3924
|
-
throwError('not authenticated');
|
|
3925
|
-
}
|
|
3926
|
-
})).subscribe((user) => {
|
|
3927
|
-
win.close();
|
|
3928
|
-
o.next(user);
|
|
3929
|
-
o.complete();
|
|
3930
|
-
}, err => {
|
|
3931
|
-
win.close();
|
|
3932
|
-
o.error(err);
|
|
3933
|
-
o.complete();
|
|
3934
|
-
});
|
|
3935
|
-
}, err => {
|
|
3936
|
-
o.error('unable to call device flow endpoint', err);
|
|
3937
|
-
o.complete();
|
|
3938
|
-
});
|
|
3939
|
-
});
|
|
3940
|
-
}
|
|
3941
|
-
/**
|
|
3942
|
-
* Starts polling for login results in case of logging in to a cloud backend.
|
|
3943
|
-
* @param uri URI to poll
|
|
3944
|
-
* @param pollingInterval Polling intervall in milliseconds
|
|
3945
|
-
* @param stopTrigger Subject acting as stop trigger
|
|
3946
|
-
* @returns Access Token if logged in successfully or NULL otherwise
|
|
3947
|
-
*/
|
|
3948
|
-
cloudLoginPollForResult(uri, pollingInterval, stopTrigger = new Subject()) {
|
|
3949
|
-
return Observable.create(o => {
|
|
3950
|
-
let accessGranted = false;
|
|
3951
|
-
let accessDenied = false;
|
|
3952
|
-
this.ngZone.runOutsideAngular(() => {
|
|
3953
|
-
interval(pollingInterval).pipe(takeUntil(stopTrigger), switchMap(() => this.http.get(uri).pipe(catchError((err) => {
|
|
3954
|
-
// OAuth standard we are using is returning with a status of 400 while logging in (no idea why???)
|
|
3955
|
-
// so we got to fetch that to not break the parent pipe
|
|
3956
|
-
if (err.status === 400) {
|
|
3957
|
-
return of(err.error);
|
|
3958
|
-
}
|
|
3959
|
-
else {
|
|
3960
|
-
throwError(err);
|
|
3961
|
-
}
|
|
3962
|
-
})))).subscribe((res) => {
|
|
3963
|
-
this.ngZone.run(() => {
|
|
3964
|
-
accessGranted = !!res.access_token;
|
|
3965
|
-
accessDenied = res.error === 'access_denied';
|
|
3966
|
-
if (accessGranted || accessDenied) {
|
|
3967
|
-
// logged in
|
|
3968
|
-
stopTrigger.next();
|
|
3969
|
-
stopTrigger.complete();
|
|
3970
|
-
o.next(accessGranted ? res.access_token : null);
|
|
3971
|
-
o.complete();
|
|
3972
|
-
}
|
|
3973
|
-
else if (res.error === 'expired_token') {
|
|
3974
|
-
// expired so skip polling
|
|
3975
|
-
throwError('Token expired');
|
|
3976
|
-
}
|
|
3977
|
-
});
|
|
3978
|
-
}, err => {
|
|
3979
|
-
this.ngZone.run(() => {
|
|
3980
|
-
o.error(err);
|
|
3981
|
-
o.complete();
|
|
3982
|
-
});
|
|
3983
|
-
}, () => {
|
|
3984
|
-
this.ngZone.run(() => {
|
|
3985
|
-
o.next(accessGranted);
|
|
3986
|
-
o.complete();
|
|
3987
|
-
});
|
|
3988
|
-
});
|
|
3989
|
-
});
|
|
3990
|
-
});
|
|
3991
|
-
}
|
|
3992
|
-
cloudLoginSetHeaders(accessToken, tenant) {
|
|
3993
|
-
this.backend.setHeader('Authorization', 'bearer ' + accessToken);
|
|
3994
|
-
this.backend.setHeader('X-ID-TENANT-NAME', tenant);
|
|
3995
|
-
}
|
|
3996
3837
|
/**
|
|
3997
3838
|
* Gets called while app init
|
|
3998
3839
|
* @ignore
|
|
@@ -4005,20 +3846,7 @@ class AuthService {
|
|
|
4005
3846
|
.get(`${host || ''}${this.config.getContextPath()}/auth/info`, { headers, withCredentials: this.coreConfig.withCredentials })
|
|
4006
3847
|
.pipe(switchMap((info) => {
|
|
4007
3848
|
this.gatewayInfo = info;
|
|
4008
|
-
this.
|
|
4009
|
-
if (this.isCloudEnvironment()) {
|
|
4010
|
-
// in case of running against cloud backend, we try to fetch
|
|
4011
|
-
// access token and tenant from local storage
|
|
4012
|
-
return this.storage.getItem(this.TOKEN_STORAGE_KEY).pipe(switchMap((res) => {
|
|
4013
|
-
if (res) {
|
|
4014
|
-
this.cloudLoginSetHeaders(res.accessToken, res.tenant);
|
|
4015
|
-
}
|
|
4016
|
-
return this.fetchUser(info, host);
|
|
4017
|
-
}));
|
|
4018
|
-
}
|
|
4019
|
-
else {
|
|
4020
|
-
return this.fetchUser(info, host);
|
|
4021
|
-
}
|
|
3849
|
+
return this.fetchUser(info, host);
|
|
4022
3850
|
}));
|
|
4023
3851
|
}
|
|
4024
3852
|
/**
|
|
@@ -4065,14 +3893,6 @@ class AuthService {
|
|
|
4065
3893
|
auth: null,
|
|
4066
3894
|
active: false
|
|
4067
3895
|
};
|
|
4068
|
-
if (this.isCloudEnvironment()) {
|
|
4069
|
-
// remove stored access data
|
|
4070
|
-
this.storage.removeItem(this.TOKEN_STORAGE_KEY).subscribe();
|
|
4071
|
-
if (this.coreConfig.environment.production && EnvironmentEnaio.isWebEnvironment()) {
|
|
4072
|
-
window.location.href = this.config.getContextPath() + '/logout';
|
|
4073
|
-
return;
|
|
4074
|
-
}
|
|
4075
|
-
}
|
|
4076
3896
|
if (gatewayLogout) {
|
|
4077
3897
|
// by default we are just resetting internal state to 'logged out' and in
|
|
4078
3898
|
// some cases call gateways logout endpoint to do logout stuff there silently
|
|
@@ -4081,10 +3901,6 @@ class AuthService {
|
|
|
4081
3901
|
this.backend.setAuthProfile(this.profile);
|
|
4082
3902
|
this.eventService.trigger(EnaioEvent.LOGOUT);
|
|
4083
3903
|
}
|
|
4084
|
-
isCloudEnvironment() {
|
|
4085
|
-
// oauth2 indicates that we are running in a cloud environment
|
|
4086
|
-
return this.gatewayInfo && this.gatewayInfo.oauth2;
|
|
4087
|
-
}
|
|
4088
3904
|
/**
|
|
4089
3905
|
* for desktop and mobile devices we provide a list of hosts for the login
|
|
4090
3906
|
*
|
|
@@ -4129,7 +3945,7 @@ class AuthService {
|
|
|
4129
3945
|
return forkJoin(todo).pipe(map(() => currUser));
|
|
4130
3946
|
}
|
|
4131
3947
|
}
|
|
4132
|
-
AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AuthService, deps: [{ token: Config }, { token: CORE_CONFIG }, { token:
|
|
3948
|
+
AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AuthService, deps: [{ token: Config }, { token: CORE_CONFIG }, { token: i1$1.HttpClient }, { token: BpmService }, { token: CapabilitiesService }, { token: InboxService }, { token: PrepareService }, { token: BackendService }, { token: SystemService }, { token: UserService }, { token: EventService }, { token: SystemStatusService }, { token: i1$2.LocalStorage }, { token: LocalStorageService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4133
3949
|
AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AuthService, providedIn: 'root' });
|
|
4134
3950
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AuthService, decorators: [{
|
|
4135
3951
|
type: Injectable,
|
|
@@ -4140,7 +3956,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
4140
3956
|
return [{ type: Config }, { type: CoreConfig, decorators: [{
|
|
4141
3957
|
type: Inject,
|
|
4142
3958
|
args: [CORE_CONFIG]
|
|
4143
|
-
}] }, { type:
|
|
3959
|
+
}] }, { type: i1$1.HttpClient }, { type: BpmService }, { type: CapabilitiesService }, { type: InboxService }, { type: PrepareService }, { type: BackendService }, { type: SystemService }, { type: UserService }, { type: EventService }, { type: SystemStatusService }, { type: i1$2.LocalStorage }, { type: LocalStorageService }];
|
|
4144
3960
|
} });
|
|
4145
3961
|
|
|
4146
3962
|
/**
|
|
@@ -4477,6 +4293,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
4477
4293
|
}] }];
|
|
4478
4294
|
} });
|
|
4479
4295
|
|
|
4296
|
+
class EnvironmentEnaio {
|
|
4297
|
+
static isWebEnvironment() {
|
|
4298
|
+
return !EnvironmentEnaio.isDesktopEnvironment() && !EnvironmentEnaio.isMobileEnvironment();
|
|
4299
|
+
}
|
|
4300
|
+
static isMobileEnvironment() {
|
|
4301
|
+
return window.hasOwnProperty('cordova');
|
|
4302
|
+
}
|
|
4303
|
+
static isDesktopEnvironment() {
|
|
4304
|
+
return window.hasOwnProperty('process') && window['process'].versions.hasOwnProperty('electron');
|
|
4305
|
+
}
|
|
4306
|
+
}
|
|
4307
|
+
|
|
4480
4308
|
/**
|
|
4481
4309
|
* Collection of all Clipboard Services
|
|
4482
4310
|
*/
|
|
@@ -4740,6 +4568,7 @@ var SubscriptionMode;
|
|
|
4740
4568
|
SubscriptionMode["ONLY_DOCUMENT_CONTENT_CHANGED"] = "CONTENT";
|
|
4741
4569
|
SubscriptionMode["DMS_OBJECT_CHANGED"] = "BOTH";
|
|
4742
4570
|
})(SubscriptionMode || (SubscriptionMode = {}));
|
|
4571
|
+
const resolveObjectRights = [];
|
|
4743
4572
|
/**
|
|
4744
4573
|
* Collection of DMS Services
|
|
4745
4574
|
*/
|
|
@@ -4799,7 +4628,7 @@ class DmsService {
|
|
|
4799
4628
|
if (dmsObject.contextFolder) {
|
|
4800
4629
|
dmsObject.contextFolder.type = this.systemService.getObjectType(dmsObject.contextFolder.typeName);
|
|
4801
4630
|
}
|
|
4802
|
-
return dmsObject;
|
|
4631
|
+
return resolveObjectRights.reduce((value, fn) => fn.call(this, value), dmsObject);
|
|
4803
4632
|
}
|
|
4804
4633
|
/**
|
|
4805
4634
|
* Deletes a DMS object.
|
|
@@ -6285,5 +6114,5 @@ class UploadFileItem {
|
|
|
6285
6114
|
* Generated bundle index. Do not edit.
|
|
6286
6115
|
*/
|
|
6287
6116
|
|
|
6288
|
-
export { AppCacheService, AuthService, BackendService, BpmService, CORE_CONFIG, CUSTOM_CONFIG, CapabilitiesService, ClipboardAction, ClipboardService, Config, CoreConfig, CoreInit, Direction, DmsObject, DmsObjectAttachment, DmsObjectHistoryEntry, DmsService, EnaioEvent, EnvironmentEnaio,
|
|
6117
|
+
export { AppCacheService, AuthService, BackendService, BpmService, CORE_CONFIG, CUSTOM_CONFIG, CapabilitiesService, ClipboardAction, ClipboardService, Config, CoreConfig, CoreInit, Direction, DmsObject, DmsObjectAttachment, DmsObjectHistoryEntry, DmsService, EnaioEvent, EnvironmentEnaio, EoCoreModule, EoError, EoSharedModule, EoUser, EoxMissingTranslationHandler, EoxTranslateJsonLoader, EventService, FieldDefinition, InboxItem, InboxService, LocalStorageService, Logger, NotificationsService, ObjectType, PrepareService, PreparedItem, Process, QueryScope, RangeValue, SearchFilter, SearchQuery, SearchResult, SearchService, SearchState, SigningService, SortOption, StoredQueriesService, StoredQuery, SubscriptionMode, SystemService, SystemStatusEnum, UploadFileItem, UploadRegistryService, UploadService, UploadTarget, UserService, Utils, WorkItem, WorkItemHistoryEntry, init_module, resolveObjectRights };
|
|
6289
6118
|
//# sourceMappingURL=eo-sdk-client-projects-eo-sdk-core.mjs.map
|