@xsolla/payment-client-core 0.2.37 → 0.2.39
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/esm2022/lib/core/payment/config/config.service.mjs +1 -1
- package/esm2022/lib/core/payment/credit-card-payment-methods-id.variable.mjs +2 -1
- package/esm2022/lib/core/payment/field-names.enum.mjs +2 -1
- package/esm2022/lib/core/payment/form/converters/card-expiration/card-expiration.converter.mjs +39 -0
- package/esm2022/lib/core/payment/form/converters/converter.abstract.mjs +4 -1
- package/esm2022/lib/core/payment/form/converters/converters-map.mjs +3 -1
- package/esm2022/lib/core/payment/form/form.module.mjs +4 -1
- package/esm2022/lib/core/payment/form/validators/card-expiration-date-validator/card-expiration-date.validator.mjs +61 -0
- package/esm2022/lib/core/payment/initialize/initialize.service.mjs +8 -4
- package/esm2022/lib/core/payment/payment-configuration.interface.mjs +2 -0
- package/esm2022/lib/core/payment/payment-settings/payment-settings-request-params.interface.mjs +2 -0
- package/esm2022/lib/core/payment/payment-settings/payment-settings.service.mjs +20 -0
- package/esm2022/lib/core/payment/payment.service.mjs +6 -6
- package/esm2022/lib/core/payment/submit/request/submit-request.class.mjs +15 -3
- package/esm2022/lib/core/payment/submit/submit.service.mjs +9 -5
- package/esm2022/lib/core/payment/sync/request/sync-request.class.mjs +6 -5
- package/esm2022/lib/core/payment/sync/sync.service.mjs +12 -5
- package/esm2022/lib/core/payment/xps-api-part-request.abstract.mjs +6 -1
- package/esm2022/lib/core-library.service.mjs +1 -1
- package/fesm2022/xsolla-payment-client-core.mjs +188 -40
- package/fesm2022/xsolla-payment-client-core.mjs.map +1 -1
- package/lib/core/payment/config/config.service.d.ts +2 -2
- package/lib/core/payment/credit-card-payment-methods-id.variable.d.ts +1 -1
- package/lib/core/payment/field-names.enum.d.ts +1 -0
- package/lib/core/payment/form/converters/card-expiration/card-expiration.converter.d.ts +17 -0
- package/lib/core/payment/form/validators/card-expiration-date-validator/card-expiration-date.validator.d.ts +10 -0
- package/lib/core/payment/initialize/initialize.service.d.ts +5 -3
- package/lib/core/payment/payment-configuration.interface.d.ts +22 -0
- package/lib/core/payment/payment-settings/payment-settings-request-params.interface.d.ts +4 -0
- package/lib/core/payment/payment-settings/payment-settings.service.d.ts +8 -0
- package/lib/core/payment/payment.service.d.ts +2 -2
- package/lib/core/payment/submit/request/submit-request.class.d.ts +1 -0
- package/lib/core/payment/submit/submit.service.d.ts +5 -2
- package/lib/core/payment/sync/request/sync-request.class.d.ts +2 -1
- package/lib/core/payment/sync/sync.service.d.ts +6 -2
- package/lib/core/payment/xps-api-part-request.abstract.d.ts +4 -1
- package/lib/core-library.service.d.ts +2 -2
- package/package.json +1 -1
- package/xsolla-payment-client-core-0.2.39.tgz +0 -0
- package/esm2022/lib/core/payment/payment-config.interface.mjs +0 -2
- package/lib/core/payment/payment-config.interface.d.ts +0 -8
- package/xsolla-payment-client-core-0.2.37.tgz +0 -0
|
@@ -74,7 +74,7 @@ export class PaymentService {
|
|
|
74
74
|
this.fields = this.getFields();
|
|
75
75
|
this.form = this.formService.createForm(this.fields);
|
|
76
76
|
this.updatePidConfig();
|
|
77
|
-
this.setupSyncService(this.form, this.fields);
|
|
77
|
+
this.setupSyncService(this.form, this.fields, config);
|
|
78
78
|
this.listenFormStatusChanges(this.form);
|
|
79
79
|
const isNeedAutoSubmit = this.canAutoSubmit();
|
|
80
80
|
if (isNeedAutoSubmit) {
|
|
@@ -101,7 +101,7 @@ export class PaymentService {
|
|
|
101
101
|
return;
|
|
102
102
|
}
|
|
103
103
|
this.isSavingMethodMode = this.fields.some(({ name, value }) => name === 'savePsAccountOnly' && value === "1" /* XpsBoolean.true */);
|
|
104
|
-
const submitResponse = await this.submitService.request(this.fields, this.form);
|
|
104
|
+
const submitResponse = await this.submitService.request(this.fields, this.form, this.config);
|
|
105
105
|
this.data = submitResponse;
|
|
106
106
|
this.emitFormResponse(this.data);
|
|
107
107
|
if (!this.isSavingMethodMode) {
|
|
@@ -116,7 +116,7 @@ export class PaymentService {
|
|
|
116
116
|
}
|
|
117
117
|
this.fields = this.getFields();
|
|
118
118
|
this.form = this.formService.createForm(this.fields);
|
|
119
|
-
this.syncService.setup(this.form, this.fields);
|
|
119
|
+
this.syncService.setup(this.form, this.fields, this.config);
|
|
120
120
|
return this.nextActionService.getNextAction(submitResponse);
|
|
121
121
|
}
|
|
122
122
|
getFields() {
|
|
@@ -322,8 +322,8 @@ export class PaymentService {
|
|
|
322
322
|
emitFormMessages(messages) {
|
|
323
323
|
this.formMessagesService.emitOnResponse(messages);
|
|
324
324
|
}
|
|
325
|
-
setupSyncService(form, fields) {
|
|
326
|
-
this.syncService.setup(form, fields);
|
|
325
|
+
setupSyncService(form, fields, config) {
|
|
326
|
+
this.syncService.setup(form, fields, config);
|
|
327
327
|
this.syncService.data$
|
|
328
328
|
.pipe(takeUntil(this.destroy$))
|
|
329
329
|
.subscribe((response) => {
|
|
@@ -411,4 +411,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
411
411
|
providedIn: 'root',
|
|
412
412
|
}]
|
|
413
413
|
}], ctorParameters: () => [{ type: i1.InitializeService }, { type: i2.SubmitService }, { type: i3.SyncService }, { type: i4.FormService }, { type: i5.StatusService }, { type: i6.FinanceDetailsService }, { type: i7.CreditCardStateService }, { type: i8.NextActionService }, { type: i9.ControlConfigService }, { type: i10.ThreeDsService }, { type: i11.FormMessagesService }, { type: i12.SettingsService }, { type: i13.CountryService }, { type: i14.CheckStatusActionCreator }, { type: i15.PrintInstructionService }] });
|
|
414
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9wYXltZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZixNQUFNLEVBRU4sT0FBTyxFQUNQLElBQUksRUFDSixTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQWVyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUlqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQWFoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0RBQWtELENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBS2hGLE1BQU0sT0FBTyxjQUFjO0lBR3pCLElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QyxD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LGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFDekIsWUFBWSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ25ELENBQUM7SUFDSixDQUFDOzhHQXZmVSxjQUFjO2tIQUFkLGNBQWMsY0FGYixNQUFNOzsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgZmlsdGVyLFxuICBPYnNlcnZhYmxlLFxuICBTdWJqZWN0LFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2xTdGF0dXMsIFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJtaXRSZXNwb25zZSB9IGZyb20gJy4vc3VibWl0L3Jlc3BvbnNlL3N1Ym1pdC1yZXNwb25zZS5jbGFzcyc7XG5pbXBvcnQgeyBGb3JtU2VydmljZSB9IGZyb20gJy4vZm9ybS9mb3JtLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW5pdGlhbGl6ZVJlc3BvbnNlIH0gZnJvbSAnLi9pbml0aWFsaXplL3Jlc3BvbnNlL2luaXRpYWxpemUtcmVzcG9uc2UuY2xhc3MnO1xuaW1wb3J0IHsgSW5pdGlhbGl6ZVNlcnZpY2UgfSBmcm9tICcuL2luaXRpYWxpemUvaW5pdGlhbGl6ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFN0YXR1cyB9IGZyb20gJy4vc3RhdHVzL3N0YXR1cy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU3VibWl0U2VydmljZSB9IGZyb20gJy4vc3VibWl0L3N1Ym1pdC5zZXJ2aWNlJztcbmltcG9ydCB7IFN5bmNTZXJ2aWNlIH0gZnJvbSAnLi9zeW5jL3N5bmMuc2VydmljZSc7XG5pbXBvcnQgeyBTdGF0dXNTZXJ2aWNlIH0gZnJvbSAnLi9zdGF0dXMvc3RhdHVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmV4dEFjdGlvblNlcnZpY2UgfSBmcm9tICcuL2FjdGlvbnMvbmV4dC1hY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBDb250cm9sQ29uZmlnIH0gZnJvbSAnLi9mb3JtL2NvbnRyb2xzL2NvbnRyb2wtY29uZmlnJztcbmltcG9ydCB7IENvbnRyb2xDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9mb3JtL2NvbnRyb2xzL2NvbnRyb2wtY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmluYW5jZURldGFpbHMgfSBmcm9tICcuL2ZpbmFuY2UtZGV0YWlscy9maW5hbmNlLWRldGFpbHMuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpbmFuY2VEZXRhaWxzU2VydmljZSB9IGZyb20gJy4vZmluYW5jZS1kZXRhaWxzL2ZpbmFuY2UtZGV0YWlscy5zZXJ2aWNlJztcbmltcG9ydCB7IE5leHRBY3Rpb24gfSBmcm9tICcuL2FjdGlvbnMvbmV4dC1hY3Rpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFhwc1N1bW1hcnkgfSBmcm9tICcuL3hwcy1zdW1tYXJ5LmludGVyZmFjZSc7XG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4vZmllbGQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBheW1lbnRDb25maWcgfSBmcm9tICcuL3BheW1lbnQtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBpc1N1Ym1pdFJlc3BvbnNlIH0gZnJvbSAnLi9zdWJtaXQvcmVzcG9uc2UvaXMtc3VibWl0LXJlc3BvbnNlLmZ1bmN0aW9uJztcbmltcG9ydCB7IFhwc0Jvb2xlYW4gfSBmcm9tICcuLi94cHMtYm9vbGVhbi5lbnVtJztcbmltcG9ydCB7IFN0YXR1c1JlcXVlc3RQYXJhbXMgfSBmcm9tICcuL3N0YXR1cy9zdGF0dXMtcmVxdWVzdC9zdGF0dXMtcmVxdWVzdC1wYXJhbXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICcuL2Zvcm0vdmFsaWRhdG9ycy92YWxpZGF0aW9uLWVycm9ycy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSW5wdXRFdmVudE5hbWUgfSBmcm9tICcuL2Zvcm0vaW5wdXQtZXZlbnQuZW51bSc7XG5pbXBvcnQgeyBGb3JtRmllbGRzU3RhdHVzIH0gZnJvbSAnLi9mb3JtL2Zvcm0tZmllbGRzLXN0YXR1cy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGhyZWVEc1NlcnZpY2UgfSBmcm9tICcuL3RocmVlLWRzL3RocmVlLWRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgWHBzQ29tbWFuZCB9IGZyb20gJy4veHBzLWNvbWFuZC5lbnVtJztcbmltcG9ydCB7IENyZWRpdENhcmRTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL2NyZWRpdC1jYXJkLXN0YXRlL2NyZWRpdC1jYXJkLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmllbGROYW1lcyB9IGZyb20gJy4vZmllbGQtbmFtZXMuZW51bSc7XG5pbXBvcnQgeyBGb3JtU3RhdGUgfSBmcm9tICcuL2Zvcm0vZm9ybS1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRm9ybU1lc3NhZ2VzU2VydmljZSB9IGZyb20gJy4vZm9ybS1tZXNzYWdlcy9mb3JtLW1lc3NhZ2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgWHBzTWVzc2FnZSB9IGZyb20gJy4veHBzLW1lc3NhZ2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uL3NldHRpbmdzL3NldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ291bnRyeVNlcnZpY2UgfSBmcm9tICcuLi9jb3VudHJ5L2NvdW50cnkuc2VydmljZSc7XG5pbXBvcnQgeyBTZGtQYXltZW50U3lzdGVtc0luaXRpYWxEYXRhIH0gZnJvbSAnLi4vc2RrLXBheW1lbnQtc3lzdGVtcy9zZGstcGF5bWVudC1zeXN0ZW1zLWluaXRpYWwtZGF0YS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRm9ybVJlc3BvbnNlIH0gZnJvbSAnLi9mb3JtLXJlc3BvbnNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDaGVja1N0YXR1c0FjdGlvbkNyZWF0b3IgfSBmcm9tICcuL2FjdGlvbnMvY2hlY2stc3RhdHVzL2NoZWNrLXN0YXR1cy5hY3Rpb24uY2xhc3MnO1xuaW1wb3J0IHsgQ29udHJvbFN0YXR1cyB9IGZyb20gJy4vZm9ybS9jb250cm9sLXN0YXR1cy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSW5pdGlhbGl6ZWRGb3JtIH0gZnJvbSAnLi9pbml0aWFsaXplZC1mb3JtLmludGVmYWNlJztcbmltcG9ydCB7IENhc2hQYXltZW50RGF0YSB9IGZyb20gJy4vY2FzaC1wYXltZW50LWRhdGEuaW50ZXJmYWNlJztcbmltcG9ydCB7IFByaW50SW5zdHJ1Y3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4veHNvbGxhLW51bWJlci9hcGkvcHJpbnQtaW5zdHJ1Y3Rpb24vcHJpbnQtaW5zdHJ1Y3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBnb29nbGVQYXlQaWQgfSBmcm9tICcuLi9zZGstcGF5bWVudC1zeXN0ZW1zL3Nkay1wYXltZW50LW1ldGhvZHMuY29uc3QnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUGF5bWVudFNlcnZpY2Uge1xuICBwdWJsaWMgZm9ybTogVW50eXBlZEZvcm1Hcm91cCB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBnZXQgZm9ybUZpZWxkc1N0YXR1cyQoKTogT2JzZXJ2YWJsZTxGb3JtRmllbGRzU3RhdHVzPiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUZpZWxkc1N0YXR1c1N1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShmaWx0ZXIoQm9vbGVhbikpO1xuICB9XG5cbiAgcHVibGljIGdldCBwYXltZW50Rm9ybSQoKTogT2JzZXJ2YWJsZTxGb3JtQ29udHJvbFN0YXR1cyB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5fcGF5bWVudEZvcm0kLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBmb3JtUmVzcG9uc2UkKCk6IE9ic2VydmFibGU8Rm9ybVJlc3BvbnNlIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLl9mb3JtUmVzcG9uc2UkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBmb3JtUmVzcG9uc2VWYWx1ZSgpOiBGb3JtUmVzcG9uc2UgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybVJlc3BvbnNlJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBkYXRhOiBJbml0aWFsaXplUmVzcG9uc2UgfCBTdWJtaXRSZXNwb25zZSB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGZpbmFuY2VEZXRhaWxzOiBGaW5hbmNlRGV0YWlscyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGZvY3VzRmllbGROYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBmaWVsZHM6IEZpZWxkW10gPSBbXTtcbiAgcHJpdmF0ZSBjb25maWchOiBQYXltZW50Q29uZmlnO1xuXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIGZvcm1EZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3BheW1lbnRGb3JtJCA9XG4gICAgbmV3IEJlaGF2aW9yU3ViamVjdDxGb3JtQ29udHJvbFN0YXR1cyB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IGZvcm1GaWVsZHNTdGF0dXNTdWJqZWN0ID1cbiAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PEZvcm1GaWVsZHNTdGF0dXMgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZm9ybVJlc3BvbnNlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Rm9ybVJlc3BvbnNlIHwgbnVsbD4oXG4gICAgbnVsbFxuICApO1xuXG4gIHByaXZhdGUgaXNTYXZpbmdNZXRob2RNb2RlID0gZmFsc2U7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5pdGlhbGl6ZVNlcnZpY2U6IEluaXRpYWxpemVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3VibWl0U2VydmljZTogU3VibWl0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN5bmNTZXJ2aWNlOiBTeW5jU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1TZXJ2aWNlOiBGb3JtU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXR1c1NlcnZpY2U6IFN0YXR1c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaW5hbmNlRGV0YWlsc1NlcnZpY2U6IEZpbmFuY2VEZXRhaWxzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNyZWRpdENhcmRTdGF0ZVNlcnZpY2U6IENyZWRpdENhcmRTdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZXh0QWN0aW9uU2VydmljZTogTmV4dEFjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb250cm9sQ29uZmlnU2VydmljZTogQ29udHJvbENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0aHJlZURzU2VydmljZTogVGhyZWVEc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtTWVzc2FnZXNTZXJ2aWNlOiBGb3JtTWVzc2FnZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2V0dGluZ3NTZXJ2aWNlOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb3VudHJ5U2VydmljZTogQ291bnRyeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGVja1N0YXR1c0FjdGlvbkNyZWF0b3I6IENoZWNrU3RhdHVzQWN0aW9uQ3JlYXRvcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByaW50SW5zdHJ1Y3Rpb25TZXJ2aWNlOiBQcmludEluc3RydWN0aW9uU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIGFzeW5jIGluaXRpYWxpemUoY29uZmlnOiBQYXltZW50Q29uZmlnKTogUHJvbWlzZTxJbml0aWFsaXplZEZvcm0+IHtcbiAgICB0aGlzLmRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICB0aGlzLmZvcm1EZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICB0aGlzLmxpc3RlbkZpbmFuY2VEZXRhaWxzKCk7XG5cbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICB0aGlzLmRhdGEgPSBhd2FpdCB0aGlzLmluaXRpYWxpemVTZXJ2aWNlLnJlcXVlc3QoY29uZmlnKTtcbiAgICB0aGlzLmVtaXRGb3JtUmVzcG9uc2UodGhpcy5kYXRhKTtcblxuICAgIHRoaXMuZmllbGRzID0gdGhpcy5nZXRGaWVsZHMoKTtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1TZXJ2aWNlLmNyZWF0ZUZvcm0odGhpcy5maWVsZHMpO1xuXG4gICAgdGhpcy51cGRhdGVQaWRDb25maWcoKTtcbiAgICB0aGlzLnNldHVwU3luY1NlcnZpY2UodGhpcy5mb3JtLCB0aGlzLmZpZWxkcyk7XG4gICAgdGhpcy5saXN0ZW5Gb3JtU3RhdHVzQ2hhbmdlcyh0aGlzLmZvcm0pO1xuXG4gICAgY29uc3QgaXNOZWVkQXV0b1N1Ym1pdCA9IHRoaXMuY2FuQXV0b1N1Ym1pdCgpO1xuXG4gICAgaWYgKGlzTmVlZEF1dG9TdWJtaXQpIHtcbiAgICAgIGNvbnN0IG5leHRBY3Rpb24gPSBhd2FpdCB0aGlzLnN1Ym1pdCgpO1xuXG4gICAgICBpZiAobmV4dEFjdGlvbikge1xuICAgICAgICB0aGlzLm5leHRBY3Rpb25TZXJ2aWNlLmVtaXRGbG93VXBkYXRlcyhuZXh0QWN0aW9uKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmVtaXRGaW5hbmNlRGV0YWlscyh0aGlzLmRhdGEucGF5bWVudEZvcm0/LnN1bW1hcnkpO1xuICAgIHRoaXMuZW1pdEZvcm1GaWVsZHNTdGF0dXModGhpcy5mb3JtKTtcblxuICAgIHRoaXMuZW1pdEZvcm1NZXNzYWdlcyh0aGlzLmdldEluaXRpYWxpemVNZXNzYWdlcygpKTtcblxuICAgIHJldHVybiB7XG4gICAgICBmaWVsZHM6IHRoaXMuZmllbGRzLmZpbHRlcihcbiAgICAgICAgKGZpZWxkOiBGaWVsZCkgPT4gZmllbGQ/LmlzVmlzaWJsZSA9PT0gWHBzQm9vbGVhbi50cnVlXG4gICAgICApLFxuICAgICAgaXNGb3JtQXV0b1N1Ym1pdHRlZDogaXNOZWVkQXV0b1N1Ym1pdCxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHN1Ym1pdCgpOiBQcm9taXNlPE5leHRBY3Rpb24gfCBudWxsIHwgdm9pZD4ge1xuICAgIGlmICghdGhpcy5mb3JtKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Zvcm0gaXMgZW1wdHkhJyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgICB0aGlzLmVtaXRGb3JtRmllbGRzU3RhdHVzKHRoaXMuZm9ybSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc1NhdmluZ01ldGhvZE1vZGUgPSB0aGlzLmZpZWxkcy5zb21lKFxuICAgICAgKHsgbmFtZSwgdmFsdWUgfSkgPT5cbiAgICAgICAgbmFtZSA9PT0gJ3NhdmVQc0FjY291bnRPbmx5JyAmJiB2YWx1ZSA9PT0gWHBzQm9vbGVhbi50cnVlXG4gICAgKTtcbiAgICBjb25zdCBzdWJtaXRSZXNwb25zZSA9IGF3YWl0IHRoaXMuc3VibWl0U2VydmljZS5yZXF1ZXN0KFxuICAgICAgdGhpcy5maWVsZHMsXG4gICAgICB0aGlzLmZvcm1cbiAgICApO1xuXG4gICAgdGhpcy5kYXRhID0gc3VibWl0UmVzcG9uc2U7XG4gICAgdGhpcy5lbWl0Rm9ybVJlc3BvbnNlKHRoaXMuZGF0YSk7XG5cbiAgICBpZiAoIXRoaXMuaXNTYXZpbmdNZXRob2RNb2RlKSB7XG4gICAgICB0aGlzLmVtaXRGaW5hbmNlRGV0YWlscyhzdWJtaXRSZXNwb25zZS5zdW1tYXJ5KTtcbiAgICB9XG4gICAgdGhpcy5lbWl0Rm9ybU1lc3NhZ2VzKHN1Ym1pdFJlc3BvbnNlLm1lc3NhZ2VzKTtcblxuICAgIC8vIEhhbmRsZSAzZHMgZmxvd1xuICAgIGlmIChcbiAgICAgIHN1Ym1pdFJlc3BvbnNlLmN1cnJlbnRDb21tYW5kID09PSBYcHNDb21tYW5kLmNyZWF0ZSAmJlxuICAgICAgc3VibWl0UmVzcG9uc2UucGFyYW1ldGVycy50aHJlZURTRm9ybVxuICAgICkge1xuICAgICAgdGhpcy5ydW5UaHJlZURzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5maWVsZHMgPSB0aGlzLmdldEZpZWxkcygpO1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybVNlcnZpY2UuY3JlYXRlRm9ybSh0aGlzLmZpZWxkcyk7XG5cbiAgICB0aGlzLnN5bmNTZXJ2aWNlLnNldHVwKHRoaXMuZm9ybSwgdGhpcy5maWVsZHMpO1xuXG4gICAgcmV0dXJuIHRoaXMubmV4dEFjdGlvblNlcnZpY2UuZ2V0TmV4dEFjdGlvbihzdWJtaXRSZXNwb25zZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RmllbGRzKCk6IEZpZWxkW10ge1xuICAgIGlmICh0aGlzLmRhdGEgaW5zdGFuY2VvZiBTdWJtaXRSZXNwb25zZSkge1xuICAgICAgcmV0dXJuIHRoaXMuZGF0YS5maWVsZHMgPz8gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZGF0YT8ucGF5bWVudEZvcm0/LmZpZWxkcyA/PyBbXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb250cm9sU3RhdHVzKG5hbWU6IEZpZWxkTmFtZXMpOiBDb250cm9sU3RhdHVzIHwgbnVsbCB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybT8uZ2V0KG5hbWUpO1xuICAgIGlmICghY29udHJvbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWUsXG4gICAgICBlcnJvcnM6IGNvbnRyb2wuZXJyb3JzLFxuICAgICAgc3RhdHVzOiBjb250cm9sLnN0YXR1cyxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldEluaXRpYWxEYXRhRm9yU2RrUGF5bWVudFN5c3RlbXMoKTogU2RrUGF5bWVudFN5c3RlbXNJbml0aWFsRGF0YSB7XG4gICAgaWYgKCFpc1N1Ym1pdFJlc3BvbnNlKHRoaXMuZGF0YSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2hvdWxkIHN1Ym1pdCBmb3JtIGZpcnN0Jyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGE6IHRoaXMuZGF0YS5wYXJhbWV0ZXJzLmNoZWNrb3V0LmRhdGEuZGF0YSxcbiAgICAgIHNhbmRib3g6IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLmlzU2FuZGJveE1vZGUoKVxuICAgICAgICA/IFhwc0Jvb2xlYW4udHJ1ZVxuICAgICAgICA6IFhwc0Jvb2xlYW4uZmFsc2UsXG4gICAgICBjb3VudHJ5OiB0aGlzLmNvdW50cnlTZXJ2aWNlLmdldENvdW50cnkoKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldFFyQ29kZSgpOiBzdHJpbmcge1xuICAgIGlmICghaXNTdWJtaXRSZXNwb25zZSh0aGlzLmRhdGEpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBzdWJtaXQgZm9ybSBmaXJzdCcpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmRhdGEucGFyYW1ldGVycy5mb3JtLnFyLnRpdGxlO1xuICB9XG5cbiAgcHVibGljIGdldENhc2hQYXltZW50RGF0YSgpOiBDYXNoUGF5bWVudERhdGEge1xuICAgIGlmICghaXNTdWJtaXRSZXNwb25zZSh0aGlzLmRhdGEpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBzdWJtaXQgZm9ybSBmaXJzdCcpO1xuICAgIH1cblxuICAgIGNvbnN0IGNhc2hJbnN0cnVjdGlvbkZpZWxkID0gdGhpcy5kYXRhLmZpZWxkcy5maW5kKFxuICAgICAgKGZpZWxkKSA9PiBmaWVsZC5uYW1lID09PSAncGF5bWVudF9pbnN0cnVjdGlvbidcbiAgICApO1xuXG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgaXNDYXNoUGF5bWVudE1ldGhvZDogISFjYXNoSW5zdHJ1Y3Rpb25GaWVsZCxcbiAgICAgIHhzb2xsYU51bWJlcjogdGhpcy5kYXRhLnhzb2xsYU51bWJlci5hY2NvdW50WHNvbGxhLFxuICAgICAgcGlkOiB0aGlzLmRhdGEucGFyYW1ldGVycy5waWQsXG4gICAgICBwdWJsaWNJZDogdGhpcy5kYXRhLnBhcmFtZXRlcnMucHVibGljX2lkLFxuICAgICAgdGl0bGU6IHRoaXMuZGF0YS5wYXJhbWV0ZXJzLnRpdGxlLFxuICAgICAgcHJvamVjdE5hbWU6IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnByb2plY3QubmFtZSxcbiAgICAgIGluc3RydWN0aW9uOiBjYXNoSW5zdHJ1Y3Rpb25GaWVsZD8udGl0bGUsXG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucGFyYW1zLFxuICAgICAgcHJpbnRVcmw6IHRoaXMucHJpbnRJbnN0cnVjdGlvblNlcnZpY2UuZ2V0UHJpbnRJbnN0cnVjdGlvblVybChwYXJhbXMpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0UGlkKCk6IG51bWJlciB8IG51bGwge1xuICAgIGlmICh0aGlzLmRhdGEgaW5zdGFuY2VvZiBTdWJtaXRSZXNwb25zZSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgTnVtYmVyKFxuICAgICAgICAgIHRoaXMuZGF0YS5maWVsZHMuZmluZCgoZmllbGQpID0+IGZpZWxkLm5hbWUgPT09ICdmaXhfcGlkJyk/LnZhbHVlXG4gICAgICAgICkgfHwgbnVsbFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRhIGluc3RhbmNlb2YgSW5pdGlhbGl6ZVJlc3BvbnNlKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBOdW1iZXIoXG4gICAgICAgICAgdGhpcy5kYXRhLnBheW1lbnRGb3JtPy5maWVsZHMuZmluZChcbiAgICAgICAgICAgIChmaWVsZCkgPT4gZmllbGQubmFtZSA9PT0gJ2ZpeF9waWQnXG4gICAgICAgICAgKT8udmFsdWVcbiAgICAgICAgKSB8fCBudWxsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldFN1Ym1pdEJ1dHRvblRleHQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuZGF0YSBpbnN0YW5jZW9mIFN1Ym1pdFJlc3BvbnNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhLnBhcmFtZXRlcnMuYnV5RGF0YS52YWx1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRhIGluc3RhbmNlb2YgSW5pdGlhbGl6ZVJlc3BvbnNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhLnBheW1lbnRGb3JtPy5idXlEYXRhLnZhbHVlID8/IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdmFsaWRhdGUoZmllbGQ6IEZpZWxkKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4ge1xuICAgIGNvbnN0IHN5bmNFcnJvcnMgPSB0aGlzLnN5bmNTZXJ2aWNlLmdldFN5bmNWYWxpZGF0aW9uRXJyb3JzKGZpZWxkKTtcblxuICAgIGlmIChzeW5jRXJyb3JzKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHN5bmNFcnJvcnMpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnN5bmNTZXJ2aWNlLnZhbGlkYXRlKGZpZWxkKTtcbiAgfVxuXG4gIHB1YmxpYyBydW5UaHJlZURzKCk6IHZvaWQge1xuICAgIGlmICghaXNTdWJtaXRSZXNwb25zZSh0aGlzLmRhdGEpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBzdWJtaXQgZm9ybSBmaXJzdCcpO1xuICAgIH1cblxuICAgIHRoaXMudGhyZWVEc1NlcnZpY2UuY2hlY2tUaHJlZURzKHRoaXMuZGF0YSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RmluYW5jZURldGFpbHMoKTogRmluYW5jZURldGFpbHMgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5maW5hbmNlRGV0YWlscztcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVGaWVsZEZvcm1TdGF0ZShmaWVsZE5hbWU6IHN0cmluZywgZm9ybVN0YXRlOiBGb3JtU3RhdGUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtKSB7XG4gICAgICB0aGlzLmZvcm1TZXJ2aWNlLnVwZGF0ZUZpZWxkRm9ybVN0YXRlKFxuICAgICAgICB0aGlzLmZvcm0sXG4gICAgICAgIHRoaXMuZmllbGRzLFxuICAgICAgICBmaWVsZE5hbWUsXG4gICAgICAgIGZvcm1TdGF0ZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0RmllbGRGb3JtU3RhdGUoZmllbGROYW1lOiBGaWVsZE5hbWVzKTogRm9ybVN0YXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybVNlcnZpY2UuZ2V0RmllbGRGb3JtU3RhdGUoZmllbGROYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRTdGF0dXMoKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICBpZiAoIWlzU3VibWl0UmVzcG9uc2UodGhpcy5kYXRhKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgc3VibWl0IGZvcm0gZmlyc3QnKTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJhbXM6IFN0YXR1c1JlcXVlc3RQYXJhbXMgPSB7XG4gICAgICBwaWQ6IHRoaXMuY29uZmlnLnBheW1lbnRNZXRob2RJZCxcbiAgICAgIGludm9pY2U6IHBhcnNlSW50KHRoaXMuZGF0YS5maXhJbnZvaWNlID8/ICcnKSxcbiAgICAgIHNpZ25hdHVyZTogdGhpcy5kYXRhLnNpZ25hdHVyZSA/PyAnJyxcbiAgICAgIGxvY2FsZTpcbiAgICAgICAgdGhpcy5kYXRhLmZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGQubmFtZSA9PT0gJ2xvY2FsZScpPy52YWx1ZSA/P1xuICAgICAgICAnZW4nLFxuICAgICAgaXNTYXZlUGF5bWVudEFjY291bnQ6IHRoaXMuaXNTYXZpbmdNZXRob2RNb2RlXG4gICAgICAgID8gWHBzQm9vbGVhbi50cnVlXG4gICAgICAgIDogWHBzQm9vbGVhbi5mYWxzZSxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLnN0YXR1c1NlcnZpY2UuZ2V0U3RhdHVzKHBhcmFtcyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbGlzdGVuRmluYWxTdGF0dXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBpbnZvaWNlIH0gPSBhd2FpdCB0aGlzLmdldFN0YXR1cygpO1xuXG4gICAgdGhpcy5zdGF0dXNTZXJ2aWNlXG4gICAgICAubGlzdGVuRmluYWxTdGF0dXMoaW52b2ljZSBhcyB1bmtub3duIGFzIG51bWJlcilcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5uZXh0QWN0aW9uU2VydmljZS5lbWl0Rmxvd1VwZGF0ZXMoXG4gICAgICAgICAgdGhpcy5jaGVja1N0YXR1c0FjdGlvbkNyZWF0b3IuZ2V0QWN0aW9uRGF0YSgpXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRGaWVsZENvbmZpZyhmaWVsZDogRmllbGQpOiBDb250cm9sQ29uZmlnIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbENvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKGZpZWxkKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VGaWVsZFZhbHVlKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5mb3JtPy5nZXQobmFtZSk7XG4gICAgZm9ybUNvbnRyb2w/LnNldFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VGaWVsZFN0YXRlKG5hbWU6IHN0cmluZywgc3RhdGU6IElucHV0RXZlbnROYW1lKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLmZvcm0/LmdldChuYW1lKTtcblxuICAgIGlmICghdGhpcy5mb3JtIHx8ICFmb3JtQ29udHJvbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN3aXRjaCAoc3RhdGUpIHtcbiAgICAgIGNhc2UgSW5wdXRFdmVudE5hbWUuYmx1cjoge1xuICAgICAgICBmb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMuZm9jdXNGaWVsZE5hbWUgPSBudWxsO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgSW5wdXRFdmVudE5hbWUuZm9jdXM6IHtcbiAgICAgICAgZm9ybUNvbnRyb2wubWFya0FzVW50b3VjaGVkKCk7XG4gICAgICAgIHRoaXMuZm9jdXNGaWVsZE5hbWUgPSBuYW1lO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmVtaXRGb3JtRmllbGRzU3RhdHVzKHRoaXMuZm9ybSk7XG4gIH1cblxuICBwdWJsaWMgYWRkRXh0cmFGaWVsZChuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBpc0hhdmVGaWVsZCA9IHRoaXMuZmllbGRzLmZpbmQoKGZpZWxkKSA9PiB7XG4gICAgICByZXR1cm4gZmllbGQubmFtZSA9PT0gbmFtZTtcbiAgICB9KTtcblxuICAgIGlmIChpc0hhdmVGaWVsZCkge1xuICAgICAgdGhpcy5maWVsZHMgPSB0aGlzLmZpZWxkcy5tYXAoKGZpZWxkKSA9PiB7XG4gICAgICAgIGlmIChmaWVsZC5uYW1lID09PSBuYW1lKSB7XG4gICAgICAgICAgZmllbGQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZpZWxkID0ge1xuICAgICAgbmFtZTogbmFtZSxcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIHRpdGxlOiAnJyxcbiAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgIGV4YW1wbGU6ICcnLFxuICAgICAgaXNNYW5kYXRvcnk6IFhwc0Jvb2xlYW4udHJ1ZSxcbiAgICAgIGlzVmlzaWJsZTogWHBzQm9vbGVhbi5mYWxzZSxcbiAgICB9IGFzIEZpZWxkO1xuXG4gICAgdGhpcy5maWVsZHMucHVzaChmaWVsZCk7XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGEgPSBudWxsO1xuICAgIHRoaXMuZmluYW5jZURldGFpbHMgPSBudWxsO1xuICAgIHRoaXMuZm9ybSA9IG51bGw7XG4gICAgdGhpcy5maWVsZHMgPSBbXTtcbiAgICB0aGlzLmZvcm1EZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG5cbiAgICB0aGlzLnRocmVlRHNTZXJ2aWNlLnN0b3BDaGVja2luZygpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0RmluYW5jZURldGFpbHMoc3VtbWFyeT86IFhwc1N1bW1hcnkpOiB2b2lkIHtcbiAgICB0aGlzLmZpbmFuY2VEZXRhaWxzU2VydmljZS5lbWl0V2l0aFN1bW1hcnkoc3VtbWFyeSk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRDcmVkaXRDYXJkU3RhdGUoaWRDYXJkVHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5jcmVkaXRDYXJkU3RhdGVTZXJ2aWNlLmVtaXQoeyBpZENhcmRUeXBlIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Rm9ybUZpZWxkc1N0YXR1cyhmb3JtOiBVbnR5cGVkRm9ybUdyb3VwKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUZpZWxkc1N0YXR1czogRm9ybUZpZWxkc1N0YXR1cyA9IHt9O1xuXG4gICAgT2JqZWN0LmtleXMoZm9ybS5jb250cm9scykuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IGZvcm0uY29udHJvbHNbbmFtZV07XG4gICAgICBmb3JtRmllbGRzU3RhdHVzW25hbWVdID0ge1xuICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICB2YWxpZGF0aW9uU3RhdHVzOiBjb250cm9sLnN0YXR1cyxcbiAgICAgICAgZXJyb3JzOiBjb250cm9sLmVycm9ycyxcbiAgICAgICAgaXNGb2N1c2VkOiB0aGlzLmZvY3VzRmllbGROYW1lID09PSBuYW1lLFxuICAgICAgICBpc1RvdWNoZWQ6IGNvbnRyb2wudG91Y2hlZCxcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICB0aGlzLmZvcm1GaWVsZHNTdGF0dXNTdWJqZWN0Lm5leHQoZm9ybUZpZWxkc1N0YXR1cyk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRGb3JtTWVzc2FnZXMobWVzc2FnZXM/OiBYcHNNZXNzYWdlW10pOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1NZXNzYWdlc1NlcnZpY2UuZW1pdE9uUmVzcG9uc2UobWVzc2FnZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cFN5bmNTZXJ2aWNlKGZvcm06IFVudHlwZWRGb3JtR3JvdXAsIGZpZWxkczogRmllbGRbXSk6IHZvaWQge1xuICAgIHRoaXMuc3luY1NlcnZpY2Uuc2V0dXAoZm9ybSwgZmllbGRzKTtcbiAgICB0aGlzLnN5bmNTZXJ2aWNlLmRhdGEkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLmVtaXRGaW5hbmNlRGV0YWlscyhyZXNwb25zZS5zdW1tYXJ5KTtcbiAgICAgICAgdGhpcy5lbWl0Rm9ybU1lc3NhZ2VzKHJlc3BvbnNlLm1lc3NhZ2VzKTtcbiAgICAgICAgdGhpcy5lbWl0Rm9ybVJlc3BvbnNlKHJlc3BvbnNlKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5zeW5jU2VydmljZS5maWVsZEFzeW5jVmFsaWRhdGlvbiRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKGZpZWxkQXN5bmNWYWxpZGF0aW9uKSA9PiB7XG4gICAgICAgIHN3aXRjaCAoZmllbGRBc3luY1ZhbGlkYXRpb24uZmllbGQubmFtZSkge1xuICAgICAgICAgIGNhc2UgRmllbGROYW1lcy5jYXJkTnVtYmVyOlxuICAgICAgICAgICAgdGhpcy5lbWl0Q3JlZGl0Q2FyZFN0YXRlKFxuICAgICAgICAgICAgICBmaWVsZEFzeW5jVmFsaWRhdGlvbi5yZXNwb25zZS5wYXJhbWV0ZXJzLmlkQ2FyZFR5cGVcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5GaW5hbmNlRGV0YWlscygpOiB2b2lkIHtcbiAgICB0aGlzLmZpbmFuY2VEZXRhaWxzU2VydmljZS5kYXRhJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoZmluYW5jZURldGFpbHMpID0+ICh0aGlzLmZpbmFuY2VEZXRhaWxzID0gZmluYW5jZURldGFpbHMpKTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuRm9ybVN0YXR1c0NoYW5nZXMoZm9ybTogVW50eXBlZEZvcm1Hcm91cCk6IHZvaWQge1xuICAgIGZvcm0uc3RhdHVzQ2hhbmdlc1xuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZm9ybURlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXR1czogRm9ybUNvbnRyb2xTdGF0dXMpID0+IHtcbiAgICAgICAgdGhpcy5lbWl0Rm9ybUZpZWxkc1N0YXR1cyhmb3JtKTtcbiAgICAgICAgdGhpcy5fcGF5bWVudEZvcm0kLm5leHQoc3RhdHVzKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLypcbiAgICogaW4gY2FzZSB0aGUgZm9ybSBwaWQgY2hhbmdlcyBkZXNwaXRlIHRoZSBvbmUgcGFzc2VkIGR1cmluZyBpbml0aWFsaXphdGlvblxuICAgKiAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVQaWRDb25maWcoKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFBpZCA9IHRoaXMuZ2V0UGlkKCk7XG4gICAgaWYgKGN1cnJlbnRQaWQpIHtcbiAgICAgIHRoaXMuY29uZmlnLnBheW1lbnRNZXRob2RJZCA9IGN1cnJlbnRQaWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Rm9ybVJlc3BvbnNlKGRhdGE6IEZvcm1SZXNwb25zZVsnZGF0YSddKTogdm9pZCB7XG4gICAgbGV0IHR5cGU6IEZvcm1SZXNwb25zZVsndHlwZSddO1xuICAgIGlmIChkYXRhIGluc3RhbmNlb2YgSW5pdGlhbGl6ZVJlc3BvbnNlKSB7XG4gICAgICB0eXBlID0gJ2luaXRpYWxpemUnO1xuICAgIH0gZWxzZSBpZiAoZGF0YSBpbnN0YW5jZW9mIFN1Ym1pdFJlc3BvbnNlKSB7XG4gICAgICB0eXBlID0gJ3N1Ym1pdCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHR5cGUgPSAnc3luYyc7XG4gICAgfVxuICAgIHRoaXMuX2Zvcm1SZXNwb25zZSQubmV4dCh7XG4gICAgICB0eXBlLFxuICAgICAgZGF0YSxcbiAgICAgIHRva2VuOiB0aGlzLnNldHRpbmdzU2VydmljZS50b2tlbixcbiAgICAgIGlzU2FuZGJveDogdGhpcy5zZXR0aW5nc1NlcnZpY2UuaXNTYW5kYm94TW9kZSgpLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbml0aWFsaXplTWVzc2FnZXMoKTogWHBzTWVzc2FnZVtdIHtcbiAgICBjb25zdCBtZXNzYWdlcyA9ICh0aGlzLmRhdGEgYXMgSW5pdGlhbGl6ZVJlc3BvbnNlKS5wYXltZW50Rm9ybT8ubWVzc2FnZXM7XG4gICAgY29uc3Qga29yZWFOb3RpZmljYXRpb24gPSAodGhpcy5kYXRhIGFzIEluaXRpYWxpemVSZXNwb25zZSkucGF5bWVudEZvcm1cbiAgICAgID8ua29yZWFOb3RpZmljYXRpb247XG4gICAgaWYgKGtvcmVhTm90aWZpY2F0aW9uKSB7XG4gICAgICBtZXNzYWdlcz8ucHVzaCh7IGNvZGU6ICcwJywgbWVzc2FnZToga29yZWFOb3RpZmljYXRpb24/LnRpdGxlIH0pO1xuICAgIH1cbiAgICByZXR1cm4gbWVzc2FnZXMgPz8gW107XG4gIH1cblxuICBwcml2YXRlIGNhbkF1dG9TdWJtaXQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSB0aGlzLmRhdGEgYXMgSW5pdGlhbGl6ZVJlc3BvbnNlO1xuICAgIGlmICghcmVzcG9uc2UucGF5bWVudEZvcm0pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBpc1JlZGlyZWN0TWV0aG9kID0gcmVzcG9uc2UucGF5bWVudEZvcm0uaXNDaGVja291dDtcbiAgICBjb25zdCBjYW5Ta2lwRm9ybSA9IHJlc3BvbnNlLnBheW1lbnRGb3JtLnNraXBGb3JtO1xuICAgIGNvbnN0IHZpc2libGVGaWVsZHMgPSByZXNwb25zZS5wYXltZW50Rm9ybS5maWVsZHMuZmlsdGVyKFxuICAgICAgKGZpZWxkKSA9PiBmaWVsZC5pc1Zpc2libGUgPT09IFhwc0Jvb2xlYW4udHJ1ZSAmJiBmaWVsZC5pc01hbmRhdG9yeVxuICAgICk7XG4gICAgY29uc3Qgc3VpdGFibGVQaWRzID0gW2dvb2dsZVBheVBpZF07XG5cbiAgICByZXR1cm4gKFxuICAgICAgKCFpc1JlZGlyZWN0TWV0aG9kICYmIGNhblNraXBGb3JtKSB8fFxuICAgICAgKHZpc2libGVGaWVsZHMubGVuZ3RoID09PSAwICYmXG4gICAgICAgIHN1aXRhYmxlUGlkcy5pbmNsdWRlcyhyZXNwb25zZS5wYXltZW50Rm9ybS5waWQpKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
414
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9wYXltZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZixNQUFNLEVBRU4sT0FBTyxFQUNQLElBQUksRUFDSixTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQWVyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUlqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQWFoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0RBQWtELENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBS2hGLE1BQU0sT0FBTyxjQUFjO0lBR3pCLElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QyxD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LFlBQVksQ0FBQyxDQUFDO1FBRXBDLE9BQU8sQ0FDTCxDQUFDLENBQUMsZ0JBQWdCLElBQUksV0FBVyxDQUFDO1lBQ2xDLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDO2dCQUN6QixZQUFZLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDbkQsQ0FBQztJQUNKLENBQUM7OEdBOWZVLGNBQWM7a0hBQWQsY0FBYyxjQUZiLE1BQU07OzJGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBmaWx0ZXIsXG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIHRha2UsXG4gIHRha2VVbnRpbCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbFN0YXR1cywgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1Ym1pdFJlc3BvbnNlIH0gZnJvbSAnLi9zdWJtaXQvcmVzcG9uc2Uvc3VibWl0LXJlc3BvbnNlLmNsYXNzJztcbmltcG9ydCB7IEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi9mb3JtL2Zvcm0uc2VydmljZSc7XG5pbXBvcnQgeyBJbml0aWFsaXplUmVzcG9uc2UgfSBmcm9tICcuL2luaXRpYWxpemUvcmVzcG9uc2UvaW5pdGlhbGl6ZS1yZXNwb25zZS5jbGFzcyc7XG5pbXBvcnQgeyBJbml0aWFsaXplU2VydmljZSB9IGZyb20gJy4vaW5pdGlhbGl6ZS9pbml0aWFsaXplLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RhdHVzIH0gZnJvbSAnLi9zdGF0dXMvc3RhdHVzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTdWJtaXRTZXJ2aWNlIH0gZnJvbSAnLi9zdWJtaXQvc3VibWl0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU3luY1NlcnZpY2UgfSBmcm9tICcuL3N5bmMvc3luYy5zZXJ2aWNlJztcbmltcG9ydCB7IFN0YXR1c1NlcnZpY2UgfSBmcm9tICcuL3N0YXR1cy9zdGF0dXMuc2VydmljZSc7XG5pbXBvcnQgeyBOZXh0QWN0aW9uU2VydmljZSB9IGZyb20gJy4vYWN0aW9ucy9uZXh0LWFjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRyb2xDb25maWcgfSBmcm9tICcuL2Zvcm0vY29udHJvbHMvY29udHJvbC1jb25maWcnO1xuaW1wb3J0IHsgQ29udHJvbENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL2Zvcm0vY29udHJvbHMvY29udHJvbC1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBGaW5hbmNlRGV0YWlscyB9IGZyb20gJy4vZmluYW5jZS1kZXRhaWxzL2ZpbmFuY2UtZGV0YWlscy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmluYW5jZURldGFpbHNTZXJ2aWNlIH0gZnJvbSAnLi9maW5hbmNlLWRldGFpbHMvZmluYW5jZS1kZXRhaWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmV4dEFjdGlvbiB9IGZyb20gJy4vYWN0aW9ucy9uZXh0LWFjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgWHBzU3VtbWFyeSB9IGZyb20gJy4veHBzLXN1bW1hcnkuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi9maWVsZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUGF5bWVudENvbmZpZ3VyYXRpb24gfSBmcm9tICcuL3BheW1lbnQtY29uZmlndXJhdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgaXNTdWJtaXRSZXNwb25zZSB9IGZyb20gJy4vc3VibWl0L3Jlc3BvbnNlL2lzLXN1Ym1pdC1yZXNwb25zZS5mdW5jdGlvbic7XG5pbXBvcnQgeyBYcHNCb29sZWFuIH0gZnJvbSAnLi4veHBzLWJvb2xlYW4uZW51bSc7XG5pbXBvcnQgeyBTdGF0dXNSZXF1ZXN0UGFyYW1zIH0gZnJvbSAnLi9zdGF0dXMvc3RhdHVzLXJlcXVlc3Qvc3RhdHVzLXJlcXVlc3QtcGFyYW1zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnLi9mb3JtL3ZhbGlkYXRvcnMvdmFsaWRhdGlvbi1lcnJvcnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IElucHV0RXZlbnROYW1lIH0gZnJvbSAnLi9mb3JtL2lucHV0LWV2ZW50LmVudW0nO1xuaW1wb3J0IHsgRm9ybUZpZWxkc1N0YXR1cyB9IGZyb20gJy4vZm9ybS9mb3JtLWZpZWxkcy1zdGF0dXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRocmVlRHNTZXJ2aWNlIH0gZnJvbSAnLi90aHJlZS1kcy90aHJlZS1kcy5zZXJ2aWNlJztcbmltcG9ydCB7IFhwc0NvbW1hbmQgfSBmcm9tICcuL3hwcy1jb21hbmQuZW51bSc7XG5pbXBvcnQgeyBDcmVkaXRDYXJkU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9jcmVkaXQtY2FyZC1zdGF0ZS9jcmVkaXQtY2FyZC1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IEZpZWxkTmFtZXMgfSBmcm9tICcuL2ZpZWxkLW5hbWVzLmVudW0nO1xuaW1wb3J0IHsgRm9ybVN0YXRlIH0gZnJvbSAnLi9mb3JtL2Zvcm0tc3RhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZvcm1NZXNzYWdlc1NlcnZpY2UgfSBmcm9tICcuL2Zvcm0tbWVzc2FnZXMvZm9ybS1tZXNzYWdlcy5zZXJ2aWNlJztcbmltcG9ydCB7IFhwc01lc3NhZ2UgfSBmcm9tICcuL3hwcy1tZXNzYWdlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi9zZXR0aW5ncy9zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IENvdW50cnlTZXJ2aWNlIH0gZnJvbSAnLi4vY291bnRyeS9jb3VudHJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2RrUGF5bWVudFN5c3RlbXNJbml0aWFsRGF0YSB9IGZyb20gJy4uL3Nkay1wYXltZW50LXN5c3RlbXMvc2RrLXBheW1lbnQtc3lzdGVtcy1pbml0aWFsLWRhdGEuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZvcm1SZXNwb25zZSB9IGZyb20gJy4vZm9ybS1yZXNwb25zZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2hlY2tTdGF0dXNBY3Rpb25DcmVhdG9yIH0gZnJvbSAnLi9hY3Rpb25zL2NoZWNrLXN0YXR1cy9jaGVjay1zdGF0dXMuYWN0aW9uLmNsYXNzJztcbmltcG9ydCB7IENvbnRyb2xTdGF0dXMgfSBmcm9tICcuL2Zvcm0vY29udHJvbC1zdGF0dXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IEluaXRpYWxpemVkRm9ybSB9IGZyb20gJy4vaW5pdGlhbGl6ZWQtZm9ybS5pbnRlZmFjZSc7XG5pbXBvcnQgeyBDYXNoUGF5bWVudERhdGEgfSBmcm9tICcuL2Nhc2gtcGF5bWVudC1kYXRhLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQcmludEluc3RydWN0aW9uU2VydmljZSB9IGZyb20gJy4uL3hzb2xsYS1udW1iZXIvYXBpL3ByaW50LWluc3RydWN0aW9uL3ByaW50LWluc3RydWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgZ29vZ2xlUGF5UGlkIH0gZnJvbSAnLi4vc2RrLXBheW1lbnQtc3lzdGVtcy9zZGstcGF5bWVudC1tZXRob2RzLmNvbnN0JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBheW1lbnRTZXJ2aWNlIHtcbiAgcHVibGljIGZvcm06IFVudHlwZWRGb3JtR3JvdXAgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgZ2V0IGZvcm1GaWVsZHNTdGF0dXMkKCk6IE9ic2VydmFibGU8Rm9ybUZpZWxkc1N0YXR1cz4ge1xuICAgIHJldHVybiB0aGlzLmZvcm1GaWVsZHNTdGF0dXNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoZmlsdGVyKEJvb2xlYW4pKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGF5bWVudEZvcm0kKCk6IE9ic2VydmFibGU8Rm9ybUNvbnRyb2xTdGF0dXMgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuX3BheW1lbnRGb3JtJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZm9ybVJlc3BvbnNlJCgpOiBPYnNlcnZhYmxlPEZvcm1SZXNwb25zZSB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybVJlc3BvbnNlJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZm9ybVJlc3BvbnNlVmFsdWUoKTogRm9ybVJlc3BvbnNlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1SZXNwb25zZSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZGF0YTogSW5pdGlhbGl6ZVJlc3BvbnNlIHwgU3VibWl0UmVzcG9uc2UgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBmaW5hbmNlRGV0YWlsczogRmluYW5jZURldGFpbHMgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBmb2N1c0ZpZWxkTmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgZmllbGRzOiBGaWVsZFtdID0gW107XG4gIHByaXZhdGUgY29uZmlnITogUGF5bWVudENvbmZpZ3VyYXRpb247XG5cbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgZm9ybURlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcGF5bWVudEZvcm0kID1cbiAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PEZvcm1Db250cm9sU3RhdHVzIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybUZpZWxkc1N0YXR1c1N1YmplY3QgPVxuICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8Rm9ybUZpZWxkc1N0YXR1cyB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9mb3JtUmVzcG9uc2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGb3JtUmVzcG9uc2UgfCBudWxsPihcbiAgICBudWxsXG4gICk7XG5cbiAgcHJpdmF0ZSBpc1NhdmluZ01ldGhvZE1vZGUgPSBmYWxzZTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbml0aWFsaXplU2VydmljZTogSW5pdGlhbGl6ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdWJtaXRTZXJ2aWNlOiBTdWJtaXRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3luY1NlcnZpY2U6IFN5bmNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybVNlcnZpY2U6IEZvcm1TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RhdHVzU2VydmljZTogU3RhdHVzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpbmFuY2VEZXRhaWxzU2VydmljZTogRmluYW5jZURldGFpbHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY3JlZGl0Q2FyZFN0YXRlU2VydmljZTogQ3JlZGl0Q2FyZFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5leHRBY3Rpb25TZXJ2aWNlOiBOZXh0QWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRyb2xDb25maWdTZXJ2aWNlOiBDb250cm9sQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRocmVlRHNTZXJ2aWNlOiBUaHJlZURzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1NZXNzYWdlc1NlcnZpY2U6IEZvcm1NZXNzYWdlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvdW50cnlTZXJ2aWNlOiBDb3VudHJ5U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoZWNrU3RhdHVzQWN0aW9uQ3JlYXRvcjogQ2hlY2tTdGF0dXNBY3Rpb25DcmVhdG9yLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJpbnRJbnN0cnVjdGlvblNlcnZpY2U6IFByaW50SW5zdHJ1Y3Rpb25TZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgYXN5bmMgaW5pdGlhbGl6ZShcbiAgICBjb25maWc6IFBheW1lbnRDb25maWd1cmF0aW9uXG4gICk6IFByb21pc2U8SW5pdGlhbGl6ZWRGb3JtPiB7XG4gICAgdGhpcy5kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgdGhpcy5mb3JtRGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgdGhpcy5saXN0ZW5GaW5hbmNlRGV0YWlscygpO1xuXG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XG4gICAgdGhpcy5kYXRhID0gYXdhaXQgdGhpcy5pbml0aWFsaXplU2VydmljZS5yZXF1ZXN0KGNvbmZpZyk7XG4gICAgdGhpcy5lbWl0Rm9ybVJlc3BvbnNlKHRoaXMuZGF0YSk7XG5cbiAgICB0aGlzLmZpZWxkcyA9IHRoaXMuZ2V0RmllbGRzKCk7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtU2VydmljZS5jcmVhdGVGb3JtKHRoaXMuZmllbGRzKTtcblxuICAgIHRoaXMudXBkYXRlUGlkQ29uZmlnKCk7XG4gICAgdGhpcy5zZXR1cFN5bmNTZXJ2aWNlKHRoaXMuZm9ybSwgdGhpcy5maWVsZHMsIGNvbmZpZyk7XG4gICAgdGhpcy5saXN0ZW5Gb3JtU3RhdHVzQ2hhbmdlcyh0aGlzLmZvcm0pO1xuXG4gICAgY29uc3QgaXNOZWVkQXV0b1N1Ym1pdCA9IHRoaXMuY2FuQXV0b1N1Ym1pdCgpO1xuXG4gICAgaWYgKGlzTmVlZEF1dG9TdWJtaXQpIHtcbiAgICAgIGNvbnN0IG5leHRBY3Rpb24gPSBhd2FpdCB0aGlzLnN1Ym1pdCgpO1xuXG4gICAgICBpZiAobmV4dEFjdGlvbikge1xuICAgICAgICB0aGlzLm5leHRBY3Rpb25TZXJ2aWNlLmVtaXRGbG93VXBkYXRlcyhuZXh0QWN0aW9uKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmVtaXRGaW5hbmNlRGV0YWlscyh0aGlzLmRhdGEucGF5bWVudEZvcm0/LnN1bW1hcnkpO1xuICAgIHRoaXMuZW1pdEZvcm1GaWVsZHNTdGF0dXModGhpcy5mb3JtKTtcblxuICAgIHRoaXMuZW1pdEZvcm1NZXNzYWdlcyh0aGlzLmdldEluaXRpYWxpemVNZXNzYWdlcygpKTtcblxuICAgIHJldHVybiB7XG4gICAgICBmaWVsZHM6IHRoaXMuZmllbGRzLmZpbHRlcihcbiAgICAgICAgKGZpZWxkOiBGaWVsZCkgPT4gZmllbGQ/LmlzVmlzaWJsZSA9PT0gWHBzQm9vbGVhbi50cnVlXG4gICAgICApLFxuICAgICAgaXNGb3JtQXV0b1N1Ym1pdHRlZDogaXNOZWVkQXV0b1N1Ym1pdCxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHN1Ym1pdCgpOiBQcm9taXNlPE5leHRBY3Rpb24gfCBudWxsIHwgdm9pZD4ge1xuICAgIGlmICghdGhpcy5mb3JtKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Zvcm0gaXMgZW1wdHkhJyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgICB0aGlzLmVtaXRGb3JtRmllbGRzU3RhdHVzKHRoaXMuZm9ybSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc1NhdmluZ01ldGhvZE1vZGUgPSB0aGlzLmZpZWxkcy5zb21lKFxuICAgICAgKHsgbmFtZSwgdmFsdWUgfSkgPT5cbiAgICAgICAgbmFtZSA9PT0gJ3NhdmVQc0FjY291bnRPbmx5JyAmJiB2YWx1ZSA9PT0gWHBzQm9vbGVhbi50cnVlXG4gICAgKTtcbiAgICBjb25zdCBzdWJtaXRSZXNwb25zZSA9IGF3YWl0IHRoaXMuc3VibWl0U2VydmljZS5yZXF1ZXN0KFxuICAgICAgdGhpcy5maWVsZHMsXG4gICAgICB0aGlzLmZvcm0sXG4gICAgICB0aGlzLmNvbmZpZ1xuICAgICk7XG5cbiAgICB0aGlzLmRhdGEgPSBzdWJtaXRSZXNwb25zZTtcbiAgICB0aGlzLmVtaXRGb3JtUmVzcG9uc2UodGhpcy5kYXRhKTtcblxuICAgIGlmICghdGhpcy5pc1NhdmluZ01ldGhvZE1vZGUpIHtcbiAgICAgIHRoaXMuZW1pdEZpbmFuY2VEZXRhaWxzKHN1Ym1pdFJlc3BvbnNlLnN1bW1hcnkpO1xuICAgIH1cbiAgICB0aGlzLmVtaXRGb3JtTWVzc2FnZXMoc3VibWl0UmVzcG9uc2UubWVzc2FnZXMpO1xuXG4gICAgLy8gSGFuZGxlIDNkcyBmbG93XG4gICAgaWYgKFxuICAgICAgc3VibWl0UmVzcG9uc2UuY3VycmVudENvbW1hbmQgPT09IFhwc0NvbW1hbmQuY3JlYXRlICYmXG4gICAgICBzdWJtaXRSZXNwb25zZS5wYXJhbWV0ZXJzLnRocmVlRFNGb3JtXG4gICAgKSB7XG4gICAgICB0aGlzLnJ1blRocmVlRHMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmZpZWxkcyA9IHRoaXMuZ2V0RmllbGRzKCk7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtU2VydmljZS5jcmVhdGVGb3JtKHRoaXMuZmllbGRzKTtcblxuICAgIHRoaXMuc3luY1NlcnZpY2Uuc2V0dXAodGhpcy5mb3JtLCB0aGlzLmZpZWxkcywgdGhpcy5jb25maWcpO1xuXG4gICAgcmV0dXJuIHRoaXMubmV4dEFjdGlvblNlcnZpY2UuZ2V0TmV4dEFjdGlvbihzdWJtaXRSZXNwb25zZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RmllbGRzKCk6IEZpZWxkW10ge1xuICAgIGlmICh0aGlzLmRhdGEgaW5zdGFuY2VvZiBTdWJtaXRSZXNwb25zZSkge1xuICAgICAgcmV0dXJuIHRoaXMuZGF0YS5maWVsZHMgPz8gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZGF0YT8ucGF5bWVudEZvcm0/LmZpZWxkcyA/PyBbXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb250cm9sU3RhdHVzKG5hbWU6IEZpZWxkTmFtZXMpOiBDb250cm9sU3RhdHVzIHwgbnVsbCB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybT8uZ2V0KG5hbWUpO1xuICAgIGlmICghY29udHJvbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWUsXG4gICAgICBlcnJvcnM6IGNvbnRyb2wuZXJyb3JzLFxuICAgICAgc3RhdHVzOiBjb250cm9sLnN0YXR1cyxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldEluaXRpYWxEYXRhRm9yU2RrUGF5bWVudFN5c3RlbXMoKTogU2RrUGF5bWVudFN5c3RlbXNJbml0aWFsRGF0YSB7XG4gICAgaWYgKCFpc1N1Ym1pdFJlc3BvbnNlKHRoaXMuZGF0YSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2hvdWxkIHN1Ym1pdCBmb3JtIGZpcnN0Jyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGE6IHRoaXMuZGF0YS5wYXJhbWV0ZXJzLmNoZWNrb3V0LmRhdGEuZGF0YSxcbiAgICAgIHNhbmRib3g6IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLmlzU2FuZGJveE1vZGUoKVxuICAgICAgICA/IFhwc0Jvb2xlYW4udHJ1ZVxuICAgICAgICA6IFhwc0Jvb2xlYW4uZmFsc2UsXG4gICAgICBjb3VudHJ5OiB0aGlzLmNvdW50cnlTZXJ2aWNlLmdldENvdW50cnkoKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldFFyQ29kZSgpOiBzdHJpbmcge1xuICAgIGlmICghaXNTdWJtaXRSZXNwb25zZSh0aGlzLmRhdGEpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBzdWJtaXQgZm9ybSBmaXJzdCcpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmRhdGEucGFyYW1ldGVycy5mb3JtLnFyLnRpdGxlO1xuICB9XG5cbiAgcHVibGljIGdldENhc2hQYXltZW50RGF0YSgpOiBDYXNoUGF5bWVudERhdGEge1xuICAgIGlmICghaXNTdWJtaXRSZXNwb25zZSh0aGlzLmRhdGEpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBzdWJtaXQgZm9ybSBmaXJzdCcpO1xuICAgIH1cblxuICAgIGNvbnN0IGNhc2hJbnN0cnVjdGlvbkZpZWxkID0gdGhpcy5kYXRhLmZpZWxkcy5maW5kKFxuICAgICAgKGZpZWxkKSA9PiBmaWVsZC5uYW1lID09PSAncGF5bWVudF9pbnN0cnVjdGlvbidcbiAgICApO1xuXG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgaXNDYXNoUGF5bWVudE1ldGhvZDogISFjYXNoSW5zdHJ1Y3Rpb25GaWVsZCxcbiAgICAgIHhzb2xsYU51bWJlcjogdGhpcy5kYXRhLnhzb2xsYU51bWJlci5hY2NvdW50WHNvbGxhLFxuICAgICAgcGlkOiB0aGlzLmRhdGEucGFyYW1ldGVycy5waWQsXG4gICAgICBwdWJsaWNJZDogdGhpcy5kYXRhLnBhcmFtZXRlcnMucHVibGljX2lkLFxuICAgICAgdGl0bGU6IHRoaXMuZGF0YS5wYXJhbWV0ZXJzLnRpdGxlLFxuICAgICAgcHJvamVjdE5hbWU6IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnByb2plY3QubmFtZSxcbiAgICAgIGluc3RydWN0aW9uOiBjYXNoSW5zdHJ1Y3Rpb25GaWVsZD8udGl0bGUsXG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucGFyYW1zLFxuICAgICAgcHJpbnRVcmw6IHRoaXMucHJpbnRJbnN0cnVjdGlvblNlcnZpY2UuZ2V0UHJpbnRJbnN0cnVjdGlvblVybChwYXJhbXMpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0UGlkKCk6IG51bWJlciB8IG51bGwge1xuICAgIGlmICh0aGlzLmRhdGEgaW5zdGFuY2VvZiBTdWJtaXRSZXNwb25zZSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgTnVtYmVyKFxuICAgICAgICAgIHRoaXMuZGF0YS5maWVsZHMuZmluZCgoZmllbGQpID0+IGZpZWxkLm5hbWUgPT09ICdmaXhfcGlkJyk/LnZhbHVlXG4gICAgICAgICkgfHwgbnVsbFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRhIGluc3RhbmNlb2YgSW5pdGlhbGl6ZVJlc3BvbnNlKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBOdW1iZXIoXG4gICAgICAgICAgdGhpcy5kYXRhLnBheW1lbnRGb3JtPy5maWVsZHMuZmluZChcbiAgICAgICAgICAgIChmaWVsZCkgPT4gZmllbGQubmFtZSA9PT0gJ2ZpeF9waWQnXG4gICAgICAgICAgKT8udmFsdWVcbiAgICAgICAgKSB8fCBudWxsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldFN1Ym1pdEJ1dHRvblRleHQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuZGF0YSBpbnN0YW5jZW9mIFN1Ym1pdFJlc3BvbnNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhLnBhcmFtZXRlcnMuYnV5RGF0YS52YWx1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRhIGluc3RhbmNlb2YgSW5pdGlhbGl6ZVJlc3BvbnNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhLnBheW1lbnRGb3JtPy5idXlEYXRhLnZhbHVlID8/IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdmFsaWRhdGUoZmllbGQ6IEZpZWxkKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4ge1xuICAgIGNvbnN0IHN5bmNFcnJvcnMgPSB0aGlzLnN5bmNTZXJ2aWNlLmdldFN5bmNWYWxpZGF0aW9uRXJyb3JzKGZpZWxkKTtcblxuICAgIGlmIChzeW5jRXJyb3JzKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHN5bmNFcnJvcnMpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnN5bmNTZXJ2aWNlLnZhbGlkYXRlKGZpZWxkKTtcbiAgfVxuXG4gIHB1YmxpYyBydW5UaHJlZURzKCk6IHZvaWQge1xuICAgIGlmICghaXNTdWJtaXRSZXNwb25zZSh0aGlzLmRhdGEpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBzdWJtaXQgZm9ybSBmaXJzdCcpO1xuICAgIH1cblxuICAgIHRoaXMudGhyZWVEc1NlcnZpY2UuY2hlY2tUaHJlZURzKHRoaXMuZGF0YSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RmluYW5jZURldGFpbHMoKTogRmluYW5jZURldGFpbHMgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5maW5hbmNlRGV0YWlscztcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVGaWVsZEZvcm1TdGF0ZShmaWVsZE5hbWU6IHN0cmluZywgZm9ybVN0YXRlOiBGb3JtU3RhdGUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtKSB7XG4gICAgICB0aGlzLmZvcm1TZXJ2aWNlLnVwZGF0ZUZpZWxkRm9ybVN0YXRlKFxuICAgICAgICB0aGlzLmZvcm0sXG4gICAgICAgIHRoaXMuZmllbGRzLFxuICAgICAgICBmaWVsZE5hbWUsXG4gICAgICAgIGZvcm1TdGF0ZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0RmllbGRGb3JtU3RhdGUoZmllbGROYW1lOiBGaWVsZE5hbWVzKTogRm9ybVN0YXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybVNlcnZpY2UuZ2V0RmllbGRGb3JtU3RhdGUoZmllbGROYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRTdGF0dXMoKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICBpZiAoIWlzU3VibWl0UmVzcG9uc2UodGhpcy5kYXRhKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgc3VibWl0IGZvcm0gZmlyc3QnKTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJhbXM6IFN0YXR1c1JlcXVlc3RQYXJhbXMgPSB7XG4gICAgICBwaWQ6IHRoaXMuY29uZmlnLnBheW1lbnRNZXRob2RJZCxcbiAgICAgIGludm9pY2U6IHBhcnNlSW50KHRoaXMuZGF0YS5maXhJbnZvaWNlID8/ICcnKSxcbiAgICAgIHNpZ25hdHVyZTogdGhpcy5kYXRhLnNpZ25hdHVyZSA/PyAnJyxcbiAgICAgIGxvY2FsZTpcbiAgICAgICAgdGhpcy5kYXRhLmZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGQubmFtZSA9PT0gJ2xvY2FsZScpPy52YWx1ZSA/P1xuICAgICAgICAnZW4nLFxuICAgICAgaXNTYXZlUGF5bWVudEFjY291bnQ6IHRoaXMuaXNTYXZpbmdNZXRob2RNb2RlXG4gICAgICAgID8gWHBzQm9vbGVhbi50cnVlXG4gICAgICAgIDogWHBzQm9vbGVhbi5mYWxzZSxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLnN0YXR1c1NlcnZpY2UuZ2V0U3RhdHVzKHBhcmFtcyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbGlzdGVuRmluYWxTdGF0dXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBpbnZvaWNlIH0gPSBhd2FpdCB0aGlzLmdldFN0YXR1cygpO1xuXG4gICAgdGhpcy5zdGF0dXNTZXJ2aWNlXG4gICAgICAubGlzdGVuRmluYWxTdGF0dXMoaW52b2ljZSBhcyB1bmtub3duIGFzIG51bWJlcilcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5uZXh0QWN0aW9uU2VydmljZS5lbWl0Rmxvd1VwZGF0ZXMoXG4gICAgICAgICAgdGhpcy5jaGVja1N0YXR1c0FjdGlvbkNyZWF0b3IuZ2V0QWN0aW9uRGF0YSgpXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRGaWVsZENvbmZpZyhmaWVsZDogRmllbGQpOiBDb250cm9sQ29uZmlnIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbENvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKGZpZWxkKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VGaWVsZFZhbHVlKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5mb3JtPy5nZXQobmFtZSk7XG4gICAgZm9ybUNvbnRyb2w/LnNldFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VGaWVsZFN0YXRlKG5hbWU6IHN0cmluZywgc3RhdGU6IElucHV0RXZlbnROYW1lKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLmZvcm0/LmdldChuYW1lKTtcblxuICAgIGlmICghdGhpcy5mb3JtIHx8ICFmb3JtQ29udHJvbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN3aXRjaCAoc3RhdGUpIHtcbiAgICAgIGNhc2UgSW5wdXRFdmVudE5hbWUuYmx1cjoge1xuICAgICAgICBmb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMuZm9jdXNGaWVsZE5hbWUgPSBudWxsO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgSW5wdXRFdmVudE5hbWUuZm9jdXM6IHtcbiAgICAgICAgZm9ybUNvbnRyb2wubWFya0FzVW50b3VjaGVkKCk7XG4gICAgICAgIHRoaXMuZm9jdXNGaWVsZE5hbWUgPSBuYW1lO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmVtaXRGb3JtRmllbGRzU3RhdHVzKHRoaXMuZm9ybSk7XG4gIH1cblxuICBwdWJsaWMgYWRkRXh0cmFGaWVsZChuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBpc0hhdmVGaWVsZCA9IHRoaXMuZmllbGRzLmZpbmQoKGZpZWxkKSA9PiB7XG4gICAgICByZXR1cm4gZmllbGQubmFtZSA9PT0gbmFtZTtcbiAgICB9KTtcblxuICAgIGlmIChpc0hhdmVGaWVsZCkge1xuICAgICAgdGhpcy5maWVsZHMgPSB0aGlzLmZpZWxkcy5tYXAoKGZpZWxkKSA9PiB7XG4gICAgICAgIGlmIChmaWVsZC5uYW1lID09PSBuYW1lKSB7XG4gICAgICAgICAgZmllbGQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZpZWxkID0ge1xuICAgICAgbmFtZTogbmFtZSxcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIHRpdGxlOiAnJyxcbiAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgIGV4YW1wbGU6ICcnLFxuICAgICAgaXNNYW5kYXRvcnk6IFhwc0Jvb2xlYW4udHJ1ZSxcbiAgICAgIGlzVmlzaWJsZTogWHBzQm9vbGVhbi5mYWxzZSxcbiAgICB9IGFzIEZpZWxkO1xuXG4gICAgdGhpcy5maWVsZHMucHVzaChmaWVsZCk7XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGEgPSBudWxsO1xuICAgIHRoaXMuZmluYW5jZURldGFpbHMgPSBudWxsO1xuICAgIHRoaXMuZm9ybSA9IG51bGw7XG4gICAgdGhpcy5maWVsZHMgPSBbXTtcbiAgICB0aGlzLmZvcm1EZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG5cbiAgICB0aGlzLnRocmVlRHNTZXJ2aWNlLnN0b3BDaGVja2luZygpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0RmluYW5jZURldGFpbHMoc3VtbWFyeT86IFhwc1N1bW1hcnkpOiB2b2lkIHtcbiAgICB0aGlzLmZpbmFuY2VEZXRhaWxzU2VydmljZS5lbWl0V2l0aFN1bW1hcnkoc3VtbWFyeSk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRDcmVkaXRDYXJkU3RhdGUoaWRDYXJkVHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5jcmVkaXRDYXJkU3RhdGVTZXJ2aWNlLmVtaXQoeyBpZENhcmRUeXBlIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Rm9ybUZpZWxkc1N0YXR1cyhmb3JtOiBVbnR5cGVkRm9ybUdyb3VwKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUZpZWxkc1N0YXR1czogRm9ybUZpZWxkc1N0YXR1cyA9IHt9O1xuXG4gICAgT2JqZWN0LmtleXMoZm9ybS5jb250cm9scykuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IGZvcm0uY29udHJvbHNbbmFtZV07XG4gICAgICBmb3JtRmllbGRzU3RhdHVzW25hbWVdID0ge1xuICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICB2YWxpZGF0aW9uU3RhdHVzOiBjb250cm9sLnN0YXR1cyxcbiAgICAgICAgZXJyb3JzOiBjb250cm9sLmVycm9ycyxcbiAgICAgICAgaXNGb2N1c2VkOiB0aGlzLmZvY3VzRmllbGROYW1lID09PSBuYW1lLFxuICAgICAgICBpc1RvdWNoZWQ6IGNvbnRyb2wudG91Y2hlZCxcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICB0aGlzLmZvcm1GaWVsZHNTdGF0dXNTdWJqZWN0Lm5leHQoZm9ybUZpZWxkc1N0YXR1cyk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRGb3JtTWVzc2FnZXMobWVzc2FnZXM/OiBYcHNNZXNzYWdlW10pOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1NZXNzYWdlc1NlcnZpY2UuZW1pdE9uUmVzcG9uc2UobWVzc2FnZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cFN5bmNTZXJ2aWNlKFxuICAgIGZvcm06IFVudHlwZWRGb3JtR3JvdXAsXG4gICAgZmllbGRzOiBGaWVsZFtdLFxuICAgIGNvbmZpZzogUGF5bWVudENvbmZpZ3VyYXRpb25cbiAgKTogdm9pZCB7XG4gICAgdGhpcy5zeW5jU2VydmljZS5zZXR1cChmb3JtLCBmaWVsZHMsIGNvbmZpZyk7XG4gICAgdGhpcy5zeW5jU2VydmljZS5kYXRhJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgdGhpcy5lbWl0RmluYW5jZURldGFpbHMocmVzcG9uc2Uuc3VtbWFyeSk7XG4gICAgICAgIHRoaXMuZW1pdEZvcm1NZXNzYWdlcyhyZXNwb25zZS5tZXNzYWdlcyk7XG4gICAgICAgIHRoaXMuZW1pdEZvcm1SZXNwb25zZShyZXNwb25zZSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuc3luY1NlcnZpY2UuZmllbGRBc3luY1ZhbGlkYXRpb24kXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChmaWVsZEFzeW5jVmFsaWRhdGlvbikgPT4ge1xuICAgICAgICBzd2l0Y2ggKGZpZWxkQXN5bmNWYWxpZGF0aW9uLmZpZWxkLm5hbWUpIHtcbiAgICAgICAgICBjYXNlIEZpZWxkTmFtZXMuY2FyZE51bWJlcjpcbiAgICAgICAgICAgIHRoaXMuZW1pdENyZWRpdENhcmRTdGF0ZShcbiAgICAgICAgICAgICAgZmllbGRBc3luY1ZhbGlkYXRpb24ucmVzcG9uc2UucGFyYW1ldGVycy5pZENhcmRUeXBlXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuRmluYW5jZURldGFpbHMoKTogdm9pZCB7XG4gICAgdGhpcy5maW5hbmNlRGV0YWlsc1NlcnZpY2UuZGF0YSRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKGZpbmFuY2VEZXRhaWxzKSA9PiAodGhpcy5maW5hbmNlRGV0YWlscyA9IGZpbmFuY2VEZXRhaWxzKSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlbkZvcm1TdGF0dXNDaGFuZ2VzKGZvcm06IFVudHlwZWRGb3JtR3JvdXApOiB2b2lkIHtcbiAgICBmb3JtLnN0YXR1c0NoYW5nZXNcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmZvcm1EZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChzdGF0dXM6IEZvcm1Db250cm9sU3RhdHVzKSA9PiB7XG4gICAgICAgIHRoaXMuZW1pdEZvcm1GaWVsZHNTdGF0dXMoZm9ybSk7XG4gICAgICAgIHRoaXMuX3BheW1lbnRGb3JtJC5uZXh0KHN0YXR1cyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qXG4gICAqIGluIGNhc2UgdGhlIGZvcm0gcGlkIGNoYW5nZXMgZGVzcGl0ZSB0aGUgb25lIHBhc3NlZCBkdXJpbmcgaW5pdGlhbGl6YXRpb25cbiAgICogICovXG4gIHByaXZhdGUgdXBkYXRlUGlkQ29uZmlnKCk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRQaWQgPSB0aGlzLmdldFBpZCgpO1xuICAgIGlmIChjdXJyZW50UGlkKSB7XG4gICAgICB0aGlzLmNvbmZpZy5wYXltZW50TWV0aG9kSWQgPSBjdXJyZW50UGlkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW1pdEZvcm1SZXNwb25zZShkYXRhOiBGb3JtUmVzcG9uc2VbJ2RhdGEnXSk6IHZvaWQge1xuICAgIGxldCB0eXBlOiBGb3JtUmVzcG9uc2VbJ3R5cGUnXTtcbiAgICBpZiAoZGF0YSBpbnN0YW5jZW9mIEluaXRpYWxpemVSZXNwb25zZSkge1xuICAgICAgdHlwZSA9ICdpbml0aWFsaXplJztcbiAgICB9IGVsc2UgaWYgKGRhdGEgaW5zdGFuY2VvZiBTdWJtaXRSZXNwb25zZSkge1xuICAgICAgdHlwZSA9ICdzdWJtaXQnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0eXBlID0gJ3N5bmMnO1xuICAgIH1cbiAgICB0aGlzLl9mb3JtUmVzcG9uc2UkLm5leHQoe1xuICAgICAgdHlwZSxcbiAgICAgIGRhdGEsXG4gICAgICB0b2tlbjogdGhpcy5zZXR0aW5nc1NlcnZpY2UudG9rZW4sXG4gICAgICBpc1NhbmRib3g6IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLmlzU2FuZGJveE1vZGUoKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW5pdGlhbGl6ZU1lc3NhZ2VzKCk6IFhwc01lc3NhZ2VbXSB7XG4gICAgY29uc3QgbWVzc2FnZXMgPSAodGhpcy5kYXRhIGFzIEluaXRpYWxpemVSZXNwb25zZSkucGF5bWVudEZvcm0/Lm1lc3NhZ2VzO1xuICAgIGNvbnN0IGtvcmVhTm90aWZpY2F0aW9uID0gKHRoaXMuZGF0YSBhcyBJbml0aWFsaXplUmVzcG9uc2UpLnBheW1lbnRGb3JtXG4gICAgICA/LmtvcmVhTm90aWZpY2F0aW9uO1xuICAgIGlmIChrb3JlYU5vdGlmaWNhdGlvbikge1xuICAgICAgbWVzc2FnZXM/LnB1c2goeyBjb2RlOiAnMCcsIG1lc3NhZ2U6IGtvcmVhTm90aWZpY2F0aW9uPy50aXRsZSB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2VzID8/IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBjYW5BdXRvU3VibWl0KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gdGhpcy5kYXRhIGFzIEluaXRpYWxpemVSZXNwb25zZTtcbiAgICBpZiAoIXJlc3BvbnNlLnBheW1lbnRGb3JtKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgaXNSZWRpcmVjdE1ldGhvZCA9IHJlc3BvbnNlLnBheW1lbnRGb3JtLmlzQ2hlY2tvdXQ7XG4gICAgY29uc3QgY2FuU2tpcEZvcm0gPSByZXNwb25zZS5wYXltZW50Rm9ybS5za2lwRm9ybTtcbiAgICBjb25zdCB2aXNpYmxlRmllbGRzID0gcmVzcG9uc2UucGF5bWVudEZvcm0uZmllbGRzLmZpbHRlcihcbiAgICAgIChmaWVsZCkgPT4gZmllbGQuaXNWaXNpYmxlID09PSBYcHNCb29sZWFuLnRydWUgJiYgZmllbGQuaXNNYW5kYXRvcnlcbiAgICApO1xuICAgIGNvbnN0IHN1aXRhYmxlUGlkcyA9IFtnb29nbGVQYXlQaWRdO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICghaXNSZWRpcmVjdE1ldGhvZCAmJiBjYW5Ta2lwRm9ybSkgfHxcbiAgICAgICh2aXNpYmxlRmllbGRzLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICBzdWl0YWJsZVBpZHMuaW5jbHVkZXMocmVzcG9uc2UucGF5bWVudEZvcm0ucGlkKSlcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { XpsApiPartRequest } from '../../xps-api-part-request.abstract';
|
|
2
2
|
import { TokenError } from '../../../exceptions-handling/errors/token-error.class';
|
|
3
|
+
import { FieldNames } from '../../field-names.enum';
|
|
3
4
|
export class SubmitRequest extends XpsApiPartRequest {
|
|
4
5
|
constructor(parameters) {
|
|
5
6
|
super();
|
|
6
|
-
const { token, fields, form, dfpHash } = parameters;
|
|
7
|
+
const { token, fields, form, dfpHash, ...restParameters } = parameters;
|
|
7
8
|
if (token === null) {
|
|
8
9
|
throw new TokenError();
|
|
9
10
|
}
|
|
11
|
+
this.addParameters(restParameters);
|
|
10
12
|
this.access_token = token;
|
|
11
13
|
if (dfpHash) {
|
|
12
14
|
this.xps_dfp_hash = dfpHash;
|
|
@@ -14,11 +16,21 @@ export class SubmitRequest extends XpsApiPartRequest {
|
|
|
14
16
|
this.addXpsParameters(this.getFieldsValues(fields, form));
|
|
15
17
|
}
|
|
16
18
|
getFieldsValues(fields, form) {
|
|
17
|
-
|
|
19
|
+
const fieldValues = fields.reduce((xpsParams, field) => {
|
|
18
20
|
const formControl = form.get(field.name);
|
|
19
21
|
xpsParams[field.name] = formControl ? formControl.value : field?.value;
|
|
20
22
|
return xpsParams;
|
|
21
23
|
}, {});
|
|
24
|
+
return this.splitCreditCardExpiration(fieldValues);
|
|
25
|
+
}
|
|
26
|
+
splitCreditCardExpiration(fieldsValues) {
|
|
27
|
+
const creditCardExpiration = fieldsValues[FieldNames.cardExpire];
|
|
28
|
+
if (creditCardExpiration) {
|
|
29
|
+
const [month, year] = creditCardExpiration.split('/');
|
|
30
|
+
fieldsValues['card_month'] = month;
|
|
31
|
+
fieldsValues['card_year'] = year;
|
|
32
|
+
}
|
|
33
|
+
return fieldsValues;
|
|
22
34
|
}
|
|
23
35
|
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWl0LXJlcXVlc3QuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9wYXltZW50L3N1Ym1pdC9yZXF1ZXN0L3N1Ym1pdC1yZXF1ZXN0LmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNuRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFcEQsTUFBTSxPQUFPLGFBQWMsU0FBUSxpQkFBaUI7SUFJbEQsWUFBbUIsVUFNbEI7UUFDQyxLQUFLLEVBQUUsQ0FBQztRQUVSLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxjQUFjLEVBQUUsR0FBRyxVQUFVLENBQUM7UUFFdkUsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbkIsTUFBTSxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3pCLENBQUM7UUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRW5DLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBRTFCLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQztRQUM5QixDQUFDO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVPLGVBQWUsQ0FDckIsTUFBZSxFQUNmLElBQXNCO1FBRXRCLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQy9CLENBQUMsU0FBb0MsRUFBRSxLQUFZLEVBQUUsRUFBRTtZQUNyRCxNQUFNLFdBQVcsR0FBMkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFakUsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUM7WUFFdkUsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQyxFQUNELEVBQUUsQ0FDSCxDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVPLHlCQUF5QixDQUFDLFlBQXdDO1FBR3hFLE1BQU0sb0JBQW9CLEdBQVcsWUFBWSxDQUMvQyxVQUFVLENBQUMsVUFBVSxDQUNaLENBQUM7UUFFWixJQUFJLG9CQUFvQixFQUFFLENBQUM7WUFDekIsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEQsWUFBWSxDQUFDLFlBQVksQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUNuQyxZQUFZLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ25DLENBQUM7UUFFRCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi4vLi4vZmllbGQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFhwc0FwaVBhcnRSZXF1ZXN0IH0gZnJvbSAnLi4vLi4veHBzLWFwaS1wYXJ0LXJlcXVlc3QuYWJzdHJhY3QnO1xuaW1wb3J0IHsgVG9rZW5FcnJvciB9IGZyb20gJy4uLy4uLy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZXJyb3JzL3Rva2VuLWVycm9yLmNsYXNzJztcbmltcG9ydCB7IEZpZWxkTmFtZXMgfSBmcm9tICcuLi8uLi9maWVsZC1uYW1lcy5lbnVtJztcblxuZXhwb3J0IGNsYXNzIFN1Ym1pdFJlcXVlc3QgZXh0ZW5kcyBYcHNBcGlQYXJ0UmVxdWVzdCB7XG4gIHB1YmxpYyByZWFkb25seSBhY2Nlc3NfdG9rZW46IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHhwc19kZnBfaGFzaD86IHN0cmluZztcblxuICBwdWJsaWMgY29uc3RydWN0b3IocGFyYW1ldGVyczoge1xuICAgIHRva2VuOiBzdHJpbmcgfCBudWxsO1xuICAgIGZpZWxkczogRmllbGRbXTtcbiAgICBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbWFnaWMtbnVtYmVyc1xuICAgIGRmcEhhc2g6IHN0cmluZyB8IG51bGw7XG4gIH0pIHtcbiAgICBzdXBlcigpO1xuXG4gICAgY29uc3QgeyB0b2tlbiwgZmllbGRzLCBmb3JtLCBkZnBIYXNoLCAuLi5yZXN0UGFyYW1ldGVycyB9ID0gcGFyYW1ldGVycztcblxuICAgIGlmICh0b2tlbiA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IFRva2VuRXJyb3IoKTtcbiAgICB9XG5cbiAgICB0aGlzLmFkZFBhcmFtZXRlcnMocmVzdFBhcmFtZXRlcnMpO1xuXG4gICAgdGhpcy5hY2Nlc3NfdG9rZW4gPSB0b2tlbjtcblxuICAgIGlmIChkZnBIYXNoKSB7XG4gICAgICB0aGlzLnhwc19kZnBfaGFzaCA9IGRmcEhhc2g7XG4gICAgfVxuXG4gICAgdGhpcy5hZGRYcHNQYXJhbWV0ZXJzKHRoaXMuZ2V0RmllbGRzVmFsdWVzKGZpZWxkcywgZm9ybSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWVsZHNWYWx1ZXMoXG4gICAgZmllbGRzOiBGaWVsZFtdLFxuICAgIGZvcm06IFVudHlwZWRGb3JtR3JvdXBcbiAgKTogeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0ge1xuICAgIGNvbnN0IGZpZWxkVmFsdWVzID0gZmllbGRzLnJlZHVjZShcbiAgICAgICh4cHNQYXJhbXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sIGZpZWxkOiBGaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCBmb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCA9IGZvcm0uZ2V0KGZpZWxkLm5hbWUpO1xuXG4gICAgICAgIHhwc1BhcmFtc1tmaWVsZC5uYW1lXSA9IGZvcm1Db250cm9sID8gZm9ybUNvbnRyb2wudmFsdWUgOiBmaWVsZD8udmFsdWU7XG5cbiAgICAgICAgcmV0dXJuIHhwc1BhcmFtcztcbiAgICAgIH0sXG4gICAgICB7fVxuICAgICk7XG5cbiAgICByZXR1cm4gdGhpcy5zcGxpdENyZWRpdENhcmRFeHBpcmF0aW9uKGZpZWxkVmFsdWVzKTtcbiAgfVxuXG4gIHByaXZhdGUgc3BsaXRDcmVkaXRDYXJkRXhwaXJhdGlvbihmaWVsZHNWYWx1ZXM6IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9KToge1xuICAgIFtrZXk6IHN0cmluZ106IHVua25vd247XG4gIH0ge1xuICAgIGNvbnN0IGNyZWRpdENhcmRFeHBpcmF0aW9uOiBzdHJpbmcgPSBmaWVsZHNWYWx1ZXNbXG4gICAgICBGaWVsZE5hbWVzLmNhcmRFeHBpcmVcbiAgICBdIGFzIHN0cmluZztcblxuICAgIGlmIChjcmVkaXRDYXJkRXhwaXJhdGlvbikge1xuICAgICAgY29uc3QgW21vbnRoLCB5ZWFyXSA9IGNyZWRpdENhcmRFeHBpcmF0aW9uLnNwbGl0KCcvJyk7XG4gICAgICBmaWVsZHNWYWx1ZXNbJ2NhcmRfbW9udGgnXSA9IG1vbnRoO1xuICAgICAgZmllbGRzVmFsdWVzWydjYXJkX3llYXInXSA9IHllYXI7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpZWxkc1ZhbHVlcztcbiAgfVxufVxuIl19
|
|
@@ -11,8 +11,9 @@ import * as i3 from "../xps-api/xps-api.service";
|
|
|
11
11
|
import * as i4 from "../../errors-mapping/xps-response-errors-mapping.service";
|
|
12
12
|
import * as i5 from "../../encrypt-credit-card/encrypt-credit-card.service";
|
|
13
13
|
import * as i6 from "../../user-behaviour-analytics/user-behaviour-analytics.service";
|
|
14
|
+
import * as i7 from "../payment-settings/payment-settings.service";
|
|
14
15
|
export class SubmitService {
|
|
15
|
-
constructor(requestFactory, responseFactory, settingsService, deviceFingerPrintService, xpsApiService, xpsResponseErrorsMappingService, encryptCreditCardService, userBehaviourAnalyticsService) {
|
|
16
|
+
constructor(requestFactory, responseFactory, settingsService, deviceFingerPrintService, xpsApiService, xpsResponseErrorsMappingService, encryptCreditCardService, userBehaviourAnalyticsService, paymentSettingsService) {
|
|
16
17
|
this.requestFactory = requestFactory;
|
|
17
18
|
this.responseFactory = responseFactory;
|
|
18
19
|
this.settingsService = settingsService;
|
|
@@ -21,21 +22,24 @@ export class SubmitService {
|
|
|
21
22
|
this.xpsResponseErrorsMappingService = xpsResponseErrorsMappingService;
|
|
22
23
|
this.encryptCreditCardService = encryptCreditCardService;
|
|
23
24
|
this.userBehaviourAnalyticsService = userBehaviourAnalyticsService;
|
|
25
|
+
this.paymentSettingsService = paymentSettingsService;
|
|
24
26
|
}
|
|
25
27
|
// NB: Never add 'async' statement for this method!
|
|
26
28
|
// 'Async' statement wraps current promise into another.
|
|
27
29
|
// In this way two promises become unequal, that can broke XPS API requests logic.
|
|
28
30
|
// eslint-disable-next-line @typescript-eslint/promise-function-async
|
|
29
|
-
request(fields, form) {
|
|
31
|
+
request(fields, form, config) {
|
|
30
32
|
return (this.deviceFingerPrintService
|
|
31
33
|
.getHash()
|
|
32
34
|
// eslint-disable-next-line @typescript-eslint/promise-function-async
|
|
33
35
|
.then((dfpHash) => {
|
|
36
|
+
const paymentSettingsParams = this.paymentSettingsService.getPaymentSettingsParams(config);
|
|
34
37
|
const requestParams = this.requestFactory({
|
|
35
38
|
token: this.settingsService.token,
|
|
36
39
|
fields,
|
|
37
40
|
form,
|
|
38
41
|
dfpHash,
|
|
42
|
+
...paymentSettingsParams,
|
|
39
43
|
});
|
|
40
44
|
const encryptedRequest = this.encryptCreditCardService.encryptCreditCard(requestParams);
|
|
41
45
|
return this.xpsApiService
|
|
@@ -62,7 +66,7 @@ export class SubmitService {
|
|
|
62
66
|
fields: Object.keys(xpsResponse.form).map((key) => xpsResponse.form[key]),
|
|
63
67
|
});
|
|
64
68
|
}
|
|
65
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SubmitService, deps: [{ token: submitRequestFactoryToken }, { token: submitResponseFactoryToken }, { token: i1.SettingsService }, { token: i2.DeviceFingerPrintService }, { token: i3.XpsApiService }, { token: i4.XpsResponseErrorsMappingService }, { token: i5.EncryptCreditCardService }, { token: i6.UserBehaviourAnalyticsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
69
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SubmitService, deps: [{ token: submitRequestFactoryToken }, { token: submitResponseFactoryToken }, { token: i1.SettingsService }, { token: i2.DeviceFingerPrintService }, { token: i3.XpsApiService }, { token: i4.XpsResponseErrorsMappingService }, { token: i5.EncryptCreditCardService }, { token: i6.UserBehaviourAnalyticsService }, { token: i7.PaymentSettingsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
66
70
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SubmitService, providedIn: 'root' }); }
|
|
67
71
|
}
|
|
68
72
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SubmitService, decorators: [{
|
|
@@ -74,5 +78,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
74
78
|
}] }, { type: undefined, decorators: [{
|
|
75
79
|
type: Inject,
|
|
76
80
|
args: [submitResponseFactoryToken]
|
|
77
|
-
}] }, { type: i1.SettingsService }, { type: i2.DeviceFingerPrintService }, { type: i3.XpsApiService }, { type: i4.XpsResponseErrorsMappingService }, { type: i5.EncryptCreditCardService }, { type: i6.UserBehaviourAnalyticsService }] });
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
}] }, { type: i1.SettingsService }, { type: i2.DeviceFingerPrintService }, { type: i3.XpsApiService }, { type: i4.XpsResponseErrorsMappingService }, { type: i5.EncryptCreditCardService }, { type: i6.UserBehaviourAnalyticsService }, { type: i7.PaymentSettingsService }] });
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWl0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9wYXltZW50L3N1Ym1pdC9zdWJtaXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBRUwseUJBQXlCLEdBQzFCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUVMLDBCQUEwQixHQUMzQixNQUFNLGtDQUFrQyxDQUFDO0FBSzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQU10RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUN2RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQzs7Ozs7Ozs7O0FBTXpILE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFlBRW1CLGNBQW9DLEVBRXBDLGVBQXNDLEVBQ3RDLGVBQWdDLEVBQ2hDLHdCQUFrRCxFQUNsRCxhQUE0QixFQUM1QiwrQkFBZ0UsRUFDaEUsd0JBQWtELEVBQ2xELDZCQUE0RCxFQUM1RCxzQkFBOEM7UUFUOUMsbUJBQWMsR0FBZCxjQUFjLENBQXNCO1FBRXBDLG9CQUFlLEdBQWYsZUFBZSxDQUF1QjtRQUN0QyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixvQ0FBK0IsR0FBL0IsK0JBQStCLENBQWlDO1FBQ2hFLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsa0NBQTZCLEdBQTdCLDZCQUE2QixDQUErQjtRQUM1RCwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO0lBQzlELENBQUM7SUFFSixtREFBbUQ7SUFDbkQsd0RBQXdEO0lBQ3hELGtGQUFrRjtJQUVsRixxRUFBcUU7SUFDOUQsT0FBTyxDQUNaLE1BQWUsRUFDZixJQUFzQixFQUN0QixNQUE0QjtRQUU1QixPQUFPLENBQ0wsSUFBSSxDQUFDLHdCQUF3QjthQUMxQixPQUFPLEVBQUU7WUFDVixxRUFBcUU7YUFDcEUsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDaEIsTUFBTSxxQkFBcUIsR0FDekIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRS9ELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7Z0JBQ3hDLEtBQUssRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUs7Z0JBQ2pDLE1BQU07Z0JBQ04sSUFBSTtnQkFDSixPQUFPO2dCQUNQLEdBQUcscUJBQXFCO2FBQ3pCLENBQUMsQ0FBQztZQUVILE1BQU0sZ0JBQWdCLEdBQ3BCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FDN0MsYUFBYSxDQUNkLENBQUM7WUFFSixPQUFPLElBQUksQ0FBQyxhQUFhO2lCQUN0QixvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDdEMsSUFBSSxDQUFDLENBQUMsV0FBd0IsRUFBRSxFQUFFO2dCQUNqQyxNQUFNLFFBQVEsR0FDWixJQUFJLENBQUMsK0JBQStCLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUU5RCxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUVsQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDcEIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUdqQixFQUFRLEVBQUU7d0JBQ1QsSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FDckMsc0JBQXNCLENBQUMsZ0JBQWdCLEVBQ3ZDLHVCQUF1QixDQUFDLE1BQU0sRUFDOUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUN6RCxDQUFDO29CQUNKLENBQUMsQ0FBQztvQkFFRixRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDcEMsQ0FBQztnQkFFRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDeEMsQ0FBQyxDQUFDO2lCQUNELEtBQUssQ0FBQyxDQUFDLEtBQVksRUFBRSxFQUFFO2dCQUN0QixNQUFNLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN6QyxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDSixDQUFDO0lBRU8sZUFBZSxDQUFDLFdBQXdCO1FBQzlDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxlQUFlLENBQUM7WUFDakQsR0FBRyxXQUFXO1lBQ2QsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FDdkMsQ0FBQyxHQUFXLEVBQVMsRUFBRSxDQUFFLFdBQTJCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUMvRDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBckZVLGFBQWEsa0JBRWQseUJBQXlCLGFBRXpCLDBCQUEwQjtrSEFKekIsYUFBYSxjQURBLE1BQU07OzJGQUNuQixhQUFhO2tCQUR6QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBRzdCLE1BQU07MkJBQUMseUJBQXlCOzswQkFFaEMsTUFBTTsyQkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4uL2ZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFN1Ym1pdFJlcXVlc3RGYWN0b3J5LFxuICBzdWJtaXRSZXF1ZXN0RmFjdG9yeVRva2VuLFxufSBmcm9tICcuL3JlcXVlc3Qvc3VibWl0LXJlcXVlc3QudG9rZW4nO1xuaW1wb3J0IHtcbiAgU3VibWl0UmVzcG9uc2VGYWN0b3J5LFxuICBzdWJtaXRSZXNwb25zZUZhY3RvcnlUb2tlbixcbn0gZnJvbSAnLi9yZXNwb25zZS9zdWJtaXQtcmVzcG9uc2UudG9rZW4nO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2V0dGluZ3Mvc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBTdWJtaXRSZXNwb25zZSB9IGZyb20gJy4vcmVzcG9uc2Uvc3VibWl0LXJlc3BvbnNlLmNsYXNzJztcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEZXZpY2VGaW5nZXJQcmludFNlcnZpY2UgfSBmcm9tICcuLi8uLi9kZXZpY2UtZmluZ2VyLXByaW50L2RldmljZS1maW5nZXItcHJpbnQuc2VydmljZSc7XG5pbXBvcnQgeyBSZXNwb25zZUVycm9yIH0gZnJvbSAnLi4vLi4vZXhjZXB0aW9ucy1oYW5kbGluZy9lcnJvcnMvcmVzcG9uc2UtZXJyb3IuY2xhc3MnO1xuaW1wb3J0IHsgWHBzUmVzcG9uc2UgfSBmcm9tICcuLi94cHMtcmVzcG9uc2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFhwc0FwaVNlcnZpY2UgfSBmcm9tICcuLi94cHMtYXBpL3hwcy1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBFbmNyeXB0Q3JlZGl0Q2FyZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9lbmNyeXB0LWNyZWRpdC1jYXJkL2VuY3J5cHQtY3JlZGl0LWNhcmQuc2VydmljZSc7XG5pbXBvcnQgeyBTdWJtaXRSZXF1ZXN0IH0gZnJvbSAnLi9yZXF1ZXN0L3N1Ym1pdC1yZXF1ZXN0LmNsYXNzJztcbmltcG9ydCB7IFhwc1Jlc3BvbnNlRXJyb3JzTWFwcGluZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9lcnJvcnMtbWFwcGluZy94cHMtcmVzcG9uc2UtZXJyb3JzLW1hcHBpbmcuc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyQmVoYXZpb3VyRXZlbnROYW1lIH0gZnJvbSAnLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWV2ZW50LW5hbWUuZW51bSc7XG5pbXBvcnQgeyB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcyB9IGZyb20gJy4uLy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1ldmVudC91c2VyLWJlaGF2aW91ci1ldmVudC10eXBlcyc7XG5pbXBvcnQgeyBVc2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZSB9IGZyb20gJy4uLy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1hbmFseXRpY3Muc2VydmljZSc7XG5pbXBvcnQgeyBQYXltZW50Q29uZmlndXJhdGlvbiB9IGZyb20gJy4uL3BheW1lbnQtY29uZmlndXJhdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUGF5bWVudFNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uL3BheW1lbnQtc2V0dGluZ3MvcGF5bWVudC1zZXR0aW5ncy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBTdWJtaXRTZXJ2aWNlIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3Qoc3VibWl0UmVxdWVzdEZhY3RvcnlUb2tlbilcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlcXVlc3RGYWN0b3J5OiBTdWJtaXRSZXF1ZXN0RmFjdG9yeSxcbiAgICBASW5qZWN0KHN1Ym1pdFJlc3BvbnNlRmFjdG9yeVRva2VuKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzcG9uc2VGYWN0b3J5OiBTdWJtaXRSZXNwb25zZUZhY3RvcnksXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRldmljZUZpbmdlclByaW50U2VydmljZTogRGV2aWNlRmluZ2VyUHJpbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgeHBzQXBpU2VydmljZTogWHBzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHhwc1Jlc3BvbnNlRXJyb3JzTWFwcGluZ1NlcnZpY2U6IFhwc1Jlc3BvbnNlRXJyb3JzTWFwcGluZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbmNyeXB0Q3JlZGl0Q2FyZFNlcnZpY2U6IEVuY3J5cHRDcmVkaXRDYXJkU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlOiBVc2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBheW1lbnRTZXR0aW5nc1NlcnZpY2U6IFBheW1lbnRTZXR0aW5nc1NlcnZpY2VcbiAgKSB7fVxuXG4gIC8vIE5COiBOZXZlciBhZGQgJ2FzeW5jJyBzdGF0ZW1lbnQgZm9yIHRoaXMgbWV0aG9kIVxuICAvLyAnQXN5bmMnIHN0YXRlbWVudCB3cmFwcyBjdXJyZW50IHByb21pc2UgaW50byBhbm90aGVyLlxuICAvLyBJbiB0aGlzIHdheSB0d28gcHJvbWlzZXMgYmVjb21lIHVuZXF1YWwsIHRoYXQgY2FuIGJyb2tlIFhQUyBBUEkgcmVxdWVzdHMgbG9naWMuXG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcm9taXNlLWZ1bmN0aW9uLWFzeW5jXG4gIHB1YmxpYyByZXF1ZXN0KFxuICAgIGZpZWxkczogRmllbGRbXSxcbiAgICBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwLFxuICAgIGNvbmZpZzogUGF5bWVudENvbmZpZ3VyYXRpb25cbiAgKTogUHJvbWlzZTxTdWJtaXRSZXNwb25zZT4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmRldmljZUZpbmdlclByaW50U2VydmljZVxuICAgICAgICAuZ2V0SGFzaCgpXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJvbWlzZS1mdW5jdGlvbi1hc3luY1xuICAgICAgICAudGhlbigoZGZwSGFzaCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHBheW1lbnRTZXR0aW5nc1BhcmFtcyA9XG4gICAgICAgICAgICB0aGlzLnBheW1lbnRTZXR0aW5nc1NlcnZpY2UuZ2V0UGF5bWVudFNldHRpbmdzUGFyYW1zKGNvbmZpZyk7XG5cbiAgICAgICAgICBjb25zdCByZXF1ZXN0UGFyYW1zID0gdGhpcy5yZXF1ZXN0RmFjdG9yeSh7XG4gICAgICAgICAgICB0b2tlbjogdGhpcy5zZXR0aW5nc1NlcnZpY2UudG9rZW4sXG4gICAgICAgICAgICBmaWVsZHMsXG4gICAgICAgICAgICBmb3JtLFxuICAgICAgICAgICAgZGZwSGFzaCxcbiAgICAgICAgICAgIC4uLnBheW1lbnRTZXR0aW5nc1BhcmFtcyxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGNvbnN0IGVuY3J5cHRlZFJlcXVlc3QgPVxuICAgICAgICAgICAgdGhpcy5lbmNyeXB0Q3JlZGl0Q2FyZFNlcnZpY2UuZW5jcnlwdENyZWRpdENhcmQ8U3VibWl0UmVxdWVzdD4oXG4gICAgICAgICAgICAgIHJlcXVlc3RQYXJhbXNcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICByZXR1cm4gdGhpcy54cHNBcGlTZXJ2aWNlXG4gICAgICAgICAgICAuZGlyZWN0UGF5bWVudFJlcXVlc3QoZW5jcnlwdGVkUmVxdWVzdClcbiAgICAgICAgICAgIC50aGVuKCh4cHNSZXNwb25zZTogWHBzUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPVxuICAgICAgICAgICAgICAgIHRoaXMueHBzUmVzcG9uc2VFcnJvcnNNYXBwaW5nU2VydmljZS5tYXBFcnJvcnMoeHBzUmVzcG9uc2UpO1xuXG4gICAgICAgICAgICAgIHRoaXMuZmlsbFVzZXJTZXNzaW9uKHhwc1Jlc3BvbnNlKTtcblxuICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbG9nRXJyb3IgPSAoZXJyb3I6IHtcbiAgICAgICAgICAgICAgICAgIGNvZGU6IG51bWJlcjtcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICAgICAgICAgICAgICB9KTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlLnNlbmQoXG4gICAgICAgICAgICAgICAgICAgIFVzZXJCZWhhdmlvdXJFdmVudE5hbWUuc2hvd0Vycm9yTWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgdXNlckJlaGF2aW91ckV2ZW50VHlwZXMubWFudWFsLFxuICAgICAgICAgICAgICAgICAgICB7IHZhbHVlOiBTdHJpbmcoZXJyb3IuY29kZSksIGV4dHJhVmFsdWU6IGVycm9yLm1lc3NhZ2UgfVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgcmVzcG9uc2UuZXJyb3JzLmZvckVhY2gobG9nRXJyb3IpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2VGYWN0b3J5KHJlc3BvbnNlKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgUmVzcG9uc2VFcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGZpbGxVc2VyU2Vzc2lvbih4cHNSZXNwb25zZTogWHBzUmVzcG9uc2UpOiB2b2lkIHtcbiAgICB0aGlzLnVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlLmZpbGxVc2VyU2Vzc2lvbih7XG4gICAgICAuLi54cHNSZXNwb25zZSxcbiAgICAgIGZpZWxkczogT2JqZWN0LmtleXMoeHBzUmVzcG9uc2UuZm9ybSkubWFwKFxuICAgICAgICAoa2V5OiBzdHJpbmcpOiBGaWVsZCA9PiAoeHBzUmVzcG9uc2UgYXMgWHBzUmVzcG9uc2UpLmZvcm1ba2V5XVxuICAgICAgKSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { XpsApiPartRequest } from '../../xps-api-part-request.abstract';
|
|
2
2
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
3
3
|
export class SyncRequest extends XpsApiPartRequest {
|
|
4
|
-
constructor(parameters) {
|
|
4
|
+
constructor({ token, changedField, fields, form, ...parameters }) {
|
|
5
5
|
super();
|
|
6
6
|
this.xps_fix_command = 'calculate';
|
|
7
|
-
this.access_token =
|
|
8
|
-
const fieldsValues = this.getFieldsValues(
|
|
7
|
+
this.access_token = token;
|
|
8
|
+
const fieldsValues = this.getFieldsValues(changedField, fields, form);
|
|
9
|
+
this.addParameters(parameters);
|
|
9
10
|
this.addXpsParameters({
|
|
10
11
|
...fieldsValues,
|
|
11
|
-
change_element:
|
|
12
|
+
change_element: changedField.name,
|
|
12
13
|
});
|
|
13
14
|
}
|
|
14
15
|
getFieldsValues(changedField, fields, form) {
|
|
@@ -28,4 +29,4 @@ export class SyncRequest extends XpsApiPartRequest {
|
|
|
28
29
|
return map;
|
|
29
30
|
}
|
|
30
31
|
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1yZXF1ZXN0LmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9zeW5jL3JlcXVlc3Qvc3luYy1yZXF1ZXN0LmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXhFLHlEQUF5RDtBQUN6RCxNQUFNLE9BQU8sV0FBWSxTQUFRLGlCQUFpQjtJQUloRCxZQUFtQixFQUNqQixLQUFLLEVBQ0wsWUFBWSxFQUNaLE1BQU0sRUFDTixJQUFJLEVBQ0osR0FBRyxVQUFVLEVBT2Q7UUFDQyxLQUFLLEVBQUUsQ0FBQztRQWZNLG9CQUFlLEdBQUcsV0FBVyxDQUFDO1FBaUI1QyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUUxQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFdEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUvQixJQUFJLENBQUMsZ0JBQWdCLENBQUM7WUFDcEIsR0FBRyxZQUFZO1lBQ2YsY0FBYyxFQUFFLFlBQVksQ0FBQyxJQUFJO1NBQ2xDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxlQUFlLENBQ3JCLFlBQW1CLEVBQ25CLE1BQWUsRUFDZixJQUFzQjtRQUV0QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLE9BQU8sWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDbkQsQ0FBQyxTQUFvQyxFQUFFLFNBQWlCLEVBQUUsRUFBRTtZQUMxRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sS0FBSyxHQUFzQixTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRTFELElBQUksV0FBVyxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUN6QixTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsV0FBVyxFQUFFLEtBQUssSUFBSSxLQUFLLEVBQUUsS0FBSyxDQUFDO1lBQzVELENBQUM7WUFFRCxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDLEVBQ0QsRUFBRSxDQUNILENBQUM7SUFDSixDQUFDO0lBRU8sWUFBWSxDQUFDLE1BQWU7UUFDbEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQWlCLENBQUM7UUFDckMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdEQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmllbGQgfSBmcm9tICcuLi8uLi9maWVsZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgWHBzQXBpUGFydFJlcXVlc3QgfSBmcm9tICcuLi8uLi94cHMtYXBpLXBhcnQtcmVxdWVzdC5hYnN0cmFjdCc7XG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuZXhwb3J0IGNsYXNzIFN5bmNSZXF1ZXN0IGV4dGVuZHMgWHBzQXBpUGFydFJlcXVlc3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgYWNjZXNzX3Rva2VuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB4cHNfZml4X2NvbW1hbmQgPSAnY2FsY3VsYXRlJztcblxuICBwdWJsaWMgY29uc3RydWN0b3Ioe1xuICAgIHRva2VuLFxuICAgIGNoYW5nZWRGaWVsZCxcbiAgICBmaWVsZHMsXG4gICAgZm9ybSxcbiAgICAuLi5wYXJhbWV0ZXJzXG4gIH06IHtcbiAgICB0b2tlbjogc3RyaW5nO1xuICAgIGNoYW5nZWRGaWVsZDogRmllbGQ7XG4gICAgZmllbGRzOiBGaWVsZFtdO1xuICAgIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG4gICAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbiAgfSkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmFjY2Vzc190b2tlbiA9IHRva2VuO1xuXG4gICAgY29uc3QgZmllbGRzVmFsdWVzID0gdGhpcy5nZXRGaWVsZHNWYWx1ZXMoY2hhbmdlZEZpZWxkLCBmaWVsZHMsIGZvcm0pO1xuXG4gICAgdGhpcy5hZGRQYXJhbWV0ZXJzKHBhcmFtZXRlcnMpO1xuXG4gICAgdGhpcy5hZGRYcHNQYXJhbWV0ZXJzKHtcbiAgICAgIC4uLmZpZWxkc1ZhbHVlcyxcbiAgICAgIGNoYW5nZV9lbGVtZW50OiBjaGFuZ2VkRmllbGQubmFtZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmllbGRzVmFsdWVzKFxuICAgIGNoYW5nZWRGaWVsZDogRmllbGQsXG4gICAgZmllbGRzOiBGaWVsZFtdLFxuICAgIGZvcm06IFVudHlwZWRGb3JtR3JvdXBcbiAgKTogeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0ge1xuICAgIGNvbnN0IGZpZWxkc01hcCA9IHRoaXMuZ2V0RmllbGRzTWFwKGZpZWxkcyk7XG4gICAgcmV0dXJuIGNoYW5nZWRGaWVsZD8uamF2YXNjcmlwdD8uY2hhbmdlLnBhcmFtcy5yZWR1Y2UoXG4gICAgICAoeHBzUGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LCBmaWVsZE5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCBmb3JtQ29udHJvbCA9IGZvcm0uZ2V0KGZpZWxkTmFtZSk7XG4gICAgICAgIGNvbnN0IGZpZWxkOiBGaWVsZCB8IHVuZGVmaW5lZCA9IGZpZWxkc01hcC5nZXQoZmllbGROYW1lKTtcblxuICAgICAgICBpZiAoZm9ybUNvbnRyb2wgfHwgZmllbGQpIHtcbiAgICAgICAgICB4cHNQYXJhbXNbZmllbGROYW1lXSA9IGZvcm1Db250cm9sPy52YWx1ZSA/PyBmaWVsZD8udmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4geHBzUGFyYW1zO1xuICAgICAgfSxcbiAgICAgIHt9XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmllbGRzTWFwKGZpZWxkczogRmllbGRbXSk6IE1hcDxzdHJpbmcsIEZpZWxkPiB7XG4gICAgY29uc3QgbWFwID0gbmV3IE1hcDxzdHJpbmcsIEZpZWxkPigpO1xuICAgIGZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4gbWFwLnNldChmaWVsZC5uYW1lLCBmaWVsZCkpO1xuICAgIHJldHVybiBtYXA7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -14,8 +14,9 @@ import * as i4 from "../../errors-mapping/xps-response-errors-mapping.service";
|
|
|
14
14
|
import * as i5 from "../../encrypt-credit-card/encrypt-credit-card.service";
|
|
15
15
|
import * as i6 from "../actions/show-errors/show-errors.action.class";
|
|
16
16
|
import * as i7 from "../../user-behaviour-analytics/user-behaviour-analytics.service";
|
|
17
|
+
import * as i8 from "../payment-settings/payment-settings.service";
|
|
17
18
|
export class SyncService extends EmitDataService {
|
|
18
|
-
constructor(requestFactory, responseFactory, xpsApiService, nextActionService, settingsService, xpsResponseErrorsMappingService, encryptCreditCardService, showErrorsActionCreator, userBehaviourAnalyticsService) {
|
|
19
|
+
constructor(requestFactory, responseFactory, xpsApiService, nextActionService, settingsService, xpsResponseErrorsMappingService, encryptCreditCardService, showErrorsActionCreator, userBehaviourAnalyticsService, paymentSettingsService) {
|
|
19
20
|
super();
|
|
20
21
|
this.requestFactory = requestFactory;
|
|
21
22
|
this.responseFactory = responseFactory;
|
|
@@ -26,8 +27,10 @@ export class SyncService extends EmitDataService {
|
|
|
26
27
|
this.encryptCreditCardService = encryptCreditCardService;
|
|
27
28
|
this.showErrorsActionCreator = showErrorsActionCreator;
|
|
28
29
|
this.userBehaviourAnalyticsService = userBehaviourAnalyticsService;
|
|
30
|
+
this.paymentSettingsService = paymentSettingsService;
|
|
29
31
|
this.prevFieldSyncStates = {};
|
|
30
32
|
this.form = new UntypedFormGroup({});
|
|
33
|
+
this.paymentConfiguration = null;
|
|
31
34
|
this.fields = [];
|
|
32
35
|
this.fieldSyncTimers = {};
|
|
33
36
|
this.fieldAsyncValidation = new Subject();
|
|
@@ -35,15 +38,17 @@ export class SyncService extends EmitDataService {
|
|
|
35
38
|
get fieldAsyncValidation$() {
|
|
36
39
|
return this.fieldAsyncValidation.asObservable();
|
|
37
40
|
}
|
|
38
|
-
setup(form, fields) {
|
|
41
|
+
setup(form, fields, config) {
|
|
39
42
|
this.reset();
|
|
40
43
|
this.form = form;
|
|
41
44
|
this.fields = fields;
|
|
45
|
+
this.paymentConfiguration = config;
|
|
42
46
|
}
|
|
43
47
|
reset() {
|
|
44
48
|
this.prevFieldSyncStates = {};
|
|
45
49
|
this.form = new UntypedFormGroup({});
|
|
46
50
|
this.fields = [];
|
|
51
|
+
this.paymentConfiguration = null;
|
|
47
52
|
}
|
|
48
53
|
async validate(field, delay = Number('750')) {
|
|
49
54
|
if (!this.isReadyField(field)) {
|
|
@@ -93,11 +98,13 @@ export class SyncService extends EmitDataService {
|
|
|
93
98
|
return control?.errors ?? null;
|
|
94
99
|
}
|
|
95
100
|
async request(field) {
|
|
101
|
+
const paymentSettingsParams = this.paymentSettingsService.getPaymentSettingsParams(this.paymentConfiguration);
|
|
96
102
|
const requestParams = this.requestFactory({
|
|
97
103
|
token: this.settingsService.token,
|
|
98
104
|
changedField: field,
|
|
99
105
|
fields: this.fields,
|
|
100
106
|
form: this.form,
|
|
107
|
+
...paymentSettingsParams,
|
|
101
108
|
});
|
|
102
109
|
const encryptedRequest = this.encryptCreditCardService.encryptCreditCard(requestParams);
|
|
103
110
|
return this.xpsApiService
|
|
@@ -139,7 +146,7 @@ export class SyncService extends EmitDataService {
|
|
|
139
146
|
}
|
|
140
147
|
this.fieldSyncTimers[field.name] = timerId;
|
|
141
148
|
}
|
|
142
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SyncService, deps: [{ token: syncRequestFactoryToken }, { token: syncResponseFactoryToken }, { token: i1.XpsApiService }, { token: i2.NextActionService }, { token: i3.SettingsService }, { token: i4.XpsResponseErrorsMappingService }, { token: i5.EncryptCreditCardService }, { token: i6.ShowErrorsActionCreator }, { token: i7.UserBehaviourAnalyticsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
149
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SyncService, deps: [{ token: syncRequestFactoryToken }, { token: syncResponseFactoryToken }, { token: i1.XpsApiService }, { token: i2.NextActionService }, { token: i3.SettingsService }, { token: i4.XpsResponseErrorsMappingService }, { token: i5.EncryptCreditCardService }, { token: i6.ShowErrorsActionCreator }, { token: i7.UserBehaviourAnalyticsService }, { token: i8.PaymentSettingsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
143
150
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SyncService, providedIn: 'root' }); }
|
|
144
151
|
}
|
|
145
152
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SyncService, decorators: [{
|
|
@@ -153,5 +160,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
153
160
|
}] }, { type: undefined, decorators: [{
|
|
154
161
|
type: Inject,
|
|
155
162
|
args: [syncResponseFactoryToken]
|
|
156
|
-
}] }, { type: i1.XpsApiService }, { type: i2.NextActionService }, { type: i3.SettingsService }, { type: i4.XpsResponseErrorsMappingService }, { type: i5.EncryptCreditCardService }, { type: i6.ShowErrorsActionCreator }, { type: i7.UserBehaviourAnalyticsService }] });
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9zeW5jL3N5bmMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJaEUsT0FBTyxFQUVMLHVCQUF1QixHQUN4QixNQUFNLDhCQUE4QixDQUFDO0FBRXRDLE9BQU8sRUFFTCx3QkFBd0IsR0FDekIsTUFBTSxnQ0FBZ0MsQ0FBQztBQVN4QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUN2RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQzs7Ozs7Ozs7O0FBS3pILE1BQU0sT0FBTyxXQUFZLFNBQVEsZUFBNEI7SUFPM0QsWUFFbUIsY0FBa0MsRUFFbEMsZUFBb0MsRUFDcEMsYUFBNEIsRUFDNUIsaUJBQW9DLEVBQ3BDLGVBQWdDLEVBQ2hDLCtCQUFnRSxFQUNoRSx3QkFBa0QsRUFDbEQsdUJBQWdELEVBQ2hELDZCQUE0RDtRQUU3RSxLQUFLLEVBQUUsQ0FBQztRQVhTLG1CQUFjLEdBQWQsY0FBYyxDQUFvQjtRQUVsQyxvQkFBZSxHQUFmLGVBQWUsQ0FBcUI7UUFDcEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsb0NBQStCLEdBQS9CLCtCQUErQixDQUFpQztRQUNoRSw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQsa0NBQTZCLEdBQTdCLDZCQUE2QixDQUErQjtRQWpCdkUsd0JBQW1CLEdBQTRDLEVBQUUsQ0FBQztRQUNsRSxTQUFJLEdBQXFCLElBQUksZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEQsV0FBTSxHQUFZLEVBQUUsQ0FBQztRQUNyQixvQkFBZSxHQUFvQyxFQUFFLENBQUM7UUFDN0MseUJBQW9CLEdBQUcsSUFBSSxPQUFPLEVBQXdCLENBQUM7SUFnQjVFLENBQUM7SUFFRCxJQUFXLHFCQUFxQjtRQUM5QixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBRU0sS0FBSyxDQUFDLElBQXNCLEVBQUUsTUFBZTtRQUNsRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFYixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFTSxLQUFLLENBQUMsUUFBUSxDQUNuQixLQUFZLEVBQ1osS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFFckIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM5QixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxNQUFNLEtBQUssR0FBRyxPQUFPLEVBQUUsS0FBSyxDQUFDO1FBQzdCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV6RCxNQUFNLGNBQWMsR0FBRyxLQUFLLEtBQUssS0FBSyxDQUFDLEtBQUssSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUVoRSxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ25CLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBRUQsSUFBSSxjQUFjLElBQUksS0FBSyxLQUFLLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUM5RCxPQUFPLFFBQVEsRUFBRSxLQUFLLElBQUksSUFBSSxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxJQUU1QixFQUFFO1lBQ0YsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUUzQyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQztZQUV6RCxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFzQixFQUFFLEVBQUU7Z0JBQ3BELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUM7b0JBQzdCLEtBQUs7b0JBQ0wsS0FBSztvQkFDTCxRQUFRO2lCQUNULENBQUMsQ0FBQztnQkFFSCxPQUFPLFFBQVEsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBRUYsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzdCLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ1YsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDOUIsSUFBSSxLQUFLLEtBQUssT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO3dCQUM3QixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDdkIsQ0FBQztvQkFFRCxLQUFLLGdCQUFnQixFQUFFLENBQUMsSUFBSSxDQUMxQixDQUFDLE1BQXdDLEVBQUUsRUFBRSxDQUMzQyxPQUFPLENBQUMsTUFBMEIsQ0FBQyxDQUN0QyxDQUFDO2dCQUNKLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFFVixJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ25ELENBQUM7aUJBQU0sQ0FBQztnQkFDTixLQUFLLGdCQUFnQixFQUFFLENBQUMsSUFBSSxDQUMxQixDQUFDLE1BQXdDLEVBQUUsRUFBRSxDQUMzQyxPQUFPLENBQUMsTUFBMEIsQ0FBQyxDQUN0QyxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLHVCQUF1QixDQUFDLEtBQVk7UUFDekMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLE9BQU8sT0FBTyxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUM7SUFDakMsQ0FBQztJQUVTLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBWTtRQUNsQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQ3hDLEtBQUssRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUs7WUFDakMsWUFBWSxFQUFFLEtBQUs7WUFDbkIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtTQUNoQixDQUFDLENBQUM7UUFFSCxNQUFNLGdCQUFnQixHQUNwQixJQUFJLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLENBQzdDLGFBQWEsQ0FDZCxDQUFDO1FBRUosT0FBTyxJQUFJLENBQUMsYUFBYTthQUN0QixvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQzthQUN0QyxJQUFJLENBQUMsQ0FBQyxXQUF3QixFQUFFLEVBQUU7WUFDakMsTUFBTSxRQUFRLEdBQ1osSUFBSSxDQUFDLCtCQUErQixDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUU5RCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxZQUFZLENBQUMsS0FBWTtRQUMvQixNQUFNLGFBQWEsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUM7UUFDakQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVwRCxPQUFPLGFBQWEsSUFBSSxjQUFjLENBQUM7SUFDekMsQ0FBQztJQUVPLHFCQUFxQixDQUFDLEtBQVk7UUFDeEMsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTyxxQkFBcUIsQ0FDM0IsS0FBWSxFQUNaLEtBQWMsRUFDZCxNQUE2QjtRQUU3QixJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzNELENBQUM7SUFFTyxjQUFjLENBQUMsUUFBcUI7UUFDMUMsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUF3QyxFQUFRLEVBQUU7Z0JBQ2xFLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQ3JDLHNCQUFzQixDQUFDLGdCQUFnQixFQUN2Qyx1QkFBdUIsQ0FBQyxNQUFNLEVBQzlCLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FDekQsQ0FBQztZQUNKLENBQUMsQ0FBQztZQUVGLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFM0UsSUFBSSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FDcEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FDdkQsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsS0FBWSxFQUFFLE9BQWU7UUFDdkQsTUFBTSxXQUFXLEdBQVcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFN0QsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUVELElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQztJQUM3QyxDQUFDOzhHQXhMVSxXQUFXLGtCQVFaLHVCQUF1QixhQUV2Qix3QkFBd0I7a0hBVnZCLFdBQVcsY0FGVixNQUFNOzsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBU0ksTUFBTTsyQkFBQyx1QkFBdUI7OzBCQUU5QixNQUFNOzJCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uL3NldHRpbmdzL3NldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgRW1pdERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vZW1pdC1kYXRhLnNlcnZpY2UuYWJzdHJhY3QnO1xuaW1wb3J0IHsgRmllbGQgfSBmcm9tICcuLi9maWVsZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgWHBzUmVzcG9uc2UgfSBmcm9tICcuLi94cHMtcmVzcG9uc2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpZWxkU3luY1N0YXRlIH0gZnJvbSAnLi9maWVsZC1zeW5jLXN0YXRlLmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBTeW5jUmVxdWVzdEZhY3RvcnksXG4gIHN5bmNSZXF1ZXN0RmFjdG9yeVRva2VuLFxufSBmcm9tICcuL3JlcXVlc3Qvc3luYy1yZXF1ZXN0LnRva2VuJztcbmltcG9ydCB7IFN5bmNSZXNwb25zZSB9IGZyb20gJy4vcmVzcG9uc2Uvc3luYy1yZXNwb25zZS5jbGFzcyc7XG5pbXBvcnQge1xuICBTeW5jUmVzcG9uc2VGYWN0b3J5LFxuICBzeW5jUmVzcG9uc2VGYWN0b3J5VG9rZW4sXG59IGZyb20gJy4vcmVzcG9uc2Uvc3luYy1yZXNwb25zZS50b2tlbic7XG5pbXBvcnQgeyBOZXh0QWN0aW9uU2VydmljZSB9IGZyb20gJy4uL2FjdGlvbnMvbmV4dC1hY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTaG93RXJyb3JzQWN0aW9uQ3JlYXRvciB9IGZyb20gJy4uL2FjdGlvbnMvc2hvdy1lcnJvcnMvc2hvdy1lcnJvcnMuYWN0aW9uLmNsYXNzJztcbmltcG9ydCB7IFhwc0FwaVNlcnZpY2UgfSBmcm9tICcuLi94cHMtYXBpL3hwcy1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBGaWVsZEFzeW5jVmFsaWRhdGlvbiB9IGZyb20gJy4vZmllbGQtYXN5bmMtdmFsaWRhdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRW5jcnlwdENyZWRpdENhcmRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZW5jcnlwdC1jcmVkaXQtY2FyZC9lbmNyeXB0LWNyZWRpdC1jYXJkLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3luY1JlcXVlc3QgfSBmcm9tICcuL3JlcXVlc3Qvc3luYy1yZXF1ZXN0LmNsYXNzJztcbmltcG9ydCB7IFhwc1Jlc3BvbnNlRXJyb3JzTWFwcGluZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9lcnJvcnMtbWFwcGluZy94cHMtcmVzcG9uc2UtZXJyb3JzLW1hcHBpbmcuc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZSB9IGZyb20gJy4uLy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1hbmFseXRpY3Muc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyQmVoYXZpb3VyRXZlbnROYW1lIH0gZnJvbSAnLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWV2ZW50LW5hbWUuZW51bSc7XG5pbXBvcnQgeyB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcyB9IGZyb20gJy4uLy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1ldmVudC91c2VyLWJlaGF2aW91ci1ldmVudC10eXBlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTeW5jU2VydmljZSBleHRlbmRzIEVtaXREYXRhU2VydmljZTxYcHNSZXNwb25zZT4ge1xuICBwcml2YXRlIHByZXZGaWVsZFN5bmNTdGF0ZXM6IHsgW2ZpZWxkTmFtZTogc3RyaW5nXTogRmllbGRTeW5jU3RhdGUgfSA9IHt9O1xuICBwcml2YXRlIGZvcm06IFVudHlwZWRGb3JtR3JvdXAgPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSk7XG4gIHByaXZhdGUgZmllbGRzOiBGaWVsZFtdID0gW107XG4gIHByaXZhdGUgZmllbGRTeW5jVGltZXJzOiB7IFtmaWVsZE5hbWU6IHN0cmluZ106IG51bWJlciB9ID0ge307XG4gIHByaXZhdGUgcmVhZG9ubHkgZmllbGRBc3luY1ZhbGlkYXRpb24gPSBuZXcgU3ViamVjdDxGaWVsZEFzeW5jVmFsaWRhdGlvbj4oKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChzeW5jUmVxdWVzdEZhY3RvcnlUb2tlbilcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlcXVlc3RGYWN0b3J5OiBTeW5jUmVxdWVzdEZhY3RvcnksXG4gICAgQEluamVjdChzeW5jUmVzcG9uc2VGYWN0b3J5VG9rZW4pXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXNwb25zZUZhY3Rvcnk6IFN5bmNSZXNwb25zZUZhY3RvcnksXG4gICAgcHJpdmF0ZSByZWFkb25seSB4cHNBcGlTZXJ2aWNlOiBYcHNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmV4dEFjdGlvblNlcnZpY2U6IE5leHRBY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2V0dGluZ3NTZXJ2aWNlOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB4cHNSZXNwb25zZUVycm9yc01hcHBpbmdTZXJ2aWNlOiBYcHNSZXNwb25zZUVycm9yc01hcHBpbmdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZW5jcnlwdENyZWRpdENhcmRTZXJ2aWNlOiBFbmNyeXB0Q3JlZGl0Q2FyZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzaG93RXJyb3JzQWN0aW9uQ3JlYXRvcjogU2hvd0Vycm9yc0FjdGlvbkNyZWF0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZTogVXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmllbGRBc3luY1ZhbGlkYXRpb24kKCk6IE9ic2VydmFibGU8RmllbGRBc3luY1ZhbGlkYXRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5maWVsZEFzeW5jVmFsaWRhdGlvbi5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXR1cChmb3JtOiBVbnR5cGVkRm9ybUdyb3VwLCBmaWVsZHM6IEZpZWxkW10pOiB2b2lkIHtcbiAgICB0aGlzLnJlc2V0KCk7XG5cbiAgICB0aGlzLmZvcm0gPSBmb3JtO1xuICAgIHRoaXMuZmllbGRzID0gZmllbGRzO1xuICB9XG5cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMucHJldkZpZWxkU3luY1N0YXRlcyA9IHt9O1xuICAgIHRoaXMuZm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcbiAgICB0aGlzLmZpZWxkcyA9IFtdO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHZhbGlkYXRlKFxuICAgIGZpZWxkOiBGaWVsZCxcbiAgICBkZWxheSA9IE51bWJlcignNzUwJylcbiAgKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4ge1xuICAgIGlmICghdGhpcy5pc1JlYWR5RmllbGQoZmllbGQpKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KGZpZWxkLm5hbWUpO1xuICAgIGNvbnN0IHZhbHVlID0gY29udHJvbD8udmFsdWU7XG4gICAgY29uc3QgcHJldkZpZWxkU3RhdGUgPSB0aGlzLmdldFByZXZGaWVsZFN5bmNTdGF0ZShmaWVsZCk7XG5cbiAgICBjb25zdCBpc0luaXRpYWxWYWx1ZSA9IHZhbHVlID09PSBmaWVsZC52YWx1ZSAmJiAhcHJldkZpZWxkU3RhdGU7XG5cbiAgICBpZiAoaXNJbml0aWFsVmFsdWUpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7XG4gICAgfVxuXG4gICAgaWYgKHByZXZGaWVsZFN0YXRlICYmIHZhbHVlID09PSBwcmV2RmllbGRTdGF0ZS52YWx1ZSkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShwcmV2RmllbGRTdGF0ZS5yZXN1bHQpLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHJldHVybiByZXNwb25zZT8uZXJyb3IgPz8gbnVsbDtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZUZpZWxkU3RhdGUgPSBhc3luYyAoKTogUHJvbWlzZTxcbiAgICAgIHN0cmluZyB8IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsXG4gICAgPiA9PiB7XG4gICAgICBjb25zdCByZXF1ZXN0UHJvbWlzZSA9IHRoaXMucmVxdWVzdChmaWVsZCk7XG5cbiAgICAgIHRoaXMuc2V0UHJldkZpZWxkU3luY1N0YXRlKGZpZWxkLCB2YWx1ZSwgcmVxdWVzdFByb21pc2UpO1xuXG4gICAgICByZXR1cm4gcmVxdWVzdFByb21pc2UudGhlbigocmVzcG9uc2U6IFN5bmNSZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLmZpZWxkQXN5bmNWYWxpZGF0aW9uLm5leHQoe1xuICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcmVzcG9uc2UuZXJyb3IgPz8gbnVsbDtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGlmIChkZWxheSkge1xuICAgICAgICBjb25zdCB0aW1lcklkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKHZhbHVlICE9PSBjb250cm9sPy52YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdm9pZCB1cGRhdGVGaWVsZFN0YXRlKCkudGhlbihcbiAgICAgICAgICAgIChlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHwgc3RyaW5nKSA9PlxuICAgICAgICAgICAgICByZXNvbHZlKGVycm9ycyBhcyBWYWxpZGF0aW9uRXJyb3JzKVxuICAgICAgICAgICk7XG4gICAgICAgIH0sIGRlbGF5KTtcblxuICAgICAgICB0aGlzLnJlc2V0RmllbGRTeW5jVGltZXIoZmllbGQsIE51bWJlcih0aW1lcklkKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2b2lkIHVwZGF0ZUZpZWxkU3RhdGUoKS50aGVuKFxuICAgICAgICAgIChlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHwgc3RyaW5nKSA9PlxuICAgICAgICAgICAgcmVzb2x2ZShlcnJvcnMgYXMgVmFsaWRhdGlvbkVycm9ycylcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTeW5jVmFsaWRhdGlvbkVycm9ycyhmaWVsZDogRmllbGQpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybS5nZXQoZmllbGQubmFtZSk7XG4gICAgcmV0dXJuIGNvbnRyb2w/LmVycm9ycyA/PyBudWxsO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHJlcXVlc3QoZmllbGQ6IEZpZWxkKTogUHJvbWlzZTxTeW5jUmVzcG9uc2U+IHtcbiAgICBjb25zdCByZXF1ZXN0UGFyYW1zID0gdGhpcy5yZXF1ZXN0RmFjdG9yeSh7XG4gICAgICB0b2tlbjogdGhpcy5zZXR0aW5nc1NlcnZpY2UudG9rZW4sXG4gICAgICBjaGFuZ2VkRmllbGQ6IGZpZWxkLFxuICAgICAgZmllbGRzOiB0aGlzLmZpZWxkcyxcbiAgICAgIGZvcm06IHRoaXMuZm9ybSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGVuY3J5cHRlZFJlcXVlc3QgPVxuICAgICAgdGhpcy5lbmNyeXB0Q3JlZGl0Q2FyZFNlcnZpY2UuZW5jcnlwdENyZWRpdENhcmQ8U3luY1JlcXVlc3Q+KFxuICAgICAgICByZXF1ZXN0UGFyYW1zXG4gICAgICApO1xuXG4gICAgcmV0dXJuIHRoaXMueHBzQXBpU2VydmljZVxuICAgICAgLmRpcmVjdFBheW1lbnRSZXF1ZXN0KGVuY3J5cHRlZFJlcXVlc3QpXG4gICAgICAudGhlbigoeHBzUmVzcG9uc2U6IFhwc1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID1cbiAgICAgICAgICB0aGlzLnhwc1Jlc3BvbnNlRXJyb3JzTWFwcGluZ1NlcnZpY2UubWFwRXJyb3JzKHhwc1Jlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLmVtaXRGb3JtRXJyb3JzKHJlc3BvbnNlKTtcbiAgICAgICAgdGhpcy5lbWl0KHJlc3BvbnNlKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2VGYWN0b3J5KGZpZWxkLCByZXNwb25zZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNSZWFkeUZpZWxkKGZpZWxkOiBGaWVsZCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGlzU3luY0VuYWJsZWQgPSAhIWZpZWxkLmphdmFzY3JpcHQ/LmNoYW5nZTtcbiAgICBjb25zdCBpc0V4aXN0c0luRm9ybSA9ICEhdGhpcy5mb3JtPy5nZXQoZmllbGQubmFtZSk7XG5cbiAgICByZXR1cm4gaXNTeW5jRW5hYmxlZCAmJiBpc0V4aXN0c0luRm9ybTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UHJldkZpZWxkU3luY1N0YXRlKGZpZWxkOiBGaWVsZCk6IEZpZWxkU3luY1N0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5wcmV2RmllbGRTeW5jU3RhdGVzW2ZpZWxkLm5hbWVdO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQcmV2RmllbGRTeW5jU3RhdGUoXG4gICAgZmllbGQ6IEZpZWxkLFxuICAgIHZhbHVlOiB1bmtub3duLFxuICAgIHJlc3VsdDogUHJvbWlzZTxTeW5jUmVzcG9uc2U+XG4gICk6IHZvaWQge1xuICAgIHRoaXMucHJldkZpZWxkU3luY1N0YXRlc1tmaWVsZC5uYW1lXSA9IHsgdmFsdWUsIHJlc3VsdCB9O1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Rm9ybUVycm9ycyhyZXNwb25zZTogWHBzUmVzcG9uc2UpOiB2b2lkIHtcbiAgICBpZiAocmVzcG9uc2UuZXJyb3JzKSB7XG4gICAgICBjb25zdCBsb2dFcnJvciA9IChlcnJvcjogeyBjb2RlOiBudW1iZXI7IG1lc3NhZ2U6IHN0cmluZyB9KTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMudXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2Uuc2VuZChcbiAgICAgICAgICBVc2VyQmVoYXZpb3VyRXZlbnROYW1lLnNob3dFcnJvck1lc3NhZ2UsXG4gICAgICAgICAgdXNlckJlaGF2aW91ckV2ZW50VHlwZXMubWFudWFsLFxuICAgICAgICAgIHsgdmFsdWU6IFN0cmluZyhlcnJvci5jb2RlKSwgZXh0cmFWYWx1ZTogZXJyb3IubWVzc2FnZSB9XG4gICAgICAgICk7XG4gICAgICB9O1xuXG4gICAgICByZXNwb25zZS5lcnJvcnMuZm9yRWFjaChsb2dFcnJvcik7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybUVycm9ycyA9IHJlc3BvbnNlLmVycm9ycz8uZmlsdGVyKChlcnJvcikgPT4gIWVycm9yLmVsZW1lbnRfbmFtZSk7XG5cbiAgICBpZiAoZm9ybUVycm9ycz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLm5leHRBY3Rpb25TZXJ2aWNlLmVtaXRGbG93VXBkYXRlcyhcbiAgICAgICAgdGhpcy5zaG93RXJyb3JzQWN0aW9uQ3JlYXRvci5nZXRBY3Rpb25EYXRhKGZvcm1FcnJvcnMpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRGaWVsZFN5bmNUaW1lcihmaWVsZDogRmllbGQsIHRpbWVySWQ6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHByZXZUaW1lcklkOiBudW1iZXIgPSB0aGlzLmZpZWxkU3luY1RpbWVyc1tmaWVsZC5uYW1lXTtcblxuICAgIGlmIChwcmV2VGltZXJJZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHByZXZUaW1lcklkKTtcbiAgICB9XG5cbiAgICB0aGlzLmZpZWxkU3luY1RpbWVyc1tmaWVsZC5uYW1lXSA9IHRpbWVySWQ7XG4gIH1cbn1cbiJdfQ==
|
|
163
|
+
}] }, { type: i1.XpsApiService }, { type: i2.NextActionService }, { type: i3.SettingsService }, { type: i4.XpsResponseErrorsMappingService }, { type: i5.EncryptCreditCardService }, { type: i6.ShowErrorsActionCreator }, { type: i7.UserBehaviourAnalyticsService }, { type: i8.PaymentSettingsService }] });
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9zeW5jL3N5bmMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJaEUsT0FBTyxFQUVMLHVCQUF1QixHQUN4QixNQUFNLDhCQUE4QixDQUFDO0FBRXRDLE9BQU8sRUFFTCx3QkFBd0IsR0FDekIsTUFBTSxnQ0FBZ0MsQ0FBQztBQVN4QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUN2RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQzs7Ozs7Ozs7OztBQU96SCxNQUFNLE9BQU8sV0FBWSxTQUFRLGVBQTRCO0lBUTNELFlBRW1CLGNBQWtDLEVBRWxDLGVBQW9DLEVBQ3BDLGFBQTRCLEVBQzVCLGlCQUFvQyxFQUNwQyxlQUFnQyxFQUNoQywrQkFBZ0UsRUFDaEUsd0JBQWtELEVBQ2xELHVCQUFnRCxFQUNoRCw2QkFBNEQsRUFDNUQsc0JBQThDO1FBRS9ELEtBQUssRUFBRSxDQUFDO1FBWlMsbUJBQWMsR0FBZCxjQUFjLENBQW9CO1FBRWxDLG9CQUFlLEdBQWYsZUFBZSxDQUFxQjtRQUNwQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxvQ0FBK0IsR0FBL0IsK0JBQStCLENBQWlDO1FBQ2hFLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCxrQ0FBNkIsR0FBN0IsNkJBQTZCLENBQStCO1FBQzVELDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFuQnpELHdCQUFtQixHQUE0QyxFQUFFLENBQUM7UUFDbEUsU0FBSSxHQUFxQixJQUFJLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELHlCQUFvQixHQUFnQyxJQUFJLENBQUM7UUFDekQsV0FBTSxHQUFZLEVBQUUsQ0FBQztRQUNyQixvQkFBZSxHQUFvQyxFQUFFLENBQUM7UUFDN0MseUJBQW9CLEdBQUcsSUFBSSxPQUFPLEVBQXdCLENBQUM7SUFpQjVFLENBQUM7SUFFRCxJQUFXLHFCQUFxQjtRQUM5QixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBRU0sS0FBSyxDQUNWLElBQXNCLEVBQ3RCLE1BQWUsRUFDZixNQUE0QjtRQUU1QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFYixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsTUFBTSxDQUFDO0lBQ3JDLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztJQUNuQyxDQUFDO0lBRU0sS0FBSyxDQUFDLFFBQVEsQ0FDbkIsS0FBWSxFQUNaLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBRXJCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDOUIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsTUFBTSxLQUFLLEdBQUcsT0FBTyxFQUFFLEtBQUssQ0FBQztRQUM3QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekQsTUFBTSxjQUFjLEdBQUcsS0FBSyxLQUFLLEtBQUssQ0FBQyxLQUFLLElBQUksQ0FBQyxjQUFjLENBQUM7UUFFaEUsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUVELElBQUksY0FBYyxJQUFJLEtBQUssS0FBSyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDckQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDOUQsT0FBTyxRQUFRLEVBQUUsS0FBSyxJQUFJLElBQUksQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxNQUFNLGdCQUFnQixHQUFHLEtBQUssSUFFNUIsRUFBRTtZQUNGLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFM0MsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFFekQsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBc0IsRUFBRSxFQUFFO2dCQUNwRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDO29CQUM3QixLQUFLO29CQUNMLEtBQUs7b0JBQ0wsUUFBUTtpQkFDVCxDQUFDLENBQUM7Z0JBRUgsT0FBTyxRQUFRLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQztZQUNoQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUVGLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM3QixJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQzlCLElBQUksS0FBSyxLQUFLLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQzt3QkFDN0IsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3ZCLENBQUM7b0JBRUQsS0FBSyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksQ0FDMUIsQ0FBQyxNQUF3QyxFQUFFLEVBQUUsQ0FDM0MsT0FBTyxDQUFDLE1BQTBCLENBQUMsQ0FDdEMsQ0FBQztnQkFDSixDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBRVYsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNuRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sS0FBSyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksQ0FDMUIsQ0FBQyxNQUF3QyxFQUFFLEVBQUUsQ0FDM0MsT0FBTyxDQUFDLE1BQTBCLENBQUMsQ0FDdEMsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxLQUFZO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxPQUFPLE9BQU8sRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDO0lBQ2pDLENBQUM7SUFFUyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQVk7UUFDbEMsTUFBTSxxQkFBcUIsR0FDekIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHdCQUF3QixDQUNsRCxJQUFJLENBQUMsb0JBQW9CLENBQzFCLENBQUM7UUFDSixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQ3hDLEtBQUssRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUs7WUFDakMsWUFBWSxFQUFFLEtBQUs7WUFDbkIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLEdBQUcscUJBQXFCO1NBQ3pCLENBQUMsQ0FBQztRQUVILE1BQU0sZ0JBQWdCLEdBQ3BCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FDN0MsYUFBYSxDQUNkLENBQUM7UUFFSixPQUFPLElBQUksQ0FBQyxhQUFhO2FBQ3RCLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDO2FBQ3RDLElBQUksQ0FBQyxDQUFDLFdBQXdCLEVBQUUsRUFBRTtZQUNqQyxNQUFNLFFBQVEsR0FDWixJQUFJLENBQUMsK0JBQStCLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBRTlELElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLFlBQVksQ0FBQyxLQUFZO1FBQy9CLE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQztRQUNqRCxNQUFNLGNBQWMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXBELE9BQU8sYUFBYSxJQUFJLGNBQWMsQ0FBQztJQUN6QyxDQUFDO0lBRU8scUJBQXFCLENBQUMsS0FBWTtRQUN4QyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVPLHFCQUFxQixDQUMzQixLQUFZLEVBQ1osS0FBYyxFQUNkLE1BQTZCO1FBRTdCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDM0QsQ0FBQztJQUVPLGNBQWMsQ0FBQyxRQUFxQjtRQUMxQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQXdDLEVBQVEsRUFBRTtnQkFDbEUsSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FDckMsc0JBQXNCLENBQUMsZ0JBQWdCLEVBQ3ZDLHVCQUF1QixDQUFDLE1BQU0sRUFDOUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUN6RCxDQUFDO1lBQ0osQ0FBQyxDQUFDO1lBRUYsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUUzRSxJQUFJLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUNwQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUN2RCxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxLQUFZLEVBQUUsT0FBZTtRQUN2RCxNQUFNLFdBQVcsR0FBVyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU3RCxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1QixDQUFDO1FBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDO0lBQzdDLENBQUM7OEdBck1VLFdBQVcsa0JBU1osdUJBQXVCLGFBRXZCLHdCQUF3QjtrSEFYdkIsV0FBVyxjQUZWLE1BQU07OzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFVSSxNQUFNOzJCQUFDLHVCQUF1Qjs7MEJBRTlCLE1BQU07MkJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2V0dGluZ3Mvc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBFbWl0RGF0YVNlcnZpY2UgfSBmcm9tICcuLi9lbWl0LWRhdGEuc2VydmljZS5hYnN0cmFjdCc7XG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4uL2ZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBYcHNSZXNwb25zZSB9IGZyb20gJy4uL3hwcy1yZXNwb25zZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmllbGRTeW5jU3RhdGUgfSBmcm9tICcuL2ZpZWxkLXN5bmMtc3RhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIFN5bmNSZXF1ZXN0RmFjdG9yeSxcbiAgc3luY1JlcXVlc3RGYWN0b3J5VG9rZW4sXG59IGZyb20gJy4vcmVxdWVzdC9zeW5jLXJlcXVlc3QudG9rZW4nO1xuaW1wb3J0IHsgU3luY1Jlc3BvbnNlIH0gZnJvbSAnLi9yZXNwb25zZS9zeW5jLXJlc3BvbnNlLmNsYXNzJztcbmltcG9ydCB7XG4gIFN5bmNSZXNwb25zZUZhY3RvcnksXG4gIHN5bmNSZXNwb25zZUZhY3RvcnlUb2tlbixcbn0gZnJvbSAnLi9yZXNwb25zZS9zeW5jLXJlc3BvbnNlLnRva2VuJztcbmltcG9ydCB7IE5leHRBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vYWN0aW9ucy9uZXh0LWFjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFNob3dFcnJvcnNBY3Rpb25DcmVhdG9yIH0gZnJvbSAnLi4vYWN0aW9ucy9zaG93LWVycm9ycy9zaG93LWVycm9ycy5hY3Rpb24uY2xhc3MnO1xuaW1wb3J0IHsgWHBzQXBpU2VydmljZSB9IGZyb20gJy4uL3hwcy1hcGkveHBzLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IEZpZWxkQXN5bmNWYWxpZGF0aW9uIH0gZnJvbSAnLi9maWVsZC1hc3luYy12YWxpZGF0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBFbmNyeXB0Q3JlZGl0Q2FyZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9lbmNyeXB0LWNyZWRpdC1jYXJkL2VuY3J5cHQtY3JlZGl0LWNhcmQuc2VydmljZSc7XG5pbXBvcnQgeyBTeW5jUmVxdWVzdCB9IGZyb20gJy4vcmVxdWVzdC9zeW5jLXJlcXVlc3QuY2xhc3MnO1xuaW1wb3J0IHsgWHBzUmVzcG9uc2VFcnJvcnNNYXBwaW5nU2VydmljZSB9IGZyb20gJy4uLy4uL2Vycm9ycy1tYXBwaW5nL3hwcy1yZXNwb25zZS1lcnJvcnMtbWFwcGluZy5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJCZWhhdmlvdXJFdmVudE5hbWUgfSBmcm9tICcuLi8uLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItZXZlbnQtbmFtZS5lbnVtJztcbmltcG9ydCB7IHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzIH0gZnJvbSAnLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWV2ZW50L3VzZXItYmVoYXZpb3VyLWV2ZW50LXR5cGVzJztcbmltcG9ydCB7IFBheW1lbnRDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vcGF5bWVudC1jb25maWd1cmF0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQYXltZW50U2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vcGF5bWVudC1zZXR0aW5ncy9wYXltZW50LXNldHRpbmdzLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU3luY1NlcnZpY2UgZXh0ZW5kcyBFbWl0RGF0YVNlcnZpY2U8WHBzUmVzcG9uc2U+IHtcbiAgcHJpdmF0ZSBwcmV2RmllbGRTeW5jU3RhdGVzOiB7IFtmaWVsZE5hbWU6IHN0cmluZ106IEZpZWxkU3luY1N0YXRlIH0gPSB7fTtcbiAgcHJpdmF0ZSBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xuICBwcml2YXRlIHBheW1lbnRDb25maWd1cmF0aW9uOiBQYXltZW50Q29uZmlndXJhdGlvbiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGZpZWxkczogRmllbGRbXSA9IFtdO1xuICBwcml2YXRlIGZpZWxkU3luY1RpbWVyczogeyBbZmllbGROYW1lOiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuICBwcml2YXRlIHJlYWRvbmx5IGZpZWxkQXN5bmNWYWxpZGF0aW9uID0gbmV3IFN1YmplY3Q8RmllbGRBc3luY1ZhbGlkYXRpb24+KCk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3Qoc3luY1JlcXVlc3RGYWN0b3J5VG9rZW4pXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXF1ZXN0RmFjdG9yeTogU3luY1JlcXVlc3RGYWN0b3J5LFxuICAgIEBJbmplY3Qoc3luY1Jlc3BvbnNlRmFjdG9yeVRva2VuKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzcG9uc2VGYWN0b3J5OiBTeW5jUmVzcG9uc2VGYWN0b3J5LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgeHBzQXBpU2VydmljZTogWHBzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5leHRBY3Rpb25TZXJ2aWNlOiBOZXh0QWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNldHRpbmdzU2VydmljZTogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgeHBzUmVzcG9uc2VFcnJvcnNNYXBwaW5nU2VydmljZTogWHBzUmVzcG9uc2VFcnJvcnNNYXBwaW5nU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVuY3J5cHRDcmVkaXRDYXJkU2VydmljZTogRW5jcnlwdENyZWRpdENhcmRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2hvd0Vycm9yc0FjdGlvbkNyZWF0b3I6IFNob3dFcnJvcnNBY3Rpb25DcmVhdG9yLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2U6IFVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGF5bWVudFNldHRpbmdzU2VydmljZTogUGF5bWVudFNldHRpbmdzU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIGdldCBmaWVsZEFzeW5jVmFsaWRhdGlvbiQoKTogT2JzZXJ2YWJsZTxGaWVsZEFzeW5jVmFsaWRhdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkQXN5bmNWYWxpZGF0aW9uLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIHNldHVwKFxuICAgIGZvcm06IFVudHlwZWRGb3JtR3JvdXAsXG4gICAgZmllbGRzOiBGaWVsZFtdLFxuICAgIGNvbmZpZzogUGF5bWVudENvbmZpZ3VyYXRpb25cbiAgKTogdm9pZCB7XG4gICAgdGhpcy5yZXNldCgpO1xuXG4gICAgdGhpcy5mb3JtID0gZm9ybTtcbiAgICB0aGlzLmZpZWxkcyA9IGZpZWxkcztcbiAgICB0aGlzLnBheW1lbnRDb25maWd1cmF0aW9uID0gY29uZmlnO1xuICB9XG5cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMucHJldkZpZWxkU3luY1N0YXRlcyA9IHt9O1xuICAgIHRoaXMuZm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcbiAgICB0aGlzLmZpZWxkcyA9IFtdO1xuICAgIHRoaXMucGF5bWVudENvbmZpZ3VyYXRpb24gPSBudWxsO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHZhbGlkYXRlKFxuICAgIGZpZWxkOiBGaWVsZCxcbiAgICBkZWxheSA9IE51bWJlcignNzUwJylcbiAgKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4ge1xuICAgIGlmICghdGhpcy5pc1JlYWR5RmllbGQoZmllbGQpKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KGZpZWxkLm5hbWUpO1xuICAgIGNvbnN0IHZhbHVlID0gY29udHJvbD8udmFsdWU7XG4gICAgY29uc3QgcHJldkZpZWxkU3RhdGUgPSB0aGlzLmdldFByZXZGaWVsZFN5bmNTdGF0ZShmaWVsZCk7XG5cbiAgICBjb25zdCBpc0luaXRpYWxWYWx1ZSA9IHZhbHVlID09PSBmaWVsZC52YWx1ZSAmJiAhcHJldkZpZWxkU3RhdGU7XG5cbiAgICBpZiAoaXNJbml0aWFsVmFsdWUpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7XG4gICAgfVxuXG4gICAgaWYgKHByZXZGaWVsZFN0YXRlICYmIHZhbHVlID09PSBwcmV2RmllbGRTdGF0ZS52YWx1ZSkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShwcmV2RmllbGRTdGF0ZS5yZXN1bHQpLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHJldHVybiByZXNwb25zZT8uZXJyb3IgPz8gbnVsbDtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZUZpZWxkU3RhdGUgPSBhc3luYyAoKTogUHJvbWlzZTxcbiAgICAgIHN0cmluZyB8IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsXG4gICAgPiA9PiB7XG4gICAgICBjb25zdCByZXF1ZXN0UHJvbWlzZSA9IHRoaXMucmVxdWVzdChmaWVsZCk7XG5cbiAgICAgIHRoaXMuc2V0UHJldkZpZWxkU3luY1N0YXRlKGZpZWxkLCB2YWx1ZSwgcmVxdWVzdFByb21pc2UpO1xuXG4gICAgICByZXR1cm4gcmVxdWVzdFByb21pc2UudGhlbigocmVzcG9uc2U6IFN5bmNSZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLmZpZWxkQXN5bmNWYWxpZGF0aW9uLm5leHQoe1xuICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcmVzcG9uc2UuZXJyb3IgPz8gbnVsbDtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGlmIChkZWxheSkge1xuICAgICAgICBjb25zdCB0aW1lcklkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKHZhbHVlICE9PSBjb250cm9sPy52YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdm9pZCB1cGRhdGVGaWVsZFN0YXRlKCkudGhlbihcbiAgICAgICAgICAgIChlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHwgc3RyaW5nKSA9PlxuICAgICAgICAgICAgICByZXNvbHZlKGVycm9ycyBhcyBWYWxpZGF0aW9uRXJyb3JzKVxuICAgICAgICAgICk7XG4gICAgICAgIH0sIGRlbGF5KTtcblxuICAgICAgICB0aGlzLnJlc2V0RmllbGRTeW5jVGltZXIoZmllbGQsIE51bWJlcih0aW1lcklkKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2b2lkIHVwZGF0ZUZpZWxkU3RhdGUoKS50aGVuKFxuICAgICAgICAgIChlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHwgc3RyaW5nKSA9PlxuICAgICAgICAgICAgcmVzb2x2ZShlcnJvcnMgYXMgVmFsaWRhdGlvbkVycm9ycylcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTeW5jVmFsaWRhdGlvbkVycm9ycyhmaWVsZDogRmllbGQpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybS5nZXQoZmllbGQubmFtZSk7XG4gICAgcmV0dXJuIGNvbnRyb2w/LmVycm9ycyA/PyBudWxsO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHJlcXVlc3QoZmllbGQ6IEZpZWxkKTogUHJvbWlzZTxTeW5jUmVzcG9uc2U+IHtcbiAgICBjb25zdCBwYXltZW50U2V0dGluZ3NQYXJhbXMgPVxuICAgICAgdGhpcy5wYXltZW50U2V0dGluZ3NTZXJ2aWNlLmdldFBheW1lbnRTZXR0aW5nc1BhcmFtcyhcbiAgICAgICAgdGhpcy5wYXltZW50Q29uZmlndXJhdGlvblxuICAgICAgKTtcbiAgICBjb25zdCByZXF1ZXN0UGFyYW1zID0gdGhpcy5yZXF1ZXN0RmFjdG9yeSh7XG4gICAgICB0b2tlbjogdGhpcy5zZXR0aW5nc1NlcnZpY2UudG9rZW4sXG4gICAgICBjaGFuZ2VkRmllbGQ6IGZpZWxkLFxuICAgICAgZmllbGRzOiB0aGlzLmZpZWxkcyxcbiAgICAgIGZvcm06IHRoaXMuZm9ybSxcbiAgICAgIC4uLnBheW1lbnRTZXR0aW5nc1BhcmFtcyxcbiAgICB9KTtcblxuICAgIGNvbnN0IGVuY3J5cHRlZFJlcXVlc3QgPVxuICAgICAgdGhpcy5lbmNyeXB0Q3JlZGl0Q2FyZFNlcnZpY2UuZW5jcnlwdENyZWRpdENhcmQ8U3luY1JlcXVlc3Q+KFxuICAgICAgICByZXF1ZXN0UGFyYW1zXG4gICAgICApO1xuXG4gICAgcmV0dXJuIHRoaXMueHBzQXBpU2VydmljZVxuICAgICAgLmRpcmVjdFBheW1lbnRSZXF1ZXN0KGVuY3J5cHRlZFJlcXVlc3QpXG4gICAgICAudGhlbigoeHBzUmVzcG9uc2U6IFhwc1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID1cbiAgICAgICAgICB0aGlzLnhwc1Jlc3BvbnNlRXJyb3JzTWFwcGluZ1NlcnZpY2UubWFwRXJyb3JzKHhwc1Jlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLmVtaXRGb3JtRXJyb3JzKHJlc3BvbnNlKTtcbiAgICAgICAgdGhpcy5lbWl0KHJlc3BvbnNlKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2VGYWN0b3J5KGZpZWxkLCByZXNwb25zZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNSZWFkeUZpZWxkKGZpZWxkOiBGaWVsZCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGlzU3luY0VuYWJsZWQgPSAhIWZpZWxkLmphdmFzY3JpcHQ/LmNoYW5nZTtcbiAgICBjb25zdCBpc0V4aXN0c0luRm9ybSA9ICEhdGhpcy5mb3JtPy5nZXQoZmllbGQubmFtZSk7XG5cbiAgICByZXR1cm4gaXNTeW5jRW5hYmxlZCAmJiBpc0V4aXN0c0luRm9ybTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UHJldkZpZWxkU3luY1N0YXRlKGZpZWxkOiBGaWVsZCk6IEZpZWxkU3luY1N0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5wcmV2RmllbGRTeW5jU3RhdGVzW2ZpZWxkLm5hbWVdO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQcmV2RmllbGRTeW5jU3RhdGUoXG4gICAgZmllbGQ6IEZpZWxkLFxuICAgIHZhbHVlOiB1bmtub3duLFxuICAgIHJlc3VsdDogUHJvbWlzZTxTeW5jUmVzcG9uc2U+XG4gICk6IHZvaWQge1xuICAgIHRoaXMucHJldkZpZWxkU3luY1N0YXRlc1tmaWVsZC5uYW1lXSA9IHsgdmFsdWUsIHJlc3VsdCB9O1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Rm9ybUVycm9ycyhyZXNwb25zZTogWHBzUmVzcG9uc2UpOiB2b2lkIHtcbiAgICBpZiAocmVzcG9uc2UuZXJyb3JzKSB7XG4gICAgICBjb25zdCBsb2dFcnJvciA9IChlcnJvcjogeyBjb2RlOiBudW1iZXI7IG1lc3NhZ2U6IHN0cmluZyB9KTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMudXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2Uuc2VuZChcbiAgICAgICAgICBVc2VyQmVoYXZpb3VyRXZlbnROYW1lLnNob3dFcnJvck1lc3NhZ2UsXG4gICAgICAgICAgdXNlckJlaGF2aW91ckV2ZW50VHlwZXMubWFudWFsLFxuICAgICAgICAgIHsgdmFsdWU6IFN0cmluZyhlcnJvci5jb2RlKSwgZXh0cmFWYWx1ZTogZXJyb3IubWVzc2FnZSB9XG4gICAgICAgICk7XG4gICAgICB9O1xuXG4gICAgICByZXNwb25zZS5lcnJvcnMuZm9yRWFjaChsb2dFcnJvcik7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybUVycm9ycyA9IHJlc3BvbnNlLmVycm9ycz8uZmlsdGVyKChlcnJvcikgPT4gIWVycm9yLmVsZW1lbnRfbmFtZSk7XG5cbiAgICBpZiAoZm9ybUVycm9ycz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLm5leHRBY3Rpb25TZXJ2aWNlLmVtaXRGbG93VXBkYXRlcyhcbiAgICAgICAgdGhpcy5zaG93RXJyb3JzQWN0aW9uQ3JlYXRvci5nZXRBY3Rpb25EYXRhKGZvcm1FcnJvcnMpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRGaWVsZFN5bmNUaW1lcihmaWVsZDogRmllbGQsIHRpbWVySWQ6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHByZXZUaW1lcklkOiBudW1iZXIgPSB0aGlzLmZpZWxkU3luY1RpbWVyc1tmaWVsZC5uYW1lXTtcblxuICAgIGlmIChwcmV2VGltZXJJZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHByZXZUaW1lcklkKTtcbiAgICB9XG5cbiAgICB0aGlzLmZpZWxkU3luY1RpbWVyc1tmaWVsZC5uYW1lXSA9IHRpbWVySWQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -4,5 +4,10 @@ export class XpsApiPartRequest {
|
|
|
4
4
|
this[`xps_${key}`] = parameters[key];
|
|
5
5
|
}
|
|
6
6
|
}
|
|
7
|
+
addParameters(parameters) {
|
|
8
|
+
for (const key in parameters) {
|
|
9
|
+
this[key] = parameters[key];
|
|
10
|
+
}
|
|
11
|
+
}
|
|
7
12
|
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHBzLWFwaS1wYXJ0LXJlcXVlc3QuYWJzdHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9wYXltZW50L3hwcy1hcGktcGFydC1yZXF1ZXN0LmFic3RyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBZ0IsaUJBQWlCO0lBRzNCLGdCQUFnQixDQUFDLFVBQXNDO1FBQy9ELEtBQUssTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkMsQ0FBQztJQUNILENBQUM7SUFFUyxhQUFhLENBQUMsVUFBc0M7UUFDNUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgYWJzdHJhY3QgY2xhc3MgWHBzQXBpUGFydFJlcXVlc3Qge1xuICBbZmllbGROYW1lOiBzdHJpbmddOiB1bmtub3duO1xuXG4gIHByb3RlY3RlZCBhZGRYcHNQYXJhbWV0ZXJzKHBhcmFtZXRlcnM6IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9KTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gcGFyYW1ldGVycykge1xuICAgICAgdGhpc1tgeHBzXyR7a2V5fWBdID0gcGFyYW1ldGVyc1trZXldO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhZGRQYXJhbWV0ZXJzKHBhcmFtZXRlcnM6IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9KTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gcGFyYW1ldGVycykge1xuICAgICAgdGhpc1trZXldID0gcGFyYW1ldGVyc1trZXldO1xuICAgIH1cbiAgfVxufVxuIl19
|