@xsolla/payment-client-core 0.2.55 → 0.2.57

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 (38) hide show
  1. package/esm2022/lib/core/sdk-payment-systems/apple-pay/apple-pay-cart/apple-pay-cart.service.mjs +40 -9
  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/session-handlers/apple-pay-session.interface.mjs +1 -1
  7. package/esm2022/lib/core/sdk-payment-systems/apple-pay/socket-messages/recalculate-cart-message.interface.mjs +2 -0
  8. package/esm2022/lib/core/sdk-payment-systems/apple-pay/socket-messages/return-message.interface.mjs +2 -0
  9. package/esm2022/lib/core/sdk-payment-systems/apple-pay/socket-messages/send-token-message.interface.mjs +2 -0
  10. package/esm2022/lib/core/sdk-payment-systems/apple-pay/socket-messages/update-price-message.interface.mjs +2 -0
  11. package/esm2022/lib/core/sdk-payment-systems/apple-pay/socket-messages/window-close-message.interface.mjs +2 -0
  12. package/esm2022/lib/core/web-socket/centrifugo-web-socket.service.mjs +2 -2
  13. package/esm2022/lib/core/web-socket/socket-bridge/bridge-command.interface.mjs +2 -0
  14. package/esm2022/lib/core/web-socket/socket-bridge/bridge-connection-channel.interface.mjs +2 -0
  15. package/esm2022/lib/core/web-socket/socket-bridge/bridge-request-payload.interface.mjs +2 -0
  16. package/esm2022/lib/core/web-socket/socket-bridge/socket-bridge.service.mjs +40 -0
  17. package/esm2022/lib/core/window-command.interface.mjs +2 -0
  18. package/fesm2022/xsolla-payment-client-core.mjs +182 -13
  19. package/fesm2022/xsolla-payment-client-core.mjs.map +1 -1
  20. package/lib/core/sdk-payment-systems/apple-pay/apple-pay-cart/apple-pay-cart.service.d.ts +4 -0
  21. package/lib/core/sdk-payment-systems/apple-pay/apple-pay.service.d.ts +8 -2
  22. package/lib/core/sdk-payment-systems/apple-pay/commands-for-pages.enum.d.ts +7 -0
  23. package/lib/core/sdk-payment-systems/apple-pay/external-window-communication/external-window-communication.service.d.ts +28 -0
  24. package/lib/core/sdk-payment-systems/apple-pay/map-shipping-address-to-contact.function.d.ts +3 -0
  25. package/lib/core/sdk-payment-systems/apple-pay/session-handlers/apple-pay-session.interface.d.ts +1 -0
  26. package/lib/core/sdk-payment-systems/apple-pay/socket-messages/recalculate-cart-message.interface.d.ts +9 -0
  27. package/lib/core/sdk-payment-systems/apple-pay/socket-messages/return-message.interface.d.ts +9 -0
  28. package/lib/core/sdk-payment-systems/apple-pay/socket-messages/send-token-message.interface.d.ts +8 -0
  29. package/lib/core/sdk-payment-systems/apple-pay/socket-messages/update-price-message.interface.d.ts +9 -0
  30. package/lib/core/sdk-payment-systems/apple-pay/socket-messages/window-close-message.interface.d.ts +5 -0
  31. package/lib/core/web-socket/socket-bridge/bridge-command.interface.d.ts +4 -0
  32. package/lib/core/web-socket/socket-bridge/bridge-connection-channel.interface.d.ts +6 -0
  33. package/lib/core/web-socket/socket-bridge/bridge-request-payload.interface.d.ts +4 -0
  34. package/lib/core/web-socket/socket-bridge/socket-bridge.service.d.ts +15 -0
  35. package/lib/core/window-command.interface.d.ts +6 -0
  36. package/package.json +1 -1
  37. package/xsolla-payment-client-core-0.2.57.tgz +0 -0
  38. package/xsolla-payment-client-core-0.2.55.tgz +0 -0
@@ -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==
@@ -0,0 +1,40 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { firstValueFrom } from 'rxjs';
3
+ import { HttpHeaders, HttpParams } from '@angular/common/http';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../http/secure-api/secure-api.service";
6
+ export class SocketBridgeService {
7
+ constructor(secureApiClient) {
8
+ this.secureApiClient = secureApiClient;
9
+ this.apiUrl = 'socket_bridge';
10
+ }
11
+ async getBridgeConnectionChannel(token) {
12
+ this.token = token;
13
+ const params = new HttpParams().set('access_token', token);
14
+ return firstValueFrom(this.secureApiClient.get(`${this.apiUrl}/socket_url`, {
15
+ params,
16
+ }));
17
+ }
18
+ async publishMessage(message, messagePayload) {
19
+ const requestPayload = {
20
+ message: {
21
+ command: message,
22
+ data: messagePayload,
23
+ },
24
+ };
25
+ const endpointUrl = `${this.apiUrl}/message?access_token=${this.token}`;
26
+ return firstValueFrom(this.secureApiClient.post(endpointUrl.toString(), requestPayload, {
27
+ headers: new HttpHeaders().set('Content-Type', 'application/json; charset=utf-8'),
28
+ responseType: 'json',
29
+ }));
30
+ }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SocketBridgeService, deps: [{ token: i1.SecureApiClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
32
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SocketBridgeService, providedIn: 'root' }); }
33
+ }
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SocketBridgeService, decorators: [{
35
+ type: Injectable,
36
+ args: [{
37
+ providedIn: 'root',
38
+ }]
39
+ }], ctorParameters: () => [{ type: i1.SecureApiClient }] });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LWJyaWRnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvd2ViLXNvY2tldC9zb2NrZXQtYnJpZGdlL3NvY2tldC1icmlkZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBUS9ELE1BQU0sT0FBTyxtQkFBbUI7SUFJOUIsWUFBb0MsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBSG5ELFdBQU0sR0FBRyxlQUFlLENBQUM7SUFHNkIsQ0FBQztJQUVqRSxLQUFLLENBQUMsMEJBQTBCLENBQ3JDLEtBQWE7UUFFYixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFM0QsT0FBTyxjQUFjLENBQ25CLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUN0QixHQUFHLElBQUksQ0FBQyxNQUFNLGFBQWEsRUFDM0I7WUFDRSxNQUFNO1NBQ1AsQ0FDRixDQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sS0FBSyxDQUFDLGNBQWMsQ0FDekIsT0FBZSxFQUNmLGNBQWtCO1FBRWxCLE1BQU0sY0FBYyxHQUFtQztZQUNyRCxPQUFPLEVBQUU7Z0JBQ1AsT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLElBQUksRUFBRSxjQUFjO2FBQ3JCO1NBQ0YsQ0FBQztRQUVGLE1BQU0sV0FBVyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0seUJBQXlCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUV4RSxPQUFPLGNBQWMsQ0FDbkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQ3ZCLFdBQVcsQ0FBQyxRQUFRLEVBQUUsRUFDdEIsY0FBYyxFQUNkO1lBQ0UsT0FBTyxFQUFFLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUM1QixjQUFjLEVBQ2QsaUNBQWlDLENBQ2xDO1lBQ0QsWUFBWSxFQUFFLE1BQU07U0FDckIsQ0FDRixDQUNGLENBQUM7SUFDSixDQUFDOzhHQWhEVSxtQkFBbUI7a0hBQW5CLG1CQUFtQixjQUZsQixNQUFNOzsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgU2VjdXJlQXBpQ2xpZW50IH0gZnJvbSAnLi4vLi4vaHR0cC9zZWN1cmUtYXBpL3NlY3VyZS1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBCcmlkZ2VDb25uZWN0aW9uQ2hhbm5lbCB9IGZyb20gJy4vYnJpZGdlLWNvbm5lY3Rpb24tY2hhbm5lbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQnJpZGdlUmVxdWVzdE1lc3NhZ2VQYXlsb2FkIH0gZnJvbSAnLi9icmlkZ2UtcmVxdWVzdC1wYXlsb2FkLmludGVyZmFjZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTb2NrZXRCcmlkZ2VTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBhcGlVcmwgPSAnc29ja2V0X2JyaWRnZSc7XG4gIHByaXZhdGUgdG9rZW4hOiBzdHJpbmc7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc2VjdXJlQXBpQ2xpZW50OiBTZWN1cmVBcGlDbGllbnQpIHt9XG5cbiAgcHVibGljIGFzeW5jIGdldEJyaWRnZUNvbm5lY3Rpb25DaGFubmVsKFxuICAgIHRva2VuOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxCcmlkZ2VDb25uZWN0aW9uQ2hhbm5lbD4ge1xuICAgIHRoaXMudG9rZW4gPSB0b2tlbjtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLnNldCgnYWNjZXNzX3Rva2VuJywgdG9rZW4pO1xuXG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKFxuICAgICAgdGhpcy5zZWN1cmVBcGlDbGllbnQuZ2V0PEJyaWRnZUNvbm5lY3Rpb25DaGFubmVsPihcbiAgICAgICAgYCR7dGhpcy5hcGlVcmx9L3NvY2tldF91cmxgLFxuICAgICAgICB7XG4gICAgICAgICAgcGFyYW1zLFxuICAgICAgICB9XG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwdWJsaXNoTWVzc2FnZTxQID0geyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0+KFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBtZXNzYWdlUGF5bG9hZD86IFBcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcmVxdWVzdFBheWxvYWQ6IEJyaWRnZVJlcXVlc3RNZXNzYWdlUGF5bG9hZDxQPiA9IHtcbiAgICAgIG1lc3NhZ2U6IHtcbiAgICAgICAgY29tbWFuZDogbWVzc2FnZSxcbiAgICAgICAgZGF0YTogbWVzc2FnZVBheWxvYWQsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCBlbmRwb2ludFVybCA9IGAke3RoaXMuYXBpVXJsfS9tZXNzYWdlP2FjY2Vzc190b2tlbj0ke3RoaXMudG9rZW59YDtcblxuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbShcbiAgICAgIHRoaXMuc2VjdXJlQXBpQ2xpZW50LnBvc3Q8dm9pZCwgQnJpZGdlUmVxdWVzdE1lc3NhZ2VQYXlsb2FkPFA+PihcbiAgICAgICAgZW5kcG9pbnRVcmwudG9TdHJpbmcoKSxcbiAgICAgICAgcmVxdWVzdFBheWxvYWQsXG4gICAgICAgIHtcbiAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAgICAgICAnQ29udGVudC1UeXBlJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04J1xuICAgICAgICAgICksXG4gICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICAgIH1cbiAgICAgIClcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LWNvbW1hbmQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvd2luZG93LWNvbW1hbmQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFdpbmRvd0NvbW1hbmQ8VCA9IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9PiB7XG4gIGNvbW1hbmQ6IHN0cmluZztcbiAgZGF0YT86IFQ7XG59XG4iXX0=
@@ -5553,7 +5553,7 @@ class CentrifugoWebSocketService {
5553
5553
  if (!this.isConnectionOpen) {
5554
5554
  return;
5555
5555
  }
5556
- this.connection.disconnect();
5556
+ this.connection?.disconnect();
5557
5557
  }
5558
5558
  get messages$() {
5559
5559
  return (this.incomingMessages$
@@ -8241,12 +8241,100 @@ class ApplePaySessionHandlerAbstract {
8241
8241
  }
8242
8242
  }
8243
8243
 
8244
- class ApplePayCartService {
8245
- constructor() {
8246
- this.cartSuccessfulRecalculated = new Subject();
8247
- this.cartErrorRecalculated = new Subject();
8248
- this.cartRecalculationRequest = new Subject();
8244
+ class SocketBridgeService {
8245
+ constructor(secureApiClient) {
8246
+ this.secureApiClient = secureApiClient;
8247
+ this.apiUrl = 'socket_bridge';
8248
+ }
8249
+ async getBridgeConnectionChannel(token) {
8250
+ this.token = token;
8251
+ const params = new HttpParams().set('access_token', token);
8252
+ return firstValueFrom(this.secureApiClient.get(`${this.apiUrl}/socket_url`, {
8253
+ params,
8254
+ }));
8255
+ }
8256
+ async publishMessage(message, messagePayload) {
8257
+ const requestPayload = {
8258
+ message: {
8259
+ command: message,
8260
+ data: messagePayload,
8261
+ },
8262
+ };
8263
+ const endpointUrl = `${this.apiUrl}/message?access_token=${this.token}`;
8264
+ return firstValueFrom(this.secureApiClient.post(endpointUrl.toString(), requestPayload, {
8265
+ headers: new HttpHeaders().set('Content-Type', 'application/json; charset=utf-8'),
8266
+ responseType: 'json',
8267
+ }));
8268
+ }
8269
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SocketBridgeService, deps: [{ token: SecureApiClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
8270
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SocketBridgeService, providedIn: 'root' }); }
8271
+ }
8272
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SocketBridgeService, decorators: [{
8273
+ type: Injectable,
8274
+ args: [{
8275
+ providedIn: 'root',
8276
+ }]
8277
+ }], ctorParameters: () => [{ type: SecureApiClient }] });
8278
+
8279
+ class ApplePayExternalWindowCommunicationService {
8280
+ constructor(window, webSocketFactory, socketBridgeService) {
8281
+ this.window = window;
8282
+ this.webSocketFactory = webSocketFactory;
8283
+ this.socketBridgeService = socketBridgeService;
8284
+ }
8285
+ getWindowClose$() {
8286
+ const isWindowCloseMessage = (message) => message.command === "apple-pay-window-close" /* CommandsForPages.APPLE_PAY_WINDOW_CLOSE */;
8287
+ const eventSource$ = this.getEventSource(isWindowCloseMessage);
8288
+ return eventSource$.pipe(tap(() => {
8289
+ this.window.focus();
8290
+ }));
8291
+ }
8292
+ getWindowReturnMessage$() {
8293
+ const isReturnMessage = (message) => message.command === "apple-pay-return" /* CommandsForPages.APPLE_PAY_RETURN */;
8294
+ const eventSource$ = this.getEventSource(isReturnMessage);
8295
+ return eventSource$.pipe(tap(() => {
8296
+ // TODO: send close event to sdk
8297
+ }));
8298
+ }
8299
+ getWindowSendTokenMessage$() {
8300
+ const isSendTokenMessage = (message) => message.command === "apple-pay-send-token" /* CommandsForPages.APPLE_PAY_SEND_TOKEN */;
8301
+ return this.getEventSource(isSendTokenMessage);
8302
+ }
8303
+ getCartRecalculationMessage$() {
8304
+ const isRecalculateCartMessage = (message) => message.command === "apple-pay-recalculate-cart" /* CommandsForPages.APPLE_PAY_RECALCULATE_CART */;
8305
+ return this.getEventSource(isRecalculateCartMessage);
8249
8306
  }
8307
+ async openWebSocketConnection(token) {
8308
+ const bridgeInfo = await this.socketBridgeService.getBridgeConnectionChannel(token);
8309
+ if (this.websocketClient) {
8310
+ this.websocketClient.close();
8311
+ }
8312
+ this.websocketClient = this.webSocketFactory.createWebSocketClient(bridgeInfo.subscribeUrl, bridgeInfo.clientType);
8313
+ await this.websocketClient.open(bridgeInfo.subscribeUrl, bridgeInfo.channelName);
8314
+ }
8315
+ async sendMessageToAnotherWindow(command, payload) {
8316
+ await this.socketBridgeService.publishMessage(command, payload);
8317
+ }
8318
+ getEventSource(eventHandler) {
8319
+ return this.websocketClient.messages$.pipe(map$1((message) => {
8320
+ console.info('websocket message', message);
8321
+ return JSON.parse(message);
8322
+ }), filter(eventHandler));
8323
+ }
8324
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayExternalWindowCommunicationService, deps: [{ token: windowToken }, { token: WebSocketFactory }, { token: SocketBridgeService }], target: i0.ɵɵFactoryTarget.Injectable }); }
8325
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayExternalWindowCommunicationService, providedIn: 'root' }); }
8326
+ }
8327
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayExternalWindowCommunicationService, decorators: [{
8328
+ type: Injectable,
8329
+ args: [{
8330
+ providedIn: 'root',
8331
+ }]
8332
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
8333
+ type: Inject,
8334
+ args: [windowToken]
8335
+ }] }, { type: WebSocketFactory }, { type: SocketBridgeService }] });
8336
+
8337
+ class ApplePayCartService {
8250
8338
  get cartSuccessfulRecalculated$() {
8251
8339
  return this.cartSuccessfulRecalculated.asObservable();
8252
8340
  }
@@ -8256,6 +8344,12 @@ class ApplePayCartService {
8256
8344
  get cartRecalculationRequest$() {
8257
8345
  return this.cartRecalculationRequest.asObservable();
8258
8346
  }
8347
+ constructor(externalWindowCommunicationService) {
8348
+ this.externalWindowCommunicationService = externalWindowCommunicationService;
8349
+ this.cartSuccessfulRecalculated = new Subject();
8350
+ this.cartErrorRecalculated = new Subject();
8351
+ this.cartRecalculationRequest = new Subject();
8352
+ }
8259
8353
  recalculateCartTaxes(shippingContact) {
8260
8354
  const zip = shippingContact.postalCode;
8261
8355
  const country = shippingContact.countryCode?.toUpperCase() ?? '';
@@ -8272,11 +8366,14 @@ class ApplePayCartService {
8272
8366
  label: paymentParams.totalLabel,
8273
8367
  amount: updatedPrice.total.toString(),
8274
8368
  },
8369
+ newLineItems: this.getLineItems(updatedPrice),
8275
8370
  };
8276
8371
  }
8277
8372
  sendSuccessfulRecalculatedCart(updatedPrice) {
8278
8373
  this.cartSuccessfulRecalculated.next(updatedPrice);
8279
- // TODO send web socket message to external window here
8374
+ void this.externalWindowCommunicationService.sendMessageToAnotherWindow("apple-pay-update-price" /* CommandsForPages.APPLE_PAY_UPDATE_PRICE */, {
8375
+ newCartPricing: updatedPrice,
8376
+ });
8280
8377
  }
8281
8378
  sendErrorRecalculatedCart(error) {
8282
8379
  this.cartErrorRecalculated.next(error);
@@ -8284,7 +8381,33 @@ class ApplePayCartService {
8284
8381
  isZipCountry(country) {
8285
8382
  return ['US', 'CA'].includes(country);
8286
8383
  }
8287
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayCartService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
8384
+ getLineItems(updatedPrice) {
8385
+ const newLineItems = [];
8386
+ if (updatedPrice.subtotalPayment?.money?.amount) {
8387
+ newLineItems.push({
8388
+ label: updatedPrice.subtotalPayment.title ?? 'Subtotal',
8389
+ amount: updatedPrice.subtotalPayment.money?.amount.toString(),
8390
+ });
8391
+ }
8392
+ let paymentsDetails = [];
8393
+ if (updatedPrice.subtotalDetails?.length) {
8394
+ paymentsDetails = updatedPrice.subtotalDetails;
8395
+ }
8396
+ if (updatedPrice.totalDetails?.length) {
8397
+ paymentsDetails = paymentsDetails.concat(updatedPrice.totalDetails);
8398
+ }
8399
+ paymentsDetails.forEach((cartItem) => {
8400
+ if (!cartItem.title || !cartItem.money?.amount) {
8401
+ return;
8402
+ }
8403
+ newLineItems.push({
8404
+ label: cartItem.title,
8405
+ amount: cartItem.money.amount.toString(),
8406
+ });
8407
+ });
8408
+ return newLineItems;
8409
+ }
8410
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayCartService, deps: [{ token: ApplePayExternalWindowCommunicationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
8288
8411
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayCartService, providedIn: 'root' }); }
8289
8412
  }
8290
8413
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayCartService, decorators: [{
@@ -8292,7 +8415,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
8292
8415
  args: [{
8293
8416
  providedIn: 'root',
8294
8417
  }]
8295
- }] });
8418
+ }], ctorParameters: () => [{ type: ApplePayExternalWindowCommunicationService }] });
8296
8419
 
8297
8420
  class BraintreeHandler extends ApplePaySessionHandlerAbstract {
8298
8421
  constructor(window, elkLoggerService, applePayCartService) {
@@ -9049,6 +9172,17 @@ var ApplePayIntegrationType;
9049
9172
  ApplePayIntegrationType["native"] = "native";
9050
9173
  })(ApplePayIntegrationType || (ApplePayIntegrationType = {}));
9051
9174
 
9175
+ const mapShippingAddressToContact = (shippingAddress) => {
9176
+ return {
9177
+ postalCode: shippingAddress.zip,
9178
+ country: shippingAddress.country,
9179
+ countryCode: shippingAddress.country,
9180
+ administrativeArea: '',
9181
+ locality: '',
9182
+ newLineItems: [],
9183
+ };
9184
+ };
9185
+
9052
9186
  const agreementsGroup = [
9053
9187
  FieldNames.licenseDisclaimer,
9054
9188
  FieldNames.termsAndConditions,
@@ -9261,7 +9395,7 @@ class ApplePayService {
9261
9395
  get integrationType$() {
9262
9396
  return this.integrationType.asObservable();
9263
9397
  }
9264
- constructor(window, summaryFinanceDetailsAdapterService, braintreeHandler, checkoutHandler, appleParamsBuilder, elkLoggerService, applePaySdkService) {
9398
+ constructor(window, summaryFinanceDetailsAdapterService, braintreeHandler, checkoutHandler, appleParamsBuilder, elkLoggerService, applePaySdkService, externalWindowCommunicationService, applePayCartService) {
9265
9399
  this.window = window;
9266
9400
  this.summaryFinanceDetailsAdapterService = summaryFinanceDetailsAdapterService;
9267
9401
  this.braintreeHandler = braintreeHandler;
@@ -9269,10 +9403,13 @@ class ApplePayService {
9269
9403
  this.appleParamsBuilder = appleParamsBuilder;
9270
9404
  this.elkLoggerService = elkLoggerService;
9271
9405
  this.applePaySdkService = applePaySdkService;
9406
+ this.externalWindowCommunicationService = externalWindowCommunicationService;
9407
+ this.applePayCartService = applePayCartService;
9272
9408
  this.payment = new Subject();
9273
9409
  this.error = new Subject();
9274
9410
  this.integrationType = new Subject();
9275
9411
  this.applePayQrOpened = new Subject();
9412
+ this.destroy$ = new Subject();
9276
9413
  this.paymentClient = null;
9277
9414
  this.applePayParams = null;
9278
9415
  this.order = null;
@@ -9285,6 +9422,8 @@ class ApplePayService {
9285
9422
  }
9286
9423
  /* istanbul ignore next */
9287
9424
  removeListeners() {
9425
+ this.destroy$.next();
9426
+ this.destroy$.complete();
9288
9427
  this.applePaySdkService.removeListeners();
9289
9428
  }
9290
9429
  setApplePayParams(data) {
@@ -9323,11 +9462,14 @@ class ApplePayService {
9323
9462
  }
9324
9463
  this.emitIntegrationType();
9325
9464
  }
9326
- redirectToPaymentPage(parameters, token, isSandbox) {
9465
+ async redirectToPaymentPage(parameters, token, isSandbox) {
9327
9466
  const route = pagesRoutes.get(applePayId);
9328
9467
  if (!route) {
9329
9468
  return;
9330
9469
  }
9470
+ console.log('🟡[LOG] token :>>', token);
9471
+ await this.externalWindowCommunicationService.openWebSocketConnection(token);
9472
+ this.listenWebsocketMessages();
9331
9473
  const query = new URLSearchParams({
9332
9474
  ...parameters,
9333
9475
  merchantCapabilities: JSON.stringify(parameters.merchantCapabilities),
@@ -9433,7 +9575,34 @@ class ApplePayService {
9433
9575
  this.applePayQrOpened.next();
9434
9576
  }
9435
9577
  }
9436
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayService, deps: [{ token: windowToken }, { token: SummaryFinanceDetailsAdapterService }, { token: BraintreeHandler }, { token: CheckoutHandler }, { token: ApplePayParamsBuilderService }, { token: ElkLoggerService }, { token: ApplePaySdkService }], target: i0.ɵɵFactoryTarget.Injectable }); }
9578
+ listenWebsocketMessages() {
9579
+ // Cart recalculation
9580
+ this.externalWindowCommunicationService
9581
+ .getCartRecalculationMessage$()
9582
+ .pipe(takeUntil(this.destroy$))
9583
+ .subscribe((message) => {
9584
+ const shippingContact = mapShippingAddressToContact(message.data.shippingAddress);
9585
+ this.applePayCartService.recalculateCartTaxes(shippingContact);
9586
+ });
9587
+ // Send token
9588
+ this.externalWindowCommunicationService
9589
+ .getWindowSendTokenMessage$()
9590
+ .pipe(takeUntil(this.destroy$))
9591
+ .subscribe((message) => {
9592
+ this.payment.next(message.data.applePayToken);
9593
+ });
9594
+ // Close window
9595
+ this.externalWindowCommunicationService.getWindowClose$().subscribe(() => {
9596
+ // TODO handle
9597
+ });
9598
+ // Close window with 'back' button
9599
+ this.externalWindowCommunicationService
9600
+ .getWindowReturnMessage$()
9601
+ .subscribe(() => {
9602
+ // TODO handle
9603
+ });
9604
+ }
9605
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayService, deps: [{ token: windowToken }, { token: SummaryFinanceDetailsAdapterService }, { token: BraintreeHandler }, { token: CheckoutHandler }, { token: ApplePayParamsBuilderService }, { token: ElkLoggerService }, { token: ApplePaySdkService }, { token: ApplePayExternalWindowCommunicationService }, { token: ApplePayCartService }], target: i0.ɵɵFactoryTarget.Injectable }); }
9437
9606
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayService, providedIn: 'root' }); }
9438
9607
  }
9439
9608
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayService, decorators: [{
@@ -9444,7 +9613,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
9444
9613
  }], ctorParameters: () => [{ type: undefined, decorators: [{
9445
9614
  type: Inject,
9446
9615
  args: [windowToken]
9447
- }] }, { type: SummaryFinanceDetailsAdapterService }, { type: BraintreeHandler }, { type: CheckoutHandler }, { type: ApplePayParamsBuilderService }, { type: ElkLoggerService }, { type: ApplePaySdkService }] });
9616
+ }] }, { type: SummaryFinanceDetailsAdapterService }, { type: BraintreeHandler }, { type: CheckoutHandler }, { type: ApplePayParamsBuilderService }, { type: ElkLoggerService }, { type: ApplePaySdkService }, { type: ApplePayExternalWindowCommunicationService }, { type: ApplePayCartService }] });
9448
9617
 
9449
9618
  /*
9450
9619
  * Public API Surface of core-library