ontimize-web-ngx 15.6.0-next.1 → 15.6.0-next.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/app-header/o-app-header.component.mjs +3 -3
- package/esm2020/lib/components/app-sidenav/menu-group/o-app-sidenav-menu-group.component.mjs +19 -3
- package/esm2020/lib/components/app-sidenav/menu-item/o-app-sidenav-menu-item.component.mjs +17 -4
- package/esm2020/lib/components/app-sidenav/o-app-sidenav.component.mjs +7 -5
- package/esm2020/lib/components/filter-builder/o-filter-builder.component.mjs +1 -1
- package/esm2020/lib/components/form/navigation/o-form-navigation.component.mjs +42 -24
- package/esm2020/lib/components/form/o-form.component.mjs +4 -3
- package/esm2020/lib/components/form/services/o-form-message.service.mjs +2 -2
- package/esm2020/lib/components/grid/o-grid.component.mjs +19 -17
- package/esm2020/lib/components/grid/skeketon/o-grid-skeleton.component.mjs +12 -15
- package/esm2020/lib/components/index.mjs +2 -1
- package/esm2020/lib/components/input/file-input/o-file-input.component.mjs +3 -2
- package/esm2020/lib/components/input/o-boolean-form-data-component.class.mjs +9 -1
- package/esm2020/lib/components/input/o-form-service-component.class.mjs +4 -3
- package/esm2020/lib/components/list/list-item/o-list-item.component.mjs +8 -3
- package/esm2020/lib/components/list/o-list.component.mjs +41 -16
- package/esm2020/lib/components/list/skeleton/o-list-skeleton.component.mjs +12 -15
- package/esm2020/lib/components/o-form-data-component.class.mjs +2 -2
- package/esm2020/lib/components/o-repeatable-skeleton.component.mjs +33 -0
- package/esm2020/lib/components/o-service-base-component.class.mjs +5 -4
- package/esm2020/lib/components/o-service-component.class.mjs +10 -9
- package/esm2020/lib/components/o-skeleton.component.mjs +15 -6
- package/esm2020/lib/components/table/column/cell-editor/o-base-table-cell-editor.class.mjs +2 -2
- package/esm2020/lib/components/table/column/cell-renderer/o-base-table-cell-renderer.class.mjs +1 -1
- package/esm2020/lib/components/table/column/cell-renderer/service/o-table-cell-renderer-service.component.mjs +5 -4
- package/esm2020/lib/components/table/column/o-column.class.mjs +2 -1
- package/esm2020/lib/components/table/column/o-table-column.component.mjs +10 -4
- package/esm2020/lib/components/table/extensions/contextmenu/o-table-context-menu.component.mjs +24 -6
- package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.mjs +75 -87
- package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column.service.mjs +53 -0
- package/esm2020/lib/components/table/extensions/header/table-columns-filter/o-table-columns-filter.component.mjs +12 -4
- package/esm2020/lib/components/table/extensions/header/table-menu/o-table-menu.component.mjs +2 -2
- package/esm2020/lib/components/table/extensions/o-table.dao.mjs +6 -4
- package/esm2020/lib/components/table/extensions/skeleton/o-table-skeleton.component.mjs +5 -19
- package/esm2020/lib/components/table/o-table-base.class.mjs +1 -1
- package/esm2020/lib/components/table/o-table.component.mjs +104 -10
- package/esm2020/lib/components/table/o-table.module.mjs +4 -1
- package/esm2020/lib/components/tree/o-tree.component.mjs +96 -14
- package/esm2020/lib/components/tree/o-tree.datasource.mjs +3 -3
- package/esm2020/lib/components/user-info/o-user-info.component.mjs +5 -4
- package/esm2020/lib/config/o-providers.mjs +5 -3
- package/esm2020/lib/i18n/i18n.mjs +6 -3
- package/esm2020/lib/injection-tokens/index.mjs +19 -0
- package/esm2020/lib/interfaces/base-response.interface.mjs +1 -1
- package/esm2020/lib/interfaces/form-layout-manager.interface.mjs +1 -1
- package/esm2020/lib/interfaces/index.mjs +3 -1
- package/esm2020/lib/interfaces/jsonapi-config.interface.mjs +3 -0
- package/esm2020/lib/interfaces/jsonapi-response.interface.mjs +2 -1
- package/esm2020/lib/interfaces/o-table-column.interface.mjs +1 -1
- package/esm2020/lib/interfaces/service-response.interface.mjs +1 -1
- package/esm2020/lib/layouts/app-layout/o-app-layout-base.class.mjs +1 -1
- package/esm2020/lib/layouts/app-layout/o-app-layout.component.mjs +26 -9
- package/esm2020/lib/layouts/form-layout/o-form-layout-manager.component.mjs +4 -3
- package/esm2020/lib/layouts/form-layout/split-pane/o-form-layout-split-pane.component.mjs +2 -2
- package/esm2020/lib/layouts/form-layout/tabgroup/o-form-layout-tabgroup.component.mjs +2 -1
- package/esm2020/lib/services/base-service.class.mjs +3 -3
- package/esm2020/lib/services/factories.mjs +25 -53
- package/esm2020/lib/services/index.mjs +2 -2
- package/esm2020/lib/services/jsonapi/jsonapi-preferences.service.mjs +2 -2
- package/esm2020/lib/services/jsonapi/jsonapi.service.mjs +53 -21
- package/esm2020/lib/services/request-adapter/base-request-argument.adapter.mjs +12 -0
- package/esm2020/lib/services/request-adapter/base-request-argument.interface.mjs +2 -0
- package/esm2020/lib/services/request-adapter/index.mjs +5 -0
- package/esm2020/lib/services/request-adapter/jsonapi-request-arguments.adapter.mjs +70 -0
- package/esm2020/lib/services/request-adapter/ontimize-request-arguments.adapter.mjs +19 -0
- package/esm2020/lib/services/state/o-filter-builder-component-state.service.mjs +1 -1
- package/esm2020/lib/services/state/o-table-component-state.class.mjs +7 -1
- package/esm2020/lib/services/state/o-table-component-state.service.mjs +8 -2
- package/esm2020/lib/services/translate/o-translate.service.mjs +3 -2
- package/esm2020/lib/types/config.type.mjs +1 -1
- package/esm2020/lib/types/form-layout-detail-component-data.type.mjs +1 -1
- package/esm2020/lib/types/index.mjs +1 -2
- package/esm2020/lib/types/service-configuration.type.mjs +1 -1
- package/esm2020/lib/types/table/index.mjs +2 -1
- package/esm2020/lib/types/table/o-column-value-filter.type.mjs +1 -1
- package/esm2020/lib/types/table/o-table-expandable-row-state.type.mjs +2 -0
- package/esm2020/lib/util/codes.mjs +3 -1
- package/esm2020/lib/util/errors.mjs +3 -9
- package/esm2020/lib/util/factory.util.mjs +67 -0
- package/esm2020/lib/util/index.mjs +3 -1
- package/esm2020/lib/util/injection-token.utils.mjs +4 -0
- package/esm2020/lib/util/preference-mapping-util.mjs +2 -2
- package/esm2020/lib/util/sqltypes.mjs +2 -2
- package/esm2020/lib/util/util.mjs +11 -53
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/ontimize-web-ngx.mjs +6995 -6537
- package/fesm2015/ontimize-web-ngx.mjs.map +1 -1
- package/fesm2020/ontimize-web-ngx.mjs +6634 -6194
- package/fesm2020/ontimize-web-ngx.mjs.map +1 -1
- package/lib/components/app-sidenav/menu-group/o-app-sidenav-menu-group.component.d.ts +3 -0
- package/lib/components/app-sidenav/menu-item/o-app-sidenav-menu-item.component.d.ts +1 -0
- package/lib/components/app-sidenav/o-app-sidenav.component.d.ts +2 -1
- package/lib/components/filter-builder/o-filter-builder.component.d.ts +1 -1
- package/lib/components/form/navigation/o-form-navigation.component.d.ts +7 -4
- package/lib/components/grid/skeketon/o-grid-skeleton.component.d.ts +4 -7
- package/lib/components/index.d.ts +1 -0
- package/lib/components/input/o-boolean-form-data-component.class.d.ts +1 -0
- package/lib/components/list/o-list.component.d.ts +5 -1
- package/lib/components/list/skeleton/o-list-skeleton.component.d.ts +4 -7
- package/lib/components/o-repeatable-skeleton.component.d.ts +9 -0
- package/lib/components/o-skeleton.component.d.ts +10 -5
- package/lib/components/table/column/cell-renderer/o-base-table-cell-renderer.class.d.ts +1 -1
- package/lib/components/table/column/o-column.class.d.ts +2 -1
- package/lib/components/table/column/o-table-column.component.d.ts +2 -2
- package/lib/components/table/extensions/contextmenu/o-table-context-menu.component.d.ts +2 -0
- package/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.d.ts +9 -6
- package/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column.service.d.ts +12 -0
- package/lib/components/table/extensions/header/o-table-header-components.d.ts +2 -2
- package/lib/components/table/extensions/header/table-columns-filter/o-table-columns-filter.component.d.ts +1 -1
- package/lib/components/table/extensions/skeleton/o-table-skeleton.component.d.ts +1 -10
- package/lib/components/table/o-table-base.class.d.ts +2 -0
- package/lib/components/table/o-table.component.d.ts +12 -2
- package/lib/components/tree/o-tree.component.d.ts +10 -1
- package/lib/components/user-info/o-user-info.component.d.ts +2 -1
- package/lib/config/o-directives.d.ts +1 -1
- package/lib/i18n/i18n.d.ts +3 -0
- package/lib/injection-tokens/index.d.ts +33 -0
- package/lib/interfaces/base-response.interface.d.ts +0 -2
- package/lib/interfaces/form-layout-manager.interface.d.ts +1 -1
- package/lib/interfaces/index.d.ts +2 -0
- package/lib/interfaces/jsonapi-config.interface.d.ts +3 -0
- package/lib/interfaces/jsonapi-response.interface.d.ts +47 -7
- package/lib/interfaces/o-table-column.interface.d.ts +2 -1
- package/lib/interfaces/service-response.interface.d.ts +2 -0
- package/lib/layouts/app-layout/o-app-layout-base.class.d.ts +1 -1
- package/lib/layouts/app-layout/o-app-layout.component.d.ts +7 -3
- package/lib/services/base-service.class.d.ts +2 -2
- package/lib/services/factories.d.ts +7 -28
- package/lib/services/index.d.ts +1 -1
- package/lib/services/jsonapi/jsonapi.service.d.ts +7 -4
- package/lib/services/{query-arguments/base-query-argument.adapter.d.ts → request-adapter/base-request-argument.adapter.d.ts} +2 -1
- package/lib/services/{query-arguments/base-query-argument.interface.d.ts → request-adapter/base-request-argument.interface.d.ts} +1 -1
- package/lib/services/request-adapter/index.d.ts +4 -0
- package/lib/services/request-adapter/jsonapi-request-arguments.adapter.d.ts +13 -0
- package/lib/services/request-adapter/ontimize-request-arguments.adapter.d.ts +8 -0
- package/lib/services/state/o-filter-builder-component-state.service.d.ts +1 -1
- package/lib/services/state/o-table-component-state.class.d.ts +3 -0
- package/lib/types/config.type.d.ts +2 -2
- package/lib/types/form-layout-detail-component-data.type.d.ts +1 -1
- package/lib/types/index.d.ts +0 -1
- package/lib/types/service-configuration.type.d.ts +12 -2
- package/lib/types/table/index.d.ts +1 -0
- package/lib/types/table/o-column-value-filter.type.d.ts +3 -0
- package/lib/types/table/o-table-expandable-row-state.type.d.ts +5 -0
- package/lib/util/codes.d.ts +3 -0
- package/lib/util/factory.util.d.ts +10 -0
- package/lib/util/index.d.ts +2 -0
- package/lib/util/injection-token.utils.d.ts +2 -0
- package/lib/util/util.d.ts +1 -5
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/esm2020/lib/services/query-arguments/base-query-argument.adapter.mjs +0 -9
- package/esm2020/lib/services/query-arguments/base-query-argument.interface.mjs +0 -2
- package/esm2020/lib/services/query-arguments/index.mjs +0 -5
- package/esm2020/lib/services/query-arguments/jsonapi-query-arguments.adapter.mjs +0 -62
- package/esm2020/lib/services/query-arguments/ontimize-query-arguments.adapter.mjs +0 -19
- package/esm2020/lib/types/ontimize-service-config.type.mjs +0 -2
- package/lib/services/query-arguments/index.d.ts +0 -4
- package/lib/services/query-arguments/jsonapi-query-arguments.adapter.d.ts +0 -12
- package/lib/services/query-arguments/ontimize-query-arguments.adapter.d.ts +0 -8
- package/lib/types/ontimize-service-config.type.d.ts +0 -5
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Injector } from '@angular/core';
|
|
2
2
|
import { AppConfig } from '../config/app-config';
|
|
3
|
-
import {
|
|
3
|
+
import { O_AUTH_SERVICE, O_COMPONENT_STATE_SERVICE, O_DATA_SERVICE, O_EXPORT_DATA_SERVICE, O_EXPORT_SERVICE, O_FILE_SERVICE, O_LOCALSTORAGE_SERVICE, O_PERMISSION_SERVICE, O_RESPONSE_ADAPTER, O_REQUEST_ADAPTER } from '../injection-tokens';
|
|
4
|
+
import { _getInjectionTokenValue } from '../util/injection-token.utils';
|
|
4
5
|
import { Util } from '../util/util';
|
|
5
6
|
import { AuthService } from './auth.service';
|
|
6
7
|
import { JSONAPIPreferencesService } from './jsonapi/jsonapi-preferences.service';
|
|
7
8
|
import { JSONAPIServiceResponseAdapter } from './jsonapi/jsonapi-service-response.adapter';
|
|
8
|
-
import { JSONAPIService } from './jsonapi/jsonapi.service';
|
|
9
9
|
import { LocalStorageService } from './local-storage.service';
|
|
10
10
|
import { NameConventionLower } from './name-convention/name-convention-lower.service';
|
|
11
11
|
import { NameConventionUpper } from './name-convention/name-convention-upper.service';
|
|
@@ -13,7 +13,6 @@ import { NameConvention } from './name-convention/name-convention.service';
|
|
|
13
13
|
import { OntimizeAuthService } from './o-auth.service';
|
|
14
14
|
import { OntimizeExportDataProviderService3X } from './ontimize-export-data-provider-3x.service';
|
|
15
15
|
import { OntimizeExportDataProviderService } from './ontimize-export-data-provider.service';
|
|
16
|
-
import { OntimizeEEService } from './ontimize/ontimize-ee.service';
|
|
17
16
|
import { OntimizeExportService3X } from './ontimize/ontimize-export-3xx.service';
|
|
18
17
|
import { OntimizeExportService } from './ontimize/ontimize-export.service';
|
|
19
18
|
import { OntimizeFileService } from './ontimize/ontimize-file.service';
|
|
@@ -22,24 +21,10 @@ import { OntimizeServiceResponseAdapter } from './ontimize/ontimize-service-resp
|
|
|
22
21
|
import { OntimizeService } from './ontimize/ontimize.service';
|
|
23
22
|
import { OntimizeEEPermissionsService } from './permissions/ontimize-ee-permissions.service';
|
|
24
23
|
import { OntimizePermissionsService } from './permissions/ontimize-permissions.service';
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
24
|
+
import { JSONAPIRequestArgumentsAdapter } from './request-adapter/jsonapi-request-arguments.adapter';
|
|
25
|
+
import { OntimizeRequestArgumentsAdapter } from './request-adapter/ontimize-request-arguments.adapter';
|
|
27
26
|
import { AbstractComponentStateService, DefaultComponentStateService } from './state/o-component-state.service';
|
|
28
|
-
|
|
29
|
-
export const O_RESPONSE_ADAPTER = new InjectionToken('Service response adapter');
|
|
30
|
-
export const O_TRANSLATE_SERVICE = new InjectionToken('Translate service');
|
|
31
|
-
export const O_FILE_SERVICE = new InjectionToken('File uploader service');
|
|
32
|
-
export const O_LOCALSTORAGE_SERVICE = new InjectionToken('Local storage service');
|
|
33
|
-
export const O_EXPORT_SERVICE = new InjectionToken('Export service');
|
|
34
|
-
export const O_PERMISSION_SERVICE = new InjectionToken('Permission service');
|
|
35
|
-
export const O_AUTH_SERVICE = new InjectionToken('Authentication service');
|
|
36
|
-
export const O_COMPONENT_STATE_SERVICE = new InjectionToken('Component state service');
|
|
37
|
-
export const O_CHART_ON_DEMAND_SERVICE = new InjectionToken('Chart on demand service');
|
|
38
|
-
export const O_REPORT_SERVICE = new InjectionToken('Report service');
|
|
39
|
-
export const O_ERROR_DIALOG_MANAGER = new InjectionToken('Error dialog manager');
|
|
40
|
-
export const O_EXPORT_DATA_SERVICE = new InjectionToken('Export data provider');
|
|
41
|
-
export const O_MAT_ERROR_OPTIONS = new InjectionToken('o-mat-error-options');
|
|
42
|
-
export const O_FORM_MESSAGE_SERVICE = new InjectionToken('Ontimize o-form message service');
|
|
27
|
+
import { FactoryUtil } from '../util/factory.util';
|
|
43
28
|
export function dataServiceFactory(injector) {
|
|
44
29
|
const serviceClass = _getInjectionTokenValue(O_DATA_SERVICE, injector);
|
|
45
30
|
const service = Util.createServiceInstance(serviceClass, injector);
|
|
@@ -48,19 +33,10 @@ export function dataServiceFactory(injector) {
|
|
|
48
33
|
}
|
|
49
34
|
const config = injector.get(AppConfig).getConfiguration();
|
|
50
35
|
const serviceType = config.serviceType;
|
|
51
|
-
return
|
|
36
|
+
return FactoryUtil.createServiceInstanceByType(serviceType, injector);
|
|
52
37
|
}
|
|
53
|
-
export function createServiceInstance(
|
|
54
|
-
|
|
55
|
-
return new OntimizeEEService(injector);
|
|
56
|
-
}
|
|
57
|
-
if (ServiceType.Ontimize === serviceType) {
|
|
58
|
-
return new OntimizeService(injector);
|
|
59
|
-
}
|
|
60
|
-
if (ServiceType.JSONAPI === serviceType) {
|
|
61
|
-
return new JSONAPIService(injector);
|
|
62
|
-
}
|
|
63
|
-
return Util.createServiceInstance(serviceType, injector);
|
|
38
|
+
export function createServiceInstance(serviceClass, injector) {
|
|
39
|
+
return Util.createServiceInstance(serviceClass, injector);
|
|
64
40
|
}
|
|
65
41
|
export function fileServiceFactory(injector) {
|
|
66
42
|
const serviceClass = _getInjectionTokenValue(O_FILE_SERVICE, injector);
|
|
@@ -106,15 +82,20 @@ export function exportDataFactory(injector) {
|
|
|
106
82
|
}
|
|
107
83
|
}
|
|
108
84
|
export function serviceRequestAdapterFactory(injector) {
|
|
85
|
+
const serviceClass = _getInjectionTokenValue(O_REQUEST_ADAPTER, injector);
|
|
86
|
+
const service = Util.createServiceInstance(serviceClass, injector);
|
|
87
|
+
if (Util.isDefined(service)) {
|
|
88
|
+
return service;
|
|
89
|
+
}
|
|
109
90
|
const config = injector.get(AppConfig).getConfiguration();
|
|
110
91
|
if (!Util.isDefined(config.serviceType) ||
|
|
111
|
-
|
|
112
|
-
return new
|
|
92
|
+
FactoryUtil.isOntimizeEEService(injector)) {
|
|
93
|
+
return new OntimizeRequestArgumentsAdapter();
|
|
113
94
|
}
|
|
114
|
-
else if (
|
|
115
|
-
return new
|
|
95
|
+
else if (FactoryUtil.isJsonApiService(injector)) {
|
|
96
|
+
return new JSONAPIRequestArgumentsAdapter();
|
|
116
97
|
}
|
|
117
|
-
return new
|
|
98
|
+
return new OntimizeRequestArgumentsAdapter();
|
|
118
99
|
}
|
|
119
100
|
export function serviceResponseAdapterFactory(injector) {
|
|
120
101
|
const serviceClass = _getInjectionTokenValue(O_RESPONSE_ADAPTER, injector);
|
|
@@ -124,10 +105,10 @@ export function serviceResponseAdapterFactory(injector) {
|
|
|
124
105
|
}
|
|
125
106
|
const config = injector.get(AppConfig).getConfiguration();
|
|
126
107
|
if (!Util.isDefined(config.serviceType) ||
|
|
127
|
-
(
|
|
108
|
+
(FactoryUtil.isOntimizeEEService(injector))) {
|
|
128
109
|
return new OntimizeServiceResponseAdapter();
|
|
129
110
|
}
|
|
130
|
-
else if (
|
|
111
|
+
else if (FactoryUtil.isJsonApiService(injector)) {
|
|
131
112
|
return new JSONAPIServiceResponseAdapter();
|
|
132
113
|
}
|
|
133
114
|
return new JSONAPIServiceResponseAdapter();
|
|
@@ -149,10 +130,10 @@ export function permissionsServiceFactory(injector) {
|
|
|
149
130
|
}
|
|
150
131
|
export function preferencesServiceFactory(injector) {
|
|
151
132
|
const config = injector.get(AppConfig).getConfiguration();
|
|
152
|
-
if (!Util.isDefined(config.serviceType) ||
|
|
133
|
+
if (!Util.isDefined(config.serviceType) || FactoryUtil.isOntimizeEEService(injector)) {
|
|
153
134
|
return new OntimizePreferencesService(injector);
|
|
154
135
|
}
|
|
155
|
-
else if (
|
|
136
|
+
else if (FactoryUtil.isJsonApiService(injector)) {
|
|
156
137
|
return new JSONAPIPreferencesService(injector);
|
|
157
138
|
}
|
|
158
139
|
return new JSONAPIPreferencesService(injector);
|
|
@@ -171,19 +152,10 @@ export const OntimizeExportServiceProvider = { provide: OntimizeExportService, u
|
|
|
171
152
|
export const OntimizeAuthServiceProvider = { provide: AuthService, useFactory: authServiceFactory, deps: [Injector] };
|
|
172
153
|
export const ComponentStateServiceProvider = { provide: AbstractComponentStateService, useFactory: componentStateFactory, deps: [Injector] };
|
|
173
154
|
export const ExportDataServiceProvider = { provide: OntimizeExportDataProviderService, useFactory: exportDataFactory, deps: [Injector] };
|
|
174
|
-
export const ServiceRequestAdapter = { provide:
|
|
155
|
+
export const ServiceRequestAdapter = { provide: OntimizeRequestArgumentsAdapter, useFactory: serviceRequestAdapterFactory, deps: [Injector] };
|
|
175
156
|
export const ServiceResponseAdapter = { provide: OntimizeServiceResponseAdapter, useFactory: serviceResponseAdapterFactory, deps: [Injector] };
|
|
176
157
|
export const NameConventionProvider = { provide: NameConvention, useFactory: nameConventionServiceFactory, deps: [Injector] };
|
|
177
158
|
export const OntimizeLocalStorageServiceProvider = { provide: LocalStorageService, useFactory: localStorageServiceFactory, deps: [Injector] };
|
|
178
|
-
export function _getInjectionTokenValue(token, injector) {
|
|
179
|
-
let service;
|
|
180
|
-
try {
|
|
181
|
-
service = injector.get(token);
|
|
182
|
-
}
|
|
183
|
-
catch (e) {
|
|
184
|
-
}
|
|
185
|
-
return service;
|
|
186
|
-
}
|
|
187
159
|
export function nameConventionServiceFactory(injector) {
|
|
188
160
|
const config = injector.get(AppConfig).getConfiguration();
|
|
189
161
|
if (config?.nameConvention === 'lower') {
|
|
@@ -194,4 +166,4 @@ export function nameConventionServiceFactory(injector) {
|
|
|
194
166
|
}
|
|
195
167
|
return new NameConvention();
|
|
196
168
|
}
|
|
197
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3NlcnZpY2VzL2ZhY3Rvcmllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFZakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUN0RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUN0RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdkQsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDakcsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDNUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0s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LENBQUMsTUFBTSxzQkFBc0IsR0FBRyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLDRCQUE0QixFQUFFLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7QUFDOUgsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQUcsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLDBCQUEwQixFQUFFLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7QUFVOUksTUFBTSxVQUFVLHVCQUF1QixDQUFJLEtBQXdCLEVBQUUsUUFBa0I7SUFDckYsSUFBSSxPQUFVLENBQUM7SUFDZixJQUFJO1FBQ0YsT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDL0I7SUFBQyxPQUFPLENBQUMsRUFBRTtLQUVYO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQU1ELE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxRQUFrQjtJQUU3RCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFFMUQsSUFBSSxNQUFNLEVBQUUsY0FBYyxLQUFLLE9BQU8sRUFBRTtRQUN0QyxPQUFPLElBQUksbUJBQW1CLEVBQUUsQ0FBQztLQUNsQztTQUFNLElBQUksTUFBTSxFQUFFLGNBQWMsS0FBSyxPQUFPLEVBQUU7UUFDN0MsT0FBTyxJQUFJLG1CQUFtQixFQUFFLENBQUM7S0FDbEM7SUFDRCxPQUFPLElBQUksY0FBYyxFQUFFLENBQUM7QUFDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBcHBDb25maWcgfSBmcm9tICcuLi9jb25maWcvYXBwLWNvbmZpZyc7XG5pbXBvcnQgeyBJQ2hhcnRPbkRlbWFuZFNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NoYXJ0LW9uLWRlbWFuZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUV4cG9ydERhdGFQcm92aWRlciB9IGZyb20gJy4uL2ludGVyZmFjZXMvZXhwb3J0LWRhdGEtcHJvdmlkZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IElFeHBvcnRTZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9leHBvcnQtc2VydmljZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUZpbGVTZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9maWxlLXNlcnZpY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IElMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9sb2NhbC1zZXJ2aWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJTmFtZUNvbnZlbnRpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL25hbWUtY29udmVudGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSVBlcm1pc3Npb25zU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcGVybWlzc2lvbnMtc2VydmljZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSVByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcHJlZmVyZWNlcy1zZXJ2aWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJUmVwb3J0U2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LW9uLWRlbWFuZC1zZXJ2aWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJU2VydmljZVJlc3BvbnNlQWRhcHRlciB9IGZyb20gJy4uL2ludGVyZmFjZXMvc2VydmljZS1yZXNwb25zZS1hZGFwdGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBPTWF0RXJyb3JPcHRpb25zIH0gZnJvbSAnLi4vdHlwZXMvby1tYXQtZXJyb3IudHlwZSc7XG5pbXBvcnQgeyBTZXJ2aWNlVHlwZSB9IGZyb20gJy4uL3R5cGVzL3NlcnZpY2UtdHlwZS50eXBlJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi91dGlsL3V0aWwnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBCYXNlU2VydmljZVJlc3BvbnNlIH0gZnJvbSAnLi9iYXNlLXNlcnZpY2UtcmVzcG9uc2UuY2xhc3MnO1xuaW1wb3J0IHsgSlNPTkFQSVByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJy4vanNvbmFwaS9qc29uYXBpLXByZWZlcmVuY2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgSlNPTkFQSVNlcnZpY2VSZXNwb25zZUFkYXB0ZXIgfSBmcm9tICcuL2pzb25hcGkvanNvbmFwaS1zZXJ2aWNlLXJlc3BvbnNlLmFkYXB0ZXInO1xuaW1wb3J0IHsgSlNPTkFQSVNlcnZpY2UgfSBmcm9tICcuL2pzb25hcGkvanNvbmFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBOYW1lQ29udmVudGlvbkxvd2VyIH0gZnJvbSAnLi9uYW1lLWNvbnZlbnRpb24vbmFtZS1jb252ZW50aW9uLWxvd2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmFtZUNvbnZlbnRpb25VcHBlciB9IGZyb20gJy4vbmFtZS1jb252ZW50aW9uL25hbWUtY29udmVudGlvbi11cHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IE5hbWVDb252ZW50aW9uIH0gZnJvbSAnLi9uYW1lLWNvbnZlbnRpb24vbmFtZS1jb252ZW50aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgT250aW1pemVBdXRoU2VydmljZSB9IGZyb20gJy4vby1hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgT0Vycm9yRGlhbG9nTWFuYWdlciB9IGZyb20gJy4vby1lcnJvci1kaWFsb2ctbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplRXhwb3J0RGF0YVByb3ZpZGVyU2VydmljZTNYIH0gZnJvbSAnLi9vbnRpbWl6ZS1leHBvcnQtZGF0YS1wcm92aWRlci0zeC5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplRXhwb3J0RGF0YVByb3ZpZGVyU2VydmljZSB9IGZyb20gJy4vb250aW1pemUtZXhwb3J0LWRhdGEtcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBPbnRpbWl6ZUVFU2VydmljZSB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUtZWUuc2VydmljZSc7XG5pbXBvcnQgeyBPbnRpbWl6ZUV4cG9ydFNlcnZpY2UzWCB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUtZXhwb3J0LTN4eC5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplRXhwb3J0U2VydmljZSB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUtZXhwb3J0LnNlcnZpY2UnO1xuaW1wb3J0IHsgT250aW1pemVGaWxlU2VydmljZSB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUtZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi9vbnRpbWl6ZS9vbnRpbWl6ZS1wcmVmZXJlbmNlcy5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplU2VydmljZVJlc3BvbnNlQWRhcHRlciB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUtc2VydmljZS1yZXNwb25zZS5hZGFwdGVyJztcbmltcG9ydCB7IE9udGltaXplU2VydmljZSB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUuc2VydmljZSc7XG5pbXBvcnQgeyBPbnRpbWl6ZUVFUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi9wZXJtaXNzaW9ucy9vbnRpbWl6ZS1lZS1wZXJtaXNzaW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi9wZXJtaXNzaW9ucy9vbnRpbWl6ZS1wZXJtaXNzaW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IElCYXNlUXVlcnlBcmd1bWVudCB9IGZyb20gJy4vcXVlcnktYXJndW1lbnRzL2Jhc2UtcXVlcnktYXJndW1lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEpTT05BUElRdWVyeUFyZ3VtZW50c0FkYXB0ZXIgfSBmcm9tICcuL3F1ZXJ5LWFyZ3VtZW50cy9qc29uYXBpLXF1ZXJ5LWFyZ3VtZW50cy5hZGFwdGVyJztcbmltcG9ydCB7IE9udGltaXplUXVlcnlBcmd1bWVudHNBZGFwdGVyIH0gZnJvbSAnLi9xdWVyeS1hcmd1bWVudHMvb250aW1pemUtcXVlcnktYXJndW1lbnRzLmFkYXB0ZXInO1xuaW1wb3J0IHsgQWJzdHJhY3RDb21wb25lbnRTdGF0ZVNlcnZpY2UsIERlZmF1bHRDb21wb25lbnRTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL3N0YXRlL28tY29tcG9uZW50LXN0YXRlLnNlcnZpY2UnO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBJTkpFQ1RJT04gVE9LRU5TIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIHRoYXQgY2FuIGJlIHVzZWQgdG8gcmVwbGFjZSB0aGUgZGF0YSBzZXJ2aWNlIGBPbnRpbWl6ZVNlcnZpY2VgIG9yIGBPbnRpbWl6ZUVFU2VydmljZWAuXG4gKi9cbmV4cG9ydCBjb25zdCBPX0RBVEFfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbignT250aW1pemUgZGF0YSBzZXJ2aWNlJyk7XG5cbmV4cG9ydCBjb25zdCBPX1JFU1BPTlNFX0FEQVBURVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48SVNlcnZpY2VSZXNwb25zZUFkYXB0ZXI8QmFzZVNlcnZpY2VSZXNwb25zZT4+KCdTZXJ2aWNlIHJlc3BvbnNlIGFkYXB0ZXInKTtcblxuLyoqXG4gKiBJbmplY3Rpb24gdG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byByZXBsYWNlIHRoZSB0cmFuc2xhdGUgc2VydmljZSBgT1RyYW5zbGF0ZVNlcnZpY2VgLlxuICovXG5leHBvcnQgY29uc3QgT19UUkFOU0xBVEVfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbignVHJhbnNsYXRlIHNlcnZpY2UnKTtcblxuLyoqXG4gKiBJbmplY3Rpb24gdG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byByZXBsYWNlIHRoZSBmaWxlIHNlcnZpY2UgYE9udGltaXplRmlsZVNlcnZpY2VgLlxuICovXG5leHBvcnQgY29uc3QgT19GSUxFX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48SUZpbGVTZXJ2aWNlPignRmlsZSB1cGxvYWRlciBzZXJ2aWNlJyk7XG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIHRoYXQgY2FuIGJlIHVzZWQgdG8gcmVwbGFjZSB0aGUgbG9jYWxzdG9yYWdlIHNlcnZpY2UgYExvY2FsU3RvcmFnZVNlcnZpY2VgLlxuICovXG5leHBvcnQgY29uc3QgT19MT0NBTFNUT1JBR0VfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJTG9jYWxTdG9yYWdlU2VydmljZT4oJ0xvY2FsIHN0b3JhZ2Ugc2VydmljZScpO1xuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlcGxhY2UgdGhlIGV4cG9ydGF0aW9uIHNlcnZpY2UgYE9udGltaXplRXhwb3J0U2VydmljZWAuXG4gKi9cbmV4cG9ydCBjb25zdCBPX0VYUE9SVF9TRVJWSUNFID0gbmV3IEluamVjdGlvblRva2VuPElFeHBvcnRTZXJ2aWNlPignRXhwb3J0IHNlcnZpY2UnKTtcblxuLyoqXG4gKiBJbmplY3Rpb24gdG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byByZXBsYWNlIHRoZSBwZXJtaXNzaW9uIHNlcnZpY2UgYE9udGltaXplUGVybWlzc2lvbnNTZXJ2aWNlIG9yIE9udGltaXplRUVQZXJtaXNzaW9uc1NlcnZpY2VgLlxuICovXG5leHBvcnQgY29uc3QgT19QRVJNSVNTSU9OX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48SVBlcm1pc3Npb25zU2VydmljZT4oJ1Blcm1pc3Npb24gc2VydmljZScpO1xuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlcGxhY2UgdGhlIGF1dGhlbnRpY2F0aW9uIHNlcnZpY2UgYEF1dGhTZXJ2aWNlYC5cbiAqL1xuZXhwb3J0IGNvbnN0IE9fQVVUSF9TRVJWSUNFID0gbmV3IEluamVjdGlvblRva2VuPEF1dGhTZXJ2aWNlPignQXV0aGVudGljYXRpb24gc2VydmljZScpO1xuXG4vKipcbiogSW5qZWN0aW9uIHRva2VuIHRoYXQgY2FuIGJlIHVzZWQgdG8gcmVwbGFjZSB0aGUgY29tcG9uZW50IHN0YXRlIHNlcnZpY2UgYERlZmF1bHRDb21wb25lbnRTdGF0ZVNlcnZpY2VgLlxuKi9cbmV4cG9ydCBjb25zdCBPX0NPTVBPTkVOVF9TVEFURV9TRVJWSUNFID0gbmV3IEluamVjdGlvblRva2VuPERlZmF1bHRDb21wb25lbnRTdGF0ZVNlcnZpY2U+KCdDb21wb25lbnQgc3RhdGUgc2VydmljZScpO1xuXG5cbi8qKlxuKiBJbmplY3Rpb24gdG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byByZXBsYWNlIHRoZSBjb21wb25lbnQgc3RhdGUgc2VydmljZSBgRGVmYXVsdENvbXBvbmVudFN0YXRlU2VydmljZWAuXG4qL1xuZXhwb3J0IGNvbnN0IE9fQ0hBUlRfT05fREVNQU5EX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48SUNoYXJ0T25EZW1hbmRTZXJ2aWNlPignQ2hhcnQgb24gZGVtYW5kIHNlcnZpY2UnKTtcblxuZXhwb3J0IGNvbnN0IE9fUkVQT1JUX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48SVJlcG9ydFNlcnZpY2U+KCdSZXBvcnQgc2VydmljZScpO1xuXG5leHBvcnQgY29uc3QgT19FUlJPUl9ESUFMT0dfTUFOQUdFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxPRXJyb3JEaWFsb2dNYW5hZ2VyPignRXJyb3IgZGlhbG9nIG1hbmFnZXInKTtcblxuZXhwb3J0IGNvbnN0IE9fRVhQT1JUX0RBVEFfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJRXhwb3J0RGF0YVByb3ZpZGVyPignRXhwb3J0IGRhdGEgcHJvdmlkZXInKTtcblxuZXhwb3J0IGNvbnN0IE9fTUFUX0VSUk9SX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48T01hdEVycm9yT3B0aW9ucz4oJ28tbWF0LWVycm9yLW9wdGlvbnMnKTtcblxuZXhwb3J0IGNvbnN0IE9fRk9STV9NRVNTQUdFX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ09udGltaXplIG8tZm9ybSBtZXNzYWdlIHNlcnZpY2UnKTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZBQ1RPUklFUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGRhdGEgc2VydmljZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRhdGFTZXJ2aWNlRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBhbnkge1xuICBjb25zdCBzZXJ2aWNlQ2xhc3MgPSBfZ2V0SW5qZWN0aW9uVG9rZW5WYWx1ZShPX0RBVEFfU0VSVklDRSwgaW5qZWN0b3IpO1xuICBjb25zdCBzZXJ2aWNlID0gVXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2Uoc2VydmljZUNsYXNzLCBpbmplY3Rvcik7XG4gIGlmIChVdGlsLmlzRGVmaW5lZChzZXJ2aWNlKSkge1xuICAgIHJldHVybiBzZXJ2aWNlO1xuICB9XG4gIGNvbnN0IGNvbmZpZyA9IGluamVjdG9yLmdldChBcHBDb25maWcpLmdldENvbmZpZ3VyYXRpb24oKTtcbiAgY29uc3Qgc2VydmljZVR5cGUgPSBjb25maWcuc2VydmljZVR5cGU7XG4gIHJldHVybiBjcmVhdGVTZXJ2aWNlSW5zdGFuY2Uoc2VydmljZVR5cGUsIGluamVjdG9yKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlVHlwZTogU2VydmljZVR5cGUsIGluamVjdG9yOiBJbmplY3Rvcik6IGFueSB7XG4gICAgaWYgKCFVdGlsLmlzRGVmaW5lZChzZXJ2aWNlVHlwZSkgfHwgU2VydmljZVR5cGUuT250aW1pemVFRSA9PT0gc2VydmljZVR5cGUpIHtcbiAgICAgIHJldHVybiBuZXcgT250aW1pemVFRVNlcnZpY2UoaW5qZWN0b3IpO1xuICAgIH1cbiAgICBpZiAoU2VydmljZVR5cGUuT250aW1pemUgPT09IHNlcnZpY2VUeXBlKSB7XG4gICAgICByZXR1cm4gbmV3IE9udGltaXplU2VydmljZShpbmplY3Rvcik7XG4gICAgfVxuICAgIGlmIChTZXJ2aWNlVHlwZS5KU09OQVBJID09PSBzZXJ2aWNlVHlwZSkge1xuICAgICAgcmV0dXJuIG5ldyBKU09OQVBJU2VydmljZShpbmplY3Rvcik7XG4gICAgfVxuICAgIHJldHVybiBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlVHlwZSwgaW5qZWN0b3IpO1xuXG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgZmlsZSBzZXJ2aWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmlsZVNlcnZpY2VGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IElGaWxlU2VydmljZSB7XG4gIGNvbnN0IHNlcnZpY2VDbGFzcyA9IF9nZXRJbmplY3Rpb25Ub2tlblZhbHVlKE9fRklMRV9TRVJWSUNFLCBpbmplY3Rvcik7XG4gIGNvbnN0IHNlcnZpY2UgPSBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlQ2xhc3MsIGluamVjdG9yKTtcbiAgcmV0dXJuIFV0aWwuaXNEZWZpbmVkKHNlcnZpY2UpID8gc2VydmljZSA6IG5ldyBPbnRpbWl6ZUZpbGVTZXJ2aWNlKGluamVjdG9yKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBsb2NhbCBzdG9yYWdlIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2NhbFN0b3JhZ2VTZXJ2aWNlRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBJTG9jYWxTdG9yYWdlU2VydmljZSB7XG4gIGNvbnN0IHNlcnZpY2VDbGFzcyA9IF9nZXRJbmplY3Rpb25Ub2tlblZhbHVlKE9fTE9DQUxTVE9SQUdFX1NFUlZJQ0UsIGluamVjdG9yKTtcbiAgY29uc3Qgc2VydmljZSA9IFV0aWwuY3JlYXRlU2VydmljZUluc3RhbmNlKHNlcnZpY2VDbGFzcywgaW5qZWN0b3IpO1xuICByZXR1cm4gVXRpbC5pc0RlZmluZWQoc2VydmljZSkgPyBzZXJ2aWNlIDogbmV3IExvY2FsU3RvcmFnZVNlcnZpY2UoaW5qZWN0b3IpO1xufVxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBleHBvcnRhdGlvbiBzZXJ2aWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhwb3J0U2VydmljZUZhY3RvcnkoaW5qZWN0b3I6IEluamVjdG9yKTogSUV4cG9ydFNlcnZpY2Uge1xuICBjb25zdCBzZXJ2aWNlQ2xhc3MgPSBfZ2V0SW5qZWN0aW9uVG9rZW5WYWx1ZShPX0VYUE9SVF9TRVJWSUNFLCBpbmplY3Rvcik7XG4gIGNvbnN0IHNlcnZpY2UgPSBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlQ2xhc3MsIGluamVjdG9yKTtcbiAgaWYgKFV0aWwuaXNEZWZpbmVkKHNlcnZpY2UpKSB7XG4gICAgcmV0dXJuIHNlcnZpY2U7XG4gIH1cbiAgY29uc3QgY29uZmlnID0gaW5qZWN0b3IuZ2V0KEFwcENvbmZpZykuZ2V0Q29uZmlndXJhdGlvbigpO1xuXG4gIGlmICh0eXBlb2YgKGNvbmZpZy5leHBvcnRTZXJ2aWNlVHlwZSkgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgaWYgKGNvbmZpZy5leHBvcnRDb25maWd1cmF0aW9uKSB7XG4gICAgICByZXR1cm4gbmV3IE9udGltaXplRXhwb3J0U2VydmljZTNYKGluamVjdG9yKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBPbnRpbWl6ZUV4cG9ydFNlcnZpY2UoaW5qZWN0b3IpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gVXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2UoY29uZmlnLmV4cG9ydFNlcnZpY2VUeXBlLCBpbmplY3Rvcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHBvcnREYXRhRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBJRXhwb3J0RGF0YVByb3ZpZGVyIHtcbiAgY29uc3QgcHJvdmlkZXIgPSBfZ2V0SW5qZWN0aW9uVG9rZW5WYWx1ZShPX0VYUE9SVF9EQVRBX1NFUlZJQ0UsIGluamVjdG9yKTtcbiAgY29uc3Qgc2VydmljZSA9IFV0aWwuY3JlYXRlU2VydmljZUluc3RhbmNlKHByb3ZpZGVyLCBpbmplY3Rvcik7XG4gIGlmIChVdGlsLmlzRGVmaW5lZChzZXJ2aWNlKSkge1xuICAgIHJldHVybiBzZXJ2aWNlO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGNvbmZpZyA9IGluamVjdG9yLmdldChBcHBDb25maWcpLmdldENvbmZpZ3VyYXRpb24oKTtcbiAgICBpZiAodHlwZW9mIChjb25maWcuZXhwb3J0Q29uZmlndXJhdGlvbikgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gbmV3IE9udGltaXplRXhwb3J0RGF0YVByb3ZpZGVyU2VydmljZShpbmplY3Rvcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuZXcgT250aW1pemVFeHBvcnREYXRhUHJvdmlkZXJTZXJ2aWNlM1goaW5qZWN0b3IpO1xuICAgIH1cbiAgfVxuXG59XG5leHBvcnQgZnVuY3Rpb24gc2VydmljZVJlcXVlc3RBZGFwdGVyRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBJQmFzZVF1ZXJ5QXJndW1lbnQge1xuICBjb25zdCBjb25maWcgPSBpbmplY3Rvci5nZXQoQXBwQ29uZmlnKS5nZXRDb25maWd1cmF0aW9uKCk7XG4gIGlmICghVXRpbC5pc0RlZmluZWQoY29uZmlnLnNlcnZpY2VUeXBlKSB8fFxuICAgIFV0aWwuaXNPbnRpbWl6ZUVFU2VydmljZShpbmplY3RvcikpIHtcbiAgICByZXR1cm4gbmV3IE9udGltaXplUXVlcnlBcmd1bWVudHNBZGFwdGVyKCk7XG4gIH0gZWxzZSBpZiAoVXRpbC5pc0pzb25BcGlTZXJ2aWNlKGluamVjdG9yKSkge1xuICAgIHJldHVybiBuZXcgSlNPTkFQSVF1ZXJ5QXJndW1lbnRzQWRhcHRlcigpO1xuICB9XG4gIHJldHVybiBuZXcgT250aW1pemVRdWVyeUFyZ3VtZW50c0FkYXB0ZXIoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNlcnZpY2VSZXNwb25zZUFkYXB0ZXJGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IElTZXJ2aWNlUmVzcG9uc2VBZGFwdGVyPEJhc2VTZXJ2aWNlUmVzcG9uc2U+IHtcbiAgY29uc3Qgc2VydmljZUNsYXNzID0gX2dldEluamVjdGlvblRva2VuVmFsdWUoT19SRVNQT05TRV9BREFQVEVSLCBpbmplY3Rvcik7XG4gIGNvbnN0IHNlcnZpY2UgPSBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlQ2xhc3MsIGluamVjdG9yKTtcblxuICBpZiAoVXRpbC5pc0RlZmluZWQoc2VydmljZSkpIHtcbiAgICByZXR1cm4gc2VydmljZTtcbiAgfVxuICBjb25zdCBjb25maWcgPSBpbmplY3Rvci5nZXQoQXBwQ29uZmlnKS5nZXRDb25maWd1cmF0aW9uKCk7XG4gIGlmICghVXRpbC5pc0RlZmluZWQoY29uZmlnLnNlcnZpY2VUeXBlKSB8fFxuICAgIChVdGlsLmlzT250aW1pemVFRVNlcnZpY2UoaW5qZWN0b3IpKSkge1xuICAgIHJldHVybiBuZXcgT250aW1pemVTZXJ2aWNlUmVzcG9uc2VBZGFwdGVyKCk7XG4gIH0gZWxzZSBpZiAoVXRpbC5pc0pzb25BcGlTZXJ2aWNlKGluamVjdG9yKSkge1xuXG4gICAgcmV0dXJuIG5ldyBKU09OQVBJU2VydmljZVJlc3BvbnNlQWRhcHRlcigpO1xuICB9XG4gIHJldHVybiBuZXcgSlNPTkFQSVNlcnZpY2VSZXNwb25zZUFkYXB0ZXIoKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBwZXJtaXNzaW9uIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwZXJtaXNzaW9uc1NlcnZpY2VGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IElQZXJtaXNzaW9uc1NlcnZpY2Uge1xuICBjb25zdCBzZXJ2aWNlQ2xhc3MgPSBfZ2V0SW5qZWN0aW9uVG9rZW5WYWx1ZShPX1BFUk1JU1NJT05fU0VSVklDRSwgaW5qZWN0b3IpO1xuICBjb25zdCBzZXJ2aWNlID0gVXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2Uoc2VydmljZUNsYXNzLCBpbmplY3Rvcik7XG4gIGlmIChVdGlsLmlzRGVmaW5lZChzZXJ2aWNlKSkge1xuICAgIHJldHVybiBzZXJ2aWNlO1xuICB9XG4gIGNvbnN0IGNvbmZpZyA9IGluamVjdG9yLmdldChBcHBDb25maWcpLmdldENvbmZpZ3VyYXRpb24oKTtcblxuICBpZiAoIVV0aWwuaXNEZWZpbmVkKGNvbmZpZy5wZXJtaXNzaW9uc1NlcnZpY2VUeXBlKSB8fCAnT250aW1pemVFRVBlcm1pc3Npb25zJyA9PT0gY29uZmlnLnBlcm1pc3Npb25zU2VydmljZVR5cGUpIHtcbiAgICByZXR1cm4gbmV3IE9udGltaXplRUVQZXJtaXNzaW9uc1NlcnZpY2UoaW5qZWN0b3IpO1xuICB9IGVsc2UgaWYgKCdPbnRpbWl6ZVBlcm1pc3Npb25zJyA9PT0gY29uZmlnLnBlcm1pc3Npb25zU2VydmljZVR5cGUpIHtcbiAgICByZXR1cm4gbmV3IE9udGltaXplUGVybWlzc2lvbnNTZXJ2aWNlKGluamVjdG9yKTtcbiAgfVxuICByZXR1cm4gVXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2UoY29uZmlnLnBlcm1pc3Npb25zU2VydmljZVR5cGUsIGluamVjdG9yKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBwcmVmZXJlbmNlcyBzZXJ2aWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJlZmVyZW5jZXNTZXJ2aWNlRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBJUHJlZmVyZW5jZXNTZXJ2aWNlIHtcblxuICBjb25zdCBjb25maWcgPSBpbmplY3Rvci5nZXQoQXBwQ29uZmlnKS5nZXRDb25maWd1cmF0aW9uKCk7XG5cbiAgaWYgKCFVdGlsLmlzRGVmaW5lZChjb25maWcuc2VydmljZVR5cGUpIHx8IFV0aWwuaXNPbnRpbWl6ZUVFU2VydmljZShpbmplY3RvcikpIHtcbiAgICByZXR1cm4gbmV3IE9udGltaXplUHJlZmVyZW5jZXNTZXJ2aWNlKGluamVjdG9yKTtcbiAgfSBlbHNlIGlmIChTZXJ2aWNlVHlwZS5KU09OQVBJID09PSBjb25maWcuc2VydmljZVR5cGUpIHtcbiAgICByZXR1cm4gbmV3IEpTT05BUElQcmVmZXJlbmNlc1NlcnZpY2UoaW5qZWN0b3IpO1xuICB9XG4gIHJldHVybiBuZXcgSlNPTkFQSVByZWZlcmVuY2VzU2VydmljZShpbmplY3Rvcik7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgYXV0aGVudGljYXRpb24gc2VydmljZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGF1dGhTZXJ2aWNlRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBBdXRoU2VydmljZSB7XG4gIGNvbnN0IHNlcnZpY2VDbGFzcyA9IF9nZXRJbmplY3Rpb25Ub2tlblZhbHVlKE9fQVVUSF9TRVJWSUNFLCBpbmplY3Rvcik7XG4gIGNvbnN0IHNlcnZpY2UgPSBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlQ2xhc3MsIGluamVjdG9yKTtcbiAgcmV0dXJuIFV0aWwuaXNEZWZpbmVkKHNlcnZpY2UpID8gc2VydmljZSA6IG5ldyBPbnRpbWl6ZUF1dGhTZXJ2aWNlKGluamVjdG9yKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvbmVudFN0YXRlRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBBYnN0cmFjdENvbXBvbmVudFN0YXRlU2VydmljZTxhbnksIGFueT4ge1xuICBjb25zdCBzZXJ2aWNlID0gX2dldEluamVjdGlvblRva2VuVmFsdWUoT19DT01QT05FTlRfU1RBVEVfU0VSVklDRSwgaW5qZWN0b3IpO1xuICByZXR1cm4gVXRpbC5pc0RlZmluZWQoc2VydmljZSkgPyBzZXJ2aWNlIDogbmV3IERlZmF1bHRDb21wb25lbnRTdGF0ZVNlcnZpY2UoaW5qZWN0b3IpO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQUk9WSURFUlMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVc2luZyB0aGUgc2FtZSBwcm92aWRlciBtdWx0aXBsZSB0aW1lcyBhY2Nyb3NzIHRoZSBwcm9qZWN0IHByb2R1Y2VzIG5hbWVzcGFjZXMgY29uZmxpY3RzIHdoZW5cbiAqIGJ1aWxkaW5nIHdpdGggbmctcGFja2Fnciwgc28gd2UgcmV1c2VkIHRoZSBwcm92aWRlcnMgZGVmaW5lZCBoZXJlLlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5leHBvcnQgY29uc3QgT250aW1pemVTZXJ2aWNlUHJvdmlkZXIgPSB7IHByb3ZpZGU6IE9udGltaXplU2VydmljZSwgdXNlRmFjdG9yeTogZGF0YVNlcnZpY2VGYWN0b3J5LCBkZXBzOiBbSW5qZWN0b3JdIH07XG5cbmV4cG9ydCBjb25zdCBPbnRpbWl6ZUV4cG9ydFNlcnZpY2VQcm92aWRlciA9IHsgcHJvdmlkZTogT250aW1pemVFeHBvcnRTZXJ2aWNlLCB1c2VGYWN0b3J5OiBleHBvcnRTZXJ2aWNlRmFjdG9yeSwgZGVwczogW0luamVjdG9yXSB9O1xuXG5leHBvcnQgY29uc3QgT250aW1pemVBdXRoU2VydmljZVByb3ZpZGVyID0geyBwcm92aWRlOiBBdXRoU2VydmljZSwgdXNlRmFjdG9yeTogYXV0aFNlcnZpY2VGYWN0b3J5LCBkZXBzOiBbSW5qZWN0b3JdIH07XG5cbmV4cG9ydCBjb25zdCBDb21wb25lbnRTdGF0ZVNlcnZpY2VQcm92aWRlciA9IHsgcHJvdmlkZTogQWJzdHJhY3RDb21wb25lbnRTdGF0ZVNlcnZpY2UsIHVzZUZhY3Rvcnk6IGNvbXBvbmVudFN0YXRlRmFjdG9yeSwgZGVwczogW0luamVjdG9yXSB9O1xuXG5leHBvcnQgY29uc3QgRXhwb3J0RGF0YVNlcnZpY2VQcm92aWRlciA9IHsgcHJvdmlkZTogT250aW1pemVFeHBvcnREYXRhUHJvdmlkZXJTZXJ2aWNlLCB1c2VGYWN0b3J5OiBleHBvcnREYXRhRmFjdG9yeSwgZGVwczogW0luamVjdG9yXSB9O1xuXG5leHBvcnQgY29uc3QgU2VydmljZVJlcXVlc3RBZGFwdGVyID0geyBwcm92aWRlOiBPbnRpbWl6ZVF1ZXJ5QXJndW1lbnRzQWRhcHRlciwgdXNlRmFjdG9yeTogc2VydmljZVJlcXVlc3RBZGFwdGVyRmFjdG9yeSwgZGVwczogW0luamVjdG9yXSB9O1xuXG5leHBvcnQgY29uc3QgU2VydmljZVJlc3BvbnNlQWRhcHRlciA9IHsgcHJvdmlkZTogT250aW1pemVTZXJ2aWNlUmVzcG9uc2VBZGFwdGVyLCB1c2VGYWN0b3J5OiBzZXJ2aWNlUmVzcG9uc2VBZGFwdGVyRmFjdG9yeSwgZGVwczogW0luamVjdG9yXSB9O1xuXG5leHBvcnQgY29uc3QgTmFtZUNvbnZlbnRpb25Qcm92aWRlciA9IHsgcHJvdmlkZTogTmFtZUNvbnZlbnRpb24sIHVzZUZhY3Rvcnk6IG5hbWVDb252ZW50aW9uU2VydmljZUZhY3RvcnksIGRlcHM6IFtJbmplY3Rvcl0gfTtcbmV4cG9ydCBjb25zdCBPbnRpbWl6ZUxvY2FsU3RvcmFnZVNlcnZpY2VQcm92aWRlciA9IHsgcHJvdmlkZTogTG9jYWxTdG9yYWdlU2VydmljZSwgdXNlRmFjdG9yeTogbG9jYWxTdG9yYWdlU2VydmljZUZhY3RvcnksIGRlcHM6IFtJbmplY3Rvcl0gfTtcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFV0aWxpdHkgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSB2YWx1ZSBmb3IgdGhlIHByb3ZpZGVkIGluamVjdGlvbiB0b2tlblxuICogQHBhcmFtIHRva2VuIHRoZSBpbmplY3Rpb24gdG9rZW5cbiAqIEBwYXJhbSBpbmplY3RvciB0aGUgaW5qZWN0b3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIF9nZXRJbmplY3Rpb25Ub2tlblZhbHVlPFQ+KHRva2VuOiBJbmplY3Rpb25Ub2tlbjxUPiwgaW5qZWN0b3I6IEluamVjdG9yKTogVCB7XG4gIGxldCBzZXJ2aWNlOiBUO1xuICB0cnkge1xuICAgIHNlcnZpY2UgPSBpbmplY3Rvci5nZXQodG9rZW4pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gTm8gdmFsdWUgcHJvdmlkZWQgZm9yIHRoZSBpbmplY3Rpb24gdG9rZW5cbiAgfVxuICByZXR1cm4gc2VydmljZTtcbn1cblxuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIHByZWZlcmVuY2VzIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBuYW1lQ29udmVudGlvblNlcnZpY2VGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IElOYW1lQ29udmVudGlvbiB7XG5cbiAgY29uc3QgY29uZmlnID0gaW5qZWN0b3IuZ2V0KEFwcENvbmZpZykuZ2V0Q29uZmlndXJhdGlvbigpO1xuXG4gIGlmIChjb25maWc/Lm5hbWVDb252ZW50aW9uID09PSAnbG93ZXInKSB7XG4gICAgcmV0dXJuIG5ldyBOYW1lQ29udmVudGlvbkxvd2VyKCk7XG4gIH0gZWxzZSBpZiAoY29uZmlnPy5uYW1lQ29udmVudGlvbiA9PT0gJ3VwcGVyJykge1xuICAgIHJldHVybiBuZXcgTmFtZUNvbnZlbnRpb25VcHBlcigpO1xuICB9XG4gIHJldHVybiBuZXcgTmFtZUNvbnZlbnRpb24oKTtcbn1cblxuXG5cbiJdfQ==
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3NlcnZpY2VzL2ZhY3Rvcmllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsY0FBYyxFQUNkLHlCQUF5QixFQUN6QixjQUFjLEVBQ2QscUJBQXFCLEVBQ3JCLGdCQUFnQixFQUNoQixjQUFjLEVBQ2Qsc0JBQXNCLEVBQ3RCLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2xCLE1BQU0scUJBQXFCLENBQUM7QUFTN0IsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDeEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDbEYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDM0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDdEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDdEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxpQ0FB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LEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO0FBQzlILE1BQU0sQ0FBQyxNQUFNLG1DQUFtQyxHQUFHLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSwwQkFBMEIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO0FBSzlJLE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxRQUFrQjtJQUU3RCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFFMUQsSUFBSSxNQUFNLEVBQUUsY0FBYyxLQUFLLE9BQU8sRUFBRTtRQUN0QyxPQUFPLElBQUksbUJBQW1CLEVBQUUsQ0FBQztLQUNsQztTQUFNLElBQUksTUFBTSxFQUFFLGNBQWMsS0FBSyxPQUFPLEVBQUU7UUFDN0MsT0FBTyxJQUFJLG1CQUFtQixFQUFFLENBQUM7S0FDbEM7SUFDRCxPQUFPLElBQUksY0FBYyxFQUFFLENBQUM7QUFDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFwcENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy9hcHAtY29uZmlnJztcbmltcG9ydCB7XG4gIE9fQVVUSF9TRVJWSUNFLFxuICBPX0NPTVBPTkVOVF9TVEFURV9TRVJWSUNFLFxuICBPX0RBVEFfU0VSVklDRSxcbiAgT19FWFBPUlRfREFUQV9TRVJWSUNFLFxuICBPX0VYUE9SVF9TRVJWSUNFLFxuICBPX0ZJTEVfU0VSVklDRSxcbiAgT19MT0NBTFNUT1JBR0VfU0VSVklDRSxcbiAgT19QRVJNSVNTSU9OX1NFUlZJQ0UsXG4gIE9fUkVTUE9OU0VfQURBUFRFUixcbiAgT19SRVFVRVNUX0FEQVBURVJcbn0gZnJvbSAnLi4vaW5qZWN0aW9uLXRva2Vucyc7XG5pbXBvcnQgeyBJRXhwb3J0RGF0YVByb3ZpZGVyIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9leHBvcnQtZGF0YS1wcm92aWRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUV4cG9ydFNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2V4cG9ydC1zZXJ2aWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJRmlsZVNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2ZpbGUtc2VydmljZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUxvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2xvY2FsLXNlcnZpY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IElOYW1lQ29udmVudGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvbmFtZS1jb252ZW50aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wZXJtaXNzaW9ucy1zZXJ2aWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wcmVmZXJlY2VzLXNlcnZpY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IElTZXJ2aWNlUmVzcG9uc2VBZGFwdGVyIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zZXJ2aWNlLXJlc3BvbnNlLWFkYXB0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IF9nZXRJbmplY3Rpb25Ub2tlblZhbHVlIH0gZnJvbSAnLi4vdXRpbC9pbmplY3Rpb24tdG9rZW4udXRpbHMnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlUmVzcG9uc2UgfSBmcm9tICcuL2Jhc2Utc2VydmljZS1yZXNwb25zZS5jbGFzcyc7XG5pbXBvcnQgeyBKU09OQVBJUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi9qc29uYXBpL2pzb25hcGktcHJlZmVyZW5jZXMuc2VydmljZSc7XG5pbXBvcnQgeyBKU09OQVBJU2VydmljZVJlc3BvbnNlQWRhcHRlciB9IGZyb20gJy4vanNvbmFwaS9qc29uYXBpLXNlcnZpY2UtcmVzcG9uc2UuYWRhcHRlcic7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9sb2NhbC1zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmFtZUNvbnZlbnRpb25Mb3dlciB9IGZyb20gJy4vbmFtZS1jb252ZW50aW9uL25hbWUtY29udmVudGlvbi1sb3dlci5zZXJ2aWNlJztcbmltcG9ydCB7IE5hbWVDb252ZW50aW9uVXBwZXIgfSBmcm9tICcuL25hbWUtY29udmVudGlvbi9uYW1lLWNvbnZlbnRpb24tdXBwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBOYW1lQ29udmVudGlvbiB9IGZyb20gJy4vbmFtZS1jb252ZW50aW9uL25hbWUtY29udmVudGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplQXV0aFNlcnZpY2UgfSBmcm9tICcuL28tYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplRXhwb3J0RGF0YVByb3ZpZGVyU2VydmljZTNYIH0gZnJvbSAnLi9vbnRpbWl6ZS1leHBvcnQtZGF0YS1wcm92aWRlci0zeC5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplRXhwb3J0RGF0YVByb3ZpZGVyU2VydmljZSB9IGZyb20gJy4vb250aW1pemUtZXhwb3J0LWRhdGEtcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBPbnRpbWl6ZUV4cG9ydFNlcnZpY2UzWCB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUtZXhwb3J0LTN4eC5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplRXhwb3J0U2VydmljZSB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUtZXhwb3J0LnNlcnZpY2UnO1xuaW1wb3J0IHsgT250aW1pemVGaWxlU2VydmljZSB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUtZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi9vbnRpbWl6ZS9vbnRpbWl6ZS1wcmVmZXJlbmNlcy5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplU2VydmljZVJlc3BvbnNlQWRhcHRlciB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUtc2VydmljZS1yZXNwb25zZS5hZGFwdGVyJztcbmltcG9ydCB7IE9udGltaXplU2VydmljZSB9IGZyb20gJy4vb250aW1pemUvb250aW1pemUuc2VydmljZSc7XG5pbXBvcnQgeyBPbnRpbWl6ZUVFUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi9wZXJtaXNzaW9ucy9vbnRpbWl6ZS1lZS1wZXJtaXNzaW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi9wZXJtaXNzaW9ucy9vbnRpbWl6ZS1wZXJtaXNzaW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IElCYXNlUmVxdWVzdEFyZ3VtZW50IH0gZnJvbSAnLi9yZXF1ZXN0LWFkYXB0ZXIvYmFzZS1yZXF1ZXN0LWFyZ3VtZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBKU09OQVBJUmVxdWVzdEFyZ3VtZW50c0FkYXB0ZXIgfSBmcm9tICcuL3JlcXVlc3QtYWRhcHRlci9qc29uYXBpLXJlcXVlc3QtYXJndW1lbnRzLmFkYXB0ZXInO1xuaW1wb3J0IHsgT250aW1pemVSZXF1ZXN0QXJndW1lbnRzQWRhcHRlciB9IGZyb20gJy4vcmVxdWVzdC1hZGFwdGVyL29udGltaXplLXJlcXVlc3QtYXJndW1lbnRzLmFkYXB0ZXInO1xuaW1wb3J0IHsgQWJzdHJhY3RDb21wb25lbnRTdGF0ZVNlcnZpY2UsIERlZmF1bHRDb21wb25lbnRTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL3N0YXRlL28tY29tcG9uZW50LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmFjdG9yeVV0aWwgfSBmcm9tICcuLi91dGlsL2ZhY3RvcnkudXRpbCc7XG5cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZBQ1RPUklFUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGRhdGEgc2VydmljZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRhdGFTZXJ2aWNlRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBhbnkge1xuICBjb25zdCBzZXJ2aWNlQ2xhc3MgPSBfZ2V0SW5qZWN0aW9uVG9rZW5WYWx1ZShPX0RBVEFfU0VSVklDRSwgaW5qZWN0b3IpO1xuICBjb25zdCBzZXJ2aWNlID0gVXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2Uoc2VydmljZUNsYXNzLCBpbmplY3Rvcik7XG4gIGlmIChVdGlsLmlzRGVmaW5lZChzZXJ2aWNlKSkge1xuICAgIHJldHVybiBzZXJ2aWNlO1xuICB9XG4gIGNvbnN0IGNvbmZpZyA9IGluamVjdG9yLmdldChBcHBDb25maWcpLmdldENvbmZpZ3VyYXRpb24oKTtcbiAgY29uc3Qgc2VydmljZVR5cGUgPSBjb25maWcuc2VydmljZVR5cGU7XG4gIHJldHVybiBGYWN0b3J5VXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2VCeVR5cGUoc2VydmljZVR5cGUsIGluamVjdG9yKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlQ2xhc3M6IGFueSwgaW5qZWN0b3I6IEluamVjdG9yKTogYW55IHtcbiAgcmV0dXJuIFV0aWwuY3JlYXRlU2VydmljZUluc3RhbmNlKHNlcnZpY2VDbGFzcywgaW5qZWN0b3IpO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGZpbGUgc2VydmljZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbGVTZXJ2aWNlRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBJRmlsZVNlcnZpY2Uge1xuICBjb25zdCBzZXJ2aWNlQ2xhc3MgPSBfZ2V0SW5qZWN0aW9uVG9rZW5WYWx1ZShPX0ZJTEVfU0VSVklDRSwgaW5qZWN0b3IpO1xuICBjb25zdCBzZXJ2aWNlID0gVXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2Uoc2VydmljZUNsYXNzLCBpbmplY3Rvcik7XG4gIHJldHVybiBVdGlsLmlzRGVmaW5lZChzZXJ2aWNlKSA/IHNlcnZpY2UgOiBuZXcgT250aW1pemVGaWxlU2VydmljZShpbmplY3Rvcik7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgbG9jYWwgc3RvcmFnZSBzZXJ2aWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9jYWxTdG9yYWdlU2VydmljZUZhY3RvcnkoaW5qZWN0b3I6IEluamVjdG9yKTogSUxvY2FsU3RvcmFnZVNlcnZpY2Uge1xuICBjb25zdCBzZXJ2aWNlQ2xhc3MgPSBfZ2V0SW5qZWN0aW9uVG9rZW5WYWx1ZShPX0xPQ0FMU1RPUkFHRV9TRVJWSUNFLCBpbmplY3Rvcik7XG4gIGNvbnN0IHNlcnZpY2UgPSBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlQ2xhc3MsIGluamVjdG9yKTtcbiAgcmV0dXJuIFV0aWwuaXNEZWZpbmVkKHNlcnZpY2UpID8gc2VydmljZSA6IG5ldyBMb2NhbFN0b3JhZ2VTZXJ2aWNlKGluamVjdG9yKTtcbn1cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgZXhwb3J0YXRpb24gc2VydmljZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4cG9ydFNlcnZpY2VGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IElFeHBvcnRTZXJ2aWNlIHtcbiAgY29uc3Qgc2VydmljZUNsYXNzID0gX2dldEluamVjdGlvblRva2VuVmFsdWUoT19FWFBPUlRfU0VSVklDRSwgaW5qZWN0b3IpO1xuICBjb25zdCBzZXJ2aWNlID0gVXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2Uoc2VydmljZUNsYXNzLCBpbmplY3Rvcik7XG4gIGlmIChVdGlsLmlzRGVmaW5lZChzZXJ2aWNlKSkge1xuICAgIHJldHVybiBzZXJ2aWNlO1xuICB9XG4gIGNvbnN0IGNvbmZpZyA9IGluamVjdG9yLmdldChBcHBDb25maWcpLmdldENvbmZpZ3VyYXRpb24oKTtcblxuICBpZiAodHlwZW9mIChjb25maWcuZXhwb3J0U2VydmljZVR5cGUpID09PSAndW5kZWZpbmVkJykge1xuICAgIGlmIChjb25maWcuZXhwb3J0Q29uZmlndXJhdGlvbikge1xuICAgICAgcmV0dXJuIG5ldyBPbnRpbWl6ZUV4cG9ydFNlcnZpY2UzWChpbmplY3Rvcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuZXcgT250aW1pemVFeHBvcnRTZXJ2aWNlKGluamVjdG9yKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFV0aWwuY3JlYXRlU2VydmljZUluc3RhbmNlKGNvbmZpZy5leHBvcnRTZXJ2aWNlVHlwZSwgaW5qZWN0b3IpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhwb3J0RGF0YUZhY3RvcnkoaW5qZWN0b3I6IEluamVjdG9yKTogSUV4cG9ydERhdGFQcm92aWRlciB7XG4gIGNvbnN0IHByb3ZpZGVyID0gX2dldEluamVjdGlvblRva2VuVmFsdWUoT19FWFBPUlRfREFUQV9TRVJWSUNFLCBpbmplY3Rvcik7XG4gIGNvbnN0IHNlcnZpY2UgPSBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShwcm92aWRlciwgaW5qZWN0b3IpO1xuICBpZiAoVXRpbC5pc0RlZmluZWQoc2VydmljZSkpIHtcbiAgICByZXR1cm4gc2VydmljZTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBjb25maWcgPSBpbmplY3Rvci5nZXQoQXBwQ29uZmlnKS5nZXRDb25maWd1cmF0aW9uKCk7XG4gICAgaWYgKHR5cGVvZiAoY29uZmlnLmV4cG9ydENvbmZpZ3VyYXRpb24pID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIG5ldyBPbnRpbWl6ZUV4cG9ydERhdGFQcm92aWRlclNlcnZpY2UoaW5qZWN0b3IpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbmV3IE9udGltaXplRXhwb3J0RGF0YVByb3ZpZGVyU2VydmljZTNYKGluamVjdG9yKTtcbiAgICB9XG4gIH1cblxufVxuZXhwb3J0IGZ1bmN0aW9uIHNlcnZpY2VSZXF1ZXN0QWRhcHRlckZhY3RvcnkoaW5qZWN0b3I6IEluamVjdG9yKTogSUJhc2VSZXF1ZXN0QXJndW1lbnQge1xuXG4gIGNvbnN0IHNlcnZpY2VDbGFzcyA9IF9nZXRJbmplY3Rpb25Ub2tlblZhbHVlKE9fUkVRVUVTVF9BREFQVEVSLCBpbmplY3Rvcik7XG4gIGNvbnN0IHNlcnZpY2UgPSBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlQ2xhc3MsIGluamVjdG9yKTtcblxuICBpZiAoVXRpbC5pc0RlZmluZWQoc2VydmljZSkpIHtcbiAgICByZXR1cm4gc2VydmljZTtcbiAgfVxuXG4gIGNvbnN0IGNvbmZpZyA9IGluamVjdG9yLmdldChBcHBDb25maWcpLmdldENvbmZpZ3VyYXRpb24oKTtcbiAgaWYgKCFVdGlsLmlzRGVmaW5lZChjb25maWcuc2VydmljZVR5cGUpIHx8XG4gICAgRmFjdG9yeVV0aWwuaXNPbnRpbWl6ZUVFU2VydmljZShpbmplY3RvcikpIHtcbiAgICByZXR1cm4gbmV3IE9udGltaXplUmVxdWVzdEFyZ3VtZW50c0FkYXB0ZXIoKTtcbiAgfSBlbHNlIGlmIChGYWN0b3J5VXRpbC5pc0pzb25BcGlTZXJ2aWNlKGluamVjdG9yKSkge1xuICAgIHJldHVybiBuZXcgSlNPTkFQSVJlcXVlc3RBcmd1bWVudHNBZGFwdGVyKCk7XG4gIH1cbiAgcmV0dXJuIG5ldyBPbnRpbWl6ZVJlcXVlc3RBcmd1bWVudHNBZGFwdGVyKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXJ2aWNlUmVzcG9uc2VBZGFwdGVyRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBJU2VydmljZVJlc3BvbnNlQWRhcHRlcjxCYXNlU2VydmljZVJlc3BvbnNlPiB7XG4gIGNvbnN0IHNlcnZpY2VDbGFzcyA9IF9nZXRJbmplY3Rpb25Ub2tlblZhbHVlKE9fUkVTUE9OU0VfQURBUFRFUiwgaW5qZWN0b3IpO1xuICBjb25zdCBzZXJ2aWNlID0gVXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2Uoc2VydmljZUNsYXNzLCBpbmplY3Rvcik7XG5cbiAgaWYgKFV0aWwuaXNEZWZpbmVkKHNlcnZpY2UpKSB7XG4gICAgcmV0dXJuIHNlcnZpY2U7XG4gIH1cbiAgY29uc3QgY29uZmlnID0gaW5qZWN0b3IuZ2V0KEFwcENvbmZpZykuZ2V0Q29uZmlndXJhdGlvbigpO1xuICBpZiAoIVV0aWwuaXNEZWZpbmVkKGNvbmZpZy5zZXJ2aWNlVHlwZSkgfHxcbiAgICAoRmFjdG9yeVV0aWwuaXNPbnRpbWl6ZUVFU2VydmljZShpbmplY3RvcikpKSB7XG4gICAgcmV0dXJuIG5ldyBPbnRpbWl6ZVNlcnZpY2VSZXNwb25zZUFkYXB0ZXIoKTtcbiAgfSBlbHNlIGlmIChGYWN0b3J5VXRpbC5pc0pzb25BcGlTZXJ2aWNlKGluamVjdG9yKSkge1xuXG4gICAgcmV0dXJuIG5ldyBKU09OQVBJU2VydmljZVJlc3BvbnNlQWRhcHRlcigpO1xuICB9XG4gIHJldHVybiBuZXcgSlNPTkFQSVNlcnZpY2VSZXNwb25zZUFkYXB0ZXIoKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBwZXJtaXNzaW9uIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwZXJtaXNzaW9uc1NlcnZpY2VGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IElQZXJtaXNzaW9uc1NlcnZpY2Uge1xuICBjb25zdCBzZXJ2aWNlQ2xhc3MgPSBfZ2V0SW5qZWN0aW9uVG9rZW5WYWx1ZShPX1BFUk1JU1NJT05fU0VSVklDRSwgaW5qZWN0b3IpO1xuICBjb25zdCBzZXJ2aWNlID0gVXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2Uoc2VydmljZUNsYXNzLCBpbmplY3Rvcik7XG4gIGlmIChVdGlsLmlzRGVmaW5lZChzZXJ2aWNlKSkge1xuICAgIHJldHVybiBzZXJ2aWNlO1xuICB9XG4gIGNvbnN0IGNvbmZpZyA9IGluamVjdG9yLmdldChBcHBDb25maWcpLmdldENvbmZpZ3VyYXRpb24oKTtcblxuICBpZiAoIVV0aWwuaXNEZWZpbmVkKGNvbmZpZy5wZXJtaXNzaW9uc1NlcnZpY2VUeXBlKSB8fCAnT250aW1pemVFRVBlcm1pc3Npb25zJyA9PT0gY29uZmlnLnBlcm1pc3Npb25zU2VydmljZVR5cGUpIHtcbiAgICByZXR1cm4gbmV3IE9udGltaXplRUVQZXJtaXNzaW9uc1NlcnZpY2UoaW5qZWN0b3IpO1xuICB9IGVsc2UgaWYgKCdPbnRpbWl6ZVBlcm1pc3Npb25zJyA9PT0gY29uZmlnLnBlcm1pc3Npb25zU2VydmljZVR5cGUpIHtcbiAgICByZXR1cm4gbmV3IE9udGltaXplUGVybWlzc2lvbnNTZXJ2aWNlKGluamVjdG9yKTtcbiAgfVxuICByZXR1cm4gVXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2UoY29uZmlnLnBlcm1pc3Npb25zU2VydmljZVR5cGUsIGluamVjdG9yKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBwcmVmZXJlbmNlcyBzZXJ2aWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJlZmVyZW5jZXNTZXJ2aWNlRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBJUHJlZmVyZW5jZXNTZXJ2aWNlIHtcblxuICBjb25zdCBjb25maWcgPSBpbmplY3Rvci5nZXQoQXBwQ29uZmlnKS5nZXRDb25maWd1cmF0aW9uKCk7XG5cbiAgaWYgKCFVdGlsLmlzRGVmaW5lZChjb25maWcuc2VydmljZVR5cGUpIHx8IEZhY3RvcnlVdGlsLmlzT250aW1pemVFRVNlcnZpY2UoaW5qZWN0b3IpKSB7XG4gICAgcmV0dXJuIG5ldyBPbnRpbWl6ZVByZWZlcmVuY2VzU2VydmljZShpbmplY3Rvcik7XG4gIH0gZWxzZSBpZiAoRmFjdG9yeVV0aWwuaXNKc29uQXBpU2VydmljZShpbmplY3RvcikpIHtcbiAgICByZXR1cm4gbmV3IEpTT05BUElQcmVmZXJlbmNlc1NlcnZpY2UoaW5qZWN0b3IpO1xuICB9XG4gIHJldHVybiBuZXcgSlNPTkFQSVByZWZlcmVuY2VzU2VydmljZShpbmplY3Rvcik7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgYXV0aGVudGljYXRpb24gc2VydmljZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGF1dGhTZXJ2aWNlRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBBdXRoU2VydmljZSB7XG4gIGNvbnN0IHNlcnZpY2VDbGFzcyA9IF9nZXRJbmplY3Rpb25Ub2tlblZhbHVlKE9fQVVUSF9TRVJWSUNFLCBpbmplY3Rvcik7XG4gIGNvbnN0IHNlcnZpY2UgPSBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlQ2xhc3MsIGluamVjdG9yKTtcbiAgcmV0dXJuIFV0aWwuaXNEZWZpbmVkKHNlcnZpY2UpID8gc2VydmljZSA6IG5ldyBPbnRpbWl6ZUF1dGhTZXJ2aWNlKGluamVjdG9yKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvbmVudFN0YXRlRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBBYnN0cmFjdENvbXBvbmVudFN0YXRlU2VydmljZTxhbnksIGFueT4ge1xuICBjb25zdCBzZXJ2aWNlID0gX2dldEluamVjdGlvblRva2VuVmFsdWUoT19DT01QT05FTlRfU1RBVEVfU0VSVklDRSwgaW5qZWN0b3IpO1xuICByZXR1cm4gVXRpbC5pc0RlZmluZWQoc2VydmljZSkgPyBzZXJ2aWNlIDogbmV3IERlZmF1bHRDb21wb25lbnRTdGF0ZVNlcnZpY2UoaW5qZWN0b3IpO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQUk9WSURFUlMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBVc2luZyB0aGUgc2FtZSBwcm92aWRlciBtdWx0aXBsZSB0aW1lcyBhY2Nyb3NzIHRoZSBwcm9qZWN0IHByb2R1Y2VzIG5hbWVzcGFjZXMgY29uZmxpY3RzIHdoZW5cbiAqIGJ1aWxkaW5nIHdpdGggbmctcGFja2Fnciwgc28gd2UgcmV1c2VkIHRoZSBwcm92aWRlcnMgZGVmaW5lZCBoZXJlLlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5leHBvcnQgY29uc3QgT250aW1pemVTZXJ2aWNlUHJvdmlkZXIgPSB7IHByb3ZpZGU6IE9udGltaXplU2VydmljZSwgdXNlRmFjdG9yeTogZGF0YVNlcnZpY2VGYWN0b3J5LCBkZXBzOiBbSW5qZWN0b3JdIH07XG5cbmV4cG9ydCBjb25zdCBPbnRpbWl6ZUV4cG9ydFNlcnZpY2VQcm92aWRlciA9IHsgcHJvdmlkZTogT250aW1pemVFeHBvcnRTZXJ2aWNlLCB1c2VGYWN0b3J5OiBleHBvcnRTZXJ2aWNlRmFjdG9yeSwgZGVwczogW0luamVjdG9yXSB9O1xuXG5leHBvcnQgY29uc3QgT250aW1pemVBdXRoU2VydmljZVByb3ZpZGVyID0geyBwcm92aWRlOiBBdXRoU2VydmljZSwgdXNlRmFjdG9yeTogYXV0aFNlcnZpY2VGYWN0b3J5LCBkZXBzOiBbSW5qZWN0b3JdIH07XG5cbmV4cG9ydCBjb25zdCBDb21wb25lbnRTdGF0ZVNlcnZpY2VQcm92aWRlciA9IHsgcHJvdmlkZTogQWJzdHJhY3RDb21wb25lbnRTdGF0ZVNlcnZpY2UsIHVzZUZhY3Rvcnk6IGNvbXBvbmVudFN0YXRlRmFjdG9yeSwgZGVwczogW0luamVjdG9yXSB9O1xuXG5leHBvcnQgY29uc3QgRXhwb3J0RGF0YVNlcnZpY2VQcm92aWRlciA9IHsgcHJvdmlkZTogT250aW1pemVFeHBvcnREYXRhUHJvdmlkZXJTZXJ2aWNlLCB1c2VGYWN0b3J5OiBleHBvcnREYXRhRmFjdG9yeSwgZGVwczogW0luamVjdG9yXSB9O1xuXG5leHBvcnQgY29uc3QgU2VydmljZVJlcXVlc3RBZGFwdGVyID0geyBwcm92aWRlOiBPbnRpbWl6ZVJlcXVlc3RBcmd1bWVudHNBZGFwdGVyLCB1c2VGYWN0b3J5OiBzZXJ2aWNlUmVxdWVzdEFkYXB0ZXJGYWN0b3J5LCBkZXBzOiBbSW5qZWN0b3JdIH07XG5cbmV4cG9ydCBjb25zdCBTZXJ2aWNlUmVzcG9uc2VBZGFwdGVyID0geyBwcm92aWRlOiBPbnRpbWl6ZVNlcnZpY2VSZXNwb25zZUFkYXB0ZXIsIHVzZUZhY3Rvcnk6IHNlcnZpY2VSZXNwb25zZUFkYXB0ZXJGYWN0b3J5LCBkZXBzOiBbSW5qZWN0b3JdIH07XG5cbmV4cG9ydCBjb25zdCBOYW1lQ29udmVudGlvblByb3ZpZGVyID0geyBwcm92aWRlOiBOYW1lQ29udmVudGlvbiwgdXNlRmFjdG9yeTogbmFtZUNvbnZlbnRpb25TZXJ2aWNlRmFjdG9yeSwgZGVwczogW0luamVjdG9yXSB9O1xuZXhwb3J0IGNvbnN0IE9udGltaXplTG9jYWxTdG9yYWdlU2VydmljZVByb3ZpZGVyID0geyBwcm92aWRlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlLCB1c2VGYWN0b3J5OiBsb2NhbFN0b3JhZ2VTZXJ2aWNlRmFjdG9yeSwgZGVwczogW0luamVjdG9yXSB9O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIHByZWZlcmVuY2VzIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBuYW1lQ29udmVudGlvblNlcnZpY2VGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IElOYW1lQ29udmVudGlvbiB7XG5cbiAgY29uc3QgY29uZmlnID0gaW5qZWN0b3IuZ2V0KEFwcENvbmZpZykuZ2V0Q29uZmlndXJhdGlvbigpO1xuXG4gIGlmIChjb25maWc/Lm5hbWVDb252ZW50aW9uID09PSAnbG93ZXInKSB7XG4gICAgcmV0dXJuIG5ldyBOYW1lQ29udmVudGlvbkxvd2VyKCk7XG4gIH0gZWxzZSBpZiAoY29uZmlnPy5uYW1lQ29udmVudGlvbiA9PT0gJ3VwcGVyJykge1xuICAgIHJldHVybiBuZXcgTmFtZUNvbnZlbnRpb25VcHBlcigpO1xuICB9XG4gIHJldHVybiBuZXcgTmFtZUNvbnZlbnRpb24oKTtcbn1cblxuXG5cbiJdfQ==
|
|
@@ -32,8 +32,8 @@ export * from './translate/index';
|
|
|
32
32
|
export * from './ontimize-export-data-provider-3x.service';
|
|
33
33
|
export * from './ontimize-export-data-provider.service';
|
|
34
34
|
export * from './appearance.service';
|
|
35
|
-
export * from './
|
|
35
|
+
export * from './request-adapter/index';
|
|
36
36
|
export * from './name-convention/index';
|
|
37
37
|
export * from './pagination-context.service';
|
|
38
38
|
export * from './base-data-service.class';
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FwcC1jb25maWcucHJvdmlkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9hcHAtbWVudS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aC1ndWFyZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1zZXJ2aWNlLXJlc3BvbnNlLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1zZXJ2aWNlLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vY3VycmVuY3kuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpYWxvZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZmFjdG9yaWVzJztcbmV4cG9ydCAqIGZyb20gJy4vaWNvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbG9naW4tc3RvcmFnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9tZW50LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9udW1iZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL28tYXV0aC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vby1lcnJvci1kaWFsb2ctbWFuYWdlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vby1icmVhZGNydW1iLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWZvcm0tbGF5b3V0LW1hbmFnZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL28tbW9kdWxlcy1pbmZvLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9vLXVzZXItaW5mby5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vb250aW1pemUtaWNvbi1yZWdpc3RyeS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vb250aW1pemUvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9qc29uYXBpL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vcGFyc2VyL28tc2VydmljZS1yZXNwb25zZS5wYXJzZXInO1xuZXhwb3J0ICogZnJvbSAnLi9wZXJtaXNzaW9ucy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3JlbW90ZS1jb25maWcuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlLWNhbi1hY3RpdmF0ZS1jaGlsZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc25hY2tiYXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0YXRlL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNsYXRlL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vb250aW1pemUtZXhwb3J0LWRhdGEtcHJvdmlkZXItM3guc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL29udGltaXplLWV4cG9ydC1kYXRhLXByb3ZpZGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcHBlYXJhbmNlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXF1ZXN0LWFkYXB0ZXIvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9uYW1lLWNvbnZlbnRpb24vaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9wYWdpbmF0aW9uLWNvbnRleHQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtZGF0YS1zZXJ2aWNlLmNsYXNzJztcbiJdfQ==
|
|
@@ -22,7 +22,7 @@ export class JSONAPIPreferencesService extends JSONAPIService {
|
|
|
22
22
|
savePreferences(id, preferencesparams) {
|
|
23
23
|
preferencesparams = this.parseObjectToPreference(preferencesparams);
|
|
24
24
|
preferencesparams = OPreferenceMappingUtils.jsonApiPreferencesDataMapping(preferencesparams);
|
|
25
|
-
return super.update(
|
|
25
|
+
return super.update(id.toString(), preferencesparams, 'Preference');
|
|
26
26
|
}
|
|
27
27
|
getPreferences(entity, service, type) {
|
|
28
28
|
let queryParams = { fields: {}, filter: {} };
|
|
@@ -44,4 +44,4 @@ JSONAPIPreferencesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.
|
|
|
44
44
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: JSONAPIPreferencesService, decorators: [{
|
|
45
45
|
type: Injectable
|
|
46
46
|
}] });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbmFwaS1wcmVmZXJlbmNlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3NlcnZpY2VzL2pzb25hcGkvanNvbmFwaS1wcmVmZXJlbmNlcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQUc3RSxNQUFNLE9BQU8seUJBQTBCLFNBQVEsY0FBYztJQUVwRCxnQkFBZ0IsQ0FBQyxNQUFXO1FBQ2pDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQTtJQUN2RixDQUFDO0lBRVMsdUJBQXVCLENBQUMsaUJBQXlCO1FBQ3pELGlCQUFpQixDQUFDLHNCQUFzQixDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUcsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzdILGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9GLE9BQU8saUJBQWlCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUM5QyxPQUFPLGlCQUFpQixDQUFDO0lBQzNCLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxpQkFBeUI7UUFDaEQsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDcEUsaUJBQWlCLEdBQUcsdUJBQXVCLENBQUMsNkJBQTZCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM3RixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVNLGVBQWUsQ0FBQyxFQUFVLEVBQUUsaUJBQXlCO1FBQzFELGlCQUFpQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3BFLGlCQUFpQixHQUFHLHVCQUF1QixDQUFDLDZCQUE2QixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDN0YsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU0sY0FBYyxDQUFDLE1BQWMsRUFBRSxPQUFlLEVBQUUsSUFBWTtRQUNqRSxJQUFJLFdBQVcsR0FBMEIsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUVwRSxJQUFJLE1BQU0sR0FBRyxFQUFFLFVBQVUsRUFBRSx5R0FBeUcsRUFBRSxDQUFDO1FBQ3ZJLFdBQVcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUNyRCxXQUFXLENBQUMsTUFBTSxHQUFHLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxHQUFHLEdBQUcsR0FBRyxPQUFPLEVBQUUsY0FBYyxFQUFFLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQy9HLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBR00saUJBQWlCLENBQUMsRUFBVztRQUNsQyxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNoRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDcEIsTUFBTSxFQUFFLFFBQVE7WUFDaEIsR0FBRyxFQUFFLEdBQUc7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDOztzSEEzQ1UseUJBQXlCOzBIQUF6Qix5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSlNPTkFQSVF1ZXJ5UGFyYW1ldGVyIH0gZnJvbSAnLi4vLi4vdHlwZXMvanNvbi1xdWVyeS1wYXJhbWV0ZXIudHlwZSc7XG5pbXBvcnQgeyBKU09OQVBJU2VydmljZSB9IGZyb20gJy4vanNvbmFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IE9QcmVmZXJlbmNlTWFwcGluZ1V0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbC9wcmVmZXJlbmNlLW1hcHBpbmctdXRpbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBKU09OQVBJUHJlZmVyZW5jZXNTZXJ2aWNlIGV4dGVuZHMgSlNPTkFQSVNlcnZpY2Uge1xuXG4gIHB1YmxpYyBjb25maWd1cmVTZXJ2aWNlKGNvbmZpZzogYW55KTogdm9pZCB7XG4gICAgc3VwZXIuY29uZmlndXJlU2VydmljZShjb25maWcpO1xuICAgIHRoaXMucGF0aCA9IGNvbmZpZ1sncHJlZmVyZW5jZXMnXT8ucGF0aCA/IGNvbmZpZ1sncHJlZmVyZW5jZXMnXT8ucGF0aCA6ICcvUHJlZmVyZW5jZSdcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXJzZU9iamVjdFRvUHJlZmVyZW5jZShwcmVmZXJlbmNlc3BhcmFtczogb2JqZWN0KSB7XG4gICAgcHJlZmVyZW5jZXNwYXJhbXNbJ3ByZWZlcmVuY2VwYXJhbWV0ZXJzJ10gPSBidG9hKEpTT04uc3RyaW5naWZ5KHByZWZlcmVuY2VzcGFyYW1zWydwcmVmZXJlbmNlcGFyYW1ldGVycyddKSk7XG4gICAgcHJlZmVyZW5jZXNwYXJhbXNbJ3ByZWZlcmVuY2VlbnRpdHknXSA9IHByZWZlcmVuY2VzcGFyYW1zWydwcmVmZXJlbmNlZW50aXR5J10gKyAnLScgKyBwcmVmZXJlbmNlc3BhcmFtc1sncHJlZmVyZW5jZXNlcnZpY2UnXTtcbiAgICBwcmVmZXJlbmNlc3BhcmFtc1sncHJlZmVyZW5jZXR5cGUnXSA9IHByZWZlcmVuY2VzcGFyYW1zWydwcmVmZXJlbmNldHlwZSddID09PSAnUkVQT1JUJyA/IDAgOiAxO1xuICAgIGRlbGV0ZSBwcmVmZXJlbmNlc3BhcmFtc1sncHJlZmVyZW5jZXNlcnZpY2UnXTtcbiAgICByZXR1cm4gcHJlZmVyZW5jZXNwYXJhbXM7XG4gIH1cblxuICBwdWJsaWMgc2F2ZUFzUHJlZmVyZW5jZXMocHJlZmVyZW5jZXNwYXJhbXM6IG9iamVjdCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcHJlZmVyZW5jZXNwYXJhbXMgPSB0aGlzLnBhcnNlT2JqZWN0VG9QcmVmZXJlbmNlKHByZWZlcmVuY2VzcGFyYW1zKTtcbiAgICBwcmVmZXJlbmNlc3BhcmFtcyA9IE9QcmVmZXJlbmNlTWFwcGluZ1V0aWxzLmpzb25BcGlQcmVmZXJlbmNlc0RhdGFNYXBwaW5nKHByZWZlcmVuY2VzcGFyYW1zKTtcbiAgICByZXR1cm4gc3VwZXIuaW5zZXJ0KHByZWZlcmVuY2VzcGFyYW1zLCAnUHJlZmVyZW5jZScpO1xuICB9XG5cbiAgcHVibGljIHNhdmVQcmVmZXJlbmNlcyhpZDogbnVtYmVyLCBwcmVmZXJlbmNlc3BhcmFtczogb2JqZWN0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBwcmVmZXJlbmNlc3BhcmFtcyA9IHRoaXMucGFyc2VPYmplY3RUb1ByZWZlcmVuY2UocHJlZmVyZW5jZXNwYXJhbXMpO1xuICAgIHByZWZlcmVuY2VzcGFyYW1zID0gT1ByZWZlcmVuY2VNYXBwaW5nVXRpbHMuanNvbkFwaVByZWZlcmVuY2VzRGF0YU1hcHBpbmcocHJlZmVyZW5jZXNwYXJhbXMpO1xuICAgIHJldHVybiBzdXBlci51cGRhdGUoaWQudG9TdHJpbmcoKSwgcHJlZmVyZW5jZXNwYXJhbXMsICdQcmVmZXJlbmNlJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UHJlZmVyZW5jZXMoZW50aXR5OiBzdHJpbmcsIHNlcnZpY2U6IHN0cmluZywgdHlwZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgcXVlcnlQYXJhbXM6IEpTT05BUElRdWVyeVBhcmFtZXRlciA9IHsgZmllbGRzOiB7fSwgZmlsdGVyOiB7fSB9O1xuXG4gICAgbGV0IGZpZWxkcyA9IHsgcHJlZmVyZW5jZTogJ1BSRUZFUkVOQ0VJRCxQUkVGRVJFTkNFTkFNRSxQUkVGRVJFTkNFREVTQ1JJUFRJT04sUFJFRkVSRU5DRVBSRUZFUkVOQ0VTLFBSRUZFUkVOQ0VFTlRJVFksUFJFRkVSRU5DRVRZUEUnIH07XG4gICAgcXVlcnlQYXJhbXMuZmllbGRzWydQcmVmZXJlbmNlJ10gPSBmaWVsZHMucHJlZmVyZW5jZTtcbiAgICBxdWVyeVBhcmFtcy5maWx0ZXIgPSB7IHByZWZlcmVuY2VlbnRpdHk6IGVudGl0eSArICctJyArIHNlcnZpY2UsIHByZWZlcmVuY2V0eXBlOiAodHlwZSA9PT0gJ1JFUE9SVCcgPyAwIDogMSkgfTtcbiAgICByZXR1cm4gc3VwZXIucXVlcnkocXVlcnlQYXJhbXMpO1xuICB9XG5cblxuICBwdWJsaWMgZGVsZXRlUHJlZmVyZW5jZXMoaWQ/OiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMudXJsQmFzZX0ke3RoaXMucGF0aH0vJHtpZH1gO1xuICAgIHJldHVybiB0aGlzLmRvUmVxdWVzdCh7XG4gICAgICBtZXRob2Q6ICdERUxFVEUnLFxuICAgICAgdXJsOiB1cmxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -4,12 +4,16 @@ import { Observable, share } from 'rxjs';
|
|
|
4
4
|
import { AppConfig } from '../../config/app-config';
|
|
5
5
|
import { Util } from '../../util/util';
|
|
6
6
|
import { BaseDataService } from '../base-data-service.class';
|
|
7
|
+
import { O_JSON_API_CONFIG } from '../../injection-tokens';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
export class JSONAPIService extends BaseDataService {
|
|
9
10
|
constructor(injector) {
|
|
10
11
|
super(injector);
|
|
11
12
|
this.injector = injector;
|
|
13
|
+
this.DEFAULT_DELIMITER = '_';
|
|
12
14
|
this.config = this.injector.get(AppConfig);
|
|
15
|
+
const jsonApiConfig = this.injector.get(O_JSON_API_CONFIG);
|
|
16
|
+
this.delimiter = jsonApiConfig?.multipleKeyDelimiter || this.DEFAULT_DELIMITER;
|
|
13
17
|
}
|
|
14
18
|
startsession(user, password) {
|
|
15
19
|
const url = this.urlBase + this._startSessionPath;
|
|
@@ -70,11 +74,19 @@ export class JSONAPIService extends BaseDataService {
|
|
|
70
74
|
super.configureService(config);
|
|
71
75
|
this._startSessionPath = this._appConfig.startSessionPath ? this._appConfig.startSessionPath : '/auth/login';
|
|
72
76
|
this.path = config.path;
|
|
77
|
+
this.delimiter = this.getValidDelimiter(config.multipleKeyDelimiter ?? this.delimiter);
|
|
78
|
+
}
|
|
79
|
+
getValidDelimiter(delimiter) {
|
|
80
|
+
if (!delimiter || !/^[_-]$/.test(delimiter)) {
|
|
81
|
+
console.warn(`Delimiter '${delimiter}' is not valid for URL, defaulting to '${this.DEFAULT_DELIMITER}'.`);
|
|
82
|
+
return this.DEFAULT_DELIMITER;
|
|
83
|
+
}
|
|
84
|
+
return delimiter;
|
|
73
85
|
}
|
|
74
86
|
query(queryParams) {
|
|
75
87
|
queryParams = this.parseNameConventionQueryParams(queryParams);
|
|
76
|
-
|
|
77
|
-
const queryParamsString = Util.isDefined(queryParams) ? '?' +
|
|
88
|
+
const queryParamsToString = Util.objectToQueryString(queryParams);
|
|
89
|
+
const queryParamsString = Util.isDefined(queryParams) ? '?' + queryParamsToString : '';
|
|
78
90
|
const url = `${this.urlBase}${this.path}${queryParamsString}`;
|
|
79
91
|
return this.doRequest({
|
|
80
92
|
method: 'GET',
|
|
@@ -88,8 +100,8 @@ export class JSONAPIService extends BaseDataService {
|
|
|
88
100
|
}
|
|
89
101
|
queryById(queryParams) {
|
|
90
102
|
queryParams = this.parseNameConventionQueryParams(queryParams);
|
|
91
|
-
const
|
|
92
|
-
const url = `${this.urlBase}${this.path}/${
|
|
103
|
+
const serializedId = this.serializeCompositeKey(queryParams.filter);
|
|
104
|
+
const url = `${this.urlBase}${this.path}/${serializedId}`;
|
|
93
105
|
return this.doRequest({
|
|
94
106
|
method: 'GET',
|
|
95
107
|
url: url,
|
|
@@ -97,6 +109,29 @@ export class JSONAPIService extends BaseDataService {
|
|
|
97
109
|
errorCallBack: this.parseUnsuccessfulQueryResponse,
|
|
98
110
|
});
|
|
99
111
|
}
|
|
112
|
+
serializeCompositeKey(keyObj) {
|
|
113
|
+
if (keyObj == null) {
|
|
114
|
+
console.warn('JSONAPI Service: Key object is null or undefined.');
|
|
115
|
+
return '';
|
|
116
|
+
}
|
|
117
|
+
if (typeof keyObj === 'string') {
|
|
118
|
+
if (keyObj.trim() === '') {
|
|
119
|
+
console.warn('JSONAPI Service: Key string is empty.');
|
|
120
|
+
}
|
|
121
|
+
return keyObj;
|
|
122
|
+
}
|
|
123
|
+
const values = Object.values(keyObj);
|
|
124
|
+
if (values.length === 0) {
|
|
125
|
+
console.warn('JSONAPI Service: Key object has no properties.');
|
|
126
|
+
return '';
|
|
127
|
+
}
|
|
128
|
+
for (const val of values) {
|
|
129
|
+
if (val == null) {
|
|
130
|
+
console.warn('JSONAPI Service: Key object contains null or undefined value.');
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return Object.values(keyObj).join(this.delimiter);
|
|
134
|
+
}
|
|
100
135
|
parseNameConventionQueryParams(queryParams) {
|
|
101
136
|
if (Util.isDefined(queryParams.fields)) {
|
|
102
137
|
const entity = Object.keys(queryParams.fields)[0];
|
|
@@ -112,12 +147,12 @@ export class JSONAPIService extends BaseDataService {
|
|
|
112
147
|
}
|
|
113
148
|
return queryParams;
|
|
114
149
|
}
|
|
115
|
-
insert(
|
|
150
|
+
insert(attributes, type) {
|
|
116
151
|
const url = `${this.urlBase}${this.path}`;
|
|
117
|
-
|
|
118
|
-
let
|
|
152
|
+
attributes = this.nameConvention.parseDataToNameConvention(attributes);
|
|
153
|
+
let data = { attributes: attributes, type: type };
|
|
119
154
|
const body = JSON.stringify({
|
|
120
|
-
data:
|
|
155
|
+
data: data
|
|
121
156
|
});
|
|
122
157
|
return this.doRequest({
|
|
123
158
|
method: 'POST',
|
|
@@ -127,13 +162,13 @@ export class JSONAPIService extends BaseDataService {
|
|
|
127
162
|
errorCallBack: this.parseUnsuccessfulInsertResponse
|
|
128
163
|
});
|
|
129
164
|
}
|
|
130
|
-
update(
|
|
131
|
-
const
|
|
132
|
-
const url = `${this.urlBase}${this.path}/${
|
|
133
|
-
|
|
134
|
-
let
|
|
165
|
+
update(id, attributes, type) {
|
|
166
|
+
const serializedId = this.serializeCompositeKey(id);
|
|
167
|
+
const url = `${this.urlBase}${this.path}/${serializedId}`;
|
|
168
|
+
attributes = this.nameConvention.parseDataToNameConvention(attributes);
|
|
169
|
+
let data = { ...{ attributes: attributes }, ...{ id: serializedId }, ...{ type: type } };
|
|
135
170
|
const body = JSON.stringify({
|
|
136
|
-
data:
|
|
171
|
+
data: data
|
|
137
172
|
});
|
|
138
173
|
return this.doRequest({
|
|
139
174
|
method: 'PATCH',
|
|
@@ -143,9 +178,9 @@ export class JSONAPIService extends BaseDataService {
|
|
|
143
178
|
errorCallBack: this.parseUnsuccessfulUpdateResponse
|
|
144
179
|
});
|
|
145
180
|
}
|
|
146
|
-
delete(
|
|
147
|
-
const
|
|
148
|
-
const url = `${this.urlBase}${this.path}/${
|
|
181
|
+
delete(id) {
|
|
182
|
+
const serializedId = this.serializeCompositeKey(id);
|
|
183
|
+
const url = `${this.urlBase}${this.path}/${serializedId}`;
|
|
149
184
|
return this.doRequest({
|
|
150
185
|
method: 'DELETE',
|
|
151
186
|
url: url,
|
|
@@ -153,13 +188,10 @@ export class JSONAPIService extends BaseDataService {
|
|
|
153
188
|
errorCallBack: this.parseUnsuccessfulDeleteResponse
|
|
154
189
|
});
|
|
155
190
|
}
|
|
156
|
-
getStandartEntity(entity) {
|
|
157
|
-
return entity.charAt(0).toUpperCase() + entity.slice(1);
|
|
158
|
-
}
|
|
159
191
|
}
|
|
160
192
|
JSONAPIService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: JSONAPIService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
161
193
|
JSONAPIService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: JSONAPIService });
|
|
162
194
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: JSONAPIService, decorators: [{
|
|
163
195
|
type: Injectable
|
|
164
196
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbmFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3NlcnZpY2VzL2pzb25hcGkvanNvbmFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFJcEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFHN0QsTUFBTSxPQUFPLGNBQWUsU0FBUSxlQUFnQztJQUlsRSxZQUFzQixRQUFrQjtRQUN0QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFESSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRXRDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVNLFlBQVksQ0FBQyxJQUFZLEVBQUUsUUFBZ0I7UUFDaEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDbEQsTUFBTSxPQUFPLEdBQVE7WUFDbkIsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDO2dCQUN2QixhQUFhLEVBQUUsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLFFBQVEsQ0FBQzthQUN0RCxDQUFDO1lBQ0YsT0FBTyxFQUFFLFVBQVU7U0FDcEIsQ0FBQztRQUNG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dXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHNoYXJlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFwcENvbmZpZyB9IGZyb20gJy4uLy4uL2NvbmZpZy9hcHAtY29uZmlnJztcbmltcG9ydCB7IElBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYXV0aC1zZXJ2aWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBKU09OQVBJUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2pzb25hcGktcmVzcG9uc2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IEpTT05BUElRdWVyeVBhcmFtZXRlciB9IGZyb20gJy4uLy4uL3R5cGVzL2pzb24tcXVlcnktcGFyYW1ldGVyLnR5cGUnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBCYXNlRGF0YVNlcnZpY2UgfSBmcm9tICcuLi9iYXNlLWRhdGEtc2VydmljZS5jbGFzcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBKU09OQVBJU2VydmljZSBleHRlbmRzIEJhc2VEYXRhU2VydmljZTxKU09OQVBJUmVzcG9uc2U+IGltcGxlbWVudHMgSUF1dGhTZXJ2aWNlIHtcbiAgcHJvdGVjdGVkIF9zdGFydFNlc3Npb25QYXRoOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBjb25maWc6IEFwcENvbmZpZztcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIHRoaXMuY29uZmlnID0gdGhpcy5pbmplY3Rvci5nZXQoQXBwQ29uZmlnKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGFydHNlc3Npb24odXNlcjogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudW1iZXI+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLnVybEJhc2UgKyB0aGlzLl9zdGFydFNlc3Npb25QYXRoO1xuICAgIGNvbnN0IG9wdGlvbnM6IGFueSA9IHtcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAgIEF1dGhvcml6YXRpb246ICdCYXNpYyAnICsgYnRvYSh1c2VyICsgJzonICsgcGFzc3dvcmQpXG4gICAgICB9KSxcbiAgICAgIG9ic2VydmU6ICdyZXNwb25zZSdcbiAgICB9O1xuICAgIGNvbnN0IGRhdGFPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bWJlcj4gPSBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG4gICAgICB0aGlzLmh0dHBDbGllbnQucG9zdCh1cmwsIG51bGwsIG9wdGlvbnMpLnN1YnNjcmliZShcbiAgICAgICAge1xuICAgICAgICAgIG5leHQ6IChyZXNwOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmIChVdGlsLmlzRGVmaW5lZChyZXNwKSAmJiBVdGlsLmlzRGVmaW5lZChyZXNwLmhlYWRlcnMpICYmIFV0aWwuaXNEZWZpbmVkKHJlc3AuaGVhZGVycy5nZXQoJ1gtQXV0aC1Ub2tlbicpKSkge1xuICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KHJlc3AuaGVhZGVycy5nZXQoJ1gtQXV0aC1Ub2tlbicpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIEludmFsaWQgc2Vzc2lvbklkIC4uLlxuICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcignSW52YWxpZCB1c2VyIG9yIHBhc3N3b3JkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgICwgZXJyb3I6IChlcnJvcikgPT4gb2JzZXJ2ZXIuZXJyb3IoZXJyb3IpXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBkYXRhT2JzZXJ2YWJsZS5waXBlKHNoYXJlKCkpO1xuICB9XG5cbiAgcHVibGljIGVuZHNlc3Npb24odXNlcjogc3RyaW5nLCBzZXNzaW9uSWQ6IG51bWJlcik6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy51cmxCYXNlICsgJy9lbmRzZXNzaW9uP3VzZXI9JyArIHVzZXIgKyAnJnNlc3Npb25pZD0nICsgc2Vzc2lvbklkO1xuICAgIGNvbnN0IGRhdGFPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGFueT4gPSBuZXcgT2JzZXJ2YWJsZShfY2xvc2VTZXNzaW9uT2JzZXJ2ZXIgPT4ge1xuICAgICAgdGhpcy5odHRwQ2xpZW50LmdldCh1cmwpLnN1YnNjcmliZShcbiAgICAgICAge1xuICAgICAgICAgIG5leHQ6IChyZXNwKSA9PiB7XG4gICAgICAgICAgICBfY2xvc2VTZXNzaW9uT2JzZXJ2ZXIubmV4dChyZXNwKTtcbiAgICAgICAgICB9LCBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDEgfHwgZXJyb3Iuc3RhdHVzID09PSAwIHx8ICFlcnJvci5vaykge1xuICAgICAgICAgICAgICBfY2xvc2VTZXNzaW9uT2JzZXJ2ZXIubmV4dCgwKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIF9jbG9zZVNlc3Npb25PYnNlcnZlci5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgIH0pO1xuICAgIHJldHVybiBkYXRhT2JzZXJ2YWJsZS5waXBlKHNoYXJlKCkpO1xuXG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRIZWFkZXJzKCk6IEh0dHBIZWFkZXJzIHtcbiAgICBsZXQgaGVhZGVycyA9IHN1cGVyLmJ1aWxkSGVhZGVycygpO1xuICAgIGNvbnN0IHNlc3Npb25JZCA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0U2Vzc2lvbkluZm8oKS5pZDtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQoc2Vzc2lvbklkKSkge1xuICAgICAgaGVhZGVycyA9IGhlYWRlcnMuYXBwZW5kKCdBdXRob3JpemF0aW9uJywgJ0JlYXJlciAnICsgc2Vzc2lvbklkKTtcbiAgICB9XG4gICAgcmV0dXJuIGhlYWRlcnM7XG4gIH1cblxuICBwdWJsaWMgaGFzc2Vzc2lvbih1c2VyOiBzdHJpbmcsIHNlc3Npb25JZDogYW55KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgY29uc3QgZGF0YU9ic2VydmFibGU6IE9ic2VydmFibGU8YW55PiA9IG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcbiAgICAgIG9ic2VydmVyLm5leHQodHJ1ZSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGRhdGFPYnNlcnZhYmxlLnBpcGUoc2hhcmUoKSk7XG4gIH1cblxuICBwdWJsaWMgY29uZmlndXJlU2VydmljZShjb25maWc6IGFueSk6IHZvaWQge1xuICAgIHN1cGVyLmNvbmZpZ3VyZVNlcnZpY2UoY29uZmlnKTtcbiAgICB0aGlzLl9zdGFydFNlc3Npb25QYXRoID0gdGhpcy5fYXBwQ29uZmlnLnN0YXJ0U2Vzc2lvblBhdGggPyB0aGlzLl9hcHBDb25maWcuc3RhcnRTZXNzaW9uUGF0aCA6ICcvYXV0aC9sb2dpbic7XG4gICAgdGhpcy5wYXRoID0gY29uZmlnLnBhdGg7XG4gIH1cblxuICBxdWVyeShxdWVyeVBhcmFtczogSlNPTkFQSVF1ZXJ5UGFyYW1ldGVyKTogT2JzZXJ2YWJsZTxKU09OQVBJUmVzcG9uc2U+IHtcbiAgICBxdWVyeVBhcmFtcyA9IHRoaXMucGFyc2VOYW1lQ29udmVudGlvblF1ZXJ5UGFyYW1zKHF1ZXJ5UGFyYW1zKTtcbiAgICBxdWVyeVBhcmFtcyA9IFV0aWwub2JqZWN0VG9RdWVyeVN0cmluZyhxdWVyeVBhcmFtcyk7XG5cbiAgICBjb25zdCBxdWVyeVBhcmFtc1N0cmluZyA9IFV0aWwuaXNEZWZpbmVkKHF1ZXJ5UGFyYW1zKSA/ICc/JyArIHF1ZXJ5UGFyYW1zIDogJyc7XG5cbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnVybEJhc2V9JHt0aGlzLnBhdGh9JHtxdWVyeVBhcmFtc1N0cmluZ31gO1xuXG4gICAgcmV0dXJuIHRoaXMuZG9SZXF1ZXN0KHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB1cmw6IHVybCxcbiAgICAgIHN1Y2Nlc3NDYWxsYmFjazogdGhpcy5wYXJzZVN1Y2Nlc3NmdWxRdWVyeVJlc3BvbnNlLFxuICAgICAgZXJyb3JDYWxsQmFjazogdGhpcy5wYXJzZVVuc3VjY2Vzc2Z1bFF1ZXJ5UmVzcG9uc2VcbiAgICB9KTtcbiAgfVxuXG4gIGFkdmFuY2VkUXVlcnkocXVlcnlQYXJhbXM6IEpTT05BUElRdWVyeVBhcmFtZXRlcik6IE9ic2VydmFibGU8SlNPTkFQSVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMucXVlcnkocXVlcnlQYXJhbXMpO1xuICB9XG5cbiAgcXVlcnlCeUlkKHF1ZXJ5UGFyYW1zOiBKU09OQVBJUXVlcnlQYXJhbWV0ZXIpOiBPYnNlcnZhYmxlPEpTT05BUElSZXNwb25zZT4ge1xuXG4gICAgcXVlcnlQYXJhbXMgPSB0aGlzLnBhcnNlTmFtZUNvbnZlbnRpb25RdWVyeVBhcmFtcyhxdWVyeVBhcmFtcyk7XG5cbiAgICBjb25zdCBpZCA9IE9iamVjdC52YWx1ZXMocXVlcnlQYXJhbXMuZmlsdGVyKVswXTtcblxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMudXJsQmFzZX0ke3RoaXMucGF0aH0vJHtpZH0/JHtVdGlsLm9iamVjdFRvUXVlcnlTdHJpbmcocXVlcnlQYXJhbXMpfWA7XG5cbiAgICByZXR1cm4gdGhpcy5kb1JlcXVlc3Qoe1xuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHVybDogdXJsLFxuICAgICAgc3VjY2Vzc0NhbGxiYWNrOiB0aGlzLnBhcnNlU3VjY2Vzc2Z1bFF1ZXJ5UmVzcG9uc2UsXG4gICAgICBlcnJvckNhbGxCYWNrOiB0aGlzLnBhcnNlVW5zdWNjZXNzZnVsUXVlcnlSZXNwb25zZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXJzZU5hbWVDb252ZW50aW9uUXVlcnlQYXJhbXMocXVlcnlQYXJhbXM6IEpTT05BUElRdWVyeVBhcmFtZXRlcik6IEpTT05BUElRdWVyeVBhcmFtZXRlciB7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHF1ZXJ5UGFyYW1zLmZpZWxkcykpIHtcbiAgICAgIGNvbnN0IGVudGl0eSA9IE9iamVjdC5rZXlzKHF1ZXJ5UGFyYW1zLmZpZWxkcylbMF07XG4gICAgICBjb25zdCBmaWVsZHMgPSBPYmplY3QudmFsdWVzKHF1ZXJ5UGFyYW1zLmZpZWxkcylbMF07XG4gICAgICBxdWVyeVBhcmFtcy5maWVsZHNbZW50aXR5XSA9IHRoaXMubmFtZUNvbnZlbnRpb24ucGFyc2VDb2x1bW5zVG9OYW1lQ29udmVudGlvbkZvckpTT05BUEkoZmllbGRzKTtcbiAgICB9XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHF1ZXJ5UGFyYW1zLnNvcnQpKSB7XG4gICAgICBxdWVyeVBhcmFtcy5zb3J0ID0gdGhpcy5uYW1lQ29udmVudGlvbi5wYXJzZUNvbHVtbnNUb05hbWVDb252ZW50aW9uRm9ySlNPTkFQSShxdWVyeVBhcmFtcy5zb3J0KTtcbiAgICB9XG5cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQocXVlcnlQYXJhbXMuZmlsdGVyKSkge1xuICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5uYW1lQ29udmVudGlvbi5wYXJzZUZpbHRlclRvTmFtZUNvbnZlbnRpb24ocXVlcnlQYXJhbXMuZmlsdGVyKTtcbiAgICAgIHF1ZXJ5UGFyYW1zLmZpbHRlciA9IHsgLi4uZmlsdGVyIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHF1ZXJ5UGFyYW1zO1xuICB9XG5cbiAgaW5zZXJ0KGF2OiBvYmplY3QsIGVudGl0eTogc3RyaW5nKTogT2JzZXJ2YWJsZTxKU09OQVBJUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnVybEJhc2V9JHt0aGlzLnBhdGh9YDtcblxuICAgIGF2ID0gdGhpcy5uYW1lQ29udmVudGlvbi5wYXJzZURhdGFUb05hbWVDb252ZW50aW9uKGF2KTtcblxuICAgIGxldCBhdHRyaWJ1dGVzID0geyBhdHRyaWJ1dGVzOiBhdiwgdHlwZTogZW50aXR5IH07XG4gICAgY29uc3QgYm9keSA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGRhdGE6IGF0dHJpYnV0ZXNcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmRvUmVxdWVzdCh7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHVybDogdXJsLFxuICAgICAgYm9keTogYm9keSxcbiAgICAgIHN1Y2Nlc3NDYWxsYmFjazogdGhpcy5wYXJzZVN1Y2Nlc3NmdWxJbnNlcnRSZXNwb25zZSxcbiAgICAgIGVycm9yQ2FsbEJhY2s6IHRoaXMucGFyc2VVbnN1Y2Nlc3NmdWxJbnNlcnRSZXNwb25zZVxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlKGt2OiBvYmplY3QsIGF2OiBvYmplY3QsIGVudGl0eT86IHN0cmluZyk6IE9ic2VydmFibGU8SlNPTkFQSVJlc3BvbnNlPiB7XG4gICAgY29uc3QgaWQgPSBPYmplY3QudmFsdWVzKGt2KVswXTtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnVybEJhc2V9JHt0aGlzLnBhdGh9LyR7aWR9YDtcblxuICAgIGF2ID0gdGhpcy5uYW1lQ29udmVudGlvbi5wYXJzZURhdGFUb05hbWVDb252ZW50aW9uKGF2KTtcblxuICAgIGxldCBhdHRyaWJ1dGVzID0geyAuLi57IGF0dHJpYnV0ZXM6IGF2IH0sIC4uLnsgaWQ6IGlkIH0sIC4uLnsgdHlwZTogZW50aXR5IH0gfTtcblxuICAgIGNvbnN0IGJvZHkgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgICBkYXRhOiBhdHRyaWJ1dGVzXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5kb1JlcXVlc3Qoe1xuICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxuICAgICAgdXJsOiB1cmwsXG4gICAgICBib2R5OiBib2R5LFxuICAgICAgc3VjY2Vzc0NhbGxiYWNrOiB0aGlzLnBhcnNlU3VjY2Vzc2Z1bFVwZGF0ZVJlc3BvbnNlLFxuICAgICAgZXJyb3JDYWxsQmFjazogdGhpcy5wYXJzZVVuc3VjY2Vzc2Z1bFVwZGF0ZVJlc3BvbnNlXG4gICAgfSk7XG4gIH1cblxuICBkZWxldGUoa3Y6IG9iamVjdCA9IHt9KTogT2JzZXJ2YWJsZTxKU09OQVBJUmVzcG9uc2U+IHtcbiAgICBjb25zdCBpZCA9IE9iamVjdC52YWx1ZXMoa3YpWzBdO1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMudXJsQmFzZX0ke3RoaXMucGF0aH0vJHtpZH1gO1xuXG4gICAgcmV0dXJuIHRoaXMuZG9SZXF1ZXN0KHtcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICB1cmw6IHVybCxcbiAgICAgIHN1Y2Nlc3NDYWxsYmFjazogdGhpcy5wYXJzZVN1Y2Nlc3NmdWxEZWxldGVSZXNwb25zZSxcbiAgICAgIGVycm9yQ2FsbEJhY2s6IHRoaXMucGFyc2VVbnN1Y2Nlc3NmdWxEZWxldGVSZXNwb25zZVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICogR2V0cyBzdGFuZGFydCBlbnRpdHlcbiAgKiBAcGFyYW0gZW50aXR5XG4gICogQHJldHVybnMgIHJldHVybiB0aGUgZmlyc3QgY2hhcnQgb2YgdGhlIGVudGl0eSBpbiB1cHBlcmNhc2VcbiAgKi9cblxuICBnZXRTdGFuZGFydEVudGl0eShlbnRpdHk6IHN0cmluZykge1xuICAgIHJldHVybiBlbnRpdHkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBlbnRpdHkuc2xpY2UoMSk7XG4gIH1cblxufVxuIl19
|
|
197
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbmFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3NlcnZpY2VzL2pzb25hcGkvanNvbmFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFJcEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFJM0QsTUFBTSxPQUFPLGNBQWUsU0FBUSxlQUFnQztJQU9sRSxZQUFzQixRQUFrQjtRQUN0QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFESSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBSnJCLHNCQUFpQixHQUFHLEdBQUcsQ0FBQztRQU16QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFpQixpQkFBaUIsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxTQUFTLEdBQUcsYUFBYSxFQUFFLG9CQUFvQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNqRixDQUFDO0lBRU0sWUFBWSxDQUFDLElBQVksRUFBRSxRQUFnQjtRQUNoRCxNQUFNLEdBQUcs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LElBQUksQ0FBQywrQkFBK0I7U0FDcEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7MkdBcE9VLGNBQWM7K0dBQWQsY0FBYzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgc2hhcmUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uZmlnL2FwcC1jb25maWcnO1xuaW1wb3J0IHsgSUF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9hdXRoLXNlcnZpY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IEpTT05BUElSZXNwb25zZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvanNvbmFwaS1yZXNwb25zZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSlNPTkFQSVF1ZXJ5UGFyYW1ldGVyIH0gZnJvbSAnLi4vLi4vdHlwZXMvanNvbi1xdWVyeS1wYXJhbWV0ZXIudHlwZSc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vdXRpbC91dGlsJztcbmltcG9ydCB7IEJhc2VEYXRhU2VydmljZSB9IGZyb20gJy4uL2Jhc2UtZGF0YS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7IE9fSlNPTl9BUElfQ09ORklHIH0gZnJvbSAnLi4vLi4vaW5qZWN0aW9uLXRva2Vucyc7XG5pbXBvcnQgeyBJSnNvbkFwaUNvbmZpZyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvanNvbmFwaS1jb25maWcuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEpTT05BUElTZXJ2aWNlIGV4dGVuZHMgQmFzZURhdGFTZXJ2aWNlPEpTT05BUElSZXNwb25zZT4gaW1wbGVtZW50cyBJQXV0aFNlcnZpY2Uge1xuICBwcm90ZWN0ZWQgX3N0YXJ0U2Vzc2lvblBhdGg6IHN0cmluZztcbiAgcHJvdGVjdGVkIGNvbmZpZzogQXBwQ29uZmlnO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgREVGQVVMVF9ERUxJTUlURVIgPSAnXyc7XG4gIGRlbGltaXRlcjogc3RyaW5nO1xuXG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB0aGlzLmNvbmZpZyA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFwcENvbmZpZyk7XG4gICAgY29uc3QganNvbkFwaUNvbmZpZyA9IHRoaXMuaW5qZWN0b3IuZ2V0PElKc29uQXBpQ29uZmlnPihPX0pTT05fQVBJX0NPTkZJRyk7XG4gICAgdGhpcy5kZWxpbWl0ZXIgPSBqc29uQXBpQ29uZmlnPy5tdWx0aXBsZUtleURlbGltaXRlciB8fCB0aGlzLkRFRkFVTFRfREVMSU1JVEVSO1xuICB9XG5cbiAgcHVibGljIHN0YXJ0c2Vzc2lvbih1c2VyOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bWJlcj4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMudXJsQmFzZSArIHRoaXMuX3N0YXJ0U2Vzc2lvblBhdGg7XG4gICAgY29uc3Qgb3B0aW9uczogYW55ID0ge1xuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgQXV0aG9yaXphdGlvbjogJ0Jhc2ljICcgKyBidG9hKHVzZXIgKyAnOicgKyBwYXNzd29yZClcbiAgICAgIH0pLFxuICAgICAgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ1xuICAgIH07XG4gICAgY29uc3QgZGF0YU9ic2VydmFibGU6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVtYmVyPiA9IG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcbiAgICAgIHRoaXMuaHR0cENsaWVudC5wb3N0KHVybCwgbnVsbCwgb3B0aW9ucykuc3Vic2NyaWJlKFxuICAgICAgICB7XG4gICAgICAgICAgbmV4dDogKHJlc3A6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKFV0aWwuaXNEZWZpbmVkKHJlc3ApICYmIFV0aWwuaXNEZWZpbmVkKHJlc3AuaGVhZGVycykgJiYgVXRpbC5pc0RlZmluZWQocmVzcC5oZWFkZXJzLmdldCgnWC1BdXRoLVRva2VuJykpKSB7XG4gICAgICAgICAgICAgIG9ic2VydmVyLm5leHQocmVzcC5oZWFkZXJzLmdldCgnWC1BdXRoLVRva2VuJykpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gSW52YWxpZCBzZXNzaW9uSWQgLi4uXG4gICAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKCdJbnZhbGlkIHVzZXIgb3IgcGFzc3dvcmQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLCBlcnJvcjogKGVycm9yKSA9PiBvYnNlcnZlci5lcnJvcihlcnJvcilcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGRhdGFPYnNlcnZhYmxlLnBpcGUoc2hhcmUoKSk7XG4gIH1cblxuICBwdWJsaWMgZW5kc2Vzc2lvbih1c2VyOiBzdHJpbmcsIHNlc3Npb25JZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLnVybEJhc2UgKyAnL2VuZHNlc3Npb24/dXNlcj0nICsgdXNlciArICcmc2Vzc2lvbmlkPScgKyBzZXNzaW9uSWQ7XG4gICAgY29uc3QgZGF0YU9ic2VydmFibGU6IE9ic2VydmFibGU8YW55PiA9IG5ldyBPYnNlcnZhYmxlKF9jbG9zZVNlc3Npb25PYnNlcnZlciA9PiB7XG4gICAgICB0aGlzLmh0dHBDbGllbnQuZ2V0KHVybCkuc3Vic2NyaWJlKFxuICAgICAgICB7XG4gICAgICAgICAgbmV4dDogKHJlc3ApID0+IHtcbiAgICAgICAgICAgIF9jbG9zZVNlc3Npb25PYnNlcnZlci5uZXh0KHJlc3ApO1xuICAgICAgICAgIH0sIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwMSB8fCBlcnJvci5zdGF0dXMgPT09IDAgfHwgIWVycm9yLm9rKSB7XG4gICAgICAgICAgICAgIF9jbG9zZVNlc3Npb25PYnNlcnZlci5uZXh0KDApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgX2Nsb3NlU2Vzc2lvbk9ic2VydmVyLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgfSk7XG4gICAgcmV0dXJuIGRhdGFPYnNlcnZhYmxlLnBpcGUoc2hhcmUoKSk7XG5cbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZEhlYWRlcnMoKTogSHR0cEhlYWRlcnMge1xuICAgIGxldCBoZWFkZXJzID0gc3VwZXIuYnVpbGRIZWFkZXJzKCk7XG4gICAgY29uc3Qgc2Vzc2lvbklkID0gdGhpcy5hdXRoU2VydmljZS5nZXRTZXNzaW9uSW5mbygpLmlkO1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZChzZXNzaW9uSWQpKSB7XG4gICAgICBoZWFkZXJzID0gaGVhZGVycy5hcHBlbmQoJ0F1dGhvcml6YXRpb24nLCAnQmVhcmVyICcgKyBzZXNzaW9uSWQpO1xuICAgIH1cbiAgICByZXR1cm4gaGVhZGVycztcbiAgfVxuXG4gIHB1YmxpYyBoYXNzZXNzaW9uKHVzZXI6IHN0cmluZywgc2Vzc2lvbklkOiBhbnkpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBkYXRhT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxhbnk+ID0gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xuICAgICAgb2JzZXJ2ZXIubmV4dCh0cnVlKTtcbiAgICB9KTtcbiAgICByZXR1cm4gZGF0YU9ic2VydmFibGUucGlwZShzaGFyZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25maWd1cmVTZXJ2aWNlKGNvbmZpZzogYW55KTogdm9pZCB7XG4gICAgc3VwZXIuY29uZmlndXJlU2VydmljZShjb25maWcpO1xuICAgIHRoaXMuX3N0YXJ0U2Vzc2lvblBhdGggPSB0aGlzLl9hcHBDb25maWcuc3RhcnRTZXNzaW9uUGF0aCA/IHRoaXMuX2FwcENvbmZpZy5zdGFydFNlc3Npb25QYXRoIDogJy9hdXRoL2xvZ2luJztcbiAgICB0aGlzLnBhdGggPSBjb25maWcucGF0aDtcbiAgICB0aGlzLmRlbGltaXRlciA9IHRoaXMuZ2V0VmFsaWREZWxpbWl0ZXIoY29uZmlnLm11bHRpcGxlS2V5RGVsaW1pdGVyID8/IHRoaXMuZGVsaW1pdGVyKTtcbiAgfVxuXG5cbiAgcHJvdGVjdGVkIGdldFZhbGlkRGVsaW1pdGVyKGRlbGltaXRlcj86IHN0cmluZyk6IHN0cmluZyB7XG5cbiAgICBpZiAoIWRlbGltaXRlciB8fCAhL15bXy1dJC8udGVzdChkZWxpbWl0ZXIpKSB7XG4gICAgICBjb25zb2xlLndhcm4oYERlbGltaXRlciAnJHtkZWxpbWl0ZXJ9JyBpcyBub3QgdmFsaWQgZm9yIFVSTCwgZGVmYXVsdGluZyB0byAnJHt0aGlzLkRFRkFVTFRfREVMSU1JVEVSfScuYCk7XG4gICAgICByZXR1cm4gdGhpcy5ERUZBVUxUX0RFTElNSVRFUlxuICAgIH1cbiAgICByZXR1cm4gZGVsaW1pdGVyO1xuICB9XG5cbiAgcXVlcnkocXVlcnlQYXJhbXM6IEpTT05BUElRdWVyeVBhcmFtZXRlcik6IE9ic2VydmFibGU8SlNPTkFQSVJlc3BvbnNlPiB7XG4gICAgcXVlcnlQYXJhbXMgPSB0aGlzLnBhcnNlTmFtZUNvbnZlbnRpb25RdWVyeVBhcmFtcyhxdWVyeVBhcmFtcyk7XG4gICAgY29uc3QgcXVlcnlQYXJhbXNUb1N0cmluZyA9IFV0aWwub2JqZWN0VG9RdWVyeVN0cmluZyhxdWVyeVBhcmFtcyk7XG5cbiAgICBjb25zdCBxdWVyeVBhcmFtc1N0cmluZyA9IFV0aWwuaXNEZWZpbmVkKHF1ZXJ5UGFyYW1zKSA/ICc/JyArIHF1ZXJ5UGFyYW1zVG9TdHJpbmcgOiAnJztcblxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMudXJsQmFzZX0ke3RoaXMucGF0aH0ke3F1ZXJ5UGFyYW1zU3RyaW5nfWA7XG5cbiAgICByZXR1cm4gdGhpcy5kb1JlcXVlc3Qoe1xuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHVybDogdXJsLFxuICAgICAgc3VjY2Vzc0NhbGxiYWNrOiB0aGlzLnBhcnNlU3VjY2Vzc2Z1bFF1ZXJ5UmVzcG9uc2UsXG4gICAgICBlcnJvckNhbGxCYWNrOiB0aGlzLnBhcnNlVW5zdWNjZXNzZnVsUXVlcnlSZXNwb25zZVxuICAgIH0pO1xuICB9XG5cbiAgYWR2YW5jZWRRdWVyeShxdWVyeVBhcmFtczogSlNPTkFQSVF1ZXJ5UGFyYW1ldGVyKTogT2JzZXJ2YWJsZTxKU09OQVBJUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeShxdWVyeVBhcmFtcyk7XG4gIH1cblxuICBxdWVyeUJ5SWQocXVlcnlQYXJhbXM6IEpTT05BUElRdWVyeVBhcmFtZXRlcik6IE9ic2VydmFibGU8SlNPTkFQSVJlc3BvbnNlPiB7XG4gICAgcXVlcnlQYXJhbXMgPSB0aGlzLnBhcnNlTmFtZUNvbnZlbnRpb25RdWVyeVBhcmFtcyhxdWVyeVBhcmFtcyk7XG5cbiAgICBjb25zdCBzZXJpYWxpemVkSWQgPSB0aGlzLnNlcmlhbGl6ZUNvbXBvc2l0ZUtleShxdWVyeVBhcmFtcy5maWx0ZXIpO1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMudXJsQmFzZX0ke3RoaXMucGF0aH0vJHtzZXJpYWxpemVkSWR9YDtcblxuICAgIHJldHVybiB0aGlzLmRvUmVxdWVzdCh7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgdXJsOiB1cmwsXG4gICAgICBzdWNjZXNzQ2FsbGJhY2s6IHRoaXMucGFyc2VTdWNjZXNzZnVsUXVlcnlSZXNwb25zZSxcbiAgICAgIGVycm9yQ2FsbEJhY2s6IHRoaXMucGFyc2VVbnN1Y2Nlc3NmdWxRdWVyeVJlc3BvbnNlLFxuICAgIH0pO1xuICB9XG5cblxuICBwcm90ZWN0ZWQgc2VyaWFsaXplQ29tcG9zaXRlS2V5KGtleU9iajogc3RyaW5nIHwgb2JqZWN0KTogc3RyaW5nIHtcbiAgICBpZiAoa2V5T2JqID09IG51bGwpIHtcbiAgICAgIGNvbnNvbGUud2FybignSlNPTkFQSSBTZXJ2aWNlOiBLZXkgb2JqZWN0IGlzIG51bGwgb3IgdW5kZWZpbmVkLicpO1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2Yga2V5T2JqID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKGtleU9iai50cmltKCkgPT09ICcnKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignSlNPTkFQSSBTZXJ2aWNlOiBLZXkgc3RyaW5nIGlzIGVtcHR5LicpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGtleU9iajtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZXMgPSBPYmplY3QudmFsdWVzKGtleU9iaik7XG5cbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc29sZS53YXJuKCdKU09OQVBJIFNlcnZpY2U6IEtleSBvYmplY3QgaGFzIG5vIHByb3BlcnRpZXMuJyk7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCB2YWwgb2YgdmFsdWVzKSB7XG4gICAgICBpZiAodmFsID09IG51bGwpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdKU09OQVBJIFNlcnZpY2U6IEtleSBvYmplY3QgY29udGFpbnMgbnVsbCBvciB1bmRlZmluZWQgdmFsdWUuJyk7XG4gICAgICB9XG4gICAgfVxuXG5cbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhrZXlPYmopLmpvaW4odGhpcy5kZWxpbWl0ZXIpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhcnNlTmFtZUNvbnZlbnRpb25RdWVyeVBhcmFtcyhxdWVyeVBhcmFtczogSlNPTkFQSVF1ZXJ5UGFyYW1ldGVyKTogSlNPTkFQSVF1ZXJ5UGFyYW1ldGVyIHtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQocXVlcnlQYXJhbXMuZmllbGRzKSkge1xuICAgICAgY29uc3QgZW50aXR5ID0gT2JqZWN0LmtleXMocXVlcnlQYXJhbXMuZmllbGRzKVswXTtcbiAgICAgIGNvbnN0IGZpZWxkcyA9IE9iamVjdC52YWx1ZXMocXVlcnlQYXJhbXMuZmllbGRzKVswXTtcbiAgICAgIHF1ZXJ5UGFyYW1zLmZpZWxkc1tlbnRpdHldID0gdGhpcy5uYW1lQ29udmVudGlvbi5wYXJzZUNvbHVtbnNUb05hbWVDb252ZW50aW9uRm9ySlNPTkFQSShmaWVsZHMpO1xuICAgIH1cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQocXVlcnlQYXJhbXMuc29ydCkpIHtcbiAgICAgIHF1ZXJ5UGFyYW1zLnNvcnQgPSB0aGlzLm5hbWVDb252ZW50aW9uLnBhcnNlQ29sdW1uc1RvTmFtZUNvbnZlbnRpb25Gb3JKU09OQVBJKHF1ZXJ5UGFyYW1zLnNvcnQpO1xuICAgIH1cblxuICAgIGlmIChVdGlsLmlzRGVmaW5lZChxdWVyeVBhcmFtcy5maWx0ZXIpKSB7XG4gICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLm5hbWVDb252ZW50aW9uLnBhcnNlRmlsdGVyVG9OYW1lQ29udmVudGlvbihxdWVyeVBhcmFtcy5maWx0ZXIpO1xuICAgICAgcXVlcnlQYXJhbXMuZmlsdGVyID0geyAuLi5maWx0ZXIgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gcXVlcnlQYXJhbXM7XG4gIH1cblxuICBpbnNlcnQoYXR0cmlidXRlczogb2JqZWN0LCB0eXBlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEpTT05BUElSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMudXJsQmFzZX0ke3RoaXMucGF0aH1gO1xuXG4gICAgYXR0cmlidXRlcyA9IHRoaXMubmFtZUNvbnZlbnRpb24ucGFyc2VEYXRhVG9OYW1lQ29udmVudGlvbihhdHRyaWJ1dGVzKTtcblxuICAgIGxldCBkYXRhID0geyBhdHRyaWJ1dGVzOiBhdHRyaWJ1dGVzLCB0eXBlOiB0eXBlIH07XG4gICAgY29uc3QgYm9keSA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGRhdGE6IGRhdGFcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmRvUmVxdWVzdCh7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHVybDogdXJsLFxuICAgICAgYm9keTogYm9keSxcbiAgICAgIHN1Y2Nlc3NDYWxsYmFjazogdGhpcy5wYXJzZVN1Y2Nlc3NmdWxJbnNlcnRSZXNwb25zZSxcbiAgICAgIGVycm9yQ2FsbEJhY2s6IHRoaXMucGFyc2VVbnN1Y2Nlc3NmdWxJbnNlcnRSZXNwb25zZVxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlKGlkOiBzdHJpbmcgfCBvYmplY3QsIGF0dHJpYnV0ZXM6IG9iamVjdCwgdHlwZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxKU09OQVBJUmVzcG9uc2U+IHtcblxuICAgIGNvbnN0IHNlcmlhbGl6ZWRJZCA9IHRoaXMuc2VyaWFsaXplQ29tcG9zaXRlS2V5KGlkKTtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnVybEJhc2V9JHt0aGlzLnBhdGh9LyR7c2VyaWFsaXplZElkfWA7XG5cblxuICAgIGF0dHJpYnV0ZXMgPSB0aGlzLm5hbWVDb252ZW50aW9uLnBhcnNlRGF0YVRvTmFtZUNvbnZlbnRpb24oYXR0cmlidXRlcyk7XG5cbiAgICBsZXQgZGF0YSA9IHsgLi4ueyBhdHRyaWJ1dGVzOiBhdHRyaWJ1dGVzIH0sIC4uLnsgaWQ6IHNlcmlhbGl6ZWRJZCB9LCAuLi57IHR5cGU6IHR5cGUgfSB9O1xuXG4gICAgY29uc3QgYm9keSA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGRhdGE6IGRhdGFcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmRvUmVxdWVzdCh7XG4gICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICB1cmw6IHVybCxcbiAgICAgIGJvZHk6IGJvZHksXG4gICAgICBzdWNjZXNzQ2FsbGJhY2s6IHRoaXMucGFyc2VTdWNjZXNzZnVsVXBkYXRlUmVzcG9uc2UsXG4gICAgICBlcnJvckNhbGxCYWNrOiB0aGlzLnBhcnNlVW5zdWNjZXNzZnVsVXBkYXRlUmVzcG9uc2VcbiAgICB9KTtcbiAgfVxuXG4gIGRlbGV0ZShpZDogb2JqZWN0KTogT2JzZXJ2YWJsZTxKU09OQVBJUmVzcG9uc2U+IHtcbiAgICBjb25zdCBzZXJpYWxpemVkSWQgPSB0aGlzLnNlcmlhbGl6ZUNvbXBvc2l0ZUtleShpZCk7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy51cmxCYXNlfSR7dGhpcy5wYXRofS8ke3NlcmlhbGl6ZWRJZH1gO1xuXG4gICAgcmV0dXJuIHRoaXMuZG9SZXF1ZXN0KHtcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICB1cmw6IHVybCxcbiAgICAgIHN1Y2Nlc3NDYWxsYmFjazogdGhpcy5wYXJzZVN1Y2Nlc3NmdWxEZWxldGVSZXNwb25zZSxcbiAgICAgIGVycm9yQ2FsbEJhY2s6IHRoaXMucGFyc2VVbnN1Y2Nlc3NmdWxEZWxldGVSZXNwb25zZVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export class BaseRequestArgument {
|
|
2
|
+
request(method, service, queryArguments) {
|
|
3
|
+
return service[method](...queryArguments);
|
|
4
|
+
}
|
|
5
|
+
parseQueryParameters(args) {
|
|
6
|
+
return args;
|
|
7
|
+
}
|
|
8
|
+
getIdFromFilter(filter) {
|
|
9
|
+
return filter;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1yZXF1ZXN0LWFyZ3VtZW50LmFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvc2VydmljZXMvcmVxdWVzdC1hZGFwdGVyL2Jhc2UtcmVxdWVzdC1hcmd1bWVudC5hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxtQkFBbUI7SUFFOUIsT0FBTyxDQUFDLE1BQWMsRUFBRSxPQUFZLEVBQUUsY0FBbUI7UUFDdkQsT0FBUSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxjQUFjLENBQWlDLENBQUM7SUFDN0UsQ0FBQztJQUVELG9CQUFvQixDQUFDLElBQVM7UUFDNUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsZUFBZSxDQUFDLE1BQVc7UUFDekIsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBTZXJ2aWNlUmVzcG9uc2UgfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9zZXJ2aWNlLXJlc3BvbnNlLmludGVyZmFjZVwiO1xuXG5leHBvcnQgY2xhc3MgQmFzZVJlcXVlc3RBcmd1bWVudCB7XG5cbiAgcmVxdWVzdChtZXRob2Q6IHN0cmluZywgc2VydmljZTogYW55LCBxdWVyeUFyZ3VtZW50czogYW55KSB7XG4gICAgcmV0dXJuIChzZXJ2aWNlW21ldGhvZF0oLi4ucXVlcnlBcmd1bWVudHMpIGFzIE9ic2VydmFibGU8U2VydmljZVJlc3BvbnNlPik7XG4gIH1cblxuICBwYXJzZVF1ZXJ5UGFyYW1ldGVycyhhcmdzOiBhbnkpIDphbnkge1xuICAgIHJldHVybiBhcmdzO1xuICB9XG4gIGdldElkRnJvbUZpbHRlcihmaWx0ZXI6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIGZpbHRlcjtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1yZXF1ZXN0LWFyZ3VtZW50LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9zZXJ2aWNlcy9yZXF1ZXN0LWFkYXB0ZXIvYmFzZS1yZXF1ZXN0LWFyZ3VtZW50LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJQmFzZVJlcXVlc3RBcmd1bWVudCB7XG4gIHBhcnNlUXVlcnlQYXJhbWV0ZXJzKHBhcmFtczogYW55KTogYW55O1xufVxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './base-request-argument.adapter';
|
|
2
|
+
export * from './base-request-argument.interface';
|
|
3
|
+
export * from './jsonapi-request-arguments.adapter';
|
|
4
|
+
export * from './ontimize-request-arguments.adapter';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvc2VydmljZXMvcmVxdWVzdC1hZGFwdGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsc0NBQXNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Jhc2UtcmVxdWVzdC1hcmd1bWVudC5hZGFwdGVyJztcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1yZXF1ZXN0LWFyZ3VtZW50LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2pzb25hcGktcmVxdWVzdC1hcmd1bWVudHMuYWRhcHRlcic7XG5leHBvcnQgKiBmcm9tICcuL29udGltaXplLXJlcXVlc3QtYXJndW1lbnRzLmFkYXB0ZXInO1xuIl19
|