@xsolla/payment-client-core 0.2.56 → 0.2.58

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.
Files changed (36) hide show
  1. package/esm2022/lib/core/sdk-payment-systems/apple-pay/apple-pay-cart/apple-pay-cart.service.mjs +27 -10
  2. package/esm2022/lib/core/sdk-payment-systems/apple-pay/apple-pay.service.mjs +44 -6
  3. package/esm2022/lib/core/sdk-payment-systems/apple-pay/commands-for-pages.enum.mjs +2 -0
  4. package/esm2022/lib/core/sdk-payment-systems/apple-pay/external-window-communication/external-window-communication.service.mjs +64 -0
  5. package/esm2022/lib/core/sdk-payment-systems/apple-pay/map-shipping-address-to-contact.function.mjs +11 -0
  6. package/esm2022/lib/core/sdk-payment-systems/apple-pay/socket-messages/recalculate-cart-message.interface.mjs +2 -0
  7. package/esm2022/lib/core/sdk-payment-systems/apple-pay/socket-messages/return-message.interface.mjs +2 -0
  8. package/esm2022/lib/core/sdk-payment-systems/apple-pay/socket-messages/send-token-message.interface.mjs +2 -0
  9. package/esm2022/lib/core/sdk-payment-systems/apple-pay/socket-messages/update-price-message.interface.mjs +2 -0
  10. package/esm2022/lib/core/sdk-payment-systems/apple-pay/socket-messages/window-close-message.interface.mjs +2 -0
  11. package/esm2022/lib/core/web-socket/centrifugo-web-socket.service.mjs +2 -2
  12. package/esm2022/lib/core/web-socket/socket-bridge/bridge-command.interface.mjs +2 -0
  13. package/esm2022/lib/core/web-socket/socket-bridge/bridge-connection-channel.interface.mjs +2 -0
  14. package/esm2022/lib/core/web-socket/socket-bridge/bridge-request-payload.interface.mjs +2 -0
  15. package/esm2022/lib/core/web-socket/socket-bridge/socket-bridge.service.mjs +40 -0
  16. package/esm2022/lib/core/window-command.interface.mjs +2 -0
  17. package/fesm2022/xsolla-payment-client-core.mjs +168 -14
  18. package/fesm2022/xsolla-payment-client-core.mjs.map +1 -1
  19. package/lib/core/sdk-payment-systems/apple-pay/apple-pay-cart/apple-pay-cart.service.d.ts +8 -1
  20. package/lib/core/sdk-payment-systems/apple-pay/apple-pay.service.d.ts +8 -2
  21. package/lib/core/sdk-payment-systems/apple-pay/commands-for-pages.enum.d.ts +7 -0
  22. package/lib/core/sdk-payment-systems/apple-pay/external-window-communication/external-window-communication.service.d.ts +28 -0
  23. package/lib/core/sdk-payment-systems/apple-pay/map-shipping-address-to-contact.function.d.ts +3 -0
  24. package/lib/core/sdk-payment-systems/apple-pay/socket-messages/recalculate-cart-message.interface.d.ts +9 -0
  25. package/lib/core/sdk-payment-systems/apple-pay/socket-messages/return-message.interface.d.ts +9 -0
  26. package/lib/core/sdk-payment-systems/apple-pay/socket-messages/send-token-message.interface.d.ts +8 -0
  27. package/lib/core/sdk-payment-systems/apple-pay/socket-messages/update-price-message.interface.d.ts +9 -0
  28. package/lib/core/sdk-payment-systems/apple-pay/socket-messages/window-close-message.interface.d.ts +5 -0
  29. package/lib/core/web-socket/socket-bridge/bridge-command.interface.d.ts +4 -0
  30. package/lib/core/web-socket/socket-bridge/bridge-connection-channel.interface.d.ts +6 -0
  31. package/lib/core/web-socket/socket-bridge/bridge-request-payload.interface.d.ts +4 -0
  32. package/lib/core/web-socket/socket-bridge/socket-bridge.service.d.ts +15 -0
  33. package/lib/core/window-command.interface.d.ts +6 -0
  34. package/package.json +1 -1
  35. package/xsolla-payment-client-core-0.2.58.tgz +0 -0
  36. package/xsolla-payment-client-core-0.2.56.tgz +0 -0
@@ -1,12 +1,9 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { Subject } from 'rxjs';
3
3
  import * as i0 from "@angular/core";
4
+ import * as i1 from "../external-window-communication/external-window-communication.service";
5
+ import * as i2 from "../../../payment/finance-details/summary/summary-finance-details-adapter.service";
4
6
  export class ApplePayCartService {
5
- constructor() {
6
- this.cartSuccessfulRecalculated = new Subject();
7
- this.cartErrorRecalculated = new Subject();
8
- this.cartRecalculationRequest = new Subject();
9
- }
10
7
  get cartSuccessfulRecalculated$() {
11
8
  return this.cartSuccessfulRecalculated.asObservable();
12
9
  }
@@ -16,6 +13,13 @@ export class ApplePayCartService {
16
13
  get cartRecalculationRequest$() {
17
14
  return this.cartRecalculationRequest.asObservable();
18
15
  }
16
+ constructor(externalWindowCommunicationService, summaryFinanceDetailsAdapterService) {
17
+ this.externalWindowCommunicationService = externalWindowCommunicationService;
18
+ this.summaryFinanceDetailsAdapterService = summaryFinanceDetailsAdapterService;
19
+ this.cartSuccessfulRecalculated = new Subject();
20
+ this.cartErrorRecalculated = new Subject();
21
+ this.cartRecalculationRequest = new Subject();
22
+ }
19
23
  recalculateCartTaxes(shippingContact) {
20
24
  const zip = shippingContact.postalCode;
21
25
  const country = shippingContact.countryCode?.toUpperCase() ?? '';
@@ -35,9 +39,19 @@ export class ApplePayCartService {
35
39
  newLineItems: this.getLineItems(updatedPrice),
36
40
  };
37
41
  }
38
- sendSuccessfulRecalculatedCart(updatedPrice) {
42
+ sendSuccessfulRecalculatedCart(xpsResponse) {
43
+ const financeDetails = this.summaryFinanceDetailsAdapterService.getFinanceDetails(xpsResponse.summary);
44
+ const updatedPrice = {
45
+ // @ts-expect-error finance exist
46
+ total: this.getTotalAmount(xpsResponse.summary.finance),
47
+ subtotalDetails: financeDetails.cartSummary.subtotalDetails,
48
+ totalDetails: financeDetails.cartSummary.totalDetails,
49
+ subtotalPayment: financeDetails.cartSummary.subtotalPayment,
50
+ };
39
51
  this.cartSuccessfulRecalculated.next(updatedPrice);
40
- // TODO send web socket message to external window here
52
+ void this.externalWindowCommunicationService.sendMessageToAnotherWindow("apple-pay-update-price" /* CommandsForPages.APPLE_PAY_UPDATE_PRICE */, {
53
+ newCartPricing: updatedPrice,
54
+ });
41
55
  }
42
56
  sendErrorRecalculatedCart(error) {
43
57
  this.cartErrorRecalculated.next(error);
@@ -71,7 +85,10 @@ export class ApplePayCartService {
71
85
  });
72
86
  return newLineItems;
73
87
  }
74
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayCartService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
88
+ getTotalAmount(finance) {
89
+ return finance?.grand_total?.amount ?? finance?.total?.amount;
90
+ }
91
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayCartService, deps: [{ token: i1.ApplePayExternalWindowCommunicationService }, { token: i2.SummaryFinanceDetailsAdapterService }], target: i0.ɵɵFactoryTarget.Injectable }); }
75
92
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayCartService, providedIn: 'root' }); }
76
93
  }
77
94
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayCartService, decorators: [{
@@ -79,5 +96,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
79
96
  args: [{
80
97
  providedIn: 'root',
81
98
  }]
82
- }] });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGUtcGF5LWNhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3Nkay1wYXltZW50LXN5c3RlbXMvYXBwbGUtcGF5L2FwcGxlLXBheS1jYXJ0L2FwcGxlLXBheS1jYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQWUzQyxNQUFNLE9BQU8sbUJBQW1CO0lBSGhDO1FBSW1CLCtCQUEwQixHQUFHLElBQUksT0FBTyxFQUFnQixDQUFDO1FBQ3pELDBCQUFxQixHQUFHLElBQUksT0FBTyxFQUFpQixDQUFDO1FBRXJELDZCQUF3QixHQUFHLElBQUksT0FBTyxFQUFtQixDQUFDO0tBc0Y1RTtJQXBGQyxJQUFXLDJCQUEyQjtRQUNwQyxPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBRUQsSUFBVyxzQkFBc0I7UUFDL0IsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUVELElBQVcseUJBQXlCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxlQUF3QztRQUNsRSxNQUFNLEdBQUcsR0FBRyxlQUFlLENBQUMsVUFBVSxDQUFDO1FBQ3ZDLE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ2pFLE1BQU0sU0FBUyxHQUFHLEdBQUcsRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUM7WUFDakMsR0FBRyxFQUFFLFNBQVM7WUFDZCxPQUFPO1NBQ1IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLDBCQUEwQixDQUMvQixhQUE2QixFQUM3QixZQUEwQjtRQUUxQixPQUFPO1lBQ0wsTUFBTSxFQUFFLGdCQUFnQjtZQUN4QixRQUFRLEVBQUU7Z0JBQ1IsS0FBSyxFQUFFLGFBQWEsQ0FBQyxVQUFVO2dCQUMvQixNQUFNLEVBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7YUFDdEM7WUFDRCxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUM7U0FDOUMsQ0FBQztJQUNKLENBQUM7SUFFTSw4QkFBOEIsQ0FBQyxZQUEwQjtRQUM5RCxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRW5ELHVEQUF1RDtJQUN6RCxDQUFDO0lBRU0seUJBQXlCLENBQUMsS0FBb0I7UUFDbkQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU0sWUFBWSxDQUFDLE9BQWU7UUFDakMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVPLFlBQVksQ0FBQyxZQUEwQjtRQUM3QyxNQUFNLFlBQVksR0FBdUIsRUFBRSxDQUFDO1FBRTVDLElBQUksWUFBWSxDQUFDLGVBQWUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDaEQsWUFBWSxDQUFDLElBQUksQ0FBQztnQkFDaEIsS0FBSyxFQUFFLFlBQVksQ0FBQyxlQUFlLENBQUMsS0FBSyxJQUFJLFVBQVU7Z0JBQ3ZELE1BQU0sRUFBRSxZQUFZLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2FBQzlELENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLGVBQWUsR0FBZSxFQUFFLENBQUM7UUFFckMsSUFBSSxZQUFZLENBQUMsZUFBZSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3pDLGVBQWUsR0FBRyxZQUFZLENBQUMsZUFBZSxDQUFDO1FBQ2pELENBQUM7UUFFRCxJQUFJLFlBQVksQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDdEMsZUFBZSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFFRCxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUMvQyxPQUFPO1lBQ1QsQ0FBQztZQUVELFlBQVksQ0FBQyxJQUFJLENBQUM7Z0JBQ2hCLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSztnQkFDckIsTUFBTSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTthQUN6QyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7OEdBekZVLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBBcHBsZVBheUVycm9yLFxuICBBcHBsZVBheVNoaXBwaW5nQ29udGFjdCxcbiAgQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUsXG59IGZyb20gJy4uL3Nlc3Npb24taGFuZGxlcnMvYXBwbGUtcGF5LXNlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IEFwcGxlUGF5UGFyYW1zIH0gZnJvbSAnLi4vYXBwbGUtcGF5LXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVXBkYXRlZFByaWNlIH0gZnJvbSAnLi4vdXBkYXRlZC1wcmljZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2hpcHBpbmdBZGRyZXNzIH0gZnJvbSAnLi4vc2hpcHBpbmctYWRkcmVzcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXBwbGVQYXlMaW5lSXRlbSB9IGZyb20gJ2JyYWludHJlZS13ZWInO1xuaW1wb3J0IHsgQ2FydExpbmUgfSBmcm9tICcuLi8uLi8uLi9wYXltZW50L2ZpbmFuY2UtZGV0YWlscy9jYXJ0LWxpbmUuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFwcGxlUGF5Q2FydFNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGNhcnRTdWNjZXNzZnVsUmVjYWxjdWxhdGVkID0gbmV3IFN1YmplY3Q8VXBkYXRlZFByaWNlPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNhcnRFcnJvclJlY2FsY3VsYXRlZCA9IG5ldyBTdWJqZWN0PEFwcGxlUGF5RXJyb3I+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjYXJ0UmVjYWxjdWxhdGlvblJlcXVlc3QgPSBuZXcgU3ViamVjdDxTaGlwcGluZ0FkZHJlc3M+KCk7XG5cbiAgcHVibGljIGdldCBjYXJ0U3VjY2Vzc2Z1bFJlY2FsY3VsYXRlZCQoKTogT2JzZXJ2YWJsZTxVcGRhdGVkUHJpY2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYXJ0U3VjY2Vzc2Z1bFJlY2FsY3VsYXRlZC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2FydEVycm9yUmVjYWxjdWxhdGVkJCgpOiBPYnNlcnZhYmxlPEFwcGxlUGF5RXJyb3I+IHtcbiAgICByZXR1cm4gdGhpcy5jYXJ0RXJyb3JSZWNhbGN1bGF0ZWQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNhcnRSZWNhbGN1bGF0aW9uUmVxdWVzdCQoKTogT2JzZXJ2YWJsZTxTaGlwcGluZ0FkZHJlc3M+IHtcbiAgICByZXR1cm4gdGhpcy5jYXJ0UmVjYWxjdWxhdGlvblJlcXVlc3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgcmVjYWxjdWxhdGVDYXJ0VGF4ZXMoc2hpcHBpbmdDb250YWN0OiBBcHBsZVBheVNoaXBwaW5nQ29udGFjdCk6IHZvaWQge1xuICAgIGNvbnN0IHppcCA9IHNoaXBwaW5nQ29udGFjdC5wb3N0YWxDb2RlO1xuICAgIGNvbnN0IGNvdW50cnkgPSBzaGlwcGluZ0NvbnRhY3QuY291bnRyeUNvZGU/LnRvVXBwZXJDYXNlKCkgPz8gJyc7XG4gICAgY29uc3QgcGFyc2VkWmlwID0gemlwPy5yZXBsYWNlKC9cXHMvZywgJycpO1xuXG4gICAgdGhpcy5jYXJ0UmVjYWxjdWxhdGlvblJlcXVlc3QubmV4dCh7XG4gICAgICB6aXA6IHBhcnNlZFppcCxcbiAgICAgIGNvdW50cnksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYnVpbGRTaGlwcGluZ0NvbnRhY3RVcGRhdGUoXG4gICAgcGF5bWVudFBhcmFtczogQXBwbGVQYXlQYXJhbXMsXG4gICAgdXBkYXRlZFByaWNlOiBVcGRhdGVkUHJpY2VcbiAgKTogQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUge1xuICAgIHJldHVybiB7XG4gICAgICBzdGF0dXM6ICdTVEFUVVNfU1VDQ0VTUycsXG4gICAgICBuZXdUb3RhbDoge1xuICAgICAgICBsYWJlbDogcGF5bWVudFBhcmFtcy50b3RhbExhYmVsLFxuICAgICAgICBhbW91bnQ6IHVwZGF0ZWRQcmljZS50b3RhbC50b1N0cmluZygpLFxuICAgICAgfSxcbiAgICAgIG5ld0xpbmVJdGVtczogdGhpcy5nZXRMaW5lSXRlbXModXBkYXRlZFByaWNlKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHNlbmRTdWNjZXNzZnVsUmVjYWxjdWxhdGVkQ2FydCh1cGRhdGVkUHJpY2U6IFVwZGF0ZWRQcmljZSk6IHZvaWQge1xuICAgIHRoaXMuY2FydFN1Y2Nlc3NmdWxSZWNhbGN1bGF0ZWQubmV4dCh1cGRhdGVkUHJpY2UpO1xuXG4gICAgLy8gVE9ETyBzZW5kIHdlYiBzb2NrZXQgbWVzc2FnZSB0byBleHRlcm5hbCB3aW5kb3cgaGVyZVxuICB9XG5cbiAgcHVibGljIHNlbmRFcnJvclJlY2FsY3VsYXRlZENhcnQoZXJyb3I6IEFwcGxlUGF5RXJyb3IpOiB2b2lkIHtcbiAgICB0aGlzLmNhcnRFcnJvclJlY2FsY3VsYXRlZC5uZXh0KGVycm9yKTtcbiAgfVxuXG4gIHB1YmxpYyBpc1ppcENvdW50cnkoY291bnRyeTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFsnVVMnLCAnQ0EnXS5pbmNsdWRlcyhjb3VudHJ5KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TGluZUl0ZW1zKHVwZGF0ZWRQcmljZTogVXBkYXRlZFByaWNlKTogQXBwbGVQYXlMaW5lSXRlbVtdIHtcbiAgICBjb25zdCBuZXdMaW5lSXRlbXM6IEFwcGxlUGF5TGluZUl0ZW1bXSA9IFtdO1xuXG4gICAgaWYgKHVwZGF0ZWRQcmljZS5zdWJ0b3RhbFBheW1lbnQ/Lm1vbmV5Py5hbW91bnQpIHtcbiAgICAgIG5ld0xpbmVJdGVtcy5wdXNoKHtcbiAgICAgICAgbGFiZWw6IHVwZGF0ZWRQcmljZS5zdWJ0b3RhbFBheW1lbnQudGl0bGUgPz8gJ1N1YnRvdGFsJyxcbiAgICAgICAgYW1vdW50OiB1cGRhdGVkUHJpY2Uuc3VidG90YWxQYXltZW50Lm1vbmV5Py5hbW91bnQudG9TdHJpbmcoKSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGxldCBwYXltZW50c0RldGFpbHM6IENhcnRMaW5lW10gPSBbXTtcblxuICAgIGlmICh1cGRhdGVkUHJpY2Uuc3VidG90YWxEZXRhaWxzPy5sZW5ndGgpIHtcbiAgICAgIHBheW1lbnRzRGV0YWlscyA9IHVwZGF0ZWRQcmljZS5zdWJ0b3RhbERldGFpbHM7XG4gICAgfVxuXG4gICAgaWYgKHVwZGF0ZWRQcmljZS50b3RhbERldGFpbHM/Lmxlbmd0aCkge1xuICAgICAgcGF5bWVudHNEZXRhaWxzID0gcGF5bWVudHNEZXRhaWxzLmNvbmNhdCh1cGRhdGVkUHJpY2UudG90YWxEZXRhaWxzKTtcbiAgICB9XG5cbiAgICBwYXltZW50c0RldGFpbHMuZm9yRWFjaCgoY2FydEl0ZW0pID0+IHtcbiAgICAgIGlmICghY2FydEl0ZW0udGl0bGUgfHwgIWNhcnRJdGVtLm1vbmV5Py5hbW91bnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXdMaW5lSXRlbXMucHVzaCh7XG4gICAgICAgIGxhYmVsOiBjYXJ0SXRlbS50aXRsZSxcbiAgICAgICAgYW1vdW50OiBjYXJ0SXRlbS5tb25leS5hbW91bnQudG9TdHJpbmcoKSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5ld0xpbmVJdGVtcztcbiAgfVxufVxuIl19
99
+ }], ctorParameters: () => [{ type: i1.ApplePayExternalWindowCommunicationService }, { type: i2.SummaryFinanceDetailsAdapterService }] });
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGUtcGF5LWNhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3Nkay1wYXltZW50LXN5c3RlbXMvYXBwbGUtcGF5L2FwcGxlLXBheS1jYXJ0L2FwcGxlLXBheS1jYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBcUIzQyxNQUFNLE9BQU8sbUJBQW1CO0lBTTlCLElBQVcsMkJBQTJCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hELENBQUM7SUFFRCxJQUFXLHNCQUFzQjtRQUMvQixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBVyx5QkFBeUI7UUFDbEMsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVELFlBQ21CLGtDQUE4RSxFQUM5RSxtQ0FBd0U7UUFEeEUsdUNBQWtDLEdBQWxDLGtDQUFrQyxDQUE0QztRQUM5RSx3Q0FBbUMsR0FBbkMsbUNBQW1DLENBQXFDO1FBbkIxRSwrQkFBMEIsR0FBRyxJQUFJLE9BQU8sRUFBZ0IsQ0FBQztRQUN6RCwwQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBaUIsQ0FBQztRQUVyRCw2QkFBd0IsR0FBRyxJQUFJLE9BQU8sRUFBbUIsQ0FBQztJQWlCeEUsQ0FBQztJQUVHLG9CQUFvQixDQUFDLGVBQXdDO1FBQ2xFLE1BQU0sR0FBRyxHQUFHLGVBQWUsQ0FBQyxVQUFVLENBQUM7UUFDdkMsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLFdBQVcs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UUFBUSxDQUFDLEtBQUs7Z0JBQ3JCLE1BQU0sRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUU7YUFDekMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0lBRU8sY0FBYyxDQUFDLE9BQW1CO1FBQ3hDLE9BQU8sT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLElBQUksT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUM7SUFDaEUsQ0FBQzs4R0FuSFUsbUJBQW1CO2tIQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7MkZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEFwcGxlUGF5RXJyb3IsXG4gIEFwcGxlUGF5U2hpcHBpbmdDb250YWN0LFxuICBBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZSxcbn0gZnJvbSAnLi4vc2Vzc2lvbi1oYW5kbGVycy9hcHBsZS1wYXktc2Vzc2lvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXBwbGVQYXlQYXJhbXMgfSBmcm9tICcuLi9hcHBsZS1wYXktcGFyYW1zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBVcGRhdGVkUHJpY2UgfSBmcm9tICcuLi91cGRhdGVkLXByaWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTaGlwcGluZ0FkZHJlc3MgfSBmcm9tICcuLi9zaGlwcGluZy1hZGRyZXNzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBcHBsZVBheUxpbmVJdGVtIH0gZnJvbSAnYnJhaW50cmVlLXdlYic7XG5pbXBvcnQgeyBDYXJ0TGluZSB9IGZyb20gJy4uLy4uLy4uL3BheW1lbnQvZmluYW5jZS1kZXRhaWxzL2NhcnQtbGluZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXBwbGVQYXlFeHRlcm5hbFdpbmRvd0NvbW11bmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vZXh0ZXJuYWwtd2luZG93LWNvbW11bmljYXRpb24vZXh0ZXJuYWwtd2luZG93LWNvbW11bmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBDb21tYW5kc0ZvclBhZ2VzIH0gZnJvbSAnLi4vY29tbWFuZHMtZm9yLXBhZ2VzLmVudW0nO1xuaW1wb3J0IHsgVXBkYXRlUHJpY2VNZXNzYWdlIH0gZnJvbSAnLi4vc29ja2V0LW1lc3NhZ2VzL3VwZGF0ZS1wcmljZS1tZXNzYWdlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBYcHNSZXNwb25zZSB9IGZyb20gJy4uLy4uLy4uL3BheW1lbnQveHBzLXJlc3BvbnNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTdW1tYXJ5RmluYW5jZURldGFpbHNBZGFwdGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3BheW1lbnQvZmluYW5jZS1kZXRhaWxzL3N1bW1hcnkvc3VtbWFyeS1maW5hbmNlLWRldGFpbHMtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFhwc0ZpbmFuY2UgfSBmcm9tICcuLi8uLi8uLi9wYXltZW50L3hwcy1maW5hbmNlLmludGVyZmFjZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBcHBsZVBheUNhcnRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjYXJ0U3VjY2Vzc2Z1bFJlY2FsY3VsYXRlZCA9IG5ldyBTdWJqZWN0PFVwZGF0ZWRQcmljZT4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjYXJ0RXJyb3JSZWNhbGN1bGF0ZWQgPSBuZXcgU3ViamVjdDxBcHBsZVBheUVycm9yPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY2FydFJlY2FsY3VsYXRpb25SZXF1ZXN0ID0gbmV3IFN1YmplY3Q8U2hpcHBpbmdBZGRyZXNzPigpO1xuXG4gIHB1YmxpYyBnZXQgY2FydFN1Y2Nlc3NmdWxSZWNhbGN1bGF0ZWQkKCk6IE9ic2VydmFibGU8VXBkYXRlZFByaWNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FydFN1Y2Nlc3NmdWxSZWNhbGN1bGF0ZWQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNhcnRFcnJvclJlY2FsY3VsYXRlZCQoKTogT2JzZXJ2YWJsZTxBcHBsZVBheUVycm9yPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FydEVycm9yUmVjYWxjdWxhdGVkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBjYXJ0UmVjYWxjdWxhdGlvblJlcXVlc3QkKCk6IE9ic2VydmFibGU8U2hpcHBpbmdBZGRyZXNzPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FydFJlY2FsY3VsYXRpb25SZXF1ZXN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZXh0ZXJuYWxXaW5kb3dDb21tdW5pY2F0aW9uU2VydmljZTogQXBwbGVQYXlFeHRlcm5hbFdpbmRvd0NvbW11bmljYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3VtbWFyeUZpbmFuY2VEZXRhaWxzQWRhcHRlclNlcnZpY2U6IFN1bW1hcnlGaW5hbmNlRGV0YWlsc0FkYXB0ZXJTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgcmVjYWxjdWxhdGVDYXJ0VGF4ZXMoc2hpcHBpbmdDb250YWN0OiBBcHBsZVBheVNoaXBwaW5nQ29udGFjdCk6IHZvaWQge1xuICAgIGNvbnN0IHppcCA9IHNoaXBwaW5nQ29udGFjdC5wb3N0YWxDb2RlO1xuICAgIGNvbnN0IGNvdW50cnkgPSBzaGlwcGluZ0NvbnRhY3QuY291bnRyeUNvZGU/LnRvVXBwZXJDYXNlKCkgPz8gJyc7XG4gICAgY29uc3QgcGFyc2VkWmlwID0gemlwPy5yZXBsYWNlKC9cXHMvZywgJycpO1xuXG4gICAgdGhpcy5jYXJ0UmVjYWxjdWxhdGlvblJlcXVlc3QubmV4dCh7XG4gICAgICB6aXA6IHBhcnNlZFppcCxcbiAgICAgIGNvdW50cnksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYnVpbGRTaGlwcGluZ0NvbnRhY3RVcGRhdGUoXG4gICAgcGF5bWVudFBhcmFtczogQXBwbGVQYXlQYXJhbXMsXG4gICAgdXBkYXRlZFByaWNlOiBVcGRhdGVkUHJpY2VcbiAgKTogQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUge1xuICAgIHJldHVybiB7XG4gICAgICBzdGF0dXM6ICdTVEFUVVNfU1VDQ0VTUycsXG4gICAgICBuZXdUb3RhbDoge1xuICAgICAgICBsYWJlbDogcGF5bWVudFBhcmFtcy50b3RhbExhYmVsLFxuICAgICAgICBhbW91bnQ6IHVwZGF0ZWRQcmljZS50b3RhbC50b1N0cmluZygpLFxuICAgICAgfSxcbiAgICAgIG5ld0xpbmVJdGVtczogdGhpcy5nZXRMaW5lSXRlbXModXBkYXRlZFByaWNlKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHNlbmRTdWNjZXNzZnVsUmVjYWxjdWxhdGVkQ2FydCh4cHNSZXNwb25zZTogWHBzUmVzcG9uc2UpOiB2b2lkIHtcbiAgICBjb25zdCBmaW5hbmNlRGV0YWlscyA9XG4gICAgICB0aGlzLnN1bW1hcnlGaW5hbmNlRGV0YWlsc0FkYXB0ZXJTZXJ2aWNlLmdldEZpbmFuY2VEZXRhaWxzKFxuICAgICAgICB4cHNSZXNwb25zZS5zdW1tYXJ5XG4gICAgICApO1xuXG4gICAgY29uc3QgdXBkYXRlZFByaWNlOiBVcGRhdGVkUHJpY2UgPSB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGZpbmFuY2UgZXhpc3RcbiAgICAgIHRvdGFsOiB0aGlzLmdldFRvdGFsQW1vdW50KHhwc1Jlc3BvbnNlLnN1bW1hcnkuZmluYW5jZSksXG4gICAgICBzdWJ0b3RhbERldGFpbHM6IGZpbmFuY2VEZXRhaWxzLmNhcnRTdW1tYXJ5LnN1YnRvdGFsRGV0YWlscyxcbiAgICAgIHRvdGFsRGV0YWlsczogZmluYW5jZURldGFpbHMuY2FydFN1bW1hcnkudG90YWxEZXRhaWxzLFxuICAgICAgc3VidG90YWxQYXltZW50OiBmaW5hbmNlRGV0YWlscy5jYXJ0U3VtbWFyeS5zdWJ0b3RhbFBheW1lbnQsXG4gICAgfTtcblxuICAgIHRoaXMuY2FydFN1Y2Nlc3NmdWxSZWNhbGN1bGF0ZWQubmV4dCh1cGRhdGVkUHJpY2UpO1xuXG4gICAgdm9pZCB0aGlzLmV4dGVybmFsV2luZG93Q29tbXVuaWNhdGlvblNlcnZpY2Uuc2VuZE1lc3NhZ2VUb0Fub3RoZXJXaW5kb3c8XG4gICAgICBVcGRhdGVQcmljZU1lc3NhZ2VbJ2RhdGEnXVxuICAgID4oQ29tbWFuZHNGb3JQYWdlcy5BUFBMRV9QQVlfVVBEQVRFX1BSSUNFLCB7XG4gICAgICBuZXdDYXJ0UHJpY2luZzogdXBkYXRlZFByaWNlLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNlbmRFcnJvclJlY2FsY3VsYXRlZENhcnQoZXJyb3I6IEFwcGxlUGF5RXJyb3IpOiB2b2lkIHtcbiAgICB0aGlzLmNhcnRFcnJvclJlY2FsY3VsYXRlZC5uZXh0KGVycm9yKTtcbiAgfVxuXG4gIHB1YmxpYyBpc1ppcENvdW50cnkoY291bnRyeTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFsnVVMnLCAnQ0EnXS5pbmNsdWRlcyhjb3VudHJ5KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TGluZUl0ZW1zKHVwZGF0ZWRQcmljZTogVXBkYXRlZFByaWNlKTogQXBwbGVQYXlMaW5lSXRlbVtdIHtcbiAgICBjb25zdCBuZXdMaW5lSXRlbXM6IEFwcGxlUGF5TGluZUl0ZW1bXSA9IFtdO1xuXG4gICAgaWYgKHVwZGF0ZWRQcmljZS5zdWJ0b3RhbFBheW1lbnQ/Lm1vbmV5Py5hbW91bnQpIHtcbiAgICAgIG5ld0xpbmVJdGVtcy5wdXNoKHtcbiAgICAgICAgbGFiZWw6IHVwZGF0ZWRQcmljZS5zdWJ0b3RhbFBheW1lbnQudGl0bGUgPz8gJ1N1YnRvdGFsJyxcbiAgICAgICAgYW1vdW50OiB1cGRhdGVkUHJpY2Uuc3VidG90YWxQYXltZW50Lm1vbmV5Py5hbW91bnQudG9TdHJpbmcoKSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGxldCBwYXltZW50c0RldGFpbHM6IENhcnRMaW5lW10gPSBbXTtcblxuICAgIGlmICh1cGRhdGVkUHJpY2Uuc3VidG90YWxEZXRhaWxzPy5sZW5ndGgpIHtcbiAgICAgIHBheW1lbnRzRGV0YWlscyA9IHVwZGF0ZWRQcmljZS5zdWJ0b3RhbERldGFpbHM7XG4gICAgfVxuXG4gICAgaWYgKHVwZGF0ZWRQcmljZS50b3RhbERldGFpbHM/Lmxlbmd0aCkge1xuICAgICAgcGF5bWVudHNEZXRhaWxzID0gcGF5bWVudHNEZXRhaWxzLmNvbmNhdCh1cGRhdGVkUHJpY2UudG90YWxEZXRhaWxzKTtcbiAgICB9XG5cbiAgICBwYXltZW50c0RldGFpbHMuZm9yRWFjaCgoY2FydEl0ZW0pID0+IHtcbiAgICAgIGlmICghY2FydEl0ZW0udGl0bGUgfHwgIWNhcnRJdGVtLm1vbmV5Py5hbW91bnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXdMaW5lSXRlbXMucHVzaCh7XG4gICAgICAgIGxhYmVsOiBjYXJ0SXRlbS50aXRsZSxcbiAgICAgICAgYW1vdW50OiBjYXJ0SXRlbS5tb25leS5hbW91bnQudG9TdHJpbmcoKSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5ld0xpbmVJdGVtcztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VG90YWxBbW91bnQoZmluYW5jZTogWHBzRmluYW5jZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGZpbmFuY2U/LmdyYW5kX3RvdGFsPy5hbW91bnQgPz8gZmluYW5jZT8udG90YWw/LmFtb3VudDtcbiAgfVxufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import { Inject, Injectable } from '@angular/core';
2
- import { Subject } from 'rxjs';
2
+ import { Subject, takeUntil } from 'rxjs';
3
3
  import { payStation4Url, sandboxPayStationUrl, } from '../../payment/actions/redirect/pay-station4-url.const';
4
4
  import { applePayId } from '../../payment/actions/redirect/ps4-pages/pages-payment-methods-id.const';
5
5
  import { pagesRoutes } from '../../payment/actions/redirect/ps4-pages/pages-routes.const';
@@ -9,6 +9,7 @@ import { ApplePayIntegrationType, } from './apple-pay-integration.type';
9
9
  import { applePayVersion } from './apple-pay.const';
10
10
  import { ApplePayErrors } from './apple-pay.errors.enum';
11
11
  import { ErrorTags } from '../../exceptions-handling/errors/elk-error-types.enum';
12
+ import { mapShippingAddressToContact } from './map-shipping-address-to-contact.function';
12
13
  import * as i0 from "@angular/core";
13
14
  import * as i1 from "../../payment/finance-details/summary/summary-finance-details-adapter.service";
14
15
  import * as i2 from "./session-handlers/braintree.handler";
@@ -16,6 +17,8 @@ import * as i3 from "./session-handlers/checkout.handler";
16
17
  import * as i4 from "./params-builder/apple-pay-params-builder.service";
17
18
  import * as i5 from "../../exceptions-handling/elk/elk-logger.service";
18
19
  import * as i6 from "./apple-pay-sdk.service";
20
+ import * as i7 from "./external-window-communication/external-window-communication.service";
21
+ import * as i8 from "./apple-pay-cart/apple-pay-cart.service";
19
22
  export class ApplePayService {
20
23
  get paymentParameters() {
21
24
  return this.applePayParams;
@@ -37,7 +40,7 @@ export class ApplePayService {
37
40
  get integrationType$() {
38
41
  return this.integrationType.asObservable();
39
42
  }
40
- constructor(window, summaryFinanceDetailsAdapterService, braintreeHandler, checkoutHandler, appleParamsBuilder, elkLoggerService, applePaySdkService) {
43
+ constructor(window, summaryFinanceDetailsAdapterService, braintreeHandler, checkoutHandler, appleParamsBuilder, elkLoggerService, applePaySdkService, externalWindowCommunicationService, applePayCartService) {
41
44
  this.window = window;
42
45
  this.summaryFinanceDetailsAdapterService = summaryFinanceDetailsAdapterService;
43
46
  this.braintreeHandler = braintreeHandler;
@@ -45,10 +48,13 @@ export class ApplePayService {
45
48
  this.appleParamsBuilder = appleParamsBuilder;
46
49
  this.elkLoggerService = elkLoggerService;
47
50
  this.applePaySdkService = applePaySdkService;
51
+ this.externalWindowCommunicationService = externalWindowCommunicationService;
52
+ this.applePayCartService = applePayCartService;
48
53
  this.payment = new Subject();
49
54
  this.error = new Subject();
50
55
  this.integrationType = new Subject();
51
56
  this.applePayQrOpened = new Subject();
57
+ this.destroy$ = new Subject();
52
58
  this.paymentClient = null;
53
59
  this.applePayParams = null;
54
60
  this.order = null;
@@ -61,6 +67,8 @@ export class ApplePayService {
61
67
  }
62
68
  /* istanbul ignore next */
63
69
  removeListeners() {
70
+ this.destroy$.next();
71
+ this.destroy$.complete();
64
72
  this.applePaySdkService.removeListeners();
65
73
  }
66
74
  setApplePayParams(data) {
@@ -99,11 +107,14 @@ export class ApplePayService {
99
107
  }
100
108
  this.emitIntegrationType();
101
109
  }
102
- redirectToPaymentPage(parameters, token, isSandbox) {
110
+ async redirectToPaymentPage(parameters, token, isSandbox) {
103
111
  const route = pagesRoutes.get(applePayId);
104
112
  if (!route) {
105
113
  return;
106
114
  }
115
+ console.log('🟡[LOG] token :>>', token);
116
+ await this.externalWindowCommunicationService.openWebSocketConnection(token);
117
+ this.listenWebsocketMessages();
107
118
  const query = new URLSearchParams({
108
119
  ...parameters,
109
120
  merchantCapabilities: JSON.stringify(parameters.merchantCapabilities),
@@ -209,7 +220,34 @@ export class ApplePayService {
209
220
  this.applePayQrOpened.next();
210
221
  }
211
222
  }
212
- 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 }], target: i0.ɵɵFactoryTarget.Injectable }); }
223
+ listenWebsocketMessages() {
224
+ // Cart recalculation
225
+ this.externalWindowCommunicationService
226
+ .getCartRecalculationMessage$()
227
+ .pipe(takeUntil(this.destroy$))
228
+ .subscribe((message) => {
229
+ const shippingContact = mapShippingAddressToContact(message.data.shippingAddress);
230
+ this.applePayCartService.recalculateCartTaxes(shippingContact);
231
+ });
232
+ // Send token
233
+ this.externalWindowCommunicationService
234
+ .getWindowSendTokenMessage$()
235
+ .pipe(takeUntil(this.destroy$))
236
+ .subscribe((message) => {
237
+ this.payment.next(message.data.applePayToken);
238
+ });
239
+ // Close window
240
+ this.externalWindowCommunicationService.getWindowClose$().subscribe(() => {
241
+ // TODO handle
242
+ });
243
+ // Close window with 'back' button
244
+ this.externalWindowCommunicationService
245
+ .getWindowReturnMessage$()
246
+ .subscribe(() => {
247
+ // TODO handle
248
+ });
249
+ }
250
+ 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.ApplePayCartService }], target: i0.ɵɵFactoryTarget.Injectable }); }
213
251
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayService, providedIn: 'root' }); }
214
252
  }
215
253
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayService, decorators: [{
@@ -220,5 +258,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
220
258
  }], ctorParameters: () => [{ type: undefined, decorators: [{
221
259
  type: Inject,
222
260
  args: [windowToken]
223
- }] }, { type: i1.SummaryFinanceDetailsAdapterService }, { type: i2.BraintreeHandler }, { type: i3.CheckoutHandler }, { type: i4.ApplePayParamsBuilderService }, { type: i5.ElkLoggerService }, { type: i6.ApplePaySdkService }] });
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGUtcGF5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9zZGstcGF5bWVudC1zeXN0ZW1zL2FwcGxlLXBheS9hcHBsZS1wYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzNDLE9BQU8sRUFDTCxjQUFjLEVBQ2Qsb0JBQW9CLEdBQ3JCLE1BQU0sdURBQXVELENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlFQUF5RSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUMxRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFFTCx1QkFBdUIsR0FDeEIsTUFBTSw4QkFBOEIsQ0FBQztBQUV0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBT3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7Ozs7Ozs7QUFPbEYsTUFBTSxPQUFPLGVBQWU7SUFnQjFCLElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMs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LENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLDBCQUEwQjtRQUMxQixPQUFPLElBQUksQ0FBQyxlQUFlO1lBQ3pCLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNO1lBQ2hDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUM7SUFDdkMsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixJQUNFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLHVCQUF1QixDQUFDLE1BQU07WUFDNUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixFQUMzQyxDQUFDO1lBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDOzhHQTdRVSxlQUFlLGtCQTJDaEIsV0FBVztrSEEzQ1YsZUFBZSxjQUZkLE1BQU07OzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkE0Q0ksTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBcHBsZVBheSwgYXBwbGVQYXksIGNsaWVudCB9IGZyb20gJ2JyYWludHJlZS13ZWInO1xuaW1wb3J0IHsgRXh0ZW5kZWRXaW5kb3cgfSBmcm9tICcuLi8uLi9leHRlbmRlZC13aW5kb3cuaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIHBheVN0YXRpb240VXJsLFxuICBzYW5kYm94UGF5U3RhdGlvblVybCxcbn0gZnJvbSAnLi4vLi4vcGF5bWVudC9hY3Rpb25zL3JlZGlyZWN0L3BheS1zdGF0aW9uNC11cmwuY29uc3QnO1xuaW1wb3J0IHsgYXBwbGVQYXlJZCB9IGZyb20gJy4uLy4uL3BheW1lbnQvYWN0aW9ucy9yZWRpcmVjdC9wczQtcGFnZXMvcGFnZXMtcGF5bWVudC1tZXRob2RzLWlkLmNvbnN0JztcbmltcG9ydCB7IHBhZ2VzUm91dGVzIH0gZnJvbSAnLi4vLi4vcGF5bWVudC9hY3Rpb25zL3JlZGlyZWN0L3BzNC1wYWdlcy9wYWdlcy1yb3V0ZXMuY29uc3QnO1xuaW1wb3J0IHsgRmllbGROYW1lcyB9IGZyb20gJy4uLy4uL3BheW1lbnQvZmllbGQtbmFtZXMuZW51bSc7XG5pbXBvcnQgeyBTdW1tYXJ5RmluYW5jZURldGFpbHNBZGFwdGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3BheW1lbnQvZmluYW5jZS1kZXRhaWxzL3N1bW1hcnkvc3VtbWFyeS1maW5hbmNlLWRldGFpbHMtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFhwc1Jlc3BvbnNlIH0gZnJvbSAnLi4vLi4vcGF5bWVudC94cHMtcmVzcG9uc2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IHdpbmRvd1Rva2VuIH0gZnJvbSAnLi4vLi4vd2luZG93LnRva2VuJztcbmltcG9ydCB7XG4gIEFwcGxlUGF5SW50ZWdyYXRpb24sXG4gIEFwcGxlUGF5SW50ZWdyYXRpb25UeXBlLFxufSBmcm9tICcuL2FwcGxlLXBheS1pbnRlZ3JhdGlvbi50eXBlJztcbmltcG9ydCB7IEFwcGxlUGF5UGFyYW1zIH0gZnJvbSAnLi9hcHBsZS1wYXktcGFyYW1zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBhcHBsZVBheVZlcnNpb24gfSBmcm9tICcuL2FwcGxlLXBheS5jb25zdCc7XG5pbXBvcnQgeyBBcHBsZVBheUVycm9ycyB9IGZyb20gJy4vYXBwbGUtcGF5LmVycm9ycy5lbnVtJztcbmltcG9ydCB7IEJyYWludHJlZUhhbmRsZXIgfSBmcm9tICcuL3Nlc3Npb24taGFuZGxlcnMvYnJhaW50cmVlLmhhbmRsZXInO1xuaW1wb3J0IHsgQ2hlY2tvdXRIYW5kbGVyIH0gZnJvbSAnLi9zZXNzaW9uLWhhbmRsZXJzL2NoZWNrb3V0LmhhbmRsZXInO1xuaW1wb3J0IHsgQXBwbGVQYXlTZXNzaW9uSGFuZGxlciB9IGZyb20gJy4vc2Vzc2lvbi1oYW5kbGVycy9zZXNzaW9uLWhhbmRsZXIudHlwZSc7XG5pbXBvcnQgeyBQYXltZW50Rm9ybSB9IGZyb20gJy4uLy4uL3BheW1lbnQvcGF5bWVudC1mb3JtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBcHBsZVBheVBhcmFtc0J1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi9wYXJhbXMtYnVpbGRlci9hcHBsZS1wYXktcGFyYW1zLWJ1aWxkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBFbGtMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZXhjZXB0aW9ucy1oYW5kbGluZy9lbGsvZWxrLWxvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IEVycm9yVGFncyB9IGZyb20gJy4uLy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZXJyb3JzL2Vsay1lcnJvci10eXBlcy5lbnVtJztcbmltcG9ydCB7IFN0YXJ0U2Vzc2lvblBhcmFtcyB9IGZyb20gJy4vc2Vzc2lvbi1oYW5kbGVycy9zdGFydC1zZXNzaW9uLXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXBwbGVQYXlTZGtTZXJ2aWNlIH0gZnJvbSAnLi9hcHBsZS1wYXktc2RrLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXBwbGVQYXlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBwYXltZW50OiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IGVycm9yOiBTdWJqZWN0PEFwcGxlUGF5RXJyb3JzPiA9IG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW50ZWdyYXRpb25UeXBlOiBTdWJqZWN0PEFwcGxlUGF5SW50ZWdyYXRpb24+ID1cbiAgICBuZXcgU3ViamVjdCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IGFwcGxlUGF5UXJPcGVuZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgcGF5bWVudENsaWVudDogQXBwbGVQYXkgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IGFwaTogUHJvbWlzZTx7XG4gICAgYXBwbGVQYXk6IHR5cGVvZiBhcHBsZVBheTtcbiAgICBjbGllbnQ6IHR5cGVvZiBjbGllbnQ7XG4gIH0+O1xuICBwcml2YXRlIGFwcGxlUGF5UGFyYW1zOiBBcHBsZVBheVBhcmFtcyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIG9yZGVyPzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGdldCBwYXltZW50UGFyYW1ldGVycygpOiBBcHBsZVBheVBhcmFtcyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmFwcGxlUGF5UGFyYW1zO1xuICB9XG5cbiAgcHVibGljIGdldCBwYXltZW50JCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnBheW1lbnQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVycm9yJCgpOiBPYnNlcnZhYmxlPEFwcGxlUGF5RXJyb3JzPiB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3IuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBwdWJsaWMgZ2V0IGFwcGxlUGF5UXJPcGVuZWQkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmFwcGxlUGF5UXJPcGVuZWQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBwdWJsaWMgZ2V0IHdpbmRvd0Nsb3NpbmckKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmFwcGxlUGF5U2RrU2VydmljZS53aW5kb3dDbG9zaW5nJDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW50ZWdyYXRpb25UeXBlJCgpOiBPYnNlcnZhYmxlPEFwcGxlUGF5SW50ZWdyYXRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5pbnRlZ3JhdGlvblR5cGUuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgQEluamVjdCh3aW5kb3dUb2tlbikgcHJpdmF0ZSByZWFkb25seSB3aW5kb3c6IEV4dGVuZGVkV2luZG93LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3VtbWFyeUZpbmFuY2VEZXRhaWxzQWRhcHRlclNlcnZpY2U6IFN1bW1hcnlGaW5hbmNlRGV0YWlsc0FkYXB0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYnJhaW50cmVlSGFuZGxlcjogQnJhaW50cmVlSGFuZGxlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoZWNrb3V0SGFuZGxlcjogQ2hlY2tvdXRIYW5kbGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwbGVQYXJhbXNCdWlsZGVyOiBBcHBsZVBheVBhcmFtc0J1aWxkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxrTG9nZ2VyU2VydmljZTogRWxrTG9nZ2VyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcGxlUGF5U2RrU2VydmljZTogQXBwbGVQYXlTZGtTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuYXBpID0gdGhpcy5sb2FkQnJhaW50cmVlKCk7XG5cbiAgICB0aGlzLnN1YnNjcmliZVRvSGFuZGxlcnMoKTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHB1YmxpYyBhZGRBcHBsZVBheVNka0pzKCk6IHZvaWQge1xuICAgIHRoaXMuYXBwbGVQYXlTZGtTZXJ2aWNlLmFkZEFwcGxlUGF5U2RrSnMoKTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHB1YmxpYyByZW1vdmVMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgdGhpcy5hcHBsZVBheVNka1NlcnZpY2UucmVtb3ZlTGlzdGVuZXJzKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0QXBwbGVQYXlQYXJhbXMoZGF0YTogeyBwYXltZW50Rm9ybTogUGF5bWVudEZvcm0gfSk6IHZvaWQge1xuICAgIGNvbnN0IHBheW1lbnRGb3JtID0gZGF0YT8ucGF5bWVudEZvcm07XG4gICAgY29uc3QgZm9ybUZpZWxkcyA9IHBheW1lbnRGb3JtPy5maWVsZHM7XG4gICAgY29uc3Qgc3VtbWFyeSA9IHBheW1lbnRGb3JtPy5zdW1tYXJ5O1xuXG4gICAgaWYgKCFmb3JtRmllbGRzIHx8ICFzdW1tYXJ5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5hcHBsZVBheVBhcmFtcyA9IHRoaXMuYXBwbGVQYXJhbXNCdWlsZGVyLmJ1aWxkUGFyYW1zKHBheW1lbnRGb3JtKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpbml0QnJhaW50cmVlTGlicmFyeSh0b2tlbktleTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGFwaSA9IGF3YWl0IHRoaXMuYXBpO1xuICAgICAgY29uc3QgY2xpZW50SW5zdGFuY2UgPSBhd2FpdCBhcGkuY2xpZW50LmNyZWF0ZSh7XG4gICAgICAgIGF1dGhvcml6YXRpb246IHRva2VuS2V5LFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMucGF5bWVudENsaWVudCA9IGF3YWl0IGFwaS5hcHBsZVBheS5jcmVhdGUoe1xuICAgICAgICBjbGllbnQ6IGNsaWVudEluc3RhbmNlLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmJyYWludHJlZUhhbmRsZXIuc2V0Q2xpZW50KHRoaXMucGF5bWVudENsaWVudCk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoQXBwbGVQYXlFcnJvcnMuYnJhaW50cmVlSW5pdGlhbGl6ZUVycm9yLCBlcnJvcik7XG4gICAgICB0aGlzLmVsa0xvZ2dlclNlcnZpY2UubG9nKEFwcGxlUGF5RXJyb3JzLmJyYWludHJlZUluaXRpYWxpemVFcnJvciwgW1xuICAgICAgICBFcnJvclRhZ3MuQVBQTEVQQVksXG4gICAgICBdKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMucGF5bWVudENsaWVudCB8fCAhdGhpcy5pc0RldmljZUNhcGFibGUpIHtcbiAgICAgIHRoaXMuZW1pdEVycm9yKEFwcGxlUGF5RXJyb3JzLmRldmljZUlzTm90Q2FwYWJsZUVycm9yKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgaW5pdEFwcGxlUGF5KHRva2VuS2V5OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5hcHBsZVBheVBhcmFtcz8uYWNxdWlyZXIgPT09ICdicmFpbnRyZWUnKSB7XG4gICAgICBhd2FpdCB0aGlzLmluaXRCcmFpbnRyZWVMaWJyYXJ5KHRva2VuS2V5KTtcbiAgICB9XG5cbiAgICB0aGlzLmVtaXRJbnRlZ3JhdGlvblR5cGUoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWRpcmVjdFRvUGF5bWVudFBhZ2UoXG4gICAgcGFyYW1ldGVyczogQXBwbGVQYXlQYXJhbXMsXG4gICAgdG9rZW46IHN0cmluZyxcbiAgICBpc1NhbmRib3g/OiBib29sZWFuXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qgcm91dGUgPSBwYWdlc1JvdXRlcy5nZXQoYXBwbGVQYXlJZCk7XG4gICAgaWYgKCFyb3V0ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHF1ZXJ5ID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICAuLi5wYXJhbWV0ZXJzLFxuICAgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6IEpTT04uc3RyaW5naWZ5KHBhcmFtZXRlcnMubWVyY2hhbnRDYXBhYmlsaXRpZXMpLFxuICAgICAgc3VwcG9ydGVkTmV0d29ya3M6IEpTT04uc3RyaW5naWZ5KHBhcmFtZXRlcnMuc3VwcG9ydGVkTmV0d29ya3MpLFxuICAgICAgcmVxdWlyZWRCaWxsaW5nQ29udGFjdEZpZWxkczogSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIHBhcmFtZXRlcnM/LnJlcXVpcmVkQmlsbGluZ0NvbnRhY3RGaWVsZHNcbiAgICAgICksXG4gICAgICByZXF1aXJlZFNoaXBwaW5nQ29udGFjdEZpZWxkczogSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIHBhcmFtZXRlcnM/LnJlcXVpcmVkU2hpcHBpbmdDb250YWN0RmllbGRzXG4gICAgICApLFxuICAgICAgYWdyZWVtZW50czogSlNPTi5zdHJpbmdpZnkocGFyYW1ldGVycy5hZ3JlZW1lbnRzKSxcbiAgICAgIHRva2VuLFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMub3JkZXIpIHtcbiAgICAgIHF1ZXJ5LmFwcGVuZCgnb3JkZXInLCB0aGlzLm9yZGVyKTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXlTdGF0aW9uVXJsID0gaXNTYW5kYm94ID8gc2FuZGJveFBheVN0YXRpb25VcmwgOiBwYXlTdGF0aW9uNFVybDtcbiAgICByZXR1cm4gYCR7cGF5U3RhdGlvblVybH0vZW4ke3JvdXRlfT8ke3F1ZXJ5LnRvU3RyaW5nKCl9YDtcbiAgfVxuXG4gIHB1YmxpYyBzZXRPcmRlcihkYXRhOiB7IHBheW1lbnRGb3JtOiBQYXltZW50Rm9ybSB9KTogdm9pZCB7XG4gICAgY29uc3Qgc3VtbWFyeSA9IGRhdGE/LnBheW1lbnRGb3JtPy5zdW1tYXJ5O1xuICAgIGlmICghc3VtbWFyeSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbmFuY2VEZXRhaWxzID1cbiAgICAgIHRoaXMuc3VtbWFyeUZpbmFuY2VEZXRhaWxzQWRhcHRlclNlcnZpY2UuZ2V0RmluYW5jZURldGFpbHMoc3VtbWFyeSk7XG5cbiAgICBpZiAoZmluYW5jZURldGFpbHM/LnB1cmNoYXNlICYmIGZpbmFuY2VEZXRhaWxzPy5maW5hbmNlKSB7XG4gICAgICBjb25zdCBjYXJ0SXRlbXMgPSBmaW5hbmNlRGV0YWlscy5jYXJ0SXRlbXM7XG4gICAgICB0aGlzLm9yZGVyID0gY2FydEl0ZW1zPy5yZWR1Y2UoKGN1cnIsIGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKGN1cnIpIHtcbiAgICAgICAgICByZXR1cm4gY3VyciArIGA7ICR7aXRlbS50aXRsZX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGN1cnIgKyBpdGVtLnRpdGxlO1xuICAgICAgfSwgJycpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNEZXZpY2VDYXBhYmxlKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmFwcGxlUGF5U2RrU2VydmljZS5uZWVkVG9BZGRBcHBsZVBheUpzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICAgIHRoaXMud2luZG93LkFwcGxlUGF5U2Vzc2lvbj8uc3VwcG9ydHNWZXJzaW9uKGFwcGxlUGF5VmVyc2lvbikgJiZcbiAgICAgICAgICB0aGlzLndpbmRvdy5BcHBsZVBheVNlc3Npb24/LmNhbk1ha2VQYXltZW50cygpXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFRva2VuTm9uY2VGaWVsZERhdGEodG9rZW5Ob25jZTogc3RyaW5nKToge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xuICB9IHtcbiAgICBjb25zdCBuYW1lID0gRmllbGROYW1lcy50b2tlbkFwcGxlUGF5O1xuICAgIGNvbnN0IHZhbHVlID0gYnRvYSh0b2tlbk5vbmNlKTtcbiAgICByZXR1cm4geyBuYW1lLCB2YWx1ZSB9O1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUFwcGxlUGF5UGFyYW1zKGRhdGE6IHVua25vd24pOiB2b2lkIHtcbiAgICBjb25zdCBzdW1tYXJ5ID0gKGRhdGEgYXMgWHBzUmVzcG9uc2UpPy5zdW1tYXJ5O1xuICAgIGlmICghdGhpcy5hcHBsZVBheVBhcmFtcyB8fCAhc3VtbWFyeSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYXBwbGVQYXlQYXJhbXMgPSB0aGlzLmFwcGxlUGFyYW1zQnVpbGRlci51cGRhdGVQYXJhbXMoXG4gICAgICB0aGlzLmFwcGxlUGF5UGFyYW1zLFxuICAgICAgc3VtbWFyeVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgcHJvY2VlZENoZWNrb3V0KFxuICAgIHBhcmFtZXRlcnM6IEFwcGxlUGF5UGFyYW1zLFxuICAgIGFkZGl0aW9uYWxQYXJhbXM6IFN0YXJ0U2Vzc2lvblBhcmFtc1xuICApOiB2b2lkIHtcbiAgICBjb25zdCBzZXNzaW9uSGFuZGxlciA9IHRoaXMuZ2V0U2Vzc2lvbkhhbmRsZXIocGFyYW1ldGVycy5hY3F1aXJlcik7XG5cbiAgICBpZiAoIXNlc3Npb25IYW5kbGVyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdBcHBsZSBQYXk6IFVuc3VwcG9ydGVkIGFjcXVpcmVyOicsIHBhcmFtZXRlcnMuYWNxdWlyZXIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNlc3Npb25IYW5kbGVyLnN0YXJ0U2Vzc2lvbihwYXJhbWV0ZXJzLCBhZGRpdGlvbmFsUGFyYW1zLCAoKSA9PlxuICAgICAgdGhpcy5hcHBsZVBheVNka1NlcnZpY2UuZW1pdFdpbmRvd0Nsb3NpbmcoKVxuICAgICk7XG4gICAgdGhpcy5lbWl0QXBwbGVQYXlPcGVuZWQoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2Vzc2lvbkhhbmRsZXIoXG4gICAgYWNxdWlyZXI6IHN0cmluZ1xuICApOiBBcHBsZVBheVNlc3Npb25IYW5kbGVyIHwgdW5kZWZpbmVkIHtcbiAgICBzd2l0Y2ggKGFjcXVpcmVyKSB7XG4gICAgICBjYXNlICdicmFpbnRyZWUnOlxuICAgICAgICByZXR1cm4gdGhpcy5icmFpbnRyZWVIYW5kbGVyO1xuICAgICAgY2FzZSAnY2hlY2tvdXQnOlxuICAgICAgICByZXR1cm4gdGhpcy5jaGVja291dEhhbmRsZXI7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZEJyYWludHJlZSgpOiBQcm9taXNlPHtcbiAgICBhcHBsZVBheTogdHlwZW9mIGFwcGxlUGF5O1xuICAgIGNsaWVudDogdHlwZW9mIGNsaWVudDtcbiAgfT4ge1xuICAgIGNvbnN0IGFwaSA9IGF3YWl0IGltcG9ydCgnYnJhaW50cmVlLXdlYicpO1xuICAgIHJldHVybiBhcGk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRFcnJvcihlcnJvcjogQXBwbGVQYXlFcnJvcnMpOiB2b2lkIHtcbiAgICB0aGlzLmVycm9yLm5leHQoZXJyb3IpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0SW50ZWdyYXRpb25UeXBlKCk6IHZvaWQge1xuICAgIHRoaXMuaW50ZWdyYXRpb25UeXBlLm5leHQodGhpcy5nZXRJbnRlZ3JhdGlvblR5cGUoKSk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZVRvSGFuZGxlcnMoKTogdm9pZCB7XG4gICAgY29uc3QgaGFuZGxlcnMgPSBbdGhpcy5icmFpbnRyZWVIYW5kbGVyLCB0aGlzLmNoZWNrb3V0SGFuZGxlcl07XG5cbiAgICBoYW5kbGVycy5mb3JFYWNoKChoYW5kbGVyKSA9PiB7XG4gICAgICBoYW5kbGVyLmVycm9yJC5zdWJzY3JpYmUoKGVycm9yKSA9PiB0aGlzLmVtaXRFcnJvcihlcnJvcikpO1xuICAgICAgaGFuZGxlci5wYXltZW50JC5zdWJzY3JpYmUoKHRva2VuKSA9PiB7XG4gICAgICAgIHRoaXMucGF5bWVudC5uZXh0KHRva2VuKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbnRlZ3JhdGlvblR5cGUoKTogQXBwbGVQYXlJbnRlZ3JhdGlvblR5cGUge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHRoaXMuaXNEZXZpY2VDYXBhYmxlXG4gICAgICA/IEFwcGxlUGF5SW50ZWdyYXRpb25UeXBlLm5hdGl2ZVxuICAgICAgOiBBcHBsZVBheUludGVncmF0aW9uVHlwZS5yZWRpcmVjdDtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEFwcGxlUGF5T3BlbmVkKCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMuZ2V0SW50ZWdyYXRpb25UeXBlKCkgPT09IEFwcGxlUGF5SW50ZWdyYXRpb25UeXBlLm5hdGl2ZSAmJlxuICAgICAgdGhpcy5hcHBsZVBheVNka1NlcnZpY2UubmVlZFRvQWRkQXBwbGVQYXlKc1xuICAgICkge1xuICAgICAgdGhpcy5hcHBsZVBheVFyT3BlbmVkLm5leHQoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
261
+ }] }, { type: i1.SummaryFinanceDetailsAdapterService }, { type: i2.BraintreeHandler }, { type: i3.CheckoutHandler }, { type: i4.ApplePayParamsBuilderService }, { type: i5.ElkLoggerService }, { type: i6.ApplePaySdkService }, { type: i7.ApplePayExternalWindowCommunicationService }, { type: i8.ApplePayCartService }] });
262
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGUtcGF5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9zZGstcGF5bWVudC1zeXN0ZW1zL2FwcGxlLXBheS9hcHBsZS1wYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd0RCxPQUFPLEVBQ0wsY0FBYyxFQUNkLG9CQUFvQixHQUNyQixNQUFNLHVEQUF1RCxDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDMUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBRUwsdUJBQXVCLEdBQ3hCLE1BQU0sOEJBQThCLENBQUM7QUFFdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQU96RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFLbEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7Ozs7Ozs7QUFLekYsTUFBTSxPQUFPLGVBQWU7SUFpQjFCLElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZ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cm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwbGVQYXksIGFwcGxlUGF5LCBjbGllbnQgfSBmcm9tICdicmFpbnRyZWUtd2ViJztcbmltcG9ydCB7IEV4dGVuZGVkV2luZG93IH0gZnJvbSAnLi4vLi4vZXh0ZW5kZWQtd2luZG93LmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBwYXlTdGF0aW9uNFVybCxcbiAgc2FuZGJveFBheVN0YXRpb25VcmwsXG59IGZyb20gJy4uLy4uL3BheW1lbnQvYWN0aW9ucy9yZWRpcmVjdC9wYXktc3RhdGlvbjQtdXJsLmNvbnN0JztcbmltcG9ydCB7IGFwcGxlUGF5SWQgfSBmcm9tICcuLi8uLi9wYXltZW50L2FjdGlvbnMvcmVkaXJlY3QvcHM0LXBhZ2VzL3BhZ2VzLXBheW1lbnQtbWV0aG9kcy1pZC5jb25zdCc7XG5pbXBvcnQgeyBwYWdlc1JvdXRlcyB9IGZyb20gJy4uLy4uL3BheW1lbnQvYWN0aW9ucy9yZWRpcmVjdC9wczQtcGFnZXMvcGFnZXMtcm91dGVzLmNvbnN0JztcbmltcG9ydCB7IEZpZWxkTmFtZXMgfSBmcm9tICcuLi8uLi9wYXltZW50L2ZpZWxkLW5hbWVzLmVudW0nO1xuaW1wb3J0IHsgU3VtbWFyeUZpbmFuY2VEZXRhaWxzQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9wYXltZW50L2ZpbmFuY2UtZGV0YWlscy9zdW1tYXJ5L3N1bW1hcnktZmluYW5jZS1kZXRhaWxzLWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBYcHNSZXNwb25zZSB9IGZyb20gJy4uLy4uL3BheW1lbnQveHBzLXJlc3BvbnNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyB3aW5kb3dUb2tlbiB9IGZyb20gJy4uLy4uL3dpbmRvdy50b2tlbic7XG5pbXBvcnQge1xuICBBcHBsZVBheUludGVncmF0aW9uLFxuICBBcHBsZVBheUludGVncmF0aW9uVHlwZSxcbn0gZnJvbSAnLi9hcHBsZS1wYXktaW50ZWdyYXRpb24udHlwZSc7XG5pbXBvcnQgeyBBcHBsZVBheVBhcmFtcyB9IGZyb20gJy4vYXBwbGUtcGF5LXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgYXBwbGVQYXlWZXJzaW9uIH0gZnJvbSAnLi9hcHBsZS1wYXkuY29uc3QnO1xuaW1wb3J0IHsgQXBwbGVQYXlFcnJvcnMgfSBmcm9tICcuL2FwcGxlLXBheS5lcnJvcnMuZW51bSc7XG5pbXBvcnQgeyBCcmFpbnRyZWVIYW5kbGVyIH0gZnJvbSAnLi9zZXNzaW9uLWhhbmRsZXJzL2JyYWludHJlZS5oYW5kbGVyJztcbmltcG9ydCB7IENoZWNrb3V0SGFuZGxlciB9IGZyb20gJy4vc2Vzc2lvbi1oYW5kbGVycy9jaGVja291dC5oYW5kbGVyJztcbmltcG9ydCB7IEFwcGxlUGF5U2Vzc2lvbkhhbmRsZXIgfSBmcm9tICcuL3Nlc3Npb24taGFuZGxlcnMvc2Vzc2lvbi1oYW5kbGVyLnR5cGUnO1xuaW1wb3J0IHsgUGF5bWVudEZvcm0gfSBmcm9tICcuLi8uLi9wYXltZW50L3BheW1lbnQtZm9ybS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXBwbGVQYXlQYXJhbXNCdWlsZGVyU2VydmljZSB9IGZyb20gJy4vcGFyYW1zLWJ1aWxkZXIvYXBwbGUtcGF5LXBhcmFtcy1idWlsZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRWxrTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZWxrL2Vsay1sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBFcnJvclRhZ3MgfSBmcm9tICcuLi8uLi9leGNlcHRpb25zLWhhbmRsaW5nL2Vycm9ycy9lbGstZXJyb3ItdHlwZXMuZW51bSc7XG5pbXBvcnQgeyBTdGFydFNlc3Npb25QYXJhbXMgfSBmcm9tICcuL3Nlc3Npb24taGFuZGxlcnMvc3RhcnQtc2Vzc2lvbi1wYXJhbXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFwcGxlUGF5U2RrU2VydmljZSB9IGZyb20gJy4vYXBwbGUtcGF5LXNkay5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcGxlUGF5RXh0ZXJuYWxXaW5kb3dDb21tdW5pY2F0aW9uU2VydmljZSB9IGZyb20gJy4vZXh0ZXJuYWwtd2luZG93LWNvbW11bmljYXRpb24vZXh0ZXJuYWwtd2luZG93LWNvbW11bmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsZVBheUNhcnRTZXJ2aWNlIH0gZnJvbSAnLi9hcHBsZS1wYXktY2FydC9hcHBsZS1wYXktY2FydC5zZXJ2aWNlJztcbmltcG9ydCB7IG1hcFNoaXBwaW5nQWRkcmVzc1RvQ29udGFjdCB9IGZyb20gJy4vbWFwLXNoaXBwaW5nLWFkZHJlc3MtdG8tY29udGFjdC5mdW5jdGlvbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBcHBsZVBheVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHBheW1lbnQ6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZXJyb3I6IFN1YmplY3Q8QXBwbGVQYXlFcnJvcnM+ID0gbmV3IFN1YmplY3QoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpbnRlZ3JhdGlvblR5cGU6IFN1YmplY3Q8QXBwbGVQYXlJbnRlZ3JhdGlvbj4gPVxuICAgIG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXBwbGVQYXlRck9wZW5lZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgcGF5bWVudENsaWVudDogQXBwbGVQYXkgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IGFwaTogUHJvbWlzZTx7XG4gICAgYXBwbGVQYXk6IHR5cGVvZiBhcHBsZVBheTtcbiAgICBjbGllbnQ6IHR5cGVvZiBjbGllbnQ7XG4gIH0+O1xuICBwcml2YXRlIGFwcGxlUGF5UGFyYW1zOiBBcHBsZVBheVBhcmFtcyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIG9yZGVyPzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGdldCBwYXltZW50UGFyYW1ldGVycygpOiBBcHBsZVBheVBhcmFtcyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmFwcGxlUGF5UGFyYW1zO1xuICB9XG5cbiAgcHVibGljIGdldCBwYXltZW50JCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnBheW1lbnQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVycm9yJCgpOiBPYnNlcnZhYmxlPEFwcGxlUGF5RXJyb3JzPiB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3IuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBwdWJsaWMgZ2V0IGFwcGxlUGF5UXJPcGVuZWQkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmFwcGxlUGF5UXJPcGVuZWQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBwdWJsaWMgZ2V0IHdpbmRvd0Nsb3NpbmckKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmFwcGxlUGF5U2RrU2VydmljZS53aW5kb3dDbG9zaW5nJDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW50ZWdyYXRpb25UeXBlJCgpOiBPYnNlcnZhYmxlPEFwcGxlUGF5SW50ZWdyYXRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5pbnRlZ3JhdGlvblR5cGUuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgQEluamVjdCh3aW5kb3dUb2tlbikgcHJpdmF0ZSByZWFkb25seSB3aW5kb3c6IEV4dGVuZGVkV2luZG93LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3VtbWFyeUZpbmFuY2VEZXRhaWxzQWRhcHRlclNlcnZpY2U6IFN1bW1hcnlGaW5hbmNlRGV0YWlsc0FkYXB0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYnJhaW50cmVlSGFuZGxlcjogQnJhaW50cmVlSGFuZGxlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoZWNrb3V0SGFuZGxlcjogQ2hlY2tvdXRIYW5kbGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwbGVQYXJhbXNCdWlsZGVyOiBBcHBsZVBheVBhcmFtc0J1aWxkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxrTG9nZ2VyU2VydmljZTogRWxrTG9nZ2VyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcGxlUGF5U2RrU2VydmljZTogQXBwbGVQYXlTZGtTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZXh0ZXJuYWxXaW5kb3dDb21tdW5pY2F0aW9uU2VydmljZTogQXBwbGVQYXlFeHRlcm5hbFdpbmRvd0NvbW11bmljYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwbGVQYXlDYXJ0U2VydmljZTogQXBwbGVQYXlDYXJ0U2VydmljZVxuICApIHtcbiAgICB0aGlzLmFwaSA9IHRoaXMubG9hZEJyYWludHJlZSgpO1xuXG4gICAgdGhpcy5zdWJzY3JpYmVUb0hhbmRsZXJzKCk7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBwdWJsaWMgYWRkQXBwbGVQYXlTZGtKcygpOiB2b2lkIHtcbiAgICB0aGlzLmFwcGxlUGF5U2RrU2VydmljZS5hZGRBcHBsZVBheVNka0pzKCk7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBwdWJsaWMgcmVtb3ZlTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB0aGlzLmFwcGxlUGF5U2RrU2VydmljZS5yZW1vdmVMaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRBcHBsZVBheVBhcmFtcyhkYXRhOiB7IHBheW1lbnRGb3JtOiBQYXltZW50Rm9ybSB9KTogdm9pZCB7XG4gICAgY29uc3QgcGF5bWVudEZvcm0gPSBkYXRhPy5wYXltZW50Rm9ybTtcbiAgICBjb25zdCBmb3JtRmllbGRzID0gcGF5bWVudEZvcm0/LmZpZWxkcztcbiAgICBjb25zdCBzdW1tYXJ5ID0gcGF5bWVudEZvcm0/LnN1bW1hcnk7XG5cbiAgICBpZiAoIWZvcm1GaWVsZHMgfHwgIXN1bW1hcnkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmFwcGxlUGF5UGFyYW1zID0gdGhpcy5hcHBsZVBhcmFtc0J1aWxkZXIuYnVpbGRQYXJhbXMocGF5bWVudEZvcm0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGluaXRCcmFpbnRyZWVMaWJyYXJ5KHRva2VuS2V5OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYXBpID0gYXdhaXQgdGhpcy5hcGk7XG4gICAgICBjb25zdCBjbGllbnRJbnN0YW5jZSA9IGF3YWl0IGFwaS5jbGllbnQuY3JlYXRlKHtcbiAgICAgICAgYXV0aG9yaXphdGlvbjogdG9rZW5LZXksXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5wYXltZW50Q2xpZW50ID0gYXdhaXQgYXBpLmFwcGxlUGF5LmNyZWF0ZSh7XG4gICAgICAgIGNsaWVudDogY2xpZW50SW5zdGFuY2UsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuYnJhaW50cmVlSGFuZGxlci5zZXRDbGllbnQodGhpcy5wYXltZW50Q2xpZW50KTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgY29uc29sZS5lcnJvcihBcHBsZVBheUVycm9ycy5icmFpbnRyZWVJbml0aWFsaXplRXJyb3IsIGVycm9yKTtcbiAgICAgIHRoaXMuZWxrTG9nZ2VyU2VydmljZS5sb2coQXBwbGVQYXlFcnJvcnMuYnJhaW50cmVlSW5pdGlhbGl6ZUVycm9yLCBbXG4gICAgICAgIEVycm9yVGFncy5BUFBMRVBBWSxcbiAgICAgIF0pO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5wYXltZW50Q2xpZW50IHx8ICF0aGlzLmlzRGV2aWNlQ2FwYWJsZSkge1xuICAgICAgdGhpcy5lbWl0RXJyb3IoQXBwbGVQYXlFcnJvcnMuZGV2aWNlSXNOb3RDYXBhYmxlRXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpbml0QXBwbGVQYXkodG9rZW5LZXk6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmFwcGxlUGF5UGFyYW1zPy5hY3F1aXJlciA9PT0gJ2JyYWludHJlZScpIHtcbiAgICAgIGF3YWl0IHRoaXMuaW5pdEJyYWludHJlZUxpYnJhcnkodG9rZW5LZXkpO1xuICAgIH1cblxuICAgIHRoaXMuZW1pdEludGVncmF0aW9uVHlwZSgpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHJlZGlyZWN0VG9QYXltZW50UGFnZShcbiAgICBwYXJhbWV0ZXJzOiBBcHBsZVBheVBhcmFtcyxcbiAgICB0b2tlbjogc3RyaW5nLFxuICAgIGlzU2FuZGJveD86IGJvb2xlYW5cbiAgKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCByb3V0ZSA9IHBhZ2VzUm91dGVzLmdldChhcHBsZVBheUlkKTtcbiAgICBpZiAoIXJvdXRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnNvbGUubG9nKCfwn5+hW0xPR10gdG9rZW4gOj4+JywgdG9rZW4pO1xuXG4gICAgYXdhaXQgdGhpcy5leHRlcm5hbFdpbmRvd0NvbW11bmljYXRpb25TZXJ2aWNlLm9wZW5XZWJTb2NrZXRDb25uZWN0aW9uKFxuICAgICAgdG9rZW5cbiAgICApO1xuICAgIHRoaXMubGlzdGVuV2Vic29ja2V0TWVzc2FnZXMoKTtcblxuICAgIGNvbnN0IHF1ZXJ5ID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICAuLi5wYXJhbWV0ZXJzLFxuICAgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6IEpTT04uc3RyaW5naWZ5KHBhcmFtZXRlcnMubWVyY2hhbnRDYXBhYmlsaXRpZXMpLFxuICAgICAgc3VwcG9ydGVkTmV0d29ya3M6IEpTT04uc3RyaW5naWZ5KHBhcmFtZXRlcnMuc3VwcG9ydGVkTmV0d29ya3MpLFxuICAgICAgcmVxdWlyZWRCaWxsaW5nQ29udGFjdEZpZWxkczogSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIHBhcmFtZXRlcnM/LnJlcXVpcmVkQmlsbGluZ0NvbnRhY3RGaWVsZHNcbiAgICAgICksXG4gICAgICByZXF1aXJlZFNoaXBwaW5nQ29udGFjdEZpZWxkczogSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIHBhcmFtZXRlcnM/LnJlcXVpcmVkU2hpcHBpbmdDb250YWN0RmllbGRzXG4gICAgICApLFxuICAgICAgYWdyZWVtZW50czogSlNPTi5zdHJpbmdpZnkocGFyYW1ldGVycy5hZ3JlZW1lbnRzKSxcbiAgICAgIHRva2VuLFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMub3JkZXIpIHtcbiAgICAgIHF1ZXJ5LmFwcGVuZCgnb3JkZXInLCB0aGlzLm9yZGVyKTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXlTdGF0aW9uVXJsID0gaXNTYW5kYm94ID8gc2FuZGJveFBheVN0YXRpb25VcmwgOiBwYXlTdGF0aW9uNFVybDtcbiAgICByZXR1cm4gYCR7cGF5U3RhdGlvblVybH0vZW4ke3JvdXRlfT8ke3F1ZXJ5LnRvU3RyaW5nKCl9YDtcbiAgfVxuXG4gIHB1YmxpYyBzZXRPcmRlcihkYXRhOiB7IHBheW1lbnRGb3JtOiBQYXltZW50Rm9ybSB9KTogdm9pZCB7XG4gICAgY29uc3Qgc3VtbWFyeSA9IGRhdGE/LnBheW1lbnRGb3JtPy5zdW1tYXJ5O1xuICAgIGlmICghc3VtbWFyeSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbmFuY2VEZXRhaWxzID1cbiAgICAgIHRoaXMuc3VtbWFyeUZpbmFuY2VEZXRhaWxzQWRhcHRlclNlcnZpY2UuZ2V0RmluYW5jZURldGFpbHMoc3VtbWFyeSk7XG5cbiAgICBpZiAoZmluYW5jZURldGFpbHM/LnB1cmNoYXNlICYmIGZpbmFuY2VEZXRhaWxzPy5maW5hbmNlKSB7XG4gICAgICBjb25zdCBjYXJ0SXRlbXMgPSBmaW5hbmNlRGV0YWlscy5jYXJ0SXRlbXM7XG4gICAgICB0aGlzLm9yZGVyID0gY2FydEl0ZW1zPy5yZWR1Y2UoKGN1cnIsIGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKGN1cnIpIHtcbiAgICAgICAgICByZXR1cm4gY3VyciArIGA7ICR7aXRlbS50aXRsZX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGN1cnIgKyBpdGVtLnRpdGxlO1xuICAgICAgfSwgJycpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNEZXZpY2VDYXBhYmxlKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmFwcGxlUGF5U2RrU2VydmljZS5uZWVkVG9BZGRBcHBsZVBheUpzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICAgIHRoaXMud2luZG93LkFwcGxlUGF5U2Vzc2lvbj8uc3VwcG9ydHNWZXJzaW9uKGFwcGxlUGF5VmVyc2lvbikgJiZcbiAgICAgICAgICB0aGlzLndpbmRvdy5BcHBsZVBheVNlc3Npb24/LmNhbk1ha2VQYXltZW50cygpXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFRva2VuTm9uY2VGaWVsZERhdGEodG9rZW5Ob25jZTogc3RyaW5nKToge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xuICB9IHtcbiAgICBjb25zdCBuYW1lID0gRmllbGROYW1lcy50b2tlbkFwcGxlUGF5O1xuICAgIGNvbnN0IHZhbHVlID0gYnRvYSh0b2tlbk5vbmNlKTtcbiAgICByZXR1cm4geyBuYW1lLCB2YWx1ZSB9O1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUFwcGxlUGF5UGFyYW1zKGRhdGE6IHVua25vd24pOiB2b2lkIHtcbiAgICBjb25zdCBzdW1tYXJ5ID0gKGRhdGEgYXMgWHBzUmVzcG9uc2UpPy5zdW1tYXJ5O1xuICAgIGlmICghdGhpcy5hcHBsZVBheVBhcmFtcyB8fCAhc3VtbWFyeSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYXBwbGVQYXlQYXJhbXMgPSB0aGlzLmFwcGxlUGFyYW1zQnVpbGRlci51cGRhdGVQYXJhbXMoXG4gICAgICB0aGlzLmFwcGxlUGF5UGFyYW1zLFxuICAgICAgc3VtbWFyeVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgcHJvY2VlZENoZWNrb3V0KFxuICAgIHBhcmFtZXRlcnM6IEFwcGxlUGF5UGFyYW1zLFxuICAgIGFkZGl0aW9uYWxQYXJhbXM6IFN0YXJ0U2Vzc2lvblBhcmFtc1xuICApOiB2b2lkIHtcbiAgICBjb25zdCBzZXNzaW9uSGFuZGxlciA9IHRoaXMuZ2V0U2Vzc2lvbkhhbmRsZXIocGFyYW1ldGVycy5hY3F1aXJlcik7XG5cbiAgICBpZiAoIXNlc3Npb25IYW5kbGVyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdBcHBsZSBQYXk6IFVuc3VwcG9ydGVkIGFjcXVpcmVyOicsIHBhcmFtZXRlcnMuYWNxdWlyZXIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNlc3Npb25IYW5kbGVyLnN0YXJ0U2Vzc2lvbihwYXJhbWV0ZXJzLCBhZGRpdGlvbmFsUGFyYW1zLCAoKSA9PlxuICAgICAgdGhpcy5hcHBsZVBheVNka1NlcnZpY2UuZW1pdFdpbmRvd0Nsb3NpbmcoKVxuICAgICk7XG4gICAgdGhpcy5lbWl0QXBwbGVQYXlPcGVuZWQoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2Vzc2lvbkhhbmRsZXIoXG4gICAgYWNxdWlyZXI6IHN0cmluZ1xuICApOiBBcHBsZVBheVNlc3Npb25IYW5kbGVyIHwgdW5kZWZpbmVkIHtcbiAgICBzd2l0Y2ggKGFjcXVpcmVyKSB7XG4gICAgICBjYXNlICdicmFpbnRyZWUnOlxuICAgICAgICByZXR1cm4gdGhpcy5icmFpbnRyZWVIYW5kbGVyO1xuICAgICAgY2FzZSAnY2hlY2tvdXQnOlxuICAgICAgICByZXR1cm4gdGhpcy5jaGVja291dEhhbmRsZXI7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZEJyYWludHJlZSgpOiBQcm9taXNlPHtcbiAgICBhcHBsZVBheTogdHlwZW9mIGFwcGxlUGF5O1xuICAgIGNsaWVudDogdHlwZW9mIGNsaWVudDtcbiAgfT4ge1xuICAgIGNvbnN0IGFwaSA9IGF3YWl0IGltcG9ydCgnYnJhaW50cmVlLXdlYicpO1xuICAgIHJldHVybiBhcGk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRFcnJvcihlcnJvcjogQXBwbGVQYXlFcnJvcnMpOiB2b2lkIHtcbiAgICB0aGlzLmVycm9yLm5leHQoZXJyb3IpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0SW50ZWdyYXRpb25UeXBlKCk6IHZvaWQge1xuICAgIHRoaXMuaW50ZWdyYXRpb25UeXBlLm5leHQodGhpcy5nZXRJbnRlZ3JhdGlvblR5cGUoKSk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZVRvSGFuZGxlcnMoKTogdm9pZCB7XG4gICAgY29uc3QgaGFuZGxlcnMgPSBbdGhpcy5icmFpbnRyZWVIYW5kbGVyLCB0aGlzLmNoZWNrb3V0SGFuZGxlcl07XG5cbiAgICBoYW5kbGVycy5mb3JFYWNoKChoYW5kbGVyKSA9PiB7XG4gICAgICBoYW5kbGVyLmVycm9yJC5zdWJzY3JpYmUoKGVycm9yKSA9PiB0aGlzLmVtaXRFcnJvcihlcnJvcikpO1xuICAgICAgaGFuZGxlci5wYXltZW50JC5zdWJzY3JpYmUoKHRva2VuKSA9PiB7XG4gICAgICAgIHRoaXMucGF5bWVudC5uZXh0KHRva2VuKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbnRlZ3JhdGlvblR5cGUoKTogQXBwbGVQYXlJbnRlZ3JhdGlvblR5cGUge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHRoaXMuaXNEZXZpY2VDYXBhYmxlXG4gICAgICA/IEFwcGxlUGF5SW50ZWdyYXRpb25UeXBlLm5hdGl2ZVxuICAgICAgOiBBcHBsZVBheUludGVncmF0aW9uVHlwZS5yZWRpcmVjdDtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEFwcGxlUGF5T3BlbmVkKCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMuZ2V0SW50ZWdyYXRpb25UeXBlKCkgPT09IEFwcGxlUGF5SW50ZWdyYXRpb25UeXBlLm5hdGl2ZSAmJlxuICAgICAgdGhpcy5hcHBsZVBheVNka1NlcnZpY2UubmVlZFRvQWRkQXBwbGVQYXlKc1xuICAgICkge1xuICAgICAgdGhpcy5hcHBsZVBheVFyT3BlbmVkLm5leHQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxpc3RlbldlYnNvY2tldE1lc3NhZ2VzKCk6IHZvaWQge1xuICAgIC8vIENhcnQgcmVjYWxjdWxhdGlvblxuICAgIHRoaXMuZXh0ZXJuYWxXaW5kb3dDb21tdW5pY2F0aW9uU2VydmljZVxuICAgICAgLmdldENhcnRSZWNhbGN1bGF0aW9uTWVzc2FnZSQoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgobWVzc2FnZSkgPT4ge1xuICAgICAgICBjb25zdCBzaGlwcGluZ0NvbnRhY3QgPSBtYXBTaGlwcGluZ0FkZHJlc3NUb0NvbnRhY3QoXG4gICAgICAgICAgbWVzc2FnZS5kYXRhLnNoaXBwaW5nQWRkcmVzc1xuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuYXBwbGVQYXlDYXJ0U2VydmljZS5yZWNhbGN1bGF0ZUNhcnRUYXhlcyhzaGlwcGluZ0NvbnRhY3QpO1xuICAgICAgfSk7XG5cbiAgICAvLyBTZW5kIHRva2VuXG4gICAgdGhpcy5leHRlcm5hbFdpbmRvd0NvbW11bmljYXRpb25TZXJ2aWNlXG4gICAgICAuZ2V0V2luZG93U2VuZFRva2VuTWVzc2FnZSQoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgobWVzc2FnZSkgPT4ge1xuICAgICAgICB0aGlzLnBheW1lbnQubmV4dChtZXNzYWdlLmRhdGEuYXBwbGVQYXlUb2tlbik7XG4gICAgICB9KTtcblxuICAgIC8vIENsb3NlIHdpbmRvd1xuICAgIHRoaXMuZXh0ZXJuYWxXaW5kb3dDb21tdW5pY2F0aW9uU2VydmljZS5nZXRXaW5kb3dDbG9zZSQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgLy8gVE9ETyBoYW5kbGVcbiAgICB9KTtcblxuICAgIC8vIENsb3NlIHdpbmRvdyB3aXRoICdiYWNrJyBidXR0b25cbiAgICB0aGlzLmV4dGVybmFsV2luZG93Q29tbXVuaWNhdGlvblNlcnZpY2VcbiAgICAgIC5nZXRXaW5kb3dSZXR1cm5NZXNzYWdlJCgpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgLy8gVE9ETyBoYW5kbGVcbiAgICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZHMtZm9yLXBhZ2VzLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9zZGstcGF5bWVudC1zeXN0ZW1zL2FwcGxlLXBheS9jb21tYW5kcy1mb3ItcGFnZXMuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVudW0gQ29tbWFuZHNGb3JQYWdlcyB7XG4gIEFQUExFX1BBWV9VUERBVEVfUFJJQ0UgPSAnYXBwbGUtcGF5LXVwZGF0ZS1wcmljZScsXG4gIEFQUExFX1BBWV9SRUNBTENVTEFURV9DQVJUID0gJ2FwcGxlLXBheS1yZWNhbGN1bGF0ZS1jYXJ0JyxcbiAgQVBQTEVfUEFZX1NFTkRfVE9LRU4gPSAnYXBwbGUtcGF5LXNlbmQtdG9rZW4nLFxuICBBUFBMRV9QQVlfUkVUVVJOID0gJ2FwcGxlLXBheS1yZXR1cm4nLFxuICBBUFBMRV9QQVlfV0lORE9XX0NMT1NFID0gJ2FwcGxlLXBheS13aW5kb3ctY2xvc2UnLFxufVxuIl19
@@ -0,0 +1,64 @@
1
+ import { filter, map, tap } from 'rxjs/operators';
2
+ import { Inject, Injectable } from '@angular/core';
3
+ import { windowToken } from '../../../window.token';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../../web-socket/web-socket.factory";
6
+ import * as i2 from "../../../web-socket/socket-bridge/socket-bridge.service";
7
+ export class ApplePayExternalWindowCommunicationService {
8
+ constructor(window, webSocketFactory, socketBridgeService) {
9
+ this.window = window;
10
+ this.webSocketFactory = webSocketFactory;
11
+ this.socketBridgeService = socketBridgeService;
12
+ }
13
+ getWindowClose$() {
14
+ const isWindowCloseMessage = (message) => message.command === "apple-pay-window-close" /* CommandsForPages.APPLE_PAY_WINDOW_CLOSE */;
15
+ const eventSource$ = this.getEventSource(isWindowCloseMessage);
16
+ return eventSource$.pipe(tap(() => {
17
+ this.window.focus();
18
+ }));
19
+ }
20
+ getWindowReturnMessage$() {
21
+ const isReturnMessage = (message) => message.command === "apple-pay-return" /* CommandsForPages.APPLE_PAY_RETURN */;
22
+ const eventSource$ = this.getEventSource(isReturnMessage);
23
+ return eventSource$.pipe(tap(() => {
24
+ // TODO: send close event to sdk
25
+ }));
26
+ }
27
+ getWindowSendTokenMessage$() {
28
+ const isSendTokenMessage = (message) => message.command === "apple-pay-send-token" /* CommandsForPages.APPLE_PAY_SEND_TOKEN */;
29
+ return this.getEventSource(isSendTokenMessage);
30
+ }
31
+ getCartRecalculationMessage$() {
32
+ const isRecalculateCartMessage = (message) => message.command === "apple-pay-recalculate-cart" /* CommandsForPages.APPLE_PAY_RECALCULATE_CART */;
33
+ return this.getEventSource(isRecalculateCartMessage);
34
+ }
35
+ async openWebSocketConnection(token) {
36
+ const bridgeInfo = await this.socketBridgeService.getBridgeConnectionChannel(token);
37
+ if (this.websocketClient) {
38
+ this.websocketClient.close();
39
+ }
40
+ this.websocketClient = this.webSocketFactory.createWebSocketClient(bridgeInfo.subscribeUrl, bridgeInfo.clientType);
41
+ await this.websocketClient.open(bridgeInfo.subscribeUrl, bridgeInfo.channelName);
42
+ }
43
+ async sendMessageToAnotherWindow(command, payload) {
44
+ await this.socketBridgeService.publishMessage(command, payload);
45
+ }
46
+ getEventSource(eventHandler) {
47
+ return this.websocketClient.messages$.pipe(map((message) => {
48
+ console.info('websocket message', message);
49
+ return JSON.parse(message);
50
+ }), filter(eventHandler));
51
+ }
52
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayExternalWindowCommunicationService, deps: [{ token: windowToken }, { token: i1.WebSocketFactory }, { token: i2.SocketBridgeService }], target: i0.ɵɵFactoryTarget.Injectable }); }
53
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayExternalWindowCommunicationService, providedIn: 'root' }); }
54
+ }
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayExternalWindowCommunicationService, decorators: [{
56
+ type: Injectable,
57
+ args: [{
58
+ providedIn: 'root',
59
+ }]
60
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
61
+ type: Inject,
62
+ args: [windowToken]
63
+ }] }, { type: i1.WebSocketFactory }, { type: i2.SocketBridgeService }] });
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtd2luZG93LWNvbW11bmljYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3Nkay1wYXltZW50LXN5c3RlbXMvYXBwbGUtcGF5L2V4dGVybmFsLXdpbmRvdy1jb21tdW5pY2F0aW9uL2V4dGVybmFsLXdpbmRvdy1jb21tdW5pY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7O0FBY3BELE1BQU0sT0FBTywwQ0FBMEM7SUFHckQsWUFDd0MsTUFBc0IsRUFDM0MsZ0JBQWtDLEVBQ2xDLG1CQUF3QztRQUZuQixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUMzQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7SUFDeEQsQ0FBQztJQUVHLGVBQWU7UUFDcEIsTUFBTSxvQkFBb0IsR0FBRyxDQUMzQixPQUFzQixFQUNTLEVBQUUsQ0FDakMsT0FBTyxDQUFDLE9BQU8sMkVBQTRDLENBQUM7UUFFOUQsTUFBTSxZQUFZLEdBQ2hCLElBQUksQ0FBQyxjQUFjLENBQXFCLG9CQUFvQixDQUFDLENBQUM7UUFFaEUsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUN0QixHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVNLHVCQUF1QjtRQUM1QixNQUFNLGVBQWUsR0FBRyxDQUN0QixPQUFzQixFQUNJLEVBQUUsQ0FDNUIsT0FBTyxDQUFDLE9BQU8sK0RBQXNDLENBQUM7UUFFeEQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBZ0IsZUFBZSxDQUFDLENBQUM7UUFFekUsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUN0QixHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsZ0NBQWdDO1FBQ2xDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRU0sMEJBQTBCO1FBQy9CLE1BQU0sa0JBQWtCLEdBQUcsQ0FDekIsT0FBc0IsRUFDZSxFQUFFLENBQ3ZDLE9BQU8sQ0FBQyxPQUFPLHVFQUEwQyxDQUFDO1FBRTVELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBMkIsa0JBQWtCLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRU0sNEJBQTRCO1FBQ2pDLE1BQU0sd0JBQXdCLEdBQUcsQ0FDL0IsT0FBc0IsRUFDYSxFQUFFLENBQ3JDLE9BQU8sQ0FBQyxPQUFPLG1GQUFnRCxDQUFDO1FBRWxFLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FDeEIsd0JBQXdCLENBQ3pCLENBQUM7SUFDSixDQUFDO0lBRU0sS0FBSyxDQUFDLHVCQUF1QixDQUFDLEtBQWE7UUFDaEQsTUFBTSxVQUFVLEdBQ2QsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbkUsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMvQixDQUFDO1FBRUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLENBQ2hFLFVBQVUsQ0FBQyxZQUFZLEVBQ3ZCLFVBQVUsQ0FBQyxVQUFVLENBQ3RCLENBQUM7UUFFRixNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUM3QixVQUFVLENBQUMsWUFBWSxFQUN2QixVQUFVLENBQUMsV0FBVyxDQUN2QixDQUFDO0lBQ0osQ0FBQztJQUVNLEtBQUssQ0FBQywwQkFBMEIsQ0FDckMsT0FBeUIsRUFDekIsT0FBVztRQUVYLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBSSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVPLGNBQWMsQ0FDcEIsWUFBc0Q7UUFFdEQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ3hDLEdBQUcsQ0FBd0IsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNyQyxPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzNDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQWtCLENBQUM7UUFDOUMsQ0FBQyxDQUFDLEVBQ0YsTUFBTSxDQUFtQixZQUFZLENBQUMsQ0FDdkMsQ0FBQztJQUNKLENBQUM7OEdBaEdVLDBDQUEwQyxrQkFJM0MsV0FBVztrSEFKViwwQ0FBMEMsY0FGekMsTUFBTTs7MkZBRVAsMENBQTBDO2tCQUh0RCxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBS0ksTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2ViU29ja2V0RmFjdG9yeSB9IGZyb20gJy4uLy4uLy4uL3dlYi1zb2NrZXQvd2ViLXNvY2tldC5mYWN0b3J5JztcbmltcG9ydCB7IFdlYlNvY2tldENsaWVudCB9IGZyb20gJy4uLy4uLy4uL3dlYi1zb2NrZXQvd2ViLXNvY2tldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgd2luZG93VG9rZW4gfSBmcm9tICcuLi8uLi8uLi93aW5kb3cudG9rZW4nO1xuaW1wb3J0IHsgRXh0ZW5kZWRXaW5kb3cgfSBmcm9tICcuLi8uLi8uLi9leHRlbmRlZC13aW5kb3cuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNvY2tldEJyaWRnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi93ZWItc29ja2V0L3NvY2tldC1icmlkZ2Uvc29ja2V0LWJyaWRnZS5zZXJ2aWNlJztcbmltcG9ydCB7IFdpbmRvd0Nsb3NlTWVzc2FnZSB9IGZyb20gJy4uL3NvY2tldC1tZXNzYWdlcy93aW5kb3ctY2xvc2UtbWVzc2FnZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgV2luZG93Q29tbWFuZCB9IGZyb20gJy4uLy4uLy4uL3dpbmRvdy1jb21tYW5kLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb21tYW5kc0ZvclBhZ2VzIH0gZnJvbSAnLi4vY29tbWFuZHMtZm9yLXBhZ2VzLmVudW0nO1xuaW1wb3J0IHsgQnJpZGdlQ29tbWFuZCB9IGZyb20gJy4uLy4uLy4uL3dlYi1zb2NrZXQvc29ja2V0LWJyaWRnZS9icmlkZ2UtY29tbWFuZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUmVjYWxjdWxhdGVDYXJ0TWVzc2FnZSB9IGZyb20gJy4uL3NvY2tldC1tZXNzYWdlcy9yZWNhbGN1bGF0ZS1jYXJ0LW1lc3NhZ2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFwcGxlUGF5U2VuZFRva2VuTWVzc2FnZSB9IGZyb20gJy4uL3NvY2tldC1tZXNzYWdlcy9zZW5kLXRva2VuLW1lc3NhZ2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJldHVybk1lc3NhZ2UgfSBmcm9tICcuLi9zb2NrZXQtbWVzc2FnZXMvcmV0dXJuLW1lc3NhZ2UuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFwcGxlUGF5RXh0ZXJuYWxXaW5kb3dDb21tdW5pY2F0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgd2Vic29ja2V0Q2xpZW50ITogV2ViU29ja2V0Q2xpZW50O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KHdpbmRvd1Rva2VuKSBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdzogRXh0ZW5kZWRXaW5kb3csXG4gICAgcHJpdmF0ZSByZWFkb25seSB3ZWJTb2NrZXRGYWN0b3J5OiBXZWJTb2NrZXRGYWN0b3J5LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc29ja2V0QnJpZGdlU2VydmljZTogU29ja2V0QnJpZGdlU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIGdldFdpbmRvd0Nsb3NlJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCBXaW5kb3dDbG9zZU1lc3NhZ2U+IHtcbiAgICBjb25zdCBpc1dpbmRvd0Nsb3NlTWVzc2FnZSA9IChcbiAgICAgIG1lc3NhZ2U6IFdpbmRvd0NvbW1hbmRcbiAgICApOiBtZXNzYWdlIGlzIFdpbmRvd0Nsb3NlTWVzc2FnZSA9PlxuICAgICAgbWVzc2FnZS5jb21tYW5kID09PSBDb21tYW5kc0ZvclBhZ2VzLkFQUExFX1BBWV9XSU5ET1dfQ0xPU0U7XG5cbiAgICBjb25zdCBldmVudFNvdXJjZSQgPVxuICAgICAgdGhpcy5nZXRFdmVudFNvdXJjZTxXaW5kb3dDbG9zZU1lc3NhZ2U+KGlzV2luZG93Q2xvc2VNZXNzYWdlKTtcblxuICAgIHJldHVybiBldmVudFNvdXJjZSQucGlwZShcbiAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgIHRoaXMud2luZG93LmZvY3VzKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0V2luZG93UmV0dXJuTWVzc2FnZSQoKTogT2JzZXJ2YWJsZTxSZXR1cm5NZXNzYWdlPiB7XG4gICAgY29uc3QgaXNSZXR1cm5NZXNzYWdlID0gKFxuICAgICAgbWVzc2FnZTogV2luZG93Q29tbWFuZFxuICAgICk6IG1lc3NhZ2UgaXMgUmV0dXJuTWVzc2FnZSA9PlxuICAgICAgbWVzc2FnZS5jb21tYW5kID09PSBDb21tYW5kc0ZvclBhZ2VzLkFQUExFX1BBWV9SRVRVUk47XG5cbiAgICBjb25zdCBldmVudFNvdXJjZSQgPSB0aGlzLmdldEV2ZW50U291cmNlPFJldHVybk1lc3NhZ2U+KGlzUmV0dXJuTWVzc2FnZSk7XG5cbiAgICByZXR1cm4gZXZlbnRTb3VyY2UkLnBpcGUoXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAvLyBUT0RPOiBzZW5kIGNsb3NlIGV2ZW50IHRvIHNka1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldFdpbmRvd1NlbmRUb2tlbk1lc3NhZ2UkKCk6IE9ic2VydmFibGU8QXBwbGVQYXlTZW5kVG9rZW5NZXNzYWdlPiB7XG4gICAgY29uc3QgaXNTZW5kVG9rZW5NZXNzYWdlID0gKFxuICAgICAgbWVzc2FnZTogV2luZG93Q29tbWFuZFxuICAgICk6IG1lc3NhZ2UgaXMgQXBwbGVQYXlTZW5kVG9rZW5NZXNzYWdlID0+XG4gICAgICBtZXNzYWdlLmNvbW1hbmQgPT09IENvbW1hbmRzRm9yUGFnZXMuQVBQTEVfUEFZX1NFTkRfVE9LRU47XG5cbiAgICByZXR1cm4gdGhpcy5nZXRFdmVudFNvdXJjZTxBcHBsZVBheVNlbmRUb2tlbk1lc3NhZ2U+KGlzU2VuZFRva2VuTWVzc2FnZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2FydFJlY2FsY3VsYXRpb25NZXNzYWdlJCgpOiBPYnNlcnZhYmxlPFJlY2FsY3VsYXRlQ2FydE1lc3NhZ2U+IHtcbiAgICBjb25zdCBpc1JlY2FsY3VsYXRlQ2FydE1lc3NhZ2UgPSAoXG4gICAgICBtZXNzYWdlOiBXaW5kb3dDb21tYW5kXG4gICAgKTogbWVzc2FnZSBpcyBSZWNhbGN1bGF0ZUNhcnRNZXNzYWdlID0+XG4gICAgICBtZXNzYWdlLmNvbW1hbmQgPT09IENvbW1hbmRzRm9yUGFnZXMuQVBQTEVfUEFZX1JFQ0FMQ1VMQVRFX0NBUlQ7XG5cbiAgICByZXR1cm4gdGhpcy5nZXRFdmVudFNvdXJjZTxSZWNhbGN1bGF0ZUNhcnRNZXNzYWdlPihcbiAgICAgIGlzUmVjYWxjdWxhdGVDYXJ0TWVzc2FnZVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgb3BlbldlYlNvY2tldENvbm5lY3Rpb24odG9rZW46IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGJyaWRnZUluZm8gPVxuICAgICAgYXdhaXQgdGhpcy5zb2NrZXRCcmlkZ2VTZXJ2aWNlLmdldEJyaWRnZUNvbm5lY3Rpb25DaGFubmVsKHRva2VuKTtcblxuICAgIGlmICh0aGlzLndlYnNvY2tldENsaWVudCkge1xuICAgICAgdGhpcy53ZWJzb2NrZXRDbGllbnQuY2xvc2UoKTtcbiAgICB9XG5cbiAgICB0aGlzLndlYnNvY2tldENsaWVudCA9IHRoaXMud2ViU29ja2V0RmFjdG9yeS5jcmVhdGVXZWJTb2NrZXRDbGllbnQoXG4gICAgICBicmlkZ2VJbmZvLnN1YnNjcmliZVVybCxcbiAgICAgIGJyaWRnZUluZm8uY2xpZW50VHlwZVxuICAgICk7XG5cbiAgICBhd2FpdCB0aGlzLndlYnNvY2tldENsaWVudC5vcGVuKFxuICAgICAgYnJpZGdlSW5mby5zdWJzY3JpYmVVcmwsXG4gICAgICBicmlkZ2VJbmZvLmNoYW5uZWxOYW1lXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZW5kTWVzc2FnZVRvQW5vdGhlcldpbmRvdzxQIGV4dGVuZHMgeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0+KFxuICAgIGNvbW1hbmQ6IENvbW1hbmRzRm9yUGFnZXMsXG4gICAgcGF5bG9hZD86IFBcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5zb2NrZXRCcmlkZ2VTZXJ2aWNlLnB1Ymxpc2hNZXNzYWdlPFA+KGNvbW1hbmQsIHBheWxvYWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFdmVudFNvdXJjZTxUIGV4dGVuZHMgV2luZG93Q29tbWFuZD4oXG4gICAgZXZlbnRIYW5kbGVyOiAobWVzc2FnZTogV2luZG93Q29tbWFuZCkgPT4gbWVzc2FnZSBpcyBUXG4gICk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLndlYnNvY2tldENsaWVudC5tZXNzYWdlcyQucGlwZShcbiAgICAgIG1hcDxzdHJpbmcsIEJyaWRnZUNvbW1hbmQ+KChtZXNzYWdlKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuaW5mbygnd2Vic29ja2V0IG1lc3NhZ2UnLCBtZXNzYWdlKTtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UobWVzc2FnZSkgYXMgQnJpZGdlQ29tbWFuZDtcbiAgICAgIH0pLFxuICAgICAgZmlsdGVyPEJyaWRnZUNvbW1hbmQsIFQ+KGV2ZW50SGFuZGxlcilcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,11 @@
1
+ export const mapShippingAddressToContact = (shippingAddress) => {
2
+ return {
3
+ postalCode: shippingAddress.zip,
4
+ country: shippingAddress.country,
5
+ countryCode: shippingAddress.country,
6
+ administrativeArea: '',
7
+ locality: '',
8
+ newLineItems: [],
9
+ };
10
+ };
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXNoaXBwaW5nLWFkZHJlc3MtdG8tY29udGFjdC5mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3Nkay1wYXltZW50LXN5c3RlbXMvYXBwbGUtcGF5L21hcC1zaGlwcGluZy1hZGRyZXNzLXRvLWNvbnRhY3QuZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FDekMsZUFBZ0MsRUFDUCxFQUFFO0lBQzNCLE9BQU87UUFDTCxVQUFVLEVBQUUsZUFBZSxDQUFDLEdBQUc7UUFDL0IsT0FBTyxFQUFFLGVBQWUsQ0FBQyxPQUFPO1FBQ2hDLFdBQVcsRUFBRSxlQUFlLENBQUMsT0FBTztRQUNwQyxrQkFBa0IsRUFBRSxFQUFFO1FBQ3RCLFFBQVEsRUFBRSxFQUFFO1FBQ1osWUFBWSxFQUFFLEVBQUU7S0FDakIsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxlUGF5U2hpcHBpbmdDb250YWN0IH0gZnJvbSAnLi9zZXNzaW9uLWhhbmRsZXJzL2FwcGxlLXBheS1zZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTaGlwcGluZ0FkZHJlc3MgfSBmcm9tICcuL3NoaXBwaW5nLWFkZHJlc3MuaW50ZXJmYWNlJztcblxuZXhwb3J0IGNvbnN0IG1hcFNoaXBwaW5nQWRkcmVzc1RvQ29udGFjdCA9IChcbiAgc2hpcHBpbmdBZGRyZXNzOiBTaGlwcGluZ0FkZHJlc3Ncbik6IEFwcGxlUGF5U2hpcHBpbmdDb250YWN0ID0+IHtcbiAgcmV0dXJuIHtcbiAgICBwb3N0YWxDb2RlOiBzaGlwcGluZ0FkZHJlc3MuemlwLFxuICAgIGNvdW50cnk6IHNoaXBwaW5nQWRkcmVzcy5jb3VudHJ5LFxuICAgIGNvdW50cnlDb2RlOiBzaGlwcGluZ0FkZHJlc3MuY291bnRyeSxcbiAgICBhZG1pbmlzdHJhdGl2ZUFyZWE6ICcnLFxuICAgIGxvY2FsaXR5OiAnJyxcbiAgICBuZXdMaW5lSXRlbXM6IFtdLFxuICB9O1xufTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjYWxjdWxhdGUtY2FydC1tZXNzYWdlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3Nkay1wYXltZW50LXN5c3RlbXMvYXBwbGUtcGF5L3NvY2tldC1tZXNzYWdlcy9yZWNhbGN1bGF0ZS1jYXJ0LW1lc3NhZ2UuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXaW5kb3dDb21tYW5kIH0gZnJvbSAnLi4vLi4vLi4vd2luZG93LWNvbW1hbmQuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbW1hbmRzRm9yUGFnZXMgfSBmcm9tICcuLi9jb21tYW5kcy1mb3ItcGFnZXMuZW51bSc7XG5pbXBvcnQgeyBTaGlwcGluZ0FkZHJlc3MgfSBmcm9tICcuLi9zaGlwcGluZy1hZGRyZXNzLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjYWxjdWxhdGVDYXJ0TWVzc2FnZSBleHRlbmRzIFdpbmRvd0NvbW1hbmQge1xuICBjb21tYW5kOiBDb21tYW5kc0ZvclBhZ2VzLkFQUExFX1BBWV9SRUNBTENVTEFURV9DQVJUO1xuICBkYXRhOiB7XG4gICAgc2hpcHBpbmdBZGRyZXNzOiBTaGlwcGluZ0FkZHJlc3M7XG4gIH07XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0dXJuLW1lc3NhZ2UuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvc2RrLXBheW1lbnQtc3lzdGVtcy9hcHBsZS1wYXkvc29ja2V0LW1lc3NhZ2VzL3JldHVybi1tZXNzYWdlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV2luZG93Q29tbWFuZCB9IGZyb20gJy4uLy4uLy4uL3dpbmRvdy1jb21tYW5kLmludGVyZmFjZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uQmVoYXZpb3JPcHRpb25zLCBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJldHVybk1lc3NhZ2UgZXh0ZW5kcyBXaW5kb3dDb21tYW5kIHtcbiAgZGF0YToge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBzdGF0ZTogTmF2aWdhdGlvbkJlaGF2aW9yT3B0aW9uc1snc3RhdGUnXTtcbiAgICBxdWVyeVBhcmFtczogUGFyYW1zO1xuICB9O1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC10b2tlbi1tZXNzYWdlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3Nkay1wYXltZW50LXN5c3RlbXMvYXBwbGUtcGF5L3NvY2tldC1tZXNzYWdlcy9zZW5kLXRva2VuLW1lc3NhZ2UuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXaW5kb3dDb21tYW5kIH0gZnJvbSAnLi4vLi4vLi4vd2luZG93LWNvbW1hbmQuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbW1hbmRzRm9yUGFnZXMgfSBmcm9tICcuLi9jb21tYW5kcy1mb3ItcGFnZXMuZW51bSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbGVQYXlTZW5kVG9rZW5NZXNzYWdlIGV4dGVuZHMgV2luZG93Q29tbWFuZCB7XG4gIGNvbW1hbmQ6IENvbW1hbmRzRm9yUGFnZXMuQVBQTEVfUEFZX1NFTkRfVE9LRU47XG4gIGRhdGE6IHtcbiAgICBhcHBsZVBheVRva2VuOiBzdHJpbmc7XG4gIH07XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLXByaWNlLW1lc3NhZ2UuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvc2RrLXBheW1lbnQtc3lzdGVtcy9hcHBsZS1wYXkvc29ja2V0LW1lc3NhZ2VzL3VwZGF0ZS1wcmljZS1tZXNzYWdlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV2luZG93Q29tbWFuZCB9IGZyb20gJy4uLy4uLy4uL3dpbmRvdy1jb21tYW5kLmludGVyZmFjZSc7XG5pbXBvcnQgeyBVcGRhdGVkUHJpY2UgfSBmcm9tICcuLi8uLi9nb29nbGUtcGF5L3VwZGF0ZWQtcHJpY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbW1hbmRzRm9yUGFnZXMgfSBmcm9tICcuLi9jb21tYW5kcy1mb3ItcGFnZXMuZW51bSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlUHJpY2VNZXNzYWdlIGV4dGVuZHMgV2luZG93Q29tbWFuZCB7XG4gIGNvbW1hbmQ6IENvbW1hbmRzRm9yUGFnZXMuQVBQTEVfUEFZX1VQREFURV9QUklDRTtcbiAgZGF0YToge1xuICAgIG5ld0NhcnRQcmljaW5nOiBVcGRhdGVkUHJpY2U7XG4gIH07XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LWNsb3NlLW1lc3NhZ2UuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvc2RrLXBheW1lbnQtc3lzdGVtcy9hcHBsZS1wYXkvc29ja2V0LW1lc3NhZ2VzL3dpbmRvdy1jbG9zZS1tZXNzYWdlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV2luZG93Q29tbWFuZCB9IGZyb20gJy4uLy4uLy4uL3dpbmRvdy1jb21tYW5kLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb21tYW5kc0ZvclBhZ2VzIH0gZnJvbSAnLi4vY29tbWFuZHMtZm9yLXBhZ2VzLmVudW0nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdpbmRvd0Nsb3NlTWVzc2FnZSBleHRlbmRzIFdpbmRvd0NvbW1hbmQge1xuICBjb21tYW5kOiBDb21tYW5kc0ZvclBhZ2VzLkFQUExFX1BBWV9XSU5ET1dfQ0xPU0U7XG59XG4iXX0=
@@ -42,7 +42,7 @@ export class CentrifugoWebSocketService {
42
42
  if (!this.isConnectionOpen) {
43
43
  return;
44
44
  }
45
- this.connection.disconnect();
45
+ this.connection?.disconnect();
46
46
  }
47
47
  get messages$() {
48
48
  return (this.incomingMessages$
@@ -197,4 +197,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
197
197
  providedIn: 'root',
198
198
  }]
199
199
  }], ctorParameters: () => [{ type: i1.ElkLoggerService }] });
200
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VudHJpZnVnby13ZWItc29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS93ZWItc29ja2V0L2NlbnRyaWZ1Z28td2ViLXNvY2tldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBU3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFFL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7OztBQUtwRSxNQUFNLE9BQU8sMEJBQTBCO2FBQ2QsdUNBQWtDLEdBQUcsQ0FBQyxBQUFKLENBQUs7YUFJdEMsZUFBVSxHQUFHO1FBQ25DLFlBQVksRUFBRSxJQUFJO1FBQ2xCLHdCQUF3QixFQUFFLElBQUk7S0FDL0IsQUFIaUMsQ0FHaEM7SUFzQkYsWUFBb0MsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUEzQi9ELFNBQUksR0FBRyxtQkFBbUIsQ0FBQyxVQUFVLENBQUM7UUFRckMsd0JBQW1CLEdBQXlDLElBQUksQ0FBQztRQU9qRSxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFLWixzQkFBaUIsR0FDaEMsSUFBSSxPQUFPLEVBQXNCLENBQUM7UUFFbkIsdUNBQWtDLEdBQ2pELElBQUksT0FBTyxFQUFRLENBQUM7SUFFbUQsQ0FBQztJQUVuRSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQVcsRUFB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Q0FBQyxvQkFBb0IsRUFDekIsQ0FBQztZQUNELE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1FBQzVDLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOzhHQXJSVSwwQkFBMEI7a0hBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzsyRkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgdHlwZSB7XG4gIENlbnRyaWZ1Z2UsXG4gIERpc2Nvbm5lY3RlZENvbnRleHQsXG4gIFB1YmxpY2F0aW9uQ29udGV4dCxcbiAgU3Vic2NyaXB0aW9uIGFzIENlbnRyaWZ1Z2VTdWJzY3JpcHRpb24sXG59IGZyb20gJ2NlbnRyaWZ1Z2UnO1xuaW1wb3J0IHsgU3RyZWFtUG9zaXRpb24sIFN1YnNjcmlwdGlvbk9wdGlvbnMgfSBmcm9tICdjZW50cmlmdWdlL2J1aWxkL3R5cGVzJztcbmltcG9ydCB7IEVsa0xvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi9leGNlcHRpb25zLWhhbmRsaW5nL2Vsay9lbGstbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgV3NFcnJvciB9IGZyb20gJy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZXJyb3JzL3dzLWVycm9yLmNsYXNzJztcbmltcG9ydCB7IEVycm9yVGFncyB9IGZyb20gJy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZXJyb3JzL2Vsay1lcnJvci10eXBlcy5lbnVtJztcbmltcG9ydCB7IFdlYlNvY2tldENsaWVudCB9IGZyb20gJy4vd2ViLXNvY2tldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgV2ViU29ja2V0Q2xpZW50VHlwZSB9IGZyb20gJy4vd2ViLXNvY2tldC1jbGllbnQtdHlwZS5lbnVtJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENlbnRyaWZ1Z29XZWJTb2NrZXRTZXJ2aWNlIGltcGxlbWVudHMgV2ViU29ja2V0Q2xpZW50IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSByZWNvbm5lY3Rpb25UaW1lb3V0SW5jcmVtZW50RmFjdG9yID0gMjtcblxuICBwdWJsaWMgdHlwZSA9IFdlYlNvY2tldENsaWVudFR5cGUuY2VudHJpZnVnbztcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSB0aW1lb3V0c01zID0ge1xuICAgIHJlY29ubmVjdGlvbjogMTAwMCxcbiAgICByZWNvbm5lY3Rpb25NYXhEZXZpYXRpb246IDEwMDAsXG4gIH07XG5cbiAgcHJpdmF0ZSByZWNvbm5lY3Rpb25UaW1lb3V0TXMhOiBudW1iZXI7XG4gIHByaXZhdGUgcmVjb25uZWN0aW9uVGltZXJJZDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IG9wZW5Db25uZWN0aW9uVGltZXJJZDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgY29ubmVjdGlvbiE6IENlbnRyaWZ1Z2U7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uITogQ2VudHJpZnVnZVN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25Qb3NpdGlvbj86IFN0cmVhbVBvc2l0aW9uO1xuICBwcml2YXRlIGlzQ29ubmVjdGlvbk9wZW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBpc0Nvbm5lY3RpbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSB1cmwhOiBzdHJpbmc7XG4gIHByaXZhdGUgY2hhbm5lbCE6IHN0cmluZztcbiAgcHJpdmF0ZSBwcmV2U3Vic2NyaWJlZENoYW5uZWw/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpbmNvbWluZ01lc3NhZ2VzJDogU3ViamVjdDxQdWJsaWNhdGlvbkNvbnRleHQ+ID1cbiAgICBuZXcgU3ViamVjdDxQdWJsaWNhdGlvbkNvbnRleHQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdWNjZXNzZnVsUmVjb25uZWN0aW9uRXZlbnRzUHJveHkkOiBTdWJqZWN0PHZvaWQ+ID1cbiAgICBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGVsa0xvZ2dlclNlcnZpY2U6IEVsa0xvZ2dlclNlcnZpY2UpIHt9XG5cbiAgcHVibGljIGFzeW5jIG9wZW4odXJsOiBzdHJpbmcsIGNoYW5uZWw6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh1cmwgPT09IHRoaXMudXJsICYmIGNoYW5uZWwgPT09IHRoaXMuY2hhbm5lbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB0aGlzLnVybCA9IHVybDtcbiAgICAgIHRoaXMuY2hhbm5lbCA9IGNoYW5uZWw7XG4gICAgICBhd2FpdCB0aGlzLmNyZWF0ZUNvbm5lY3Rpb24odXJsLCBjaGFubmVsKTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBlcnJvciBpcyB1bmtub3duXG4gICAgICBjb25zdCBtZXNzYWdlID0gKGVycm9yPy5tZXNzYWdlIHx8IGVycm9yKSBhcyBzdHJpbmc7XG4gICAgICBjb25zdCB1bmtub3duRXJyb3IgPSBuZXcgV3NFcnJvcihcbiAgICAgICAgYHVua25vd24gd2Vic29ja2V0IGVycm9yOiAke21lc3NhZ2V9YCxcbiAgICAgICAgY2hhbm5lbFxuICAgICAgKTtcblxuICAgICAgdGhpcy5lbGtMb2dnZXJTZXJ2aWNlLmhhbmRsZUVycm9yKHVua25vd25FcnJvcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJSZWNvbm5lY3Rpb25UaW1lcigpO1xuXG4gICAgaWYgKCF0aGlzLmlzQ29ubmVjdGlvbk9wZW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNvbm5lY3Rpb24uZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgcHVibGljIGdldCBtZXNzYWdlcyQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pbmNvbWluZ01lc3NhZ2VzJFxuICAgICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgLy8gZXZlbnQgZG9uJ3QgcmVzcGVjdCB0eXBlIGZyb20gYXJndW1lbnQsIGl0J3Mgd2VpcmRcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtcmV0dXJuXG4gICAgICAgIC5waXBlKG1hcCgoZXZlbnQpID0+IGV2ZW50LmRhdGEpKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3Vic2NyaWJlT25TdWNjZXNzZnVsUmVjb25uZWN0aW9uKG5leHQ/OiAoKSA9PiB2b2lkKTogU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5zdWNjZXNzZnVsUmVjb25uZWN0aW9uRXZlbnRzUHJveHkkXG4gICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgIC5zdWJzY3JpYmUobmV4dCk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyUmVjb25uZWN0aW9uVGltZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjb25uZWN0aW9uVGltZXJJZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMucmVjb25uZWN0aW9uVGltZXJJZCk7XG4gICAgICB0aGlzLnJlY29ubmVjdGlvblRpbWVySWQgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0Rmlyc3RSZWNvbm5lY3Rpb25UaW1lb3V0KCk6IHZvaWQge1xuICAgIGNvbnN0IG1pbiA9XG4gICAgICBDZW50cmlmdWdvV2ViU29ja2V0U2VydmljZS50aW1lb3V0c01zLnJlY29ubmVjdGlvbiAtXG4gICAgICBDZW50cmlmdWdvV2ViU29ja2V0U2VydmljZS50aW1lb3V0c01zLnJlY29ubmVjdGlvbk1heERldmlhdGlvbjtcbiAgICBjb25zdCBtYXggPVxuICAgICAgQ2VudHJpZnVnb1dlYlNvY2tldFNlcnZpY2UudGltZW91dHNNcy5yZWNvbm5lY3Rpb24gK1xuICAgICAgQ2VudHJpZnVnb1dlYlNvY2tldFNlcnZpY2UudGltZW91dHNNcy5yZWNvbm5lY3Rpb25NYXhEZXZpYXRpb247XG4gICAgdGhpcy5yZWNvbm5lY3Rpb25UaW1lb3V0TXMgPVxuICAgICAgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKG1heCAtIG1pbiArIDEpKSArIG1pbjtcbiAgfVxuXG4gIHByaXZhdGUgaW5jcmVtZW50UmVjb25uZWN0aW9uVGltZW91dCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlY29ubmVjdGlvblRpbWVvdXRNcyA9XG4gICAgICB0aGlzLnJlY29ubmVjdGlvblRpbWVvdXRNcyAqXG4gICAgICBDZW50cmlmdWdvV2ViU29ja2V0U2VydmljZS5yZWNvbm5lY3Rpb25UaW1lb3V0SW5jcmVtZW50RmFjdG9yO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRDZW50cmlmdWdvQ2xpZW50KCk6IFByb21pc2U8dHlwZW9mIENlbnRyaWZ1Z2U+IHtcbiAgICByZXR1cm4gaW1wb3J0KCdjZW50cmlmdWdlJykudGhlbigobW9kdWxlKSA9PiBtb2R1bGUuQ2VudHJpZnVnZSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNyZWF0ZUNvbm5lY3Rpb24oXG4gICAgdXJsPzogc3RyaW5nLFxuICAgIGNoYW5uZWw/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuaXNDb25uZWN0aW9uT3BlbiB8fCB0aGlzLmlzQ29ubmVjdGluZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICBjb25zdCBDZW50cmlmdWdlQ2xpZW50ID0gYXdhaXQgdGhpcy5nZXRDZW50cmlmdWdvQ2xpZW50KCk7XG5cbiAgICBjb25zdCB3ZWJzb2NrZXRVcmwgPSB1cmwgPz8gdGhpcy51cmw7XG4gICAgY29uc3Qgd2Vic29ja2V0Q2hhbm5lbCA9IGNoYW5uZWwgPz8gdGhpcy5jaGFubmVsO1xuXG4gICAgdGhpcy5jb25uZWN0aW9uID0gbmV3IENlbnRyaWZ1Z2VDbGllbnQod2Vic29ja2V0VXJsLCB7XG4gICAgICBkZWJ1ZzogdHJ1ZSxcbiAgICAgIG1heFJlY29ubmVjdERlbGF5OiAxNTAwLFxuICAgICAgbWF4U2VydmVyUGluZ0RlbGF5OiAxMDAwLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuY29ubmVjdGlvblxuICAgICAgICAub24oJ2Nvbm5lY3RpbmcnLCAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pc0Nvbm5lY3RpbmcgPSB0cnVlO1xuICAgICAgICB9KVxuICAgICAgICAub24oJ2Nvbm5lY3RlZCcsICgpID0+IHtcbiAgICAgICAgICB0aGlzLm9uQ29ubmVjdCgpO1xuICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfSlcbiAgICAgICAgLm9uKCdkaXNjb25uZWN0ZWQnLCAoY3R4KSA9PiB7XG4gICAgICAgICAgdGhpcy5vbkRpc2Nvbm5lY3QoY3R4LCB3ZWJzb2NrZXRDaGFubmVsKTtcbiAgICAgICAgICByZWplY3QoKTtcbiAgICAgICAgfSlcbiAgICAgICAgLm9uKCdlcnJvcicsIChjdHgpID0+IHtcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYGNvZGUgJHtjdHguZXJyb3IuY29kZX0gLSAke2N0eC5lcnJvci5tZXNzYWdlfWA7XG5cbiAgICAgICAgICB0aGlzLmVsa0xvZ2dlclNlcnZpY2UubG9nKFxuICAgICAgICAgICAgYGNvbm5lY3Rpb24gZXJyb3I6ICR7bWVzc2FnZX1gLFxuICAgICAgICAgICAgW0Vycm9yVGFncy5XU10sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNoYW5uZWw6IHdlYnNvY2tldENoYW5uZWwsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNvbm5lY3QoKTtcblxuICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmNvbm5lY3Rpb24ubmV3U3Vic2NyaXB0aW9uKFxuICAgICAgICB3ZWJzb2NrZXRDaGFubmVsLFxuICAgICAgICB0aGlzLmdldFN1YnNjcmlwdGlvbk9wdGlvbnMod2Vic29ja2V0Q2hhbm5lbClcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uXG4gICAgICAgIC5vbignc3Vic2NyaWJlZCcsIChjdHgpID0+IHtcbiAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvblBvc2l0aW9uID0gY3R4LnN0cmVhbVBvc2l0aW9uO1xuICAgICAgICAgIHRoaXMucHJldlN1YnNjcmliZWRDaGFubmVsID0gd2Vic29ja2V0Q2hhbm5lbDtcbiAgICAgICAgfSlcbiAgICAgICAgLm9uKCdwdWJsaWNhdGlvbicsIChjdHgpID0+IHtcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gY3R4LmRhdGEgYXMgc3RyaW5nO1xuXG4gICAgICAgICAgdGhpcy5lbGtMb2dnZXJTZXJ2aWNlLmxvZyhcbiAgICAgICAgICAgIGB3ZWJzb2NrZXQgbWVzc2FnZSByZWNlaXZlZDogJHttZXNzYWdlfWAsXG4gICAgICAgICAgICBbRXJyb3JUYWdzLldTXSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2hhbm5lbDogd2Vic29ja2V0Q2hhbm5lbCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuXG4gICAgICAgICAgdGhpcy5pbmNvbWluZ01lc3NhZ2VzJC5uZXh0KGN0eCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5vbignZXJyb3InLCAoY3R4KSA9PiB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBjb2RlICR7Y3R4LmVycm9yLmNvZGV9IC0gJHtjdHguZXJyb3IubWVzc2FnZX1gO1xuXG4gICAgICAgICAgdGhpcy5lbGtMb2dnZXJTZXJ2aWNlLmxvZyhcbiAgICAgICAgICAgIGBzdWJzY3JpcHRpb24gZXJyb3I6ICR7bWVzc2FnZX1gLFxuICAgICAgICAgICAgW0Vycm9yVGFncy5XU10sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNoYW5uZWw6IHdlYnNvY2tldENoYW5uZWwsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfSlcbiAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkNvbm5lY3QoKTogdm9pZCB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMub3BlbkNvbm5lY3Rpb25UaW1lcklkKTtcbiAgICB0aGlzLmlzQ29ubmVjdGluZyA9IGZhbHNlO1xuICAgIHRoaXMuaXNDb25uZWN0aW9uT3BlbiA9IHRydWU7XG4gIH1cblxuICBwcml2YXRlIG9uRGlzY29ubmVjdChcbiAgICBjdHg6IERpc2Nvbm5lY3RlZENvbnRleHQsXG4gICAgd2Vic29ja2V0Q2hhbm5lbDogc3RyaW5nXG4gICk6IHZvaWQge1xuICAgIHRoaXMuaXNDb25uZWN0aW5nID0gZmFsc2U7XG4gICAgdGhpcy5pc0Nvbm5lY3Rpb25PcGVuID0gZmFsc2U7XG5cbiAgICAvKiBJZiBjb25uZWN0aW9uIGVycm9yLCBjYXVzZSBhbnkgY29ubmVjdGlvbiBlcnJvciBpc24ndCAwICovXG4gICAgaWYgKGN0eC5jb2RlICE9PSAwKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYGNvZGUgJHtjdHguY29kZX0gLSAke2N0eC5yZWFzb259YDtcblxuICAgICAgdGhpcy5lbGtMb2dnZXJTZXJ2aWNlLmxvZyhcbiAgICAgICAgYGRpc2Nvbm5lY3RlZCBlcnJvcjogJHttZXNzYWdlfWAsXG4gICAgICAgIFtFcnJvclRhZ3MuV1NdLFxuICAgICAgICB7XG4gICAgICAgICAgY2hhbm5lbDogd2Vic29ja2V0Q2hhbm5lbCxcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgKGFzeW5jICgpID0+IHtcbiAgICAgICAgYXdhaXQgdGhpcy53YWl0V2hpbGVOb3RSZWNvbm5lY3QoKTtcbiAgICAgIH0pKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZWNvbm5lY3QoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdGhpcy5jbGVhclJlY29ubmVjdGlvblRpbWVyKCk7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIHRoaXMucmVjb25uZWN0aW9uVGltZXJJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmNyZWF0ZUNvbm5lY3Rpb24oKVxuICAgICAgICAgIC50aGVuKCgpID0+IHJlc29sdmUodHJ1ZSkpXG4gICAgICAgICAgLmNhdGNoKCgpID0+IHJlc29sdmUoZmFsc2UpKTtcbiAgICAgICAgdGhpcy5pbmNyZW1lbnRSZWNvbm5lY3Rpb25UaW1lb3V0KCk7XG4gICAgICB9LCB0aGlzLnJlY29ubmVjdGlvblRpbWVvdXRNcyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHdhaXRXaGlsZU5vdFJlY29ubmVjdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmNsZWFyUmVjb25uZWN0aW9uVGltZXIoKTtcbiAgICB0aGlzLnNldEZpcnN0UmVjb25uZWN0aW9uVGltZW91dCgpO1xuXG4gICAgbGV0IGlzQ29ubmVjdGVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBiZWZvcmVUaW1lciA9IHBlcmZvcm1hbmNlLm5vdygpO1xuXG4gICAgd2hpbGUgKCFpc0Nvbm5lY3RlZCkge1xuICAgICAgaXNDb25uZWN0ZWQgPSBhd2FpdCB0aGlzLnJlY29ubmVjdCgpO1xuICAgIH1cblxuICAgIGNvbnN0IGFmdGVyVGltZXIgPSBwZXJmb3JtYW5jZS5ub3coKTtcblxuICAgIGNvbnN0IHRpbWVyRHVyYXRpb24gPSBhZnRlclRpbWVyIC0gYmVmb3JlVGltZXI7XG5cbiAgICB0aGlzLmVsa0xvZ2dlclNlcnZpY2UubG9nKFxuICAgICAgYGZhbGxiYWNrIHRvIHJlY29ubmVjdGlvbiB0aW1lcjogZHVyYXRpb24gJHt0aW1lckR1cmF0aW9ufW1zYCxcbiAgICAgIFtFcnJvclRhZ3MuV1NdLFxuICAgICAge1xuICAgICAgICBjaGFubmVsOiB0aGlzLmNoYW5uZWwsXG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMuc3VjY2Vzc2Z1bFJlY29ubmVjdGlvbkV2ZW50c1Byb3h5JC5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIGdldFN1YnNjcmlwdGlvbk9wdGlvbnMoXG4gICAgd2Vic29ja2V0Q2hhbm5lbDogc3RyaW5nXG4gICk6IFBhcnRpYWw8U3Vic2NyaXB0aW9uT3B0aW9ucz4ge1xuICAgIGNvbnN0IG9wdGlvbnM6IFBhcnRpYWw8U3Vic2NyaXB0aW9uT3B0aW9ucz4gPSB7XG4gICAgICByZWNvdmVyYWJsZTogdHJ1ZSxcbiAgICB9O1xuXG4gICAgaWYgKFxuICAgICAgd2Vic29ja2V0Q2hhbm5lbCA9PT0gdGhpcy5wcmV2U3Vic2NyaWJlZENoYW5uZWwgJiZcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uUG9zaXRpb25cbiAgICApIHtcbiAgICAgIG9wdGlvbnMuc2luY2UgPSB0aGlzLnN1YnNjcmlwdGlvblBvc2l0aW9uO1xuICAgIH1cblxuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG59XG4iXX0=
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VudHJpZnVnby13ZWItc29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS93ZWItc29ja2V0L2NlbnRyaWZ1Z28td2ViLXNvY2tldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBU3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFFL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7OztBQUtwRSxNQUFNLE9BQU8sMEJBQTBCO2FBQ2QsdUNBQWtDLEdBQUcsQ0FBQyxBQUFKLENBQUs7YUFJdEMsZUFBVSxHQUFHO1FBQ25DLFlBQVksRUFBRSxJQUFJO1FBQ2xCLHdCQUF3QixFQUFFLElBQUk7S0FDL0IsQUFIaUMsQ0FHaEM7SUFzQkYsWUFBb0MsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUEzQi9ELFNBQUksR0FBRyxtQkFBbUIsQ0FBQyxVQUFVLENBQUM7UUFRckMsd0JBQW1CLEdBQXlDLElBQUksQ0FBQztRQU9qRSxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFLWixzQkFBaUIsR0FDaEMsSUFBSSxPQUFPLEVBQXNCLENBQUM7UUFFbkIsdUNBQWtDLEdBQ2pELElBQUksT0FBTyxFQUFRLENBQUM7SUFFbUQsQ0FBQztJQUVuRSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQVcsRUFB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Q0FBQyxvQkFBb0IsRUFDekIsQ0FBQztZQUNELE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1FBQzVDLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOzhHQXJSVSwwQkFBMEI7a0hBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzsyRkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgdHlwZSB7XG4gIENlbnRyaWZ1Z2UsXG4gIERpc2Nvbm5lY3RlZENvbnRleHQsXG4gIFB1YmxpY2F0aW9uQ29udGV4dCxcbiAgU3Vic2NyaXB0aW9uIGFzIENlbnRyaWZ1Z2VTdWJzY3JpcHRpb24sXG59IGZyb20gJ2NlbnRyaWZ1Z2UnO1xuaW1wb3J0IHsgU3RyZWFtUG9zaXRpb24sIFN1YnNjcmlwdGlvbk9wdGlvbnMgfSBmcm9tICdjZW50cmlmdWdlL2J1aWxkL3R5cGVzJztcbmltcG9ydCB7IEVsa0xvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi9leGNlcHRpb25zLWhhbmRsaW5nL2Vsay9lbGstbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgV3NFcnJvciB9IGZyb20gJy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZXJyb3JzL3dzLWVycm9yLmNsYXNzJztcbmltcG9ydCB7IEVycm9yVGFncyB9IGZyb20gJy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZXJyb3JzL2Vsay1lcnJvci10eXBlcy5lbnVtJztcbmltcG9ydCB7IFdlYlNvY2tldENsaWVudCB9IGZyb20gJy4vd2ViLXNvY2tldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgV2ViU29ja2V0Q2xpZW50VHlwZSB9IGZyb20gJy4vd2ViLXNvY2tldC1jbGllbnQtdHlwZS5lbnVtJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENlbnRyaWZ1Z29XZWJTb2NrZXRTZXJ2aWNlIGltcGxlbWVudHMgV2ViU29ja2V0Q2xpZW50IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSByZWNvbm5lY3Rpb25UaW1lb3V0SW5jcmVtZW50RmFjdG9yID0gMjtcblxuICBwdWJsaWMgdHlwZSA9IFdlYlNvY2tldENsaWVudFR5cGUuY2VudHJpZnVnbztcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSB0aW1lb3V0c01zID0ge1xuICAgIHJlY29ubmVjdGlvbjogMTAwMCxcbiAgICByZWNvbm5lY3Rpb25NYXhEZXZpYXRpb246IDEwMDAsXG4gIH07XG5cbiAgcHJpdmF0ZSByZWNvbm5lY3Rpb25UaW1lb3V0TXMhOiBudW1iZXI7XG4gIHByaXZhdGUgcmVjb25uZWN0aW9uVGltZXJJZDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IG9wZW5Db25uZWN0aW9uVGltZXJJZDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgY29ubmVjdGlvbiE6IENlbnRyaWZ1Z2U7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uITogQ2VudHJpZnVnZVN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25Qb3NpdGlvbj86IFN0cmVhbVBvc2l0aW9uO1xuICBwcml2YXRlIGlzQ29ubmVjdGlvbk9wZW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBpc0Nvbm5lY3RpbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSB1cmwhOiBzdHJpbmc7XG4gIHByaXZhdGUgY2hhbm5lbCE6IHN0cmluZztcbiAgcHJpdmF0ZSBwcmV2U3Vic2NyaWJlZENoYW5uZWw/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpbmNvbWluZ01lc3NhZ2VzJDogU3ViamVjdDxQdWJsaWNhdGlvbkNvbnRleHQ+ID1cbiAgICBuZXcgU3ViamVjdDxQdWJsaWNhdGlvbkNvbnRleHQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdWNjZXNzZnVsUmVjb25uZWN0aW9uRXZlbnRzUHJveHkkOiBTdWJqZWN0PHZvaWQ+ID1cbiAgICBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGVsa0xvZ2dlclNlcnZpY2U6IEVsa0xvZ2dlclNlcnZpY2UpIHt9XG5cbiAgcHVibGljIGFzeW5jIG9wZW4odXJsOiBzdHJpbmcsIGNoYW5uZWw6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh1cmwgPT09IHRoaXMudXJsICYmIGNoYW5uZWwgPT09IHRoaXMuY2hhbm5lbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB0aGlzLnVybCA9IHVybDtcbiAgICAgIHRoaXMuY2hhbm5lbCA9IGNoYW5uZWw7XG4gICAgICBhd2FpdCB0aGlzLmNyZWF0ZUNvbm5lY3Rpb24odXJsLCBjaGFubmVsKTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBlcnJvciBpcyB1bmtub3duXG4gICAgICBjb25zdCBtZXNzYWdlID0gKGVycm9yPy5tZXNzYWdlIHx8IGVycm9yKSBhcyBzdHJpbmc7XG4gICAgICBjb25zdCB1bmtub3duRXJyb3IgPSBuZXcgV3NFcnJvcihcbiAgICAgICAgYHVua25vd24gd2Vic29ja2V0IGVycm9yOiAke21lc3NhZ2V9YCxcbiAgICAgICAgY2hhbm5lbFxuICAgICAgKTtcblxuICAgICAgdGhpcy5lbGtMb2dnZXJTZXJ2aWNlLmhhbmRsZUVycm9yKHVua25vd25FcnJvcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJSZWNvbm5lY3Rpb25UaW1lcigpO1xuXG4gICAgaWYgKCF0aGlzLmlzQ29ubmVjdGlvbk9wZW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNvbm5lY3Rpb24/LmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbWVzc2FnZXMkKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuaW5jb21pbmdNZXNzYWdlcyRcbiAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgIC8vIGV2ZW50IGRvbid0IHJlc3BlY3QgdHlwZSBmcm9tIGFyZ3VtZW50LCBpdCdzIHdlaXJkXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLXJldHVyblxuICAgICAgICAucGlwZShtYXAoKGV2ZW50KSA9PiBldmVudC5kYXRhKSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN1YnNjcmliZU9uU3VjY2Vzc2Z1bFJlY29ubmVjdGlvbihuZXh0PzogKCkgPT4gdm9pZCk6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuc3VjY2Vzc2Z1bFJlY29ubmVjdGlvbkV2ZW50c1Byb3h5JFxuICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAuc3Vic2NyaWJlKG5leHQpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhclJlY29ubmVjdGlvblRpbWVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlY29ubmVjdGlvblRpbWVySWQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnJlY29ubmVjdGlvblRpbWVySWQpO1xuICAgICAgdGhpcy5yZWNvbm5lY3Rpb25UaW1lcklkID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEZpcnN0UmVjb25uZWN0aW9uVGltZW91dCgpOiB2b2lkIHtcbiAgICBjb25zdCBtaW4gPVxuICAgICAgQ2VudHJpZnVnb1dlYlNvY2tldFNlcnZpY2UudGltZW91dHNNcy5yZWNvbm5lY3Rpb24gLVxuICAgICAgQ2VudHJpZnVnb1dlYlNvY2tldFNlcnZpY2UudGltZW91dHNNcy5yZWNvbm5lY3Rpb25NYXhEZXZpYXRpb247XG4gICAgY29uc3QgbWF4ID1cbiAgICAgIENlbnRyaWZ1Z29XZWJTb2NrZXRTZXJ2aWNlLnRpbWVvdXRzTXMucmVjb25uZWN0aW9uICtcbiAgICAgIENlbnRyaWZ1Z29XZWJTb2NrZXRTZXJ2aWNlLnRpbWVvdXRzTXMucmVjb25uZWN0aW9uTWF4RGV2aWF0aW9uO1xuICAgIHRoaXMucmVjb25uZWN0aW9uVGltZW91dE1zID1cbiAgICAgIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIChtYXggLSBtaW4gKyAxKSkgKyBtaW47XG4gIH1cblxuICBwcml2YXRlIGluY3JlbWVudFJlY29ubmVjdGlvblRpbWVvdXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZWNvbm5lY3Rpb25UaW1lb3V0TXMgPVxuICAgICAgdGhpcy5yZWNvbm5lY3Rpb25UaW1lb3V0TXMgKlxuICAgICAgQ2VudHJpZnVnb1dlYlNvY2tldFNlcnZpY2UucmVjb25uZWN0aW9uVGltZW91dEluY3JlbWVudEZhY3RvcjtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0Q2VudHJpZnVnb0NsaWVudCgpOiBQcm9taXNlPHR5cGVvZiBDZW50cmlmdWdlPiB7XG4gICAgcmV0dXJuIGltcG9ydCgnY2VudHJpZnVnZScpLnRoZW4oKG1vZHVsZSkgPT4gbW9kdWxlLkNlbnRyaWZ1Z2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjcmVhdGVDb25uZWN0aW9uKFxuICAgIHVybD86IHN0cmluZyxcbiAgICBjaGFubmVsPzogc3RyaW5nXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmlzQ29ubmVjdGlvbk9wZW4gfHwgdGhpcy5pc0Nvbm5lY3RpbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgY29uc3QgQ2VudHJpZnVnZUNsaWVudCA9IGF3YWl0IHRoaXMuZ2V0Q2VudHJpZnVnb0NsaWVudCgpO1xuXG4gICAgY29uc3Qgd2Vic29ja2V0VXJsID0gdXJsID8/IHRoaXMudXJsO1xuICAgIGNvbnN0IHdlYnNvY2tldENoYW5uZWwgPSBjaGFubmVsID8/IHRoaXMuY2hhbm5lbDtcblxuICAgIHRoaXMuY29ubmVjdGlvbiA9IG5ldyBDZW50cmlmdWdlQ2xpZW50KHdlYnNvY2tldFVybCwge1xuICAgICAgZGVidWc6IHRydWUsXG4gICAgICBtYXhSZWNvbm5lY3REZWxheTogMTUwMCxcbiAgICAgIG1heFNlcnZlclBpbmdEZWxheTogMTAwMCxcbiAgICB9KTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLmNvbm5lY3Rpb25cbiAgICAgICAgLm9uKCdjb25uZWN0aW5nJywgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNDb25uZWN0aW5nID0gdHJ1ZTtcbiAgICAgICAgfSlcbiAgICAgICAgLm9uKCdjb25uZWN0ZWQnLCAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5vbkNvbm5lY3QoKTtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5vbignZGlzY29ubmVjdGVkJywgKGN0eCkgPT4ge1xuICAgICAgICAgIHRoaXMub25EaXNjb25uZWN0KGN0eCwgd2Vic29ja2V0Q2hhbm5lbCk7XG4gICAgICAgICAgcmVqZWN0KCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5vbignZXJyb3InLCAoY3R4KSA9PiB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBjb2RlICR7Y3R4LmVycm9yLmNvZGV9IC0gJHtjdHguZXJyb3IubWVzc2FnZX1gO1xuXG4gICAgICAgICAgdGhpcy5lbGtMb2dnZXJTZXJ2aWNlLmxvZyhcbiAgICAgICAgICAgIGBjb25uZWN0aW9uIGVycm9yOiAke21lc3NhZ2V9YCxcbiAgICAgICAgICAgIFtFcnJvclRhZ3MuV1NdLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjaGFubmVsOiB3ZWJzb2NrZXRDaGFubmVsLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jb25uZWN0KCk7XG5cbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5jb25uZWN0aW9uLm5ld1N1YnNjcmlwdGlvbihcbiAgICAgICAgd2Vic29ja2V0Q2hhbm5lbCxcbiAgICAgICAgdGhpcy5nZXRTdWJzY3JpcHRpb25PcHRpb25zKHdlYnNvY2tldENoYW5uZWwpXG4gICAgICApO1xuXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvblxuICAgICAgICAub24oJ3N1YnNjcmliZWQnLCAoY3R4KSA9PiB7XG4gICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25Qb3NpdGlvbiA9IGN0eC5zdHJlYW1Qb3NpdGlvbjtcbiAgICAgICAgICB0aGlzLnByZXZTdWJzY3JpYmVkQ2hhbm5lbCA9IHdlYnNvY2tldENoYW5uZWw7XG4gICAgICAgIH0pXG4gICAgICAgIC5vbigncHVibGljYXRpb24nLCAoY3R4KSA9PiB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGN0eC5kYXRhIGFzIHN0cmluZztcblxuICAgICAgICAgIHRoaXMuZWxrTG9nZ2VyU2VydmljZS5sb2coXG4gICAgICAgICAgICBgd2Vic29ja2V0IG1lc3NhZ2UgcmVjZWl2ZWQ6ICR7bWVzc2FnZX1gLFxuICAgICAgICAgICAgW0Vycm9yVGFncy5XU10sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNoYW5uZWw6IHdlYnNvY2tldENoYW5uZWwsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHRoaXMuaW5jb21pbmdNZXNzYWdlcyQubmV4dChjdHgpO1xuICAgICAgICB9KVxuICAgICAgICAub24oJ2Vycm9yJywgKGN0eCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgY29kZSAke2N0eC5lcnJvci5jb2RlfSAtICR7Y3R4LmVycm9yLm1lc3NhZ2V9YDtcblxuICAgICAgICAgIHRoaXMuZWxrTG9nZ2VyU2VydmljZS5sb2coXG4gICAgICAgICAgICBgc3Vic2NyaXB0aW9uIGVycm9yOiAke21lc3NhZ2V9YCxcbiAgICAgICAgICAgIFtFcnJvclRhZ3MuV1NdLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjaGFubmVsOiB3ZWJzb2NrZXRDaGFubmVsLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH0pXG4gICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb25Db25uZWN0KCk6IHZvaWQge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLm9wZW5Db25uZWN0aW9uVGltZXJJZCk7XG4gICAgdGhpcy5pc0Nvbm5lY3RpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmlzQ29ubmVjdGlvbk9wZW4gPSB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkRpc2Nvbm5lY3QoXG4gICAgY3R4OiBEaXNjb25uZWN0ZWRDb250ZXh0LFxuICAgIHdlYnNvY2tldENoYW5uZWw6IHN0cmluZ1xuICApOiB2b2lkIHtcbiAgICB0aGlzLmlzQ29ubmVjdGluZyA9IGZhbHNlO1xuICAgIHRoaXMuaXNDb25uZWN0aW9uT3BlbiA9IGZhbHNlO1xuXG4gICAgLyogSWYgY29ubmVjdGlvbiBlcnJvciwgY2F1c2UgYW55IGNvbm5lY3Rpb24gZXJyb3IgaXNuJ3QgMCAqL1xuICAgIGlmIChjdHguY29kZSAhPT0gMCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBjb2RlICR7Y3R4LmNvZGV9IC0gJHtjdHgucmVhc29ufWA7XG5cbiAgICAgIHRoaXMuZWxrTG9nZ2VyU2VydmljZS5sb2coXG4gICAgICAgIGBkaXNjb25uZWN0ZWQgZXJyb3I6ICR7bWVzc2FnZX1gLFxuICAgICAgICBbRXJyb3JUYWdzLldTXSxcbiAgICAgICAge1xuICAgICAgICAgIGNoYW5uZWw6IHdlYnNvY2tldENoYW5uZWwsXG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICAgIChhc3luYyAoKSA9PiB7XG4gICAgICAgIGF3YWl0IHRoaXMud2FpdFdoaWxlTm90UmVjb25uZWN0KCk7XG4gICAgICB9KSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVjb25uZWN0KCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRoaXMuY2xlYXJSZWNvbm5lY3Rpb25UaW1lcigpO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICB0aGlzLnJlY29ubmVjdGlvblRpbWVySWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5jcmVhdGVDb25uZWN0aW9uKClcbiAgICAgICAgICAudGhlbigoKSA9PiByZXNvbHZlKHRydWUpKVxuICAgICAgICAgIC5jYXRjaCgoKSA9PiByZXNvbHZlKGZhbHNlKSk7XG4gICAgICAgIHRoaXMuaW5jcmVtZW50UmVjb25uZWN0aW9uVGltZW91dCgpO1xuICAgICAgfSwgdGhpcy5yZWNvbm5lY3Rpb25UaW1lb3V0TXMpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB3YWl0V2hpbGVOb3RSZWNvbm5lY3QoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jbGVhclJlY29ubmVjdGlvblRpbWVyKCk7XG4gICAgdGhpcy5zZXRGaXJzdFJlY29ubmVjdGlvblRpbWVvdXQoKTtcblxuICAgIGxldCBpc0Nvbm5lY3RlZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgYmVmb3JlVGltZXIgPSBwZXJmb3JtYW5jZS5ub3coKTtcblxuICAgIHdoaWxlICghaXNDb25uZWN0ZWQpIHtcbiAgICAgIGlzQ29ubmVjdGVkID0gYXdhaXQgdGhpcy5yZWNvbm5lY3QoKTtcbiAgICB9XG5cbiAgICBjb25zdCBhZnRlclRpbWVyID0gcGVyZm9ybWFuY2Uubm93KCk7XG5cbiAgICBjb25zdCB0aW1lckR1cmF0aW9uID0gYWZ0ZXJUaW1lciAtIGJlZm9yZVRpbWVyO1xuXG4gICAgdGhpcy5lbGtMb2dnZXJTZXJ2aWNlLmxvZyhcbiAgICAgIGBmYWxsYmFjayB0byByZWNvbm5lY3Rpb24gdGltZXI6IGR1cmF0aW9uICR7dGltZXJEdXJhdGlvbn1tc2AsXG4gICAgICBbRXJyb3JUYWdzLldTXSxcbiAgICAgIHtcbiAgICAgICAgY2hhbm5lbDogdGhpcy5jaGFubmVsLFxuICAgICAgfVxuICAgICk7XG5cbiAgICB0aGlzLnN1Y2Nlc3NmdWxSZWNvbm5lY3Rpb25FdmVudHNQcm94eSQubmV4dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTdWJzY3JpcHRpb25PcHRpb25zKFxuICAgIHdlYnNvY2tldENoYW5uZWw6IHN0cmluZ1xuICApOiBQYXJ0aWFsPFN1YnNjcmlwdGlvbk9wdGlvbnM+IHtcbiAgICBjb25zdCBvcHRpb25zOiBQYXJ0aWFsPFN1YnNjcmlwdGlvbk9wdGlvbnM+ID0ge1xuICAgICAgcmVjb3ZlcmFibGU6IHRydWUsXG4gICAgfTtcblxuICAgIGlmIChcbiAgICAgIHdlYnNvY2tldENoYW5uZWwgPT09IHRoaXMucHJldlN1YnNjcmliZWRDaGFubmVsICYmXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvblBvc2l0aW9uXG4gICAgKSB7XG4gICAgICBvcHRpb25zLnNpbmNlID0gdGhpcy5zdWJzY3JpcHRpb25Qb3NpdGlvbjtcbiAgICB9XG5cbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlLWNvbW1hbmQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvd2ViLXNvY2tldC9zb2NrZXQtYnJpZGdlL2JyaWRnZS1jb21tYW5kLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV2luZG93Q29tbWFuZCB9IGZyb20gJy4uLy4uL3dpbmRvdy1jb21tYW5kLmludGVyZmFjZSc7XG5cbmV4cG9ydCB0eXBlIEJyaWRnZUNvbW1hbmQ8VCA9IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9PiA9IFdpbmRvd0NvbW1hbmQ8VD47XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlLWNvbm5lY3Rpb24tY2hhbm5lbC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS93ZWItc29ja2V0L3NvY2tldC1icmlkZ2UvYnJpZGdlLWNvbm5lY3Rpb24tY2hhbm5lbC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdlYlNvY2tldENsaWVudFR5cGUgfSBmcm9tICcuLi93ZWItc29ja2V0LWNsaWVudC10eXBlLmVudW0nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJyaWRnZUNvbm5lY3Rpb25DaGFubmVsIHtcbiAgY2hhbm5lbE5hbWU6IHN0cmluZztcbiAgc3Vic2NyaWJlVXJsOiBzdHJpbmc7XG4gIGNsaWVudFR5cGU6IFdlYlNvY2tldENsaWVudFR5cGU7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlLXJlcXVlc3QtcGF5bG9hZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS93ZWItc29ja2V0L3NvY2tldC1icmlkZ2UvYnJpZGdlLXJlcXVlc3QtcGF5bG9hZC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyaWRnZUNvbW1hbmQgfSBmcm9tICcuL2JyaWRnZS1jb21tYW5kLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnJpZGdlUmVxdWVzdE1lc3NhZ2VQYXlsb2FkPFQ+IHtcbiAgbWVzc2FnZTogQnJpZGdlQ29tbWFuZDxUPjtcbn1cbiJdfQ==