@xsolla/payment-client-core 0.2.21 → 0.2.22
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/{esm2020 → esm2022}/lib/core/payment/actions/show-qr-code/show-qr-code.action.class.mjs +4 -4
- 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 +456 -455
- package/fesm2022/xsolla-payment-client-core.mjs.map +1 -0
- package/package.json +10 -16
- package/xsolla-payment-client-core-0.2.22.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/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/show-qr-code/show-qr-code.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
|
@@ -11,13 +11,13 @@ export class FormMessagesService extends EmitDataService {
|
|
|
11
11
|
const mapInfoMessages = (infoMessage) => this.unescapeHtmlPipe.transform(infoMessage.message);
|
|
12
12
|
super.emit(messages?.map(mapInfoMessages) ?? []);
|
|
13
13
|
}
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormMessagesService, deps: [{ token: i1.UnescapeHtmlPipe }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
15
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormMessagesService, providedIn: 'root' }); }
|
|
14
16
|
}
|
|
15
|
-
|
|
16
|
-
FormMessagesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormMessagesService, providedIn: 'root' });
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormMessagesService, decorators: [{
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormMessagesService, decorators: [{
|
|
18
18
|
type: Injectable,
|
|
19
19
|
args: [{
|
|
20
20
|
providedIn: 'root',
|
|
21
21
|
}]
|
|
22
|
-
}], ctorParameters:
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
}], ctorParameters: () => [{ type: i1.UnescapeHtmlPipe }] });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tZXNzYWdlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9mb3JtLW1lc3NhZ2VzL2Zvcm0tbWVzc2FnZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7O0FBT2hFLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxlQUF5QjtJQUNoRSxZQUFvQyxnQkFBa0M7UUFDcEUsS0FBSyxFQUFFLENBQUM7UUFEMEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUV0RSxDQUFDO0lBRU0sY0FBYyxDQUFDLFFBQXVCO1FBQzNDLE1BQU0sZUFBZSxHQUFHLENBQUMsV0FBdUIsRUFBVSxFQUFFLENBQzFELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXZELEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDOzhHQVZVLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbWl0RGF0YVNlcnZpY2UgfSBmcm9tICcuLi9lbWl0LWRhdGEuc2VydmljZS5hYnN0cmFjdCc7XG5pbXBvcnQgeyBYcHNNZXNzYWdlIH0gZnJvbSAnLi4veHBzLW1lc3NhZ2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFVuZXNjYXBlSHRtbFBpcGUgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvcGlwZXMvdW5lc2NhcGUtaHRtbC91bmVzY2FwZS1odG1sLnBpcGUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybU1lc3NhZ2VzU2VydmljZSBleHRlbmRzIEVtaXREYXRhU2VydmljZTxzdHJpbmdbXT4ge1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB1bmVzY2FwZUh0bWxQaXBlOiBVbmVzY2FwZUh0bWxQaXBlKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0T25SZXNwb25zZShtZXNzYWdlcz86IFhwc01lc3NhZ2VbXSk6IHZvaWQge1xuICAgIGNvbnN0IG1hcEluZm9NZXNzYWdlcyA9IChpbmZvTWVzc2FnZTogWHBzTWVzc2FnZSk6IHN0cmluZyA9PlxuICAgICAgdGhpcy51bmVzY2FwZUh0bWxQaXBlLnRyYW5zZm9ybShpbmZvTWVzc2FnZS5tZXNzYWdlKTtcblxuICAgIHN1cGVyLmVtaXQobWVzc2FnZXM/Lm1hcChtYXBJbmZvTWVzc2FnZXMpID8/IFtdKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { ResponseError } from '../../exceptions-handling/errors/response-error.class';
|
|
3
|
+
import { initializeResponseFactoryToken, } from './response/initialize-response.token';
|
|
4
|
+
import { UserBehaviourEventName } from '../../user-behaviour-analytics/user-behaviour-event-name.enum';
|
|
5
|
+
import { userBehaviourEventTypes } from '../../user-behaviour-analytics/user-behaviour-event/user-behaviour-event-types';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../xps-api/xps-api.service";
|
|
8
|
+
import * as i2 from "../../settings/settings.service";
|
|
9
|
+
import * as i3 from "../../country/country.service";
|
|
10
|
+
import * as i4 from "../actions/next-action.service";
|
|
11
|
+
import * as i5 from "../../errors-mapping/xps-response-errors-mapping.service";
|
|
12
|
+
import * as i6 from "../../encrypt-credit-card/encrypt-credit-card.service";
|
|
13
|
+
import * as i7 from "../actions/show-errors/show-errors.action.class";
|
|
14
|
+
import * as i8 from "../../user-behaviour-analytics/user-behaviour-analytics.service";
|
|
15
|
+
export class InitializeService {
|
|
16
|
+
constructor(responseFactory, xpsApiService, settingsService, countryService, nextActionService, xpsResponseErrorsMappingService, encryptCreditCardService, showErrorsActionCreator, userBehaviourAnalyticsService) {
|
|
17
|
+
this.responseFactory = responseFactory;
|
|
18
|
+
this.xpsApiService = xpsApiService;
|
|
19
|
+
this.settingsService = settingsService;
|
|
20
|
+
this.countryService = countryService;
|
|
21
|
+
this.nextActionService = nextActionService;
|
|
22
|
+
this.xpsResponseErrorsMappingService = xpsResponseErrorsMappingService;
|
|
23
|
+
this.encryptCreditCardService = encryptCreditCardService;
|
|
24
|
+
this.showErrorsActionCreator = showErrorsActionCreator;
|
|
25
|
+
this.userBehaviourAnalyticsService = userBehaviourAnalyticsService;
|
|
26
|
+
}
|
|
27
|
+
async request(config) {
|
|
28
|
+
const requestParams = {
|
|
29
|
+
access_token: this.settingsService.token,
|
|
30
|
+
pid: String(config.paymentMethodId),
|
|
31
|
+
country: this.countryService.getCountry(),
|
|
32
|
+
returnUrl: config.returnUrl,
|
|
33
|
+
paymentWithSavedMethod: config.paymentWithSavedMethod === true
|
|
34
|
+
? "1" /* XpsBoolean.true */
|
|
35
|
+
: "0" /* XpsBoolean.false */,
|
|
36
|
+
save_payment_account_only: config.savePaymentMethod
|
|
37
|
+
? "1" /* XpsBoolean.true */
|
|
38
|
+
: "0" /* XpsBoolean.false */,
|
|
39
|
+
};
|
|
40
|
+
if (config.savedMethodId) {
|
|
41
|
+
requestParams.saved_method_id = config.savedMethodId;
|
|
42
|
+
}
|
|
43
|
+
return this.xpsApiService
|
|
44
|
+
.directPaymentRequest(requestParams)
|
|
45
|
+
.then((xpsResponse) => {
|
|
46
|
+
const response = this.xpsResponseErrorsMappingService.mapErrors(xpsResponse);
|
|
47
|
+
const initializeResponse = this.responseFactory(response);
|
|
48
|
+
if (!initializeResponse.paymentForm) {
|
|
49
|
+
return initializeResponse;
|
|
50
|
+
}
|
|
51
|
+
this.setCreditCardEncryptKey(initializeResponse.paymentForm);
|
|
52
|
+
this.userBehaviourAnalyticsService.fillUserSession(initializeResponse.paymentForm);
|
|
53
|
+
if (initializeResponse.paymentForm?.errors?.length) {
|
|
54
|
+
const logError = (error) => {
|
|
55
|
+
this.userBehaviourAnalyticsService.send(UserBehaviourEventName.showErrorMessage, userBehaviourEventTypes.manual, { value: String(error.code), extraValue: error.message });
|
|
56
|
+
};
|
|
57
|
+
initializeResponse.paymentForm.errors.forEach(logError);
|
|
58
|
+
this.nextActionService.emitFlowUpdates(this.showErrorsActionCreator.getActionData(initializeResponse.paymentForm.errors));
|
|
59
|
+
}
|
|
60
|
+
return initializeResponse;
|
|
61
|
+
})
|
|
62
|
+
.catch((error) => {
|
|
63
|
+
throw new ResponseError(error.message);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
setCreditCardEncryptKey(paymentForm) {
|
|
67
|
+
const publicKeyField = paymentForm.fields.find((field) => field.name === 'public_key');
|
|
68
|
+
if (!publicKeyField) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
this.encryptCreditCardService.setPublicKey(atob(publicKeyField.value));
|
|
72
|
+
}
|
|
73
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: InitializeService, deps: [{ token: initializeResponseFactoryToken }, { token: i1.XpsApiService }, { token: i2.SettingsService }, { token: i3.CountryService }, { token: i4.NextActionService }, { token: i5.XpsResponseErrorsMappingService }, { token: i6.EncryptCreditCardService }, { token: i7.ShowErrorsActionCreator }, { token: i8.UserBehaviourAnalyticsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
74
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: InitializeService, providedIn: 'root' }); }
|
|
75
|
+
}
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: InitializeService, decorators: [{
|
|
77
|
+
type: Injectable,
|
|
78
|
+
args: [{
|
|
79
|
+
providedIn: 'root',
|
|
80
|
+
}]
|
|
81
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
82
|
+
type: Inject,
|
|
83
|
+
args: [initializeResponseFactoryToken]
|
|
84
|
+
}] }, { type: i1.XpsApiService }, { type: i2.SettingsService }, { type: i3.CountryService }, { type: i4.NextActionService }, { type: i5.XpsResponseErrorsMappingService }, { type: i6.EncryptCreditCardService }, { type: i7.ShowErrorsActionCreator }, { type: i8.UserBehaviourAnalyticsService }] });
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbGl6ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9pbml0aWFsaXplL2luaXRpYWxpemUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFTdEYsT0FBTyxFQUVMLDhCQUE4QixHQUMvQixNQUFNLHNDQUFzQyxDQUFDO0FBSzlDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdGQUFnRixDQUFDOzs7Ozs7Ozs7O0FBTXpILE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFFcUIsZUFBMEMsRUFDNUMsYUFBNEIsRUFDNUIsZUFBZ0MsRUFDaEMsY0FBOEIsRUFDOUIsaUJBQW9DLEVBQ3BDLCtCQUFnRSxFQUNoRSx3QkFBa0QsRUFDbEQsdUJBQWdELEVBQ2hELDZCQUE0RDtRQVIxRCxvQkFBZSxHQUFmLGVBQWUsQ0FBMkI7UUFDNUMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLG9DQUErQixHQUEvQiwrQkFBK0IsQ0FBaUM7UUFDaEUsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQ2hELGtDQUE2QixHQUE3Qiw2QkFBNkIsQ0FBK0I7SUFDNUUsQ0FBQztJQUVHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBcUI7UUFDeEMs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LE1BQU07OzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUdJLE1BQU07MkJBQUMsOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3VudHJ5U2VydmljZSB9IGZyb20gJy4uLy4uL2NvdW50cnkvY291bnRyeS5zZXJ2aWNlJztcbmltcG9ydCB7IFJlc3BvbnNlRXJyb3IgfSBmcm9tICcuLi8uLi9leGNlcHRpb25zLWhhbmRsaW5nL2Vycm9ycy9yZXNwb25zZS1lcnJvci5jbGFzcyc7XG5pbXBvcnQgeyBFbmNyeXB0Q3JlZGl0Q2FyZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9lbmNyeXB0LWNyZWRpdC1jYXJkL2VuY3J5cHQtY3JlZGl0LWNhcmQuc2VydmljZSc7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXR0aW5ncy9zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IFBheW1lbnRDb25maWcgfSBmcm9tICcuLi9wYXltZW50LWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTmV4dEFjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9hY3Rpb25zL25leHQtYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2hvd0Vycm9yc0FjdGlvbkNyZWF0b3IgfSBmcm9tICcuLi9hY3Rpb25zL3Nob3ctZXJyb3JzL3Nob3ctZXJyb3JzLmFjdGlvbi5jbGFzcyc7XG5pbXBvcnQgeyBYcHNBcGlTZXJ2aWNlIH0gZnJvbSAnLi4veHBzLWFwaS94cHMtYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmllbGQgfSBmcm9tICcuLi9maWVsZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUGF5bWVudEZvcm0gfSBmcm9tICcuLi9wYXltZW50LWZvcm0uaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIEluaXRpYWxpemVSZXNwb25zZUZhY3RvcnksXG4gIGluaXRpYWxpemVSZXNwb25zZUZhY3RvcnlUb2tlbixcbn0gZnJvbSAnLi9yZXNwb25zZS9pbml0aWFsaXplLXJlc3BvbnNlLnRva2VuJztcbmltcG9ydCB7IEluaXRpYWxpemVSZXNwb25zZSB9IGZyb20gJy4vcmVzcG9uc2UvaW5pdGlhbGl6ZS1yZXNwb25zZS5jbGFzcyc7XG5pbXBvcnQgeyBJbml0aWFsaXplUmVxdWVzdFBhcmFtcyB9IGZyb20gJy4vaW5pdGlhbGl6ZS1yZXF1ZXN0LXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgWHBzUmVzcG9uc2VFcnJvcnNNYXBwaW5nU2VydmljZSB9IGZyb20gJy4uLy4uL2Vycm9ycy1tYXBwaW5nL3hwcy1yZXNwb25zZS1lcnJvcnMtbWFwcGluZy5zZXJ2aWNlJztcbmltcG9ydCB7IFhwc0Jvb2xlYW4gfSBmcm9tICcuLi8uLi94cHMtYm9vbGVhbi5lbnVtJztcbmltcG9ydCB7IFVzZXJCZWhhdmlvdXJFdmVudE5hbWUgfSBmcm9tICcuLi8uLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItZXZlbnQtbmFtZS5lbnVtJztcbmltcG9ydCB7IHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzIH0gZnJvbSAnLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWV2ZW50L3VzZXItYmVoYXZpb3VyLWV2ZW50LXR5cGVzJztcbmltcG9ydCB7IFVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEluaXRpYWxpemVTZXJ2aWNlIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoaW5pdGlhbGl6ZVJlc3BvbnNlRmFjdG9yeVRva2VuKVxuICAgIHByb3RlY3RlZCByZWFkb25seSByZXNwb25zZUZhY3Rvcnk6IEluaXRpYWxpemVSZXNwb25zZUZhY3RvcnksXG4gICAgcHJpdmF0ZSByZWFkb25seSB4cHNBcGlTZXJ2aWNlOiBYcHNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2V0dGluZ3NTZXJ2aWNlOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb3VudHJ5U2VydmljZTogQ291bnRyeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZXh0QWN0aW9uU2VydmljZTogTmV4dEFjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB4cHNSZXNwb25zZUVycm9yc01hcHBpbmdTZXJ2aWNlOiBYcHNSZXNwb25zZUVycm9yc01hcHBpbmdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZW5jcnlwdENyZWRpdENhcmRTZXJ2aWNlOiBFbmNyeXB0Q3JlZGl0Q2FyZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzaG93RXJyb3JzQWN0aW9uQ3JlYXRvcjogU2hvd0Vycm9yc0FjdGlvbkNyZWF0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZTogVXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBhc3luYyByZXF1ZXN0KGNvbmZpZzogUGF5bWVudENvbmZpZyk6IFByb21pc2U8SW5pdGlhbGl6ZVJlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVxdWVzdFBhcmFtczogSW5pdGlhbGl6ZVJlcXVlc3RQYXJhbXMgPSB7XG4gICAgICBhY2Nlc3NfdG9rZW46IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnRva2VuLFxuICAgICAgcGlkOiBTdHJpbmcoY29uZmlnLnBheW1lbnRNZXRob2RJZCksXG4gICAgICBjb3VudHJ5OiB0aGlzLmNvdW50cnlTZXJ2aWNlLmdldENvdW50cnkoKSxcbiAgICAgIHJldHVyblVybDogY29uZmlnLnJldHVyblVybCxcbiAgICAgIHBheW1lbnRXaXRoU2F2ZWRNZXRob2Q6XG4gICAgICAgIGNvbmZpZy5wYXltZW50V2l0aFNhdmVkTWV0aG9kID09PSB0cnVlXG4gICAgICAgICAgPyBYcHNCb29sZWFuLnRydWVcbiAgICAgICAgICA6IFhwc0Jvb2xlYW4uZmFsc2UsXG4gICAgICBzYXZlX3BheW1lbnRfYWNjb3VudF9vbmx5OiBjb25maWcuc2F2ZVBheW1lbnRNZXRob2RcbiAgICAgICAgPyBYcHNCb29sZWFuLnRydWVcbiAgICAgICAgOiBYcHNCb29sZWFuLmZhbHNlLFxuICAgIH07XG5cbiAgICBpZiAoY29uZmlnLnNhdmVkTWV0aG9kSWQpIHtcbiAgICAgIHJlcXVlc3RQYXJhbXMuc2F2ZWRfbWV0aG9kX2lkID0gY29uZmlnLnNhdmVkTWV0aG9kSWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMueHBzQXBpU2VydmljZVxuICAgICAgLmRpcmVjdFBheW1lbnRSZXF1ZXN0KHJlcXVlc3RQYXJhbXMpXG4gICAgICAudGhlbigoeHBzUmVzcG9uc2UpID0+IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPVxuICAgICAgICAgIHRoaXMueHBzUmVzcG9uc2VFcnJvcnNNYXBwaW5nU2VydmljZS5tYXBFcnJvcnMoeHBzUmVzcG9uc2UpO1xuICAgICAgICBjb25zdCBpbml0aWFsaXplUmVzcG9uc2UgPSB0aGlzLnJlc3BvbnNlRmFjdG9yeShyZXNwb25zZSk7XG5cbiAgICAgICAgaWYgKCFpbml0aWFsaXplUmVzcG9uc2UucGF5bWVudEZvcm0pIHtcbiAgICAgICAgICByZXR1cm4gaW5pdGlhbGl6ZVJlc3BvbnNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRDcmVkaXRDYXJkRW5jcnlwdEtleShpbml0aWFsaXplUmVzcG9uc2UucGF5bWVudEZvcm0pO1xuICAgICAgICB0aGlzLnVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlLmZpbGxVc2VyU2Vzc2lvbihcbiAgICAgICAgICBpbml0aWFsaXplUmVzcG9uc2UucGF5bWVudEZvcm1cbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoaW5pdGlhbGl6ZVJlc3BvbnNlLnBheW1lbnRGb3JtPy5lcnJvcnM/Lmxlbmd0aCkge1xuICAgICAgICAgIGNvbnN0IGxvZ0Vycm9yID0gKGVycm9yOiB7IGNvZGU6IG51bWJlcjsgbWVzc2FnZTogc3RyaW5nIH0pOiB2b2lkID0+IHtcbiAgICAgICAgICAgIHRoaXMudXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2Uuc2VuZChcbiAgICAgICAgICAgICAgVXNlckJlaGF2aW91ckV2ZW50TmFtZS5zaG93RXJyb3JNZXNzYWdlLFxuICAgICAgICAgICAgICB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcy5tYW51YWwsXG4gICAgICAgICAgICAgIHsgdmFsdWU6IFN0cmluZyhlcnJvci5jb2RlKSwgZXh0cmFWYWx1ZTogZXJyb3IubWVzc2FnZSB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICBpbml0aWFsaXplUmVzcG9uc2UucGF5bWVudEZvcm0uZXJyb3JzLmZvckVhY2gobG9nRXJyb3IpO1xuXG4gICAgICAgICAgdGhpcy5uZXh0QWN0aW9uU2VydmljZS5lbWl0Rmxvd1VwZGF0ZXMoXG4gICAgICAgICAgICB0aGlzLnNob3dFcnJvcnNBY3Rpb25DcmVhdG9yLmdldEFjdGlvbkRhdGEoXG4gICAgICAgICAgICAgIGluaXRpYWxpemVSZXNwb25zZS5wYXltZW50Rm9ybS5lcnJvcnNcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGluaXRpYWxpemVSZXNwb25zZTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICB0aHJvdyBuZXcgUmVzcG9uc2VFcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDcmVkaXRDYXJkRW5jcnlwdEtleShwYXltZW50Rm9ybTogUGF5bWVudEZvcm0pOiB2b2lkIHtcbiAgICBjb25zdCBwdWJsaWNLZXlGaWVsZDogRmllbGQgfCB1bmRlZmluZWQgPSBwYXltZW50Rm9ybS5maWVsZHMuZmluZChcbiAgICAgIChmaWVsZDogRmllbGQpID0+IGZpZWxkLm5hbWUgPT09ICdwdWJsaWNfa2V5J1xuICAgICk7XG5cbiAgICBpZiAoIXB1YmxpY0tleUZpZWxkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5lbmNyeXB0Q3JlZGl0Q2FyZFNlcnZpY2Uuc2V0UHVibGljS2V5KGF0b2IocHVibGljS2V5RmllbGQudmFsdWUpKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export class InitializeResponse {
|
|
2
|
+
constructor(response) {
|
|
3
|
+
this.paymentForm = null;
|
|
4
|
+
this.paymentForm = this.extractPaymentForm(response);
|
|
5
|
+
}
|
|
6
|
+
extractPaymentForm(response) {
|
|
7
|
+
if (!response) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
return {
|
|
11
|
+
totalAmount: response.buyData.sum,
|
|
12
|
+
currency: response.buyData.currency,
|
|
13
|
+
fields: Object.keys(response.form).map((key) => response.form[key]),
|
|
14
|
+
taxDisclaimer: response.taxDisclaimer,
|
|
15
|
+
number: response.number,
|
|
16
|
+
barcode: response.barcode,
|
|
17
|
+
instruction: response.instruction,
|
|
18
|
+
offers: response.offers,
|
|
19
|
+
error: response.error,
|
|
20
|
+
errors: response.errors,
|
|
21
|
+
restrictions: response.restrictions,
|
|
22
|
+
info: response.info,
|
|
23
|
+
buyData: response.buyData,
|
|
24
|
+
pid: response.pid,
|
|
25
|
+
messages: response.messages ?? [],
|
|
26
|
+
title: response.title,
|
|
27
|
+
summary: response.summary,
|
|
28
|
+
skipForm: response.skipForm,
|
|
29
|
+
isSavedMethodPayment: !!response.form?.saved_method_id,
|
|
30
|
+
couponCode: response.form?.couponCode?.value || '',
|
|
31
|
+
publicId: response.public_id,
|
|
32
|
+
skipCheckout: response.skipCheckout,
|
|
33
|
+
koreaNotification: response.form.korea_limits_instruction,
|
|
34
|
+
isCheckout: response.isCheckout,
|
|
35
|
+
categories: response.categories,
|
|
36
|
+
hasFatalErrors: response.textAll?.fatal,
|
|
37
|
+
userSession: response.userSession,
|
|
38
|
+
statusText: response.status?.statusData?.stateText ?? null,
|
|
39
|
+
country: response.country ? response.country.iso : null,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbGl6ZS1yZXNwb25zZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3BheW1lbnQvaW5pdGlhbGl6ZS9yZXNwb25zZS9pbml0aWFsaXplLXJlc3BvbnNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyxrQkFBa0I7SUFHN0IsWUFBbUIsUUFBcUI7UUFGeEIsZ0JBQVcsR0FBdUIsSUFBSSxDQUFDO1FBR3JELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxRQUFxQjtRQUM5QyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxPQUFPO1lBQ0wsV0FBVyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRztZQUNqQyxRQUFRLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRO1lBQ25DLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQ3BDLENBQUMsR0FBVyxFQUFTLEVBQUUsQ0FBRSxRQUF3QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FDNUQ7WUFDRCxhQUFhLEVBQUUsUUFBUSxDQUFDLGFBQWE7WUFDckMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNO1lBQ3ZCLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztZQUN6QixXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVc7WUFDakMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNO1lBQ3ZCLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSztZQUNyQixNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU07WUFDdkIsWUFBWSxFQUFFLFFBQVEsQ0FBQyxZQUFZO1lBQ25DLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSTtZQUNuQixPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU87WUFDekIsR0FBRyxFQUFFLFFBQVEsQ0FBQyxHQUFHO1lBQ2pCLFFBQVEsRUFBRSxRQUFRLENBQUMsUUFBUSxJQUFJLEVBQUU7WUFDakMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLO1lBQ3JCLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztZQUN6QixRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVE7WUFDM0Isb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsZUFBZTtZQUN0RCxVQUFVLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDbEQsUUFBUSxFQUFFLFFBQVEsQ0FBQyxTQUFTO1lBQzVCLFlBQVksRUFBRSxRQUFRLENBQUMsWUFBWTtZQUNuQyxpQkFBaUIsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLHdCQUF3QjtZQUN6RCxVQUFVLEVBQUUsUUFBUSxDQUFDLFVBQVU7WUFDL0IsVUFBVSxFQUFFLFFBQVEsQ0FBQyxVQUFVO1lBQy9CLGNBQWMsRUFBRSxRQUFRLENBQUMsT0FBTyxFQUFFLEtBQUs7WUFDdkMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxXQUFXO1lBQ2pDLFVBQVUsRUFBRyxRQUFRLENBQUMsTUFBb0IsRUFBRSxVQUFVLEVBQUUsU0FBUyxJQUFJLElBQUk7WUFDekUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJO1NBQ3hELENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4uLy4uL2ZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQYXltZW50Rm9ybSB9IGZyb20gJy4uLy4uL3BheW1lbnQtZm9ybS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgWHBzUmVzcG9uc2UsIFhwc1N0YXR1cyB9IGZyb20gJy4uLy4uL3hwcy1yZXNwb25zZS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY2xhc3MgSW5pdGlhbGl6ZVJlc3BvbnNlIHtcbiAgcHVibGljIHJlYWRvbmx5IHBheW1lbnRGb3JtOiBQYXltZW50Rm9ybSB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihyZXNwb25zZTogWHBzUmVzcG9uc2UpIHtcbiAgICB0aGlzLnBheW1lbnRGb3JtID0gdGhpcy5leHRyYWN0UGF5bWVudEZvcm0ocmVzcG9uc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0UGF5bWVudEZvcm0ocmVzcG9uc2U6IFhwc1Jlc3BvbnNlKTogUGF5bWVudEZvcm0gfCBudWxsIHtcbiAgICBpZiAoIXJlc3BvbnNlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgdG90YWxBbW91bnQ6IHJlc3BvbnNlLmJ1eURhdGEuc3VtLFxuICAgICAgY3VycmVuY3k6IHJlc3BvbnNlLmJ1eURhdGEuY3VycmVuY3ksXG4gICAgICBmaWVsZHM6IE9iamVjdC5rZXlzKHJlc3BvbnNlLmZvcm0pLm1hcChcbiAgICAgICAgKGtleTogc3RyaW5nKTogRmllbGQgPT4gKHJlc3BvbnNlIGFzIFhwc1Jlc3BvbnNlKS5mb3JtW2tleV1cbiAgICAgICksXG4gICAgICB0YXhEaXNjbGFpbWVyOiByZXNwb25zZS50YXhEaXNjbGFpbWVyLFxuICAgICAgbnVtYmVyOiByZXNwb25zZS5udW1iZXIsXG4gICAgICBiYXJjb2RlOiByZXNwb25zZS5iYXJjb2RlLFxuICAgICAgaW5zdHJ1Y3Rpb246IHJlc3BvbnNlLmluc3RydWN0aW9uLFxuICAgICAgb2ZmZXJzOiByZXNwb25zZS5vZmZlcnMsXG4gICAgICBlcnJvcjogcmVzcG9uc2UuZXJyb3IsXG4gICAgICBlcnJvcnM6IHJlc3BvbnNlLmVycm9ycyxcbiAgICAgIHJlc3RyaWN0aW9uczogcmVzcG9uc2UucmVzdHJpY3Rpb25zLFxuICAgICAgaW5mbzogcmVzcG9uc2UuaW5mbyxcbiAgICAgIGJ1eURhdGE6IHJlc3BvbnNlLmJ1eURhdGEsXG4gICAgICBwaWQ6IHJlc3BvbnNlLnBpZCxcbiAgICAgIG1lc3NhZ2VzOiByZXNwb25zZS5tZXNzYWdlcyA/PyBbXSxcbiAgICAgIHRpdGxlOiByZXNwb25zZS50aXRsZSxcbiAgICAgIHN1bW1hcnk6IHJlc3BvbnNlLnN1bW1hcnksXG4gICAgICBza2lwRm9ybTogcmVzcG9uc2Uuc2tpcEZvcm0sXG4gICAgICBpc1NhdmVkTWV0aG9kUGF5bWVudDogISFyZXNwb25zZS5mb3JtPy5zYXZlZF9tZXRob2RfaWQsXG4gICAgICBjb3Vwb25Db2RlOiByZXNwb25zZS5mb3JtPy5jb3Vwb25Db2RlPy52YWx1ZSB8fCAnJyxcbiAgICAgIHB1YmxpY0lkOiByZXNwb25zZS5wdWJsaWNfaWQsXG4gICAgICBza2lwQ2hlY2tvdXQ6IHJlc3BvbnNlLnNraXBDaGVja291dCxcbiAgICAgIGtvcmVhTm90aWZpY2F0aW9uOiByZXNwb25zZS5mb3JtLmtvcmVhX2xpbWl0c19pbnN0cnVjdGlvbixcbiAgICAgIGlzQ2hlY2tvdXQ6IHJlc3BvbnNlLmlzQ2hlY2tvdXQsXG4gICAgICBjYXRlZ29yaWVzOiByZXNwb25zZS5jYXRlZ29yaWVzLFxuICAgICAgaGFzRmF0YWxFcnJvcnM6IHJlc3BvbnNlLnRleHRBbGw/LmZhdGFsLFxuICAgICAgdXNlclNlc3Npb246IHJlc3BvbnNlLnVzZXJTZXNzaW9uLFxuICAgICAgc3RhdHVzVGV4dDogKHJlc3BvbnNlLnN0YXR1cyBhcyBYcHNTdGF0dXMpPy5zdGF0dXNEYXRhPy5zdGF0ZVRleHQgPz8gbnVsbCxcbiAgICAgIGNvdW50cnk6IHJlc3BvbnNlLmNvdW50cnkgPyByZXNwb25zZS5jb3VudHJ5LmlzbyA6IG51bGwsXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
import { BehaviorSubject, Subject, filter, takeUntil, take, } from 'rxjs';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { SubmitResponse } from './submit/response/submit-response.class';
|
|
4
|
+
import { InitializeResponse } from './initialize/response/initialize-response.class';
|
|
5
|
+
import { isSubmitResponse } from './submit/response/is-submit-response.function';
|
|
6
|
+
import { InputEventName } from './form/input-event.enum';
|
|
7
|
+
import { XpsCommand } from './xps-comand.enum';
|
|
8
|
+
import { FieldNames } from './field-names.enum';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "./initialize/initialize.service";
|
|
11
|
+
import * as i2 from "./submit/submit.service";
|
|
12
|
+
import * as i3 from "./sync/sync.service";
|
|
13
|
+
import * as i4 from "./form/form.service";
|
|
14
|
+
import * as i5 from "./status/status.service";
|
|
15
|
+
import * as i6 from "./finance-details/finance-details.service";
|
|
16
|
+
import * as i7 from "./credit-card-state/credit-card-state.service";
|
|
17
|
+
import * as i8 from "./actions/next-action.service";
|
|
18
|
+
import * as i9 from "./form/controls/control-config.service";
|
|
19
|
+
import * as i10 from "./three-ds/three-ds.service";
|
|
20
|
+
import * as i11 from "./form-messages/form-messages.service";
|
|
21
|
+
import * as i12 from "../settings/settings.service";
|
|
22
|
+
import * as i13 from "../country/country.service";
|
|
23
|
+
import * as i14 from "./actions/check-status/check-status.action.class";
|
|
24
|
+
export class PaymentService {
|
|
25
|
+
get formFieldsStatus$() {
|
|
26
|
+
return this.formFieldsStatusSubject.asObservable().pipe(filter(Boolean));
|
|
27
|
+
}
|
|
28
|
+
get paymentForm$() {
|
|
29
|
+
return this._paymentForm$.asObservable();
|
|
30
|
+
}
|
|
31
|
+
get formResponse$() {
|
|
32
|
+
return this._formResponse$.asObservable();
|
|
33
|
+
}
|
|
34
|
+
get formResponseValue() {
|
|
35
|
+
return this._formResponse$.getValue();
|
|
36
|
+
}
|
|
37
|
+
constructor(initializeService, submitService, syncService, formService, statusService, financeDetailsService, creditCardStateService, nextActionService, controlConfigService, threeDsService, formMessagesService, settingsService, countryService, checkStatusActionCreator) {
|
|
38
|
+
this.initializeService = initializeService;
|
|
39
|
+
this.submitService = submitService;
|
|
40
|
+
this.syncService = syncService;
|
|
41
|
+
this.formService = formService;
|
|
42
|
+
this.statusService = statusService;
|
|
43
|
+
this.financeDetailsService = financeDetailsService;
|
|
44
|
+
this.creditCardStateService = creditCardStateService;
|
|
45
|
+
this.nextActionService = nextActionService;
|
|
46
|
+
this.controlConfigService = controlConfigService;
|
|
47
|
+
this.threeDsService = threeDsService;
|
|
48
|
+
this.formMessagesService = formMessagesService;
|
|
49
|
+
this.settingsService = settingsService;
|
|
50
|
+
this.countryService = countryService;
|
|
51
|
+
this.checkStatusActionCreator = checkStatusActionCreator;
|
|
52
|
+
this.form = null;
|
|
53
|
+
this.data = null;
|
|
54
|
+
this.financeDetails = null;
|
|
55
|
+
this.focusFieldName = null;
|
|
56
|
+
this.fields = [];
|
|
57
|
+
this.destroy$ = new Subject();
|
|
58
|
+
this.formDestroy$ = new Subject();
|
|
59
|
+
this._paymentForm$ = new BehaviorSubject(null);
|
|
60
|
+
this.formFieldsStatusSubject = new BehaviorSubject(null);
|
|
61
|
+
this._formResponse$ = new BehaviorSubject(null);
|
|
62
|
+
this.isSavingMethodMode = false;
|
|
63
|
+
}
|
|
64
|
+
async initialize(config) {
|
|
65
|
+
this.destroy$ = new Subject();
|
|
66
|
+
this.formDestroy$ = new Subject();
|
|
67
|
+
this.listenFinanceDetails();
|
|
68
|
+
this.config = config;
|
|
69
|
+
this.data = await this.initializeService.request(config);
|
|
70
|
+
this.emitFormResponse(this.data);
|
|
71
|
+
this.fields = this.getFields();
|
|
72
|
+
this.form = this.formService.createForm(this.fields);
|
|
73
|
+
this.updatePidConfig();
|
|
74
|
+
this.setupSyncService(this.form, this.fields);
|
|
75
|
+
this.listenFormStatusChanges(this.form);
|
|
76
|
+
this.emitFinanceDetails(this.data.paymentForm?.summary);
|
|
77
|
+
this.emitFormFieldsStatus(this.form);
|
|
78
|
+
this.emitFormMessages(this.getInitializeMessages());
|
|
79
|
+
return this.fields.filter((field) => field?.isVisible === "1" /* XpsBoolean.true */);
|
|
80
|
+
}
|
|
81
|
+
async submit() {
|
|
82
|
+
if (!this.form) {
|
|
83
|
+
throw new Error('form is empty!');
|
|
84
|
+
}
|
|
85
|
+
if (!this.form.valid) {
|
|
86
|
+
this.form.markAllAsTouched();
|
|
87
|
+
this.emitFormFieldsStatus(this.form);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
this.isSavingMethodMode = this.fields.some(({ name, value }) => name === 'savePsAccountOnly' && value === "1" /* XpsBoolean.true */);
|
|
91
|
+
const submitResponse = await this.submitService.request(this.fields, this.form);
|
|
92
|
+
this.data = submitResponse;
|
|
93
|
+
this.emitFormResponse(this.data);
|
|
94
|
+
if (!this.isSavingMethodMode) {
|
|
95
|
+
this.emitFinanceDetails(submitResponse.summary);
|
|
96
|
+
}
|
|
97
|
+
this.emitFormMessages(submitResponse.messages);
|
|
98
|
+
// Handle 3ds flow
|
|
99
|
+
if (submitResponse.currentCommand === XpsCommand.create &&
|
|
100
|
+
submitResponse.parameters.threeDSForm) {
|
|
101
|
+
this.runThreeDs();
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
this.fields = this.getFields();
|
|
105
|
+
this.form = this.formService.createForm(this.fields);
|
|
106
|
+
this.syncService.setup(this.form, this.fields);
|
|
107
|
+
return this.nextActionService.getNextAction(submitResponse);
|
|
108
|
+
}
|
|
109
|
+
getFields() {
|
|
110
|
+
if (this.data instanceof SubmitResponse) {
|
|
111
|
+
return this.data.fields ?? [];
|
|
112
|
+
}
|
|
113
|
+
return this.data?.paymentForm?.fields ?? [];
|
|
114
|
+
}
|
|
115
|
+
getControlStatus(name) {
|
|
116
|
+
const control = this.form?.get(name);
|
|
117
|
+
if (!control) {
|
|
118
|
+
return null;
|
|
119
|
+
}
|
|
120
|
+
return {
|
|
121
|
+
name,
|
|
122
|
+
errors: control.errors,
|
|
123
|
+
status: control.status,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
getInitialDataForSdkPaymentSystems() {
|
|
127
|
+
if (!isSubmitResponse(this.data)) {
|
|
128
|
+
throw new Error('Should submit form first');
|
|
129
|
+
}
|
|
130
|
+
return {
|
|
131
|
+
data: this.data.parameters.checkout.data.data,
|
|
132
|
+
sandbox: this.settingsService.isSandboxMode()
|
|
133
|
+
? "1" /* XpsBoolean.true */
|
|
134
|
+
: "0" /* XpsBoolean.false */,
|
|
135
|
+
country: this.countryService.getCountry(),
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
getQrCode() {
|
|
139
|
+
if (!isSubmitResponse(this.data)) {
|
|
140
|
+
throw new Error('Should submit form first');
|
|
141
|
+
}
|
|
142
|
+
return this.data.parameters.form.qr.title;
|
|
143
|
+
}
|
|
144
|
+
getPid() {
|
|
145
|
+
if (this.data instanceof SubmitResponse) {
|
|
146
|
+
return (Number(this.data.fields.find((field) => field.name === 'fix_pid')?.value) || null);
|
|
147
|
+
}
|
|
148
|
+
if (this.data instanceof InitializeResponse) {
|
|
149
|
+
return (Number(this.data.paymentForm?.fields.find((field) => field.name === 'fix_pid')?.value) || null);
|
|
150
|
+
}
|
|
151
|
+
return null;
|
|
152
|
+
}
|
|
153
|
+
getSubmitButtonText() {
|
|
154
|
+
if (this.data instanceof SubmitResponse) {
|
|
155
|
+
return this.data.parameters.buyData.value;
|
|
156
|
+
}
|
|
157
|
+
if (this.data instanceof InitializeResponse) {
|
|
158
|
+
return this.data.paymentForm?.buyData.value ?? null;
|
|
159
|
+
}
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
async validate(field) {
|
|
163
|
+
const syncErrors = this.syncService.getSyncValidationErrors(field);
|
|
164
|
+
if (syncErrors) {
|
|
165
|
+
return Promise.resolve(syncErrors);
|
|
166
|
+
}
|
|
167
|
+
return this.syncService.validate(field);
|
|
168
|
+
}
|
|
169
|
+
runThreeDs() {
|
|
170
|
+
if (!isSubmitResponse(this.data)) {
|
|
171
|
+
throw new Error('Should submit form first');
|
|
172
|
+
}
|
|
173
|
+
this.threeDsService.checkThreeDs(this.data);
|
|
174
|
+
}
|
|
175
|
+
getFinanceDetails() {
|
|
176
|
+
return this.financeDetails;
|
|
177
|
+
}
|
|
178
|
+
updateFieldFormState(fieldName, formState) {
|
|
179
|
+
if (this.form) {
|
|
180
|
+
this.formService.updateFieldFormState(this.form, this.fields, fieldName, formState);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
getFieldFormState(fieldName) {
|
|
184
|
+
return this.formService.getFieldFormState(fieldName);
|
|
185
|
+
}
|
|
186
|
+
async getStatus() {
|
|
187
|
+
if (!isSubmitResponse(this.data)) {
|
|
188
|
+
throw new Error('Should submit form first');
|
|
189
|
+
}
|
|
190
|
+
const params = {
|
|
191
|
+
pid: this.config.paymentMethodId,
|
|
192
|
+
invoice: parseInt(this.data.fixInvoice ?? ''),
|
|
193
|
+
signature: this.data.signature ?? '',
|
|
194
|
+
locale: this.data.fields.find((field) => field.name === 'locale')?.value ??
|
|
195
|
+
'en',
|
|
196
|
+
isSavePaymentAccount: this.isSavingMethodMode
|
|
197
|
+
? "1" /* XpsBoolean.true */
|
|
198
|
+
: "0" /* XpsBoolean.false */,
|
|
199
|
+
};
|
|
200
|
+
return this.statusService.getStatus(params);
|
|
201
|
+
}
|
|
202
|
+
async listenFinalStatus() {
|
|
203
|
+
const { invoice } = await this.getStatus();
|
|
204
|
+
this.statusService
|
|
205
|
+
.listenFinalStatus(invoice)
|
|
206
|
+
.pipe(take(1))
|
|
207
|
+
.subscribe(() => {
|
|
208
|
+
this.nextActionService.emitFlowUpdates(this.checkStatusActionCreator.getActionData());
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
getFieldConfig(field) {
|
|
212
|
+
return this.controlConfigService.getConfig(field);
|
|
213
|
+
}
|
|
214
|
+
changeFieldValue(name, value) {
|
|
215
|
+
const formControl = this.form?.get(name);
|
|
216
|
+
formControl?.setValue(value);
|
|
217
|
+
}
|
|
218
|
+
changeFieldState(name, state) {
|
|
219
|
+
const formControl = this.form?.get(name);
|
|
220
|
+
if (!this.form || !formControl) {
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
switch (state) {
|
|
224
|
+
case InputEventName.blur: {
|
|
225
|
+
formControl.markAsTouched();
|
|
226
|
+
this.focusFieldName = null;
|
|
227
|
+
break;
|
|
228
|
+
}
|
|
229
|
+
case InputEventName.focus: {
|
|
230
|
+
formControl.markAsUntouched();
|
|
231
|
+
this.focusFieldName = name;
|
|
232
|
+
break;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
this.emitFormFieldsStatus(this.form);
|
|
236
|
+
}
|
|
237
|
+
addExtraField(name, value) {
|
|
238
|
+
const isHaveField = this.fields.find((field) => {
|
|
239
|
+
return field.name === name;
|
|
240
|
+
});
|
|
241
|
+
if (isHaveField) {
|
|
242
|
+
this.fields = this.fields.map((field) => {
|
|
243
|
+
if (field.name === name) {
|
|
244
|
+
field.value = value;
|
|
245
|
+
}
|
|
246
|
+
return field;
|
|
247
|
+
});
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
const field = {
|
|
251
|
+
name: name,
|
|
252
|
+
value: value,
|
|
253
|
+
title: '',
|
|
254
|
+
type: 'text',
|
|
255
|
+
example: '',
|
|
256
|
+
isMandatory: "1" /* XpsBoolean.true */,
|
|
257
|
+
isVisible: "0" /* XpsBoolean.false */,
|
|
258
|
+
};
|
|
259
|
+
this.fields.push(field);
|
|
260
|
+
}
|
|
261
|
+
destroy() {
|
|
262
|
+
this.data = null;
|
|
263
|
+
this.financeDetails = null;
|
|
264
|
+
this.form = null;
|
|
265
|
+
this.fields = [];
|
|
266
|
+
this.formDestroy$.next();
|
|
267
|
+
this.destroy$.next();
|
|
268
|
+
this.threeDsService.stopChecking();
|
|
269
|
+
}
|
|
270
|
+
emitFinanceDetails(summary) {
|
|
271
|
+
this.financeDetailsService.emitWithSummary(summary);
|
|
272
|
+
}
|
|
273
|
+
emitCreditCardState(idCardType) {
|
|
274
|
+
this.creditCardStateService.emit({ idCardType });
|
|
275
|
+
}
|
|
276
|
+
emitFormFieldsStatus(form) {
|
|
277
|
+
const formFieldsStatus = {};
|
|
278
|
+
Object.keys(form.controls).forEach((name) => {
|
|
279
|
+
const control = form.controls[name];
|
|
280
|
+
formFieldsStatus[name] = {
|
|
281
|
+
name: name,
|
|
282
|
+
validationStatus: control.status,
|
|
283
|
+
errors: control.errors,
|
|
284
|
+
isFocused: this.focusFieldName === name,
|
|
285
|
+
isTouched: control.touched,
|
|
286
|
+
};
|
|
287
|
+
});
|
|
288
|
+
this.formFieldsStatusSubject.next(formFieldsStatus);
|
|
289
|
+
}
|
|
290
|
+
emitFormMessages(messages) {
|
|
291
|
+
this.formMessagesService.emitOnResponse(messages);
|
|
292
|
+
}
|
|
293
|
+
setupSyncService(form, fields) {
|
|
294
|
+
this.syncService.setup(form, fields);
|
|
295
|
+
this.syncService.data$
|
|
296
|
+
.pipe(takeUntil(this.destroy$))
|
|
297
|
+
.subscribe((response) => {
|
|
298
|
+
this.emitFinanceDetails(response.summary);
|
|
299
|
+
this.emitFormMessages(response.messages);
|
|
300
|
+
this.emitFormResponse(response);
|
|
301
|
+
});
|
|
302
|
+
this.syncService.fieldAsyncValidation$
|
|
303
|
+
.pipe(takeUntil(this.destroy$))
|
|
304
|
+
.subscribe((fieldAsyncValidation) => {
|
|
305
|
+
switch (fieldAsyncValidation.field.name) {
|
|
306
|
+
case FieldNames.cardNumber:
|
|
307
|
+
this.emitCreditCardState(fieldAsyncValidation.response.parameters.idCardType);
|
|
308
|
+
}
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
listenFinanceDetails() {
|
|
312
|
+
this.financeDetailsService.data$
|
|
313
|
+
.pipe(takeUntil(this.destroy$))
|
|
314
|
+
.subscribe((financeDetails) => (this.financeDetails = financeDetails));
|
|
315
|
+
}
|
|
316
|
+
listenFormStatusChanges(form) {
|
|
317
|
+
form.statusChanges
|
|
318
|
+
.pipe(takeUntil(this.formDestroy$))
|
|
319
|
+
.subscribe((status) => {
|
|
320
|
+
this.emitFormFieldsStatus(form);
|
|
321
|
+
this._paymentForm$.next(status);
|
|
322
|
+
});
|
|
323
|
+
}
|
|
324
|
+
/*
|
|
325
|
+
* in case the form pid changes despite the one passed during initialization
|
|
326
|
+
* */
|
|
327
|
+
updatePidConfig() {
|
|
328
|
+
const currentPid = this.getPid();
|
|
329
|
+
if (currentPid) {
|
|
330
|
+
this.config.paymentMethodId = currentPid;
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
emitFormResponse(data) {
|
|
334
|
+
let type;
|
|
335
|
+
if (data instanceof InitializeResponse) {
|
|
336
|
+
type = 'initialize';
|
|
337
|
+
}
|
|
338
|
+
else if (data instanceof SubmitResponse) {
|
|
339
|
+
type = 'submit';
|
|
340
|
+
}
|
|
341
|
+
else {
|
|
342
|
+
type = 'sync';
|
|
343
|
+
}
|
|
344
|
+
this._formResponse$.next({
|
|
345
|
+
type,
|
|
346
|
+
data,
|
|
347
|
+
token: this.settingsService.token,
|
|
348
|
+
isSandbox: this.settingsService.isSandboxMode(),
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
getInitializeMessages() {
|
|
352
|
+
const messages = this.data.paymentForm?.messages;
|
|
353
|
+
const koreaNotification = this.data.paymentForm
|
|
354
|
+
?.koreaNotification;
|
|
355
|
+
if (koreaNotification) {
|
|
356
|
+
messages?.push({ code: '0', message: koreaNotification?.title });
|
|
357
|
+
}
|
|
358
|
+
return messages ?? [];
|
|
359
|
+
}
|
|
360
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: PaymentService, deps: [{ token: i1.InitializeService }, { token: i2.SubmitService }, { token: i3.SyncService }, { token: i4.FormService }, { token: i5.StatusService }, { token: i6.FinanceDetailsService }, { token: i7.CreditCardStateService }, { token: i8.NextActionService }, { token: i9.ControlConfigService }, { token: i10.ThreeDsService }, { token: i11.FormMessagesService }, { token: i12.SettingsService }, { token: i13.CountryService }, { token: i14.CheckStatusActionCreator }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
361
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: PaymentService, providedIn: 'root' }); }
|
|
362
|
+
}
|
|
363
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: PaymentService, decorators: [{
|
|
364
|
+
type: Injectable,
|
|
365
|
+
args: [{
|
|
366
|
+
providedIn: 'root',
|
|
367
|
+
}]
|
|
368
|
+
}], ctorParameters: () => [{ type: i1.InitializeService }, { type: i2.SubmitService }, { type: i3.SyncService }, { type: i4.FormService }, { type: i5.StatusService }, { type: i6.FinanceDetailsService }, { type: i7.CreditCardStateService }, { type: i8.NextActionService }, { type: i9.ControlConfigService }, { type: i10.ThreeDsService }, { type: i11.FormMessagesService }, { type: i12.SettingsService }, { type: i13.CountryService }, { type: i14.CheckStatusActionCreator }] });
|
|
369
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9wYXltZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFFZixPQUFPLEVBQ1AsTUFBTSxFQUNOLFNBQVMsRUFDVCxJQUFJLEdBQ0wsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQWVyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUlqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQWNoRCxNQUFNLE9BQU8sY0FBYztJQUd6QixJQUFXLGlCQUFpQjtRQUMxQixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGNB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QyxXQUFXLEVBQUUsUUFBUSxDQUFDO1FBQ3pFLE1BQU0saUJBQWlCLEdBQUksSUFBSSxDQUFDLElBQTJCLENBQUMsV0FBVztZQUNyRSxFQUFFLGlCQUFpQixDQUFDO1FBQ3RCLElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUN0QixRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBQ0QsT0FBTyxRQUFRLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7OEdBN2JVLGNBQWM7a0hBQWQsY0FBYyxjQUZiLE1BQU07OzJGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBPYnNlcnZhYmxlLFxuICBTdWJqZWN0LFxuICBmaWx0ZXIsXG4gIHRha2VVbnRpbCxcbiAgdGFrZSxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbFN0YXR1cywgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1Ym1pdFJlc3BvbnNlIH0gZnJvbSAnLi9zdWJtaXQvcmVzcG9uc2Uvc3VibWl0LXJlc3BvbnNlLmNsYXNzJztcbmltcG9ydCB7IEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi9mb3JtL2Zvcm0uc2VydmljZSc7XG5pbXBvcnQgeyBJbml0aWFsaXplUmVzcG9uc2UgfSBmcm9tICcuL2luaXRpYWxpemUvcmVzcG9uc2UvaW5pdGlhbGl6ZS1yZXNwb25zZS5jbGFzcyc7XG5pbXBvcnQgeyBJbml0aWFsaXplU2VydmljZSB9IGZyb20gJy4vaW5pdGlhbGl6ZS9pbml0aWFsaXplLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RhdHVzIH0gZnJvbSAnLi9zdGF0dXMvc3RhdHVzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTdWJtaXRTZXJ2aWNlIH0gZnJvbSAnLi9zdWJtaXQvc3VibWl0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU3luY1NlcnZpY2UgfSBmcm9tICcuL3N5bmMvc3luYy5zZXJ2aWNlJztcbmltcG9ydCB7IFN0YXR1c1NlcnZpY2UgfSBmcm9tICcuL3N0YXR1cy9zdGF0dXMuc2VydmljZSc7XG5pbXBvcnQgeyBOZXh0QWN0aW9uU2VydmljZSB9IGZyb20gJy4vYWN0aW9ucy9uZXh0LWFjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRyb2xDb25maWcgfSBmcm9tICcuL2Zvcm0vY29udHJvbHMvY29udHJvbC1jb25maWcnO1xuaW1wb3J0IHsgQ29udHJvbENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL2Zvcm0vY29udHJvbHMvY29udHJvbC1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBGaW5hbmNlRGV0YWlscyB9IGZyb20gJy4vZmluYW5jZS1kZXRhaWxzL2ZpbmFuY2UtZGV0YWlscy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmluYW5jZURldGFpbHNTZXJ2aWNlIH0gZnJvbSAnLi9maW5hbmNlLWRldGFpbHMvZmluYW5jZS1kZXRhaWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmV4dEFjdGlvbiB9IGZyb20gJy4vYWN0aW9ucy9uZXh0LWFjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgWHBzU3VtbWFyeSB9IGZyb20gJy4veHBzLXN1bW1hcnkuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi9maWVsZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUGF5bWVudENvbmZpZyB9IGZyb20gJy4vcGF5bWVudC1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IGlzU3VibWl0UmVzcG9uc2UgfSBmcm9tICcuL3N1Ym1pdC9yZXNwb25zZS9pcy1zdWJtaXQtcmVzcG9uc2UuZnVuY3Rpb24nO1xuaW1wb3J0IHsgWHBzQm9vbGVhbiB9IGZyb20gJy4uL3hwcy1ib29sZWFuLmVudW0nO1xuaW1wb3J0IHsgU3RhdHVzUmVxdWVzdFBhcmFtcyB9IGZyb20gJy4vc3RhdHVzL3N0YXR1cy1yZXF1ZXN0L3N0YXR1cy1yZXF1ZXN0LXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJy4vZm9ybS92YWxpZGF0b3JzL3ZhbGlkYXRpb24tZXJyb3JzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJbnB1dEV2ZW50TmFtZSB9IGZyb20gJy4vZm9ybS9pbnB1dC1ldmVudC5lbnVtJztcbmltcG9ydCB7IEZvcm1GaWVsZHNTdGF0dXMgfSBmcm9tICcuL2Zvcm0vZm9ybS1maWVsZHMtc3RhdHVzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUaHJlZURzU2VydmljZSB9IGZyb20gJy4vdGhyZWUtZHMvdGhyZWUtZHMuc2VydmljZSc7XG5pbXBvcnQgeyBYcHNDb21tYW5kIH0gZnJvbSAnLi94cHMtY29tYW5kLmVudW0nO1xuaW1wb3J0IHsgQ3JlZGl0Q2FyZFN0YXRlU2VydmljZSB9IGZyb20gJy4vY3JlZGl0LWNhcmQtc3RhdGUvY3JlZGl0LWNhcmQtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBGaWVsZE5hbWVzIH0gZnJvbSAnLi9maWVsZC1uYW1lcy5lbnVtJztcbmltcG9ydCB7IEZvcm1TdGF0ZSB9IGZyb20gJy4vZm9ybS9mb3JtLXN0YXRlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGb3JtTWVzc2FnZXNTZXJ2aWNlIH0gZnJvbSAnLi9mb3JtLW1lc3NhZ2VzL2Zvcm0tbWVzc2FnZXMuc2VydmljZSc7XG5pbXBvcnQgeyBYcHNNZXNzYWdlIH0gZnJvbSAnLi94cHMtbWVzc2FnZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vc2V0dGluZ3Mvc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBDb3VudHJ5U2VydmljZSB9IGZyb20gJy4uL2NvdW50cnkvY291bnRyeS5zZXJ2aWNlJztcbmltcG9ydCB7IFNka1BheW1lbnRTeXN0ZW1zSW5pdGlhbERhdGEgfSBmcm9tICcuLi9zZGstcGF5bWVudC1zeXN0ZW1zL3Nkay1wYXltZW50LXN5c3RlbXMtaW5pdGlhbC1kYXRhLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGb3JtUmVzcG9uc2UgfSBmcm9tICcuL2Zvcm0tcmVzcG9uc2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IENoZWNrU3RhdHVzQWN0aW9uQ3JlYXRvciB9IGZyb20gJy4vYWN0aW9ucy9jaGVjay1zdGF0dXMvY2hlY2stc3RhdHVzLmFjdGlvbi5jbGFzcyc7XG5pbXBvcnQgeyBDb250cm9sU3RhdHVzIH0gZnJvbSAnLi9mb3JtL2NvbnRyb2wtc3RhdHVzLmludGVyZmFjZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQYXltZW50U2VydmljZSB7XG4gIHB1YmxpYyBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwIHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGdldCBmb3JtRmllbGRzU3RhdHVzJCgpOiBPYnNlcnZhYmxlPEZvcm1GaWVsZHNTdGF0dXM+IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtRmllbGRzU3RhdHVzU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKGZpbHRlcihCb29sZWFuKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBheW1lbnRGb3JtJCgpOiBPYnNlcnZhYmxlPEZvcm1Db250cm9sU3RhdHVzIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLl9wYXltZW50Rm9ybSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZvcm1SZXNwb25zZSQoKTogT2JzZXJ2YWJsZTxGb3JtUmVzcG9uc2UgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1SZXNwb25zZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZvcm1SZXNwb25zZVZhbHVlKCk6IEZvcm1SZXNwb25zZSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9mb3JtUmVzcG9uc2UkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwcml2YXRlIGRhdGE6IEluaXRpYWxpemVSZXNwb25zZSB8IFN1Ym1pdFJlc3BvbnNlIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgZmluYW5jZURldGFpbHM6IEZpbmFuY2VEZXRhaWxzIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgZm9jdXNGaWVsZE5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGZpZWxkczogRmllbGRbXSA9IFtdO1xuICBwcml2YXRlIGNvbmZpZyE6IFBheW1lbnRDb25maWc7XG5cbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgZm9ybURlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcGF5bWVudEZvcm0kID1cbiAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PEZvcm1Db250cm9sU3RhdHVzIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybUZpZWxkc1N0YXR1c1N1YmplY3QgPVxuICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8Rm9ybUZpZWxkc1N0YXR1cyB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9mb3JtUmVzcG9uc2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGb3JtUmVzcG9uc2UgfCBudWxsPihcbiAgICBudWxsXG4gICk7XG5cbiAgcHJpdmF0ZSBpc1NhdmluZ01ldGhvZE1vZGUgPSBmYWxzZTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbml0aWFsaXplU2VydmljZTogSW5pdGlhbGl6ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdWJtaXRTZXJ2aWNlOiBTdWJtaXRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3luY1NlcnZpY2U6IFN5bmNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybVNlcnZpY2U6IEZvcm1TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RhdHVzU2VydmljZTogU3RhdHVzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpbmFuY2VEZXRhaWxzU2VydmljZTogRmluYW5jZURldGFpbHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY3JlZGl0Q2FyZFN0YXRlU2VydmljZTogQ3JlZGl0Q2FyZFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5leHRBY3Rpb25TZXJ2aWNlOiBOZXh0QWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRyb2xDb25maWdTZXJ2aWNlOiBDb250cm9sQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRocmVlRHNTZXJ2aWNlOiBUaHJlZURzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1NZXNzYWdlc1NlcnZpY2U6IEZvcm1NZXNzYWdlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvdW50cnlTZXJ2aWNlOiBDb3VudHJ5U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoZWNrU3RhdHVzQWN0aW9uQ3JlYXRvcjogQ2hlY2tTdGF0dXNBY3Rpb25DcmVhdG9yXG4gICkge31cblxuICBwdWJsaWMgYXN5bmMgaW5pdGlhbGl6ZShjb25maWc6IFBheW1lbnRDb25maWcpOiBQcm9taXNlPEZpZWxkW10+IHtcbiAgICB0aGlzLmRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICB0aGlzLmZvcm1EZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICB0aGlzLmxpc3RlbkZpbmFuY2VEZXRhaWxzKCk7XG5cbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICB0aGlzLmRhdGEgPSBhd2FpdCB0aGlzLmluaXRpYWxpemVTZXJ2aWNlLnJlcXVlc3QoY29uZmlnKTtcbiAgICB0aGlzLmVtaXRGb3JtUmVzcG9uc2UodGhpcy5kYXRhKTtcblxuICAgIHRoaXMuZmllbGRzID0gdGhpcy5nZXRGaWVsZHMoKTtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1TZXJ2aWNlLmNyZWF0ZUZvcm0odGhpcy5maWVsZHMpO1xuXG4gICAgdGhpcy51cGRhdGVQaWRDb25maWcoKTtcbiAgICB0aGlzLnNldHVwU3luY1NlcnZpY2UodGhpcy5mb3JtLCB0aGlzLmZpZWxkcyk7XG4gICAgdGhpcy5saXN0ZW5Gb3JtU3RhdHVzQ2hhbmdlcyh0aGlzLmZvcm0pO1xuXG4gICAgdGhpcy5lbWl0RmluYW5jZURldGFpbHModGhpcy5kYXRhLnBheW1lbnRGb3JtPy5zdW1tYXJ5KTtcbiAgICB0aGlzLmVtaXRGb3JtRmllbGRzU3RhdHVzKHRoaXMuZm9ybSk7XG5cbiAgICB0aGlzLmVtaXRGb3JtTWVzc2FnZXModGhpcy5nZXRJbml0aWFsaXplTWVzc2FnZXMoKSk7XG5cbiAgICByZXR1cm4gdGhpcy5maWVsZHMuZmlsdGVyKFxuICAgICAgKGZpZWxkOiBGaWVsZCkgPT4gZmllbGQ/LmlzVmlzaWJsZSA9PT0gWHBzQm9vbGVhbi50cnVlXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzdWJtaXQoKTogUHJvbWlzZTxOZXh0QWN0aW9uIHwgbnVsbCB8IHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuZm9ybSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdmb3JtIGlzIGVtcHR5IScpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgICAgdGhpcy5lbWl0Rm9ybUZpZWxkc1N0YXR1cyh0aGlzLmZvcm0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNTYXZpbmdNZXRob2RNb2RlID0gdGhpcy5maWVsZHMuc29tZShcbiAgICAgICh7IG5hbWUsIHZhbHVlIH0pID0+XG4gICAgICAgIG5hbWUgPT09ICdzYXZlUHNBY2NvdW50T25seScgJiYgdmFsdWUgPT09IFhwc0Jvb2xlYW4udHJ1ZVxuICAgICk7XG4gICAgY29uc3Qgc3VibWl0UmVzcG9uc2UgPSBhd2FpdCB0aGlzLnN1Ym1pdFNlcnZpY2UucmVxdWVzdChcbiAgICAgIHRoaXMuZmllbGRzLFxuICAgICAgdGhpcy5mb3JtXG4gICAgKTtcblxuICAgIHRoaXMuZGF0YSA9IHN1Ym1pdFJlc3BvbnNlO1xuICAgIHRoaXMuZW1pdEZvcm1SZXNwb25zZSh0aGlzLmRhdGEpO1xuXG4gICAgaWYgKCF0aGlzLmlzU2F2aW5nTWV0aG9kTW9kZSkge1xuICAgICAgdGhpcy5lbWl0RmluYW5jZURldGFpbHMoc3VibWl0UmVzcG9uc2Uuc3VtbWFyeSk7XG4gICAgfVxuICAgIHRoaXMuZW1pdEZvcm1NZXNzYWdlcyhzdWJtaXRSZXNwb25zZS5tZXNzYWdlcyk7XG5cbiAgICAvLyBIYW5kbGUgM2RzIGZsb3dcbiAgICBpZiAoXG4gICAgICBzdWJtaXRSZXNwb25zZS5jdXJyZW50Q29tbWFuZCA9PT0gWHBzQ29tbWFuZC5jcmVhdGUgJiZcbiAgICAgIHN1Ym1pdFJlc3BvbnNlLnBhcmFtZXRlcnMudGhyZWVEU0Zvcm1cbiAgICApIHtcbiAgICAgIHRoaXMucnVuVGhyZWVEcygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZmllbGRzID0gdGhpcy5nZXRGaWVsZHMoKTtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1TZXJ2aWNlLmNyZWF0ZUZvcm0odGhpcy5maWVsZHMpO1xuXG4gICAgdGhpcy5zeW5jU2VydmljZS5zZXR1cCh0aGlzLmZvcm0sIHRoaXMuZmllbGRzKTtcblxuICAgIHJldHVybiB0aGlzLm5leHRBY3Rpb25TZXJ2aWNlLmdldE5leHRBY3Rpb24oc3VibWl0UmVzcG9uc2UpO1xuICB9XG5cbiAgcHVibGljIGdldEZpZWxkcygpOiBGaWVsZFtdIHtcbiAgICBpZiAodGhpcy5kYXRhIGluc3RhbmNlb2YgU3VibWl0UmVzcG9uc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGEuZmllbGRzID8/IFtdO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmRhdGE/LnBheW1lbnRGb3JtPy5maWVsZHMgPz8gW107XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29udHJvbFN0YXR1cyhuYW1lOiBGaWVsZE5hbWVzKTogQ29udHJvbFN0YXR1cyB8IG51bGwge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm0/LmdldChuYW1lKTtcbiAgICBpZiAoIWNvbnRyb2wpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lLFxuICAgICAgZXJyb3JzOiBjb250cm9sLmVycm9ycyxcbiAgICAgIHN0YXR1czogY29udHJvbC5zdGF0dXMsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRJbml0aWFsRGF0YUZvclNka1BheW1lbnRTeXN0ZW1zKCk6IFNka1BheW1lbnRTeXN0ZW1zSW5pdGlhbERhdGEge1xuICAgIGlmICghaXNTdWJtaXRSZXNwb25zZSh0aGlzLmRhdGEpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBzdWJtaXQgZm9ybSBmaXJzdCcpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhOiB0aGlzLmRhdGEucGFyYW1ldGVycy5jaGVja291dC5kYXRhLmRhdGEsXG4gICAgICBzYW5kYm94OiB0aGlzLnNldHRpbmdzU2VydmljZS5pc1NhbmRib3hNb2RlKClcbiAgICAgICAgPyBYcHNCb29sZWFuLnRydWVcbiAgICAgICAgOiBYcHNCb29sZWFuLmZhbHNlLFxuICAgICAgY291bnRyeTogdGhpcy5jb3VudHJ5U2VydmljZS5nZXRDb3VudHJ5KCksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRRckNvZGUoKTogc3RyaW5nIHtcbiAgICBpZiAoIWlzU3VibWl0UmVzcG9uc2UodGhpcy5kYXRhKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgc3VibWl0IGZvcm0gZmlyc3QnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5kYXRhLnBhcmFtZXRlcnMuZm9ybS5xci50aXRsZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRQaWQoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuZGF0YSBpbnN0YW5jZW9mIFN1Ym1pdFJlc3BvbnNlKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBOdW1iZXIoXG4gICAgICAgICAgdGhpcy5kYXRhLmZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGQubmFtZSA9PT0gJ2ZpeF9waWQnKT8udmFsdWVcbiAgICAgICAgKSB8fCBudWxsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGEgaW5zdGFuY2VvZiBJbml0aWFsaXplUmVzcG9uc2UpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIE51bWJlcihcbiAgICAgICAgICB0aGlzLmRhdGEucGF5bWVudEZvcm0/LmZpZWxkcy5maW5kKFxuICAgICAgICAgICAgKGZpZWxkKSA9PiBmaWVsZC5uYW1lID09PSAnZml4X3BpZCdcbiAgICAgICAgICApPy52YWx1ZVxuICAgICAgICApIHx8IG51bGxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3VibWl0QnV0dG9uVGV4dCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAodGhpcy5kYXRhIGluc3RhbmNlb2YgU3VibWl0UmVzcG9uc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGEucGFyYW1ldGVycy5idXlEYXRhLnZhbHVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGEgaW5zdGFuY2VvZiBJbml0aWFsaXplUmVzcG9uc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGEucGF5bWVudEZvcm0/LmJ1eURhdGEudmFsdWUgPz8gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB2YWxpZGF0ZShmaWVsZDogRmllbGQpOiBQcm9taXNlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiB7XG4gICAgY29uc3Qgc3luY0Vycm9ycyA9IHRoaXMuc3luY1NlcnZpY2UuZ2V0U3luY1ZhbGlkYXRpb25FcnJvcnMoZmllbGQpO1xuXG4gICAgaWYgKHN5bmNFcnJvcnMpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoc3luY0Vycm9ycyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc3luY1NlcnZpY2UudmFsaWRhdGUoZmllbGQpO1xuICB9XG5cbiAgcHVibGljIHJ1blRocmVlRHMoKTogdm9pZCB7XG4gICAgaWYgKCFpc1N1Ym1pdFJlc3BvbnNlKHRoaXMuZGF0YSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2hvdWxkIHN1Ym1pdCBmb3JtIGZpcnN0Jyk7XG4gICAgfVxuXG4gICAgdGhpcy50aHJlZURzU2VydmljZS5jaGVja1RocmVlRHModGhpcy5kYXRhKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRGaW5hbmNlRGV0YWlscygpOiBGaW5hbmNlRGV0YWlscyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmZpbmFuY2VEZXRhaWxzO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUZpZWxkRm9ybVN0YXRlKGZpZWxkTmFtZTogc3RyaW5nLCBmb3JtU3RhdGU6IEZvcm1TdGF0ZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvcm0pIHtcbiAgICAgIHRoaXMuZm9ybVNlcnZpY2UudXBkYXRlRmllbGRGb3JtU3RhdGUoXG4gICAgICAgIHRoaXMuZm9ybSxcbiAgICAgICAgdGhpcy5maWVsZHMsXG4gICAgICAgIGZpZWxkTmFtZSxcbiAgICAgICAgZm9ybVN0YXRlXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRGaWVsZEZvcm1TdGF0ZShmaWVsZE5hbWU6IEZpZWxkTmFtZXMpOiBGb3JtU3RhdGUgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtU2VydmljZS5nZXRGaWVsZEZvcm1TdGF0ZShmaWVsZE5hbWUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFN0YXR1cygpOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgIGlmICghaXNTdWJtaXRSZXNwb25zZSh0aGlzLmRhdGEpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBzdWJtaXQgZm9ybSBmaXJzdCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcmFtczogU3RhdHVzUmVxdWVzdFBhcmFtcyA9IHtcbiAgICAgIHBpZDogdGhpcy5jb25maWcucGF5bWVudE1ldGhvZElkLFxuICAgICAgaW52b2ljZTogcGFyc2VJbnQodGhpcy5kYXRhLmZpeEludm9pY2UgPz8gJycpLFxuICAgICAgc2lnbmF0dXJlOiB0aGlzLmRhdGEuc2lnbmF0dXJlID8/ICcnLFxuICAgICAgbG9jYWxlOlxuICAgICAgICB0aGlzLmRhdGEuZmllbGRzLmZpbmQoKGZpZWxkKSA9PiBmaWVsZC5uYW1lID09PSAnbG9jYWxlJyk/LnZhbHVlID8/XG4gICAgICAgICdlbicsXG4gICAgICBpc1NhdmVQYXltZW50QWNjb3VudDogdGhpcy5pc1NhdmluZ01ldGhvZE1vZGVcbiAgICAgICAgPyBYcHNCb29sZWFuLnRydWVcbiAgICAgICAgOiBYcHNCb29sZWFuLmZhbHNlLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzU2VydmljZS5nZXRTdGF0dXMocGFyYW1zKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsaXN0ZW5GaW5hbFN0YXR1cygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGludm9pY2UgfSA9IGF3YWl0IHRoaXMuZ2V0U3RhdHVzKCk7XG5cbiAgICB0aGlzLnN0YXR1c1NlcnZpY2VcbiAgICAgIC5saXN0ZW5GaW5hbFN0YXR1cyhpbnZvaWNlIGFzIHVua25vd24gYXMgbnVtYmVyKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLm5leHRBY3Rpb25TZXJ2aWNlLmVtaXRGbG93VXBkYXRlcyhcbiAgICAgICAgICB0aGlzLmNoZWNrU3RhdHVzQWN0aW9uQ3JlYXRvci5nZXRBY3Rpb25EYXRhKClcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldEZpZWxkQ29uZmlnKGZpZWxkOiBGaWVsZCk6IENvbnRyb2xDb25maWcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sQ29uZmlnU2VydmljZS5nZXRDb25maWcoZmllbGQpO1xuICB9XG5cbiAgcHVibGljIGNoYW5nZUZpZWxkVmFsdWUobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLmZvcm0/LmdldChuYW1lKTtcbiAgICBmb3JtQ29udHJvbD8uc2V0VmFsdWUodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGNoYW5nZUZpZWxkU3RhdGUobmFtZTogc3RyaW5nLCBzdGF0ZTogSW5wdXRFdmVudE5hbWUpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuZm9ybT8uZ2V0KG5hbWUpO1xuXG4gICAgaWYgKCF0aGlzLmZvcm0gfHwgIWZvcm1Db250cm9sKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoIChzdGF0ZSkge1xuICAgICAgY2FzZSBJbnB1dEV2ZW50TmFtZS5ibHVyOiB7XG4gICAgICAgIGZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5mb2N1c0ZpZWxkTmFtZSA9IG51bGw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBJbnB1dEV2ZW50TmFtZS5mb2N1czoge1xuICAgICAgICBmb3JtQ29udHJvbC5tYXJrQXNVbnRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5mb2N1c0ZpZWxkTmFtZSA9IG5hbWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZW1pdEZvcm1GaWVsZHNTdGF0dXModGhpcy5mb3JtKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRFeHRyYUZpZWxkKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGlzSGF2ZUZpZWxkID0gdGhpcy5maWVsZHMuZmluZCgoZmllbGQpID0+IHtcbiAgICAgIHJldHVybiBmaWVsZC5uYW1lID09PSBuYW1lO1xuICAgIH0pO1xuXG4gICAgaWYgKGlzSGF2ZUZpZWxkKSB7XG4gICAgICB0aGlzLmZpZWxkcyA9IHRoaXMuZmllbGRzLm1hcCgoZmllbGQpID0+IHtcbiAgICAgICAgaWYgKGZpZWxkLm5hbWUgPT09IG5hbWUpIHtcbiAgICAgICAgICBmaWVsZC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZmllbGQgPSB7XG4gICAgICBuYW1lOiBuYW1lLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgdGl0bGU6ICcnLFxuICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgZXhhbXBsZTogJycsXG4gICAgICBpc01hbmRhdG9yeTogWHBzQm9vbGVhbi50cnVlLFxuICAgICAgaXNWaXNpYmxlOiBYcHNCb29sZWFuLmZhbHNlLFxuICAgIH0gYXMgRmllbGQ7XG5cbiAgICB0aGlzLmZpZWxkcy5wdXNoKGZpZWxkKTtcbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YSA9IG51bGw7XG4gICAgdGhpcy5maW5hbmNlRGV0YWlscyA9IG51bGw7XG4gICAgdGhpcy5mb3JtID0gbnVsbDtcbiAgICB0aGlzLmZpZWxkcyA9IFtdO1xuICAgIHRoaXMuZm9ybURlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcblxuICAgIHRoaXMudGhyZWVEc1NlcnZpY2Uuc3RvcENoZWNraW5nKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRGaW5hbmNlRGV0YWlscyhzdW1tYXJ5PzogWHBzU3VtbWFyeSk6IHZvaWQge1xuICAgIHRoaXMuZmluYW5jZURldGFpbHNTZXJ2aWNlLmVtaXRXaXRoU3VtbWFyeShzdW1tYXJ5KTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdENyZWRpdENhcmRTdGF0ZShpZENhcmRUeXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmNyZWRpdENhcmRTdGF0ZVNlcnZpY2UuZW1pdCh7IGlkQ2FyZFR5cGUgfSk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRGb3JtRmllbGRzU3RhdHVzKGZvcm06IFVudHlwZWRGb3JtR3JvdXApOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtRmllbGRzU3RhdHVzOiBGb3JtRmllbGRzU3RhdHVzID0ge307XG5cbiAgICBPYmplY3Qua2V5cyhmb3JtLmNvbnRyb2xzKS5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAgICBjb25zdCBjb250cm9sID0gZm9ybS5jb250cm9sc1tuYW1lXTtcbiAgICAgIGZvcm1GaWVsZHNTdGF0dXNbbmFtZV0gPSB7XG4gICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgIHZhbGlkYXRpb25TdGF0dXM6IGNvbnRyb2wuc3RhdHVzLFxuICAgICAgICBlcnJvcnM6IGNvbnRyb2wuZXJyb3JzLFxuICAgICAgICBpc0ZvY3VzZWQ6IHRoaXMuZm9jdXNGaWVsZE5hbWUgPT09IG5hbWUsXG4gICAgICAgIGlzVG91Y2hlZDogY29udHJvbC50b3VjaGVkLFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIHRoaXMuZm9ybUZpZWxkc1N0YXR1c1N1YmplY3QubmV4dChmb3JtRmllbGRzU3RhdHVzKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEZvcm1NZXNzYWdlcyhtZXNzYWdlcz86IFhwc01lc3NhZ2VbXSk6IHZvaWQge1xuICAgIHRoaXMuZm9ybU1lc3NhZ2VzU2VydmljZS5lbWl0T25SZXNwb25zZShtZXNzYWdlcyk7XG4gIH1cblxuICBwcml2YXRlIHNldHVwU3luY1NlcnZpY2UoZm9ybTogVW50eXBlZEZvcm1Hcm91cCwgZmllbGRzOiBGaWVsZFtdKTogdm9pZCB7XG4gICAgdGhpcy5zeW5jU2VydmljZS5zZXR1cChmb3JtLCBmaWVsZHMpO1xuICAgIHRoaXMuc3luY1NlcnZpY2UuZGF0YSRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuZW1pdEZpbmFuY2VEZXRhaWxzKHJlc3BvbnNlLnN1bW1hcnkpO1xuICAgICAgICB0aGlzLmVtaXRGb3JtTWVzc2FnZXMocmVzcG9uc2UubWVzc2FnZXMpO1xuICAgICAgICB0aGlzLmVtaXRGb3JtUmVzcG9uc2UocmVzcG9uc2UpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLnN5bmNTZXJ2aWNlLmZpZWxkQXN5bmNWYWxpZGF0aW9uJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoZmllbGRBc3luY1ZhbGlkYXRpb24pID0+IHtcbiAgICAgICAgc3dpdGNoIChmaWVsZEFzeW5jVmFsaWRhdGlvbi5maWVsZC5uYW1lKSB7XG4gICAgICAgICAgY2FzZSBGaWVsZE5hbWVzLmNhcmROdW1iZXI6XG4gICAgICAgICAgICB0aGlzLmVtaXRDcmVkaXRDYXJkU3RhdGUoXG4gICAgICAgICAgICAgIGZpZWxkQXN5bmNWYWxpZGF0aW9uLnJlc3BvbnNlLnBhcmFtZXRlcnMuaWRDYXJkVHlwZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlbkZpbmFuY2VEZXRhaWxzKCk6IHZvaWQge1xuICAgIHRoaXMuZmluYW5jZURldGFpbHNTZXJ2aWNlLmRhdGEkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChmaW5hbmNlRGV0YWlscykgPT4gKHRoaXMuZmluYW5jZURldGFpbHMgPSBmaW5hbmNlRGV0YWlscykpO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5Gb3JtU3RhdHVzQ2hhbmdlcyhmb3JtOiBVbnR5cGVkRm9ybUdyb3VwKTogdm9pZCB7XG4gICAgZm9ybS5zdGF0dXNDaGFuZ2VzXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5mb3JtRGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBGb3JtQ29udHJvbFN0YXR1cykgPT4ge1xuICAgICAgICB0aGlzLmVtaXRGb3JtRmllbGRzU3RhdHVzKGZvcm0pO1xuICAgICAgICB0aGlzLl9wYXltZW50Rm9ybSQubmV4dChzdGF0dXMpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKlxuICAgKiBpbiBjYXNlIHRoZSBmb3JtIHBpZCBjaGFuZ2VzIGRlc3BpdGUgdGhlIG9uZSBwYXNzZWQgZHVyaW5nIGluaXRpYWxpemF0aW9uXG4gICAqICAqL1xuICBwcml2YXRlIHVwZGF0ZVBpZENvbmZpZygpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50UGlkID0gdGhpcy5nZXRQaWQoKTtcbiAgICBpZiAoY3VycmVudFBpZCkge1xuICAgICAgdGhpcy5jb25maWcucGF5bWVudE1ldGhvZElkID0gY3VycmVudFBpZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGVtaXRGb3JtUmVzcG9uc2UoZGF0YTogRm9ybVJlc3BvbnNlWydkYXRhJ10pOiB2b2lkIHtcbiAgICBsZXQgdHlwZTogRm9ybVJlc3BvbnNlWyd0eXBlJ107XG4gICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBJbml0aWFsaXplUmVzcG9uc2UpIHtcbiAgICAgIHR5cGUgPSAnaW5pdGlhbGl6ZSc7XG4gICAgfSBlbHNlIGlmIChkYXRhIGluc3RhbmNlb2YgU3VibWl0UmVzcG9uc2UpIHtcbiAgICAgIHR5cGUgPSAnc3VibWl0JztcbiAgICB9IGVsc2Uge1xuICAgICAgdHlwZSA9ICdzeW5jJztcbiAgICB9XG4gICAgdGhpcy5fZm9ybVJlc3BvbnNlJC5uZXh0KHtcbiAgICAgIHR5cGUsXG4gICAgICBkYXRhLFxuICAgICAgdG9rZW46IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnRva2VuLFxuICAgICAgaXNTYW5kYm94OiB0aGlzLnNldHRpbmdzU2VydmljZS5pc1NhbmRib3hNb2RlKCksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldEluaXRpYWxpemVNZXNzYWdlcygpOiBYcHNNZXNzYWdlW10ge1xuICAgIGNvbnN0IG1lc3NhZ2VzID0gKHRoaXMuZGF0YSBhcyBJbml0aWFsaXplUmVzcG9uc2UpLnBheW1lbnRGb3JtPy5tZXNzYWdlcztcbiAgICBjb25zdCBrb3JlYU5vdGlmaWNhdGlvbiA9ICh0aGlzLmRhdGEgYXMgSW5pdGlhbGl6ZVJlc3BvbnNlKS5wYXltZW50Rm9ybVxuICAgICAgPy5rb3JlYU5vdGlmaWNhdGlvbjtcbiAgICBpZiAoa29yZWFOb3RpZmljYXRpb24pIHtcbiAgICAgIG1lc3NhZ2VzPy5wdXNoKHsgY29kZTogJzAnLCBtZXNzYWdlOiBrb3JlYU5vdGlmaWNhdGlvbj8udGl0bGUgfSk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlcyA/PyBbXTtcbiAgfVxufVxuIl19
|