@mediusinc/mng-commons 5.0.1 → 5.1.0-rc.0
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/core/descriptors/model.descriptor.d.ts +1 -1
- package/core/error/error-helpers.d.ts +18 -1
- package/core/i18n/i18n-type.d.ts +0 -9
- package/core/services/commons-configuration.service.d.ts +12 -0
- package/esm2022/core/descriptors/model.descriptor.mjs +1 -1
- package/esm2022/core/error/error-helpers.mjs +20 -1
- package/esm2022/core/i18n/i18n-type.mjs +1 -34
- package/esm2022/core/services/commons-configuration.service.mjs +16 -1
- package/esm2022/model/descriptors/model.descriptor.mjs +1 -1
- package/esm2022/model/helpers/i18n.mjs +7 -10
- package/esm2022/table/api/descriptors/table.descriptor.mjs +2 -2
- package/esm2022/tableview/api/editor/models/field-action-context.model.mjs +1 -1
- package/esm2022/tableview/api/editor/models/form-editor.interface.mjs +1 -1
- package/esm2022/tableview/api/editor/models/formly-field.model.mjs +1 -1
- package/esm2022/tableview/api/editor/models/formly-options.model.mjs +2 -0
- package/esm2022/tableview/api/index.mjs +2 -1
- package/esm2022/tableview/editor/components/editor/form-editor.component.mjs +9 -4
- package/esm2022/tableview/editor/components/formly/fields/formly-field-action/formly-field-action.component.mjs +4 -5
- package/esm2022/tableview/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +8 -10
- package/esm2022/tableview/editor/components/formly/fields/formly-field-custom/formly-field-custom.component.mjs +4 -4
- package/esm2022/tableview/editor/components/formly/fields/formly-field-datepicker/formly-field-datepicker.component.mjs +5 -5
- package/esm2022/tableview/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +8 -9
- package/esm2022/tableview/editor/components/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +5 -5
- package/esm2022/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.mjs +5 -4
- package/esm2022/tableview/editor/components/formly/fields/formly-field-label/formly-field-label.component.mjs +4 -5
- package/esm2022/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +5 -5
- package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +7 -8
- package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +4 -5
- package/esm2022/tableview/editor/components/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +4 -3
- package/esm2022/tableview/editor/components/formly/fields/formly-field-type.abstract.component.mjs +23 -0
- package/fesm2022/mediusinc-mng-commons-core.mjs +96 -95
- package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-model.mjs +7 -10
- package/fesm2022/mediusinc-mng-commons-model.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-table-api.mjs +1 -1
- package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-tableview.mjs +59 -46
- package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
- package/model/descriptors/model.descriptor.d.ts +3 -3
- package/model/helpers/i18n.d.ts +1 -3
- package/package.json +1 -1
- package/tableview/api/editor/models/field-action-context.model.d.ts +3 -3
- package/tableview/api/editor/models/form-editor.interface.d.ts +1 -8
- package/tableview/api/editor/models/formly-options.model.d.ts +15 -0
- package/tableview/api/index.d.ts +1 -0
- package/tableview/editor/components/editor/form-editor.component.d.ts +3 -11
- package/tableview/editor/components/formly/fields/formly-field-action/formly-field-action.component.d.ts +3 -4
- package/tableview/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +3 -7
- package/tableview/editor/components/formly/fields/formly-field-custom/formly-field-custom.component.d.ts +3 -4
- package/tableview/editor/components/formly/fields/formly-field-datepicker/formly-field-datepicker.component.d.ts +3 -4
- package/tableview/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +3 -6
- package/tableview/editor/components/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +3 -4
- package/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.d.ts +3 -4
- package/tableview/editor/components/formly/fields/formly-field-label/formly-field-label.component.d.ts +5 -6
- package/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +3 -4
- package/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +3 -4
- package/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +3 -4
- package/tableview/editor/components/formly/fields/formly-field-tabs/formly-field-tabs.component.d.ts +2 -3
- package/tableview/editor/components/formly/fields/formly-field-type.abstract.component.d.ts +12 -0
- package/version-info.json +6 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { HttpErrorResponse } from '@angular/common/http';
|
|
2
2
|
import { LogLevelEnum } from '../log/log.model';
|
|
3
|
-
import { ACommonsErrorBase, ICommonsActionError } from './error.model';
|
|
3
|
+
import { ACommonsErrorBase, CommonsErrorBaseOptions, ICommonsActionError } from './error.model';
|
|
4
4
|
/**
|
|
5
5
|
* Converts RxJS subscription error to CommonsError.
|
|
6
6
|
* @param error Error.
|
|
@@ -88,6 +88,23 @@ export declare function commonsActionErrorContextToString(error: ICommonsActionE
|
|
|
88
88
|
* - causeAsJson Print error cause as a JSON (by default, if error only message and name will be printed).
|
|
89
89
|
*/
|
|
90
90
|
export declare function errorCauseToString(error: Error, opts?: ErrorCauseToStringOptionsType): string;
|
|
91
|
+
/**
|
|
92
|
+
* Throws an error with the provided error message.
|
|
93
|
+
* The intended usage is for in-line throwing of an error with TS type narrowing.
|
|
94
|
+
* <br>
|
|
95
|
+
* <i>Example</i>:
|
|
96
|
+
* <pre>
|
|
97
|
+
* const value: string | null = getValue("");
|
|
98
|
+
* const nonNullValue: string = getValue("") ?? throwError("value missing");
|
|
99
|
+
* </pre>
|
|
100
|
+
*
|
|
101
|
+
* @param {string} errorMessage - The error message to be thrown.
|
|
102
|
+
* @param {CommonsErrorBaseOptions} [options] - Additional options for the thrown error.
|
|
103
|
+
* @throws {Error} - The error object with the provided error message.
|
|
104
|
+
* @returns {never} - This function does not return a value.
|
|
105
|
+
* @see CommonsErrorBaseOptions
|
|
106
|
+
*/
|
|
107
|
+
export declare function throwError(errorMessage: string, options?: CommonsErrorBaseOptions): never;
|
|
91
108
|
export type ErrorToStringOptionsType = ErrorToStringOptionsBaseType & HttpErrorResponseToStringOptionsType & ActionErrorContextToStringOptionsType & ErrorCauseToStringOptionsType & {
|
|
92
109
|
hideDetails?: boolean;
|
|
93
110
|
hideLocation?: boolean;
|
package/core/i18n/i18n-type.d.ts
CHANGED
|
@@ -1,20 +1,11 @@
|
|
|
1
1
|
import { TranslateService } from '@ngx-translate/core';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
|
-
import { ClassType } from '../models/class-service.model';
|
|
4
|
-
export declare function getI18nClassNameAsync(translate: TranslateService, classType: ClassType<any>, singular?: boolean): Observable<string | null>;
|
|
5
|
-
export declare function getI18nClassName(translate: TranslateService, classType: ClassType<any>, singular?: boolean): string | null;
|
|
6
3
|
export declare function getI18nTypeNameAsync(translate: TranslateService, typeName: string, singular?: boolean): Observable<string | null>;
|
|
7
4
|
export declare function getI18nTypeName(translate: TranslateService, typeName: string, singular?: boolean): string | null;
|
|
8
|
-
export declare function getI18nClassTabKey(classType: ClassType<any>, tab: string): string;
|
|
9
5
|
export declare function getI18nTypeTabKey(typeName: string, tab: string): string;
|
|
10
|
-
export declare function getI18nClassGroupKey(classType: ClassType<any>, group: string): string;
|
|
11
6
|
export declare function getI18nTypeGroupKey(typeName: string, group: string): string;
|
|
12
|
-
export declare function getI18nClassPropertyKey(classType: ClassType<any>, property: string): string;
|
|
13
7
|
export declare function getI18nTypePropertyKey(typeName: string, property: string): string;
|
|
14
|
-
export declare function getI18nClassKeyBasePath(classType: ClassType<any>, ...path: Array<string>): string;
|
|
15
8
|
export declare function getI18nTypeKeyBasePath(typeName: string, ...path: Array<string>): string;
|
|
16
|
-
export declare function getI18nClassParams(translate: TranslateService, classType: ClassType<any>, item: any, params?: any): any;
|
|
17
9
|
export declare function getI18nTypeParams(translate: TranslateService, typeName?: string, item?: any, params?: any): any;
|
|
18
|
-
export declare function getI18nClassParamsAsync(translate: TranslateService, classType: ClassType<any>, item?: any, params?: any): Observable<any>;
|
|
19
10
|
export declare function getI18nTypeParamsAsync(translate: TranslateService, typeName?: string, item?: any, params?: any): Observable<any>;
|
|
20
11
|
export declare function populateI18nTypeParams(i18nTypeName?: string, item?: any, params?: any): any;
|
|
@@ -57,6 +57,18 @@ export declare class CommonsConfigurationService {
|
|
|
57
57
|
* @param key Configuration key.
|
|
58
58
|
*/
|
|
59
59
|
getConfigValue<T = any>(key: string): T | null;
|
|
60
|
+
/**
|
|
61
|
+
* Gets the configuration value for the given key. If the value is not found,
|
|
62
|
+
* it throws an error with a custom error message.
|
|
63
|
+
*
|
|
64
|
+
* @param {string} key - The configuration key.
|
|
65
|
+
* @param {string} [errorMessage] - Custom error message to be thrown if the value is not found.
|
|
66
|
+
*
|
|
67
|
+
* @returns {T} - The configuration value.
|
|
68
|
+
*
|
|
69
|
+
* @throws {CommonsInternalError} - If the value is not found or a custom error message is provided.
|
|
70
|
+
*/
|
|
71
|
+
getConfigValueOrThrow<T = any>(key: string, errorMessage?: string): T;
|
|
60
72
|
/**
|
|
61
73
|
* Has configuration for key.
|
|
62
74
|
* @param key Configuration key.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc3JjL2Rlc2NyaXB0b3JzL21vZGVsLmRlc2NyaXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2xhc3NPcHRUeXBlfSBmcm9tICcuLi9tb2RlbHMvY2xhc3Mtc2VydmljZS5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1vZGVsRGVzY3JpcHRvcjxNb2RlbCwgTW9kZWxDbGFzcyA9IENsYXNzT3B0VHlwZTxNb2RlbD4+
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc3JjL2Rlc2NyaXB0b3JzL21vZGVsLmRlc2NyaXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2xhc3NPcHRUeXBlfSBmcm9tICcuLi9tb2RlbHMvY2xhc3Mtc2VydmljZS5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1vZGVsRGVzY3JpcHRvcjxNb2RlbCwgTW9kZWxDbGFzcyA9IENsYXNzT3B0VHlwZTxNb2RlbD4+IHtcbiAgICB0eXBlOiBNb2RlbENsYXNzO1xuICAgIHR5cGVOYW1lPzogc3RyaW5nO1xuICAgIGkxOG5CYXNlS2V5OiBzdHJpbmc7XG4gICAgaWRQcm9wZXJ0eT86IHN0cmluZztcbiAgICB0aXRsZVByb3BlcnR5Pzogc3RyaW5nIHwgKChpdGVtOiBNb2RlbCkgPT4gc3RyaW5nKTtcbn1cbiJdfQ==
|
|
@@ -244,4 +244,23 @@ export function errorCauseToString(error, opts) {
|
|
|
244
244
|
}
|
|
245
245
|
return '';
|
|
246
246
|
}
|
|
247
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc3JjL2Vycm9yL2Vycm9yLWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFdkQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsaUJBQWlCLEVBQTJCLGdCQUFnQixFQUFFLG9CQUFvQixFQUFzQixNQUFNLGVBQWUsQ0FBQztBQUV0STs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxLQUFVLEVBQUUsSUFBYSxFQUFFLE9BQWE7SUFDdkUsTUFBTSxJQUFJLEdBQTRCO1FBQ2xDLElBQUk7UUFDSixPQUFPO1FBQ1AsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSTtLQUNuQyxDQUFDO0lBRUYsSUFBSSxLQUFLLFlBQVksaUJBQWlCLEVBQUUsQ0FBQztRQUNyQyxPQUFPLElBQUksZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckYsQ0FBQztTQUFNLENBQUM7UUFDSixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixPQUFPLElBQUksb0JBQW9CLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSx5QkFBeUIsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0RixDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxLQUFVO0lBQzFDLE9BQU8sS0FBSyxZQUFZLGlCQUFpQixJQUFJLEtBQUssWUFBWSxnQkFBZ0IsSUFBSyxLQUF5QyxFQUFFLFNBQVMsWUFBWSxpQkFBaUIsQ0FB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QztRQUM1RSxJQUFJLENBQUMsSUFBSSxFQUFFLGdCQUFnQixJQUFJLEtBQUssQ0FBQyxLQUFLLFlBQVksS0FBSyxFQUFFLENBQUM7WUFDMUQsT0FBTyxDQUNILGFBQWE7Z0JBQ2IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUksS0FBSyxDQUFDLEtBQWUsQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLEtBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQU0sS0FBSyxDQUFDLEtBQWUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FDM0osQ0FBQztRQUNOLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwRXJyb3JSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5pbXBvcnQge3N0cmluZ2lmeX0gZnJvbSAnLi4vaGVscGVycy9zdHJpbmcnO1xuaW1wb3J0IHtMb2dMZXZlbEVudW19IGZyb20gJy4uL2xvZy9sb2cubW9kZWwnO1xuaW1wb3J0IHtBQ29tbW9uc0Vycm9yQmFzZSwgQ29tbW9uc0Vycm9yQmFzZU9wdGlvbnMsIENvbW1vbnNIdHRwRXJyb3IsIENvbW1vbnNJbnRlcm5hbEVycm9yLCBJQ29tbW9uc0FjdGlvbkVycm9yfSBmcm9tICcuL2Vycm9yLm1vZGVsJztcblxuLyoqXG4gKiBDb252ZXJ0cyBSeEpTIHN1YnNjcmlwdGlvbiBlcnJvciB0byBDb21tb25zRXJyb3IuXG4gKiBAcGFyYW0gZXJyb3IgRXJyb3IuXG4gKiBAcGFyYW0gbmFtZSBPcHRpb25hbCBuYW1lIHRvIHdyaXRlIGluIGNvbW1vbnMgZXJyb3IuXG4gKiBAcGFyYW0gZGV0YWlscyBPcHRpb25hbCBkZXRhaWxzIG9mIGVycm9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZnJvbVN1YnNjcmliZUVycm9yKGVycm9yOiBhbnksIG5hbWU/OiBzdHJpbmcsIGRldGFpbHM/OiBhbnkpOiBBQ29tbW9uc0Vycm9yQmFzZSB7XG4gICAgY29uc3Qgb3B0czogQ29tbW9uc0Vycm9yQmFzZU9wdGlvbnMgPSB7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIGRldGFpbHMsXG4gICAgICAgIGxvY2F0aW9uOiB3aW5kb3c/LmxvY2F0aW9uPy5ocmVmXG4gICAgfTtcblxuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgIHJldHVybiBuZXcgQ29tbW9uc0h0dHBFcnJvcihlcnJvci5tZXNzYWdlID8/ICdIdHRwIEVycm9yIG9jY3VycmVkJywgZXJyb3IsIG9wdHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIG9wdHMuY2F1c2UgPSBlcnJvcjtcbiAgICAgICAgcmV0dXJuIG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcihlcnJvci5tZXNzYWdlID8/ICdJbnRlcm5hbCBFcnJvciBvY2N1cnJlZCcsIG9wdHMpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgZXJyb3IgaXMgSHR0cCBlcnJvciAoQW5ndWxhciBvciBDb21tb25zKS5cbiAqIEBwYXJhbSBlcnJvclxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNIdHRwRXJyb3JSZXNwb25zZShlcnJvcjogYW55KSB7XG4gICAgcmV0dXJuIGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UgfHwgZXJyb3IgaW5zdGFuY2VvZiBDb21tb25zSHR0cEVycm9yIHx8IChlcnJvciBhcyBJQ29tbW9uc0FjdGlvbkVycm9yIHwgdW5kZWZpbmVkKT8uaHR0cEVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2U7XG59XG5cbi8qKlxuICogR2V0cyBIdHRwRXJyb3JSZXNwb25zZSBmcm9tIGVycm9yIChBbmd1bGFyIG9yIENvbW1vbnMpLlxuICogQHBhcmFtIGVycm9yIEVycm9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SHR0cEVycm9yUmVzcG9uc2UoZXJyb3I6IGFueSk6IEh0dHBFcnJvclJlc3BvbnNlIHwgbnVsbCB7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH0gZWxzZSBpZiAoZXJyb3IgaW5zdGFuY2VvZiBDb21tb25zSHR0cEVycm9yKSB7XG4gICAgICAgIHJldHVybiBlcnJvci5odHRwRXJyb3I7XG4gICAgfSBlbHNlIGlmICgoZXJyb3IgYXMgSUNvbW1vbnNBY3Rpb25FcnJvciB8IHVuZGVmaW5lZCk/Lmh0dHBFcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgIHJldHVybiBlcnJvci5odHRwRXJyb3I7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuXG4vKipcbiAqIEdldHMgSHR0cEVycm9yUmVzcG9uc2Ugc3RhdHVzIGZyb20gZXJyb3IgKEFuZ3VsYXIgb3IgQ29tbW9ucykuXG4gKiBAcGFyYW0gZXJyb3IgRXJyb3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRIdHRwRXJyb3JSZXNwb25zZVN0YXR1cyhlcnJvcjogYW55KTogbnVtYmVyIHwgbnVsbCB7XG4gICAgcmV0dXJuIGdldEh0dHBFcnJvclJlc3BvbnNlKGVycm9yKT8uc3RhdHVzID8/IG51bGw7XG59XG5cbi8qKlxuICogR2V0IGVycm9yIGxvZyBsZXZlbC4gQWxsIGlzIGVycm9yLCBleGNlcHQgaWYgZXJyb3IgaXMgaHR0cCBlcnJvciB3aXRoIHN0YXR1cyA+PTQwMCBhbmQgPDUwMC5cbiAqIEBwYXJhbSBlcnJvciBFcnJvci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVycm9yTG9nTGV2ZWwoZXJyb3I6IGFueSk6IExvZ0xldmVsRW51bSB7XG4gICAgaWYgKGlzSHR0cEVycm9yUmVzcG9uc2UoZXJyb3IpKSB7XG4gICAgICAgIGNvbnN0IHN0YXR1cyA9IGdldEh0dHBFcnJvclJlc3BvbnNlU3RhdHVzKGVycm9yKTtcbiAgICAgICAgaWYgKHN0YXR1cyAmJiBzdGF0dXMgPj0gNDAwICYmIHN0YXR1cyA8IDUwMCkge1xuICAgICAgICAgICAgcmV0dXJuIExvZ0xldmVsRW51bS5XYXJuaW5nO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBMb2dMZXZlbEVudW0uRXJyb3I7XG59XG5cbi8qKlxuICogR2V0IGVycm9yIG5hbWUgKHByb3RvdHlwZSBuYW1lIG9yIHR5cGUgZnJvbSBjb21tb25zIGVycm9yIGlmIG5hbWUgaXMgbm90IHByb3ZpZGVkKS5cbiAqIEBwYXJhbSBlcnJvciBFcnJvci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVycm9yTmFtZShlcnJvcjogYW55KTogc3RyaW5nIHtcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBBQ29tbW9uc0Vycm9yQmFzZSkge1xuICAgICAgICByZXR1cm4gZXJyb3IubmFtZSA/PyBlcnJvci50eXBlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBlcnJvci5uYW1lO1xuICAgIH1cbn1cblxuLyoqXG4gKiBXcml0ZXMgaHR0cCBlcnJvciB0byBzdHJpbmcgd2l0aCBhbGwgaGVhZGVycyBhbmQgYm9keS5cbiAqIEBwYXJhbSBlcnJvciBIdHRwIHJlc3BvbnNlIGVycm9yLlxuICogQHBhcmFtIG9wdHMgT3B0aW9ucyBmb3IgaGlkaW5nIHBhcnRzIG9mIGVycm9yOlxuICogIC0gaGlkZU1lc3NhZ2UgSGlkZXMgbWVzc2FnZSBvZiBlcnJvciAobWVzc2FnZSBpbmNsdWRlIHVybCwgc3RhdHVzIGFuZCBzdGF0dXMgdGV4dCEpLlxuICogIC0gaGlkZUhlYWRlcnMgSGlkZXMgaGVhZGVycy5cbiAqICAtIGhpZGVCb2R5IEhpZGVzIEpTT04gcmVwcmVzZW50YXRpb24gb2YgYm9keS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGh0dHBFcnJvclJlc3BvbnNlVG9TdHJpbmcoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlLCBvcHRzPzogSHR0cEVycm9yUmVzcG9uc2VUb1N0cmluZ09wdGlvbnNUeXBlKTogc3RyaW5nIHtcbiAgICBsZXQgc3RyID0gb3B0cz8uaGlkZU1lc3NhZ2UgPyAnJyA6IGAke2Vycm9yLm1lc3NhZ2V9XFxuYDsgLy8gbWVzc2FnZSBzaG91bGQgYWxyZWFkeSBpbmNsdWRlIHVybCwgc3RhdHVzLCBldGMuXG4gICAgaWYgKCFvcHRzPy5oaWRlSGVhZGVycykge1xuICAgICAgICBzdHIgKz0gYEh0dHAgUmVzcG9uc2UgSGVhZGVyczogJHtlcnJvci5oZWFkZXJzLmtleXMoKS5yZWR1Y2UoKGFjYywga2V5KSA9PiBgJHthY2N9WyR7a2V5fTogJHtlcnJvci5oZWFkZXJzLmdldChrZXkpfV1gLCAnJyl9YDtcbiAgICB9XG4gICAgaWYgKCFvcHRzPy5oaWRlQm9keSkge1xuICAgICAgICBzdHIgKz0gYFxcbkh0dHAgUmVzcG9uc2UgQm9keTogJHtzdHJpbmdpZnkoZXJyb3IuZXJyb3IpfWA7XG4gICAgfVxuICAgIHJldHVybiBzdHI7XG59XG5cbi8qKlxuICogRXJyb3IgdG8gc3RyaW5nLlxuICogQHBhcmFtIGVycm9yIEVycm9yLlxuICogQHBhcmFtIG9wdHMgT3B0aW9ucyBmb3IgaGlkaW5nIHBhcnRzIG9mIGVycm9yOlxuICogLSBoaWRlTWVzc2FnZSBIaWRlcyBtZXNzYWdlIG9mIGVycm9yLlxuICogLSBoaWRlTmFtZSBIaWRlcyBlcnJvciBuYW1lLlxuICogLSBoaWRlQ2F1c2UgSGlkZXMgY2F1c2Ugb2YgYW4gZXJyb3IgKGlmIHByZXNlbnQsIHNlZSBAbGluayhlcnJvckNhdXNlVG9TdHJpbmcpIGZvciBvdGhlciBvcHRpb25zKS5cbiAqIC0gaGlkZVN0YWNrIEhpZGVzIHN0YWNrIG9mIGFuIGVycm9yIChpZiBwcmVzZW50KS5cbiAqIC0gaGlkZURldGFpbHMgSGlkZXMgSlNPTiBkZXRhaWwncyByZXByZXNlbnRhdGlvbiBvZiBlcnJvciAoaWYgcHJlc2VudCkuXG4gKiAtIGhpZGVMb2NhdGlvbiBIaWRlcyBsb2NhdGlvbiAoVVJMKSB3aGVyZSBlcnJvciB3YXMgdGhyb3duLlxuICogLSBoaWRlSHR0cCBIaWRlcyBodHRwIGVycm9yIHBvcnRpb24gb2YgZXJyb3IgaWYgaHR0cCBlcnJvciByZXNwb25zZSAoc2VlIEBsaW5rKGh0dHBFcnJvclJlc3BvbnNlVG9TdHJpbmcpIGZvciBvdGhlciBvcHRpb25zKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVycm9yVG9TdHJpbmcoZXJyb3I6IEVycm9yLCBvcHRzPzogRXJyb3JUb1N0cmluZ09wdGlvbnNUeXBlKTogc3RyaW5nIHtcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBBQ29tbW9uc0Vycm9yQmFzZSkge1xuICAgICAgICByZXR1cm4gY29tbW9uc0Vycm9yVG9TdHJpbmcoZXJyb3IsIG9wdHMpO1xuICAgIH0gZWxzZSBpZiAoZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICByZXR1cm4gaHR0cEVycm9yUmVzcG9uc2VUb1N0cmluZyhlcnJvciwgb3B0cyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RyQmxvY2tzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGlmICghb3B0cz8uaGlkZU1lc3NhZ2UpIHtcbiAgICAgICAgc3RyQmxvY2tzLnB1c2goZXJyb3IubWVzc2FnZSk7XG4gICAgfVxuICAgIGlmIChlcnJvci5uYW1lKSB7XG4gICAgICAgIHN0ckJsb2Nrcy5wdXNoKGBFcnJvciBuYW1lOiAke2Vycm9yLm5hbWV9YCk7XG4gICAgfVxuICAgIGlmICghb3B0cz8uaGlkZUNhdXNlKSB7XG4gICAgICAgIHN0ckJsb2Nrcy5wdXNoKGVycm9yQ2F1c2VUb1N0cmluZyhlcnJvciwgb3B0cykpO1xuICAgIH1cbiAgICBpZiAoIW9wdHM/LmhpZGVTdGFjayAmJiBlcnJvci5zdGFjaykge1xuICAgICAgICBzdHJCbG9ja3MucHVzaChgU3RhY2sgdHJhY2U6XFxuJHtlcnJvci5zdGFja31gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RyQmxvY2tzLmZpbHRlcihzID0+IHMudHJpbSgpLmxlbmd0aCA+IDApLmpvaW4oJ1xcbicpO1xufVxuXG4vKipcbiAqIENvbW1vbnMgZXJyb3IgdG8gc3RyaW5nLlxuICogQHBhcmFtIGVycm9yIENvbW1vbnMgZXJyb3IuXG4gKiBAcGFyYW0gb3B0cyBPcHRpb25zIGZvciBoaWRpbmcgcGFydHMgb2YgZXJyb3I6XG4gKiAtIGhpZGVNZXNzYWdlIEhpZGVzIG1lc3NhZ2Ugb2YgZXJyb3IuXG4gKiAtIGhpZGVOYW1lIEhpZGVzIGVycm9yIG5hbWUuXG4gKiAtIGhpZGVDYXVzZSBIaWRlcyBjYXVzZSBvZiBhbiBlcnJvciAoaWYgcHJlc2VudCwgc2VlIEBsaW5rKGVycm9yQ2F1c2VUb1N0cmluZykgZm9yIG90aGVyIG9wdGlvbnMpLlxuICogLSBoaWRlU3RhY2sgSGlkZXMgc3RhY2sgb2YgYW4gZXJyb3IgKGlmIHByZXNlbnQpLlxuICogLSBoaWRlRGV0YWlscyBIaWRlcyBKU09OIGRldGFpbCdzIHJlcHJlc2VudGF0aW9uIG9mIGVycm9yIChpZiBwcmVzZW50KS5cbiAqIC0gaGlkZUxvY2F0aW9uIEhpZGVzIGxvY2F0aW9uIChVUkwpIHdoZXJlIGVycm9yIHdhcyB0aHJvd24uXG4gKiAtIGhpZGVIdHRwIEhpZGVzIGh0dHAgZXJyb3IgcG9ydGlvbiBvZiBlcnJvciBpZiBodHRwIGVycm9yIHJlc3BvbnNlIChzZWUgQGxpbmsoaHR0cEVycm9yUmVzcG9uc2VUb1N0cmluZykgZm9yIG90aGVyIG9wdGlvbnMpLlxuICogLSBoaWRlSXRlbXMgSGlkZXMgYWxsIGl0ZW0gaW5mb3JtYXRpb24gKGh0dHAgYm9keSwgYWN0aW9uIGNvbnRleHQgZGF0YSkuXG4gKiAtIGhpZGVBY3Rpb25EYXRhIFNlZSBAbGluayhjb21tb25zQWN0aW9uRXJyb3JDb250ZXh0VG9TdHJpbmcpIGZvciBhZGRpdGlvbmFsIGluZm8uXG4gKiAtIGhpZGVRdWVyeVBhcmFtcyBTZWUgQGxpbmsoY29tbW9uc0FjdGlvbkVycm9yQ29udGV4dFRvU3RyaW5nKSBmb3IgYWRkaXRpb25hbCBpbmZvLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tbW9uc0Vycm9yVG9TdHJpbmcoZXJyb3I6IEFDb21tb25zRXJyb3JCYXNlLCBvcHRzPzogRXJyb3JUb1N0cmluZ09wdGlvbnNUeXBlKTogc3RyaW5nIHtcbiAgICBjb25zdCBzdHJCbG9ja3M6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKCFvcHRzPy5oaWRlTWVzc2FnZSkge1xuICAgICAgICBzdHJCbG9ja3MucHVzaChgJHtlcnJvci5tZXNzYWdlfSR7ZXJyb3IubWVzc2FnZUNvZGUgPyBgIChjb2RlOiAke2Vycm9yLm1lc3NhZ2VDb2RlfSlgIDogJyd9YCk7XG4gICAgfVxuICAgIGlmICghb3B0cz8uaGlkZU5hbWUpIHtcbiAgICAgICAgc3RyQmxvY2tzLnB1c2goYEVycm9yIG5hbWU6ICR7ZXJyb3IubmFtZSA/PyBlcnJvci50eXBlfSAke2Vycm9yLm5hbWUgPyBgKCR7ZXJyb3IudHlwZX0pYCA6ICcnfWApO1xuICAgIH1cbiAgICBpZiAoIW9wdHM/LmhpZGVMb2NhdGlvbiAmJiBlcnJvci5sb2NhdGlvbikge1xuICAgICAgICBzdHJCbG9ja3MucHVzaChgTG9jYXRpb246ICR7ZXJyb3IubG9jYXRpb259YCk7XG4gICAgfVxuXG4gICAgbGV0IGlzSHR0cCA9IGZhbHNlO1xuICAgIGlmICghb3B0cz8uaGlkZUh0dHAgJiYgZXJyb3IgaW5zdGFuY2VvZiBDb21tb25zSHR0cEVycm9yKSB7XG4gICAgICAgIHN0ckJsb2Nrcy5wdXNoKFxuICAgICAgICAgICAgaHR0cEVycm9yUmVzcG9uc2VUb1N0cmluZyhlcnJvci5odHRwRXJyb3IsIHtcbiAgICAgICAgICAgICAgICBoaWRlQm9keTogb3B0cz8uaGlkZUl0ZW1zIHx8IG9wdHM/LmhpZGVCb2R5LFxuICAgICAgICAgICAgICAgIGhpZGVIZWFkZXJzOiBvcHRzPy5oaWRlSGVhZGVycyxcbiAgICAgICAgICAgICAgICBoaWRlTWVzc2FnZTogZXJyb3IubWVzc2FnZS5pbmRleE9mKGVycm9yLmh0dHBFcnJvci5tZXNzYWdlKSA+PSAwXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICBpc0h0dHAgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAoZXJyb3IudHlwZSA9PT0gJ0NvbW1vbnNBY3Rpb25FcnJvcicpIHtcbiAgICAgICAgY29uc3QgYWN0aW9uRXJyb3IgPSBlcnJvciBhcyB1bmtub3duIGFzIElDb21tb25zQWN0aW9uRXJyb3I7XG4gICAgICAgIGlmIChhY3Rpb25FcnJvci5hY3Rpb25Db250ZXh0KSB7XG4gICAgICAgICAgICBzdHJCbG9ja3MucHVzaChjb21tb25zQWN0aW9uRXJyb3JDb250ZXh0VG9TdHJpbmcoYWN0aW9uRXJyb3IsIG9wdHMpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9wdHM/LmhpZGVIdHRwICYmIGFjdGlvbkVycm9yLmh0dHBFcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgICAgICBzdHJCbG9ja3MucHVzaChcbiAgICAgICAgICAgICAgICBodHRwRXJyb3JSZXNwb25zZVRvU3RyaW5nKGFjdGlvbkVycm9yLmh0dHBFcnJvciwge1xuICAgICAgICAgICAgICAgICAgICBoaWRlQm9keTogb3B0cz8uaGlkZUl0ZW1zIHx8IG9wdHM/LmhpZGVCb2R5LFxuICAgICAgICAgICAgICAgICAgICBoaWRlSGVhZGVyczogb3B0cz8uaGlkZUhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgIGhpZGVNZXNzYWdlOiBlcnJvci5tZXNzYWdlLmluZGV4T2YoYWN0aW9uRXJyb3IuaHR0cEVycm9yLm1lc3NhZ2UpID49IDBcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlzSHR0cCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIW9wdHM/LmhpZGVEZXRhaWxzICYmIGVycm9yLmRldGFpbHMpIHtcbiAgICAgICAgc3RyQmxvY2tzLnB1c2goYERldGFpbHM6ICR7c3RyaW5naWZ5KGVycm9yLmRldGFpbHMpfWApO1xuICAgIH1cbiAgICBpZiAoIW9wdHM/LmhpZGVDYXVzZSAmJiAoIWlzSHR0cCB8fCAhKGVycm9yLmNhdXNlIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpKSkge1xuICAgICAgICBzdHJCbG9ja3MucHVzaChlcnJvckNhdXNlVG9TdHJpbmcoZXJyb3IsIG9wdHMpKTtcbiAgICB9XG4gICAgaWYgKCFvcHRzPy5oaWRlU3RhY2sgJiYgZXJyb3Iuc3RhY2spIHtcbiAgICAgICAgc3RyQmxvY2tzLnB1c2goYFN0YWNrIHRyYWNlOlxcbiR7ZXJyb3Iuc3RhY2t9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0ckJsb2Nrcy5maWx0ZXIocyA9PiBzLnRyaW0oKS5sZW5ndGggPiAwKS5qb2luKCdcXG4nKTtcbn1cblxuLyoqXG4gKiBXcml0ZXMgY29tbW9ucyBhY3Rpb24gZXJyb3IgaW5mbyBmcm9tIGNvbnRleHQgYXMgc3RyaW5nLlxuICogQHBhcmFtIGVycm9yIENvbW1vbnMgYWN0aW9uIGVycm9yLlxuICogQHBhcmFtIG9wdHMgT3B0aW9ucyBmb3IgaGlkaW5nIHBhcnRzIG9mIGVycm9yOlxuICogLSBoaWRlSXRlbXMgSGlkZXMgYWxsIGl0ZW0gcmVsYXRlZCBpbmZvcm1hdGlvbiAoaXRlbSwgZm9ybSBpdGVtLCBzdWJtaXQgaXRlbSwgLi4uKS5cbiAqIC0gaGlkZUFjdGlvbkRhdGEgSGlkZXMgYWN0aW9uIGRhdGEuXG4gKiAtIGhpZGVRdWVyeVBhcmFtcyBIaWRlcyBxdWVyeSBwYXJhbXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21tb25zQWN0aW9uRXJyb3JDb250ZXh0VG9TdHJpbmcoZXJyb3I6IElDb21tb25zQWN0aW9uRXJyb3IsIG9wdHM/OiBBY3Rpb25FcnJvckNvbnRleHRUb1N0cmluZ09wdGlvbnNUeXBlKTogc3RyaW5nIHtcbiAgICBsZXQgcGFyYW1zTWVzc2FnZSA9ICcnO1xuICAgIGlmIChlcnJvci5hY3Rpb25Db250ZXh0Py5wYXJhbWV0ZXJzKSB7XG4gICAgICAgIGlmIChlcnJvci5hY3Rpb25Db250ZXh0Py5wYXJhbWV0ZXJzLml0ZW1JZCkge1xuICAgICAgICAgICAgcGFyYW1zTWVzc2FnZSArPSBgW2l0ZW1JZDogJHtlcnJvci5hY3Rpb25Db250ZXh0LnBhcmFtZXRlcnMuaXRlbUlkfV1gO1xuICAgICAgICB9XG4gICAgICAgIGlmICghb3B0cz8uaGlkZUl0ZW1zICYmIGVycm9yLmFjdGlvbkNvbnRleHQ/LnBhcmFtZXRlcnMuaXRlbSkge1xuICAgICAgICAgICAgcGFyYW1zTWVzc2FnZSArPSBgW2l0ZW06ICR7c3RyaW5naWZ5KGVycm9yLmFjdGlvbkNvbnRleHQucGFyYW1ldGVycy5pdGVtKX1dYDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9wdHM/LmhpZGVBY3Rpb25EYXRhICYmIGVycm9yLmFjdGlvbkNvbnRleHQ/LnBhcmFtZXRlcnMuYWN0aW9uRGF0YSkge1xuICAgICAgICAgICAgcGFyYW1zTWVzc2FnZSArPSBPYmplY3QuZW50cmllcyhlcnJvci5hY3Rpb25Db250ZXh0Py5wYXJhbWV0ZXJzLmFjdGlvbkRhdGEpLnJlZHVjZSgoYWNjLCBba2V5LCB2YWx1ZV0pID0+IGAke2FjY31bYWN0aW9uRGF0YSAke2tleX06ICR7c3RyaW5naWZ5KHZhbHVlKX1dYCwgJycpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghb3B0cz8uaGlkZVF1ZXJ5UGFyYW1zICYmIGVycm9yLmFjdGlvbkNvbnRleHQ/LnBhcmFtZXRlcnMuZGF0YUxpc3RQYXJhbXMpIHtcbiAgICAgICAgICAgIHBhcmFtc01lc3NhZ2UgKz0gYFtkYXRhTGlzdFBhcmFtczogJHtzdHJpbmdpZnkoZXJyb3IuYWN0aW9uQ29udGV4dC5wYXJhbWV0ZXJzLmRhdGFMaXN0UGFyYW1zKX1dYDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9wdHM/LmhpZGVJdGVtcyAmJiBlcnJvci5hY3Rpb25Db250ZXh0Py5wYXJhbWV0ZXJzLmZvcm1JdGVtKSB7XG4gICAgICAgICAgICBwYXJhbXNNZXNzYWdlICs9IGBbZm9ybUl0ZW06ICR7c3RyaW5naWZ5KGVycm9yLmFjdGlvbkNvbnRleHQucGFyYW1ldGVycy5mb3JtSXRlbSl9XWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvcHRzPy5oaWRlSXRlbXMgJiYgZXJyb3IuYWN0aW9uQ29udGV4dD8ucGFyYW1ldGVycy5zdWJtaXRSZXN1bHQpIHtcbiAgICAgICAgICAgIHBhcmFtc01lc3NhZ2UgKz0gYFtmb3JtSXRlbTogJHtzdHJpbmdpZnkoZXJyb3IuYWN0aW9uQ29udGV4dC5wYXJhbWV0ZXJzLnN1Ym1pdFJlc3VsdCl9XWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVycm9yLmFjdGlvbkNvbnRleHQ/LnBhcmFtZXRlcnMubG9jYWxlKSB7XG4gICAgICAgICAgICBwYXJhbXNNZXNzYWdlICs9IGBbbG9jYWxlOiAke3N0cmluZ2lmeShlcnJvci5hY3Rpb25Db250ZXh0LnBhcmFtZXRlcnMubG9jYWxlKX1dYDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwYXJhbXNNZXNzYWdlO1xufVxuXG4vKipcbiAqIFdyaXRlcyBjYXVzZSBvZiBhbiBlcnJvciBhcyBzdHJpbmcuXG4gKiBAcGFyYW0gZXJyb3IgRXJyb3IuXG4gKiBAcGFyYW0gb3B0cyBPcHRpb25zIGZvciBoaWRpbmcgcGFydHMgb2YgZXJyb3I6XG4gKiAtIGNhdXNlT25FcnJvck9ubHkgUHJpbnRzIG9ubHkgaWYgY2F1c2UgaXMgaW5zdGFuY2Ugb2YgZXJyb3IuXG4gKiAtIGNhdXNlQXNKc29uIFByaW50IGVycm9yIGNhdXNlIGFzIGEgSlNPTiAoYnkgZGVmYXVsdCwgaWYgZXJyb3Igb25seSBtZXNzYWdlIGFuZCBuYW1lIHdpbGwgYmUgcHJpbnRlZCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlcnJvckNhdXNlVG9TdHJpbmcoZXJyb3I6IEVycm9yLCBvcHRzPzogRXJyb3JDYXVzZVRvU3RyaW5nT3B0aW9uc1R5cGUpOiBzdHJpbmcge1xuICAgIC8vIGlmIGFscmVhZHkgbG9nZ2VkIGFzIGh0dHAgZXJyb3IsIGNoZWNrIHRoYXQgY2F1c2UgaXMgbm90IGFsc28gaHR0cCBlcnJvciAoY2F1c2UgaXQgaXMgdXN1YWxseSBkdXBsaWNhdGVkKVxuICAgIGlmIChlcnJvci5jYXVzZSAmJiAoIW9wdHM/LmNhdXNlT25FcnJvck9ubHkgfHwgZXJyb3IuY2F1c2UgaW5zdGFuY2VvZiBFcnJvcikpIHtcbiAgICAgICAgY29uc3QgbmVlZHNTdHJpbmdpZnkgPSBvcHRzPy5jYXVzZUFzSnNvbiB8fCAhKGVycm9yLmNhdXNlIGluc3RhbmNlb2YgRXJyb3IpO1xuICAgICAgICBpZiAoIW9wdHM/LmNhdXNlT25FcnJvck9ubHkgfHwgZXJyb3IuY2F1c2UgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAnQ2F1c2VkIGJ5OiAnICtcbiAgICAgICAgICAgICAgICAobmVlZHNTdHJpbmdpZnkgPyBzdHJpbmdpZnkoZXJyb3IuY2F1c2UpIDogYCR7KGVycm9yLmNhdXNlIGFzIEVycm9yKS5tZXNzYWdlfSR7KGVycm9yLmNhdXNlIGFzIEVycm9yKS5uYW1lID8gYCAoJHsoZXJyb3IuY2F1c2UgYXMgRXJyb3IpLm5hbWV9KWAgOiAnJ31gKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gJyc7XG59XG5cbmV4cG9ydCB0eXBlIEVycm9yVG9TdHJpbmdPcHRpb25zVHlwZSA9IEVycm9yVG9TdHJpbmdPcHRpb25zQmFzZVR5cGUgJlxuICAgIEh0dHBFcnJvclJlc3BvbnNlVG9TdHJpbmdPcHRpb25zVHlwZSAmXG4gICAgQWN0aW9uRXJyb3JDb250ZXh0VG9TdHJpbmdPcHRpb25zVHlwZSAmXG4gICAgRXJyb3JDYXVzZVRvU3RyaW5nT3B0aW9uc1R5cGUgJiB7XG4gICAgICAgIGhpZGVEZXRhaWxzPzogYm9vbGVhbjtcbiAgICAgICAgaGlkZUxvY2F0aW9uPzogYm9vbGVhbjtcbiAgICB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yVG9TdHJpbmdPcHRpb25zQmFzZVR5cGUge1xuICAgIGhpZGVOYW1lPzogYm9vbGVhbjtcbiAgICBoaWRlU3RhY2s/OiBib29sZWFuO1xuICAgIGhpZGVDYXVzZT86IGJvb2xlYW47XG4gICAgaGlkZUh0dHA/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBFcnJvclJlc3BvbnNlVG9TdHJpbmdPcHRpb25zVHlwZSB7XG4gICAgaGlkZU1lc3NhZ2U/OiBib29sZWFuO1xuICAgIGhpZGVIZWFkZXJzPzogYm9vbGVhbjtcbiAgICBoaWRlQm9keT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uRXJyb3JDb250ZXh0VG9TdHJpbmdPcHRpb25zVHlwZSB7XG4gICAgaGlkZUl0ZW1zPzogYm9vbGVhbjtcbiAgICBoaWRlQWN0aW9uRGF0YT86IGJvb2xlYW47XG4gICAgaGlkZVF1ZXJ5UGFyYW1zPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFcnJvckNhdXNlVG9TdHJpbmdPcHRpb25zVHlwZSB7XG4gICAgY2F1c2VPbkVycm9yT25seT86IGJvb2xlYW47XG4gICAgY2F1c2VBc0pzb24/OiBib29sZWFuO1xufVxuIl19
|
|
247
|
+
/**
|
|
248
|
+
* Throws an error with the provided error message.
|
|
249
|
+
* The intended usage is for in-line throwing of an error with TS type narrowing.
|
|
250
|
+
* <br>
|
|
251
|
+
* <i>Example</i>:
|
|
252
|
+
* <pre>
|
|
253
|
+
* const value: string | null = getValue("");
|
|
254
|
+
* const nonNullValue: string = getValue("") ?? throwError("value missing");
|
|
255
|
+
* </pre>
|
|
256
|
+
*
|
|
257
|
+
* @param {string} errorMessage - The error message to be thrown.
|
|
258
|
+
* @param {CommonsErrorBaseOptions} [options] - Additional options for the thrown error.
|
|
259
|
+
* @throws {Error} - The error object with the provided error message.
|
|
260
|
+
* @returns {never} - This function does not return a value.
|
|
261
|
+
* @see CommonsErrorBaseOptions
|
|
262
|
+
*/
|
|
263
|
+
export function throwError(errorMessage, options) {
|
|
264
|
+
throw new CommonsInternalError(errorMessage, options);
|
|
265
|
+
}
|
|
266
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc3JjL2Vycm9yL2Vycm9yLWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFdkQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsaUJBQWlCLEVBQTJCLGdCQUFnQixFQUFFLG9CQUFvQixFQUFzQixNQUFNLGVBQWUsQ0FBQztBQUV0STs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxLQUFVLEVBQUUsSUFBYSxFQUFFLE9BQWE7SUFDdkUsTUFBTSxJQUFJLEdBQTRCO1FBQ2xDLElBQUk7UUFDSixPQUFPO1FBQ1AsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSTtLQUNuQyxDQUFDO0lBRUYsSUFBSSxLQUFLLFlBQVksaUJBQWlCLEVBQUUsQ0FBQztRQUNyQyxPQUFPLElBQUksZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckYsQ0FBQztTQUFNLENBQUM7UUFDSixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixPQUFPLElBQUksb0JBQW9CLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSx5QkFBeUIsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0RixDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxLQUFVO0lBQzFDLE9BQU8sS0FBSyxZQUFZLGlCQUFpQixJQUFJLEtBQUssWUFBWSxnQkFBZ0IsSUFBSyxLQUF5QyxFQUFFLFNBQVMsWUFBWSxpQkFBaUIsQ0FB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QztRQUM1RSxJQUFJLENBQUMsSUFBSSxFQUFFLGdCQUFnQixJQUFJLEtBQUssQ0FBQyxLQUFLLFlBQVksS0FBSyxFQUFFLENBQUM7WUFDMUQsT0FBTyxDQUNILGFBQWE7Z0JBQ2IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUksS0FBSyxDQUFDLEtBQWUsQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLEtBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQU0sS0FBSyxDQUFDLEtBQWUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FDM0osQ0FBQztRQUNOLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUM7QUFDZCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FBQyxZQUFvQixFQUFFLE9BQWlDO0lBQzlFLE1BQU0sSUFBSSxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDMUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cEVycm9yUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuaW1wb3J0IHtzdHJpbmdpZnl9IGZyb20gJy4uL2hlbHBlcnMvc3RyaW5nJztcbmltcG9ydCB7TG9nTGV2ZWxFbnVtfSBmcm9tICcuLi9sb2cvbG9nLm1vZGVsJztcbmltcG9ydCB7QUNvbW1vbnNFcnJvckJhc2UsIENvbW1vbnNFcnJvckJhc2VPcHRpb25zLCBDb21tb25zSHR0cEVycm9yLCBDb21tb25zSW50ZXJuYWxFcnJvciwgSUNvbW1vbnNBY3Rpb25FcnJvcn0gZnJvbSAnLi9lcnJvci5tb2RlbCc7XG5cbi8qKlxuICogQ29udmVydHMgUnhKUyBzdWJzY3JpcHRpb24gZXJyb3IgdG8gQ29tbW9uc0Vycm9yLlxuICogQHBhcmFtIGVycm9yIEVycm9yLlxuICogQHBhcmFtIG5hbWUgT3B0aW9uYWwgbmFtZSB0byB3cml0ZSBpbiBjb21tb25zIGVycm9yLlxuICogQHBhcmFtIGRldGFpbHMgT3B0aW9uYWwgZGV0YWlscyBvZiBlcnJvci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21TdWJzY3JpYmVFcnJvcihlcnJvcjogYW55LCBuYW1lPzogc3RyaW5nLCBkZXRhaWxzPzogYW55KTogQUNvbW1vbnNFcnJvckJhc2Uge1xuICAgIGNvbnN0IG9wdHM6IENvbW1vbnNFcnJvckJhc2VPcHRpb25zID0ge1xuICAgICAgICBuYW1lLFxuICAgICAgICBkZXRhaWxzLFxuICAgICAgICBsb2NhdGlvbjogd2luZG93Py5sb2NhdGlvbj8uaHJlZlxuICAgIH07XG5cbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICByZXR1cm4gbmV3IENvbW1vbnNIdHRwRXJyb3IoZXJyb3IubWVzc2FnZSA/PyAnSHR0cCBFcnJvciBvY2N1cnJlZCcsIGVycm9yLCBvcHRzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBvcHRzLmNhdXNlID0gZXJyb3I7XG4gICAgICAgIHJldHVybiBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoZXJyb3IubWVzc2FnZSA/PyAnSW50ZXJuYWwgRXJyb3Igb2NjdXJyZWQnLCBvcHRzKTtcbiAgICB9XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGVycm9yIGlzIEh0dHAgZXJyb3IgKEFuZ3VsYXIgb3IgQ29tbW9ucykuXG4gKiBAcGFyYW0gZXJyb3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSHR0cEVycm9yUmVzcG9uc2UoZXJyb3I6IGFueSkge1xuICAgIHJldHVybiBlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlIHx8IGVycm9yIGluc3RhbmNlb2YgQ29tbW9uc0h0dHBFcnJvciB8fCAoZXJyb3IgYXMgSUNvbW1vbnNBY3Rpb25FcnJvciB8IHVuZGVmaW5lZCk/Lmh0dHBFcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlO1xufVxuXG4vKipcbiAqIEdldHMgSHR0cEVycm9yUmVzcG9uc2UgZnJvbSBlcnJvciAoQW5ndWxhciBvciBDb21tb25zKS5cbiAqIEBwYXJhbSBlcnJvciBFcnJvci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEh0dHBFcnJvclJlc3BvbnNlKGVycm9yOiBhbnkpOiBIdHRwRXJyb3JSZXNwb25zZSB8IG51bGwge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9IGVsc2UgaWYgKGVycm9yIGluc3RhbmNlb2YgQ29tbW9uc0h0dHBFcnJvcikge1xuICAgICAgICByZXR1cm4gZXJyb3IuaHR0cEVycm9yO1xuICAgIH0gZWxzZSBpZiAoKGVycm9yIGFzIElDb21tb25zQWN0aW9uRXJyb3IgfCB1bmRlZmluZWQpPy5odHRwRXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICByZXR1cm4gZXJyb3IuaHR0cEVycm9yO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cblxuLyoqXG4gKiBHZXRzIEh0dHBFcnJvclJlc3BvbnNlIHN0YXR1cyBmcm9tIGVycm9yIChBbmd1bGFyIG9yIENvbW1vbnMpLlxuICogQHBhcmFtIGVycm9yIEVycm9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SHR0cEVycm9yUmVzcG9uc2VTdGF0dXMoZXJyb3I6IGFueSk6IG51bWJlciB8IG51bGwge1xuICAgIHJldHVybiBnZXRIdHRwRXJyb3JSZXNwb25zZShlcnJvcik/LnN0YXR1cyA/PyBudWxsO1xufVxuXG4vKipcbiAqIEdldCBlcnJvciBsb2cgbGV2ZWwuIEFsbCBpcyBlcnJvciwgZXhjZXB0IGlmIGVycm9yIGlzIGh0dHAgZXJyb3Igd2l0aCBzdGF0dXMgPj00MDAgYW5kIDw1MDAuXG4gKiBAcGFyYW0gZXJyb3IgRXJyb3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFcnJvckxvZ0xldmVsKGVycm9yOiBhbnkpOiBMb2dMZXZlbEVudW0ge1xuICAgIGlmIChpc0h0dHBFcnJvclJlc3BvbnNlKGVycm9yKSkge1xuICAgICAgICBjb25zdCBzdGF0dXMgPSBnZXRIdHRwRXJyb3JSZXNwb25zZVN0YXR1cyhlcnJvcik7XG4gICAgICAgIGlmIChzdGF0dXMgJiYgc3RhdHVzID49IDQwMCAmJiBzdGF0dXMgPCA1MDApIHtcbiAgICAgICAgICAgIHJldHVybiBMb2dMZXZlbEVudW0uV2FybmluZztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gTG9nTGV2ZWxFbnVtLkVycm9yO1xufVxuXG4vKipcbiAqIEdldCBlcnJvciBuYW1lIChwcm90b3R5cGUgbmFtZSBvciB0eXBlIGZyb20gY29tbW9ucyBlcnJvciBpZiBuYW1lIGlzIG5vdCBwcm92aWRlZCkuXG4gKiBAcGFyYW0gZXJyb3IgRXJyb3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFcnJvck5hbWUoZXJyb3I6IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgQUNvbW1vbnNFcnJvckJhc2UpIHtcbiAgICAgICAgcmV0dXJuIGVycm9yLm5hbWUgPz8gZXJyb3IudHlwZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZXJyb3IubmFtZTtcbiAgICB9XG59XG5cbi8qKlxuICogV3JpdGVzIGh0dHAgZXJyb3IgdG8gc3RyaW5nIHdpdGggYWxsIGhlYWRlcnMgYW5kIGJvZHkuXG4gKiBAcGFyYW0gZXJyb3IgSHR0cCByZXNwb25zZSBlcnJvci5cbiAqIEBwYXJhbSBvcHRzIE9wdGlvbnMgZm9yIGhpZGluZyBwYXJ0cyBvZiBlcnJvcjpcbiAqICAtIGhpZGVNZXNzYWdlIEhpZGVzIG1lc3NhZ2Ugb2YgZXJyb3IgKG1lc3NhZ2UgaW5jbHVkZSB1cmwsIHN0YXR1cyBhbmQgc3RhdHVzIHRleHQhKS5cbiAqICAtIGhpZGVIZWFkZXJzIEhpZGVzIGhlYWRlcnMuXG4gKiAgLSBoaWRlQm9keSBIaWRlcyBKU09OIHJlcHJlc2VudGF0aW9uIG9mIGJvZHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBodHRwRXJyb3JSZXNwb25zZVRvU3RyaW5nKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSwgb3B0cz86IEh0dHBFcnJvclJlc3BvbnNlVG9TdHJpbmdPcHRpb25zVHlwZSk6IHN0cmluZyB7XG4gICAgbGV0IHN0ciA9IG9wdHM/LmhpZGVNZXNzYWdlID8gJycgOiBgJHtlcnJvci5tZXNzYWdlfVxcbmA7IC8vIG1lc3NhZ2Ugc2hvdWxkIGFscmVhZHkgaW5jbHVkZSB1cmwsIHN0YXR1cywgZXRjLlxuICAgIGlmICghb3B0cz8uaGlkZUhlYWRlcnMpIHtcbiAgICAgICAgc3RyICs9IGBIdHRwIFJlc3BvbnNlIEhlYWRlcnM6ICR7ZXJyb3IuaGVhZGVycy5rZXlzKCkucmVkdWNlKChhY2MsIGtleSkgPT4gYCR7YWNjfVske2tleX06ICR7ZXJyb3IuaGVhZGVycy5nZXQoa2V5KX1dYCwgJycpfWA7XG4gICAgfVxuICAgIGlmICghb3B0cz8uaGlkZUJvZHkpIHtcbiAgICAgICAgc3RyICs9IGBcXG5IdHRwIFJlc3BvbnNlIEJvZHk6ICR7c3RyaW5naWZ5KGVycm9yLmVycm9yKX1gO1xuICAgIH1cbiAgICByZXR1cm4gc3RyO1xufVxuXG4vKipcbiAqIEVycm9yIHRvIHN0cmluZy5cbiAqIEBwYXJhbSBlcnJvciBFcnJvci5cbiAqIEBwYXJhbSBvcHRzIE9wdGlvbnMgZm9yIGhpZGluZyBwYXJ0cyBvZiBlcnJvcjpcbiAqIC0gaGlkZU1lc3NhZ2UgSGlkZXMgbWVzc2FnZSBvZiBlcnJvci5cbiAqIC0gaGlkZU5hbWUgSGlkZXMgZXJyb3IgbmFtZS5cbiAqIC0gaGlkZUNhdXNlIEhpZGVzIGNhdXNlIG9mIGFuIGVycm9yIChpZiBwcmVzZW50LCBzZWUgQGxpbmsoZXJyb3JDYXVzZVRvU3RyaW5nKSBmb3Igb3RoZXIgb3B0aW9ucykuXG4gKiAtIGhpZGVTdGFjayBIaWRlcyBzdGFjayBvZiBhbiBlcnJvciAoaWYgcHJlc2VudCkuXG4gKiAtIGhpZGVEZXRhaWxzIEhpZGVzIEpTT04gZGV0YWlsJ3MgcmVwcmVzZW50YXRpb24gb2YgZXJyb3IgKGlmIHByZXNlbnQpLlxuICogLSBoaWRlTG9jYXRpb24gSGlkZXMgbG9jYXRpb24gKFVSTCkgd2hlcmUgZXJyb3Igd2FzIHRocm93bi5cbiAqIC0gaGlkZUh0dHAgSGlkZXMgaHR0cCBlcnJvciBwb3J0aW9uIG9mIGVycm9yIGlmIGh0dHAgZXJyb3IgcmVzcG9uc2UgKHNlZSBAbGluayhodHRwRXJyb3JSZXNwb25zZVRvU3RyaW5nKSBmb3Igb3RoZXIgb3B0aW9ucykuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlcnJvclRvU3RyaW5nKGVycm9yOiBFcnJvciwgb3B0cz86IEVycm9yVG9TdHJpbmdPcHRpb25zVHlwZSk6IHN0cmluZyB7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgQUNvbW1vbnNFcnJvckJhc2UpIHtcbiAgICAgICAgcmV0dXJuIGNvbW1vbnNFcnJvclRvU3RyaW5nKGVycm9yLCBvcHRzKTtcbiAgICB9IGVsc2UgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgcmV0dXJuIGh0dHBFcnJvclJlc3BvbnNlVG9TdHJpbmcoZXJyb3IsIG9wdHMpO1xuICAgIH1cblxuICAgIGNvbnN0IHN0ckJsb2Nrczogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAoIW9wdHM/LmhpZGVNZXNzYWdlKSB7XG4gICAgICAgIHN0ckJsb2Nrcy5wdXNoKGVycm9yLm1lc3NhZ2UpO1xuICAgIH1cbiAgICBpZiAoZXJyb3IubmFtZSkge1xuICAgICAgICBzdHJCbG9ja3MucHVzaChgRXJyb3IgbmFtZTogJHtlcnJvci5uYW1lfWApO1xuICAgIH1cbiAgICBpZiAoIW9wdHM/LmhpZGVDYXVzZSkge1xuICAgICAgICBzdHJCbG9ja3MucHVzaChlcnJvckNhdXNlVG9TdHJpbmcoZXJyb3IsIG9wdHMpKTtcbiAgICB9XG4gICAgaWYgKCFvcHRzPy5oaWRlU3RhY2sgJiYgZXJyb3Iuc3RhY2spIHtcbiAgICAgICAgc3RyQmxvY2tzLnB1c2goYFN0YWNrIHRyYWNlOlxcbiR7ZXJyb3Iuc3RhY2t9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0ckJsb2Nrcy5maWx0ZXIocyA9PiBzLnRyaW0oKS5sZW5ndGggPiAwKS5qb2luKCdcXG4nKTtcbn1cblxuLyoqXG4gKiBDb21tb25zIGVycm9yIHRvIHN0cmluZy5cbiAqIEBwYXJhbSBlcnJvciBDb21tb25zIGVycm9yLlxuICogQHBhcmFtIG9wdHMgT3B0aW9ucyBmb3IgaGlkaW5nIHBhcnRzIG9mIGVycm9yOlxuICogLSBoaWRlTWVzc2FnZSBIaWRlcyBtZXNzYWdlIG9mIGVycm9yLlxuICogLSBoaWRlTmFtZSBIaWRlcyBlcnJvciBuYW1lLlxuICogLSBoaWRlQ2F1c2UgSGlkZXMgY2F1c2Ugb2YgYW4gZXJyb3IgKGlmIHByZXNlbnQsIHNlZSBAbGluayhlcnJvckNhdXNlVG9TdHJpbmcpIGZvciBvdGhlciBvcHRpb25zKS5cbiAqIC0gaGlkZVN0YWNrIEhpZGVzIHN0YWNrIG9mIGFuIGVycm9yIChpZiBwcmVzZW50KS5cbiAqIC0gaGlkZURldGFpbHMgSGlkZXMgSlNPTiBkZXRhaWwncyByZXByZXNlbnRhdGlvbiBvZiBlcnJvciAoaWYgcHJlc2VudCkuXG4gKiAtIGhpZGVMb2NhdGlvbiBIaWRlcyBsb2NhdGlvbiAoVVJMKSB3aGVyZSBlcnJvciB3YXMgdGhyb3duLlxuICogLSBoaWRlSHR0cCBIaWRlcyBodHRwIGVycm9yIHBvcnRpb24gb2YgZXJyb3IgaWYgaHR0cCBlcnJvciByZXNwb25zZSAoc2VlIEBsaW5rKGh0dHBFcnJvclJlc3BvbnNlVG9TdHJpbmcpIGZvciBvdGhlciBvcHRpb25zKS5cbiAqIC0gaGlkZUl0ZW1zIEhpZGVzIGFsbCBpdGVtIGluZm9ybWF0aW9uIChodHRwIGJvZHksIGFjdGlvbiBjb250ZXh0IGRhdGEpLlxuICogLSBoaWRlQWN0aW9uRGF0YSBTZWUgQGxpbmsoY29tbW9uc0FjdGlvbkVycm9yQ29udGV4dFRvU3RyaW5nKSBmb3IgYWRkaXRpb25hbCBpbmZvLlxuICogLSBoaWRlUXVlcnlQYXJhbXMgU2VlIEBsaW5rKGNvbW1vbnNBY3Rpb25FcnJvckNvbnRleHRUb1N0cmluZykgZm9yIGFkZGl0aW9uYWwgaW5mby5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbW1vbnNFcnJvclRvU3RyaW5nKGVycm9yOiBBQ29tbW9uc0Vycm9yQmFzZSwgb3B0cz86IEVycm9yVG9TdHJpbmdPcHRpb25zVHlwZSk6IHN0cmluZyB7XG4gICAgY29uc3Qgc3RyQmxvY2tzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGlmICghb3B0cz8uaGlkZU1lc3NhZ2UpIHtcbiAgICAgICAgc3RyQmxvY2tzLnB1c2goYCR7ZXJyb3IubWVzc2FnZX0ke2Vycm9yLm1lc3NhZ2VDb2RlID8gYCAoY29kZTogJHtlcnJvci5tZXNzYWdlQ29kZX0pYCA6ICcnfWApO1xuICAgIH1cbiAgICBpZiAoIW9wdHM/LmhpZGVOYW1lKSB7XG4gICAgICAgIHN0ckJsb2Nrcy5wdXNoKGBFcnJvciBuYW1lOiAke2Vycm9yLm5hbWUgPz8gZXJyb3IudHlwZX0gJHtlcnJvci5uYW1lID8gYCgke2Vycm9yLnR5cGV9KWAgOiAnJ31gKTtcbiAgICB9XG4gICAgaWYgKCFvcHRzPy5oaWRlTG9jYXRpb24gJiYgZXJyb3IubG9jYXRpb24pIHtcbiAgICAgICAgc3RyQmxvY2tzLnB1c2goYExvY2F0aW9uOiAke2Vycm9yLmxvY2F0aW9ufWApO1xuICAgIH1cblxuICAgIGxldCBpc0h0dHAgPSBmYWxzZTtcbiAgICBpZiAoIW9wdHM/LmhpZGVIdHRwICYmIGVycm9yIGluc3RhbmNlb2YgQ29tbW9uc0h0dHBFcnJvcikge1xuICAgICAgICBzdHJCbG9ja3MucHVzaChcbiAgICAgICAgICAgIGh0dHBFcnJvclJlc3BvbnNlVG9TdHJpbmcoZXJyb3IuaHR0cEVycm9yLCB7XG4gICAgICAgICAgICAgICAgaGlkZUJvZHk6IG9wdHM/LmhpZGVJdGVtcyB8fCBvcHRzPy5oaWRlQm9keSxcbiAgICAgICAgICAgICAgICBoaWRlSGVhZGVyczogb3B0cz8uaGlkZUhlYWRlcnMsXG4gICAgICAgICAgICAgICAgaGlkZU1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UuaW5kZXhPZihlcnJvci5odHRwRXJyb3IubWVzc2FnZSkgPj0gMFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgaXNIdHRwID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKGVycm9yLnR5cGUgPT09ICdDb21tb25zQWN0aW9uRXJyb3InKSB7XG4gICAgICAgIGNvbnN0IGFjdGlvbkVycm9yID0gZXJyb3IgYXMgdW5rbm93biBhcyBJQ29tbW9uc0FjdGlvbkVycm9yO1xuICAgICAgICBpZiAoYWN0aW9uRXJyb3IuYWN0aW9uQ29udGV4dCkge1xuICAgICAgICAgICAgc3RyQmxvY2tzLnB1c2goY29tbW9uc0FjdGlvbkVycm9yQ29udGV4dFRvU3RyaW5nKGFjdGlvbkVycm9yLCBvcHRzKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvcHRzPy5oaWRlSHR0cCAmJiBhY3Rpb25FcnJvci5odHRwRXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICAgICAgc3RyQmxvY2tzLnB1c2goXG4gICAgICAgICAgICAgICAgaHR0cEVycm9yUmVzcG9uc2VUb1N0cmluZyhhY3Rpb25FcnJvci5odHRwRXJyb3IsIHtcbiAgICAgICAgICAgICAgICAgICAgaGlkZUJvZHk6IG9wdHM/LmhpZGVJdGVtcyB8fCBvcHRzPy5oaWRlQm9keSxcbiAgICAgICAgICAgICAgICAgICAgaGlkZUhlYWRlcnM6IG9wdHM/LmhpZGVIZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICBoaWRlTWVzc2FnZTogZXJyb3IubWVzc2FnZS5pbmRleE9mKGFjdGlvbkVycm9yLmh0dHBFcnJvci5tZXNzYWdlKSA+PSAwXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpc0h0dHAgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFvcHRzPy5oaWRlRGV0YWlscyAmJiBlcnJvci5kZXRhaWxzKSB7XG4gICAgICAgIHN0ckJsb2Nrcy5wdXNoKGBEZXRhaWxzOiAke3N0cmluZ2lmeShlcnJvci5kZXRhaWxzKX1gKTtcbiAgICB9XG4gICAgaWYgKCFvcHRzPy5oaWRlQ2F1c2UgJiYgKCFpc0h0dHAgfHwgIShlcnJvci5jYXVzZSBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSkpIHtcbiAgICAgICAgc3RyQmxvY2tzLnB1c2goZXJyb3JDYXVzZVRvU3RyaW5nKGVycm9yLCBvcHRzKSk7XG4gICAgfVxuICAgIGlmICghb3B0cz8uaGlkZVN0YWNrICYmIGVycm9yLnN0YWNrKSB7XG4gICAgICAgIHN0ckJsb2Nrcy5wdXNoKGBTdGFjayB0cmFjZTpcXG4ke2Vycm9yLnN0YWNrfWApO1xuICAgIH1cblxuICAgIHJldHVybiBzdHJCbG9ja3MuZmlsdGVyKHMgPT4gcy50cmltKCkubGVuZ3RoID4gMCkuam9pbignXFxuJyk7XG59XG5cbi8qKlxuICogV3JpdGVzIGNvbW1vbnMgYWN0aW9uIGVycm9yIGluZm8gZnJvbSBjb250ZXh0IGFzIHN0cmluZy5cbiAqIEBwYXJhbSBlcnJvciBDb21tb25zIGFjdGlvbiBlcnJvci5cbiAqIEBwYXJhbSBvcHRzIE9wdGlvbnMgZm9yIGhpZGluZyBwYXJ0cyBvZiBlcnJvcjpcbiAqIC0gaGlkZUl0ZW1zIEhpZGVzIGFsbCBpdGVtIHJlbGF0ZWQgaW5mb3JtYXRpb24gKGl0ZW0sIGZvcm0gaXRlbSwgc3VibWl0IGl0ZW0sIC4uLikuXG4gKiAtIGhpZGVBY3Rpb25EYXRhIEhpZGVzIGFjdGlvbiBkYXRhLlxuICogLSBoaWRlUXVlcnlQYXJhbXMgSGlkZXMgcXVlcnkgcGFyYW1zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tbW9uc0FjdGlvbkVycm9yQ29udGV4dFRvU3RyaW5nKGVycm9yOiBJQ29tbW9uc0FjdGlvbkVycm9yLCBvcHRzPzogQWN0aW9uRXJyb3JDb250ZXh0VG9TdHJpbmdPcHRpb25zVHlwZSk6IHN0cmluZyB7XG4gICAgbGV0IHBhcmFtc01lc3NhZ2UgPSAnJztcbiAgICBpZiAoZXJyb3IuYWN0aW9uQ29udGV4dD8ucGFyYW1ldGVycykge1xuICAgICAgICBpZiAoZXJyb3IuYWN0aW9uQ29udGV4dD8ucGFyYW1ldGVycy5pdGVtSWQpIHtcbiAgICAgICAgICAgIHBhcmFtc01lc3NhZ2UgKz0gYFtpdGVtSWQ6ICR7ZXJyb3IuYWN0aW9uQ29udGV4dC5wYXJhbWV0ZXJzLml0ZW1JZH1dYDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9wdHM/LmhpZGVJdGVtcyAmJiBlcnJvci5hY3Rpb25Db250ZXh0Py5wYXJhbWV0ZXJzLml0ZW0pIHtcbiAgICAgICAgICAgIHBhcmFtc01lc3NhZ2UgKz0gYFtpdGVtOiAke3N0cmluZ2lmeShlcnJvci5hY3Rpb25Db250ZXh0LnBhcmFtZXRlcnMuaXRlbSl9XWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvcHRzPy5oaWRlQWN0aW9uRGF0YSAmJiBlcnJvci5hY3Rpb25Db250ZXh0Py5wYXJhbWV0ZXJzLmFjdGlvbkRhdGEpIHtcbiAgICAgICAgICAgIHBhcmFtc01lc3NhZ2UgKz0gT2JqZWN0LmVudHJpZXMoZXJyb3IuYWN0aW9uQ29udGV4dD8ucGFyYW1ldGVycy5hY3Rpb25EYXRhKS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiBgJHthY2N9W2FjdGlvbkRhdGEgJHtrZXl9OiAke3N0cmluZ2lmeSh2YWx1ZSl9XWAsICcnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9wdHM/LmhpZGVRdWVyeVBhcmFtcyAmJiBlcnJvci5hY3Rpb25Db250ZXh0Py5wYXJhbWV0ZXJzLmRhdGFMaXN0UGFyYW1zKSB7XG4gICAgICAgICAgICBwYXJhbXNNZXNzYWdlICs9IGBbZGF0YUxpc3RQYXJhbXM6ICR7c3RyaW5naWZ5KGVycm9yLmFjdGlvbkNvbnRleHQucGFyYW1ldGVycy5kYXRhTGlzdFBhcmFtcyl9XWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvcHRzPy5oaWRlSXRlbXMgJiYgZXJyb3IuYWN0aW9uQ29udGV4dD8ucGFyYW1ldGVycy5mb3JtSXRlbSkge1xuICAgICAgICAgICAgcGFyYW1zTWVzc2FnZSArPSBgW2Zvcm1JdGVtOiAke3N0cmluZ2lmeShlcnJvci5hY3Rpb25Db250ZXh0LnBhcmFtZXRlcnMuZm9ybUl0ZW0pfV1gO1xuICAgICAgICB9XG4gICAgICAgIGlmICghb3B0cz8uaGlkZUl0ZW1zICYmIGVycm9yLmFjdGlvbkNvbnRleHQ/LnBhcmFtZXRlcnMuc3VibWl0UmVzdWx0KSB7XG4gICAgICAgICAgICBwYXJhbXNNZXNzYWdlICs9IGBbZm9ybUl0ZW06ICR7c3RyaW5naWZ5KGVycm9yLmFjdGlvbkNvbnRleHQucGFyYW1ldGVycy5zdWJtaXRSZXN1bHQpfV1gO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlcnJvci5hY3Rpb25Db250ZXh0Py5wYXJhbWV0ZXJzLmxvY2FsZSkge1xuICAgICAgICAgICAgcGFyYW1zTWVzc2FnZSArPSBgW2xvY2FsZTogJHtzdHJpbmdpZnkoZXJyb3IuYWN0aW9uQ29udGV4dC5wYXJhbWV0ZXJzLmxvY2FsZSl9XWA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcGFyYW1zTWVzc2FnZTtcbn1cblxuLyoqXG4gKiBXcml0ZXMgY2F1c2Ugb2YgYW4gZXJyb3IgYXMgc3RyaW5nLlxuICogQHBhcmFtIGVycm9yIEVycm9yLlxuICogQHBhcmFtIG9wdHMgT3B0aW9ucyBmb3IgaGlkaW5nIHBhcnRzIG9mIGVycm9yOlxuICogLSBjYXVzZU9uRXJyb3JPbmx5IFByaW50cyBvbmx5IGlmIGNhdXNlIGlzIGluc3RhbmNlIG9mIGVycm9yLlxuICogLSBjYXVzZUFzSnNvbiBQcmludCBlcnJvciBjYXVzZSBhcyBhIEpTT04gKGJ5IGRlZmF1bHQsIGlmIGVycm9yIG9ubHkgbWVzc2FnZSBhbmQgbmFtZSB3aWxsIGJlIHByaW50ZWQpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXJyb3JDYXVzZVRvU3RyaW5nKGVycm9yOiBFcnJvciwgb3B0cz86IEVycm9yQ2F1c2VUb1N0cmluZ09wdGlvbnNUeXBlKTogc3RyaW5nIHtcbiAgICAvLyBpZiBhbHJlYWR5IGxvZ2dlZCBhcyBodHRwIGVycm9yLCBjaGVjayB0aGF0IGNhdXNlIGlzIG5vdCBhbHNvIGh0dHAgZXJyb3IgKGNhdXNlIGl0IGlzIHVzdWFsbHkgZHVwbGljYXRlZClcbiAgICBpZiAoZXJyb3IuY2F1c2UgJiYgKCFvcHRzPy5jYXVzZU9uRXJyb3JPbmx5IHx8IGVycm9yLmNhdXNlIGluc3RhbmNlb2YgRXJyb3IpKSB7XG4gICAgICAgIGNvbnN0IG5lZWRzU3RyaW5naWZ5ID0gb3B0cz8uY2F1c2VBc0pzb24gfHwgIShlcnJvci5jYXVzZSBpbnN0YW5jZW9mIEVycm9yKTtcbiAgICAgICAgaWYgKCFvcHRzPy5jYXVzZU9uRXJyb3JPbmx5IHx8IGVycm9yLmNhdXNlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgJ0NhdXNlZCBieTogJyArXG4gICAgICAgICAgICAgICAgKG5lZWRzU3RyaW5naWZ5ID8gc3RyaW5naWZ5KGVycm9yLmNhdXNlKSA6IGAkeyhlcnJvci5jYXVzZSBhcyBFcnJvcikubWVzc2FnZX0keyhlcnJvci5jYXVzZSBhcyBFcnJvcikubmFtZSA/IGAgKCR7KGVycm9yLmNhdXNlIGFzIEVycm9yKS5uYW1lfSlgIDogJyd9YClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuICcnO1xufVxuXG4vKipcbiAqIFRocm93cyBhbiBlcnJvciB3aXRoIHRoZSBwcm92aWRlZCBlcnJvciBtZXNzYWdlLlxuICogVGhlIGludGVuZGVkIHVzYWdlIGlzIGZvciBpbi1saW5lIHRocm93aW5nIG9mIGFuIGVycm9yIHdpdGggVFMgdHlwZSBuYXJyb3dpbmcuXG4gKiA8YnI+XG4gKiA8aT5FeGFtcGxlPC9pPjpcbiAqIDxwcmU+XG4gKiAgIGNvbnN0IHZhbHVlOiBzdHJpbmcgfCBudWxsID0gZ2V0VmFsdWUoXCJcIik7XG4gKiAgIGNvbnN0IG5vbk51bGxWYWx1ZTogc3RyaW5nID0gZ2V0VmFsdWUoXCJcIikgPz8gdGhyb3dFcnJvcihcInZhbHVlIG1pc3NpbmdcIik7XG4gKiA8L3ByZT5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gZXJyb3JNZXNzYWdlIC0gVGhlIGVycm9yIG1lc3NhZ2UgdG8gYmUgdGhyb3duLlxuICogQHBhcmFtIHtDb21tb25zRXJyb3JCYXNlT3B0aW9uc30gW29wdGlvbnNdIC0gQWRkaXRpb25hbCBvcHRpb25zIGZvciB0aGUgdGhyb3duIGVycm9yLlxuICogQHRocm93cyB7RXJyb3J9IC0gVGhlIGVycm9yIG9iamVjdCB3aXRoIHRoZSBwcm92aWRlZCBlcnJvciBtZXNzYWdlLlxuICogQHJldHVybnMge25ldmVyfSAtIFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgcmV0dXJuIGEgdmFsdWUuXG4gKiBAc2VlIENvbW1vbnNFcnJvckJhc2VPcHRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd0Vycm9yKGVycm9yTWVzc2FnZTogc3RyaW5nLCBvcHRpb25zPzogQ29tbW9uc0Vycm9yQmFzZU9wdGlvbnMpOiBuZXZlciB7XG4gICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKGVycm9yTWVzc2FnZSwgb3B0aW9ucyk7XG59XG5cbmV4cG9ydCB0eXBlIEVycm9yVG9TdHJpbmdPcHRpb25zVHlwZSA9IEVycm9yVG9TdHJpbmdPcHRpb25zQmFzZVR5cGUgJlxuICAgIEh0dHBFcnJvclJlc3BvbnNlVG9TdHJpbmdPcHRpb25zVHlwZSAmXG4gICAgQWN0aW9uRXJyb3JDb250ZXh0VG9TdHJpbmdPcHRpb25zVHlwZSAmXG4gICAgRXJyb3JDYXVzZVRvU3RyaW5nT3B0aW9uc1R5cGUgJiB7XG4gICAgICAgIGhpZGVEZXRhaWxzPzogYm9vbGVhbjtcbiAgICAgICAgaGlkZUxvY2F0aW9uPzogYm9vbGVhbjtcbiAgICB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yVG9TdHJpbmdPcHRpb25zQmFzZVR5cGUge1xuICAgIGhpZGVOYW1lPzogYm9vbGVhbjtcbiAgICBoaWRlU3RhY2s/OiBib29sZWFuO1xuICAgIGhpZGVDYXVzZT86IGJvb2xlYW47XG4gICAgaGlkZUh0dHA/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBFcnJvclJlc3BvbnNlVG9TdHJpbmdPcHRpb25zVHlwZSB7XG4gICAgaGlkZU1lc3NhZ2U/OiBib29sZWFuO1xuICAgIGhpZGVIZWFkZXJzPzogYm9vbGVhbjtcbiAgICBoaWRlQm9keT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uRXJyb3JDb250ZXh0VG9TdHJpbmdPcHRpb25zVHlwZSB7XG4gICAgaGlkZUl0ZW1zPzogYm9vbGVhbjtcbiAgICBoaWRlQWN0aW9uRGF0YT86IGJvb2xlYW47XG4gICAgaGlkZVF1ZXJ5UGFyYW1zPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFcnJvckNhdXNlVG9TdHJpbmdPcHRpb25zVHlwZSB7XG4gICAgY2F1c2VPbkVycm9yT25seT86IGJvb2xlYW47XG4gICAgY2F1c2VBc0pzb24/OiBib29sZWFuO1xufVxuIl19
|
|
@@ -1,15 +1,6 @@
|
|
|
1
1
|
import { of } from 'rxjs';
|
|
2
2
|
import { map } from 'rxjs/operators';
|
|
3
|
-
import { findReflectTypeName } from '../reflect/type-enum-metadata';
|
|
4
3
|
import { getI18n, getI18nAsync, populateI18nParams } from './i18n-common';
|
|
5
|
-
export function getI18nClassNameAsync(translate, classType, singular) {
|
|
6
|
-
const typeName = findReflectTypeName(classType);
|
|
7
|
-
return getI18nTypeNameAsync(translate, typeName ?? '', singular);
|
|
8
|
-
}
|
|
9
|
-
export function getI18nClassName(translate, classType, singular) {
|
|
10
|
-
const typeName = findReflectTypeName(classType);
|
|
11
|
-
return getI18nTypeName(translate, typeName ?? '', singular);
|
|
12
|
-
}
|
|
13
4
|
export function getI18nTypeNameAsync(translate, typeName, singular) {
|
|
14
5
|
const keys = getI18nTypeNameKeys(typeName, singular);
|
|
15
6
|
return getI18nAsync(translate, undefined, ...keys);
|
|
@@ -18,46 +9,22 @@ export function getI18nTypeName(translate, typeName, singular) {
|
|
|
18
9
|
const keys = getI18nTypeNameKeys(typeName, singular);
|
|
19
10
|
return getI18n(translate, undefined, ...keys);
|
|
20
11
|
}
|
|
21
|
-
export function getI18nClassTabKey(classType, tab) {
|
|
22
|
-
const typeName = findReflectTypeName(classType);
|
|
23
|
-
return getI18nTypeTabKey(typeName ?? '', tab);
|
|
24
|
-
}
|
|
25
12
|
export function getI18nTypeTabKey(typeName, tab) {
|
|
26
13
|
return getI18nTypeKeyBasePath(typeName, 'tabs', tab);
|
|
27
14
|
}
|
|
28
|
-
export function getI18nClassGroupKey(classType, group) {
|
|
29
|
-
const typeName = findReflectTypeName(classType);
|
|
30
|
-
return getI18nTypeGroupKey(typeName ?? '', group);
|
|
31
|
-
}
|
|
32
15
|
export function getI18nTypeGroupKey(typeName, group) {
|
|
33
16
|
return getI18nTypeKeyBasePath(typeName, 'groups', group);
|
|
34
17
|
}
|
|
35
|
-
export function getI18nClassPropertyKey(classType, property) {
|
|
36
|
-
const typeName = findReflectTypeName(classType);
|
|
37
|
-
return getI18nTypePropertyKey(typeName ?? '', property);
|
|
38
|
-
}
|
|
39
18
|
export function getI18nTypePropertyKey(typeName, property) {
|
|
40
19
|
return getI18nTypeKeyBasePath(typeName, 'properties', property);
|
|
41
20
|
}
|
|
42
|
-
export function getI18nClassKeyBasePath(classType, ...path) {
|
|
43
|
-
const typeName = findReflectTypeName(classType);
|
|
44
|
-
return getI18nTypeKeyBasePath(typeName ?? '', ...path);
|
|
45
|
-
}
|
|
46
21
|
export function getI18nTypeKeyBasePath(typeName, ...path) {
|
|
47
22
|
return `${typeName.length ? `${typeName}.` : ''}${path.join('.')}`;
|
|
48
23
|
}
|
|
49
|
-
export function getI18nClassParams(translate, classType, item, params = {}) {
|
|
50
|
-
const typeName = findReflectTypeName(classType);
|
|
51
|
-
return getI18nTypeParams(translate, typeName ?? undefined, item, params);
|
|
52
|
-
}
|
|
53
24
|
export function getI18nTypeParams(translate, typeName, item, params = {}) {
|
|
54
25
|
const i18nTypeName = typeName ? getI18nTypeName(translate, typeName, true) : null;
|
|
55
26
|
return populateI18nTypeParams(i18nTypeName ?? undefined, item, params);
|
|
56
27
|
}
|
|
57
|
-
export function getI18nClassParamsAsync(translate, classType, item, params = {}) {
|
|
58
|
-
const typeName = findReflectTypeName(classType);
|
|
59
|
-
return getI18nTypeParamsAsync(translate, typeName ?? undefined, item, params);
|
|
60
|
-
}
|
|
61
28
|
export function getI18nTypeParamsAsync(translate, typeName, item, params = {}) {
|
|
62
29
|
return (typeName ? getI18nTypeNameAsync(translate, typeName, true) : of(null)).pipe(map(i18nTypeName => populateI18nTypeParams(i18nTypeName ?? undefined, item, params)));
|
|
63
30
|
}
|
|
@@ -76,4 +43,4 @@ function getI18nTypeNameKeys(typeName, singular) {
|
|
|
76
43
|
keys.push(`${typeName.length ? `${typeName}.` : ''}name`);
|
|
77
44
|
return keys;
|
|
78
45
|
}
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9zcmMvaTE4bi9pMThuLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFhLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFeEUsTUFBTSxVQUFVLHFCQUFxQixDQUFDLFNBQTJCLEVBQUUsU0FBeUIsRUFBRSxRQUFrQjtJQUM1RyxNQUFNLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoRCxPQUFPLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxRQUFRLElBQUksRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3JFLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsU0FBMkIsRUFBRSxTQUF5QixFQUFFLFFBQWtCO0lBQ3ZHLE1BQU0sUUFBUSxHQUFHLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hELE9BQU8sZUFBZSxDQUFDLFNBQVMsRUFBRSxRQUFRLElBQUksRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsU0FBMkIsRUFBRSxRQUFnQixFQUFFLFFBQWtCO0lBQ2xHLE1BQU0sSUFBSSxHQUFHLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNyRCxPQUFPLFlBQVksQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsU0FBMkIsRUFB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LGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLGFBQWEsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMxRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtDbGFzc1R5cGV9IGZyb20gJy4uL21vZGVscy9jbGFzcy1zZXJ2aWNlLm1vZGVsJztcbmltcG9ydCB7ZmluZFJlZmxlY3RUeXBlTmFtZX0gZnJvbSAnLi4vcmVmbGVjdC90eXBlLWVudW0tbWV0YWRhdGEnO1xuaW1wb3J0IHtnZXRJMThuLCBnZXRJMThuQXN5bmMsIHBvcHVsYXRlSTE4blBhcmFtc30gZnJvbSAnLi9pMThuLWNvbW1vbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJMThuQ2xhc3NOYW1lQXN5bmModHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBjbGFzc1R5cGU6IENsYXNzVHlwZTxhbnk+LCBzaW5ndWxhcj86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bGw+IHtcbiAgICBjb25zdCB0eXBlTmFtZSA9IGZpbmRSZWZsZWN0VHlwZU5hbWUoY2xhc3NUeXBlKTtcbiAgICByZXR1cm4gZ2V0STE4blR5cGVOYW1lQXN5bmModHJhbnNsYXRlLCB0eXBlTmFtZSA/PyAnJywgc2luZ3VsYXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0STE4bkNsYXNzTmFtZSh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIGNsYXNzVHlwZTogQ2xhc3NUeXBlPGFueT4sIHNpbmd1bGFyPzogYm9vbGVhbik6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IHR5cGVOYW1lID0gZmluZFJlZmxlY3RUeXBlTmFtZShjbGFzc1R5cGUpO1xuICAgIHJldHVybiBnZXRJMThuVHlwZU5hbWUodHJhbnNsYXRlLCB0eXBlTmFtZSA/PyAnJywgc2luZ3VsYXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0STE4blR5cGVOYW1lQXN5bmModHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCB0eXBlTmFtZTogc3RyaW5nLCBzaW5ndWxhcj86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bGw+IHtcbiAgICBjb25zdCBrZXlzID0gZ2V0STE4blR5cGVOYW1lS2V5cyh0eXBlTmFtZSwgc2luZ3VsYXIpO1xuICAgIHJldHVybiBnZXRJMThuQXN5bmModHJhbnNsYXRlLCB1bmRlZmluZWQsIC4uLmtleXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0STE4blR5cGVOYW1lKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgdHlwZU5hbWU6IHN0cmluZywgc2luZ3VsYXI/OiBib29sZWFuKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3Qga2V5cyA9IGdldEkxOG5UeXBlTmFtZUtleXModHlwZU5hbWUsIHNpbmd1bGFyKTtcbiAgICByZXR1cm4gZ2V0STE4bih0cmFuc2xhdGUsIHVuZGVmaW5lZCwgLi4ua2V5cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJMThuQ2xhc3NUYWJLZXkoY2xhc3NUeXBlOiBDbGFzc1R5cGU8YW55PiwgdGFiOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHR5cGVOYW1lID0gZmluZFJlZmxlY3RUeXBlTmFtZShjbGFzc1R5cGUpO1xuICAgIHJldHVybiBnZXRJMThuVHlwZVRhYktleSh0eXBlTmFtZSA/PyAnJywgdGFiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEkxOG5UeXBlVGFiS2V5KHR5cGVOYW1lOiBzdHJpbmcsIHRhYjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZ2V0STE4blR5cGVLZXlCYXNlUGF0aCh0eXBlTmFtZSwgJ3RhYnMnLCB0YWIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0STE4bkNsYXNzR3JvdXBLZXkoY2xhc3NUeXBlOiBDbGFzc1R5cGU8YW55PiwgZ3JvdXA6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgdHlwZU5hbWUgPSBmaW5kUmVmbGVjdFR5cGVOYW1lKGNsYXNzVHlwZSk7XG4gICAgcmV0dXJuIGdldEkxOG5UeXBlR3JvdXBLZXkodHlwZU5hbWUgPz8gJycsIGdyb3VwKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEkxOG5UeXBlR3JvdXBLZXkodHlwZU5hbWU6IHN0cmluZywgZ3JvdXA6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGdldEkxOG5UeXBlS2V5QmFzZVBhdGgodHlwZU5hbWUsICdncm91cHMnLCBncm91cCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJMThuQ2xhc3NQcm9wZXJ0eUtleShjbGFzc1R5cGU6IENsYXNzVHlwZTxhbnk+LCBwcm9wZXJ0eTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0eXBlTmFtZSA9IGZpbmRSZWZsZWN0VHlwZU5hbWUoY2xhc3NUeXBlKTtcbiAgICByZXR1cm4gZ2V0STE4blR5cGVQcm9wZXJ0eUtleSh0eXBlTmFtZSA/PyAnJywgcHJvcGVydHkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0STE4blR5cGVQcm9wZXJ0eUtleSh0eXBlTmFtZTogc3RyaW5nLCBwcm9wZXJ0eTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZ2V0STE4blR5cGVLZXlCYXNlUGF0aCh0eXBlTmFtZSwgJ3Byb3BlcnRpZXMnLCBwcm9wZXJ0eSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJMThuQ2xhc3NLZXlCYXNlUGF0aChjbGFzc1R5cGU6IENsYXNzVHlwZTxhbnk+LCAuLi5wYXRoOiBBcnJheTxzdHJpbmc+KTogc3RyaW5nIHtcbiAgICBjb25zdCB0eXBlTmFtZSA9IGZpbmRSZWZsZWN0VHlwZU5hbWUoY2xhc3NUeXBlKTtcbiAgICByZXR1cm4gZ2V0STE4blR5cGVLZXlCYXNlUGF0aCh0eXBlTmFtZSA/PyAnJywgLi4ucGF0aCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJMThuVHlwZUtleUJhc2VQYXRoKHR5cGVOYW1lOiBzdHJpbmcsIC4uLnBhdGg6IEFycmF5PHN0cmluZz4pOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0eXBlTmFtZS5sZW5ndGggPyBgJHt0eXBlTmFtZX0uYCA6ICcnfSR7cGF0aC5qb2luKCcuJyl9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEkxOG5DbGFzc1BhcmFtcyh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIGNsYXNzVHlwZTogQ2xhc3NUeXBlPGFueT4sIGl0ZW06IGFueSwgcGFyYW1zOiBhbnkgPSB7fSk6IGFueSB7XG4gICAgY29uc3QgdHlwZU5hbWUgPSBmaW5kUmVmbGVjdFR5cGVOYW1lKGNsYXNzVHlwZSk7XG4gICAgcmV0dXJuIGdldEkxOG5UeXBlUGFyYW1zKHRyYW5zbGF0ZSwgdHlwZU5hbWUgPz8gdW5kZWZpbmVkLCBpdGVtLCBwYXJhbXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0STE4blR5cGVQYXJhbXModHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCB0eXBlTmFtZT86IHN0cmluZywgaXRlbT86IGFueSwgcGFyYW1zOiBhbnkgPSB7fSk6IGFueSB7XG4gICAgY29uc3QgaTE4blR5cGVOYW1lID0gdHlwZU5hbWUgPyBnZXRJMThuVHlwZU5hbWUodHJhbnNsYXRlLCB0eXBlTmFtZSwgdHJ1ZSkgOiBudWxsO1xuICAgIHJldHVybiBwb3B1bGF0ZUkxOG5UeXBlUGFyYW1zKGkxOG5UeXBlTmFtZSA/PyB1bmRlZmluZWQsIGl0ZW0sIHBhcmFtcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJMThuQ2xhc3NQYXJhbXNBc3luYyh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIGNsYXNzVHlwZTogQ2xhc3NUeXBlPGFueT4sIGl0ZW0/OiBhbnksIHBhcmFtczogYW55ID0ge30pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHR5cGVOYW1lID0gZmluZFJlZmxlY3RUeXBlTmFtZShjbGFzc1R5cGUpO1xuICAgIHJldHVybiBnZXRJMThuVHlwZVBhcmFtc0FzeW5jKHRyYW5zbGF0ZSwgdHlwZU5hbWUgPz8gdW5kZWZpbmVkLCBpdGVtLCBwYXJhbXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0STE4blR5cGVQYXJhbXNBc3luYyh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIHR5cGVOYW1lPzogc3RyaW5nLCBpdGVtPzogYW55LCBwYXJhbXM6IGFueSA9IHt9KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gKHR5cGVOYW1lID8gZ2V0STE4blR5cGVOYW1lQXN5bmModHJhbnNsYXRlLCB0eXBlTmFtZSwgdHJ1ZSkgOiBvZihudWxsKSkucGlwZShtYXAoaTE4blR5cGVOYW1lID0+IHBvcHVsYXRlSTE4blR5cGVQYXJhbXMoaTE4blR5cGVOYW1lID8/IHVuZGVmaW5lZCwgaXRlbSwgcGFyYW1zKSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcG9wdWxhdGVJMThuVHlwZVBhcmFtcyhpMThuVHlwZU5hbWU/OiBzdHJpbmcsIGl0ZW0/OiBhbnksIHBhcmFtczogYW55ID0ge30pOiBhbnkge1xuICAgIGNvbnN0IHBhcmFtc1JlcyA9IHsuLi5wYXJhbXN9O1xuICAgIGlmIChpMThuVHlwZU5hbWUpIHtcbiAgICAgICAgcGFyYW1zUmVzLnR5cGVOYW1lID0gaTE4blR5cGVOYW1lO1xuICAgIH1cbiAgICByZXR1cm4gcG9wdWxhdGVJMThuUGFyYW1zKGl0ZW0sIHBhcmFtc1Jlcyk7XG59XG5cbmZ1bmN0aW9uIGdldEkxOG5UeXBlTmFtZUtleXModHlwZU5hbWU6IHN0cmluZywgc2luZ3VsYXI/OiBib29sZWFuKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgY29uc3Qga2V5cyA9IFtdO1xuICAgIGlmICh0eXBlb2Ygc2luZ3VsYXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGtleXMucHVzaChzaW5ndWxhciA/IGAke3R5cGVOYW1lfS5uYW1lU2luZ3VsYXJgIDogYCR7dHlwZU5hbWV9Lm5hbWVQbHVyYWxgKTtcbiAgICB9XG4gICAga2V5cy5wdXNoKGAke3R5cGVOYW1lLmxlbmd0aCA/IGAke3R5cGVOYW1lfS5gIDogJyd9bmFtZWApO1xuICAgIHJldHVybiBrZXlzO1xufVxuIl19
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9zcmMvaTE4bi9pMThuLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFhLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsT0FBTyxFQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFeEUsTUFBTSxVQUFVLG9CQUFvQixDQUFDLFNBQTJCLEVBQUUsUUFBZ0IsRUFBRSxRQUFrQjtJQUNsRyxNQUFNLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDckQsT0FBTyxZQUFZLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQ3ZELENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLFNBQTJCLEVBQUUsUUFBZ0IsRUFBRSxRQUFrQjtJQUM3RixNQUFNLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDckQsT0FBTyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsUUFBZ0IsRUFBRSxHQUFXO0lBQzNELE9BQU8sc0JBQXNCLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztBQUN6RCxDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLFFBQWdCLEVBQUUsS0FBYTtJQUMvRCxPQUFPLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDN0QsQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxRQUFnQixFQUFFLFFBQWdCO0lBQ3JFLE9BQU8sc0JBQXNCLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNwRSxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLFFBQWdCLEVBQUUsR0FBRyxJQUFtQjtJQUMzRSxPQUFPLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztBQUN2RSxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLFNBQTJCLEVBQUUsUUFBaUIsRUFBRSxJQUFVLEVBQUUsU0FBYyxFQUFFO0lBQzFHLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNsRixPQUFPLHNCQUFzQixDQUFDLFlBQVksSUFBSSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzNFLENBQUM7QUFFRCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsU0FBMkIsRUFBRSxRQUFpQixFQUFFLElBQVUsRUFBRSxTQUFjLEVBQUU7SUFDL0csT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLHNCQUFzQixDQUFDLFlBQVksSUFBSSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5SyxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLFlBQXFCLEVBQUUsSUFBVSxFQUFFLFNBQWMsRUFBRTtJQUN0RixNQUFNLFNBQVMsR0FBRyxFQUFDLEdBQUcsTUFBTSxFQUFDLENBQUM7SUFDOUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNmLFNBQVMsQ0FBQyxRQUFRLEdBQUcsWUFBWSxDQUFDO0lBQ3RDLENBQUM7SUFDRCxPQUFPLGtCQUFrQixDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxRQUFnQixFQUFFLFFBQWtCO0lBQzdELE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNoQixJQUFJLE9BQU8sUUFBUSxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsZUFBZSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsYUFBYSxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUNELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzFELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge2dldEkxOG4sIGdldEkxOG5Bc3luYywgcG9wdWxhdGVJMThuUGFyYW1zfSBmcm9tICcuL2kxOG4tY29tbW9uJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEkxOG5UeXBlTmFtZUFzeW5jKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgdHlwZU5hbWU6IHN0cmluZywgc2luZ3VsYXI/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgY29uc3Qga2V5cyA9IGdldEkxOG5UeXBlTmFtZUtleXModHlwZU5hbWUsIHNpbmd1bGFyKTtcbiAgICByZXR1cm4gZ2V0STE4bkFzeW5jKHRyYW5zbGF0ZSwgdW5kZWZpbmVkLCAuLi5rZXlzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEkxOG5UeXBlTmFtZSh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIHR5cGVOYW1lOiBzdHJpbmcsIHNpbmd1bGFyPzogYm9vbGVhbik6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IGtleXMgPSBnZXRJMThuVHlwZU5hbWVLZXlzKHR5cGVOYW1lLCBzaW5ndWxhcik7XG4gICAgcmV0dXJuIGdldEkxOG4odHJhbnNsYXRlLCB1bmRlZmluZWQsIC4uLmtleXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0STE4blR5cGVUYWJLZXkodHlwZU5hbWU6IHN0cmluZywgdGFiOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBnZXRJMThuVHlwZUtleUJhc2VQYXRoKHR5cGVOYW1lLCAndGFicycsIHRhYik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJMThuVHlwZUdyb3VwS2V5KHR5cGVOYW1lOiBzdHJpbmcsIGdyb3VwOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBnZXRJMThuVHlwZUtleUJhc2VQYXRoKHR5cGVOYW1lLCAnZ3JvdXBzJywgZ3JvdXApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0STE4blR5cGVQcm9wZXJ0eUtleSh0eXBlTmFtZTogc3RyaW5nLCBwcm9wZXJ0eTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZ2V0STE4blR5cGVLZXlCYXNlUGF0aCh0eXBlTmFtZSwgJ3Byb3BlcnRpZXMnLCBwcm9wZXJ0eSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJMThuVHlwZUtleUJhc2VQYXRoKHR5cGVOYW1lOiBzdHJpbmcsIC4uLnBhdGg6IEFycmF5PHN0cmluZz4pOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0eXBlTmFtZS5sZW5ndGggPyBgJHt0eXBlTmFtZX0uYCA6ICcnfSR7cGF0aC5qb2luKCcuJyl9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEkxOG5UeXBlUGFyYW1zKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgdHlwZU5hbWU/OiBzdHJpbmcsIGl0ZW0/OiBhbnksIHBhcmFtczogYW55ID0ge30pOiBhbnkge1xuICAgIGNvbnN0IGkxOG5UeXBlTmFtZSA9IHR5cGVOYW1lID8gZ2V0STE4blR5cGVOYW1lKHRyYW5zbGF0ZSwgdHlwZU5hbWUsIHRydWUpIDogbnVsbDtcbiAgICByZXR1cm4gcG9wdWxhdGVJMThuVHlwZVBhcmFtcyhpMThuVHlwZU5hbWUgPz8gdW5kZWZpbmVkLCBpdGVtLCBwYXJhbXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0STE4blR5cGVQYXJhbXNBc3luYyh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIHR5cGVOYW1lPzogc3RyaW5nLCBpdGVtPzogYW55LCBwYXJhbXM6IGFueSA9IHt9KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gKHR5cGVOYW1lID8gZ2V0STE4blR5cGVOYW1lQXN5bmModHJhbnNsYXRlLCB0eXBlTmFtZSwgdHJ1ZSkgOiBvZihudWxsKSkucGlwZShtYXAoaTE4blR5cGVOYW1lID0+IHBvcHVsYXRlSTE4blR5cGVQYXJhbXMoaTE4blR5cGVOYW1lID8/IHVuZGVmaW5lZCwgaXRlbSwgcGFyYW1zKSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcG9wdWxhdGVJMThuVHlwZVBhcmFtcyhpMThuVHlwZU5hbWU/OiBzdHJpbmcsIGl0ZW0/OiBhbnksIHBhcmFtczogYW55ID0ge30pOiBhbnkge1xuICAgIGNvbnN0IHBhcmFtc1JlcyA9IHsuLi5wYXJhbXN9O1xuICAgIGlmIChpMThuVHlwZU5hbWUpIHtcbiAgICAgICAgcGFyYW1zUmVzLnR5cGVOYW1lID0gaTE4blR5cGVOYW1lO1xuICAgIH1cbiAgICByZXR1cm4gcG9wdWxhdGVJMThuUGFyYW1zKGl0ZW0sIHBhcmFtc1Jlcyk7XG59XG5cbmZ1bmN0aW9uIGdldEkxOG5UeXBlTmFtZUtleXModHlwZU5hbWU6IHN0cmluZywgc2luZ3VsYXI/OiBib29sZWFuKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgY29uc3Qga2V5cyA9IFtdO1xuICAgIGlmICh0eXBlb2Ygc2luZ3VsYXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGtleXMucHVzaChzaW5ndWxhciA/IGAke3R5cGVOYW1lfS5uYW1lU2luZ3VsYXJgIDogYCR7dHlwZU5hbWV9Lm5hbWVQbHVyYWxgKTtcbiAgICB9XG4gICAga2V5cy5wdXNoKGAke3R5cGVOYW1lLmxlbmd0aCA/IGAke3R5cGVOYW1lfS5gIDogJyd9bmFtZWApO1xuICAgIHJldHVybiBrZXlzO1xufVxuIl19
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { combineLatest, of, tap } from 'rxjs';
|
|
2
2
|
import { catchError, map } from 'rxjs/operators';
|
|
3
|
+
import { throwError } from '../error/error-helpers';
|
|
3
4
|
import { objectDeepMerge } from '../helpers/object';
|
|
4
5
|
export class CommonsConfigurationService {
|
|
5
6
|
static { this._instance = new CommonsConfigurationService(); }
|
|
@@ -133,6 +134,20 @@ export class CommonsConfigurationService {
|
|
|
133
134
|
getConfigValue(key) {
|
|
134
135
|
return this.configuration[key] ? this.configuration[key] : null;
|
|
135
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* Gets the configuration value for the given key. If the value is not found,
|
|
139
|
+
* it throws an error with a custom error message.
|
|
140
|
+
*
|
|
141
|
+
* @param {string} key - The configuration key.
|
|
142
|
+
* @param {string} [errorMessage] - Custom error message to be thrown if the value is not found.
|
|
143
|
+
*
|
|
144
|
+
* @returns {T} - The configuration value.
|
|
145
|
+
*
|
|
146
|
+
* @throws {CommonsInternalError} - If the value is not found or a custom error message is provided.
|
|
147
|
+
*/
|
|
148
|
+
getConfigValueOrThrow(key, errorMessage) {
|
|
149
|
+
return this.getConfigValue(key) ?? throwError(errorMessage ?? `Missing configuration value for '${key}'!`, { name: 'CommonsMissingConfigError' });
|
|
150
|
+
}
|
|
136
151
|
/**
|
|
137
152
|
* Has configuration for key.
|
|
138
153
|
* @param key Configuration key.
|
|
@@ -171,4 +186,4 @@ export class CommonsConfigurationService {
|
|
|
171
186
|
this.configuration = config;
|
|
172
187
|
}
|
|
173
188
|
}
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9ucy1jb25maWd1cmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3NyYy9zZXJ2aWNlcy9jb21tb25zLWNvbmZpZ3VyYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQWEsYUFBYSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFJbEQsTUFBTSxPQUFPLDJCQUEyQjthQUNyQixjQUFTLEdBQWdDLElBQUksMkJBQTJCLEVBQUUsQUFBakUsQ0FBa0U7SUFFbkYsTUFBTSxDQUFDLEdBQUc7UUFDYixPQUFPLDJCQUEyQixDQUFDLFNBQVMsQ0FBQztJQUNqRCxDQUFDO0lBWUQ7UUFMUSxnQkFBVyxHQUE4QixFQUFFLENBQUM7UUFDNUMsa0JBQWEsR0FBZSxFQUFFLENBQUM7UUFFL0Isa0JBQWEsR0FBRyxFQUFDLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFDLENBQUM7UUF1RXJEOztXQUVHO1FBQ0ssMkJBQXNCLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO1FBRWxHOzs7V0FHRztRQUNJLDJCQUFzQixHQUFHLEdBQXdCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBN0UzSCw0Q0FBNEM7SUFDaEQsQ0FBQztJQUVNLElBQUksQ0FBQyxVQUFzQixFQUFFLE1BQXVCO1FB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QyxNQUFNLEdBQUcsZUFBZSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztZQUNoRCxDQUFDO1FBQ0wsQ0FBQztRQUVELDRCQUE0QjtRQUM1QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksT0FBTyxNQUFNLENBQUMsYUFBYSxLQUFLLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2SixJQUFJLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNyQixLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNuQyxJQUFJLFVBQVUsRUFBRSxDQUFDO29CQUNiLE1BQU0sR0FBRyxlQUFlLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUNqRCxDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7UUFFRCx1Q0FBdUM7UUFDdkMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMxQixNQUFNLEdBQUcsZUFBZSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBRUQsMkNBQTJDO1FBQzNDLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLE1BQU0sR0FBRyxlQUFlLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7SUFDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBvZiwgdGFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Y2F0Y2hFcnJvciwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7b2JqZWN0RGVlcE1lcmdlfSBmcm9tICcuLi9oZWxwZXJzL29iamVjdCc7XG5pbXBvcnQge0lMb2dnZXJTZXJ2aWNlfSBmcm9tICcuLi9sb2cvbG9nLm1vZGVsJztcbmltcG9ydCB7Q29tbW9uc01vZHVsZUNvbmZpZ30gZnJvbSAnLi90b2tlbnMvbW9kdWxlLWNvbmZpZy50b2tlbic7XG5cbmV4cG9ydCBjbGFzcyBDb21tb25zQ29uZmlndXJhdGlvblNlcnZpY2Uge1xuICAgIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogQ29tbW9uc0NvbmZpZ3VyYXRpb25TZXJ2aWNlID0gbmV3IENvbW1vbnNDb25maWd1cmF0aW9uU2VydmljZSgpO1xuXG4gICAgcHVibGljIHN0YXRpYyBnZXQoKTogQ29tbW9uc0NvbmZpZ3VyYXRpb25TZXJ2aWNlIHtcbiAgICAgICAgcmV0dXJuIENvbW1vbnNDb25maWd1cmF0aW9uU2VydmljZS5faW5zdGFuY2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2dnZXI/OiBJTG9nZ2VyU2VydmljZTtcblxuICAgIHByaXZhdGUgaHR0cD86IEh0dHBDbGllbnQ7XG4gICAgcHJpdmF0ZSBtb2R1bGVDb25maWc/OiBDb21tb25zTW9kdWxlQ29uZmlnO1xuICAgIHByaXZhdGUgcHJvamVjdEVudmlyb25tZW50PzogYW55O1xuICAgIHByaXZhdGUganNvblNvdXJjZXM6IEFycmF5PEpzb25Tb3VyY2VMb2FkSW5mbz4gPSBbXTtcbiAgICBwcml2YXRlIG9iamVjdFNvdXJjZXM6IEFycmF5PGFueT4gPSBbXTtcblxuICAgIHByaXZhdGUgY29uZmlndXJhdGlvbiA9IHsuLi50aGlzLnByb2plY3RFbnZpcm9ubWVudH07XG5cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICAvLyBlbXB0eSwgYnV0IG5lZWRlZCBmb3IgcHJpdmF0ZSBjb25zdHJ1Y3RvclxuICAgIH1cblxuICAgIHB1YmxpYyBpbml0KGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsIGxvZ2dlcj86IElMb2dnZXJTZXJ2aWNlKTogdGhpcyB7XG4gICAgICAgIHRoaXMuaHR0cCA9IGh0dHBDbGllbnQ7XG4gICAgICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyPy5jcmVhdGUoJ0NvbmZpZ3VyYXRpb25TZXJ2aWNlJyk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCBjb21tb25zIG1vZHVsZSBjb25maWcuXG4gICAgICogQHBhcmFtIGNvbmZpZyBNb2R1bGUgY29uZmlnLlxuICAgICAqL1xuICAgIHB1YmxpYyBhZGRNb2R1bGVDb25maWdTb3VyY2UoY29uZmlnPzogQ29tbW9uc01vZHVsZUNvbmZpZyk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vZHVsZUNvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgdGhpcy5tZXJnZUNvbmZpZ3MoKTtcbiAgICAgICAgdGhpcy5sb2dnZXI/LmRlYnVnKGBNb2R1bGUgY29uZmlndXJhdGlvbiBzb3VyY2UgYWRkZWQuYCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHByb2plY3QgZW52aXJvbm1lbnQgc291cmNlLlxuICAgICAqIEBwYXJhbSBlbnZpcm9ubWVudCBFbnZpcm9ubWVudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkRW52aXJvbm1lbnRTb3VyY2UoZW52aXJvbm1lbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb2plY3RFbnZpcm9ubWVudCA9IGVudmlyb25tZW50O1xuICAgICAgICB0aGlzLm1lcmdlQ29uZmlncygpO1xuICAgICAgICB0aGlzLmxvZ2dlcj8uZGVidWcoYEVudmlyb25tZW50IGNvbmZpZ3VyYXRpb24gc291cmNlIGFkZGVkLmApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgbmV3IGNvbmZpZyBzb3VyY2UgZnJvbSBKU09OIGZpbGUgbG9hZGVkIGZyb20gSFRUUC5cbiAgICAgKiBAcGFyYW0gY29uZmlnIENvbmZpZyBmb3IgSlNPTiBmaWxlLlxuICAgICAqIEBwYXJhbSBsb2FkSW1tZWRpYXRlbHkgTG9hZCBpcyBieSBkZWZhdWx0IHRyaWdnZXJlZCBvbiBhcHAgaW5pdGlhbGl6YXRpb24uIElmIGltbWVkaWF0ZSBsb2FkIGlzIHJlcXVpcmVkLCBwYXNzIHRydWUuXG4gICAgICovXG4gICAgcHVibGljIGFkZEpzb25Tb3VyY2UoY29uZmlnOiB7dXJsPzogc3RyaW5nOyBlbmFibGVFbnZQcm9kPzogYm9vbGVhbn0gPSB7fSwgbG9hZEltbWVkaWF0ZWx5ID0gZmFsc2UpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgaWYgKCFjb25maWcpIHtcbiAgICAgICAgICAgIGNvbmZpZyA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHVybCA9IGNvbmZpZz8udXJsID8/ICdhc3NldHMvY29uZmlnL2Vudnt7ZW52aXJvbm1lbnR9fS5qc29uJztcbiAgICAgICAgY29uc3QgZW5hYmxlRW52UHJvZFJlcGxhY2UgPSBjb25maWc/LmVuYWJsZUVudlByb2QgPz8gZmFsc2U7XG5cbiAgICAgICAgY29uc3Qgc291cmNlSW5mbzogSnNvblNvdXJjZUxvYWRJbmZvID0ge1xuICAgICAgICAgICAgdXJsOiB1cmwsXG4gICAgICAgICAgICBpc0Vudmlyb25tZW50OiBmYWxzZSxcbiAgICAgICAgICAgIGVudmlyb25tZW50RW5hYmxlRW52UHJvZDogZW5hYmxlRW52UHJvZFJlcGxhY2UsXG4gICAgICAgICAgICBpc0xvYWRlZDogZmFsc2VcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5qc29uU291cmNlcy5wdXNoKHNvdXJjZUluZm8pO1xuXG4gICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZyhgSlNPTiBjb25maWd1cmF0aW9uIHNvdXJjZSBhZGRlZDogJHt1cmx9LmApO1xuXG4gICAgICAgIGlmIChsb2FkSW1tZWRpYXRlbHkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWRKc29uQ29uZmlndXJhdGlvbnMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgbmV3IGNvbmZpZyBvYmplY3QgZnJvbSBhbnkgb2JqZWN0LlxuICAgICAqIEBwYXJhbSBjb25maWcgQ29uZmlnIG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkT2JqZWN0U291cmNlKGNvbmZpZzogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub2JqZWN0U291cmNlcy5wdXNoKGNvbmZpZyk7XG4gICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZyhgT2JqZWN0IGNvbmZpZ3VyYXRpb24gc291cmNlIGFkZGVkLmApO1xuICAgICAgICB0aGlzLm1lcmdlQ29uZmlncygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgdHJ1ZSBpZiB0aGVyZSBpcyBubyBqc29uU291cmNlc1xuICAgICAqL1xuICAgIHByaXZhdGUgc2tpcEpzb25Db25maWdzTG9hZGluZyA9ICgpID0+IHRoaXMuanNvblNvdXJjZXMgPT09IG51bGwgfHwgdGhpcy5qc29uU291cmNlcy5sZW5ndGggPT09IDA7XG5cbiAgICAvKipcbiAgICAgKiBsb2FkcyBqc29uIHNvdXJjZXMgb3Igc2tpcHMgdGhlbSByZXR1cm5pbmcgdHJ1ZSBpbiBib3RoIGNhc2VzXG4gICAgICogdXNlZCBmb3IgYHNraXBKc29uU291cmNlSW5pdGAgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJcbiAgICAgKi9cbiAgICBwdWJsaWMgbG9hZEpzb25Db25maWd1cmF0aW9ucyA9ICgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0+ICh0aGlzLnNraXBKc29uQ29uZmlnc0xvYWRpbmcoKSA/IG9mKHRydWUpIDogdGhpcy5sb2FkSnNvblNvdXJjZXMoKSk7XG5cbiAgICBwcml2YXRlIGxvYWRKc29uU291cmNlcygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgaWYgKCF0aGlzLmh0dHApIHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyPy53YXJuKCdIVFRQIGNsaWVudCB3YXMgbm90IGluaXRpYWxpemVkLiBKc29uIHNvdXJjZSBjYW5ub3QgYmUgbG9hZGVkJyk7XG4gICAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaHR0cENsaWVudCA9IHRoaXMuaHR0cDtcblxuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChcbiAgICAgICAgICAgIHRoaXMuanNvblNvdXJjZXNcbiAgICAgICAgICAgICAgICAuZmlsdGVyKHNvdXJjZSA9PiAhc291cmNlLmlzTG9hZGVkKVxuICAgICAgICAgICAgICAgIC5tYXAoc291cmNlSW5mbyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCB1cmwgPSBzb3VyY2VJbmZvLnVybDtcbiAgICAgICAgICAgICAgICAgICAgc291cmNlSW5mby5lbnZpcm9ubWVudCA9IHRoaXMucHJvamVjdEVudmlyb25tZW50Py5uYW1lIHx8ICh0aGlzLnByb2plY3RFbnZpcm9ubWVudD8ucHJvZHVjdGlvbiA/IChzb3VyY2VJbmZvLmVudmlyb25tZW50RW5hYmxlRW52UHJvZCA/ICdwcm9kJyA6IG51bGwpIDogJ2RldicpO1xuICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmZvLmlzRW52aXJvbm1lbnQgPSAhIXNvdXJjZUluZm8uZW52aXJvbm1lbnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZUluZm8uaXNFbnZpcm9ubWVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UoJ3t7ZW52aXJvbm1lbnR9fScsICcuJyArIHNvdXJjZUluZm8uZW52aXJvbm1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVwbGFjZSBwb3NzaWJsZSBlbnZpcm9ubWVudCBlbnRyeSBhbmQgY2hhbmdlIHNvdXJjZSBpbmZvIHVybFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UoJ3t7ZW52aXJvbm1lbnR9fScsICcnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZm8udXJsID0gdXJsO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dnZXI/LmRlYnVnKGBMb2FkaW5nIEpTT04gY29uZmlndXJhdGlvbiBzb3VyY2UgZnJvbSAke3VybH0uYCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGh0dHBDbGllbnQuZ2V0PG9iamVjdD4odXJsKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VJbmZvLmlzRW52aXJvbm1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9FbnZVcmwgPSBzb3VyY2VJbmZvLnVybC5yZXBsYWNlKCd7e2Vudmlyb25tZW50fX0nLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZm8uZW52aXJvbm1lbnQgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaHR0cENsaWVudC5nZXQ8b2JqZWN0Pihub0VudlVybCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dnZXI/Lndhcm4oYENvbmZpZ3VyYXRpb24gZmlsZSAke3VybH0gbm90IGxvYWRlZGAsIGVycik7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcChjb25maWd1cmF0aW9uID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNvbmZpZ3VyYXRpb24gIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmZvLmNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZm8uaXNMb2FkZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICkucGlwZShcbiAgICAgICAgICAgIG1hcChzb3VyY2VSZXN1bHRzID0+IHNvdXJjZVJlc3VsdHMuZXZlcnkoc3IgPT4gc3IpKSxcbiAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLm1lcmdlQ29uZmlncygpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBjb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDb25maWcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGNvbmZpZ3VyYXRpb24gdmFsdWUgZm9yIGtleS5cbiAgICAgKiBAcGFyYW0ga2V5IENvbmZpZ3VyYXRpb24ga2V5LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDb25maWdWYWx1ZTxUID0gYW55PihrZXk6IHN0cmluZyk6IFQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbltrZXldID8gdGhpcy5jb25maWd1cmF0aW9uW2tleV0gOiBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhcyBjb25maWd1cmF0aW9uIGZvciBrZXkuXG4gICAgICogQHBhcmFtIGtleSBDb25maWd1cmF0aW9uIGtleS5cbiAgICAgKi9cbiAgICBwdWJsaWMgaGFzQ29uZmlnS2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmNvbmZpZ3VyYXRpb24pLnNvbWUoayA9PiBrID09PSBrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1lcmdlcyBjb25maWd1cmF0aW9uIGZyb20gbXVsdGlwbGUgc291cmNlcyB3aXRoXG4gICAgICovXG4gICAgcHJpdmF0ZSBtZXJnZUNvbmZpZ3MoKSB7XG4gICAgICAgIGxldCBjb25maWcgPSB7fTtcblxuICAgICAgICAvLyAxLiBvYmplY3Qgc291cmNlcyBoYXZlIGhpZ2hlc3QgcHJpb3JpdHlcbiAgICAgICAgaWYgKHRoaXMub2JqZWN0U291cmNlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qgb2JqQ29uZmlnIG9mIHRoaXMub2JqZWN0U291cmNlcykge1xuICAgICAgICAgICAgICAgIGNvbmZpZyA9IG9iamVjdERlZXBNZXJnZShjb25maWcsIG9iakNvbmZpZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyAyLiBKU09OIHNvdXJjZXMgY29tZSBuZXh0XG4gICAgICAgIGNvbnN0IGpzb25Db25maWdzID0gdGhpcy5qc29uU291cmNlcy5maWx0ZXIoc291cmNlID0+IHNvdXJjZS5pc0xvYWRlZCAmJiB0eXBlb2Ygc291cmNlLmNvbmZpZ3VyYXRpb24gPT09ICdvYmplY3QnKS5tYXAoc291cmNlID0+IHNvdXJjZS5jb25maWd1cmF0aW9uKTtcbiAgICAgICAgaWYgKGpzb25Db25maWdzLmxlbmd0aCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBqc29uQ29uZmlnIG9mIGpzb25Db25maWdzKSB7XG4gICAgICAgICAgICAgICAgaWYgKGpzb25Db25maWcpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnID0gb2JqZWN0RGVlcE1lcmdlKGNvbmZpZywganNvbkNvbmZpZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gMy4gcHJvamVjdCBlbnYgaGFzIHRoZSBuZXh0IHByaW9yaXR5XG4gICAgICAgIGlmICh0aGlzLnByb2plY3RFbnZpcm9ubWVudCkge1xuICAgICAgICAgICAgY29uZmlnID0gb2JqZWN0RGVlcE1lcmdlKGNvbmZpZywgdGhpcy5wcm9qZWN0RW52aXJvbm1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gNC4gbW9kdWxlIGNvbmZpZyBoYXMgdGhlIGxvd2VzdCBwcmlvcml0eVxuICAgICAgICBpZiAodGhpcy5tb2R1bGVDb25maWcpIHtcbiAgICAgICAgICAgIGNvbmZpZyA9IG9iamVjdERlZXBNZXJnZShjb25maWcsIHRoaXMubW9kdWxlQ29uZmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNvbmZpZztcbiAgICB9XG59XG5cbmludGVyZmFjZSBKc29uU291cmNlTG9hZEluZm8ge1xuICAgIHVybDogc3RyaW5nO1xuICAgIGlzTG9hZGVkOiBib29sZWFuO1xuICAgIGlzRW52aXJvbm1lbnQ6IGJvb2xlYW47XG4gICAgZW52aXJvbm1lbnQ/OiBzdHJpbmcgfCBudWxsO1xuICAgIGVudmlyb25tZW50RW5hYmxlRW52UHJvZD86IGJvb2xlYW47XG4gICAgY29uZmlndXJhdGlvbj86IG9iamVjdDtcbn1cbiJdfQ==
|
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9ucy1jb25maWd1cmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3NyYy9zZXJ2aWNlcy9jb21tb25zLWNvbmZpZ3VyYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQWEsYUFBYSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDbEQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBSWxELE1BQU0sT0FBTywyQkFBMkI7YUFDckIsY0FBUyxHQUFnQyxJQUFJLDJCQUEyQixFQUFFLEFBQWpFLENBQWtFO0lBRW5GLE1BQU0sQ0FBQyxHQUFHO1FBQ2IsT0FBTywyQkFBMkIsQ0FBQyxTQUFTLENBQUM7SUFDakQsQ0FBQztJQVlEO1FBTFEsZ0JBQVcsR0FBOEIsRUFBRSxDQUFDO1FBQzVDLGtCQUFhLEdBQWUsRUFBRSxDQUFDO1FBRS9CLGtCQUFhLEdBQUcsRUFBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBQyxDQUFDO1FBdUVyRDs7V0FFRztRQUNLLDJCQUFzQixHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztRQUVsRzs7O1dBR0c7UUFDSSwyQkFBc0IsR0FBRyxHQUF3QixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztRQTdFM0gsNENBQTRDO0lB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QyxZQUFZLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7SUFDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBvZiwgdGFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Y2F0Y2hFcnJvciwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7dGhyb3dFcnJvcn0gZnJvbSAnLi4vZXJyb3IvZXJyb3ItaGVscGVycyc7XG5pbXBvcnQge29iamVjdERlZXBNZXJnZX0gZnJvbSAnLi4vaGVscGVycy9vYmplY3QnO1xuaW1wb3J0IHtJTG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vbG9nL2xvZy5tb2RlbCc7XG5pbXBvcnQge0NvbW1vbnNNb2R1bGVDb25maWd9IGZyb20gJy4vdG9rZW5zL21vZHVsZS1jb25maWcudG9rZW4nO1xuXG5leHBvcnQgY2xhc3MgQ29tbW9uc0NvbmZpZ3VyYXRpb25TZXJ2aWNlIHtcbiAgICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IENvbW1vbnNDb25maWd1cmF0aW9uU2VydmljZSA9IG5ldyBDb21tb25zQ29uZmlndXJhdGlvblNlcnZpY2UoKTtcblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0KCk6IENvbW1vbnNDb25maWd1cmF0aW9uU2VydmljZSB7XG4gICAgICAgIHJldHVybiBDb21tb25zQ29uZmlndXJhdGlvblNlcnZpY2UuX2luc3RhbmNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9nZ2VyPzogSUxvZ2dlclNlcnZpY2U7XG5cbiAgICBwcml2YXRlIGh0dHA/OiBIdHRwQ2xpZW50O1xuICAgIHByaXZhdGUgbW9kdWxlQ29uZmlnPzogQ29tbW9uc01vZHVsZUNvbmZpZztcbiAgICBwcml2YXRlIHByb2plY3RFbnZpcm9ubWVudD86IGFueTtcbiAgICBwcml2YXRlIGpzb25Tb3VyY2VzOiBBcnJheTxKc29uU291cmNlTG9hZEluZm8+ID0gW107XG4gICAgcHJpdmF0ZSBvYmplY3RTb3VyY2VzOiBBcnJheTxhbnk+ID0gW107XG5cbiAgICBwcml2YXRlIGNvbmZpZ3VyYXRpb24gPSB7Li4udGhpcy5wcm9qZWN0RW52aXJvbm1lbnR9O1xuXG4gICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgLy8gZW1wdHksIGJ1dCBuZWVkZWQgZm9yIHByaXZhdGUgY29uc3RydWN0b3JcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdChodHRwQ2xpZW50OiBIdHRwQ2xpZW50LCBsb2dnZXI/OiBJTG9nZ2VyU2VydmljZSk6IHRoaXMge1xuICAgICAgICB0aGlzLmh0dHAgPSBodHRwQ2xpZW50O1xuICAgICAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlcj8uY3JlYXRlKCdDb25maWd1cmF0aW9uU2VydmljZScpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgY29tbW9ucyBtb2R1bGUgY29uZmlnLlxuICAgICAqIEBwYXJhbSBjb25maWcgTW9kdWxlIGNvbmZpZy5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkTW9kdWxlQ29uZmlnU291cmNlKGNvbmZpZz86IENvbW1vbnNNb2R1bGVDb25maWcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb2R1bGVDb25maWcgPSBjb25maWc7XG4gICAgICAgIHRoaXMubWVyZ2VDb25maWdzKCk7XG4gICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZyhgTW9kdWxlIGNvbmZpZ3VyYXRpb24gc291cmNlIGFkZGVkLmApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCBwcm9qZWN0IGVudmlyb25tZW50IHNvdXJjZS5cbiAgICAgKiBAcGFyYW0gZW52aXJvbm1lbnQgRW52aXJvbm1lbnQuXG4gICAgICovXG4gICAgcHVibGljIGFkZEVudmlyb25tZW50U291cmNlKGVudmlyb25tZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcm9qZWN0RW52aXJvbm1lbnQgPSBlbnZpcm9ubWVudDtcbiAgICAgICAgdGhpcy5tZXJnZUNvbmZpZ3MoKTtcbiAgICAgICAgdGhpcy5sb2dnZXI/LmRlYnVnKGBFbnZpcm9ubWVudCBjb25maWd1cmF0aW9uIHNvdXJjZSBhZGRlZC5gKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIG5ldyBjb25maWcgc291cmNlIGZyb20gSlNPTiBmaWxlIGxvYWRlZCBmcm9tIEhUVFAuXG4gICAgICogQHBhcmFtIGNvbmZpZyBDb25maWcgZm9yIEpTT04gZmlsZS5cbiAgICAgKiBAcGFyYW0gbG9hZEltbWVkaWF0ZWx5IExvYWQgaXMgYnkgZGVmYXVsdCB0cmlnZ2VyZWQgb24gYXBwIGluaXRpYWxpemF0aW9uLiBJZiBpbW1lZGlhdGUgbG9hZCBpcyByZXF1aXJlZCwgcGFzcyB0cnVlLlxuICAgICAqL1xuICAgIHB1YmxpYyBhZGRKc29uU291cmNlKGNvbmZpZzoge3VybD86IHN0cmluZzsgZW5hYmxlRW52UHJvZD86IGJvb2xlYW59ID0ge30sIGxvYWRJbW1lZGlhdGVseSA9IGZhbHNlKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIGlmICghY29uZmlnKSB7XG4gICAgICAgICAgICBjb25maWcgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB1cmwgPSBjb25maWc/LnVybCA/PyAnYXNzZXRzL2NvbmZpZy9lbnZ7e2Vudmlyb25tZW50fX0uanNvbic7XG4gICAgICAgIGNvbnN0IGVuYWJsZUVudlByb2RSZXBsYWNlID0gY29uZmlnPy5lbmFibGVFbnZQcm9kID8/IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IHNvdXJjZUluZm86IEpzb25Tb3VyY2VMb2FkSW5mbyA9IHtcbiAgICAgICAgICAgIHVybDogdXJsLFxuICAgICAgICAgICAgaXNFbnZpcm9ubWVudDogZmFsc2UsXG4gICAgICAgICAgICBlbnZpcm9ubWVudEVuYWJsZUVudlByb2Q6IGVuYWJsZUVudlByb2RSZXBsYWNlLFxuICAgICAgICAgICAgaXNMb2FkZWQ6IGZhbHNlXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuanNvblNvdXJjZXMucHVzaChzb3VyY2VJbmZvKTtcblxuICAgICAgICB0aGlzLmxvZ2dlcj8uZGVidWcoYEpTT04gY29uZmlndXJhdGlvbiBzb3VyY2UgYWRkZWQ6ICR7dXJsfS5gKTtcblxuICAgICAgICBpZiAobG9hZEltbWVkaWF0ZWx5KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2FkSnNvbkNvbmZpZ3VyYXRpb25zKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIG5ldyBjb25maWcgb2JqZWN0IGZyb20gYW55IG9iamVjdC5cbiAgICAgKiBAcGFyYW0gY29uZmlnIENvbmZpZyBvYmplY3QuXG4gICAgICovXG4gICAgcHVibGljIGFkZE9iamVjdFNvdXJjZShjb25maWc6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9iamVjdFNvdXJjZXMucHVzaChjb25maWcpO1xuICAgICAgICB0aGlzLmxvZ2dlcj8uZGVidWcoYE9iamVjdCBjb25maWd1cmF0aW9uIHNvdXJjZSBhZGRlZC5gKTtcbiAgICAgICAgdGhpcy5tZXJnZUNvbmZpZ3MoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZXR1cm5zIHRydWUgaWYgdGhlcmUgaXMgbm8ganNvblNvdXJjZXNcbiAgICAgKi9cbiAgICBwcml2YXRlIHNraXBKc29uQ29uZmlnc0xvYWRpbmcgPSAoKSA9PiB0aGlzLmpzb25Tb3VyY2VzID09PSBudWxsIHx8IHRoaXMuanNvblNvdXJjZXMubGVuZ3RoID09PSAwO1xuXG4gICAgLyoqXG4gICAgICogbG9hZHMganNvbiBzb3VyY2VzIG9yIHNraXBzIHRoZW0gcmV0dXJuaW5nIHRydWUgaW4gYm90aCBjYXNlc1xuICAgICAqIHVzZWQgZm9yIGBza2lwSnNvblNvdXJjZUluaXRgIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyXG4gICAgICovXG4gICAgcHVibGljIGxvYWRKc29uQ29uZmlndXJhdGlvbnMgPSAoKTogT2JzZXJ2YWJsZTxib29sZWFuPiA9PiAodGhpcy5za2lwSnNvbkNvbmZpZ3NMb2FkaW5nKCkgPyBvZih0cnVlKSA6IHRoaXMubG9hZEpzb25Tb3VyY2VzKCkpO1xuXG4gICAgcHJpdmF0ZSBsb2FkSnNvblNvdXJjZXMoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIGlmICghdGhpcy5odHRwKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlcj8ud2FybignSFRUUCBjbGllbnQgd2FzIG5vdCBpbml0aWFsaXplZC4gSnNvbiBzb3VyY2UgY2Fubm90IGJlIGxvYWRlZCcpO1xuICAgICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGh0dHBDbGllbnQgPSB0aGlzLmh0dHA7XG5cbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoXG4gICAgICAgICAgICB0aGlzLmpzb25Tb3VyY2VzXG4gICAgICAgICAgICAgICAgLmZpbHRlcihzb3VyY2UgPT4gIXNvdXJjZS5pc0xvYWRlZClcbiAgICAgICAgICAgICAgICAubWFwKHNvdXJjZUluZm8gPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgdXJsID0gc291cmNlSW5mby51cmw7XG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZm8uZW52aXJvbm1lbnQgPSB0aGlzLnByb2plY3RFbnZpcm9ubWVudD8ubmFtZSB8fCAodGhpcy5wcm9qZWN0RW52aXJvbm1lbnQ/LnByb2R1Y3Rpb24gPyAoc291cmNlSW5mby5lbnZpcm9ubWVudEVuYWJsZUVudlByb2QgPyAncHJvZCcgOiBudWxsKSA6ICdkZXYnKTtcbiAgICAgICAgICAgICAgICAgICAgc291cmNlSW5mby5pc0Vudmlyb25tZW50ID0gISFzb3VyY2VJbmZvLmVudmlyb25tZW50O1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VJbmZvLmlzRW52aXJvbm1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9IHVybC5yZXBsYWNlKCd7e2Vudmlyb25tZW50fX0nLCAnLicgKyBzb3VyY2VJbmZvLmVudmlyb25tZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlcGxhY2UgcG9zc2libGUgZW52aXJvbm1lbnQgZW50cnkgYW5kIGNoYW5nZSBzb3VyY2UgaW5mbyB1cmxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9IHVybC5yZXBsYWNlKCd7e2Vudmlyb25tZW50fX0nLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmZvLnVybCA9IHVybDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZyhgTG9hZGluZyBKU09OIGNvbmZpZ3VyYXRpb24gc291cmNlIGZyb20gJHt1cmx9LmApO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBodHRwQ2xpZW50LmdldDxvYmplY3Q+KHVybCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlSW5mby5pc0Vudmlyb25tZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vRW52VXJsID0gc291cmNlSW5mby51cmwucmVwbGFjZSgne3tlbnZpcm9ubWVudH19JywgJycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmZvLmVudmlyb25tZW50ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGh0dHBDbGllbnQuZ2V0PG9iamVjdD4obm9FbnZVcmwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyPy53YXJuKGBDb25maWd1cmF0aW9uIGZpbGUgJHt1cmx9IG5vdCBsb2FkZWRgLCBlcnIpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXAoY29uZmlndXJhdGlvbiA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb25maWd1cmF0aW9uICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlSW5mby5jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmZvLmlzTG9hZGVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICBtYXAoc291cmNlUmVzdWx0cyA9PiBzb3VyY2VSZXN1bHRzLmV2ZXJ5KHNyID0+IHNyKSksXG4gICAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5tZXJnZUNvbmZpZ3MoKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgY29uZmlndXJhdGlvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q29uZmlnKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBjb25maWd1cmF0aW9uIHZhbHVlIGZvciBrZXkuXG4gICAgICogQHBhcmFtIGtleSBDb25maWd1cmF0aW9uIGtleS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q29uZmlnVmFsdWU8VCA9IGFueT4oa2V5OiBzdHJpbmcpOiBUIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb25ba2V5XSA/IHRoaXMuY29uZmlndXJhdGlvbltrZXldIDogbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBjb25maWd1cmF0aW9uIHZhbHVlIGZvciB0aGUgZ2l2ZW4ga2V5LiBJZiB0aGUgdmFsdWUgaXMgbm90IGZvdW5kLFxuICAgICAqIGl0IHRocm93cyBhbiBlcnJvciB3aXRoIGEgY3VzdG9tIGVycm9yIG1lc3NhZ2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIGNvbmZpZ3VyYXRpb24ga2V5LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbZXJyb3JNZXNzYWdlXSAtIEN1c3RvbSBlcnJvciBtZXNzYWdlIHRvIGJlIHRocm93biBpZiB0aGUgdmFsdWUgaXMgbm90IGZvdW5kLlxuICAgICAqXG4gICAgICogQHJldHVybnMge1R9IC0gVGhlIGNvbmZpZ3VyYXRpb24gdmFsdWUuXG4gICAgICpcbiAgICAgKiBAdGhyb3dzIHtDb21tb25zSW50ZXJuYWxFcnJvcn0gLSBJZiB0aGUgdmFsdWUgaXMgbm90IGZvdW5kIG9yIGEgY3VzdG9tIGVycm9yIG1lc3NhZ2UgaXMgcHJvdmlkZWQuXG4gICAgICovXG4gICAgcHVibGljIGdldENvbmZpZ1ZhbHVlT3JUaHJvdzxUID0gYW55PihrZXk6IHN0cmluZywgZXJyb3JNZXNzYWdlPzogc3RyaW5nKTogVCB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENvbmZpZ1ZhbHVlKGtleSkgPz8gdGhyb3dFcnJvcihlcnJvck1lc3NhZ2UgPz8gYE1pc3NpbmcgY29uZmlndXJhdGlvbiB2YWx1ZSBmb3IgJyR7a2V5fSchYCwge25hbWU6ICdDb21tb25zTWlzc2luZ0NvbmZpZ0Vycm9yJ30pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhcyBjb25maWd1cmF0aW9uIGZvciBrZXkuXG4gICAgICogQHBhcmFtIGtleSBDb25maWd1cmF0aW9uIGtleS5cbiAgICAgKi9cbiAgICBwdWJsaWMgaGFzQ29uZmlnS2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmNvbmZpZ3VyYXRpb24pLnNvbWUoayA9PiBrID09PSBrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1lcmdlcyBjb25maWd1cmF0aW9uIGZyb20gbXVsdGlwbGUgc291cmNlcyB3aXRoXG4gICAgICovXG4gICAgcHJpdmF0ZSBtZXJnZUNvbmZpZ3MoKSB7XG4gICAgICAgIGxldCBjb25maWcgPSB7fTtcblxuICAgICAgICAvLyAxLiBvYmplY3Qgc291cmNlcyBoYXZlIGhpZ2hlc3QgcHJpb3JpdHlcbiAgICAgICAgaWYgKHRoaXMub2JqZWN0U291cmNlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qgb2JqQ29uZmlnIG9mIHRoaXMub2JqZWN0U291cmNlcykge1xuICAgICAgICAgICAgICAgIGNvbmZpZyA9IG9iamVjdERlZXBNZXJnZShjb25maWcsIG9iakNvbmZpZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyAyLiBKU09OIHNvdXJjZXMgY29tZSBuZXh0XG4gICAgICAgIGNvbnN0IGpzb25Db25maWdzID0gdGhpcy5qc29uU291cmNlcy5maWx0ZXIoc291cmNlID0+IHNvdXJjZS5pc0xvYWRlZCAmJiB0eXBlb2Ygc291cmNlLmNvbmZpZ3VyYXRpb24gPT09ICdvYmplY3QnKS5tYXAoc291cmNlID0+IHNvdXJjZS5jb25maWd1cmF0aW9uKTtcbiAgICAgICAgaWYgKGpzb25Db25maWdzLmxlbmd0aCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBqc29uQ29uZmlnIG9mIGpzb25Db25maWdzKSB7XG4gICAgICAgICAgICAgICAgaWYgKGpzb25Db25maWcpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnID0gb2JqZWN0RGVlcE1lcmdlKGNvbmZpZywganNvbkNvbmZpZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gMy4gcHJvamVjdCBlbnYgaGFzIHRoZSBuZXh0IHByaW9yaXR5XG4gICAgICAgIGlmICh0aGlzLnByb2plY3RFbnZpcm9ubWVudCkge1xuICAgICAgICAgICAgY29uZmlnID0gb2JqZWN0RGVlcE1lcmdlKGNvbmZpZywgdGhpcy5wcm9qZWN0RW52aXJvbm1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gNC4gbW9kdWxlIGNvbmZpZyBoYXMgdGhlIGxvd2VzdCBwcmlvcml0eVxuICAgICAgICBpZiAodGhpcy5tb2R1bGVDb25maWcpIHtcbiAgICAgICAgICAgIGNvbmZpZyA9IG9iamVjdERlZXBNZXJnZShjb25maWcsIHRoaXMubW9kdWxlQ29uZmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNvbmZpZztcbiAgICB9XG59XG5cbmludGVyZmFjZSBKc29uU291cmNlTG9hZEluZm8ge1xuICAgIHVybDogc3RyaW5nO1xuICAgIGlzTG9hZGVkOiBib29sZWFuO1xuICAgIGlzRW52aXJvbm1lbnQ6IGJvb2xlYW47XG4gICAgZW52aXJvbm1lbnQ/OiBzdHJpbmcgfCBudWxsO1xuICAgIGVudmlyb25tZW50RW5hYmxlRW52UHJvZD86IGJvb2xlYW47XG4gICAgY29uZmlndXJhdGlvbj86IG9iamVjdDtcbn1cbiJdfQ==
|
|
@@ -88,4 +88,4 @@ export function model(typeOrClassOrOpts, opts) {
|
|
|
88
88
|
return new ModelDescriptor(undefined, typeOrClassAsOpts?.id, typeOrClassAsOpts?.title, typeOrClassAsOpts?.i18nBase);
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL21vZGVsL3NyYy9kZXNjcmlwdG9ycy9tb2RlbC5kZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBMEIsb0JBQW9CLEVBQW9CLG1CQUFtQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFakksT0FBTyxFQUFDLG9CQUFvQixFQUFFLHVCQUF1QixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0UsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRWpELE1BQU0sT0FBTyxlQUFlO0lBT3hCLFlBQW1CLElBQWdCLEVBQUUsVUFBbUIsRUFBRSxhQUFzQixFQUFFLFdBQXFDO1FBQ25ILElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsbUJBQW1CLENBQUMsSUFBd0IsQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUM1RSxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztRQUM5QixJQUFJLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQztRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLG9CQUFvQixDQUFDLElBQW1DLENBQUMsSUFBSSxTQUFTLENBQUM7UUFDOUYsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxjQUFjLEdBQUcsdUJBQXVCLENBQUMsSUFBbUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUNwRyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLE9BQU8sV0FBVyxLQUFLLFFBQVEsSUFBSSxPQUFPLFdBQVcsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FB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QUFJLE9BQU8saUJBQWlCLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDakQsT0FBTyxJQUFJLGVBQWUsQ0FBMEIsaUJBQXFDLEVBQUUsSUFBSSxFQUFFLEVBQVksRUFBRSxJQUFJLEVBQUUsS0FBZSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxSixDQUFDO1NBQU0sQ0FBQztRQUNKLE1BQU0saUJBQWlCLEdBQUcsaUJBQXFELENBQUM7UUFDaEYsT0FBTyxJQUFJLGVBQWUsQ0FBbUIsU0FBUyxFQUFFLGlCQUFpQixFQUFFLEVBQVksRUFBRSxpQkFBaUIsRUFBRSxLQUFlLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDOUosQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NsYXNzT3B0VHlwZSwgQ2xhc3NUeXBlLCBDb21tb25zSW50ZXJuYWxFcnJvciwgSU1vZGVsRGVzY3JpcHRvciwgZmluZFJlZmxlY3RUeXBlTmFtZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcblxuaW1wb3J0IHtmaW5kQ2xhc3NJZEF0dHJpYnV0ZSwgZmluZENsYXNzVGl0bGVBdHRyaWJ1dGV9IGZyb20gJy4uL2hlbHBlcnMvbW9kZWwnO1xuaW1wb3J0IHtUeXBlRGVzY3JpcHRvcn0gZnJvbSAnLi90eXBlLmRlc2NyaXB0b3InO1xuXG5leHBvcnQgY2xhc3MgTW9kZWxEZXNjcmlwdG9yPE1vZGVsLCBNb2RlbENsYXNzID0gQ2xhc3NPcHRUeXBlPE1vZGVsPj4gaW1wbGVtZW50cyBJTW9kZWxEZXNjcmlwdG9yPE1vZGVsLCBNb2RlbENsYXNzPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfdHlwZTogTW9kZWxDbGFzcztcbiAgICBwcml2YXRlIHJlYWRvbmx5IF90eXBlTmFtZT86IHN0cmluZztcbiAgICBwcml2YXRlIF9pMThuQmFzZUtleTogc3RyaW5nO1xuICAgIHByaXZhdGUgX2lkUHJvcGVydHk/OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfdGl0bGVQcm9wZXJ0eT86IHN0cmluZztcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcih0eXBlOiBNb2RlbENsYXNzLCBpZFByb3BlcnR5Pzogc3RyaW5nLCB0aXRsZVByb3BlcnR5Pzogc3RyaW5nLCBpMThuQmFzZUtleT86IHN0cmluZyB8IENsYXNzVHlwZTxhbnk+KSB7XG4gICAgICAgIHRoaXMuX3R5cGUgPSB0eXBlO1xuICAgICAgICB0aGlzLl90eXBlTmFtZSA9IGZpbmRSZWZsZWN0VHlwZU5hbWUodHlwZSBhcyBDbGFzc1R5cGU8TW9kZWw+KSA/PyB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX2lkUHJvcGVydHkgPSBpZFByb3BlcnR5O1xuICAgICAgICB0aGlzLl90aXRsZVByb3BlcnR5ID0gdGl0bGVQcm9wZXJ0eTtcbiAgICAgICAgaWYgKCF0aGlzLl9pZFByb3BlcnR5ICYmIHR5cGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2lkUHJvcGVydHkgPSBmaW5kQ2xhc3NJZEF0dHJpYnV0ZSh0eXBlIGFzIHVua25vd24gYXMgQ2xhc3NUeXBlPE1vZGVsPikgPz8gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5fdGl0bGVQcm9wZXJ0eSAmJiB0eXBlKSB7XG4gICAgICAgICAgICB0aGlzLl90aXRsZVByb3BlcnR5ID0gZmluZENsYXNzVGl0bGVBdHRyaWJ1dGUodHlwZSBhcyB1bmtub3duIGFzIENsYXNzVHlwZTxNb2RlbD4pID8/IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pMThuQmFzZUtleSA9ICh0eXBlb2YgaTE4bkJhc2VLZXkgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBpMThuQmFzZUtleSA9PT0gJ3VuZGVmaW5lZCcgPyBpMThuQmFzZUtleSA6IGZpbmRSZWZsZWN0VHlwZU5hbWUoaTE4bkJhc2VLZXkpKSA/PyB0aGlzLl90eXBlTmFtZSA/PyAnJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBVc2Ugc3RhbmRhbG9uZSB7bW9kZWwoKX0gaW5zdGVhZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZTxNb2RlbD4oaWRQcm9wZXJ0eT86IGtleW9mIE1vZGVsLCB0aXRsZVByb3BlcnR5Pzoga2V5b2YgTW9kZWwsIGkxOG5CYXNlS2V5Pzogc3RyaW5nIHwgQ2xhc3NUeXBlPHVua25vd24+KTogTW9kZWxEZXNjcmlwdG9yPE1vZGVsLCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbERlc2NyaXB0b3IodW5kZWZpbmVkLCBpZFByb3BlcnR5IGFzIHN0cmluZywgdGl0bGVQcm9wZXJ0eSBhcyBzdHJpbmcsIGkxOG5CYXNlS2V5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBVc2Ugc3RhbmRhbG9uZSB7bW9kZWwoKX0gaW5zdGVhZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGZyb21DbGFzczxNb2RlbD4oXG4gICAgICAgIHR5cGU6IENsYXNzVHlwZTxNb2RlbD4sXG4gICAgICAgIGlkUHJvcGVydHk/OiBrZXlvZiBNb2RlbCxcbiAgICAgICAgdGl0bGVQcm9wZXJ0eT86IGtleW9mIE1vZGVsLFxuICAgICAgICBpMThuQmFzZUtleT86IHN0cmluZyB8IENsYXNzVHlwZTx1bmtub3duPlxuICAgICk6IE1vZGVsRGVzY3JpcHRvcjxNb2RlbCwgQ2xhc3NUeXBlPE1vZGVsPj4ge1xuICAgICAgICByZXR1cm4gbmV3IE1vZGVsRGVzY3JpcHRvcih0eXBlLCBpZFByb3BlcnR5IGFzIHN0cmluZywgdGl0bGVQcm9wZXJ0eSBhcyBzdHJpbmcsIGkxOG5CYXNlS2V5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHR5cGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90eXBlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdHlwZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90eXBlTmFtZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGkxOG5CYXNlS2V5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faTE4bkJhc2VLZXk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpZFByb3BlcnR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faWRQcm9wZXJ0eTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRpdGxlUHJvcGVydHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90aXRsZVByb3BlcnR5O1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoSWRQcm9wZXJ0eShwcm9wZXJ0eToga2V5b2YgTW9kZWwpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faWRQcm9wZXJ0eSA9IHByb3BlcnR5IGFzIHN0cmluZztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhJZFByb3BlcnR5VW5zYWZlKHByb3BlcnR5OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faWRQcm9wZXJ0eSA9IHByb3BlcnR5O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFRpdGxlUHJvcGVydHkocHJvcGVydHk6IGtleW9mIE1vZGVsKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3RpdGxlUHJvcGVydHkgPSBwcm9wZXJ0eSBhcyBzdHJpbmc7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoVGl0bGVQcm9wZXJ0eVVuc2FmZShwcm9wZXJ0eTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3RpdGxlUHJvcGVydHkgPSBwcm9wZXJ0eTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhJMThuQmFzZShiYXNlOiBDbGFzc1R5cGU8YW55PiB8IHN0cmluZyk6IHRoaXMge1xuICAgICAgICBpZiAodHlwZW9mIGJhc2UgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBjb25zdCB0eXBlTmFtZSA9IGZpbmRSZWZsZWN0VHlwZU5hbWUoYmFzZSk7XG4gICAgICAgICAgICBpZiAoIXR5cGVOYW1lKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKGBDb3VsZCBub3QgZmluZCBkZWZpbmUgaTE4bkJhc2VLZXkgZm9yICR7YmFzZX0gb24gbW9kZWwgJHt0aGlzLnR5cGVOYW1lfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYmFzZSA9IHR5cGVOYW1lO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2kxOG5CYXNlS2V5ID0gYmFzZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGNvcHkoKTogTW9kZWxEZXNjcmlwdG9yPE1vZGVsLCBNb2RlbENsYXNzPiB7XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxEZXNjcmlwdG9yPE1vZGVsLCBNb2RlbENsYXNzPih0aGlzLl90eXBlLCB0aGlzLl9pZFByb3BlcnR5LCB0aGlzLl90aXRsZVByb3BlcnR5LCB0aGlzLl9pMThuQmFzZUtleSk7XG4gICAgfVxufVxuXG5leHBvcnQgdHlwZSBNb2RlbERlc2NyaXB0b3JDcmVhdGVPcHRzPE1vZGVsPiA9IHtcbiAgICBpZD86IGtleW9mIE1vZGVsO1xuICAgIHRpdGxlPzoga2V5b2YgTW9kZWw7XG4gICAgaTE4bkJhc2U/OiBzdHJpbmcgfCBDbGFzc1R5cGU8YW55Pjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2RlbDxNb2RlbD4oKTogTW9kZWxEZXNjcmlwdG9yPE1vZGVsLCB1bmRlZmluZWQ+O1xuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsPE1vZGVsPihvcHRzOiBNb2RlbERlc2NyaXB0b3JDcmVhdGVPcHRzPE1vZGVsPik6IE1vZGVsRGVzY3JpcHRvcjxNb2RlbCwgdW5kZWZpbmVkPjtcbmV4cG9ydCBmdW5jdGlvbiBtb2RlbDxNb2RlbD4odHlwZTogVHlwZURlc2NyaXB0b3I8TW9kZWw+LCBvcHRzPzogTW9kZWxEZXNjcmlwdG9yQ3JlYXRlT3B0czxNb2RlbD4pOiBNb2RlbERlc2NyaXB0b3I8TW9kZWwsIHVuZGVmaW5lZD47XG5leHBvcnQgZnVuY3Rpb24gbW9kZWw8TW9kZWw+KGNsYXp6OiBDbGFzc1R5cGU8TW9kZWw+LCBvcHRzPzogTW9kZWxEZXNjcmlwdG9yQ3JlYXRlT3B0czxNb2RlbD4pOiBNb2RlbERlc2NyaXB0b3I8TW9kZWwsIENsYXNzVHlwZTxNb2RlbD4+O1xuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsPE1vZGVsPih0eXBlT3JDbGFzc09yT3B0cz86IENsYXNzVHlwZTxNb2RlbD4gfCBUeXBlRGVzY3JpcHRvcjxNb2RlbD4gfCBNb2RlbERlc2NyaXB0b3JDcmVhdGVPcHRzPE1vZGVsPiwgb3B0cz86IE1vZGVsRGVzY3JpcHRvckNyZWF0ZU9wdHM8TW9kZWw+KSB7XG4gICAgaWYgKHR5cGVPckNsYXNzT3JPcHRzID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbERlc2NyaXB0b3I8TW9kZWwsIHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVPckNsYXNzT3JPcHRzIGluc3RhbmNlb2YgVHlwZURlc2NyaXB0b3IpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbERlc2NyaXB0b3I8TW9kZWwsIHVuZGVmaW5lZD4odW5kZWZpbmVkLCBvcHRzPy5pZCBhcyBzdHJpbmcsIG9wdHM/LnRpdGxlIGFzIHN0cmluZywgb3B0cz8uaTE4bkJhc2UpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHR5cGVPckNsYXNzT3JPcHRzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxEZXNjcmlwdG9yPE1vZGVsLCBDbGFzc1R5cGU8TW9kZWw+Pih0eXBlT3JDbGFzc09yT3B0cyBhcyBDbGFzc1R5cGU8TW9kZWw+LCBvcHRzPy5pZCBhcyBzdHJpbmcsIG9wdHM/LnRpdGxlIGFzIHN0cmluZywgb3B0cz8uaTE4bkJhc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHR5cGVPckNsYXNzQXNPcHRzID0gdHlwZU9yQ2xhc3NPck9wdHMgYXMgTW9kZWxEZXNjcmlwdG9yQ3JlYXRlT3B0czxNb2RlbD47XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxEZXNjcmlwdG9yPE1vZGVsLCB1bmRlZmluZWQ+KHVuZGVmaW5lZCwgdHlwZU9yQ2xhc3NBc09wdHM/LmlkIGFzIHN0cmluZywgdHlwZU9yQ2xhc3NBc09wdHM/LnRpdGxlIGFzIHN0cmluZywgdHlwZU9yQ2xhc3NBc09wdHM/LmkxOG5CYXNlKTtcbiAgICB9XG59XG4iXX0=
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL21vZGVsL3NyYy9kZXNjcmlwdG9ycy9tb2RlbC5kZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBMEIsb0JBQW9CLEVBQW9CLG1CQUFtQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFakksT0FBTyxFQUFDLG9CQUFvQixFQUFFLHVCQUF1QixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0UsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRWpELE1BQU0sT0FBTyxlQUFlO0lBT3hCLFlBQW1CLElBQWdCLEVBQUUsVUFBbUIsRUFBRSxhQUFrRCxFQUFFLFdBQXFDO1FBQy9JLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsbUJBQW1CLENBQUMsSUFBd0IsQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUM1RSxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztRQUM5QixJQUFJLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQztRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLG9CQUFvQixDQUFDLElBQW1DLENBQUMsSUFBSSxTQUFTLENBQUM7UUFDOUYsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxjQUFjLEdBQUcsdUJBQXVCLENBQUMsSUFBbUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUNwRyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLE9BQU8sV0FBVyxLQUFLLFFBQVEsSUFBSSxPQUFPLFdBQVcsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztJQUN6SyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsTUFBTSxDQUFRLFVBQXdCLEVBQUUsYUFBMkIsRUFBRSxXQUF5QztRQUN4SCxPQUFPLElBQUksZUFBZSxDQUFDLFNBQVMsRUFBRSxVQUFvQixFQUFFLGFBQXVCLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FDbkIsSUFBc0IsRUFDdEIsVUFBd0IsRUFDeEIsYUFBMkIsRUFDM0IsV0FBeUM7UUFFekMsT0FBTyxJQUFJLGVBQWUsQ0FBQyxJQUFJLEVBQUUsVUFBb0IsRUFBRSxhQUF1QixFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFRCxJQUFXLElBQUk7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUMvQixDQUFDO0lBRU0sY0FBYyxDQUFDLFFBQXFCO1FBQ3ZDLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBa0IsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sb0JBQW9CLENBQUMsUUFBZ0I7UUFDeEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUM7UUFDNUIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLGlCQUFpQixDQUFDLFFBQXFCO1FBQzFDLElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBa0IsQ0FBQztRQUN6QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBZ0I7UUFDM0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLFlBQVksQ0FBQyxJQUE2QjtRQUM3QyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzNCLE1BQU0sUUFBUSxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDWixNQUFNLElBQUksb0JBQW9CLENBQUMseUNBQXlDLElBQUksYUFBYSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUM5RyxDQUFDO1lBQ0QsSUFBSSxHQUFHLFFBQVEsQ0FBQztRQUNwQixDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLElBQUk7UUFDUCxPQUFPLElBQUksZUFBZSxDQUFvQixJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDeEgsQ0FBQztDQUNKO0FBWUQsTUFBTSxVQUFVLEtBQUssQ0FBUSxpQkFBK0YsRUFBRSxJQUF1QztJQUNqSyxJQUFJLGlCQUFpQixJQUFJLElBQUksRUFBRSxDQUFDO1FBQzVCLE9BQU8sSUFBSSxlQUFlLENBQW1CLFNBQVMsQ0FBQyxDQUFDO0lBQzVELENBQUM7U0FBTSxJQUFJLGlCQUFpQixZQUFZLGNBQWMsRUFBRSxDQUFDO1FBQ3JELE9BQU8sSUFBSSxlQUFlLENBQW1CLFNBQVMsRUFBRSxJQUFJLEVBQUUsRUFBWSxFQUFFLElBQUksRUFBRSxLQUFlLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZILENBQUM7U0FBTSxJQUFJLE9BQU8saUJBQWlCLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDakQsT0FBTyxJQUFJLGVBQWUsQ0FBMEIsaUJBQXFDLEVBQUUsSUFBSSxFQUFFLEVBQVksRUFBRSxJQUFJLEVBQUUsS0FBZSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxSixDQUFDO1NBQU0sQ0FBQztRQUNKLE1BQU0saUJBQWlCLEdBQUcsaUJBQXFELENBQUM7UUFDaEYsT0FBTyxJQUFJLGVBQWUsQ0FBbUIsU0FBUyxFQUFFLGlCQUFpQixFQUFFLEVBQVksRUFBRSxpQkFBaUIsRUFBRSxLQUFlLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDOUosQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NsYXNzT3B0VHlwZSwgQ2xhc3NUeXBlLCBDb21tb25zSW50ZXJuYWxFcnJvciwgSU1vZGVsRGVzY3JpcHRvciwgZmluZFJlZmxlY3RUeXBlTmFtZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcblxuaW1wb3J0IHtmaW5kQ2xhc3NJZEF0dHJpYnV0ZSwgZmluZENsYXNzVGl0bGVBdHRyaWJ1dGV9IGZyb20gJy4uL2hlbHBlcnMvbW9kZWwnO1xuaW1wb3J0IHtUeXBlRGVzY3JpcHRvcn0gZnJvbSAnLi90eXBlLmRlc2NyaXB0b3InO1xuXG5leHBvcnQgY2xhc3MgTW9kZWxEZXNjcmlwdG9yPE1vZGVsLCBNb2RlbENsYXNzID0gQ2xhc3NPcHRUeXBlPE1vZGVsPj4gaW1wbGVtZW50cyBJTW9kZWxEZXNjcmlwdG9yPE1vZGVsLCBNb2RlbENsYXNzPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfdHlwZTogTW9kZWxDbGFzcztcbiAgICBwcml2YXRlIHJlYWRvbmx5IF90eXBlTmFtZT86IHN0cmluZztcbiAgICBwcml2YXRlIF9pMThuQmFzZUtleTogc3RyaW5nO1xuICAgIHByaXZhdGUgX2lkUHJvcGVydHk/OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfdGl0bGVQcm9wZXJ0eT86IHN0cmluZyB8ICgoaXRlbTogTW9kZWwpID0+IHN0cmluZyk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IodHlwZTogTW9kZWxDbGFzcywgaWRQcm9wZXJ0eT86IHN0cmluZywgdGl0bGVQcm9wZXJ0eT86IHN0cmluZyB8ICgoaXRlbTogTW9kZWwpID0+IHN0cmluZyksIGkxOG5CYXNlS2V5Pzogc3RyaW5nIHwgQ2xhc3NUeXBlPGFueT4pIHtcbiAgICAgICAgdGhpcy5fdHlwZSA9IHR5cGU7XG4gICAgICAgIHRoaXMuX3R5cGVOYW1lID0gZmluZFJlZmxlY3RUeXBlTmFtZSh0eXBlIGFzIENsYXNzVHlwZTxNb2RlbD4pID8/IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5faWRQcm9wZXJ0eSA9IGlkUHJvcGVydHk7XG4gICAgICAgIHRoaXMuX3RpdGxlUHJvcGVydHkgPSB0aXRsZVByb3BlcnR5O1xuICAgICAgICBpZiAoIXRoaXMuX2lkUHJvcGVydHkgJiYgdHlwZSkge1xuICAgICAgICAgICAgdGhpcy5faWRQcm9wZXJ0eSA9IGZpbmRDbGFzc0lkQXR0cmlidXRlKHR5cGUgYXMgdW5rbm93biBhcyBDbGFzc1R5cGU8TW9kZWw+KSA/PyB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLl90aXRsZVByb3BlcnR5ICYmIHR5cGUpIHtcbiAgICAgICAgICAgIHRoaXMuX3RpdGxlUHJvcGVydHkgPSBmaW5kQ2xhc3NUaXRsZUF0dHJpYnV0ZSh0eXBlIGFzIHVua25vd24gYXMgQ2xhc3NUeXBlPE1vZGVsPikgPz8gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2kxOG5CYXNlS2V5ID0gKHR5cGVvZiBpMThuQmFzZUtleSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGkxOG5CYXNlS2V5ID09PSAndW5kZWZpbmVkJyA/IGkxOG5CYXNlS2V5IDogZmluZFJlZmxlY3RUeXBlTmFtZShpMThuQmFzZUtleSkpID8/IHRoaXMuX3R5cGVOYW1lID8/ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIFVzZSBzdGFuZGFsb25lIHttb2RlbCgpfSBpbnN0ZWFkLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlPE1vZGVsPihpZFByb3BlcnR5Pzoga2V5b2YgTW9kZWwsIHRpdGxlUHJvcGVydHk/OiBrZXlvZiBNb2RlbCwgaTE4bkJhc2VLZXk/OiBzdHJpbmcgfCBDbGFzc1R5cGU8dW5rbm93bj4pOiBNb2RlbERlc2NyaXB0b3I8TW9kZWwsIHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gbmV3IE1vZGVsRGVzY3JpcHRvcih1bmRlZmluZWQsIGlkUHJvcGVydHkgYXMgc3RyaW5nLCB0aXRsZVByb3BlcnR5IGFzIHN0cmluZywgaTE4bkJhc2VLZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIFVzZSBzdGFuZGFsb25lIHttb2RlbCgpfSBpbnN0ZWFkLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZnJvbUNsYXNzPE1vZGVsPihcbiAgICAgICAgdHlwZTogQ2xhc3NUeXBlPE1vZGVsPixcbiAgICAgICAgaWRQcm9wZXJ0eT86IGtleW9mIE1vZGVsLFxuICAgICAgICB0aXRsZVByb3BlcnR5Pzoga2V5b2YgTW9kZWwsXG4gICAgICAgIGkxOG5CYXNlS2V5Pzogc3RyaW5nIHwgQ2xhc3NUeXBlPHVua25vd24+XG4gICAgKTogTW9kZWxEZXNjcmlwdG9yPE1vZGVsLCBDbGFzc1R5cGU8TW9kZWw+PiB7XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxEZXNjcmlwdG9yKHR5cGUsIGlkUHJvcGVydHkgYXMgc3RyaW5nLCB0aXRsZVByb3BlcnR5IGFzIHN0cmluZywgaTE4bkJhc2VLZXkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3R5cGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0eXBlTmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3R5cGVOYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaTE4bkJhc2VLZXkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pMThuQmFzZUtleTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlkUHJvcGVydHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pZFByb3BlcnR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdGl0bGVQcm9wZXJ0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RpdGxlUHJvcGVydHk7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhJZFByb3BlcnR5KHByb3BlcnR5OiBrZXlvZiBNb2RlbCk6IHRoaXMge1xuICAgICAgICB0aGlzLl9pZFByb3BlcnR5ID0gcHJvcGVydHkgYXMgc3RyaW5nO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aElkUHJvcGVydHlVbnNhZmUocHJvcGVydHk6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9pZFByb3BlcnR5ID0gcHJvcGVydHk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoVGl0bGVQcm9wZXJ0eShwcm9wZXJ0eToga2V5b2YgTW9kZWwpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fdGl0bGVQcm9wZXJ0eSA9IHByb3BlcnR5IGFzIHN0cmluZztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhUaXRsZVByb3BlcnR5VW5zYWZlKHByb3BlcnR5OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fdGl0bGVQcm9wZXJ0eSA9IHByb3BlcnR5O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEkxOG5CYXNlKGJhc2U6IENsYXNzVHlwZTxhbnk+IHwgc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIGlmICh0eXBlb2YgYmFzZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGVOYW1lID0gZmluZFJlZmxlY3RUeXBlTmFtZShiYXNlKTtcbiAgICAgICAgICAgIGlmICghdHlwZU5hbWUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoYENvdWxkIG5vdCBmaW5kIGRlZmluZSBpMThuQmFzZUtleSBmb3IgJHtiYXNlfSBvbiBtb2RlbCAke3RoaXMudHlwZU5hbWV9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBiYXNlID0gdHlwZU5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faTE4bkJhc2VLZXkgPSBiYXNlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgY29weSgpOiBNb2RlbERlc2NyaXB0b3I8TW9kZWwsIE1vZGVsQ2xhc3M+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbERlc2NyaXB0b3I8TW9kZWwsIE1vZGVsQ2xhc3M+KHRoaXMuX3R5cGUsIHRoaXMuX2lkUHJvcGVydHksIHRoaXMuX3RpdGxlUHJvcGVydHksIHRoaXMuX2kxOG5CYXNlS2V5KTtcbiAgICB9XG59XG5cbmV4cG9ydCB0eXBlIE1vZGVsRGVzY3JpcHRvckNyZWF0ZU9wdHM8TW9kZWw+ID0ge1xuICAgIGlkPzoga2V5b2YgTW9kZWw7XG4gICAgdGl0bGU/OiBrZXlvZiBNb2RlbCB8ICgoaXRlbTogTW9kZWwpID0+IHN0cmluZyk7XG4gICAgaTE4bkJhc2U/OiBzdHJpbmcgfCBDbGFzc1R5cGU8YW55Pjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2RlbDxNb2RlbD4oKTogTW9kZWxEZXNjcmlwdG9yPE1vZGVsLCB1bmRlZmluZWQ+O1xuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsPE1vZGVsPihvcHRzOiBNb2RlbERlc2NyaXB0b3JDcmVhdGVPcHRzPE1vZGVsPik6IE1vZGVsRGVzY3JpcHRvcjxNb2RlbCwgdW5kZWZpbmVkPjtcbmV4cG9ydCBmdW5jdGlvbiBtb2RlbDxNb2RlbD4odHlwZTogVHlwZURlc2NyaXB0b3I8TW9kZWw+LCBvcHRzPzogTW9kZWxEZXNjcmlwdG9yQ3JlYXRlT3B0czxNb2RlbD4pOiBNb2RlbERlc2NyaXB0b3I8TW9kZWwsIHVuZGVmaW5lZD47XG5leHBvcnQgZnVuY3Rpb24gbW9kZWw8TW9kZWw+KGNsYXp6OiBDbGFzc1R5cGU8TW9kZWw+LCBvcHRzPzogTW9kZWxEZXNjcmlwdG9yQ3JlYXRlT3B0czxNb2RlbD4pOiBNb2RlbERlc2NyaXB0b3I8TW9kZWwsIENsYXNzVHlwZTxNb2RlbD4+O1xuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsPE1vZGVsPih0eXBlT3JDbGFzc09yT3B0cz86IENsYXNzVHlwZTxNb2RlbD4gfCBUeXBlRGVzY3JpcHRvcjxNb2RlbD4gfCBNb2RlbERlc2NyaXB0b3JDcmVhdGVPcHRzPE1vZGVsPiwgb3B0cz86IE1vZGVsRGVzY3JpcHRvckNyZWF0ZU9wdHM8TW9kZWw+KSB7XG4gICAgaWYgKHR5cGVPckNsYXNzT3JPcHRzID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbERlc2NyaXB0b3I8TW9kZWwsIHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVPckNsYXNzT3JPcHRzIGluc3RhbmNlb2YgVHlwZURlc2NyaXB0b3IpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbERlc2NyaXB0b3I8TW9kZWwsIHVuZGVmaW5lZD4odW5kZWZpbmVkLCBvcHRzPy5pZCBhcyBzdHJpbmcsIG9wdHM/LnRpdGxlIGFzIHN0cmluZywgb3B0cz8uaTE4bkJhc2UpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHR5cGVPckNsYXNzT3JPcHRzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxEZXNjcmlwdG9yPE1vZGVsLCBDbGFzc1R5cGU8TW9kZWw+Pih0eXBlT3JDbGFzc09yT3B0cyBhcyBDbGFzc1R5cGU8TW9kZWw+LCBvcHRzPy5pZCBhcyBzdHJpbmcsIG9wdHM/LnRpdGxlIGFzIHN0cmluZywgb3B0cz8uaTE4bkJhc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHR5cGVPckNsYXNzQXNPcHRzID0gdHlwZU9yQ2xhc3NPck9wdHMgYXMgTW9kZWxEZXNjcmlwdG9yQ3JlYXRlT3B0czxNb2RlbD47XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxEZXNjcmlwdG9yPE1vZGVsLCB1bmRlZmluZWQ+KHVuZGVmaW5lZCwgdHlwZU9yQ2xhc3NBc09wdHM/LmlkIGFzIHN0cmluZywgdHlwZU9yQ2xhc3NBc09wdHM/LnRpdGxlIGFzIHN0cmluZywgdHlwZU9yQ2xhc3NBc09wdHM/LmkxOG5CYXNlKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,19 +1,13 @@
|
|
|
1
1
|
import { map } from 'rxjs/operators';
|
|
2
|
-
import { getI18n, getI18nTypeKeyBasePath,
|
|
2
|
+
import { getI18n, getI18nTypeKeyBasePath, getI18nTypeParams, getI18nTypeParamsAsync } from '@mediusinc/mng-commons/core';
|
|
3
3
|
export function getI18nForModel(translate, model, keyPath, customKey, item, fallbackKey, params) {
|
|
4
4
|
const keys = getKeysByPriority(model, keyPath, customKey, fallbackKey);
|
|
5
5
|
const i18nParams = getI18nModelParams(translate, model, item, params);
|
|
6
6
|
return getI18n(translate, i18nParams, ...keys);
|
|
7
7
|
}
|
|
8
|
-
export function getI18nModelName(translate, model, singular) {
|
|
9
|
-
return getI18nTypeName(translate, model.i18nBaseKey, singular);
|
|
10
|
-
}
|
|
11
|
-
export function getI18nModelNameAsync(translate, model, singular) {
|
|
12
|
-
return getI18nTypeNameAsync(translate, model.i18nBaseKey, singular);
|
|
13
|
-
}
|
|
14
8
|
export function getI18nModelParams(translate, model, item, params = {}) {
|
|
15
9
|
const i18nParams = getI18nTypeParams(translate, model?.i18nBaseKey, item, params);
|
|
16
|
-
return populateI18nModelParams(model?.idProperty, model?.titleProperty,
|
|
10
|
+
return populateI18nModelParams(model?.idProperty, model?.titleProperty, i18nParams);
|
|
17
11
|
}
|
|
18
12
|
export function getI18nModelParamsAsync(translate, model, item, params = {}) {
|
|
19
13
|
return getI18nTypeParamsAsync(translate, model?.i18nBaseKey, item, params).pipe(map(i18nParams => populateI18nModelParams(model?.idProperty, model?.titleProperty, item, i18nParams)));
|
|
@@ -24,7 +18,10 @@ export function populateI18nModelParams(idProperty, titleProperty, item, params
|
|
|
24
18
|
if (idProperty && item[idProperty]) {
|
|
25
19
|
paramsRes.itemId = item[idProperty];
|
|
26
20
|
}
|
|
27
|
-
if (titleProperty
|
|
21
|
+
if (typeof titleProperty === 'function') {
|
|
22
|
+
paramsRes.itemTitle = titleProperty(item);
|
|
23
|
+
}
|
|
24
|
+
else if (titleProperty && item[titleProperty]) {
|
|
28
25
|
paramsRes.itemTitle = item[titleProperty];
|
|
29
26
|
}
|
|
30
27
|
}
|
|
@@ -42,4 +39,4 @@ function getKeysByPriority(model, keyPath, customKey, fallbackKey) {
|
|
|
42
39
|
}
|
|
43
40
|
return keys;
|
|
44
41
|
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL21vZGVsL3NyYy9oZWxwZXJzL2kxOG4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFBWSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUlsSSxNQUFNLFVBQVUsZUFBZSxDQUMzQixTQUEyQixFQUMzQixLQUEyQixFQUMzQixPQUFlLEVBQ2YsU0FBa0IsRUFDbEIsSUFBVSxFQUNWLFdBQW9CLEVBQ3BCLE1BQVk7SUFFWixNQUFNLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN2RSxNQUFNLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN0RSxPQUFPLE9BQU8sQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxTQUEyQixFQUFFLEtBQTRCLEVBQUUsSUFBVSxFQUFFLFNBQWMsRUFBRTtJQUN0SCxNQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEYsT0FBTyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDeEYsQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxTQUEyQixFQUFFLEtBQTRCLEVBQUUsSUFBVSxFQUFFLFNBQWMsRUFBRTtJQUMzSCxPQUFPLHNCQUFzQixDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQzNFLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FDeEcsQ0FBQztBQUNOLENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsVUFBc0IsRUFBRSxhQUFtRCxFQUFFLElBQVUsRUFBRSxTQUFjLEVBQUU7SUFDN0ksTUFBTSxTQUFTLEdBQUcsRUFBQyxHQUFHLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUN6RCxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1AsSUFBSSxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDakMsU0FBUyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUNELElBQUksT0FBTyxhQUFhLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDdEMsU0FBUyxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsQ0FBQzthQUFNLElBQUksYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQzlDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDckIsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQUMsS0FBMkIsRUFBRSxPQUFlLEVBQUUsU0FBa0IsRUFBRSxXQUFvQjtJQUM3RyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7SUFDaEIsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUNELE1BQU0sY0FBYyxHQUFHLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUM3RSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFCLElBQUksV0FBVyxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0tleU9mVHlwZSwgZ2V0STE4biwgZ2V0STE4blR5cGVLZXlCYXNlUGF0aCwgZ2V0STE4blR5cGVQYXJhbXMsIGdldEkxOG5UeXBlUGFyYW1zQXN5bmN9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5cbmltcG9ydCB7TW9kZWxEZXNjcmlwdG9yfSBmcm9tICcuLi9kZXNjcmlwdG9ycy9tb2RlbC5kZXNjcmlwdG9yJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEkxOG5Gb3JNb2RlbChcbiAgICB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgbW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxhbnk+LFxuICAgIGtleVBhdGg6IHN0cmluZyxcbiAgICBjdXN0b21LZXk/OiBzdHJpbmcsXG4gICAgaXRlbT86IGFueSxcbiAgICBmYWxsYmFja0tleT86IHN0cmluZyxcbiAgICBwYXJhbXM/OiBhbnlcbik6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IGtleXMgPSBnZXRLZXlzQnlQcmlvcml0eShtb2RlbCwga2V5UGF0aCwgY3VzdG9tS2V5LCBmYWxsYmFja0tleSk7XG4gICAgY29uc3QgaTE4blBhcmFtcyA9IGdldEkxOG5Nb2RlbFBhcmFtcyh0cmFuc2xhdGUsIG1vZGVsLCBpdGVtLCBwYXJhbXMpO1xuICAgIHJldHVybiBnZXRJMThuKHRyYW5zbGF0ZSwgaTE4blBhcmFtcywgLi4ua2V5cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJMThuTW9kZWxQYXJhbXModHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBtb2RlbD86IE1vZGVsRGVzY3JpcHRvcjxhbnk+LCBpdGVtPzogYW55LCBwYXJhbXM6IGFueSA9IHt9KTogYW55IHtcbiAgICBjb25zdCBpMThuUGFyYW1zID0gZ2V0STE4blR5cGVQYXJhbXModHJhbnNsYXRlLCBtb2RlbD8uaTE4bkJhc2VLZXksIGl0ZW0sIHBhcmFtcyk7XG4gICAgcmV0dXJuIHBvcHVsYXRlSTE4bk1vZGVsUGFyYW1zKG1vZGVsPy5pZFByb3BlcnR5LCBtb2RlbD8udGl0bGVQcm9wZXJ0eSwgaTE4blBhcmFtcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJMThuTW9kZWxQYXJhbXNBc3luYyh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIG1vZGVsPzogTW9kZWxEZXNjcmlwdG9yPGFueT4sIGl0ZW0/OiBhbnksIHBhcmFtczogYW55ID0ge30pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBnZXRJMThuVHlwZVBhcmFtc0FzeW5jKHRyYW5zbGF0ZSwgbW9kZWw/LmkxOG5CYXNlS2V5LCBpdGVtLCBwYXJhbXMpLnBpcGUoXG4gICAgICAgIG1hcChpMThuUGFyYW1zID0+IHBvcHVsYXRlSTE4bk1vZGVsUGFyYW1zKG1vZGVsPy5pZFByb3BlcnR5LCBtb2RlbD8udGl0bGVQcm9wZXJ0eSwgaXRlbSwgaTE4blBhcmFtcykpXG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvcHVsYXRlSTE4bk1vZGVsUGFyYW1zKGlkUHJvcGVydHk/OiBLZXlPZlR5cGUsIHRpdGxlUHJvcGVydHk/OiBLZXlPZlR5cGUgfCAoKGl0ZW06IGFueSkgPT4gc3RyaW5nKSwgaXRlbT86IGFueSwgcGFyYW1zOiBhbnkgPSB7fSk6IGFueSB7XG4gICAgY29uc3QgcGFyYW1zUmVzID0gey4uLnBhcmFtcywgaXRlbUlkOiAnJywgaXRlbVRpdGxlOiAnJ307XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgaWYgKGlkUHJvcGVydHkgJiYgaXRlbVtpZFByb3BlcnR5XSkge1xuICAgICAgICAgICAgcGFyYW1zUmVzLml0ZW1JZCA9IGl0ZW1baWRQcm9wZXJ0eV07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB0aXRsZVByb3BlcnR5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBwYXJhbXNSZXMuaXRlbVRpdGxlID0gdGl0bGVQcm9wZXJ0eShpdGVtKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aXRsZVByb3BlcnR5ICYmIGl0ZW1bdGl0bGVQcm9wZXJ0eV0pIHtcbiAgICAgICAgICAgIHBhcmFtc1Jlcy5pdGVtVGl0bGUgPSBpdGVtW3RpdGxlUHJvcGVydHldO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwYXJhbXNSZXM7XG59XG5cbmZ1bmN0aW9uIGdldEtleXNCeVByaW9yaXR5KG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8YW55Piwga2V5UGF0aDogc3RyaW5nLCBjdXN0b21LZXk/OiBzdHJpbmcsIGZhbGxiYWNrS2V5Pzogc3RyaW5nKSB7XG4gICAgY29uc3Qga2V5cyA9IFtdO1xuICAgIGlmIChjdXN0b21LZXkpIHtcbiAgICAgICAga2V5cy5wdXNoKGN1c3RvbUtleSk7XG4gICAgfVxuICAgIGNvbnN0IG1vZGVsQWN0aW9uS2V5ID0gZ2V0STE4blR5cGVLZXlCYXNlUGF0aChtb2RlbC5pMThuQmFzZUtleSwgLi4ua2V5UGF0aCk7XG4gICAga2V5cy5wdXNoKG1vZGVsQWN0aW9uS2V5KTtcbiAgICBpZiAoZmFsbGJhY2tLZXkpIHtcbiAgICAgICAga2V5cy5wdXNoKGZhbGxiYWNrS2V5KTtcbiAgICB9XG4gICAgcmV0dXJuIGtleXM7XG59XG4iXX0=
|