@xsolla/payment-client-core 0.2.59 → 0.2.60
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/sdk-payment-systems/apple-pay/apple-pay.service.mjs +16 -16
- package/fesm2022/xsolla-payment-client-core.mjs +14 -13
- package/fesm2022/xsolla-payment-client-core.mjs.map +1 -1
- package/lib/core/sdk-payment-systems/apple-pay/apple-pay.service.d.ts +2 -4
- package/package.json +1 -1
- package/xsolla-payment-client-core-0.2.60.tgz +0 -0
- package/xsolla-payment-client-core-0.2.59.tgz +0 -0
|
@@ -18,8 +18,7 @@ import * as i4 from "./params-builder/apple-pay-params-builder.service";
|
|
|
18
18
|
import * as i5 from "../../exceptions-handling/elk/elk-logger.service";
|
|
19
19
|
import * as i6 from "./apple-pay-sdk.service";
|
|
20
20
|
import * as i7 from "./external-window-communication/external-window-communication.service";
|
|
21
|
-
import * as i8 from "
|
|
22
|
-
import * as i9 from "../../settings/settings.service";
|
|
21
|
+
import * as i8 from "../../settings/settings.service";
|
|
23
22
|
export class ApplePayService {
|
|
24
23
|
get paymentParameters() {
|
|
25
24
|
return this.applePayParams;
|
|
@@ -61,7 +60,7 @@ export class ApplePayService {
|
|
|
61
60
|
.getWindowReturnMessage$()
|
|
62
61
|
.pipe(takeUntil(this.destroy$));
|
|
63
62
|
}
|
|
64
|
-
constructor(window, summaryFinanceDetailsAdapterService, braintreeHandler, checkoutHandler, appleParamsBuilder, elkLoggerService, applePaySdkService, externalWindowCommunicationService,
|
|
63
|
+
constructor(window, summaryFinanceDetailsAdapterService, braintreeHandler, checkoutHandler, appleParamsBuilder, elkLoggerService, applePaySdkService, externalWindowCommunicationService, settingsService) {
|
|
65
64
|
this.window = window;
|
|
66
65
|
this.summaryFinanceDetailsAdapterService = summaryFinanceDetailsAdapterService;
|
|
67
66
|
this.braintreeHandler = braintreeHandler;
|
|
@@ -70,7 +69,6 @@ export class ApplePayService {
|
|
|
70
69
|
this.elkLoggerService = elkLoggerService;
|
|
71
70
|
this.applePaySdkService = applePaySdkService;
|
|
72
71
|
this.externalWindowCommunicationService = externalWindowCommunicationService;
|
|
73
|
-
this.applePayCartService = applePayCartService;
|
|
74
72
|
this.settingsService = settingsService;
|
|
75
73
|
this.payment = new Subject();
|
|
76
74
|
this.error = new Subject();
|
|
@@ -123,11 +121,11 @@ export class ApplePayService {
|
|
|
123
121
|
this.emitError(ApplePayErrors.deviceIsNotCapableError);
|
|
124
122
|
}
|
|
125
123
|
}
|
|
126
|
-
async initApplePay(tokenKey) {
|
|
124
|
+
async initApplePay(tokenKey, isApplePayInstantFlowEnabled) {
|
|
127
125
|
if (this.applePayParams?.acquirer === 'braintree') {
|
|
128
126
|
await this.initBraintreeLibrary(tokenKey);
|
|
129
127
|
}
|
|
130
|
-
this.emitIntegrationType();
|
|
128
|
+
this.emitIntegrationType(isApplePayInstantFlowEnabled);
|
|
131
129
|
}
|
|
132
130
|
async startWindowCommunication() {
|
|
133
131
|
await this.externalWindowCommunicationService.openWebSocketConnection(this.settingsService.token);
|
|
@@ -204,7 +202,7 @@ export class ApplePayService {
|
|
|
204
202
|
return;
|
|
205
203
|
}
|
|
206
204
|
sessionHandler.startSession(parameters, additionalParams, () => this.applePaySdkService.emitWindowClosing());
|
|
207
|
-
this.emitApplePayOpened();
|
|
205
|
+
this.emitApplePayOpened(additionalParams.isApplePayInstantFlowEnabled ?? false);
|
|
208
206
|
}
|
|
209
207
|
mapShippingAddressToContact(shippingAddress) {
|
|
210
208
|
return mapShippingAddressToContact(shippingAddress);
|
|
@@ -229,8 +227,8 @@ export class ApplePayService {
|
|
|
229
227
|
emitError(error) {
|
|
230
228
|
this.error.next(error);
|
|
231
229
|
}
|
|
232
|
-
emitIntegrationType() {
|
|
233
|
-
this.integrationType.next(this.getIntegrationType());
|
|
230
|
+
emitIntegrationType(isApplePayInstantFlowEnabled) {
|
|
231
|
+
this.integrationType.next(this.getIntegrationType(isApplePayInstantFlowEnabled));
|
|
234
232
|
}
|
|
235
233
|
subscribeToHandlers() {
|
|
236
234
|
const handlers = [this.braintreeHandler, this.checkoutHandler];
|
|
@@ -241,19 +239,21 @@ export class ApplePayService {
|
|
|
241
239
|
});
|
|
242
240
|
});
|
|
243
241
|
}
|
|
244
|
-
getIntegrationType() {
|
|
242
|
+
getIntegrationType(isApplePayInstantFlowEnabled) {
|
|
245
243
|
/* istanbul ignore next */
|
|
246
|
-
return this.isDeviceCapable
|
|
244
|
+
return this.isDeviceCapable && isApplePayInstantFlowEnabled
|
|
247
245
|
? ApplePayIntegrationType.native
|
|
248
246
|
: ApplePayIntegrationType.redirect;
|
|
249
247
|
}
|
|
250
|
-
emitApplePayOpened() {
|
|
251
|
-
|
|
248
|
+
emitApplePayOpened(isApplePayInstantFlowEnabled) {
|
|
249
|
+
/* istanbul ignore next */
|
|
250
|
+
if (this.getIntegrationType(isApplePayInstantFlowEnabled) ===
|
|
251
|
+
ApplePayIntegrationType.native &&
|
|
252
252
|
this.applePaySdkService.needToAddApplePayJs) {
|
|
253
253
|
this.applePayQrOpened.next();
|
|
254
254
|
}
|
|
255
255
|
}
|
|
256
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayService, deps: [{ token: windowToken }, { token: i1.SummaryFinanceDetailsAdapterService }, { token: i2.BraintreeHandler }, { token: i3.CheckoutHandler }, { token: i4.ApplePayParamsBuilderService }, { token: i5.ElkLoggerService }, { token: i6.ApplePaySdkService }, { token: i7.ApplePayExternalWindowCommunicationService }, { token: i8.
|
|
256
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayService, deps: [{ token: windowToken }, { token: i1.SummaryFinanceDetailsAdapterService }, { token: i2.BraintreeHandler }, { token: i3.CheckoutHandler }, { token: i4.ApplePayParamsBuilderService }, { token: i5.ElkLoggerService }, { token: i6.ApplePaySdkService }, { token: i7.ApplePayExternalWindowCommunicationService }, { token: i8.SettingsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
257
257
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayService, providedIn: 'root' }); }
|
|
258
258
|
}
|
|
259
259
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayService, decorators: [{
|
|
@@ -264,5 +264,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
264
264
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
265
265
|
type: Inject,
|
|
266
266
|
args: [windowToken]
|
|
267
|
-
}] }, { type: i1.SummaryFinanceDetailsAdapterService }, { type: i2.BraintreeHandler }, { type: i3.CheckoutHandler }, { type: i4.ApplePayParamsBuilderService }, { type: i5.ElkLoggerService }, { type: i6.ApplePaySdkService }, { type: i7.ApplePayExternalWindowCommunicationService }, { type: i8.
|
|
268
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGUtcGF5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9zZGstcGF5bWVudC1zeXN0ZW1zL2FwcGxlLXBheS9hcHBsZS1wYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd0RCxPQUFPLEVBQ0wsY0FBYyxFQUNkLG9CQUFvQixHQUNyQixNQUFNLHVEQUF1RCxDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDMUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBRUwsdUJBQXVCLEdBQ3hCLE1BQU0sOEJBQThCLENBQUM7QUFFdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQU96RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFLbEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7Ozs7Ozs7O0FBZXpGLE1BQU0sT0FBTyxlQUFlO0lBaUIxQixJQUFXLGlCQUFpQjtRQUMxQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFB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dCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwbGVQYXksIGFwcGxlUGF5LCBjbGllbnQgfSBmcm9tICdicmFpbnRyZWUtd2ViJztcbmltcG9ydCB7IEV4dGVuZGVkV2luZG93IH0gZnJvbSAnLi4vLi4vZXh0ZW5kZWQtd2luZG93LmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBwYXlTdGF0aW9uNFVybCxcbiAgc2FuZGJveFBheVN0YXRpb25VcmwsXG59IGZyb20gJy4uLy4uL3BheW1lbnQvYWN0aW9ucy9yZWRpcmVjdC9wYXktc3RhdGlvbjQtdXJsLmNvbnN0JztcbmltcG9ydCB7IGFwcGxlUGF5SWQgfSBmcm9tICcuLi8uLi9wYXltZW50L2FjdGlvbnMvcmVkaXJlY3QvcHM0LXBhZ2VzL3BhZ2VzLXBheW1lbnQtbWV0aG9kcy1pZC5jb25zdCc7XG5pbXBvcnQgeyBwYWdlc1JvdXRlcyB9IGZyb20gJy4uLy4uL3BheW1lbnQvYWN0aW9ucy9yZWRpcmVjdC9wczQtcGFnZXMvcGFnZXMtcm91dGVzLmNvbnN0JztcbmltcG9ydCB7IEZpZWxkTmFtZXMgfSBmcm9tICcuLi8uLi9wYXltZW50L2ZpZWxkLW5hbWVzLmVudW0nO1xuaW1wb3J0IHsgU3VtbWFyeUZpbmFuY2VEZXRhaWxzQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9wYXltZW50L2ZpbmFuY2UtZGV0YWlscy9zdW1tYXJ5L3N1bW1hcnktZmluYW5jZS1kZXRhaWxzLWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBYcHNSZXNwb25zZSB9IGZyb20gJy4uLy4uL3BheW1lbnQveHBzLXJlc3BvbnNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyB3aW5kb3dUb2tlbiB9IGZyb20gJy4uLy4uL3dpbmRvdy50b2tlbic7XG5pbXBvcnQge1xuICBBcHBsZVBheUludGVncmF0aW9uLFxuICBBcHBsZVBheUludGVncmF0aW9uVHlwZSxcbn0gZnJvbSAnLi9hcHBsZS1wYXktaW50ZWdyYXRpb24udHlwZSc7XG5pbXBvcnQgeyBBcHBsZVBheVBhcmFtcyB9IGZyb20gJy4vYXBwbGUtcGF5LXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgYXBwbGVQYXlWZXJzaW9uIH0gZnJvbSAnLi9hcHBsZS1wYXkuY29uc3QnO1xuaW1wb3J0IHsgQXBwbGVQYXlFcnJvcnMgfSBmcm9tICcuL2FwcGxlLXBheS5lcnJvcnMuZW51bSc7XG5pbXBvcnQgeyBCcmFpbnRyZWVIYW5kbGVyIH0gZnJvbSAnLi9zZXNzaW9uLWhhbmRsZXJzL2JyYWludHJlZS5oYW5kbGVyJztcbmltcG9ydCB7IENoZWNrb3V0SGFuZGxlciB9IGZyb20gJy4vc2Vzc2lvbi1oYW5kbGVycy9jaGVja291dC5oYW5kbGVyJztcbmltcG9ydCB7IEFwcGxlUGF5U2Vzc2lvbkhhbmRsZXIgfSBmcm9tICcuL3Nlc3Npb24taGFuZGxlcnMvc2Vzc2lvbi1oYW5kbGVyLnR5cGUnO1xuaW1wb3J0IHsgUGF5bWVudEZvcm0gfSBmcm9tICcuLi8uLi9wYXltZW50L3BheW1lbnQtZm9ybS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXBwbGVQYXlQYXJhbXNCdWlsZGVyU2VydmljZSB9IGZyb20gJy4vcGFyYW1zLWJ1aWxkZXIvYXBwbGUtcGF5LXBhcmFtcy1idWlsZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRWxrTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZWxrL2Vsay1sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBFcnJvclRhZ3MgfSBmcm9tICcuLi8uLi9leGNlcHRpb25zLWhhbmRsaW5nL2Vycm9ycy9lbGstZXJyb3ItdHlwZXMuZW51bSc7XG5pbXBvcnQgeyBTdGFydFNlc3Npb25QYXJhbXMgfSBmcm9tICcuL3Nlc3Npb24taGFuZGxlcnMvc3RhcnQtc2Vzc2lvbi1wYXJhbXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFwcGxlUGF5U2RrU2VydmljZSB9IGZyb20gJy4vYXBwbGUtcGF5LXNkay5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcGxlUGF5RXh0ZXJuYWxXaW5kb3dDb21tdW5pY2F0aW9uU2VydmljZSB9IGZyb20gJy4vZXh0ZXJuYWwtd2luZG93LWNvbW11bmljYXRpb24vZXh0ZXJuYWwtd2luZG93LWNvbW11bmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsZVBheUNhcnRTZXJ2aWNlIH0gZnJvbSAnLi9hcHBsZS1wYXktY2FydC9hcHBsZS1wYXktY2FydC5zZXJ2aWNlJztcbmltcG9ydCB7IG1hcFNoaXBwaW5nQWRkcmVzc1RvQ29udGFjdCB9IGZyb20gJy4vbWFwLXNoaXBwaW5nLWFkZHJlc3MtdG8tY29udGFjdC5mdW5jdGlvbic7XG5pbXBvcnQgeyBSZWNhbGN1bGF0ZUNhcnRNZXNzYWdlIH0gZnJvbSAnLi9zb2NrZXQtbWVzc2FnZXMvcmVjYWxjdWxhdGUtY2FydC1tZXNzYWdlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBcHBsZVBheVNlbmRUb2tlbk1lc3NhZ2UgfSBmcm9tICcuL3NvY2tldC1tZXNzYWdlcy9zZW5kLXRva2VuLW1lc3NhZ2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFdpbmRvd0Nsb3NlTWVzc2FnZSB9IGZyb20gJy4vc29ja2V0LW1lc3NhZ2VzL3dpbmRvdy1jbG9zZS1tZXNzYWdlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZXR1cm5NZXNzYWdlIH0gZnJvbSAnLi9zb2NrZXQtbWVzc2FnZXMvcmV0dXJuLW1lc3NhZ2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uL3NldHRpbmdzL3NldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2hpcHBpbmdBZGRyZXNzIH0gZnJvbSAnLi9zaGlwcGluZy1hZGRyZXNzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBcHBsZVBheVNoaXBwaW5nQ29udGFjdCB9IGZyb20gJy4vc2Vzc2lvbi1oYW5kbGVycy9hcHBsZS1wYXktc2Vzc2lvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVXBkYXRlZFByaWNlIH0gZnJvbSAnLi91cGRhdGVkLXByaWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBVcGRhdGVQcmljZU1lc3NhZ2UgfSBmcm9tICcuL3NvY2tldC1tZXNzYWdlcy91cGRhdGUtcHJpY2UtbWVzc2FnZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29tbWFuZHNGb3JQYWdlcyB9IGZyb20gJy4vY29tbWFuZHMtZm9yLXBhZ2VzLmVudW0nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXBwbGVQYXlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBwYXltZW50OiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IGVycm9yOiBTdWJqZWN0PEFwcGxlUGF5RXJyb3JzPiA9IG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW50ZWdyYXRpb25UeXBlOiBTdWJqZWN0PEFwcGxlUGF5SW50ZWdyYXRpb24+ID1cbiAgICBuZXcgU3ViamVjdCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IGFwcGxlUGF5UXJPcGVuZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIHBheW1lbnRDbGllbnQ6IEFwcGxlUGF5IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBhcGk6IFByb21pc2U8e1xuICAgIGFwcGxlUGF5OiB0eXBlb2YgYXBwbGVQYXk7XG4gICAgY2xpZW50OiB0eXBlb2YgY2xpZW50O1xuICB9PjtcbiAgcHJpdmF0ZSBhcHBsZVBheVBhcmFtczogQXBwbGVQYXlQYXJhbXMgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBvcmRlcj86IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBnZXQgcGF5bWVudFBhcmFtZXRlcnMoKTogQXBwbGVQYXlQYXJhbXMgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5hcHBsZVBheVBhcmFtcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGF5bWVudCQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5wYXltZW50LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBlcnJvciQoKTogT2JzZXJ2YWJsZTxBcHBsZVBheUVycm9ycz4ge1xuICAgIHJldHVybiB0aGlzLmVycm9yLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcHVibGljIGdldCBhcHBsZVBheVFyT3BlbmVkJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5hcHBsZVBheVFyT3BlbmVkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcHVibGljIGdldCB3aW5kb3dDbG9zaW5nJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5hcHBsZVBheVNka1NlcnZpY2Uud2luZG93Q2xvc2luZyQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGludGVncmF0aW9uVHlwZSQoKTogT2JzZXJ2YWJsZTxBcHBsZVBheUludGVncmF0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuaW50ZWdyYXRpb25UeXBlLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBnZXRDYXJ0UmVjYWxjdWxhdGlvbk1lc3NhZ2UkKCk6IE9ic2VydmFibGU8UmVjYWxjdWxhdGVDYXJ0TWVzc2FnZT4ge1xuICAgIHJldHVybiB0aGlzLmV4dGVybmFsV2luZG93Q29tbXVuaWNhdGlvblNlcnZpY2VcbiAgICAgIC5nZXRDYXJ0UmVjYWxjdWxhdGlvbk1lc3NhZ2UkKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGdldFdpbmRvd1NlbmRUb2tlbk1lc3NhZ2UkKCk6IE9ic2VydmFibGU8QXBwbGVQYXlTZW5kVG9rZW5NZXNzYWdlPiB7XG4gICAgcmV0dXJuIHRoaXMuZXh0ZXJuYWxXaW5kb3dDb21tdW5pY2F0aW9uU2VydmljZVxuICAgICAgLmdldFdpbmRvd1NlbmRUb2tlbk1lc3NhZ2UkKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGdldFdpbmRvd0Nsb3NlJCgpOiBPYnNlcnZhYmxlPFdpbmRvd0Nsb3NlTWVzc2FnZT4ge1xuICAgIHJldHVybiB0aGlzLmV4dGVybmFsV2luZG93Q29tbXVuaWNhdGlvblNlcnZpY2VcbiAgICAgIC5nZXRXaW5kb3dDbG9zZSQoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZ2V0V2luZG93UmV0dXJuTWVzc2FnZSQoKTogT2JzZXJ2YWJsZTxSZXR1cm5NZXNzYWdlPiB7XG4gICAgcmV0dXJuIHRoaXMuZXh0ZXJuYWxXaW5kb3dDb21tdW5pY2F0aW9uU2VydmljZVxuICAgICAgLmdldFdpbmRvd1JldHVybk1lc3NhZ2UkKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk7XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgQEluamVjdCh3aW5kb3dUb2tlbikgcHJpdmF0ZSByZWFkb25seSB3aW5kb3c6IEV4dGVuZGVkV2luZG93LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3VtbWFyeUZpbmFuY2VEZXRhaWxzQWRhcHRlclNlcnZpY2U6IFN1bW1hcnlGaW5hbmNlRGV0YWlsc0FkYXB0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYnJhaW50cmVlSGFuZGxlcjogQnJhaW50cmVlSGFuZGxlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoZWNrb3V0SGFuZGxlcjogQ2hlY2tvdXRIYW5kbGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwbGVQYXJhbXNCdWlsZGVyOiBBcHBsZVBheVBhcmFtc0J1aWxkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxrTG9nZ2VyU2VydmljZTogRWxrTG9nZ2VyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcGxlUGF5U2RrU2VydmljZTogQXBwbGVQYXlTZGtTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZXh0ZXJuYWxXaW5kb3dDb21tdW5pY2F0aW9uU2VydmljZTogQXBwbGVQYXlFeHRlcm5hbFdpbmRvd0NvbW11bmljYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwbGVQYXlDYXJ0U2VydmljZTogQXBwbGVQYXlDYXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNldHRpbmdzU2VydmljZTogU2V0dGluZ3NTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuYXBpID0gdGhpcy5sb2FkQnJhaW50cmVlKCk7XG5cbiAgICB0aGlzLnN1YnNjcmliZVRvSGFuZGxlcnMoKTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHB1YmxpYyBhZGRBcHBsZVBheVNka0pzKCk6IHZvaWQge1xuICAgIHRoaXMuYXBwbGVQYXlTZGtTZXJ2aWNlLmFkZEFwcGxlUGF5U2RrSnMoKTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHB1YmxpYyByZW1vdmVMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuYXBwbGVQYXlTZGtTZXJ2aWNlLnJlbW92ZUxpc3RlbmVycygpO1xuICB9XG5cbiAgcHVibGljIHNldEFwcGxlUGF5UGFyYW1zKGRhdGE6IHsgcGF5bWVudEZvcm06IFBheW1lbnRGb3JtIH0pOiB2b2lkIHtcbiAgICBjb25zdCBwYXltZW50Rm9ybSA9IGRhdGE/LnBheW1lbnRGb3JtO1xuICAgIGNvbnN0IGZvcm1GaWVsZHMgPSBwYXltZW50Rm9ybT8uZmllbGRzO1xuICAgIGNvbnN0IHN1bW1hcnkgPSBwYXltZW50Rm9ybT8uc3VtbWFyeTtcblxuICAgIGlmICghZm9ybUZpZWxkcyB8fCAhc3VtbWFyeSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYXBwbGVQYXlQYXJhbXMgPSB0aGlzLmFwcGxlUGFyYW1zQnVpbGRlci5idWlsZFBhcmFtcyhwYXltZW50Rm9ybSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgaW5pdEJyYWludHJlZUxpYnJhcnkodG9rZW5LZXk6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBhcGkgPSBhd2FpdCB0aGlzLmFwaTtcbiAgICAgIGNvbnN0IGNsaWVudEluc3RhbmNlID0gYXdhaXQgYXBpLmNsaWVudC5jcmVhdGUoe1xuICAgICAgICBhdXRob3JpemF0aW9uOiB0b2tlbktleSxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnBheW1lbnRDbGllbnQgPSBhd2FpdCBhcGkuYXBwbGVQYXkuY3JlYXRlKHtcbiAgICAgICAgY2xpZW50OiBjbGllbnRJbnN0YW5jZSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5icmFpbnRyZWVIYW5kbGVyLnNldENsaWVudCh0aGlzLnBheW1lbnRDbGllbnQpO1xuICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICBjb25zb2xlLmVycm9yKEFwcGxlUGF5RXJyb3JzLmJyYWludHJlZUluaXRpYWxpemVFcnJvciwgZXJyb3IpO1xuICAgICAgdGhpcy5lbGtMb2dnZXJTZXJ2aWNlLmxvZyhBcHBsZVBheUVycm9ycy5icmFpbnRyZWVJbml0aWFsaXplRXJyb3IsIFtcbiAgICAgICAgRXJyb3JUYWdzLkFQUExFUEFZLFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnBheW1lbnRDbGllbnQgfHwgIXRoaXMuaXNEZXZpY2VDYXBhYmxlKSB7XG4gICAgICB0aGlzLmVtaXRFcnJvcihBcHBsZVBheUVycm9ycy5kZXZpY2VJc05vdENhcGFibGVFcnJvcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGluaXRBcHBsZVBheSh0b2tlbktleTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuYXBwbGVQYXlQYXJhbXM/LmFjcXVpcmVyID09PSAnYnJhaW50cmVlJykge1xuICAgICAgYXdhaXQgdGhpcy5pbml0QnJhaW50cmVlTGlicmFyeSh0b2tlbktleSk7XG4gICAgfVxuXG4gICAgdGhpcy5lbWl0SW50ZWdyYXRpb25UeXBlKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc3RhcnRXaW5kb3dDb21tdW5pY2F0aW9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuZXh0ZXJuYWxXaW5kb3dDb21tdW5pY2F0aW9uU2VydmljZS5vcGVuV2ViU29ja2V0Q29ubmVjdGlvbihcbiAgICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnRva2VuXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzZW5kVXBkYXRlZFByaWNlVmlhV2luZG93Q29tbXVuaWNhdGlvbihcbiAgICB1cGRhdGVkUHJpY2U6IFVwZGF0ZWRQcmljZVxuICApOiB2b2lkIHtcbiAgICB2b2lkIHRoaXMuZXh0ZXJuYWxXaW5kb3dDb21tdW5pY2F0aW9uU2VydmljZS5zZW5kTWVzc2FnZVRvQW5vdGhlcldpbmRvdzxcbiAgICAgIFVwZGF0ZVByaWNlTWVzc2FnZVsnZGF0YSddXG4gICAgPihDb21tYW5kc0ZvclBhZ2VzLkFQUExFX1BBWV9VUERBVEVfUFJJQ0UsIHtcbiAgICAgIG5ld0NhcnRQcmljaW5nOiB1cGRhdGVkUHJpY2UsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVkaXJlY3RUb1BheW1lbnRQYWdlKFxuICAgIHBhcmFtZXRlcnM6IEFwcGxlUGF5UGFyYW1zLFxuICAgIHRva2VuOiBzdHJpbmcsXG4gICAgaXNTYW5kYm94PzogYm9vbGVhblxuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHJvdXRlID0gcGFnZXNSb3V0ZXMuZ2V0KGFwcGxlUGF5SWQpO1xuICAgIGlmICghcm91dGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBxdWVyeSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgLi4ucGFyYW1ldGVycyxcbiAgICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBKU09OLnN0cmluZ2lmeShwYXJhbWV0ZXJzLm1lcmNoYW50Q2FwYWJpbGl0aWVzKSxcbiAgICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBKU09OLnN0cmluZ2lmeShwYXJhbWV0ZXJzLnN1cHBvcnRlZE5ldHdvcmtzKSxcbiAgICAgIHJlcXVpcmVkQmlsbGluZ0NvbnRhY3RGaWVsZHM6IEpTT04uc3RyaW5naWZ5KFxuICAgICAgICBwYXJhbWV0ZXJzPy5yZXF1aXJlZEJpbGxpbmdDb250YWN0RmllbGRzXG4gICAgICApLFxuICAgICAgcmVxdWlyZWRTaGlwcGluZ0NvbnRhY3RGaWVsZHM6IEpTT04uc3RyaW5naWZ5KFxuICAgICAgICBwYXJhbWV0ZXJzPy5yZXF1aXJlZFNoaXBwaW5nQ29udGFjdEZpZWxkc1xuICAgICAgKSxcbiAgICAgIGFncmVlbWVudHM6IEpTT04uc3RyaW5naWZ5KHBhcmFtZXRlcnMuYWdyZWVtZW50cyksXG4gICAgICB0b2tlbixcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLm9yZGVyKSB7XG4gICAgICBxdWVyeS5hcHBlbmQoJ29yZGVyJywgdGhpcy5vcmRlcik7XG4gICAgfVxuXG4gICAgY29uc3QgcGF5U3RhdGlvblVybCA9IGlzU2FuZGJveCA/IHNhbmRib3hQYXlTdGF0aW9uVXJsIDogcGF5U3RhdGlvbjRVcmw7XG4gICAgcmV0dXJuIGAke3BheVN0YXRpb25Vcmx9L2VuJHtyb3V0ZX0/JHtxdWVyeS50b1N0cmluZygpfWA7XG4gIH1cblxuICBwdWJsaWMgc2V0T3JkZXIoZGF0YTogeyBwYXltZW50Rm9ybTogUGF5bWVudEZvcm0gfSk6IHZvaWQge1xuICAgIGNvbnN0IHN1bW1hcnkgPSBkYXRhPy5wYXltZW50Rm9ybT8uc3VtbWFyeTtcbiAgICBpZiAoIXN1bW1hcnkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmaW5hbmNlRGV0YWlscyA9XG4gICAgICB0aGlzLnN1bW1hcnlGaW5hbmNlRGV0YWlsc0FkYXB0ZXJTZXJ2aWNlLmdldEZpbmFuY2VEZXRhaWxzKHN1bW1hcnkpO1xuXG4gICAgaWYgKGZpbmFuY2VEZXRhaWxzPy5wdXJjaGFzZSAmJiBmaW5hbmNlRGV0YWlscz8uZmluYW5jZSkge1xuICAgICAgY29uc3QgY2FydEl0ZW1zID0gZmluYW5jZURldGFpbHMuY2FydEl0ZW1zO1xuICAgICAgdGhpcy5vcmRlciA9IGNhcnRJdGVtcz8ucmVkdWNlKChjdXJyLCBpdGVtKSA9PiB7XG4gICAgICAgIGlmIChjdXJyKSB7XG4gICAgICAgICAgcmV0dXJuIGN1cnIgKyBgOyAke2l0ZW0udGl0bGV9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjdXJyICsgaXRlbS50aXRsZTtcbiAgICAgIH0sICcnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzRGV2aWNlQ2FwYWJsZSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5hcHBsZVBheVNka1NlcnZpY2UubmVlZFRvQWRkQXBwbGVQYXlKcykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBCb29sZWFuKFxuICAgICAgICB0aGlzLndpbmRvdy5BcHBsZVBheVNlc3Npb24/LnN1cHBvcnRzVmVyc2lvbihhcHBsZVBheVZlcnNpb24pICYmXG4gICAgICAgICAgdGhpcy53aW5kb3cuQXBwbGVQYXlTZXNzaW9uPy5jYW5NYWtlUGF5bWVudHMoKVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRUb2tlbk5vbmNlRmllbGREYXRhKHRva2VuTm9uY2U6IHN0cmluZyk6IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgfSB7XG4gICAgY29uc3QgbmFtZSA9IEZpZWxkTmFtZXMudG9rZW5BcHBsZVBheTtcbiAgICBjb25zdCB2YWx1ZSA9IGJ0b2EodG9rZW5Ob25jZSk7XG4gICAgcmV0dXJuIHsgbmFtZSwgdmFsdWUgfTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVBcHBsZVBheVBhcmFtcyhkYXRhOiB1bmtub3duKTogdm9pZCB7XG4gICAgY29uc3Qgc3VtbWFyeSA9IChkYXRhIGFzIFhwc1Jlc3BvbnNlKT8uc3VtbWFyeTtcbiAgICBpZiAoIXRoaXMuYXBwbGVQYXlQYXJhbXMgfHwgIXN1bW1hcnkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmFwcGxlUGF5UGFyYW1zID0gdGhpcy5hcHBsZVBhcmFtc0J1aWxkZXIudXBkYXRlUGFyYW1zKFxuICAgICAgdGhpcy5hcHBsZVBheVBhcmFtcyxcbiAgICAgIHN1bW1hcnlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHByb2NlZWRDaGVja291dChcbiAgICBwYXJhbWV0ZXJzOiBBcHBsZVBheVBhcmFtcyxcbiAgICBhZGRpdGlvbmFsUGFyYW1zOiBTdGFydFNlc3Npb25QYXJhbXNcbiAgKTogdm9pZCB7XG4gICAgY29uc3Qgc2Vzc2lvbkhhbmRsZXIgPSB0aGlzLmdldFNlc3Npb25IYW5kbGVyKHBhcmFtZXRlcnMuYWNxdWlyZXIpO1xuXG4gICAgaWYgKCFzZXNzaW9uSGFuZGxlcikge1xuICAgICAgY29uc29sZS5lcnJvcignQXBwbGUgUGF5OiBVbnN1cHBvcnRlZCBhY3F1aXJlcjonLCBwYXJhbWV0ZXJzLmFjcXVpcmVyKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXNzaW9uSGFuZGxlci5zdGFydFNlc3Npb24ocGFyYW1ldGVycywgYWRkaXRpb25hbFBhcmFtcywgKCkgPT5cbiAgICAgIHRoaXMuYXBwbGVQYXlTZGtTZXJ2aWNlLmVtaXRXaW5kb3dDbG9zaW5nKClcbiAgICApO1xuICAgIHRoaXMuZW1pdEFwcGxlUGF5T3BlbmVkKCk7XG4gIH1cblxuICBwdWJsaWMgbWFwU2hpcHBpbmdBZGRyZXNzVG9Db250YWN0KFxuICAgIHNoaXBwaW5nQWRkcmVzczogU2hpcHBpbmdBZGRyZXNzXG4gICk6IEFwcGxlUGF5U2hpcHBpbmdDb250YWN0IHtcbiAgICByZXR1cm4gbWFwU2hpcHBpbmdBZGRyZXNzVG9Db250YWN0KHNoaXBwaW5nQWRkcmVzcyk7XG4gIH1cblxuICBwdWJsaWMgc2V0VG9rZW4odG9rZW46IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucGF5bWVudC5uZXh0KHRva2VuKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2Vzc2lvbkhhbmRsZXIoXG4gICAgYWNxdWlyZXI6IHN0cmluZ1xuICApOiBBcHBsZVBheVNlc3Npb25IYW5kbGVyIHwgdW5kZWZpbmVkIHtcbiAgICBzd2l0Y2ggKGFjcXVpcmVyKSB7XG4gICAgICBjYXNlICdicmFpbnRyZWUnOlxuICAgICAgICByZXR1cm4gdGhpcy5icmFpbnRyZWVIYW5kbGVyO1xuICAgICAgY2FzZSAnY2hlY2tvdXQnOlxuICAgICAgICByZXR1cm4gdGhpcy5jaGVja291dEhhbmRsZXI7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZEJyYWludHJlZSgpOiBQcm9taXNlPHtcbiAgICBhcHBsZVBheTogdHlwZW9mIGFwcGxlUGF5O1xuICAgIGNsaWVudDogdHlwZW9mIGNsaWVudDtcbiAgfT4ge1xuICAgIGNvbnN0IGFwaSA9IGF3YWl0IGltcG9ydCgnYnJhaW50cmVlLXdlYicpO1xuICAgIHJldHVybiBhcGk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRFcnJvcihlcnJvcjogQXBwbGVQYXlFcnJvcnMpOiB2b2lkIHtcbiAgICB0aGlzLmVycm9yLm5leHQoZXJyb3IpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0SW50ZWdyYXRpb25UeXBlKCk6IHZvaWQge1xuICAgIHRoaXMuaW50ZWdyYXRpb25UeXBlLm5leHQodGhpcy5nZXRJbnRlZ3JhdGlvblR5cGUoKSk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZVRvSGFuZGxlcnMoKTogdm9pZCB7XG4gICAgY29uc3QgaGFuZGxlcnMgPSBbdGhpcy5icmFpbnRyZWVIYW5kbGVyLCB0aGlzLmNoZWNrb3V0SGFuZGxlcl07XG5cbiAgICBoYW5kbGVycy5mb3JFYWNoKChoYW5kbGVyKSA9PiB7XG4gICAgICBoYW5kbGVyLmVycm9yJC5zdWJzY3JpYmUoKGVycm9yKSA9PiB0aGlzLmVtaXRFcnJvcihlcnJvcikpO1xuICAgICAgaGFuZGxlci5wYXltZW50JC5zdWJzY3JpYmUoKHRva2VuKSA9PiB7XG4gICAgICAgIHRoaXMucGF5bWVudC5uZXh0KHRva2VuKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbnRlZ3JhdGlvblR5cGUoKTogQXBwbGVQYXlJbnRlZ3JhdGlvblR5cGUge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHRoaXMuaXNEZXZpY2VDYXBhYmxlXG4gICAgICA/IEFwcGxlUGF5SW50ZWdyYXRpb25UeXBlLm5hdGl2ZVxuICAgICAgOiBBcHBsZVBheUludGVncmF0aW9uVHlwZS5yZWRpcmVjdDtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEFwcGxlUGF5T3BlbmVkKCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMuZ2V0SW50ZWdyYXRpb25UeXBlKCkgPT09IEFwcGxlUGF5SW50ZWdyYXRpb25UeXBlLm5hdGl2ZSAmJlxuICAgICAgdGhpcy5hcHBsZVBheVNka1NlcnZpY2UubmVlZFRvQWRkQXBwbGVQYXlKc1xuICAgICkge1xuICAgICAgdGhpcy5hcHBsZVBheVFyT3BlbmVkLm5leHQoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
267
|
+
}] }, { type: i1.SummaryFinanceDetailsAdapterService }, { type: i2.BraintreeHandler }, { type: i3.CheckoutHandler }, { type: i4.ApplePayParamsBuilderService }, { type: i5.ElkLoggerService }, { type: i6.ApplePaySdkService }, { type: i7.ApplePayExternalWindowCommunicationService }, { type: i8.SettingsService }] });
|
|
268
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGUtcGF5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9zZGstcGF5bWVudC1zeXN0ZW1zL2FwcGxlLXBheS9hcHBsZS1wYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd0RCxPQUFPLEVBQ0wsY0FBYyxFQUNkLG9CQUFvQixHQUNyQixNQUFNLHVEQUF1RCxDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDMUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBRUwsdUJBQXVCLEdBQ3hCLE1BQU0sOEJBQThCLENBQUM7QUFFdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQU96RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFJbEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7Ozs7Ozs7QUFlekYsTUFBTSxPQUFPLGVBQWU7SUFpQjFCLElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZ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LE1BQU07OzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFxRUksTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFwcGxlUGF5LCBhcHBsZVBheSwgY2xpZW50IH0gZnJvbSAnYnJhaW50cmVlLXdlYic7XG5pbXBvcnQgeyBFeHRlbmRlZFdpbmRvdyB9IGZyb20gJy4uLy4uL2V4dGVuZGVkLXdpbmRvdy5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgcGF5U3RhdGlvbjRVcmwsXG4gIHNhbmRib3hQYXlTdGF0aW9uVXJsLFxufSBmcm9tICcuLi8uLi9wYXltZW50L2FjdGlvbnMvcmVkaXJlY3QvcGF5LXN0YXRpb240LXVybC5jb25zdCc7XG5pbXBvcnQgeyBhcHBsZVBheUlkIH0gZnJvbSAnLi4vLi4vcGF5bWVudC9hY3Rpb25zL3JlZGlyZWN0L3BzNC1wYWdlcy9wYWdlcy1wYXltZW50LW1ldGhvZHMtaWQuY29uc3QnO1xuaW1wb3J0IHsgcGFnZXNSb3V0ZXMgfSBmcm9tICcuLi8uLi9wYXltZW50L2FjdGlvbnMvcmVkaXJlY3QvcHM0LXBhZ2VzL3BhZ2VzLXJvdXRlcy5jb25zdCc7XG5pbXBvcnQgeyBGaWVsZE5hbWVzIH0gZnJvbSAnLi4vLi4vcGF5bWVudC9maWVsZC1uYW1lcy5lbnVtJztcbmltcG9ydCB7IFN1bW1hcnlGaW5hbmNlRGV0YWlsc0FkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcGF5bWVudC9maW5hbmNlLWRldGFpbHMvc3VtbWFyeS9zdW1tYXJ5LWZpbmFuY2UtZGV0YWlscy1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgWHBzUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9wYXltZW50L3hwcy1yZXNwb25zZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgd2luZG93VG9rZW4gfSBmcm9tICcuLi8uLi93aW5kb3cudG9rZW4nO1xuaW1wb3J0IHtcbiAgQXBwbGVQYXlJbnRlZ3JhdGlvbixcbiAgQXBwbGVQYXlJbnRlZ3JhdGlvblR5cGUsXG59IGZyb20gJy4vYXBwbGUtcGF5LWludGVncmF0aW9uLnR5cGUnO1xuaW1wb3J0IHsgQXBwbGVQYXlQYXJhbXMgfSBmcm9tICcuL2FwcGxlLXBheS1wYXJhbXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IGFwcGxlUGF5VmVyc2lvbiB9IGZyb20gJy4vYXBwbGUtcGF5LmNvbnN0JztcbmltcG9ydCB7IEFwcGxlUGF5RXJyb3JzIH0gZnJvbSAnLi9hcHBsZS1wYXkuZXJyb3JzLmVudW0nO1xuaW1wb3J0IHsgQnJhaW50cmVlSGFuZGxlciB9IGZyb20gJy4vc2Vzc2lvbi1oYW5kbGVycy9icmFpbnRyZWUuaGFuZGxlcic7XG5pbXBvcnQgeyBDaGVja291dEhhbmRsZXIgfSBmcm9tICcuL3Nlc3Npb24taGFuZGxlcnMvY2hlY2tvdXQuaGFuZGxlcic7XG5pbXBvcnQgeyBBcHBsZVBheVNlc3Npb25IYW5kbGVyIH0gZnJvbSAnLi9zZXNzaW9uLWhhbmRsZXJzL3Nlc3Npb24taGFuZGxlci50eXBlJztcbmltcG9ydCB7IFBheW1lbnRGb3JtIH0gZnJvbSAnLi4vLi4vcGF5bWVudC9wYXltZW50LWZvcm0uaW50ZXJmYWNlJztcbmltcG9ydCB7IEFwcGxlUGF5UGFyYW1zQnVpbGRlclNlcnZpY2UgfSBmcm9tICcuL3BhcmFtcy1idWlsZGVyL2FwcGxlLXBheS1wYXJhbXMtYnVpbGRlci5zZXJ2aWNlJztcbmltcG9ydCB7IEVsa0xvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9leGNlcHRpb25zLWhhbmRsaW5nL2Vsay9lbGstbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXJyb3JUYWdzIH0gZnJvbSAnLi4vLi4vZXhjZXB0aW9ucy1oYW5kbGluZy9lcnJvcnMvZWxrLWVycm9yLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgU3RhcnRTZXNzaW9uUGFyYW1zIH0gZnJvbSAnLi9zZXNzaW9uLWhhbmRsZXJzL3N0YXJ0LXNlc3Npb24tcGFyYW1zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBcHBsZVBheVNka1NlcnZpY2UgfSBmcm9tICcuL2FwcGxlLXBheS1zZGsuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsZVBheUV4dGVybmFsV2luZG93Q29tbXVuaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuL2V4dGVybmFsLXdpbmRvdy1jb21tdW5pY2F0aW9uL2V4dGVybmFsLXdpbmRvdy1jb21tdW5pY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgbWFwU2hpcHBpbmdBZGRyZXNzVG9Db250YWN0IH0gZnJvbSAnLi9tYXAtc2hpcHBpbmctYWRkcmVzcy10by1jb250YWN0LmZ1bmN0aW9uJztcbmltcG9ydCB7IFJlY2FsY3VsYXRlQ2FydE1lc3NhZ2UgfSBmcm9tICcuL3NvY2tldC1tZXNzYWdlcy9yZWNhbGN1bGF0ZS1jYXJ0LW1lc3NhZ2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFwcGxlUGF5U2VuZFRva2VuTWVzc2FnZSB9IGZyb20gJy4vc29ja2V0LW1lc3NhZ2VzL3NlbmQtdG9rZW4tbWVzc2FnZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgV2luZG93Q2xvc2VNZXNzYWdlIH0gZnJvbSAnLi9zb2NrZXQtbWVzc2FnZXMvd2luZG93LWNsb3NlLW1lc3NhZ2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJldHVybk1lc3NhZ2UgfSBmcm9tICcuL3NvY2tldC1tZXNzYWdlcy9yZXR1cm4tbWVzc2FnZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2V0dGluZ3Mvc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBTaGlwcGluZ0FkZHJlc3MgfSBmcm9tICcuL3NoaXBwaW5nLWFkZHJlc3MuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFwcGxlUGF5U2hpcHBpbmdDb250YWN0IH0gZnJvbSAnLi9zZXNzaW9uLWhhbmRsZXJzL2FwcGxlLXBheS1zZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBVcGRhdGVkUHJpY2UgfSBmcm9tICcuL3VwZGF0ZWQtcHJpY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFVwZGF0ZVByaWNlTWVzc2FnZSB9IGZyb20gJy4vc29ja2V0LW1lc3NhZ2VzL3VwZGF0ZS1wcmljZS1tZXNzYWdlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb21tYW5kc0ZvclBhZ2VzIH0gZnJvbSAnLi9jb21tYW5kcy1mb3ItcGFnZXMuZW51bSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBcHBsZVBheVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHBheW1lbnQ6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZXJyb3I6IFN1YmplY3Q8QXBwbGVQYXlFcnJvcnM+ID0gbmV3IFN1YmplY3QoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpbnRlZ3JhdGlvblR5cGU6IFN1YmplY3Q8QXBwbGVQYXlJbnRlZ3JhdGlvbj4gPVxuICAgIG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXBwbGVQYXlRck9wZW5lZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgcGF5bWVudENsaWVudDogQXBwbGVQYXkgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IGFwaTogUHJvbWlzZTx7XG4gICAgYXBwbGVQYXk6IHR5cGVvZiBhcHBsZVBheTtcbiAgICBjbGllbnQ6IHR5cGVvZiBjbGllbnQ7XG4gIH0+O1xuICBwcml2YXRlIGFwcGxlUGF5UGFyYW1zOiBBcHBsZVBheVBhcmFtcyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIG9yZGVyPzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGdldCBwYXltZW50UGFyYW1ldGVycygpOiBBcHBsZVBheVBhcmFtcyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmFwcGxlUGF5UGFyYW1zO1xuICB9XG5cbiAgcHVibGljIGdldCBwYXltZW50JCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnBheW1lbnQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVycm9yJCgpOiBPYnNlcnZhYmxlPEFwcGxlUGF5RXJyb3JzPiB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3IuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBwdWJsaWMgZ2V0IGFwcGxlUGF5UXJPcGVuZWQkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmFwcGxlUGF5UXJPcGVuZWQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBwdWJsaWMgZ2V0IHdpbmRvd0Nsb3NpbmckKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmFwcGxlUGF5U2RrU2VydmljZS53aW5kb3dDbG9zaW5nJDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW50ZWdyYXRpb25UeXBlJCgpOiBPYnNlcnZhYmxlPEFwcGxlUGF5SW50ZWdyYXRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5pbnRlZ3JhdGlvblR5cGUuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGdldENhcnRSZWNhbGN1bGF0aW9uTWVzc2FnZSQoKTogT2JzZXJ2YWJsZTxSZWNhbGN1bGF0ZUNhcnRNZXNzYWdlPiB7XG4gICAgcmV0dXJuIHRoaXMuZXh0ZXJuYWxXaW5kb3dDb21tdW5pY2F0aW9uU2VydmljZVxuICAgICAgLmdldENhcnRSZWNhbGN1bGF0aW9uTWVzc2FnZSQoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZ2V0V2luZG93U2VuZFRva2VuTWVzc2FnZSQoKTogT2JzZXJ2YWJsZTxBcHBsZVBheVNlbmRUb2tlbk1lc3NhZ2U+IHtcbiAgICByZXR1cm4gdGhpcy5leHRlcm5hbFdpbmRvd0NvbW11bmljYXRpb25TZXJ2aWNlXG4gICAgICAuZ2V0V2luZG93U2VuZFRva2VuTWVzc2FnZSQoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZ2V0V2luZG93Q2xvc2UkKCk6IE9ic2VydmFibGU8V2luZG93Q2xvc2VNZXNzYWdlPiB7XG4gICAgcmV0dXJuIHRoaXMuZXh0ZXJuYWxXaW5kb3dDb21tdW5pY2F0aW9uU2VydmljZVxuICAgICAgLmdldFdpbmRvd0Nsb3NlJCgpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpO1xuICB9XG5cbiAgcHVibGljIGdldCBnZXRXaW5kb3dSZXR1cm5NZXNzYWdlJCgpOiBPYnNlcnZhYmxlPFJldHVybk1lc3NhZ2U+IHtcbiAgICByZXR1cm4gdGhpcy5leHRlcm5hbFdpbmRvd0NvbW11bmljYXRpb25TZXJ2aWNlXG4gICAgICAuZ2V0V2luZG93UmV0dXJuTWVzc2FnZSQoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KHdpbmRvd1Rva2VuKSBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdzogRXh0ZW5kZWRXaW5kb3csXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdW1tYXJ5RmluYW5jZURldGFpbHNBZGFwdGVyU2VydmljZTogU3VtbWFyeUZpbmFuY2VEZXRhaWxzQWRhcHRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBicmFpbnRyZWVIYW5kbGVyOiBCcmFpbnRyZWVIYW5kbGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hlY2tvdXRIYW5kbGVyOiBDaGVja291dEhhbmRsZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcHBsZVBhcmFtc0J1aWxkZXI6IEFwcGxlUGF5UGFyYW1zQnVpbGRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGtMb2dnZXJTZXJ2aWNlOiBFbGtMb2dnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwbGVQYXlTZGtTZXJ2aWNlOiBBcHBsZVBheVNka1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBleHRlcm5hbFdpbmRvd0NvbW11bmljYXRpb25TZXJ2aWNlOiBBcHBsZVBheUV4dGVybmFsV2luZG93Q29tbXVuaWNhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZVxuICApIHtcbiAgICB0aGlzLmFwaSA9IHRoaXMubG9hZEJyYWludHJlZSgpO1xuXG4gICAgdGhpcy5zdWJzY3JpYmVUb0hhbmRsZXJzKCk7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBwdWJsaWMgYWRkQXBwbGVQYXlTZGtKcygpOiB2b2lkIHtcbiAgICB0aGlzLmFwcGxlUGF5U2RrU2VydmljZS5hZGRBcHBsZVBheVNka0pzKCk7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBwdWJsaWMgcmVtb3ZlTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB0aGlzLmFwcGxlUGF5U2RrU2VydmljZS5yZW1vdmVMaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRBcHBsZVBheVBhcmFtcyhkYXRhOiB7IHBheW1lbnRGb3JtOiBQYXltZW50Rm9ybSB9KTogdm9pZCB7XG4gICAgY29uc3QgcGF5bWVudEZvcm0gPSBkYXRhPy5wYXltZW50Rm9ybTtcbiAgICBjb25zdCBmb3JtRmllbGRzID0gcGF5bWVudEZvcm0/LmZpZWxkcztcbiAgICBjb25zdCBzdW1tYXJ5ID0gcGF5bWVudEZvcm0/LnN1bW1hcnk7XG5cbiAgICBpZiAoIWZvcm1GaWVsZHMgfHwgIXN1bW1hcnkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmFwcGxlUGF5UGFyYW1zID0gdGhpcy5hcHBsZVBhcmFtc0J1aWxkZXIuYnVpbGRQYXJhbXMocGF5bWVudEZvcm0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGluaXRCcmFpbnRyZWVMaWJyYXJ5KHRva2VuS2V5OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYXBpID0gYXdhaXQgdGhpcy5hcGk7XG4gICAgICBjb25zdCBjbGllbnRJbnN0YW5jZSA9IGF3YWl0IGFwaS5jbGllbnQuY3JlYXRlKHtcbiAgICAgICAgYXV0aG9yaXphdGlvbjogdG9rZW5LZXksXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5wYXltZW50Q2xpZW50ID0gYXdhaXQgYXBpLmFwcGxlUGF5LmNyZWF0ZSh7XG4gICAgICAgIGNsaWVudDogY2xpZW50SW5zdGFuY2UsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuYnJhaW50cmVlSGFuZGxlci5zZXRDbGllbnQodGhpcy5wYXltZW50Q2xpZW50KTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgY29uc29sZS5lcnJvcihBcHBsZVBheUVycm9ycy5icmFpbnRyZWVJbml0aWFsaXplRXJyb3IsIGVycm9yKTtcbiAgICAgIHRoaXMuZWxrTG9nZ2VyU2VydmljZS5sb2coQXBwbGVQYXlFcnJvcnMuYnJhaW50cmVlSW5pdGlhbGl6ZUVycm9yLCBbXG4gICAgICAgIEVycm9yVGFncy5BUFBMRVBBWSxcbiAgICAgIF0pO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5wYXltZW50Q2xpZW50IHx8ICF0aGlzLmlzRGV2aWNlQ2FwYWJsZSkge1xuICAgICAgdGhpcy5lbWl0RXJyb3IoQXBwbGVQYXlFcnJvcnMuZGV2aWNlSXNOb3RDYXBhYmxlRXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpbml0QXBwbGVQYXkoXG4gICAgdG9rZW5LZXk6IHN0cmluZyxcbiAgICBpc0FwcGxlUGF5SW5zdGFudEZsb3dFbmFibGVkOiBib29sZWFuXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmFwcGxlUGF5UGFyYW1zPy5hY3F1aXJlciA9PT0gJ2JyYWludHJlZScpIHtcbiAgICAgIGF3YWl0IHRoaXMuaW5pdEJyYWludHJlZUxpYnJhcnkodG9rZW5LZXkpO1xuICAgIH1cblxuICAgIHRoaXMuZW1pdEludGVncmF0aW9uVHlwZShpc0FwcGxlUGF5SW5zdGFudEZsb3dFbmFibGVkKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzdGFydFdpbmRvd0NvbW11bmljYXRpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5leHRlcm5hbFdpbmRvd0NvbW11bmljYXRpb25TZXJ2aWNlLm9wZW5XZWJTb2NrZXRDb25uZWN0aW9uKFxuICAgICAgdGhpcy5zZXR0aW5nc1NlcnZpY2UudG9rZW5cbiAgICApO1xuICB9XG5cbiAgcHVibGljIHNlbmRVcGRhdGVkUHJpY2VWaWFXaW5kb3dDb21tdW5pY2F0aW9uKFxuICAgIHVwZGF0ZWRQcmljZTogVXBkYXRlZFByaWNlXG4gICk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5leHRlcm5hbFdpbmRvd0NvbW11bmljYXRpb25TZXJ2aWNlLnNlbmRNZXNzYWdlVG9Bbm90aGVyV2luZG93PFxuICAgICAgVXBkYXRlUHJpY2VNZXNzYWdlWydkYXRhJ11cbiAgICA+KENvbW1hbmRzRm9yUGFnZXMuQVBQTEVfUEFZX1VQREFURV9QUklDRSwge1xuICAgICAgbmV3Q2FydFByaWNpbmc6IHVwZGF0ZWRQcmljZSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZWRpcmVjdFRvUGF5bWVudFBhZ2UoXG4gICAgcGFyYW1ldGVyczogQXBwbGVQYXlQYXJhbXMsXG4gICAgdG9rZW46IHN0cmluZyxcbiAgICBpc1NhbmRib3g/OiBib29sZWFuXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qgcm91dGUgPSBwYWdlc1JvdXRlcy5nZXQoYXBwbGVQYXlJZCk7XG4gICAgaWYgKCFyb3V0ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHF1ZXJ5ID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICAuLi5wYXJhbWV0ZXJzLFxuICAgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6IEpTT04uc3RyaW5naWZ5KHBhcmFtZXRlcnMubWVyY2hhbnRDYXBhYmlsaXRpZXMpLFxuICAgICAgc3VwcG9ydGVkTmV0d29ya3M6IEpTT04uc3RyaW5naWZ5KHBhcmFtZXRlcnMuc3VwcG9ydGVkTmV0d29ya3MpLFxuICAgICAgcmVxdWlyZWRCaWxsaW5nQ29udGFjdEZpZWxkczogSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIHBhcmFtZXRlcnM/LnJlcXVpcmVkQmlsbGluZ0NvbnRhY3RGaWVsZHNcbiAgICAgICksXG4gICAgICByZXF1aXJlZFNoaXBwaW5nQ29udGFjdEZpZWxkczogSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIHBhcmFtZXRlcnM/LnJlcXVpcmVkU2hpcHBpbmdDb250YWN0RmllbGRzXG4gICAgICApLFxuICAgICAgYWdyZWVtZW50czogSlNPTi5zdHJpbmdpZnkocGFyYW1ldGVycy5hZ3JlZW1lbnRzKSxcbiAgICAgIHRva2VuLFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMub3JkZXIpIHtcbiAgICAgIHF1ZXJ5LmFwcGVuZCgnb3JkZXInLCB0aGlzLm9yZGVyKTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXlTdGF0aW9uVXJsID0gaXNTYW5kYm94ID8gc2FuZGJveFBheVN0YXRpb25VcmwgOiBwYXlTdGF0aW9uNFVybDtcbiAgICByZXR1cm4gYCR7cGF5U3RhdGlvblVybH0vZW4ke3JvdXRlfT8ke3F1ZXJ5LnRvU3RyaW5nKCl9YDtcbiAgfVxuXG4gIHB1YmxpYyBzZXRPcmRlcihkYXRhOiB7IHBheW1lbnRGb3JtOiBQYXltZW50Rm9ybSB9KTogdm9pZCB7XG4gICAgY29uc3Qgc3VtbWFyeSA9IGRhdGE/LnBheW1lbnRGb3JtPy5zdW1tYXJ5O1xuICAgIGlmICghc3VtbWFyeSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbmFuY2VEZXRhaWxzID1cbiAgICAgIHRoaXMuc3VtbWFyeUZpbmFuY2VEZXRhaWxzQWRhcHRlclNlcnZpY2UuZ2V0RmluYW5jZURldGFpbHMoc3VtbWFyeSk7XG5cbiAgICBpZiAoZmluYW5jZURldGFpbHM/LnB1cmNoYXNlICYmIGZpbmFuY2VEZXRhaWxzPy5maW5hbmNlKSB7XG4gICAgICBjb25zdCBjYXJ0SXRlbXMgPSBmaW5hbmNlRGV0YWlscy5jYXJ0SXRlbXM7XG4gICAgICB0aGlzLm9yZGVyID0gY2FydEl0ZW1zPy5yZWR1Y2UoKGN1cnIsIGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKGN1cnIpIHtcbiAgICAgICAgICByZXR1cm4gY3VyciArIGA7ICR7aXRlbS50aXRsZX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGN1cnIgKyBpdGVtLnRpdGxlO1xuICAgICAgfSwgJycpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNEZXZpY2VDYXBhYmxlKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmFwcGxlUGF5U2RrU2VydmljZS5uZWVkVG9BZGRBcHBsZVBheUpzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICAgIHRoaXMud2luZG93LkFwcGxlUGF5U2Vzc2lvbj8uc3VwcG9ydHNWZXJzaW9uKGFwcGxlUGF5VmVyc2lvbikgJiZcbiAgICAgICAgICB0aGlzLndpbmRvdy5BcHBsZVBheVNlc3Npb24/LmNhbk1ha2VQYXltZW50cygpXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFRva2VuTm9uY2VGaWVsZERhdGEodG9rZW5Ob25jZTogc3RyaW5nKToge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xuICB9IHtcbiAgICBjb25zdCBuYW1lID0gRmllbGROYW1lcy50b2tlbkFwcGxlUGF5O1xuICAgIGNvbnN0IHZhbHVlID0gYnRvYSh0b2tlbk5vbmNlKTtcbiAgICByZXR1cm4geyBuYW1lLCB2YWx1ZSB9O1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUFwcGxlUGF5UGFyYW1zKGRhdGE6IHVua25vd24pOiB2b2lkIHtcbiAgICBjb25zdCBzdW1tYXJ5ID0gKGRhdGEgYXMgWHBzUmVzcG9uc2UpPy5zdW1tYXJ5O1xuICAgIGlmICghdGhpcy5hcHBsZVBheVBhcmFtcyB8fCAhc3VtbWFyeSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYXBwbGVQYXlQYXJhbXMgPSB0aGlzLmFwcGxlUGFyYW1zQnVpbGRlci51cGRhdGVQYXJhbXMoXG4gICAgICB0aGlzLmFwcGxlUGF5UGFyYW1zLFxuICAgICAgc3VtbWFyeVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgcHJvY2VlZENoZWNrb3V0KFxuICAgIHBhcmFtZXRlcnM6IEFwcGxlUGF5UGFyYW1zLFxuICAgIGFkZGl0aW9uYWxQYXJhbXM6IFN0YXJ0U2Vzc2lvblBhcmFtc1xuICApOiB2b2lkIHtcbiAgICBjb25zdCBzZXNzaW9uSGFuZGxlciA9IHRoaXMuZ2V0U2Vzc2lvbkhhbmRsZXIocGFyYW1ldGVycy5hY3F1aXJlcik7XG5cbiAgICBpZiAoIXNlc3Npb25IYW5kbGVyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdBcHBsZSBQYXk6IFVuc3VwcG9ydGVkIGFjcXVpcmVyOicsIHBhcmFtZXRlcnMuYWNxdWlyZXIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNlc3Npb25IYW5kbGVyLnN0YXJ0U2Vzc2lvbihwYXJhbWV0ZXJzLCBhZGRpdGlvbmFsUGFyYW1zLCAoKSA9PlxuICAgICAgdGhpcy5hcHBsZVBheVNka1NlcnZpY2UuZW1pdFdpbmRvd0Nsb3NpbmcoKVxuICAgICk7XG4gICAgdGhpcy5lbWl0QXBwbGVQYXlPcGVuZWQoXG4gICAgICBhZGRpdGlvbmFsUGFyYW1zLmlzQXBwbGVQYXlJbnN0YW50Rmxvd0VuYWJsZWQgPz8gZmFsc2VcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG1hcFNoaXBwaW5nQWRkcmVzc1RvQ29udGFjdChcbiAgICBzaGlwcGluZ0FkZHJlc3M6IFNoaXBwaW5nQWRkcmVzc1xuICApOiBBcHBsZVBheVNoaXBwaW5nQ29udGFjdCB7XG4gICAgcmV0dXJuIG1hcFNoaXBwaW5nQWRkcmVzc1RvQ29udGFjdChzaGlwcGluZ0FkZHJlc3MpO1xuICB9XG5cbiAgcHVibGljIHNldFRva2VuKHRva2VuOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnBheW1lbnQubmV4dCh0b2tlbik7XG4gIH1cblxuICBwcml2YXRlIGdldFNlc3Npb25IYW5kbGVyKFxuICAgIGFjcXVpcmVyOiBzdHJpbmdcbiAgKTogQXBwbGVQYXlTZXNzaW9uSGFuZGxlciB8IHVuZGVmaW5lZCB7XG4gICAgc3dpdGNoIChhY3F1aXJlcikge1xuICAgICAgY2FzZSAnYnJhaW50cmVlJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuYnJhaW50cmVlSGFuZGxlcjtcbiAgICAgIGNhc2UgJ2NoZWNrb3V0JzpcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tvdXRIYW5kbGVyO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWRCcmFpbnRyZWUoKTogUHJvbWlzZTx7XG4gICAgYXBwbGVQYXk6IHR5cGVvZiBhcHBsZVBheTtcbiAgICBjbGllbnQ6IHR5cGVvZiBjbGllbnQ7XG4gIH0+IHtcbiAgICBjb25zdCBhcGkgPSBhd2FpdCBpbXBvcnQoJ2JyYWludHJlZS13ZWInKTtcbiAgICByZXR1cm4gYXBpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0RXJyb3IoZXJyb3I6IEFwcGxlUGF5RXJyb3JzKTogdm9pZCB7XG4gICAgdGhpcy5lcnJvci5uZXh0KGVycm9yKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEludGVncmF0aW9uVHlwZShpc0FwcGxlUGF5SW5zdGFudEZsb3dFbmFibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pbnRlZ3JhdGlvblR5cGUubmV4dChcbiAgICAgIHRoaXMuZ2V0SW50ZWdyYXRpb25UeXBlKGlzQXBwbGVQYXlJbnN0YW50Rmxvd0VuYWJsZWQpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlVG9IYW5kbGVycygpOiB2b2lkIHtcbiAgICBjb25zdCBoYW5kbGVycyA9IFt0aGlzLmJyYWludHJlZUhhbmRsZXIsIHRoaXMuY2hlY2tvdXRIYW5kbGVyXTtcblxuICAgIGhhbmRsZXJzLmZvckVhY2goKGhhbmRsZXIpID0+IHtcbiAgICAgIGhhbmRsZXIuZXJyb3IkLnN1YnNjcmliZSgoZXJyb3IpID0+IHRoaXMuZW1pdEVycm9yKGVycm9yKSk7XG4gICAgICBoYW5kbGVyLnBheW1lbnQkLnN1YnNjcmliZSgodG9rZW4pID0+IHtcbiAgICAgICAgdGhpcy5wYXltZW50Lm5leHQodG9rZW4pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldEludGVncmF0aW9uVHlwZShcbiAgICBpc0FwcGxlUGF5SW5zdGFudEZsb3dFbmFibGVkOiBib29sZWFuXG4gICk6IEFwcGxlUGF5SW50ZWdyYXRpb25UeXBlIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiB0aGlzLmlzRGV2aWNlQ2FwYWJsZSAmJiBpc0FwcGxlUGF5SW5zdGFudEZsb3dFbmFibGVkXG4gICAgICA/IEFwcGxlUGF5SW50ZWdyYXRpb25UeXBlLm5hdGl2ZVxuICAgICAgOiBBcHBsZVBheUludGVncmF0aW9uVHlwZS5yZWRpcmVjdDtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEFwcGxlUGF5T3BlbmVkKGlzQXBwbGVQYXlJbnN0YW50Rmxvd0VuYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmIChcbiAgICAgIHRoaXMuZ2V0SW50ZWdyYXRpb25UeXBlKGlzQXBwbGVQYXlJbnN0YW50Rmxvd0VuYWJsZWQpID09PVxuICAgICAgICBBcHBsZVBheUludGVncmF0aW9uVHlwZS5uYXRpdmUgJiZcbiAgICAgIHRoaXMuYXBwbGVQYXlTZGtTZXJ2aWNlLm5lZWRUb0FkZEFwcGxlUGF5SnNcbiAgICApIHtcbiAgICAgIHRoaXMuYXBwbGVQYXlRck9wZW5lZC5uZXh0KCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -9423,7 +9423,7 @@ class ApplePayService {
|
|
|
9423
9423
|
.getWindowReturnMessage$()
|
|
9424
9424
|
.pipe(takeUntil(this.destroy$));
|
|
9425
9425
|
}
|
|
9426
|
-
constructor(window, summaryFinanceDetailsAdapterService, braintreeHandler, checkoutHandler, appleParamsBuilder, elkLoggerService, applePaySdkService, externalWindowCommunicationService,
|
|
9426
|
+
constructor(window, summaryFinanceDetailsAdapterService, braintreeHandler, checkoutHandler, appleParamsBuilder, elkLoggerService, applePaySdkService, externalWindowCommunicationService, settingsService) {
|
|
9427
9427
|
this.window = window;
|
|
9428
9428
|
this.summaryFinanceDetailsAdapterService = summaryFinanceDetailsAdapterService;
|
|
9429
9429
|
this.braintreeHandler = braintreeHandler;
|
|
@@ -9432,7 +9432,6 @@ class ApplePayService {
|
|
|
9432
9432
|
this.elkLoggerService = elkLoggerService;
|
|
9433
9433
|
this.applePaySdkService = applePaySdkService;
|
|
9434
9434
|
this.externalWindowCommunicationService = externalWindowCommunicationService;
|
|
9435
|
-
this.applePayCartService = applePayCartService;
|
|
9436
9435
|
this.settingsService = settingsService;
|
|
9437
9436
|
this.payment = new Subject();
|
|
9438
9437
|
this.error = new Subject();
|
|
@@ -9485,11 +9484,11 @@ class ApplePayService {
|
|
|
9485
9484
|
this.emitError(ApplePayErrors.deviceIsNotCapableError);
|
|
9486
9485
|
}
|
|
9487
9486
|
}
|
|
9488
|
-
async initApplePay(tokenKey) {
|
|
9487
|
+
async initApplePay(tokenKey, isApplePayInstantFlowEnabled) {
|
|
9489
9488
|
if (this.applePayParams?.acquirer === 'braintree') {
|
|
9490
9489
|
await this.initBraintreeLibrary(tokenKey);
|
|
9491
9490
|
}
|
|
9492
|
-
this.emitIntegrationType();
|
|
9491
|
+
this.emitIntegrationType(isApplePayInstantFlowEnabled);
|
|
9493
9492
|
}
|
|
9494
9493
|
async startWindowCommunication() {
|
|
9495
9494
|
await this.externalWindowCommunicationService.openWebSocketConnection(this.settingsService.token);
|
|
@@ -9566,7 +9565,7 @@ class ApplePayService {
|
|
|
9566
9565
|
return;
|
|
9567
9566
|
}
|
|
9568
9567
|
sessionHandler.startSession(parameters, additionalParams, () => this.applePaySdkService.emitWindowClosing());
|
|
9569
|
-
this.emitApplePayOpened();
|
|
9568
|
+
this.emitApplePayOpened(additionalParams.isApplePayInstantFlowEnabled ?? false);
|
|
9570
9569
|
}
|
|
9571
9570
|
mapShippingAddressToContact(shippingAddress) {
|
|
9572
9571
|
return mapShippingAddressToContact(shippingAddress);
|
|
@@ -9591,8 +9590,8 @@ class ApplePayService {
|
|
|
9591
9590
|
emitError(error) {
|
|
9592
9591
|
this.error.next(error);
|
|
9593
9592
|
}
|
|
9594
|
-
emitIntegrationType() {
|
|
9595
|
-
this.integrationType.next(this.getIntegrationType());
|
|
9593
|
+
emitIntegrationType(isApplePayInstantFlowEnabled) {
|
|
9594
|
+
this.integrationType.next(this.getIntegrationType(isApplePayInstantFlowEnabled));
|
|
9596
9595
|
}
|
|
9597
9596
|
subscribeToHandlers() {
|
|
9598
9597
|
const handlers = [this.braintreeHandler, this.checkoutHandler];
|
|
@@ -9603,19 +9602,21 @@ class ApplePayService {
|
|
|
9603
9602
|
});
|
|
9604
9603
|
});
|
|
9605
9604
|
}
|
|
9606
|
-
getIntegrationType() {
|
|
9605
|
+
getIntegrationType(isApplePayInstantFlowEnabled) {
|
|
9607
9606
|
/* istanbul ignore next */
|
|
9608
|
-
return this.isDeviceCapable
|
|
9607
|
+
return this.isDeviceCapable && isApplePayInstantFlowEnabled
|
|
9609
9608
|
? ApplePayIntegrationType.native
|
|
9610
9609
|
: ApplePayIntegrationType.redirect;
|
|
9611
9610
|
}
|
|
9612
|
-
emitApplePayOpened() {
|
|
9613
|
-
|
|
9611
|
+
emitApplePayOpened(isApplePayInstantFlowEnabled) {
|
|
9612
|
+
/* istanbul ignore next */
|
|
9613
|
+
if (this.getIntegrationType(isApplePayInstantFlowEnabled) ===
|
|
9614
|
+
ApplePayIntegrationType.native &&
|
|
9614
9615
|
this.applePaySdkService.needToAddApplePayJs) {
|
|
9615
9616
|
this.applePayQrOpened.next();
|
|
9616
9617
|
}
|
|
9617
9618
|
}
|
|
9618
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayService, deps: [{ token: windowToken }, { token: SummaryFinanceDetailsAdapterService }, { token: BraintreeHandler }, { token: CheckoutHandler }, { token: ApplePayParamsBuilderService }, { token: ElkLoggerService }, { token: ApplePaySdkService }, { token: ApplePayExternalWindowCommunicationService }, { token:
|
|
9619
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayService, deps: [{ token: windowToken }, { token: SummaryFinanceDetailsAdapterService }, { token: BraintreeHandler }, { token: CheckoutHandler }, { token: ApplePayParamsBuilderService }, { token: ElkLoggerService }, { token: ApplePaySdkService }, { token: ApplePayExternalWindowCommunicationService }, { token: SettingsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
9619
9620
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayService, providedIn: 'root' }); }
|
|
9620
9621
|
}
|
|
9621
9622
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayService, decorators: [{
|
|
@@ -9626,7 +9627,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
9626
9627
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
9627
9628
|
type: Inject,
|
|
9628
9629
|
args: [windowToken]
|
|
9629
|
-
}] }, { type: SummaryFinanceDetailsAdapterService }, { type: BraintreeHandler }, { type: CheckoutHandler }, { type: ApplePayParamsBuilderService }, { type: ElkLoggerService }, { type: ApplePaySdkService }, { type: ApplePayExternalWindowCommunicationService }, { type:
|
|
9630
|
+
}] }, { type: SummaryFinanceDetailsAdapterService }, { type: BraintreeHandler }, { type: CheckoutHandler }, { type: ApplePayParamsBuilderService }, { type: ElkLoggerService }, { type: ApplePaySdkService }, { type: ApplePayExternalWindowCommunicationService }, { type: SettingsService }] });
|
|
9630
9631
|
|
|
9631
9632
|
/*
|
|
9632
9633
|
* Public API Surface of core-library
|