@xsolla/payment-client-core 0.2.21 → 0.2.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{esm2020 → esm2022}/lib/core/combined-payment-methods/combined-payment-methods.service.mjs +5 -5
- package/{esm2020 → esm2022}/lib/core/countries-api/countries-api.service.mjs +5 -5
- package/{esm2020 → esm2022}/lib/core/country/country.service.mjs +5 -5
- package/{esm2020 → esm2022}/lib/core/credit-card/credit-card.service.mjs +4 -4
- package/esm2022/lib/core/device-finger-print/device-finger-print.service.mjs +67 -0
- package/{esm2020 → esm2022}/lib/core/edit-saved-methods/edit-saved-methods.service.mjs +5 -5
- package/esm2022/lib/core/encrypt-credit-card/encrypt-credit-card.service.mjs +73 -0
- package/esm2022/lib/core/errors-mapping/xps-response-errors-mapping.service.mjs +52 -0
- package/esm2022/lib/core/exceptions-handling/elk/elk-logger.service.mjs +120 -0
- package/esm2022/lib/core/exceptions-handling/errors/http-error.class.mjs +40 -0
- package/esm2022/lib/core/exceptions-handling/errors/tagged-error.class.mjs +16 -0
- package/{esm2020 → esm2022}/lib/core/exceptions-handling/http-interceptor/http-exceptions.interceptor.mjs +5 -5
- package/esm2022/lib/core/http/secure-api/secure-api.service.mjs +55 -0
- package/{esm2020 → esm2022}/lib/core/legal/disclaimer.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/core/legal/legal.service.mjs +5 -5
- package/esm2022/lib/core/legal/refund-policy.service.mjs +30 -0
- package/esm2022/lib/core/legal/secure-connection.service.mjs +31 -0
- package/{esm2020 → esm2022}/lib/core/payment/actions/check-status/check-status.action.class.mjs +4 -4
- package/esm2022/lib/core/payment/actions/next-action.service.mjs +61 -0
- package/esm2022/lib/core/payment/actions/redirect/redirect.action.class.mjs +60 -0
- package/{esm2020 → esm2022}/lib/core/payment/actions/show-errors/show-errors.action.class.mjs +4 -4
- package/{esm2020 → esm2022}/lib/core/payment/actions/show-fields/show-fields.action.class.mjs +4 -4
- package/{esm2020 → esm2022}/lib/core/payment/actions/show-mobile-payment-screen/show-mobile-payment-screen.action.class.mjs +4 -4
- package/esm2022/lib/core/payment/actions/show-qr-code/show-qr-code.action.class.mjs +27 -0
- package/{esm2020 → esm2022}/lib/core/payment/actions/show-qr-code/show-qr-code.action.type.mjs +1 -1
- package/{esm2020 → esm2022}/lib/core/payment/actions/special-button/special-button.action.class.mjs +4 -4
- package/esm2022/lib/core/payment/actions/status-updated/status-updated.action.class.mjs +38 -0
- package/{esm2020 → esm2022}/lib/core/payment/actions/three-ds/three-ds.action.class.mjs +4 -4
- package/esm2022/lib/core/payment/config/config.service.mjs +37 -0
- package/{esm2020 → esm2022}/lib/core/payment/credit-card-state/credit-card-state.service.mjs +4 -4
- package/esm2022/lib/core/payment/finance-details/finance-details.service.mjs +38 -0
- package/{esm2020 → esm2022}/lib/core/payment/finance-details/status/status-finance-details-adapter.service.mjs +5 -5
- package/esm2022/lib/core/payment/finance-details/summary/summary-finance-details-adapter.service.mjs +264 -0
- package/esm2022/lib/core/payment/form/controls/control-config.service.mjs +46 -0
- package/{esm2020 → esm2022}/lib/core/payment/form/converters/birth-date/birth-date.converter.mjs +5 -5
- package/{esm2020 → esm2022}/lib/core/payment/form/converters/card-month/card-month.converter.mjs +5 -5
- package/{esm2020 → esm2022}/lib/core/payment/form/converters/card-number/card-number.converter.mjs +5 -5
- package/{esm2020 → esm2022}/lib/core/payment/form/converters/card-year/card-year.converter.mjs +5 -5
- package/{esm2020 → esm2022}/lib/core/payment/form/converters/cardholder-name/cardholder-name.converter.mjs +5 -5
- package/esm2022/lib/core/payment/form/converters/checkbox/checkbox.converter.mjs +33 -0
- package/esm2022/lib/core/payment/form/converters/converter.abstract.mjs +76 -0
- package/{esm2020 → esm2022}/lib/core/payment/form/converters/coupon/coupon.converter.mjs +5 -5
- package/{esm2020 → esm2022}/lib/core/payment/form/converters/cpf-name/cpf-name.converter.mjs +5 -5
- package/{esm2020 → esm2022}/lib/core/payment/form/converters/cpf-number/cpf-number.converter.mjs +5 -5
- package/esm2022/lib/core/payment/form/converters/cvv/cvv.converter.mjs +72 -0
- package/{esm2020 → esm2022}/lib/core/payment/form/converters/email/email.converter.mjs +5 -5
- package/{esm2020 → esm2022}/lib/core/payment/form/converters/phone.converter.mjs +5 -5
- package/{esm2020 → esm2022}/lib/core/payment/form/converters/pin/pin.converter.mjs +5 -5
- package/{esm2020 → esm2022}/lib/core/payment/form/converters/pricepoint/pricepoint.converter.mjs +5 -5
- package/{esm2020 → esm2022}/lib/core/payment/form/converters/radio-group/radio-group.converter.mjs +5 -5
- package/{esm2020 → esm2022}/lib/core/payment/form/converters/select/select.converter.mjs +5 -5
- package/esm2022/lib/core/payment/form/converters/street-number/street-number.converter.mjs +28 -0
- package/{esm2020 → esm2022}/lib/core/payment/form/converters/text/text.converter.mjs +5 -5
- package/esm2022/lib/core/payment/form/converters/zip/zip.converter.mjs +64 -0
- package/{esm2020 → esm2022}/lib/core/payment/form/form.module.mjs +33 -33
- package/esm2022/lib/core/payment/form/form.service.mjs +49 -0
- package/esm2022/lib/core/payment/form/validators/birth-date/birth-date.validator.mjs +37 -0
- package/esm2022/lib/core/payment/form/validators/card-month/card-month.validator.mjs +37 -0
- package/esm2022/lib/core/payment/form/validators/card-year/card-year.validator.mjs +34 -0
- package/esm2022/lib/core/payment/form/validators/convert.function.mjs +15 -0
- package/esm2022/lib/core/payment/form/validators/credit-card-length/credit-card-min-length.validator.mjs +32 -0
- package/esm2022/lib/core/payment/form/validators/luhn-formula-validator/luhn-formula.validator.mjs +40 -0
- package/{esm2020 → esm2022}/lib/core/payment/form/validators/validators.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/core/payment/form-messages/form-messages.service.mjs +5 -5
- package/esm2022/lib/core/payment/initialize/initialize.service.mjs +85 -0
- package/esm2022/lib/core/payment/initialize/response/initialize-response.class.mjs +43 -0
- package/esm2022/lib/core/payment/payment.service.mjs +369 -0
- package/{esm2020 → esm2022}/lib/core/payment/status/check-status/check-status.service.mjs +6 -6
- package/{esm2020 → esm2022}/lib/core/payment/status/check-status/request/check-status-request.class.mjs +1 -1
- package/esm2022/lib/core/payment/status/listen-status/listen-status.service.mjs +124 -0
- package/{esm2020 → esm2022}/lib/core/payment/status/save-payment-method-status/api/saved-payment-account-changes.service.mjs +5 -5
- package/esm2022/lib/core/payment/status/save-payment-method-status/save-payment-method-status.service.mjs +121 -0
- package/esm2022/lib/core/payment/status/status-request/request/status-request.class.mjs +22 -0
- package/esm2022/lib/core/payment/status/status-request/response/status-response.class.mjs +98 -0
- package/{esm2020 → esm2022}/lib/core/payment/status/status-request/status-request.service.mjs +6 -6
- package/esm2022/lib/core/payment/status/status.service.mjs +75 -0
- package/esm2022/lib/core/payment/status/websocket-status/websocket-status.service.mjs +76 -0
- package/esm2022/lib/core/payment/submit/request/submit-request.class.mjs +24 -0
- package/esm2022/lib/core/payment/submit/response/submit-response.class.mjs +31 -0
- package/esm2022/lib/core/payment/submit/submit.service.mjs +78 -0
- package/esm2022/lib/core/payment/sync/request/sync-request.class.mjs +31 -0
- package/esm2022/lib/core/payment/sync/response/sync-response.class.mjs +17 -0
- package/esm2022/lib/core/payment/sync/sync.service.mjs +157 -0
- package/esm2022/lib/core/payment/three-ds/api/notify-dfp-status/notify-dfp-status.service.mjs +49 -0
- package/esm2022/lib/core/payment/three-ds/api/status-three-ds/status-three-ds.service.mjs +60 -0
- package/esm2022/lib/core/payment/three-ds/dfp-collect/dfp-collect.service.mjs +105 -0
- package/esm2022/lib/core/payment/three-ds/reinsurance-check/reinsurance-check.service.mjs +41 -0
- package/esm2022/lib/core/payment/three-ds/three-ds-20/three-ds20.service.mjs +109 -0
- package/esm2022/lib/core/payment/three-ds/three-ds.service.mjs +42 -0
- package/esm2022/lib/core/payment/xps-api/xps-api.service.mjs +85 -0
- package/esm2022/lib/core/payment/xps-api-part-request.abstract.mjs +8 -0
- package/esm2022/lib/core/payment-methods/payment-methods.service.mjs +75 -0
- package/esm2022/lib/core/performance/performance.service.mjs +111 -0
- package/esm2022/lib/core/performance/xhr-action.service.mjs +114 -0
- package/esm2022/lib/core/saved-methods/saved-methods.service.mjs +54 -0
- package/esm2022/lib/core/sdk-payment-systems/apple-pay/apple-pay.service.mjs +268 -0
- package/esm2022/lib/core/sdk-payment-systems/google-pay/google-pay.service.mjs +177 -0
- package/esm2022/lib/core/sdk-payment-systems/payment-systems/payment-system-processing.service.mjs +84 -0
- package/esm2022/lib/core/session/session.service.mjs +57 -0
- package/esm2022/lib/core/settings/settings.service.mjs +92 -0
- package/esm2022/lib/core/url/url.service.mjs +34 -0
- package/esm2022/lib/core/user-agent/user-agent.service.mjs +211 -0
- package/esm2022/lib/core/user-balance/user-balance.service.mjs +53 -0
- package/esm2022/lib/core/user-behaviour-analytics/event-builder/event-builder.service.mjs +144 -0
- package/esm2022/lib/core/user-behaviour-analytics/user-behaviour-analytics.service.mjs +158 -0
- package/esm2022/lib/core/web-socket/centrifugo-web-socket.service.mjs +200 -0
- package/esm2022/lib/core/web-socket/nchan-web-socket.service.mjs +116 -0
- package/esm2022/lib/core/web-socket/web-socket.factory.mjs +28 -0
- package/esm2022/lib/core-library.module.mjs +92 -0
- package/{esm2020 → esm2022}/lib/core-library.service.mjs +5 -5
- package/{esm2020 → esm2022}/lib/shared/pipes/pipes.module.mjs +5 -5
- package/esm2022/lib/shared/pipes/unescape-html/unescape-html.pipe.mjs +23 -0
- package/{fesm2020 → fesm2022}/xsolla-payment-client-core.mjs +458 -455
- package/fesm2022/xsolla-payment-client-core.mjs.map +1 -0
- package/lib/core/payment/actions/show-qr-code/show-qr-code.action.type.d.ts +2 -0
- package/package.json +10 -16
- package/xsolla-payment-client-core-0.2.23.tgz +0 -0
- package/esm2020/lib/core/device-finger-print/device-finger-print.service.mjs +0 -67
- package/esm2020/lib/core/encrypt-credit-card/encrypt-credit-card.service.mjs +0 -72
- package/esm2020/lib/core/errors-mapping/xps-response-errors-mapping.service.mjs +0 -52
- package/esm2020/lib/core/exceptions-handling/elk/elk-logger.service.mjs +0 -120
- package/esm2020/lib/core/exceptions-handling/errors/http-error.class.mjs +0 -40
- package/esm2020/lib/core/exceptions-handling/errors/tagged-error.class.mjs +0 -16
- package/esm2020/lib/core/http/secure-api/secure-api.service.mjs +0 -55
- package/esm2020/lib/core/legal/refund-policy.service.mjs +0 -30
- package/esm2020/lib/core/legal/secure-connection.service.mjs +0 -31
- package/esm2020/lib/core/payment/actions/next-action.service.mjs +0 -61
- package/esm2020/lib/core/payment/actions/redirect/redirect.action.class.mjs +0 -60
- package/esm2020/lib/core/payment/actions/show-qr-code/show-qr-code.action.class.mjs +0 -25
- package/esm2020/lib/core/payment/actions/status-updated/status-updated.action.class.mjs +0 -38
- package/esm2020/lib/core/payment/config/config.service.mjs +0 -37
- package/esm2020/lib/core/payment/finance-details/finance-details.service.mjs +0 -38
- package/esm2020/lib/core/payment/finance-details/summary/summary-finance-details-adapter.service.mjs +0 -264
- package/esm2020/lib/core/payment/form/controls/control-config.service.mjs +0 -46
- package/esm2020/lib/core/payment/form/converters/checkbox/checkbox.converter.mjs +0 -33
- package/esm2020/lib/core/payment/form/converters/converter.abstract.mjs +0 -76
- package/esm2020/lib/core/payment/form/converters/cvv/cvv.converter.mjs +0 -72
- package/esm2020/lib/core/payment/form/converters/street-number/street-number.converter.mjs +0 -28
- package/esm2020/lib/core/payment/form/converters/zip/zip.converter.mjs +0 -64
- package/esm2020/lib/core/payment/form/form.service.mjs +0 -49
- package/esm2020/lib/core/payment/form/validators/birth-date/birth-date.validator.mjs +0 -37
- package/esm2020/lib/core/payment/form/validators/card-month/card-month.validator.mjs +0 -37
- package/esm2020/lib/core/payment/form/validators/card-year/card-year.validator.mjs +0 -34
- package/esm2020/lib/core/payment/form/validators/convert.function.mjs +0 -15
- package/esm2020/lib/core/payment/form/validators/credit-card-length/credit-card-min-length.validator.mjs +0 -32
- package/esm2020/lib/core/payment/form/validators/luhn-formula-validator/luhn-formula.validator.mjs +0 -40
- package/esm2020/lib/core/payment/initialize/initialize.service.mjs +0 -85
- package/esm2020/lib/core/payment/initialize/response/initialize-response.class.mjs +0 -43
- package/esm2020/lib/core/payment/payment.service.mjs +0 -369
- package/esm2020/lib/core/payment/status/listen-status/listen-status.service.mjs +0 -124
- package/esm2020/lib/core/payment/status/save-payment-method-status/save-payment-method-status.service.mjs +0 -121
- package/esm2020/lib/core/payment/status/status-request/request/status-request.class.mjs +0 -22
- package/esm2020/lib/core/payment/status/status-request/response/status-response.class.mjs +0 -98
- package/esm2020/lib/core/payment/status/status.service.mjs +0 -75
- package/esm2020/lib/core/payment/status/websocket-status/websocket-status.service.mjs +0 -76
- package/esm2020/lib/core/payment/submit/request/submit-request.class.mjs +0 -24
- package/esm2020/lib/core/payment/submit/response/submit-response.class.mjs +0 -31
- package/esm2020/lib/core/payment/submit/submit.service.mjs +0 -78
- package/esm2020/lib/core/payment/sync/request/sync-request.class.mjs +0 -31
- package/esm2020/lib/core/payment/sync/response/sync-response.class.mjs +0 -17
- package/esm2020/lib/core/payment/sync/sync.service.mjs +0 -157
- package/esm2020/lib/core/payment/three-ds/api/notify-dfp-status/notify-dfp-status.service.mjs +0 -49
- package/esm2020/lib/core/payment/three-ds/api/status-three-ds/status-three-ds.service.mjs +0 -60
- package/esm2020/lib/core/payment/three-ds/dfp-collect/dfp-collect.service.mjs +0 -105
- package/esm2020/lib/core/payment/three-ds/reinsurance-check/reinsurance-check.service.mjs +0 -41
- package/esm2020/lib/core/payment/three-ds/three-ds-20/three-ds20.service.mjs +0 -109
- package/esm2020/lib/core/payment/three-ds/three-ds.service.mjs +0 -42
- package/esm2020/lib/core/payment/xps-api/xps-api.service.mjs +0 -85
- package/esm2020/lib/core/payment/xps-api-part-request.abstract.mjs +0 -8
- package/esm2020/lib/core/payment-methods/payment-methods.service.mjs +0 -75
- package/esm2020/lib/core/performance/performance.service.mjs +0 -111
- package/esm2020/lib/core/performance/xhr-action.service.mjs +0 -114
- package/esm2020/lib/core/saved-methods/saved-methods.service.mjs +0 -54
- package/esm2020/lib/core/sdk-payment-systems/apple-pay/apple-pay.service.mjs +0 -268
- package/esm2020/lib/core/sdk-payment-systems/google-pay/google-pay.service.mjs +0 -177
- package/esm2020/lib/core/sdk-payment-systems/payment-systems/payment-system-processing.service.mjs +0 -84
- package/esm2020/lib/core/session/session.service.mjs +0 -57
- package/esm2020/lib/core/settings/settings.service.mjs +0 -92
- package/esm2020/lib/core/url/url.service.mjs +0 -34
- package/esm2020/lib/core/user-agent/user-agent.service.mjs +0 -211
- package/esm2020/lib/core/user-balance/user-balance.service.mjs +0 -53
- package/esm2020/lib/core/user-behaviour-analytics/event-builder/event-builder.service.mjs +0 -144
- package/esm2020/lib/core/user-behaviour-analytics/user-behaviour-analytics.service.mjs +0 -158
- package/esm2020/lib/core/web-socket/centrifugo-web-socket.service.mjs +0 -200
- package/esm2020/lib/core/web-socket/nchan-web-socket.service.mjs +0 -116
- package/esm2020/lib/core/web-socket/web-socket.factory.mjs +0 -28
- package/esm2020/lib/core-library.module.mjs +0 -92
- package/esm2020/lib/shared/pipes/unescape-html/unescape-html.pipe.mjs +0 -23
- package/fesm2015/xsolla-payment-client-core.mjs +0 -8138
- package/fesm2015/xsolla-payment-client-core.mjs.map +0 -1
- package/fesm2020/xsolla-payment-client-core.mjs.map +0 -1
- package/xsolla-payment-client-core-0.2.21.tgz +0 -0
- /package/{esm2020 → esm2022}/lib/core/agreementsGroup.const.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/boolean-number.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/combined-payment-methods/combined-payment-methods.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/countries-api/country-response.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/countries-api/country.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/country/country-iso-code.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/credit-card/credit-card-settings.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/credit-card/credit-card-types.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/credit-card/credit-card.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/credit-card/credit-cards-map.const.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/credit-card/default-mask.const.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/credit-card/four-block-mask.const.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/credit-card/ordered-cards-settings.const.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/credit-card/types/american-express.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/credit-card/types/aura.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/credit-card/types/china-union-pay.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/credit-card/types/dankort.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/credit-card/types/default-card.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/credit-card/types/diners-clubs.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/credit-card/types/discover.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/credit-card/types/elo.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/credit-card/types/hipercard.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/credit-card/types/jcb.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/credit-card/types/maestro.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/credit-card/types/mastercard.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/credit-card/types/mir.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/credit-card/types/naranja.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/credit-card/types/postepay.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/credit-card/types/visa.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/deep-readonly.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/device-finger-print/hash.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/edit-saved-methods/delete-method-response.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/encrypt-credit-card/encrypted-card.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/encrypt-credit-card/open-card.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/errors-mapping/card-number-sanction-error-codes.const.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/errors-mapping/field-special-errors-map.const.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/exceptions-handling/elk/additional-info.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/exceptions-handling/elk/error-without-meta-fields.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/exceptions-handling/elk/log-message.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/api-error.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/app-error.class.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/elk-error-types.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/encrypt-card-error.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/response-error.class.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/terminal-error.class.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/token-error.class.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/ws-error.class.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/exceptions-handling/http-interceptor/http-error-data.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/exceptions-handling/http-interceptor/http-error-response-data.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/extended-window.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/http/secure-api/api-url.const.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/http/secure-api/options.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/legal/legal.component.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/actions/action.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/actions/check-status/check-status.action.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/actions/next-action.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/actions/next-actions.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/actions/redirect/pay-station4-url.const.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/actions/redirect/ps4-pages/pages-payment-methods-id.const.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/actions/redirect/ps4-pages/pages-routes.const.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/actions/redirect/redirect.action.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/actions/show-errors/show-errors.action.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/actions/show-fields/show-fields.action.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/actions/show-mobile-payment-screen/show-mobile-payment-screen.action.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/actions/special-button/special-button.action.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/actions/status-updated/status-updated.action.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/actions/three-ds/three-ds.action.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/checkout-item.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/credit-card-payment-methods-id.variable.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/credit-card-state/credit-card-state.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/emit-data.service.abstract.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/field-names.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/field.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/finance-details/cart-item.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/finance-details/cart-line.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/finance-details/cart-summary.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/finance-details/finance-details.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/finance-details/price.helpers.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/finance-details/price.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/finance-details/status/field-with-amount-and-currency.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/finance-details/status/fields-with-currency.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/finance-details/status/finance-info.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/finance-details/summary/default-image-patterns.const.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/finance-details/summary/sales-tax-details-key.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/finance-details/vat-details-key.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/common-control-config.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/control-status.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/controls/card-number/card-number-control.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/controls/checkbox/checkbox-control.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/controls/control-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/controls/control-type.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/controls/coupon/coupon-control.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/controls/phone-control.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/controls/radio-control/radio-control.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/controls/radio-control/radio-option.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/controls/search-select/search-select-option.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/controls/search-select/select-control.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/controls/search-select/select-option.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/controls/text-control.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/converters/converters-map.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/converters/converters-map.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/converters/cpf-name/cpf-name-regex.variable.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/converters/cvv/cvv-form-state.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/converters/street-number/street-number-from-state.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/field-form-states.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/field-status.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/form-fields-status.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/form-state.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/input-event.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/validators/async-validator-fn.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/validators/coupon/coupon-validator.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/validators/email/email-validator.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/validators/is-empty-input-value.function.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/validators/max-length-validator.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/validators/min-length-validator.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/validators/phone-validator.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/validators/required/required.validator.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/validators/restricted-value/restricted-value.validator.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/validators/validation-error.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/validators/validation-errors.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form/validators/validator-fn.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/form-response.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/initialize/initialize-request-params.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/initialize/response/initialize-response.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/invoice.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/payment-config.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/payment-form.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/payment.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/status/check-status/request/check-status-request.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/status/check-status/response/check-status-response.class.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/status/check-status/response/check-status-response.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/status/finance-info-field.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/status/line-item.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/status/save-payment-method-status/api/saved-payment-account-changes.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/status/save-payment-method-status/api/saved-payment-account.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/status/save-payment-method-status/save-payment-method-status.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/status/status-finance-info.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/status/status-groups.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/status/status-order.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/status/status-request/request/status-request.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/status/status-request/required-status-search-params.const.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/status/status-request/response/status-response.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/status/status-request/status-request-params.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/status/status-request/status-search-param.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/status/status-request/status-search-params.map.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/status/status-settings.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/status/status-updated.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/status/status.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/status/status.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/status/title-class.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/status/web-socket-client-type.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/status/websocket-status/websocket-status.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/submit/request/submit-request.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/submit/response/is-submit-response.function.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/submit/response/submit-response.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/sync/field-async-validation.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/sync/field-sync-state.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/sync/request/sync-request.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/sync/response/sync-response.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/notify-dfp-status/request/notify-dfp-status-request.class.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/notify-dfp-status/request/notify-dfp-status-request.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/status-three-ds/request/status-three-ds-request.class.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/status-three-ds/request/status-three-ds-request.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/status-three-ds/response/status-three-ds-response.class.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/status-three-ds/response/status-three-ds-response.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/status-three-ds/status-three-ds-response.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/status-three-ds/status-types.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/status-three-ds/three-ds-checkout-form.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/three-ds/reinsurance-check/timer.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/three-ds/three-ds-20/status-update.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/three-ds/three-ds-form.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/three-ds/three-ds-status-websocket-types.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/virtual-currency.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/xps-api-part.abstract.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/xps-checkout.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/xps-comand.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/xps-error.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/xps-finance.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/xps-message.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/xps-purchase.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/xps-request-params.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/xps-request.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/xps-response.error.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/xps-response.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment/xps-summary.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment-methods/payment-method-api.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment-methods/payment-method.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment-methods/payment-methods-api.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment-methods/payment-methods-request-params.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment-methods/payment-methods-response.class.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment-methods/payment-methods-response.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/payment-methods/payment-methods-response.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/performance/xhr-action.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/properties.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/saved-methods/saved-method-api.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/saved-methods/saved-method.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/saved-methods/saved-methods-request-params.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/saved-methods/saved-methods-response.class.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/saved-methods/saved-methods-response.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/saved-methods/saved-methods-response.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/apple-pay/apple-pay-integration.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/apple-pay/apple-pay-params.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/apple-pay/apple-pay.const.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/apple-pay/apple-pay.errors.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/apple-pay/checkout-params.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/google-pay/google-pay-button-color.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/google-pay/google-pay-checkout.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/google-pay/google-pay-init-params.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/google-pay/google-pay-library.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/sdk-payment-methods.const.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/sdk-payment-systems-initial-data.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/sdk-payment-systems.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/settings/auto-redirect-on-status.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/settings/balance.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/settings/bonus.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/settings/configuration.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/settings/empty-utils-response.error.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/settings/header-type.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/settings/offer.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/settings/project.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/settings/purchase.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/settings/settings-mode.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/settings/settings.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/settings/status-back-show.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/settings/tracking-info.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/settings/user.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/settings/utils-response.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/type-guards/is-null.function.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/type-guards/is-string.function.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/type-guards/is-undefined.function.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/url/search-params.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/user-agent/browserInfo.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/user-agent/browsers.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/user-agent/device.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/user-agent/os.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/user-agent/user-agent-data.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/user-balance/user-balance-api.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/user-balance/user-balance-request-params.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/user-balance/user-balance-response.class.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/user-balance/user-balance-response.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/event-builder/event-parameter-types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/event-builder/invoice.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/event-builder/purchase.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/event-builder/user-behaviour-event.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/one-time-analytics-events.const.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/user-behaviour-analytics.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/user-behaviour-event/user-behaviour-event-categories.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/user-behaviour-event/user-behaviour-event-types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/user-behaviour-event-name.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/user-session-options.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/web-socket/web-socket-client-type.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/web-socket/web-socket.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/window.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/xps-boolean.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/xsolla-payment-client-core.mjs +0 -0
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { interval, of, Subject } from 'rxjs';
|
|
3
|
-
import { debounce, filter, map } from 'rxjs/operators';
|
|
4
|
-
import { windowToken } from '../window.token';
|
|
5
|
-
import { defaultApiUrl, sandboxApiUrl } from '../http/secure-api/api-url.const';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class XhrActionService {
|
|
8
|
-
constructor(window) {
|
|
9
|
-
this.window = window;
|
|
10
|
-
this.pauseTime = 1000;
|
|
11
|
-
this.userInputEventNames = ['click', 'change'];
|
|
12
|
-
this.isXhrActionStarted = false;
|
|
13
|
-
this.apiRequestEntries = [];
|
|
14
|
-
this.cdnRequestEntries = [];
|
|
15
|
-
this.entriesSubject = new Subject();
|
|
16
|
-
}
|
|
17
|
-
getXhrAction() {
|
|
18
|
-
if (!this.window.performance || !this.window.PerformanceObserver) {
|
|
19
|
-
return of();
|
|
20
|
-
}
|
|
21
|
-
this.getUserInput().subscribe(() => this.window.performance.mark('userInput'));
|
|
22
|
-
this.getPerformance().subscribe((entry) => this.processEntry(entry));
|
|
23
|
-
return this.getPauseEvent().pipe(map(() => {
|
|
24
|
-
const event = {
|
|
25
|
-
name: this.getApiRequestName(),
|
|
26
|
-
duration: this.getDuration([
|
|
27
|
-
...this.apiRequestEntries,
|
|
28
|
-
...this.cdnRequestEntries,
|
|
29
|
-
]),
|
|
30
|
-
apiRequestCount: this.apiRequestEntries.length,
|
|
31
|
-
apiRequestDuration: this.getDuration(this.apiRequestEntries),
|
|
32
|
-
cdnRequestCount: this.cdnRequestEntries.length,
|
|
33
|
-
cdnRequestDuration: this.getDuration(this.cdnRequestEntries),
|
|
34
|
-
};
|
|
35
|
-
this.stopXhrAction();
|
|
36
|
-
return event;
|
|
37
|
-
}));
|
|
38
|
-
}
|
|
39
|
-
processEntry(entry) {
|
|
40
|
-
const isApiRequest = entry.name.includes(defaultApiUrl || sandboxApiUrl);
|
|
41
|
-
const cdnUrl = '';
|
|
42
|
-
const isCdnRequest = !isApiRequest && entry.name.startsWith(cdnUrl);
|
|
43
|
-
if (this.isXhrActionStarted && isApiRequest) {
|
|
44
|
-
this.apiRequestEntries.push(entry);
|
|
45
|
-
}
|
|
46
|
-
if (this.isXhrActionStarted && isCdnRequest) {
|
|
47
|
-
this.cdnRequestEntries.push(entry);
|
|
48
|
-
}
|
|
49
|
-
if (isApiRequest && !this.isXhrActionStarted) {
|
|
50
|
-
const userInputEntries = this.window.performance.getEntriesByName('userInput', 'mark');
|
|
51
|
-
const userInputEntry = userInputEntries[userInputEntries.length - 1];
|
|
52
|
-
if (userInputEntry) {
|
|
53
|
-
this.startXhrAction(entry);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
if (isApiRequest || isCdnRequest) {
|
|
57
|
-
this.entriesSubject.next(entry);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
startXhrAction(xhrEntry) {
|
|
61
|
-
this.isXhrActionStarted = true;
|
|
62
|
-
this.apiRequestEntries.push(xhrEntry);
|
|
63
|
-
}
|
|
64
|
-
stopXhrAction() {
|
|
65
|
-
this.isXhrActionStarted = false;
|
|
66
|
-
this.apiRequestEntries = [];
|
|
67
|
-
this.cdnRequestEntries = [];
|
|
68
|
-
}
|
|
69
|
-
getUserInput() {
|
|
70
|
-
const userInputSubject = new Subject();
|
|
71
|
-
this.userInputEventNames.forEach((eventName) => {
|
|
72
|
-
this.window.addEventListener(eventName, () => userInputSubject.next());
|
|
73
|
-
});
|
|
74
|
-
return userInputSubject;
|
|
75
|
-
}
|
|
76
|
-
getPerformance() {
|
|
77
|
-
const performanceSubject = new Subject();
|
|
78
|
-
if (this.window.PerformanceObserver) {
|
|
79
|
-
const observer = new this.window.PerformanceObserver((list) => {
|
|
80
|
-
list.getEntries().forEach((entry) => {
|
|
81
|
-
return performanceSubject.next(entry);
|
|
82
|
-
});
|
|
83
|
-
});
|
|
84
|
-
observer.observe({ entryTypes: ['resource'] });
|
|
85
|
-
}
|
|
86
|
-
return performanceSubject;
|
|
87
|
-
}
|
|
88
|
-
getApiRequestName() {
|
|
89
|
-
return this.apiRequestEntries[0].name.split(defaultApiUrl)[1].split('?')[0];
|
|
90
|
-
}
|
|
91
|
-
getDuration(entries) {
|
|
92
|
-
if (!entries.length) {
|
|
93
|
-
return 0;
|
|
94
|
-
}
|
|
95
|
-
const firstApiRequestEntry = entries.reduce((prev, current) => (prev.startTime < current.startTime ? prev : current));
|
|
96
|
-
const lastApiRequestEntry = entries.reduce((prev, current) => prev.responseEnd > current.responseEnd ? prev : current);
|
|
97
|
-
return Math.round(lastApiRequestEntry.responseEnd - firstApiRequestEntry.startTime);
|
|
98
|
-
}
|
|
99
|
-
getPauseEvent() {
|
|
100
|
-
return this.entriesSubject.pipe(debounce(() => interval(this.pauseTime)), filter(() => this.isXhrActionStarted));
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
XhrActionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XhrActionService, deps: [{ token: windowToken }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
104
|
-
XhrActionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XhrActionService, providedIn: 'root' });
|
|
105
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XhrActionService, decorators: [{
|
|
106
|
-
type: Injectable,
|
|
107
|
-
args: [{
|
|
108
|
-
providedIn: 'root',
|
|
109
|
-
}]
|
|
110
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
111
|
-
type: Inject,
|
|
112
|
-
args: [windowToken]
|
|
113
|
-
}] }]; } });
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGhyLWFjdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGVyZm9ybWFuY2UveGhyLWFjdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFLaEYsTUFBTSxPQUFPLGdCQUFnQjtJQVEzQixZQUVtQixNQUFzQjtRQUF0QixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQVR4QixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLHdCQUFtQixHQUFhLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzdELHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUMzQixzQkFBaUIsR0FBZ0MsRUFBRSxDQUFDO1FBQ3BELHNCQUFpQixHQUFnQyxFQUFFLENBQUM7UUFDM0MsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBNkIsQ0FBQztJQUt4RSxDQUFDO0lBRUcsWUFBWTtRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixFQUFFO1lBQ2hFLE9BQU8sRUFBRSxFQUFFLENBQUM7U0FDYjtRQUVELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxTQUFTLENB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O1lBQ25CLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7UUFFRCxNQUFNLG9CQUFvQixHQUE4QixPQUFPLENBQUMsTUFBTSxDQUNwRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUN6RSxDQUFDO1FBQ0YsTUFBTSxtQkFBbUIsR0FBOEIsT0FBTyxDQUFDLE1BQU0sQ0FDbkUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FDaEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDMUQsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FDZixtQkFBbUIsQ0FBQyxXQUFXLEdBQUcsb0JBQW9CLENBQUMsU0FBUyxDQUNqRSxDQUFDO0lBQ0osQ0FBQztJQUVPLGFBQWE7UUFDbkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDN0IsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFDeEMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUN0QyxDQUFDO0lBQ0osQ0FBQzs7NkdBbkpVLGdCQUFnQixrQkFTakIsV0FBVztpSEFUVixnQkFBZ0IsY0FGZixNQUFNOzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVVJLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW50ZXJ2YWwsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZSwgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBYaHJBY3Rpb24gfSBmcm9tICcuL3hoci1hY3Rpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IEV4dGVuZGVkV2luZG93IH0gZnJvbSAnLi4vZXh0ZW5kZWQtd2luZG93LmludGVyZmFjZSc7XG5pbXBvcnQgeyB3aW5kb3dUb2tlbiB9IGZyb20gJy4uL3dpbmRvdy50b2tlbic7XG5pbXBvcnQgeyBkZWZhdWx0QXBpVXJsLCBzYW5kYm94QXBpVXJsIH0gZnJvbSAnLi4vaHR0cC9zZWN1cmUtYXBpL2FwaS11cmwuY29uc3QnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgWGhyQWN0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGF1c2VUaW1lID0gMTAwMDtcbiAgcHJpdmF0ZSByZWFkb25seSB1c2VySW5wdXRFdmVudE5hbWVzOiBzdHJpbmdbXSA9IFsnY2xpY2snLCAnY2hhbmdlJ107XG4gIHByaXZhdGUgaXNYaHJBY3Rpb25TdGFydGVkID0gZmFsc2U7XG4gIHByaXZhdGUgYXBpUmVxdWVzdEVudHJpZXM6IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmdbXSA9IFtdO1xuICBwcml2YXRlIGNkblJlcXVlc3RFbnRyaWVzOiBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBlbnRyaWVzU3ViamVjdCA9IG5ldyBTdWJqZWN0PFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc+KCk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3Qod2luZG93VG9rZW4pXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3c6IEV4dGVuZGVkV2luZG93XG4gICkge31cblxuICBwdWJsaWMgZ2V0WGhyQWN0aW9uKCk6IE9ic2VydmFibGU8WGhyQWN0aW9uPiB7XG4gICAgaWYgKCF0aGlzLndpbmRvdy5wZXJmb3JtYW5jZSB8fCAhdGhpcy53aW5kb3cuUGVyZm9ybWFuY2VPYnNlcnZlcikge1xuICAgICAgcmV0dXJuIG9mKCk7XG4gICAgfVxuXG4gICAgdGhpcy5nZXRVc2VySW5wdXQoKS5zdWJzY3JpYmUoKCkgPT5cbiAgICAgIHRoaXMud2luZG93LnBlcmZvcm1hbmNlLm1hcmsoJ3VzZXJJbnB1dCcpXG4gICAgKTtcblxuICAgIHRoaXMuZ2V0UGVyZm9ybWFuY2UoKS5zdWJzY3JpYmUoKGVudHJ5OiBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nKSA9PlxuICAgICAgdGhpcy5wcm9jZXNzRW50cnkoZW50cnkpXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLmdldFBhdXNlRXZlbnQoKS5waXBlKFxuICAgICAgbWFwPFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcsIFhockFjdGlvbj4oKCkgPT4ge1xuICAgICAgICBjb25zdCBldmVudDogWGhyQWN0aW9uID0ge1xuICAgICAgICAgIG5hbWU6IHRoaXMuZ2V0QXBpUmVxdWVzdE5hbWUoKSxcbiAgICAgICAgICBkdXJhdGlvbjogdGhpcy5nZXREdXJhdGlvbihbXG4gICAgICAgICAgICAuLi50aGlzLmFwaVJlcXVlc3RFbnRyaWVzLFxuICAgICAgICAgICAgLi4udGhpcy5jZG5SZXF1ZXN0RW50cmllcyxcbiAgICAgICAgICBdKSxcbiAgICAgICAgICBhcGlSZXF1ZXN0Q291bnQ6IHRoaXMuYXBpUmVxdWVzdEVudHJpZXMubGVuZ3RoLFxuICAgICAgICAgIGFwaVJlcXVlc3REdXJhdGlvbjogdGhpcy5nZXREdXJhdGlvbih0aGlzLmFwaVJlcXVlc3RFbnRyaWVzKSxcbiAgICAgICAgICBjZG5SZXF1ZXN0Q291bnQ6IHRoaXMuY2RuUmVxdWVzdEVudHJpZXMubGVuZ3RoLFxuICAgICAgICAgIGNkblJlcXVlc3REdXJhdGlvbjogdGhpcy5nZXREdXJhdGlvbih0aGlzLmNkblJlcXVlc3RFbnRyaWVzKSxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLnN0b3BYaHJBY3Rpb24oKTtcblxuICAgICAgICByZXR1cm4gZXZlbnQ7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NFbnRyeShlbnRyeTogUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyk6IHZvaWQge1xuICAgIGNvbnN0IGlzQXBpUmVxdWVzdDogYm9vbGVhbiA9IGVudHJ5Lm5hbWUuaW5jbHVkZXMoXG4gICAgICBkZWZhdWx0QXBpVXJsIHx8IHNhbmRib3hBcGlVcmxcbiAgICApO1xuXG4gICAgY29uc3QgY2RuVXJsID0gJyc7XG4gICAgY29uc3QgaXNDZG5SZXF1ZXN0OiBib29sZWFuID1cbiAgICAgICFpc0FwaVJlcXVlc3QgJiYgZW50cnkubmFtZS5zdGFydHNXaXRoKGNkblVybCk7XG5cbiAgICBpZiAodGhpcy5pc1hockFjdGlvblN0YXJ0ZWQgJiYgaXNBcGlSZXF1ZXN0KSB7XG4gICAgICB0aGlzLmFwaVJlcXVlc3RFbnRyaWVzLnB1c2goZW50cnkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzWGhyQWN0aW9uU3RhcnRlZCAmJiBpc0NkblJlcXVlc3QpIHtcbiAgICAgIHRoaXMuY2RuUmVxdWVzdEVudHJpZXMucHVzaChlbnRyeSk7XG4gICAgfVxuXG4gICAgaWYgKGlzQXBpUmVxdWVzdCAmJiAhdGhpcy5pc1hockFjdGlvblN0YXJ0ZWQpIHtcbiAgICAgIGNvbnN0IHVzZXJJbnB1dEVudHJpZXM6IFBlcmZvcm1hbmNlRW50cnlbXSA9XG4gICAgICAgIHRoaXMud2luZG93LnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeU5hbWUoJ3VzZXJJbnB1dCcsICdtYXJrJyk7XG4gICAgICBjb25zdCB1c2VySW5wdXRFbnRyeTogUGVyZm9ybWFuY2VFbnRyeSA9XG4gICAgICAgIHVzZXJJbnB1dEVudHJpZXNbdXNlcklucHV0RW50cmllcy5sZW5ndGggLSAxXTtcblxuICAgICAgaWYgKHVzZXJJbnB1dEVudHJ5KSB7XG4gICAgICAgIHRoaXMuc3RhcnRYaHJBY3Rpb24oZW50cnkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpc0FwaVJlcXVlc3QgfHwgaXNDZG5SZXF1ZXN0KSB7XG4gICAgICB0aGlzLmVudHJpZXNTdWJqZWN0Lm5leHQoZW50cnkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRYaHJBY3Rpb24oeGhyRW50cnk6IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcpOiB2b2lkIHtcbiAgICB0aGlzLmlzWGhyQWN0aW9uU3RhcnRlZCA9IHRydWU7XG4gICAgdGhpcy5hcGlSZXF1ZXN0RW50cmllcy5wdXNoKHhockVudHJ5KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RvcFhockFjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmlzWGhyQWN0aW9uU3RhcnRlZCA9IGZhbHNlO1xuICAgIHRoaXMuYXBpUmVxdWVzdEVudHJpZXMgPSBbXTtcbiAgICB0aGlzLmNkblJlcXVlc3RFbnRyaWVzID0gW107XG4gIH1cblxuICBwcml2YXRlIGdldFVzZXJJbnB1dCgpOiBTdWJqZWN0PHZvaWQ+IHtcbiAgICBjb25zdCB1c2VySW5wdXRTdWJqZWN0OiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIHRoaXMudXNlcklucHV0RXZlbnROYW1lcy5mb3JFYWNoKChldmVudE5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgdGhpcy53aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsICgpID0+IHVzZXJJbnB1dFN1YmplY3QubmV4dCgpKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB1c2VySW5wdXRTdWJqZWN0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQZXJmb3JtYW5jZSgpOiBTdWJqZWN0PFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc+IHtcbiAgICBjb25zdCBwZXJmb3JtYW5jZVN1YmplY3Q6IFN1YmplY3Q8UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZz4gPVxuICAgICAgbmV3IFN1YmplY3QoKTtcblxuICAgIGlmICh0aGlzLndpbmRvdy5QZXJmb3JtYW5jZU9ic2VydmVyKSB7XG4gICAgICBjb25zdCBvYnNlcnZlciA9IG5ldyB0aGlzLndpbmRvdy5QZXJmb3JtYW5jZU9ic2VydmVyKFxuICAgICAgICAobGlzdDogUGVyZm9ybWFuY2VPYnNlcnZlckVudHJ5TGlzdCkgPT4ge1xuICAgICAgICAgIGxpc3QuZ2V0RW50cmllcygpLmZvckVhY2goKGVudHJ5OiBQZXJmb3JtYW5jZUVudHJ5KTogdm9pZCA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcGVyZm9ybWFuY2VTdWJqZWN0Lm5leHQoZW50cnkgYXMgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICAgIG9ic2VydmVyLm9ic2VydmUoeyBlbnRyeVR5cGVzOiBbJ3Jlc291cmNlJ10gfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBlcmZvcm1hbmNlU3ViamVjdDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QXBpUmVxdWVzdE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5hcGlSZXF1ZXN0RW50cmllc1swXS5uYW1lLnNwbGl0KGRlZmF1bHRBcGlVcmwpWzFdLnNwbGl0KCc/JylbMF07XG4gIH1cblxuICBwcml2YXRlIGdldER1cmF0aW9uKGVudHJpZXM6IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmdbXSk6IG51bWJlciB7XG4gICAgaWYgKCFlbnRyaWVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgY29uc3QgZmlyc3RBcGlSZXF1ZXN0RW50cnk6IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgPSBlbnRyaWVzLnJlZHVjZShcbiAgICAgIChwcmV2LCBjdXJyZW50KSA9PiAocHJldi5zdGFydFRpbWUgPCBjdXJyZW50LnN0YXJ0VGltZSA/IHByZXYgOiBjdXJyZW50KVxuICAgICk7XG4gICAgY29uc3QgbGFzdEFwaVJlcXVlc3RFbnRyeTogUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyA9IGVudHJpZXMucmVkdWNlKFxuICAgICAgKHByZXYsIGN1cnJlbnQpID0+XG4gICAgICAgIHByZXYucmVzcG9uc2VFbmQgPiBjdXJyZW50LnJlc3BvbnNlRW5kID8gcHJldiA6IGN1cnJlbnRcbiAgICApO1xuXG4gICAgcmV0dXJuIE1hdGgucm91bmQoXG4gICAgICBsYXN0QXBpUmVxdWVzdEVudHJ5LnJlc3BvbnNlRW5kIC0gZmlyc3RBcGlSZXF1ZXN0RW50cnkuc3RhcnRUaW1lXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGF1c2VFdmVudCgpOiBPYnNlcnZhYmxlPFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc+IHtcbiAgICByZXR1cm4gdGhpcy5lbnRyaWVzU3ViamVjdC5waXBlKFxuICAgICAgZGVib3VuY2UoKCkgPT4gaW50ZXJ2YWwodGhpcy5wYXVzZVRpbWUpKSxcbiAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmlzWGhyQWN0aW9uU3RhcnRlZClcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { HttpHeaders } from '@angular/common/http';
|
|
2
|
-
import { Inject, Injectable } from '@angular/core';
|
|
3
|
-
import { lastValueFrom, map } from 'rxjs';
|
|
4
|
-
import { ResponseError } from '../exceptions-handling/errors/response-error.class';
|
|
5
|
-
import { savedMethodsResponseFactoryToken, } from './saved-methods-response.token';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../settings/settings.service";
|
|
8
|
-
import * as i2 from "../http/secure-api/secure-api.service";
|
|
9
|
-
export class SavedMethodsService {
|
|
10
|
-
constructor(responseFactory, settingsService, secureApi) {
|
|
11
|
-
this.responseFactory = responseFactory;
|
|
12
|
-
this.settingsService = settingsService;
|
|
13
|
-
this.secureApi = secureApi;
|
|
14
|
-
this.apiRoute = 'savedmethods';
|
|
15
|
-
this.cache = new Map();
|
|
16
|
-
}
|
|
17
|
-
async getList(needResetCache = false) {
|
|
18
|
-
if (needResetCache) {
|
|
19
|
-
this.cache.clear();
|
|
20
|
-
}
|
|
21
|
-
const response = await this.request();
|
|
22
|
-
return response.list;
|
|
23
|
-
}
|
|
24
|
-
async request() {
|
|
25
|
-
const requestParams = {
|
|
26
|
-
access_token: this.settingsService.token,
|
|
27
|
-
};
|
|
28
|
-
const cacheKey = JSON.stringify(requestParams);
|
|
29
|
-
if (!this.cache.has(cacheKey)) {
|
|
30
|
-
this.cache.set(cacheKey, lastValueFrom(this.secureApi
|
|
31
|
-
.post(this.apiRoute, new URLSearchParams({ ...requestParams }), {
|
|
32
|
-
headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8'),
|
|
33
|
-
responseType: 'json',
|
|
34
|
-
})
|
|
35
|
-
.pipe(map((response) => this.responseFactory(response)))).catch((error) => {
|
|
36
|
-
throw new ResponseError(error.message);
|
|
37
|
-
}));
|
|
38
|
-
}
|
|
39
|
-
// @ts-expect-error the map already has the cache with key
|
|
40
|
-
return this.cache.get(cacheKey);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
SavedMethodsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SavedMethodsService, deps: [{ token: savedMethodsResponseFactoryToken }, { token: i1.SettingsService }, { token: i2.SecureApiClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
44
|
-
SavedMethodsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SavedMethodsService, providedIn: 'root' });
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SavedMethodsService, decorators: [{
|
|
46
|
-
type: Injectable,
|
|
47
|
-
args: [{
|
|
48
|
-
providedIn: 'root',
|
|
49
|
-
}]
|
|
50
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
51
|
-
type: Inject,
|
|
52
|
-
args: [savedMethodsResponseFactoryToken]
|
|
53
|
-
}] }, { type: i1.SettingsService }, { type: i2.SecureApiClient }]; } });
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZWQtbWV0aG9kcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvc2F2ZWQtbWV0aG9kcy9zYXZlZC1tZXRob2RzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUtuRixPQUFPLEVBRUwsZ0NBQWdDLEdBQ2pDLE1BQU0sZ0NBQWdDLENBQUM7Ozs7QUFPeEMsTUFBTSxPQUFPLG1CQUFtQjtJQUs5QixZQUVtQixlQUE0QyxFQUM1QyxlQUFnQyxFQUNoQyxTQUEwQjtRQUYxQixvQkFBZSxHQUFmLGVBQWUsQ0FBNkI7UUFDNUMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBUjVCLGFBQVEsR0FBRyxjQUFjLENBQUM7UUFFMUIsVUFBSyxHQUFHLElBQUksR0FBRyxFQUF5QyxDQUFDO0lBT3ZFLENBQUM7SUFFRyxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsR0FBRyxLQUFLO1FBQ3pDLElBQUksY0FBYyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDcEI7UUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN0QyxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUVPLEtBQUssQ0FBQyxPQUFPO1FBQ25CLE1BQU0sYUFBYSxHQUE4QjtZQUMvQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLO1NBQ3pDLENBQUM7UUFDRixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRS9DLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FDWixRQUFRLEVBQ1IsYUFBYSxDQUNYLElBQUksQ0FBQyxTQUFTO2lCQUNYLElBQUksQ0FDSCxJQUFJLENBQUMsUUFBUSxFQUNiLElBQUksZUFBZSxDQUFDLEVBQUUsR0FBRyxhQUFhLEVBQUUsQ0FBQyxFQUN6QztnQkFDRSxPQUFPLEVBQUUsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQzVCLGNBQWMsRUFDZCxrREFBa0QsQ0FDbkQ7Z0JBQ0QsWUFBWSxFQUFFLE1BQU07YUFDckIsQ0FDRjtpQkFDQSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FDM0QsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFZLEVBQUUsRUFBRTtnQkFDdkIsTUFBTSxJQUFJLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDekMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztTQUNIO1FBRUQsMERBQTBEO1FBQzFELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsQ0FBQzs7Z0hBcERVLG1CQUFtQixrQkFNcEIsZ0NBQWdDO29IQU4vQixtQkFBbUIsY0FGbEIsTUFBTTsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFPSSxNQUFNOzJCQUFDLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBsYXN0VmFsdWVGcm9tLCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJlc3BvbnNlRXJyb3IgfSBmcm9tICcuLi9leGNlcHRpb25zLWhhbmRsaW5nL2Vycm9ycy9yZXNwb25zZS1lcnJvci5jbGFzcyc7XG5pbXBvcnQgeyBTZWN1cmVBcGlDbGllbnQgfSBmcm9tICcuLi9odHRwL3NlY3VyZS1hcGkvc2VjdXJlLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IFNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uL3NldHRpbmdzL3NldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2F2ZWRNZXRob2RzUmVxdWVzdFBhcmFtcyB9IGZyb20gJy4vc2F2ZWQtbWV0aG9kcy1yZXF1ZXN0LXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2F2ZWRNZXRob2RzUmVzcG9uc2VBcGkgfSBmcm9tICcuL3NhdmVkLW1ldGhvZHMtcmVzcG9uc2UuaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIFNhdmVkTWV0aG9kc1Jlc3BvbnNlRmFjdG9yeSxcbiAgc2F2ZWRNZXRob2RzUmVzcG9uc2VGYWN0b3J5VG9rZW4sXG59IGZyb20gJy4vc2F2ZWQtbWV0aG9kcy1yZXNwb25zZS50b2tlbic7XG5pbXBvcnQgeyBTYXZlZE1ldGhvZHNSZXNwb25zZSB9IGZyb20gJy4vc2F2ZWQtbWV0aG9kcy1yZXNwb25zZS5jbGFzcyc7XG5pbXBvcnQgeyBTYXZlZE1ldGhvZCB9IGZyb20gJy4vc2F2ZWQtbWV0aG9kLmludGVyZmFjZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTYXZlZE1ldGhvZHNTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBhcGlSb3V0ZSA9ICdzYXZlZG1ldGhvZHMnO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY2FjaGUgPSBuZXcgTWFwPHN0cmluZywgUHJvbWlzZTxTYXZlZE1ldGhvZHNSZXNwb25zZT4+KCk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3Qoc2F2ZWRNZXRob2RzUmVzcG9uc2VGYWN0b3J5VG9rZW4pXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXNwb25zZUZhY3Rvcnk6IFNhdmVkTWV0aG9kc1Jlc3BvbnNlRmFjdG9yeSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNldHRpbmdzU2VydmljZTogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2VjdXJlQXBpOiBTZWN1cmVBcGlDbGllbnRcbiAgKSB7fVxuXG4gIHB1YmxpYyBhc3luYyBnZXRMaXN0KG5lZWRSZXNldENhY2hlID0gZmFsc2UpOiBQcm9taXNlPFNhdmVkTWV0aG9kW10+IHtcbiAgICBpZiAobmVlZFJlc2V0Q2FjaGUpIHtcbiAgICAgIHRoaXMuY2FjaGUuY2xlYXIoKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdCgpO1xuICAgIHJldHVybiByZXNwb25zZS5saXN0O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZXF1ZXN0KCk6IFByb21pc2U8U2F2ZWRNZXRob2RzUmVzcG9uc2U+IHtcbiAgICBjb25zdCByZXF1ZXN0UGFyYW1zOiBTYXZlZE1ldGhvZHNSZXF1ZXN0UGFyYW1zID0ge1xuICAgICAgYWNjZXNzX3Rva2VuOiB0aGlzLnNldHRpbmdzU2VydmljZS50b2tlbixcbiAgICB9O1xuICAgIGNvbnN0IGNhY2hlS2V5ID0gSlNPTi5zdHJpbmdpZnkocmVxdWVzdFBhcmFtcyk7XG5cbiAgICBpZiAoIXRoaXMuY2FjaGUuaGFzKGNhY2hlS2V5KSkge1xuICAgICAgdGhpcy5jYWNoZS5zZXQoXG4gICAgICAgIGNhY2hlS2V5LFxuICAgICAgICBsYXN0VmFsdWVGcm9tKFxuICAgICAgICAgIHRoaXMuc2VjdXJlQXBpXG4gICAgICAgICAgICAucG9zdDxTYXZlZE1ldGhvZHNSZXNwb25zZUFwaT4oXG4gICAgICAgICAgICAgIHRoaXMuYXBpUm91dGUsXG4gICAgICAgICAgICAgIG5ldyBVUkxTZWFyY2hQYXJhbXMoeyAuLi5yZXF1ZXN0UGFyYW1zIH0pLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZScsXG4gICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PXV0Zi04J1xuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2UpID0+IHRoaXMucmVzcG9uc2VGYWN0b3J5KHJlc3BvbnNlKSkpXG4gICAgICAgICkuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICAgIHRocm93IG5ldyBSZXNwb25zZUVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHRoZSBtYXAgYWxyZWFkeSBoYXMgdGhlIGNhY2hlIHdpdGgga2V5XG4gICAgcmV0dXJuIHRoaXMuY2FjaGUuZ2V0KGNhY2hlS2V5KTtcbiAgfVxufVxuIl19
|
|
@@ -1,268 +0,0 @@
|
|
|
1
|
-
import { Subject } from 'rxjs';
|
|
2
|
-
import { Inject, Injectable } from '@angular/core';
|
|
3
|
-
import { applePayVersion, safariVersionForIframeIntegration, } from './apple-pay.const';
|
|
4
|
-
import { agreementsGroup } from '../../agreementsGroup.const';
|
|
5
|
-
import { windowToken } from '../../window.token';
|
|
6
|
-
import { FieldNames } from '../../payment/field-names.enum';
|
|
7
|
-
import { ApplePayErrors } from './apple-pay.errors.enum';
|
|
8
|
-
import { pagesRoutes } from '../../payment/actions/redirect/ps4-pages/pages-routes.const';
|
|
9
|
-
import { applePayId } from '../../payment/actions/redirect/ps4-pages/pages-payment-methods-id.const';
|
|
10
|
-
import { payStation4Url, sandboxPayStationUrl, } from '../../payment/actions/redirect/pay-station4-url.const';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
import * as i1 from "../../user-agent/user-agent.service";
|
|
13
|
-
import * as i2 from "../../payment/finance-details/summary/summary-finance-details-adapter.service";
|
|
14
|
-
export class ApplePayService {
|
|
15
|
-
get paymentParameters() {
|
|
16
|
-
return this.applePayParams;
|
|
17
|
-
}
|
|
18
|
-
get payment$() {
|
|
19
|
-
return this.payment.asObservable();
|
|
20
|
-
}
|
|
21
|
-
get error$() {
|
|
22
|
-
return this.error.asObservable();
|
|
23
|
-
}
|
|
24
|
-
get integrationType$() {
|
|
25
|
-
return this.integrationType.asObservable();
|
|
26
|
-
}
|
|
27
|
-
constructor(window, userAgentService, summaryFinanceDetailsAdapterService) {
|
|
28
|
-
this.window = window;
|
|
29
|
-
this.userAgentService = userAgentService;
|
|
30
|
-
this.summaryFinanceDetailsAdapterService = summaryFinanceDetailsAdapterService;
|
|
31
|
-
this.agreementFieldsNames = agreementsGroup;
|
|
32
|
-
this.payment = new Subject();
|
|
33
|
-
this.error = new Subject();
|
|
34
|
-
this.integrationType = new Subject();
|
|
35
|
-
this.paymentClient = null;
|
|
36
|
-
this.applePayParams = null;
|
|
37
|
-
this.order = null;
|
|
38
|
-
this.api = this.loadBraintree();
|
|
39
|
-
}
|
|
40
|
-
setApplePayParams(data) {
|
|
41
|
-
const formFields = data?.paymentForm?.fields;
|
|
42
|
-
const summary = data?.paymentForm?.summary;
|
|
43
|
-
if (!formFields || !summary) {
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
const fields = formFields.reduce((acc, field) => {
|
|
47
|
-
if (this.agreementFieldsNames.includes(field.name) &&
|
|
48
|
-
field.isVisible === '1') {
|
|
49
|
-
acc[field.name] = field.title;
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
acc[field.name] = field.value;
|
|
53
|
-
}
|
|
54
|
-
return acc;
|
|
55
|
-
}, {});
|
|
56
|
-
const agreements = this.agreementFieldsNames
|
|
57
|
-
.map((fieldName) => fields[fieldName])
|
|
58
|
-
.filter(Boolean);
|
|
59
|
-
this.applePayParams = {
|
|
60
|
-
tokenKey: this.getAppleToken(formFields),
|
|
61
|
-
totalLabel: fields['label_applePay'] ?? '',
|
|
62
|
-
totalAmount: this.getTotalAmount(summary),
|
|
63
|
-
currencyCode: this.getTotalCurrency(summary),
|
|
64
|
-
countryCode: fields['countryCode'] ?? '',
|
|
65
|
-
merchantCapabilities: this.getJsonValueFromField(fields, 'merchantCapabilities'),
|
|
66
|
-
supportedNetworks: this.getJsonValueFromField(fields, 'supportedNetworks'),
|
|
67
|
-
agreements: agreements,
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
async initLibrary(tokenKey) {
|
|
71
|
-
try {
|
|
72
|
-
const api = await this.api;
|
|
73
|
-
const clientInstance = await api.client.create({
|
|
74
|
-
authorization: tokenKey,
|
|
75
|
-
});
|
|
76
|
-
this.paymentClient = await api.applePay.create({
|
|
77
|
-
client: clientInstance,
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
catch (error) {
|
|
81
|
-
console.error('apple pay: initialize failed', error);
|
|
82
|
-
}
|
|
83
|
-
this.emitIntegrationType();
|
|
84
|
-
if (!this.paymentClient || !this.isDeviceCapable()) {
|
|
85
|
-
this.emitError(ApplePayErrors.deviceIsNotCapableError);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
redirectToPaymentPage(parameters, token, isSandbox) {
|
|
89
|
-
const route = pagesRoutes.get(applePayId);
|
|
90
|
-
if (!route) {
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
const query = new URLSearchParams({
|
|
94
|
-
...parameters,
|
|
95
|
-
merchantCapabilities: JSON.stringify(parameters.merchantCapabilities),
|
|
96
|
-
supportedNetworks: JSON.stringify(parameters.supportedNetworks),
|
|
97
|
-
token,
|
|
98
|
-
agreements: JSON.stringify(parameters.agreements),
|
|
99
|
-
});
|
|
100
|
-
if (this.order) {
|
|
101
|
-
query.append('order', this.order);
|
|
102
|
-
}
|
|
103
|
-
const payStationUrl = isSandbox ? sandboxPayStationUrl : payStation4Url;
|
|
104
|
-
return `${payStationUrl}/en${route}?${query.toString()}`;
|
|
105
|
-
}
|
|
106
|
-
setOrder(data) {
|
|
107
|
-
const summary = data?.paymentForm?.summary;
|
|
108
|
-
if (!summary) {
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
const financeDetails = this.summaryFinanceDetailsAdapterService.getFinanceDetails(summary);
|
|
112
|
-
if (financeDetails?.purchase && financeDetails?.finance) {
|
|
113
|
-
const cartItems = financeDetails.cartItems;
|
|
114
|
-
this.order = cartItems?.reduce((curr, item) => {
|
|
115
|
-
if (curr) {
|
|
116
|
-
return curr + `; ${item.title}`;
|
|
117
|
-
}
|
|
118
|
-
return curr + item.title;
|
|
119
|
-
}, '');
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
proceedCheckout(parameters) {
|
|
123
|
-
if (!parameters) {
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
if (!this.paymentClient || !this.isDeviceCapable()) {
|
|
127
|
-
console.warn('apple pay: device is not capable', this.paymentClient);
|
|
128
|
-
this.emitError(ApplePayErrors.deviceIsNotCapableError);
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
try {
|
|
132
|
-
const paymentRequest = this.paymentClient.createPaymentRequest({
|
|
133
|
-
total: {
|
|
134
|
-
label: parameters.totalLabel,
|
|
135
|
-
amount: parameters.totalAmount,
|
|
136
|
-
},
|
|
137
|
-
currencyCode: parameters.currencyCode,
|
|
138
|
-
countryCode: parameters.countryCode,
|
|
139
|
-
merchantCapabilities: parameters.merchantCapabilities,
|
|
140
|
-
supportedNetworks: parameters.supportedNetworks,
|
|
141
|
-
});
|
|
142
|
-
const session = new this.window.ApplePaySession(applePayVersion, paymentRequest);
|
|
143
|
-
session.onvalidatemerchant = (event) => {
|
|
144
|
-
console.info('apple pay: merchant validation', event);
|
|
145
|
-
this.paymentClient
|
|
146
|
-
?.performValidation({
|
|
147
|
-
validationURL: event.validationURL,
|
|
148
|
-
displayName: parameters?.totalLabel,
|
|
149
|
-
})
|
|
150
|
-
.then((merchantSession) => {
|
|
151
|
-
session.completeMerchantValidation(merchantSession);
|
|
152
|
-
})
|
|
153
|
-
.catch((error) => {
|
|
154
|
-
console.error('apple pay: merchant validation error', error);
|
|
155
|
-
this.emitError(ApplePayErrors.paymentError);
|
|
156
|
-
session.abort();
|
|
157
|
-
});
|
|
158
|
-
};
|
|
159
|
-
session.onpaymentauthorized = (event) => {
|
|
160
|
-
console.info('apple pay: payment authorization', event);
|
|
161
|
-
this.paymentClient
|
|
162
|
-
?.tokenize({
|
|
163
|
-
token: event.payment.token,
|
|
164
|
-
})
|
|
165
|
-
.then((authorizationResponse) => {
|
|
166
|
-
this.payment.next(authorizationResponse?.nonce ?? '');
|
|
167
|
-
session.completePayment(this.window.ApplePaySession.STATUS_SUCCESS);
|
|
168
|
-
})
|
|
169
|
-
.catch((error) => {
|
|
170
|
-
console.error('apple pay: payment authorization error', error);
|
|
171
|
-
this.emitError(ApplePayErrors.paymentError);
|
|
172
|
-
session.completePayment(this.window.ApplePaySession.STATUS_FAILURE);
|
|
173
|
-
});
|
|
174
|
-
};
|
|
175
|
-
session.oncancel = (event) => {
|
|
176
|
-
this.emitError(ApplePayErrors.paymentError);
|
|
177
|
-
console.error('apple pay: user cancel payment', event);
|
|
178
|
-
};
|
|
179
|
-
session.begin();
|
|
180
|
-
}
|
|
181
|
-
catch (error) {
|
|
182
|
-
console.error('apple pay: checkout error', error);
|
|
183
|
-
this.emitError(ApplePayErrors.paymentError);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
isDeviceCapable() {
|
|
187
|
-
try {
|
|
188
|
-
return Boolean(this.window.ApplePaySession?.supportsVersion(applePayVersion) &&
|
|
189
|
-
this.window.ApplePaySession?.canMakePayments());
|
|
190
|
-
}
|
|
191
|
-
catch (error) {
|
|
192
|
-
return false;
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
getTokenNonceFieldData(tokenNonce) {
|
|
196
|
-
const name = FieldNames.tokenApplePay;
|
|
197
|
-
const value = btoa(tokenNonce);
|
|
198
|
-
return { name, value };
|
|
199
|
-
}
|
|
200
|
-
updateApplePayParams(data) {
|
|
201
|
-
const summary = data?.summary;
|
|
202
|
-
if (!this.applePayParams || !summary) {
|
|
203
|
-
return;
|
|
204
|
-
}
|
|
205
|
-
this.applePayParams.totalAmount = this.getTotalAmount(summary);
|
|
206
|
-
this.applePayParams.currencyCode = this.getTotalCurrency(summary);
|
|
207
|
-
}
|
|
208
|
-
async loadBraintree() {
|
|
209
|
-
const api = await import('braintree-web');
|
|
210
|
-
return api;
|
|
211
|
-
}
|
|
212
|
-
getAppleToken(formFields) {
|
|
213
|
-
const appleTokenField = formFields.find((field) => {
|
|
214
|
-
return field.name === 'token_key';
|
|
215
|
-
});
|
|
216
|
-
if (!appleTokenField) {
|
|
217
|
-
return '';
|
|
218
|
-
}
|
|
219
|
-
return appleTokenField.value;
|
|
220
|
-
}
|
|
221
|
-
getTotalAmount(summary) {
|
|
222
|
-
const finance = summary?.finance;
|
|
223
|
-
const total = finance?.grand_total?.amount ?? finance?.total.amount;
|
|
224
|
-
return total?.toString() ?? '';
|
|
225
|
-
}
|
|
226
|
-
getTotalCurrency(summary) {
|
|
227
|
-
const finance = summary?.finance;
|
|
228
|
-
return finance?.grand_total?.currency ?? finance?.total?.currency ?? '';
|
|
229
|
-
}
|
|
230
|
-
getJsonValueFromField(fields, fieldName) {
|
|
231
|
-
const field = fields[fieldName];
|
|
232
|
-
try {
|
|
233
|
-
return field ? JSON.parse(field) : undefined;
|
|
234
|
-
}
|
|
235
|
-
catch (error) {
|
|
236
|
-
return undefined;
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
emitError(error) {
|
|
240
|
-
this.error.next(error);
|
|
241
|
-
}
|
|
242
|
-
emitIntegrationType() {
|
|
243
|
-
let integrationType;
|
|
244
|
-
if (this.paymentClient && this.isDeviceCapable()) {
|
|
245
|
-
integrationType = 'redirect';
|
|
246
|
-
}
|
|
247
|
-
else {
|
|
248
|
-
integrationType = 'none';
|
|
249
|
-
}
|
|
250
|
-
this.integrationType.next(integrationType);
|
|
251
|
-
}
|
|
252
|
-
canUseSdk() {
|
|
253
|
-
return !!(this.userAgentService.safariVersion &&
|
|
254
|
-
this.userAgentService.safariVersion >= safariVersionForIframeIntegration);
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
ApplePayService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ApplePayService, deps: [{ token: windowToken }, { token: i1.UserAgentService }, { token: i2.SummaryFinanceDetailsAdapterService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
258
|
-
ApplePayService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ApplePayService, providedIn: 'root' });
|
|
259
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ApplePayService, decorators: [{
|
|
260
|
-
type: Injectable,
|
|
261
|
-
args: [{
|
|
262
|
-
providedIn: 'root',
|
|
263
|
-
}]
|
|
264
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
265
|
-
type: Inject,
|
|
266
|
-
args: [windowToken]
|
|
267
|
-
}] }, { type: i1.UserAgentService }, { type: i2.SummaryFinanceDetailsAdapterService }]; } });
|
|
268
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGUtcGF5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9zZGstcGF5bWVudC1zeXN0ZW1zL2FwcGxlLXBheS9hcHBsZS1wYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFDTCxlQUFlLEVBQ2YsaUNBQWlDLEdBQ2xDLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBSTlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUMxRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUVBQXlFLENBQUM7QUFHckcsT0FBTyxFQUNMLGNBQWMsRUFDZCxvQkFBb0IsR0FDckIsTUFBTSx1REFBdUQsQ0FBQzs7OztBQUsvRCxNQUFNLE9BQU8sZUFBZTtJQWdCMUIsSUFBVyxpQkFBaUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJ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QyxlQUFlLEVBQUUsRUFBRTtZQUNoRCxlQUFlLEdBQUcsVUFBVSxDQUFDO1NBQzlCO2FBQU07WUFDTCxlQUFlLEdBQUcsTUFBTSxDQUFDO1NBQzFCO1FBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVPLFNBQVM7UUFDZixPQUFPLENBQUMsQ0FBQyxDQUNQLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhO1lBQ25DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLElBQUksaUNBQWlDLENBQ3pFLENBQUM7SUFDSixDQUFDOzs0R0FyVVUsZUFBZSxrQkFpQ2hCLFdBQVc7Z0hBakNWLGVBQWUsY0FGZCxNQUFNOzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFrQ0ksTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwbGVQYXksIGFwcGxlUGF5LCBjbGllbnQgfSBmcm9tICdicmFpbnRyZWUtd2ViJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgYXBwbGVQYXlWZXJzaW9uLFxuICBzYWZhcmlWZXJzaW9uRm9ySWZyYW1lSW50ZWdyYXRpb24sXG59IGZyb20gJy4vYXBwbGUtcGF5LmNvbnN0JztcbmltcG9ydCB7IGFncmVlbWVudHNHcm91cCB9IGZyb20gJy4uLy4uL2FncmVlbWVudHNHcm91cC5jb25zdCc7XG5pbXBvcnQgeyBBcHBsZVBheVBhcmFtcyB9IGZyb20gJy4vYXBwbGUtcGF5LXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmllbGQgfSBmcm9tICcuLi8uLi9wYXltZW50L2ZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBFeHRlbmRlZFdpbmRvdyB9IGZyb20gJy4uLy4uL2V4dGVuZGVkLXdpbmRvdy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgd2luZG93VG9rZW4gfSBmcm9tICcuLi8uLi93aW5kb3cudG9rZW4nO1xuaW1wb3J0IHsgWHBzUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9wYXltZW50L3hwcy1yZXNwb25zZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmllbGROYW1lcyB9IGZyb20gJy4uLy4uL3BheW1lbnQvZmllbGQtbmFtZXMuZW51bSc7XG5pbXBvcnQgeyBBcHBsZVBheUVycm9ycyB9IGZyb20gJy4vYXBwbGUtcGF5LmVycm9ycy5lbnVtJztcbmltcG9ydCB7IFVzZXJBZ2VudFNlcnZpY2UgfSBmcm9tICcuLi8uLi91c2VyLWFnZW50L3VzZXItYWdlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsZVBheUludGVncmF0aW9uIH0gZnJvbSAnLi9hcHBsZS1wYXktaW50ZWdyYXRpb24udHlwZSc7XG5pbXBvcnQgeyBwYWdlc1JvdXRlcyB9IGZyb20gJy4uLy4uL3BheW1lbnQvYWN0aW9ucy9yZWRpcmVjdC9wczQtcGFnZXMvcGFnZXMtcm91dGVzLmNvbnN0JztcbmltcG9ydCB7IGFwcGxlUGF5SWQgfSBmcm9tICcuLi8uLi9wYXltZW50L2FjdGlvbnMvcmVkaXJlY3QvcHM0LXBhZ2VzL3BhZ2VzLXBheW1lbnQtbWV0aG9kcy1pZC5jb25zdCc7XG5pbXBvcnQgeyBJbml0aWFsaXplUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9wYXltZW50L2luaXRpYWxpemUvcmVzcG9uc2UvaW5pdGlhbGl6ZS1yZXNwb25zZS5jbGFzcyc7XG5pbXBvcnQgeyBTdW1tYXJ5RmluYW5jZURldGFpbHNBZGFwdGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3BheW1lbnQvZmluYW5jZS1kZXRhaWxzL3N1bW1hcnkvc3VtbWFyeS1maW5hbmNlLWRldGFpbHMtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIHBheVN0YXRpb240VXJsLFxuICBzYW5kYm94UGF5U3RhdGlvblVybCxcbn0gZnJvbSAnLi4vLi4vcGF5bWVudC9hY3Rpb25zL3JlZGlyZWN0L3BheS1zdGF0aW9uNC11cmwuY29uc3QnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXBwbGVQYXlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBhZ3JlZW1lbnRGaWVsZHNOYW1lczogc3RyaW5nW10gPSBhZ3JlZW1lbnRzR3JvdXA7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGF5bWVudDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3QoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBlcnJvcjogU3ViamVjdDxBcHBsZVBheUVycm9ycz4gPSBuZXcgU3ViamVjdCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IGludGVncmF0aW9uVHlwZTogU3ViamVjdDxBcHBsZVBheUludGVncmF0aW9uPiA9XG4gICAgbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIHBheW1lbnRDbGllbnQ6IEFwcGxlUGF5IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBhcGk6IFByb21pc2U8e1xuICAgIGFwcGxlUGF5OiB0eXBlb2YgYXBwbGVQYXk7XG4gICAgY2xpZW50OiB0eXBlb2YgY2xpZW50O1xuICB9PjtcbiAgcHJpdmF0ZSBhcHBsZVBheVBhcmFtczogQXBwbGVQYXlQYXJhbXMgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBvcmRlcj86IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBnZXQgcGF5bWVudFBhcmFtZXRlcnMoKTogQXBwbGVQYXlQYXJhbXMgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5hcHBsZVBheVBhcmFtcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGF5bWVudCQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5wYXltZW50LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBlcnJvciQoKTogT2JzZXJ2YWJsZTxBcHBsZVBheUVycm9ycz4ge1xuICAgIHJldHVybiB0aGlzLmVycm9yLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBpbnRlZ3JhdGlvblR5cGUkKCk6IE9ic2VydmFibGU8QXBwbGVQYXlJbnRlZ3JhdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmludGVncmF0aW9uVHlwZS5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KHdpbmRvd1Rva2VuKSBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdzogRXh0ZW5kZWRXaW5kb3csXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyQWdlbnRTZXJ2aWNlOiBVc2VyQWdlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3VtbWFyeUZpbmFuY2VEZXRhaWxzQWRhcHRlclNlcnZpY2U6IFN1bW1hcnlGaW5hbmNlRGV0YWlsc0FkYXB0ZXJTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuYXBpID0gdGhpcy5sb2FkQnJhaW50cmVlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0QXBwbGVQYXlQYXJhbXMoZGF0YTogdW5rbm93bik6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1GaWVsZHMgPSAoZGF0YSBhcyBJbml0aWFsaXplUmVzcG9uc2UpPy5wYXltZW50Rm9ybT8uZmllbGRzO1xuICAgIGNvbnN0IHN1bW1hcnkgPSAoZGF0YSBhcyBJbml0aWFsaXplUmVzcG9uc2UpPy5wYXltZW50Rm9ybT8uc3VtbWFyeTtcblxuICAgIGlmICghZm9ybUZpZWxkcyB8fCAhc3VtbWFyeSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmaWVsZHMgPSBmb3JtRmllbGRzLnJlZHVjZShcbiAgICAgIChhY2M6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sIGZpZWxkKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLmFncmVlbWVudEZpZWxkc05hbWVzLmluY2x1ZGVzKGZpZWxkLm5hbWUpICYmXG4gICAgICAgICAgZmllbGQuaXNWaXNpYmxlID09PSAnMSdcbiAgICAgICAgKSB7XG4gICAgICAgICAgYWNjW2ZpZWxkLm5hbWVdID0gZmllbGQudGl0bGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWNjW2ZpZWxkLm5hbWVdID0gZmllbGQudmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSxcbiAgICAgIHt9XG4gICAgKTtcblxuICAgIGNvbnN0IGFncmVlbWVudHMgPSB0aGlzLmFncmVlbWVudEZpZWxkc05hbWVzXG4gICAgICAubWFwKChmaWVsZE5hbWUpID0+IGZpZWxkc1tmaWVsZE5hbWUgYXMga2V5b2YgdHlwZW9mIGZpZWxkc10gYXMgc3RyaW5nKVxuICAgICAgLmZpbHRlcihCb29sZWFuKTtcblxuICAgIHRoaXMuYXBwbGVQYXlQYXJhbXMgPSB7XG4gICAgICB0b2tlbktleTogdGhpcy5nZXRBcHBsZVRva2VuKGZvcm1GaWVsZHMpLFxuICAgICAgdG90YWxMYWJlbDogZmllbGRzWydsYWJlbF9hcHBsZVBheSddID8/ICcnLFxuICAgICAgdG90YWxBbW91bnQ6IHRoaXMuZ2V0VG90YWxBbW91bnQoc3VtbWFyeSksXG4gICAgICBjdXJyZW5jeUNvZGU6IHRoaXMuZ2V0VG90YWxDdXJyZW5jeShzdW1tYXJ5KSxcbiAgICAgIGNvdW50cnlDb2RlOiBmaWVsZHNbJ2NvdW50cnlDb2RlJ10gPz8gJycsXG4gICAgICBtZXJjaGFudENhcGFiaWxpdGllczogdGhpcy5nZXRKc29uVmFsdWVGcm9tRmllbGQoXG4gICAgICAgIGZpZWxkcyxcbiAgICAgICAgJ21lcmNoYW50Q2FwYWJpbGl0aWVzJ1xuICAgICAgKSxcbiAgICAgIHN1cHBvcnRlZE5ldHdvcmtzOiB0aGlzLmdldEpzb25WYWx1ZUZyb21GaWVsZChcbiAgICAgICAgZmllbGRzLFxuICAgICAgICAnc3VwcG9ydGVkTmV0d29ya3MnXG4gICAgICApLFxuICAgICAgYWdyZWVtZW50czogYWdyZWVtZW50cyxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGluaXRMaWJyYXJ5KHRva2VuS2V5OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYXBpID0gYXdhaXQgdGhpcy5hcGk7XG4gICAgICBjb25zdCBjbGllbnRJbnN0YW5jZSA9IGF3YWl0IGFwaS5jbGllbnQuY3JlYXRlKHtcbiAgICAgICAgYXV0aG9yaXphdGlvbjogdG9rZW5LZXksXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5wYXltZW50Q2xpZW50ID0gYXdhaXQgYXBpLmFwcGxlUGF5LmNyZWF0ZSh7XG4gICAgICAgIGNsaWVudDogY2xpZW50SW5zdGFuY2UsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgY29uc29sZS5lcnJvcignYXBwbGUgcGF5OiBpbml0aWFsaXplIGZhaWxlZCcsIGVycm9yKTtcbiAgICB9XG5cbiAgICB0aGlzLmVtaXRJbnRlZ3JhdGlvblR5cGUoKTtcblxuICAgIGlmICghdGhpcy5wYXltZW50Q2xpZW50IHx8ICF0aGlzLmlzRGV2aWNlQ2FwYWJsZSgpKSB7XG4gICAgICB0aGlzLmVtaXRFcnJvcihBcHBsZVBheUVycm9ycy5kZXZpY2VJc05vdENhcGFibGVFcnJvcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZGlyZWN0VG9QYXltZW50UGFnZShcbiAgICBwYXJhbWV0ZXJzOiBBcHBsZVBheVBhcmFtcyxcbiAgICB0b2tlbjogc3RyaW5nLFxuICAgIGlzU2FuZGJveD86IGJvb2xlYW5cbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCByb3V0ZSA9IHBhZ2VzUm91dGVzLmdldChhcHBsZVBheUlkKTtcbiAgICBpZiAoIXJvdXRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcXVlcnkgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcbiAgICAgIC4uLnBhcmFtZXRlcnMsXG4gICAgICBtZXJjaGFudENhcGFiaWxpdGllczogSlNPTi5zdHJpbmdpZnkocGFyYW1ldGVycy5tZXJjaGFudENhcGFiaWxpdGllcyksXG4gICAgICBzdXBwb3J0ZWROZXR3b3JrczogSlNPTi5zdHJpbmdpZnkocGFyYW1ldGVycy5zdXBwb3J0ZWROZXR3b3JrcyksXG4gICAgICB0b2tlbixcbiAgICAgIGFncmVlbWVudHM6IEpTT04uc3RyaW5naWZ5KHBhcmFtZXRlcnMuYWdyZWVtZW50cyksXG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5vcmRlcikge1xuICAgICAgcXVlcnkuYXBwZW5kKCdvcmRlcicsIHRoaXMub3JkZXIpO1xuICAgIH1cblxuICAgIGNvbnN0IHBheVN0YXRpb25VcmwgPSBpc1NhbmRib3ggPyBzYW5kYm94UGF5U3RhdGlvblVybCA6IHBheVN0YXRpb240VXJsO1xuICAgIHJldHVybiBgJHtwYXlTdGF0aW9uVXJsfS9lbiR7cm91dGV9PyR7cXVlcnkudG9TdHJpbmcoKX1gO1xuICB9XG5cbiAgcHVibGljIHNldE9yZGVyKGRhdGE6IHVua25vd24pOiB2b2lkIHtcbiAgICBjb25zdCBzdW1tYXJ5ID0gKGRhdGEgYXMgSW5pdGlhbGl6ZVJlc3BvbnNlKT8ucGF5bWVudEZvcm0/LnN1bW1hcnk7XG4gICAgaWYgKCFzdW1tYXJ5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGZpbmFuY2VEZXRhaWxzID1cbiAgICAgIHRoaXMuc3VtbWFyeUZpbmFuY2VEZXRhaWxzQWRhcHRlclNlcnZpY2UuZ2V0RmluYW5jZURldGFpbHMoc3VtbWFyeSk7XG5cbiAgICBpZiAoZmluYW5jZURldGFpbHM/LnB1cmNoYXNlICYmIGZpbmFuY2VEZXRhaWxzPy5maW5hbmNlKSB7XG4gICAgICBjb25zdCBjYXJ0SXRlbXMgPSBmaW5hbmNlRGV0YWlscy5jYXJ0SXRlbXM7XG4gICAgICB0aGlzLm9yZGVyID0gY2FydEl0ZW1zPy5yZWR1Y2UoKGN1cnIsIGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKGN1cnIpIHtcbiAgICAgICAgICByZXR1cm4gY3VyciArIGA7ICR7aXRlbS50aXRsZX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGN1cnIgKyBpdGVtLnRpdGxlO1xuICAgICAgfSwgJycpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBwcm9jZWVkQ2hlY2tvdXQocGFyYW1ldGVycz86IEFwcGxlUGF5UGFyYW1zKTogdm9pZCB7XG4gICAgaWYgKCFwYXJhbWV0ZXJzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnBheW1lbnRDbGllbnQgfHwgIXRoaXMuaXNEZXZpY2VDYXBhYmxlKCkpIHtcbiAgICAgIGNvbnNvbGUud2FybignYXBwbGUgcGF5OiBkZXZpY2UgaXMgbm90IGNhcGFibGUnLCB0aGlzLnBheW1lbnRDbGllbnQpO1xuICAgICAgdGhpcy5lbWl0RXJyb3IoQXBwbGVQYXlFcnJvcnMuZGV2aWNlSXNOb3RDYXBhYmxlRXJyb3IpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYXltZW50UmVxdWVzdCA9IHRoaXMucGF5bWVudENsaWVudC5jcmVhdGVQYXltZW50UmVxdWVzdCh7XG4gICAgICAgIHRvdGFsOiB7XG4gICAgICAgICAgbGFiZWw6IHBhcmFtZXRlcnMudG90YWxMYWJlbCxcbiAgICAgICAgICBhbW91bnQ6IHBhcmFtZXRlcnMudG90YWxBbW91bnQsXG4gICAgICAgIH0sXG4gICAgICAgIGN1cnJlbmN5Q29kZTogcGFyYW1ldGVycy5jdXJyZW5jeUNvZGUsXG4gICAgICAgIGNvdW50cnlDb2RlOiBwYXJhbWV0ZXJzLmNvdW50cnlDb2RlLFxuICAgICAgICBtZXJjaGFudENhcGFiaWxpdGllczogcGFyYW1ldGVycy5tZXJjaGFudENhcGFiaWxpdGllcyxcbiAgICAgICAgc3VwcG9ydGVkTmV0d29ya3M6IHBhcmFtZXRlcnMuc3VwcG9ydGVkTmV0d29ya3MsXG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgc2Vzc2lvbiA9IG5ldyB0aGlzLndpbmRvdy5BcHBsZVBheVNlc3Npb24oXG4gICAgICAgIGFwcGxlUGF5VmVyc2lvbixcbiAgICAgICAgcGF5bWVudFJlcXVlc3RcbiAgICAgICk7XG5cbiAgICAgIHNlc3Npb24ub252YWxpZGF0ZW1lcmNoYW50ID0gKGV2ZW50OiB7IHZhbGlkYXRpb25VUkw6IHN0cmluZyB9KSA9PiB7XG4gICAgICAgIGNvbnNvbGUuaW5mbygnYXBwbGUgcGF5OiBtZXJjaGFudCB2YWxpZGF0aW9uJywgZXZlbnQpO1xuICAgICAgICB0aGlzLnBheW1lbnRDbGllbnRcbiAgICAgICAgICA/LnBlcmZvcm1WYWxpZGF0aW9uKHtcbiAgICAgICAgICAgIHZhbGlkYXRpb25VUkw6IGV2ZW50LnZhbGlkYXRpb25VUkwsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogcGFyYW1ldGVycz8udG90YWxMYWJlbCxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC50aGVuKChtZXJjaGFudFNlc3Npb24pID0+IHtcbiAgICAgICAgICAgIHNlc3Npb24uY29tcGxldGVNZXJjaGFudFZhbGlkYXRpb24obWVyY2hhbnRTZXNzaW9uKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2FwcGxlIHBheTogbWVyY2hhbnQgdmFsaWRhdGlvbiBlcnJvcicsIGVycm9yKTtcbiAgICAgICAgICAgIHRoaXMuZW1pdEVycm9yKEFwcGxlUGF5RXJyb3JzLnBheW1lbnRFcnJvcik7XG4gICAgICAgICAgICBzZXNzaW9uLmFib3J0KCk7XG4gICAgICAgICAgfSk7XG4gICAgICB9O1xuXG4gICAgICBzZXNzaW9uLm9ucGF5bWVudGF1dGhvcml6ZWQgPSAoZXZlbnQ6IHsgcGF5bWVudDogeyB0b2tlbjogc3RyaW5nIH0gfSkgPT4ge1xuICAgICAgICBjb25zb2xlLmluZm8oJ2FwcGxlIHBheTogcGF5bWVudCBhdXRob3JpemF0aW9uJywgZXZlbnQpO1xuICAgICAgICB0aGlzLnBheW1lbnRDbGllbnRcbiAgICAgICAgICA/LnRva2VuaXplKHtcbiAgICAgICAgICAgIHRva2VuOiBldmVudC5wYXltZW50LnRva2VuLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLnRoZW4oKGF1dGhvcml6YXRpb25SZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wYXltZW50Lm5leHQoYXV0aG9yaXphdGlvblJlc3BvbnNlPy5ub25jZSA/PyAnJyk7XG4gICAgICAgICAgICBzZXNzaW9uLmNvbXBsZXRlUGF5bWVudCh0aGlzLndpbmRvdy5BcHBsZVBheVNlc3Npb24uU1RBVFVTX1NVQ0NFU1MpO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignYXBwbGUgcGF5OiBwYXltZW50IGF1dGhvcml6YXRpb24gZXJyb3InLCBlcnJvcik7XG4gICAgICAgICAgICB0aGlzLmVtaXRFcnJvcihBcHBsZVBheUVycm9ycy5wYXltZW50RXJyb3IpO1xuICAgICAgICAgICAgc2Vzc2lvbi5jb21wbGV0ZVBheW1lbnQodGhpcy53aW5kb3cuQXBwbGVQYXlTZXNzaW9uLlNUQVRVU19GQUlMVVJFKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH07XG5cbiAgICAgIHNlc3Npb24ub25jYW5jZWwgPSAoZXZlbnQ6IHVua25vd24pID0+IHtcbiAgICAgICAgdGhpcy5lbWl0RXJyb3IoQXBwbGVQYXlFcnJvcnMucGF5bWVudEVycm9yKTtcbiAgICAgICAgY29uc29sZS5lcnJvcignYXBwbGUgcGF5OiB1c2VyIGNhbmNlbCBwYXltZW50JywgZXZlbnQpO1xuICAgICAgfTtcblxuICAgICAgc2Vzc2lvbi5iZWdpbigpO1xuICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdhcHBsZSBwYXk6IGNoZWNrb3V0IGVycm9yJywgZXJyb3IpO1xuICAgICAgdGhpcy5lbWl0RXJyb3IoQXBwbGVQYXlFcnJvcnMucGF5bWVudEVycm9yKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNEZXZpY2VDYXBhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gQm9vbGVhbihcbiAgICAgICAgdGhpcy53aW5kb3cuQXBwbGVQYXlTZXNzaW9uPy5zdXBwb3J0c1ZlcnNpb24oYXBwbGVQYXlWZXJzaW9uKSAmJlxuICAgICAgICAgIHRoaXMud2luZG93LkFwcGxlUGF5U2Vzc2lvbj8uY2FuTWFrZVBheW1lbnRzKClcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0VG9rZW5Ob25jZUZpZWxkRGF0YSh0b2tlbk5vbmNlOiBzdHJpbmcpOiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gIH0ge1xuICAgIGNvbnN0IG5hbWUgPSBGaWVsZE5hbWVzLnRva2VuQXBwbGVQYXk7XG4gICAgY29uc3QgdmFsdWUgPSBidG9hKHRva2VuTm9uY2UpO1xuICAgIHJldHVybiB7IG5hbWUsIHZhbHVlIH07XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlQXBwbGVQYXlQYXJhbXMoZGF0YTogdW5rbm93bik6IHZvaWQge1xuICAgIGNvbnN0IHN1bW1hcnkgPSAoZGF0YSBhcyBYcHNSZXNwb25zZSk/LnN1bW1hcnk7XG4gICAgaWYgKCF0aGlzLmFwcGxlUGF5UGFyYW1zIHx8ICFzdW1tYXJ5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5hcHBsZVBheVBhcmFtcy50b3RhbEFtb3VudCA9IHRoaXMuZ2V0VG90YWxBbW91bnQoc3VtbWFyeSk7XG4gICAgdGhpcy5hcHBsZVBheVBhcmFtcy5jdXJyZW5jeUNvZGUgPSB0aGlzLmdldFRvdGFsQ3VycmVuY3koc3VtbWFyeSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWRCcmFpbnRyZWUoKTogUHJvbWlzZTx7XG4gICAgYXBwbGVQYXk6IHR5cGVvZiBhcHBsZVBheTtcbiAgICBjbGllbnQ6IHR5cGVvZiBjbGllbnQ7XG4gIH0+IHtcbiAgICBjb25zdCBhcGkgPSBhd2FpdCBpbXBvcnQoJ2JyYWludHJlZS13ZWInKTtcblxuICAgIHJldHVybiBhcGk7XG4gIH1cblxuICBwcml2YXRlIGdldEFwcGxlVG9rZW4oZm9ybUZpZWxkczogRmllbGRbXSk6IHN0cmluZyB7XG4gICAgY29uc3QgYXBwbGVUb2tlbkZpZWxkID0gZm9ybUZpZWxkcy5maW5kKChmaWVsZCkgPT4ge1xuICAgICAgcmV0dXJuIGZpZWxkLm5hbWUgPT09ICd0b2tlbl9rZXknO1xuICAgIH0pO1xuXG4gICAgaWYgKCFhcHBsZVRva2VuRmllbGQpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICByZXR1cm4gYXBwbGVUb2tlbkZpZWxkLnZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUb3RhbEFtb3VudChzdW1tYXJ5OiBYcHNSZXNwb25zZVsnc3VtbWFyeSddKTogc3RyaW5nIHtcbiAgICBjb25zdCBmaW5hbmNlID0gc3VtbWFyeT8uZmluYW5jZTtcbiAgICBjb25zdCB0b3RhbCA9IGZpbmFuY2U/LmdyYW5kX3RvdGFsPy5hbW91bnQgPz8gZmluYW5jZT8udG90YWwuYW1vdW50O1xuXG4gICAgcmV0dXJuIHRvdGFsPy50b1N0cmluZygpID8/ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUb3RhbEN1cnJlbmN5KHN1bW1hcnk6IFhwc1Jlc3BvbnNlWydzdW1tYXJ5J10pOiBzdHJpbmcge1xuICAgIGNvbnN0IGZpbmFuY2UgPSBzdW1tYXJ5Py5maW5hbmNlO1xuICAgIHJldHVybiBmaW5hbmNlPy5ncmFuZF90b3RhbD8uY3VycmVuY3kgPz8gZmluYW5jZT8udG90YWw/LmN1cnJlbmN5ID8/ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRKc29uVmFsdWVGcm9tRmllbGQoXG4gICAgZmllbGRzOiB7XG4gICAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gICAgfSxcbiAgICBmaWVsZE5hbWU6IHN0cmluZ1xuICApOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgZmllbGQgPSBmaWVsZHNbZmllbGROYW1lXTtcblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZmllbGQgPyAoSlNPTi5wYXJzZShmaWVsZCkgYXMgc3RyaW5nW10pIDogdW5kZWZpbmVkO1xuICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW1pdEVycm9yKGVycm9yOiBBcHBsZVBheUVycm9ycyk6IHZvaWQge1xuICAgIHRoaXMuZXJyb3IubmV4dChlcnJvcik7XG4gIH1cblxuICBwcml2YXRlIGVtaXRJbnRlZ3JhdGlvblR5cGUoKTogdm9pZCB7XG4gICAgbGV0IGludGVncmF0aW9uVHlwZTogQXBwbGVQYXlJbnRlZ3JhdGlvbjtcblxuICAgIGlmICh0aGlzLnBheW1lbnRDbGllbnQgJiYgdGhpcy5pc0RldmljZUNhcGFibGUoKSkge1xuICAgICAgaW50ZWdyYXRpb25UeXBlID0gJ3JlZGlyZWN0JztcbiAgICB9IGVsc2Uge1xuICAgICAgaW50ZWdyYXRpb25UeXBlID0gJ25vbmUnO1xuICAgIH1cblxuICAgIHRoaXMuaW50ZWdyYXRpb25UeXBlLm5leHQoaW50ZWdyYXRpb25UeXBlKTtcbiAgfVxuXG4gIHByaXZhdGUgY2FuVXNlU2RrKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIShcbiAgICAgIHRoaXMudXNlckFnZW50U2VydmljZS5zYWZhcmlWZXJzaW9uICYmXG4gICAgICB0aGlzLnVzZXJBZ2VudFNlcnZpY2Uuc2FmYXJpVmVyc2lvbiA+PSBzYWZhcmlWZXJzaW9uRm9ySWZyYW1lSW50ZWdyYXRpb25cbiAgICApO1xuICB9XG59XG4iXX0=
|