@adyen/adyen-web 6.30.0 → 6.31.1
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/README.md +1 -1
- package/dist/cjs/adyen.css +2 -2
- package/dist/cjs/adyen.css.map +1 -1
- package/dist/cjs/index.cjs +2 -2
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.cts +802 -714
- package/dist/es/adyen.css +2 -2
- package/dist/es/adyen.css.map +1 -1
- package/dist/es/components/ANCV/ANCV.js.map +1 -1
- package/dist/es/components/Ach/Ach.js +1 -1
- package/dist/es/components/Ach/Ach.js.map +1 -1
- package/dist/es/components/Ach/components/AccountTypeSelector.js.map +1 -1
- package/dist/es/components/Ach/components/AchComponent.js.map +1 -1
- package/dist/es/components/Affirm/Affirm.js.map +1 -1
- package/dist/es/components/AfterPay/AfterPay.js.map +1 -1
- package/dist/es/components/AfterPay/AfterPayB2B.js.map +1 -1
- package/dist/es/components/AmazonPay/components/AmazonPayButton.js +1 -1
- package/dist/es/components/AmazonPay/components/AmazonPayButton.js.map +1 -1
- package/dist/es/components/AmazonPay/components/AmazonPayComponent.js +1 -1
- package/dist/es/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
- package/dist/es/components/AmazonPay/components/OrderButton.js +1 -1
- package/dist/es/components/AmazonPay/components/OrderButton.js.map +1 -1
- package/dist/es/components/AmazonPay/utils.js +1 -1
- package/dist/es/components/AmazonPay/utils.js.map +1 -1
- package/dist/es/components/ApplePay/ApplePay.js.map +1 -1
- package/dist/es/components/ApplePay/services/ApplePaySdkLoader.js.map +1 -1
- package/dist/es/components/ApplePay/services/ApplePayService.js +1 -1
- package/dist/es/components/ApplePay/services/ApplePayService.js.map +1 -1
- package/dist/es/components/ApplePay/utils/map-adyen-brands-to-applepay-brands.js.map +1 -1
- package/dist/es/components/ApplePay/utils/payment-request.js.map +1 -1
- package/dist/es/components/Atome/Atome.js.map +1 -1
- package/dist/es/components/BacsDD/BacsDD.js +1 -1
- package/dist/es/components/BacsDD/BacsDD.js.map +1 -1
- package/dist/es/components/BacsDD/components/BacsInput.js +1 -1
- package/dist/es/components/BacsDD/components/BacsInput.js.map +1 -1
- package/dist/es/components/BankTransfer/components/BankTransferInput/BankTransferInput.js +1 -1
- package/dist/es/components/BankTransfer/components/BankTransferInput/BankTransferInput.js.map +1 -1
- package/dist/es/components/Blik/Blik.js +1 -1
- package/dist/es/components/Blik/Blik.js.map +1 -1
- package/dist/es/components/Boleto/components/BoletoInput/BoletoInput.js.map +1 -1
- package/dist/es/components/Card/Card.js +1 -1
- package/dist/es/components/Card/Card.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/CardInput.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
- package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/components/Installments/Installments.js +1 -1
- package/dist/es/components/Card/components/CardInput/components/Installments/Installments.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/components/StoredCardFieldsWrapper.js +1 -1
- package/dist/es/components/Card/components/CardInput/components/StoredCardFieldsWrapper.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/handlers.js +1 -1
- package/dist/es/components/Card/components/CardInput/handlers.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/types.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/useSRPanelForCardInputErrors.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/utils.js +1 -1
- package/dist/es/components/Card/components/CardInput/utils.js.map +1 -1
- package/dist/es/components/Card/components/ClickToPayWrapper.js +1 -1
- package/dist/es/components/Card/components/ClickToPayWrapper.js.map +1 -1
- package/dist/es/components/CashAppPay/CashAppPay.js +1 -1
- package/dist/es/components/CashAppPay/CashAppPay.js.map +1 -1
- package/dist/es/components/CashAppPay/services/CashAppSdkLoader.js.map +1 -1
- package/dist/es/components/CashAppPay/services/CashAppService.js +1 -1
- package/dist/es/components/CashAppPay/services/CashAppService.js.map +1 -1
- package/dist/es/components/CashAppPay/services/types.js.map +1 -1
- package/dist/es/components/ClickToPay/ClickToPay.js +1 -1
- package/dist/es/components/ClickToPay/ClickToPay.js.map +1 -1
- package/dist/es/components/CustomCard/CustomCard.js.map +1 -1
- package/dist/es/components/Dragonpay/components/DragonpayInput/DragonpayInput.js +1 -1
- package/dist/es/components/Dragonpay/components/DragonpayInput/DragonpayInput.js.map +1 -1
- package/dist/es/components/Dropin/Dropin.js +1 -1
- package/dist/es/components/Dropin/Dropin.js.map +1 -1
- package/dist/es/components/Dropin/components/DropinComponent.js +1 -1
- package/dist/es/components/Dropin/components/DropinComponent.js.map +1 -1
- package/dist/es/components/Dropin/components/DropinSuccessState.js +2 -0
- package/dist/es/components/Dropin/components/DropinSuccessState.js.map +1 -0
- package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js +1 -1
- package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js.map +1 -1
- package/dist/es/components/Econtext/components/EcontextInput/EcontextInput.js.map +1 -1
- package/dist/es/components/Giftcard/Giftcard.js.map +1 -1
- package/dist/es/components/Giftcard/components/GiftcardComponent.js +1 -1
- package/dist/es/components/Giftcard/components/GiftcardComponent.js.map +1 -1
- package/dist/es/components/Giftcard/components/GiftcardResult.js +1 -1
- package/dist/es/components/Giftcard/components/GiftcardResult.js.map +1 -1
- package/dist/es/components/Giftcard/components/useSRPanelForGiftcardErrors.js +1 -1
- package/dist/es/components/Giftcard/components/useSRPanelForGiftcardErrors.js.map +1 -1
- package/dist/es/components/GooglePay/GooglePayService.js.map +1 -1
- package/dist/es/components/Iris/Iris.js +1 -1
- package/dist/es/components/Iris/Iris.js.map +1 -1
- package/dist/es/components/Klarna/KlarnaPayments.js +1 -1
- package/dist/es/components/Klarna/KlarnaPayments.js.map +1 -1
- package/dist/es/components/Klarna/components/KlarnaContainer/KlarnaContainer.js.map +1 -1
- package/dist/es/components/Multibanco/Multibanco.js +1 -1
- package/dist/es/components/Multibanco/Multibanco.js.map +1 -1
- package/dist/es/components/PayByBankPix/PayByBankPix.js +1 -1
- package/dist/es/components/PayByBankPix/PayByBankPix.js.map +1 -1
- package/dist/es/components/PayByBankPix/components/StoredPayment/StoredPayment.js +1 -1
- package/dist/es/components/PayByBankPix/components/StoredPayment/StoredPayment.js.map +1 -1
- package/dist/es/components/PayByBankPix/services/PasskeySdkLoader.js.map +1 -1
- package/dist/es/components/PayByBankPix/services/PasskeyService.js.map +1 -1
- package/dist/es/components/PayByBankUS/PayByBankUS.js +1 -1
- package/dist/es/components/PayByBankUS/PayByBankUS.js.map +1 -1
- package/dist/es/components/PayPalFastlane/FastlaneSDK.js.map +1 -1
- package/dist/es/components/PayPalFastlane/components/FastlaneComponent.js.map +1 -1
- package/dist/es/components/PayTo/PayTo.js +1 -1
- package/dist/es/components/PayTo/PayTo.js.map +1 -1
- package/dist/es/components/PayTo/components/PayToComponent.js.map +1 -1
- package/dist/es/components/PayTo/components/PayToNameFields.js +1 -1
- package/dist/es/components/PayTo/components/PayToNameFields.js.map +1 -1
- package/dist/es/components/PersonalDetails/PersonalDetails.js.map +1 -1
- package/dist/es/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js +1 -1
- package/dist/es/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js.map +1 -1
- package/dist/es/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js.map +1 -1
- package/dist/es/components/Redirect/components/RedirectShopper/RedirectShopper.js.map +1 -1
- package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
- package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
- package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
- package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
- package/dist/es/components/ThreeDS2/callSubmit3DS2Fingerprint.js +1 -1
- package/dist/es/components/ThreeDS2/callSubmit3DS2Fingerprint.js.map +1 -1
- package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
- package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
- package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
- package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
- package/dist/es/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
- package/dist/es/components/Twint/Twint.js +1 -1
- package/dist/es/components/Twint/Twint.js.map +1 -1
- package/dist/es/components/UPI/UPI.js +1 -1
- package/dist/es/components/UPI/UPI.js.map +1 -1
- package/dist/es/components/UPI/components/UPIComponent/UPIComponent.js +1 -1
- package/dist/es/components/UPI/components/UPIComponent/UPIComponent.js.map +1 -1
- package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js +1 -1
- package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js.map +1 -1
- package/dist/es/components/internal/Address/Specifications.js.map +1 -1
- package/dist/es/components/internal/Await/Await.js +1 -1
- package/dist/es/components/internal/Await/Await.js.map +1 -1
- package/dist/es/components/internal/BaseElement/BaseElement.js.map +1 -1
- package/dist/es/components/internal/Button/Button.js +1 -1
- package/dist/es/components/internal/Button/Button.js.map +1 -1
- package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPCards.js +1 -1
- package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPCards.js.map +1 -1
- package/dist/es/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js +1 -1
- package/dist/es/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js.map +1 -1
- package/dist/es/components/internal/ClickToPay/context/ClickToPayContext.js +1 -1
- package/dist/es/components/internal/ClickToPay/context/ClickToPayContext.js.map +1 -1
- package/dist/es/components/internal/ClickToPay/context/ClickToPayProvider.js +1 -1
- package/dist/es/components/internal/ClickToPay/context/ClickToPayProvider.js.map +1 -1
- package/dist/es/components/internal/ClickToPay/models/ShopperCard.js.map +1 -1
- package/dist/es/components/internal/ClickToPay/services/ClickToPayService.js.map +1 -1
- package/dist/es/components/internal/ClickToPay/services/sdks/AbstractSrcInitiator.js.map +1 -1
- package/dist/es/components/internal/ClickToPay/services/sdks/SrcSdkLoader.js.map +1 -1
- package/dist/es/components/internal/CompanyDetails/CompanyDetails.js +1 -1
- package/dist/es/components/internal/CompanyDetails/CompanyDetails.js.map +1 -1
- package/dist/es/components/internal/Countdown/CountdownA11yReporter.js.map +1 -1
- package/dist/es/components/internal/FormFields/InputBase.js +1 -1
- package/dist/es/components/internal/FormFields/InputBase.js.map +1 -1
- package/dist/es/components/internal/IFrame/Iframe.js.map +1 -1
- package/dist/es/components/internal/PayButton/PayButton.js +1 -1
- package/dist/es/components/internal/PayButton/PayButton.js.map +1 -1
- package/dist/es/components/internal/PayButton/utils.js +1 -1
- package/dist/es/components/internal/PayButton/utils.js.map +1 -1
- package/dist/es/components/internal/PersonalDetails/PersonalDetails.js +1 -1
- package/dist/es/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
- package/dist/es/components/internal/QRLoader/QRLoader.js +1 -1
- package/dist/es/components/internal/QRLoader/QRLoader.js.map +1 -1
- package/dist/es/components/internal/RedirectButton/RedirectButton.js +1 -1
- package/dist/es/components/internal/RedirectButton/RedirectButton.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
- package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/lib/CSF/AbstractCSF.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/lib/CSF/utils/userAgent.js +1 -1
- package/dist/es/components/internal/SecuredFields/lib/CSF/utils/userAgent.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/lib/constants.js +1 -1
- package/dist/es/components/internal/SecuredFields/lib/constants.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/lib/securedField/SecuredField.js +1 -1
- package/dist/es/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/utils.js.map +1 -1
- package/dist/es/components/internal/SendCopyToEmail/SendCopyToEmail.js +1 -1
- package/dist/es/components/internal/SendCopyToEmail/SendCopyToEmail.js.map +1 -1
- package/dist/es/components/internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil.js +1 -1
- package/dist/es/components/internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil.js.map +1 -1
- package/dist/es/components/internal/UIElement/UIElement.js +1 -1
- package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
- package/dist/es/core/Analytics/Analytics.js.map +1 -1
- package/dist/es/core/Analytics/AnalyticsService.js.map +1 -1
- package/dist/es/core/Analytics/events/AbstractAnalyticsEvent.js.map +1 -1
- package/dist/es/core/Analytics/events/AnalyticsErrorEvent.js +1 -1
- package/dist/es/core/Analytics/events/AnalyticsErrorEvent.js.map +1 -1
- package/dist/es/core/Analytics/events/AnalyticsInfoEvent.js +1 -1
- package/dist/es/core/Analytics/events/AnalyticsInfoEvent.js.map +1 -1
- package/dist/es/core/Analytics/events/AnalyticsLogEvent.js.map +1 -1
- package/dist/es/core/Analytics/utils.js +1 -1
- package/dist/es/core/Analytics/utils.js.map +1 -1
- package/dist/es/core/CheckoutSession/CheckoutSession.js +1 -1
- package/dist/es/core/CheckoutSession/CheckoutSession.js.map +1 -1
- package/dist/es/core/Context/AmountProvider.js +2 -0
- package/dist/es/core/Context/AmountProvider.js.map +1 -0
- package/dist/es/core/Context/Resources.js.map +1 -1
- package/dist/es/core/Errors/SRPanel.js.map +1 -1
- package/dist/es/core/RiskModule/components/DeviceFingerprint/GetDeviceFingerprint.js.map +1 -1
- package/dist/es/core/config.js +1 -1
- package/dist/es/core/core.js +1 -1
- package/dist/es/core/core.js.map +1 -1
- package/dist/es/external/preact/compat/dist/compat.js +1 -1
- package/dist/es/external/preact/compat/dist/compat.js.map +1 -1
- package/dist/es/external/preact/dist/preact.js +1 -1
- package/dist/es/external/preact/dist/preact.js.map +1 -1
- package/dist/es/external/preact/hooks/dist/hooks.js +1 -1
- package/dist/es/external/preact/hooks/dist/hooks.js.map +1 -1
- package/dist/es/index.d.ts +802 -714
- package/dist/es/language/Language.js.map +1 -1
- package/dist/es/utils/Script.js.map +1 -1
- package/dist/es/utils/Storage.js +1 -1
- package/dist/es/utils/Storage.js.map +1 -1
- package/dist/es/utils/Validator/ValidationRuleResult.js.map +1 -1
- package/dist/es/utils/Validator/Validator.js.map +1 -1
- package/dist/es/utils/amount-util.js +1 -1
- package/dist/es/utils/amount-util.js.map +1 -1
- package/dist/es/utils/browserInfo.js +1 -1
- package/dist/es/utils/browserInfo.js.map +1 -1
- package/dist/es/utils/constants/currency-minor-units.js.map +1 -1
- package/dist/es/utils/createSdkData.js.map +1 -1
- package/dist/es/utils/getErrorMessage.js.map +1 -1
- package/dist/es/utils/getProp.js +1 -1
- package/dist/es/utils/getProp.js.map +1 -1
- package/dist/es/utils/hasOwnProperty.js.map +1 -1
- package/dist/es/utils/isValidURL.js.map +1 -1
- package/dist/es/utils/listenerUtils.js.map +1 -1
- package/dist/es/utils/promiseTimeout.js.map +1 -1
- package/dist/es/utils/setFocus.js +1 -1
- package/dist/es/utils/setFocus.js.map +1 -1
- package/dist/es/utils/textUtils.js.map +1 -1
- package/dist/es/utils/validator-utils.js.map +1 -1
- package/dist/es/utils/windowScrollTo.js +2 -0
- package/dist/es/utils/windowScrollTo.js.map +1 -0
- package/dist/es-legacy/adyen.css +2 -2
- package/dist/es-legacy/adyen.css.map +1 -1
- package/dist/es-legacy/components/ANCV/ANCV.js.map +1 -1
- package/dist/es-legacy/components/Ach/Ach.js +1 -1
- package/dist/es-legacy/components/Ach/Ach.js.map +1 -1
- package/dist/es-legacy/components/Ach/components/AccountTypeSelector.js.map +1 -1
- package/dist/es-legacy/components/Ach/components/AchComponent.js.map +1 -1
- package/dist/es-legacy/components/Affirm/Affirm.js.map +1 -1
- package/dist/es-legacy/components/AfterPay/AfterPay.js.map +1 -1
- package/dist/es-legacy/components/AfterPay/AfterPayB2B.js.map +1 -1
- package/dist/es-legacy/components/AmazonPay/components/AmazonPayButton.js +1 -1
- package/dist/es-legacy/components/AmazonPay/components/AmazonPayButton.js.map +1 -1
- package/dist/es-legacy/components/AmazonPay/components/AmazonPayComponent.js +1 -1
- package/dist/es-legacy/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
- package/dist/es-legacy/components/AmazonPay/components/OrderButton.js +1 -1
- package/dist/es-legacy/components/AmazonPay/components/OrderButton.js.map +1 -1
- package/dist/es-legacy/components/AmazonPay/utils.js +1 -1
- package/dist/es-legacy/components/AmazonPay/utils.js.map +1 -1
- package/dist/es-legacy/components/ApplePay/ApplePay.js.map +1 -1
- package/dist/es-legacy/components/ApplePay/services/ApplePaySdkLoader.js.map +1 -1
- package/dist/es-legacy/components/ApplePay/services/ApplePayService.js +1 -1
- package/dist/es-legacy/components/ApplePay/services/ApplePayService.js.map +1 -1
- package/dist/es-legacy/components/ApplePay/utils/map-adyen-brands-to-applepay-brands.js.map +1 -1
- package/dist/es-legacy/components/ApplePay/utils/payment-request.js.map +1 -1
- package/dist/es-legacy/components/Atome/Atome.js.map +1 -1
- package/dist/es-legacy/components/BacsDD/BacsDD.js +1 -1
- package/dist/es-legacy/components/BacsDD/BacsDD.js.map +1 -1
- package/dist/es-legacy/components/BacsDD/components/BacsInput.js +1 -1
- package/dist/es-legacy/components/BacsDD/components/BacsInput.js.map +1 -1
- package/dist/es-legacy/components/BankTransfer/components/BankTransferInput/BankTransferInput.js +1 -1
- package/dist/es-legacy/components/BankTransfer/components/BankTransferInput/BankTransferInput.js.map +1 -1
- package/dist/es-legacy/components/Blik/Blik.js +1 -1
- package/dist/es-legacy/components/Blik/Blik.js.map +1 -1
- package/dist/es-legacy/components/Boleto/components/BoletoInput/BoletoInput.js.map +1 -1
- package/dist/es-legacy/components/Card/Card.js +1 -1
- package/dist/es-legacy/components/Card/Card.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/CardInput.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/AvailableBrands/AvailableBrands.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/CardFields.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/Installments/Installments.js +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/Installments/Installments.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/StoredCardFieldsWrapper.js +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/StoredCardFieldsWrapper.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/handlers.js +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/handlers.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/types.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/useSRPanelForCardInputErrors.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/utils.js +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/utils.js.map +1 -1
- package/dist/es-legacy/components/Card/components/ClickToPayWrapper.js +1 -1
- package/dist/es-legacy/components/Card/components/ClickToPayWrapper.js.map +1 -1
- package/dist/es-legacy/components/Card/components/Fastlane/USOnlyPhoneInput.js.map +1 -1
- package/dist/es-legacy/components/CashAppPay/CashAppPay.js +1 -1
- package/dist/es-legacy/components/CashAppPay/CashAppPay.js.map +1 -1
- package/dist/es-legacy/components/CashAppPay/services/CashAppSdkLoader.js.map +1 -1
- package/dist/es-legacy/components/CashAppPay/services/CashAppService.js +1 -1
- package/dist/es-legacy/components/CashAppPay/services/CashAppService.js.map +1 -1
- package/dist/es-legacy/components/CashAppPay/services/types.js.map +1 -1
- package/dist/es-legacy/components/ClickToPay/ClickToPay.js +1 -1
- package/dist/es-legacy/components/ClickToPay/ClickToPay.js.map +1 -1
- package/dist/es-legacy/components/CustomCard/CustomCard.js.map +1 -1
- package/dist/es-legacy/components/Doku/components/DokuInput/DokuInput.js.map +1 -1
- package/dist/es-legacy/components/Dragonpay/components/DragonpayInput/DragonpayInput.js +1 -1
- package/dist/es-legacy/components/Dragonpay/components/DragonpayInput/DragonpayInput.js.map +1 -1
- package/dist/es-legacy/components/Dropin/Dropin.js +1 -1
- package/dist/es-legacy/components/Dropin/Dropin.js.map +1 -1
- package/dist/es-legacy/components/Dropin/components/DropinComponent.js +1 -1
- package/dist/es-legacy/components/Dropin/components/DropinComponent.js.map +1 -1
- package/dist/es-legacy/components/Dropin/components/DropinSuccessState.js +2 -0
- package/dist/es-legacy/components/Dropin/components/DropinSuccessState.js.map +1 -0
- package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js +1 -1
- package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js.map +1 -1
- package/dist/es-legacy/components/Econtext/components/EcontextInput/EcontextInput.js.map +1 -1
- package/dist/es-legacy/components/Giftcard/Giftcard.js.map +1 -1
- package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js +1 -1
- package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js.map +1 -1
- package/dist/es-legacy/components/Giftcard/components/GiftcardResult.js +1 -1
- package/dist/es-legacy/components/Giftcard/components/GiftcardResult.js.map +1 -1
- package/dist/es-legacy/components/Giftcard/components/useSRPanelForGiftcardErrors.js +1 -1
- package/dist/es-legacy/components/Giftcard/components/useSRPanelForGiftcardErrors.js.map +1 -1
- package/dist/es-legacy/components/GooglePay/GooglePay.js.map +1 -1
- package/dist/es-legacy/components/GooglePay/GooglePayService.js.map +1 -1
- package/dist/es-legacy/components/Iris/Iris.js +1 -1
- package/dist/es-legacy/components/Iris/Iris.js.map +1 -1
- package/dist/es-legacy/components/Klarna/KlarnaPayments.js +1 -1
- package/dist/es-legacy/components/Klarna/KlarnaPayments.js.map +1 -1
- package/dist/es-legacy/components/Klarna/components/KlarnaContainer/KlarnaContainer.js.map +1 -1
- package/dist/es-legacy/components/Klarna/components/KlarnaWidget/KlarnaWidget.js.map +1 -1
- package/dist/es-legacy/components/MBWay/MBWay.js.map +1 -1
- package/dist/es-legacy/components/Multibanco/Multibanco.js +1 -1
- package/dist/es-legacy/components/Multibanco/Multibanco.js.map +1 -1
- package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js +1 -1
- package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js.map +1 -1
- package/dist/es-legacy/components/PayByBankPix/components/Enrollment/useIssuerWithLogo.js.map +1 -1
- package/dist/es-legacy/components/PayByBankPix/components/StoredPayment/StoredPayment.js +1 -1
- package/dist/es-legacy/components/PayByBankPix/components/StoredPayment/StoredPayment.js.map +1 -1
- package/dist/es-legacy/components/PayByBankPix/services/PasskeySdkLoader.js.map +1 -1
- package/dist/es-legacy/components/PayByBankPix/services/PasskeyService.js.map +1 -1
- package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js +1 -1
- package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js.map +1 -1
- package/dist/es-legacy/components/PayPal/Paypal.js.map +1 -1
- package/dist/es-legacy/components/PayPalFastlane/FastlaneSDK.js.map +1 -1
- package/dist/es-legacy/components/PayPalFastlane/components/FastlaneComponent.js.map +1 -1
- package/dist/es-legacy/components/PayTo/PayTo.js +1 -1
- package/dist/es-legacy/components/PayTo/PayTo.js.map +1 -1
- package/dist/es-legacy/components/PayTo/components/PayToComponent.js.map +1 -1
- package/dist/es-legacy/components/PayTo/components/PayToNameFields.js +1 -1
- package/dist/es-legacy/components/PayTo/components/PayToNameFields.js.map +1 -1
- package/dist/es-legacy/components/PersonalDetails/PersonalDetails.js.map +1 -1
- package/dist/es-legacy/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js +1 -1
- package/dist/es-legacy/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js.map +1 -1
- package/dist/es-legacy/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js.map +1 -1
- package/dist/es-legacy/components/Redirect/components/RedirectShopper/RedirectShopper.js.map +1 -1
- package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
- package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
- package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
- package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
- package/dist/es-legacy/components/ThreeDS2/callSubmit3DS2Fingerprint.js +1 -1
- package/dist/es-legacy/components/ThreeDS2/callSubmit3DS2Fingerprint.js.map +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
- package/dist/es-legacy/components/Twint/Twint.js +1 -1
- package/dist/es-legacy/components/Twint/Twint.js.map +1 -1
- package/dist/es-legacy/components/UPI/UPI.js +1 -1
- package/dist/es-legacy/components/UPI/UPI.js.map +1 -1
- package/dist/es-legacy/components/UPI/components/UPIComponent/UPIComponent.js +1 -1
- package/dist/es-legacy/components/UPI/components/UPIComponent/UPIComponent.js.map +1 -1
- package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js +1 -1
- package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js.map +1 -1
- package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
- package/dist/es-legacy/components/helpers/OpenInvoiceContainer/OpenInvoiceContainer.js.map +1 -1
- package/dist/es-legacy/components/internal/Address/Address.js.map +1 -1
- package/dist/es-legacy/components/internal/Address/Specifications.js.map +1 -1
- package/dist/es-legacy/components/internal/Address/validate.js.map +1 -1
- package/dist/es-legacy/components/internal/Await/Await.js +1 -1
- package/dist/es-legacy/components/internal/Await/Await.js.map +1 -1
- package/dist/es-legacy/components/internal/BaseElement/BaseElement.js.map +1 -1
- package/dist/es-legacy/components/internal/Button/Button.js +1 -1
- package/dist/es-legacy/components/internal/Button/Button.js.map +1 -1
- package/dist/es-legacy/components/internal/Button/CopyButton.js.map +1 -1
- package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPCards.js +1 -1
- package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPCards.js.map +1 -1
- package/dist/es-legacy/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js +1 -1
- package/dist/es-legacy/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js.map +1 -1
- package/dist/es-legacy/components/internal/ClickToPay/components/CtPLogin/CtPLogin.js.map +1 -1
- package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePassword.js.map +1 -1
- package/dist/es-legacy/components/internal/ClickToPay/context/ClickToPayContext.js +1 -1
- package/dist/es-legacy/components/internal/ClickToPay/context/ClickToPayContext.js.map +1 -1
- package/dist/es-legacy/components/internal/ClickToPay/context/ClickToPayProvider.js +1 -1
- package/dist/es-legacy/components/internal/ClickToPay/context/ClickToPayProvider.js.map +1 -1
- package/dist/es-legacy/components/internal/ClickToPay/models/ShopperCard.js.map +1 -1
- package/dist/es-legacy/components/internal/ClickToPay/services/ClickToPayService.js.map +1 -1
- package/dist/es-legacy/components/internal/ClickToPay/services/create-clicktopay-service.js.map +1 -1
- package/dist/es-legacy/components/internal/ClickToPay/services/sdks/AbstractSrcInitiator.js.map +1 -1
- package/dist/es-legacy/components/internal/ClickToPay/services/sdks/SrcSdkLoader.js.map +1 -1
- package/dist/es-legacy/components/internal/CompanyDetails/CompanyDetails.js +1 -1
- package/dist/es-legacy/components/internal/CompanyDetails/CompanyDetails.js.map +1 -1
- package/dist/es-legacy/components/internal/Countdown/CountdownA11yReporter.js.map +1 -1
- package/dist/es-legacy/components/internal/FormFields/Field/Field.js.map +1 -1
- package/dist/es-legacy/components/internal/FormFields/InputBase.js +1 -1
- package/dist/es-legacy/components/internal/FormFields/InputBase.js.map +1 -1
- package/dist/es-legacy/components/internal/FormFields/RadioGroupExtended/RadioGroupExtended.js.map +1 -1
- package/dist/es-legacy/components/internal/IFrame/Iframe.js.map +1 -1
- package/dist/es-legacy/components/internal/IssuerList/IssuerList.js.map +1 -1
- package/dist/es-legacy/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
- package/dist/es-legacy/components/internal/PayButton/PayButton.js +1 -1
- package/dist/es-legacy/components/internal/PayButton/PayButton.js.map +1 -1
- package/dist/es-legacy/components/internal/PayButton/utils.js +1 -1
- package/dist/es-legacy/components/internal/PayButton/utils.js.map +1 -1
- package/dist/es-legacy/components/internal/PersonalDetails/PersonalDetails.js +1 -1
- package/dist/es-legacy/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
- package/dist/es-legacy/components/internal/PhoneInput/PhoneInputForm.js.map +1 -1
- package/dist/es-legacy/components/internal/QRLoader/QRLoader.js +1 -1
- package/dist/es-legacy/components/internal/QRLoader/QRLoader.js.map +1 -1
- package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js +1 -1
- package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/binLookup/extensions.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/binLookup/triggerBinLookUp.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/AbstractCSF.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/processAutoComplete.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/cardType.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/userAgent.js +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/userAgent.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/SecuredField.js +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/utils.js.map +1 -1
- package/dist/es-legacy/components/internal/SendCopyToEmail/SendCopyToEmail.js +1 -1
- package/dist/es-legacy/components/internal/SendCopyToEmail/SendCopyToEmail.js.map +1 -1
- package/dist/es-legacy/components/internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil.js +1 -1
- package/dist/es-legacy/components/internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil.js.map +1 -1
- package/dist/es-legacy/components/internal/Tooltip/Tooltip.js.map +1 -1
- package/dist/es-legacy/components/internal/UIElement/UIElement.js +1 -1
- package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
- package/dist/es-legacy/core/Analytics/Analytics.js.map +1 -1
- package/dist/es-legacy/core/Analytics/AnalyticsService.js.map +1 -1
- package/dist/es-legacy/core/Analytics/events/AbstractAnalyticsEvent.js.map +1 -1
- package/dist/es-legacy/core/Analytics/events/AnalyticsErrorEvent.js +1 -1
- package/dist/es-legacy/core/Analytics/events/AnalyticsErrorEvent.js.map +1 -1
- package/dist/es-legacy/core/Analytics/events/AnalyticsInfoEvent.js +1 -1
- package/dist/es-legacy/core/Analytics/events/AnalyticsInfoEvent.js.map +1 -1
- package/dist/es-legacy/core/Analytics/events/AnalyticsLogEvent.js.map +1 -1
- package/dist/es-legacy/core/Analytics/utils.js +1 -1
- package/dist/es-legacy/core/Analytics/utils.js.map +1 -1
- package/dist/es-legacy/core/CheckoutSession/CheckoutSession.js +1 -1
- package/dist/es-legacy/core/CheckoutSession/CheckoutSession.js.map +1 -1
- package/dist/es-legacy/core/Context/AmountProvider.js +2 -0
- package/dist/es-legacy/core/Context/AmountProvider.js.map +1 -0
- package/dist/es-legacy/core/Context/Resources.js.map +1 -1
- package/dist/es-legacy/core/Environment/Environment.js.map +1 -1
- package/dist/es-legacy/core/Errors/SRPanel.js.map +1 -1
- package/dist/es-legacy/core/ProcessResponse/PaymentAction/actionTypes.js.map +1 -1
- package/dist/es-legacy/core/ProcessResponse/PaymentMethods/utils.js.map +1 -1
- package/dist/es-legacy/core/RiskModule/components/DeviceFingerprint/GetDeviceFingerprint.js.map +1 -1
- package/dist/es-legacy/core/Services/http.js.map +1 -1
- package/dist/es-legacy/core/config.js +1 -1
- package/dist/es-legacy/core/core.js +1 -1
- package/dist/es-legacy/core/core.js.map +1 -1
- package/dist/es-legacy/external/preact/compat/dist/compat.js +1 -1
- package/dist/es-legacy/external/preact/compat/dist/compat.js.map +1 -1
- package/dist/es-legacy/external/preact/dist/preact.js +1 -1
- package/dist/es-legacy/external/preact/dist/preact.js.map +1 -1
- package/dist/es-legacy/external/preact/hooks/dist/hooks.js +1 -1
- package/dist/es-legacy/external/preact/hooks/dist/hooks.js.map +1 -1
- package/dist/es-legacy/hooks/usePaymentStatusTimer/usePaymentStatusTimer.js.map +1 -1
- package/dist/es-legacy/language/Language.js.map +1 -1
- package/dist/es-legacy/utils/Script.js.map +1 -1
- package/dist/es-legacy/utils/Storage.js +1 -1
- package/dist/es-legacy/utils/Storage.js.map +1 -1
- package/dist/es-legacy/utils/Validator/ValidationRuleResult.js.map +1 -1
- package/dist/es-legacy/utils/Validator/Validator.js.map +1 -1
- package/dist/es-legacy/utils/amount-util.js +1 -1
- package/dist/es-legacy/utils/amount-util.js.map +1 -1
- package/dist/es-legacy/utils/browserInfo.js +1 -1
- package/dist/es-legacy/utils/browserInfo.js.map +1 -1
- package/dist/es-legacy/utils/constants/currency-minor-units.js.map +1 -1
- package/dist/es-legacy/utils/createSdkData.js.map +1 -1
- package/dist/es-legacy/utils/getConsentUrl.js.map +1 -1
- package/dist/es-legacy/utils/getErrorMessage.js.map +1 -1
- package/dist/es-legacy/utils/getProp.js +1 -1
- package/dist/es-legacy/utils/getProp.js.map +1 -1
- package/dist/es-legacy/utils/hasOwnProperty.js.map +1 -1
- package/dist/es-legacy/utils/isValidURL.js.map +1 -1
- package/dist/es-legacy/utils/listenerUtils.js.map +1 -1
- package/dist/es-legacy/utils/promiseTimeout.js.map +1 -1
- package/dist/es-legacy/utils/setFocus.js +1 -1
- package/dist/es-legacy/utils/setFocus.js.map +1 -1
- package/dist/es-legacy/utils/textUtils.js.map +1 -1
- package/dist/es-legacy/utils/useAutoFocus.js.map +1 -1
- package/dist/es-legacy/utils/useForm/reducer.js.map +1 -1
- package/dist/es-legacy/utils/validator-utils.js.map +1 -1
- package/dist/es-legacy/utils/windowScrollTo.js +2 -0
- package/dist/es-legacy/utils/windowScrollTo.js.map +1 -0
- package/package.json +11 -11
- package/styles/adyen.css +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Analytics.js","sources":["../../../../src/core/Analytics/Analytics.ts"],"sourcesContent":["import { debounce } from '../../utils/debounce';\nimport { processAnalyticsData } from './utils';\nimport { AbstractAnalyticsEvent, AnalyticsEventCategory } from './events/AbstractAnalyticsEvent';\nimport Storage from '../../utils/Storage';\nimport { LIBRARY_BUNDLE_TYPE, LIBRARY_VERSION } from '../config';\nimport { AnalyticsEventQueue } from './AnalyticsEventQueue';\nimport type { AnalyticsOptions } from './types';\nimport type { AnalyticsEventPayload, IAnalyticsService, RequestAttemptIdPayload } from './AnalyticsService';\n\nexport interface AnalyticsProps {\n service: IAnalyticsService;\n eventQueue: AnalyticsEventQueue;\n enabled?: boolean;\n analyticsData?: AnalyticsOptions['analyticsData'];\n}\n\nexport interface IAnalytics {\n checkoutAttemptId?: string;\n setUp({ sessionId, checkoutStage, locale }: { sessionId?: string; checkoutStage?: 'precheckout' | 'checkout'; locale?: string }): Promise<void>;\n sendFlavor(flavor: 'dropin' | 'components'): Promise<void>;\n sendAnalytics(event: AbstractAnalyticsEvent): void;\n flush(): void;\n}\n\nexport interface CheckoutAttemptIdSessionStorage {\n id: string;\n timestamp: number;\n}\n\n/**\n * If the checkout attempt ID was stored more than fifteen minutes ago, then we should request a new ID.\n * More here: COWEB-1099\n */\nfunction isSessionCreatedUnderFifteenMinutes(session: CheckoutAttemptIdSessionStorage): boolean {\n const FIFTEEN_MINUTES_IN_MS = 15 * 60 * 1000;\n if (!session?.timestamp) return false;\n const fifteenMinutesAgo = Date.now() - FIFTEEN_MINUTES_IN_MS;\n return session.timestamp > fifteenMinutesAgo;\n}\n\nconst ANALYTICS_INFO_DEBOUNCE_DELAY = process.env.NODE_ENV === 'development' ? 5_000 : 10_000;\nconst ANALYTICS_ERROR_AND_LOGS_DEBOUNCE_DELAY = 5_000;\n\nclass Analytics implements IAnalytics {\n private readonly analyticsData?: AnalyticsOptions['analyticsData'];\n private readonly service: IAnalyticsService;\n private readonly eventsQueue: AnalyticsEventQueue;\n private readonly storage = new Storage<CheckoutAttemptIdSessionStorage>('checkout-attempt-id', 'sessionStorage');\n private readonly debouncedSendInfoEvents: () => void;\n private readonly debouncedSendEvents: () => void;\n\n private enabled: boolean = true;\n private capturedCheckoutAttemptId?: string;\n private isFlavorReported = false;\n\n constructor({ service, eventQueue, enabled, analyticsData }: AnalyticsProps) {\n this.service = service;\n this.eventsQueue = eventQueue;\n\n this.debouncedSendInfoEvents = debounce(this.sendEvents.bind(this), ANALYTICS_INFO_DEBOUNCE_DELAY);\n this.debouncedSendEvents = debounce(this.sendEvents.bind(this), ANALYTICS_ERROR_AND_LOGS_DEBOUNCE_DELAY);\n\n if (enabled !== undefined) this.enabled = enabled;\n if (analyticsData) this.analyticsData = analyticsData;\n }\n\n public get checkoutAttemptId(): string {\n return this.capturedCheckoutAttemptId;\n }\n\n public async setUp({\n sessionId,\n checkoutStage,\n locale\n }: { sessionId?: string; locale?: string; checkoutStage?: 'precheckout' | 'checkout' } = {}): Promise<void> {\n try {\n const checkoutAttemptIdSession = this.storage.get();\n const isSessionReusable = isSessionCreatedUnderFifteenMinutes(checkoutAttemptIdSession);\n\n const { applicationInfo, checkoutAttemptId: checkoutAttemptIdFromPayByLink } = processAnalyticsData(this.analyticsData);\n\n const availableCheckoutAttemptId: string | undefined = isSessionReusable ? checkoutAttemptIdSession.id : checkoutAttemptIdFromPayByLink;\n\n const payload: RequestAttemptIdPayload = {\n version: LIBRARY_VERSION,\n buildType: LIBRARY_BUNDLE_TYPE,\n channel: 'Web',\n platform: 'Web',\n locale,\n referrer: window.location.href,\n screenWidth: window.screen.width,\n checkoutStage: checkoutStage || 'checkout',\n level: this.enabled ? 'all' : 'initial',\n ...(applicationInfo && { applicationInfo }),\n ...(sessionId && { sessionId }),\n ...(availableCheckoutAttemptId && { checkoutAttemptId: availableCheckoutAttemptId })\n };\n\n this.capturedCheckoutAttemptId = await this.service.requestCheckoutAttemptId(payload);\n\n this.storage.set({\n id: this.capturedCheckoutAttemptId,\n timestamp: isSessionReusable ? checkoutAttemptIdSession.timestamp : Date.now()\n });\n } catch (error: unknown) {\n this.enabled = false;\n console.warn('Analytics: Error setting up', error);\n }\n }\n\n public sendAnalytics(event: AbstractAnalyticsEvent): void {\n if (!this.enabled) {\n return;\n }\n\n try {\n this.addEventToQueue(event);\n } catch (error: unknown) {\n console.warn('Analytics: Error adding event to queue', error);\n }\n }\n\n public async sendFlavor(flavor: 'dropin' | 'components'): Promise<void> {\n if (!this.capturedCheckoutAttemptId) return;\n if (this.isFlavorReported) return;\n\n this.isFlavorReported = true;\n\n try {\n await this.service.reportIntegrationFlavor(flavor, this.capturedCheckoutAttemptId);\n } catch (error) {\n console.warn('Analytics: Error reporting flavor', error);\n }\n }\n\n public flush(): void {\n void this.sendEvents();\n }\n\n /**\n * Info events don't have high priority, therefore we add a delay in order to dispatch a batch of events\n * Log/Error events are sent almost immediately. There is a debounce mechanism in place but the delay is very minimal\n *\n * @param event\n * @private\n */\n private addEventToQueue(event: AbstractAnalyticsEvent): void {\n this.eventsQueue.add(event);\n\n if (event.getEventCategory() === AnalyticsEventCategory.info) {\n this.debouncedSendInfoEvents();\n } else {\n this.debouncedSendEvents();\n }\n }\n\n private async sendEvents(): Promise<void> {\n if (!this.capturedCheckoutAttemptId || !this.enabled) {\n return;\n }\n\n const payload: AnalyticsEventPayload = {\n channel: 'Web',\n platform: 'Web',\n info: this.eventsQueue.infoEvents,\n errors: this.eventsQueue.errorEvents,\n logs: this.eventsQueue.logEvents\n };\n\n this.eventsQueue.clear();\n\n try {\n await this.service.sendEvents(payload, this.capturedCheckoutAttemptId);\n } catch (error) {\n console.warn('Analytics: Error sending events', error);\n }\n }\n}\n\nexport default Analytics;\n"],"names":["Analytics","checkoutAttemptId","this","capturedCheckoutAttemptId","setUp","sessionId","checkoutStage","locale","checkoutAttemptIdSession","storage","get","isSessionReusable","session","timestamp","fifteenMinutesAgo","Date","now","isSessionCreatedUnderFifteenMinutes","applicationInfo","checkoutAttemptIdFromPayByLink","processAnalyticsData","analyticsData","availableCheckoutAttemptId","id","payload","_object_spread","version","LIBRARY_VERSION","buildType","LIBRARY_BUNDLE_TYPE","channel","platform","referrer","window","location","href","screenWidth","screen","width","level","enabled","service","requestCheckoutAttemptId","set","error","console","warn","sendAnalytics","event","addEventToQueue","sendFlavor","flavor","isFlavorReported","reportIntegrationFlavor","flush","sendEvents","eventsQueue","add","getEventCategory","AnalyticsEventCategory","info","debouncedSendInfoEvents","debouncedSendEvents","infoEvents","errors","errorEvents","logs","logEvents","clear","constructor","eventQueue","_define_property","Storage","debounce","bind","undefined"],"mappings":"uZA2CA,MAAMA,EAuBF,qBAAWC,GACP,OAAOC,KAAKC,yBAChB,CAEA,WAAaC,EAAMC,UACfA,EAASC,cACTA,EAAaC,OACbA,GACqF,CAAA,GACrF,IACI,MAAMC,EAA2BN,KAAKO,QAAQC,MACxCC,EA5ClB,SAA6CC,GAEzC,KAAKA,aAAAA,EAAAA,EAASC,WAAW,OAAO,EAChC,MAAMC,EAAoBC,KAAKC,MAFD,IAG9B,OAAOJ,EAAQC,UAAYC,CAC/B,CAuCsCG,CAAoCT,IAExDU,gBAAEA,EAAiBjB,kBAAmBkB,GAAmCC,EAAqBlB,KAAKmB,eAEnGC,EAAiDX,EAAoBH,EAAyBe,GAAKJ,EAEnGK,oUAAmCC,CAAA,CACrCC,QAASC,EACTC,UAAWC,EACXC,QAAS,MACTC,SAAU,MACVxB,SACAyB,SAAUC,OAAOC,SAASC,KAC1BC,YAAaH,OAAOI,OAAOC,MAC3BhC,cAAeA,GAAiB,WAChCiC,MAAOrC,KAAKsC,QAAU,MAAQ,WAC1BtB,GAAmB,CAAEA,mBACrBb,GAAa,CAAEA,aACfiB,GAA8B,CAAErB,kBAAmBqB,IAG3DpB,KAAKC,gCAAkCD,KAAKuC,QAAQC,yBAAyBlB,GAE7EtB,KAAKO,QAAQkC,IAAI,CACbpB,GAAIrB,KAAKC,0BACTU,UAAWF,EAAoBH,EAAyBK,UAAYE,KAAKC,OAEjF,CAAE,MAAO4B,GACL1C,KAAKsC,SAAU,EACfK,QAAQC,KAAK,8BAA+BF,EAChD,CACJ,CAEOG,aAAAA,CAAcC,GACjB,GAAK9C,KAAKsC,QAIV,IACItC,KAAK+C,gBAAgBD,EACzB,CAAE,MAAOJ,GACLC,QAAQC,KAAK,yCAA0CF,EAC3D,CACJ,CAEA,gBAAaM,CAAWC,GACpB,GAAKjD,KAAKC,4BACND,KAAKkD,iBAAT,CAEAlD,KAAKkD,kBAAmB,EAExB,UACUlD,KAAKuC,QAAQY,wBAAwBF,EAAQjD,KAAKC,0BAC5D,CAAE,MAAOyC,GACLC,QAAQC,KAAK,oCAAqCF,EACtD,CAR2B,CAS/B,CAEOU,KAAAA,GACEpD,KAAKqD,YACd,CASQN,eAAAA,CAAgBD,GACpB9C,KAAKsD,YAAYC,IAAIT,GAEjBA,EAAMU,qBAAuBC,EAAuBC,KACpD1D,KAAK2D,0BAEL3D,KAAK4D,qBAEb,CAEA,gBAAcP,GACV,IAAKrD,KAAKC,4BAA8BD,KAAKsC,QACzC,OAGJ,MAAMhB,EAAiC,CACnCM,QAAS,MACTC,SAAU,MACV6B,KAAM1D,KAAKsD,YAAYO,WACvBC,OAAQ9D,KAAKsD,YAAYS,YACzBC,KAAMhE,KAAKsD,YAAYW,WAG3BjE,KAAKsD,YAAYY,QAEjB,UACUlE,KAAKuC,QAAQc,WAAW/B,EAAStB,KAAKC,0BAChD,CAAE,MAAOyC,GACLC,QAAQC,KAAK,kCAAmCF,EACpD,CACJ,CAzHA,WAAAyB,EAAY5B,QAAEA,EAAO6B,WAAEA,EAAU9B,QAAEA,EAAOnB,cAAEA,IAX5CkD,EAAArE,KAAiBmB,qBAAjB,GACAkD,EAAArE,KAAiBuC,eAAjB,GACA8B,EAAArE,KAAiBsD,mBAAjB,GACAe,EAAArE,KAAiBO,UAAU,IAAI+D,EAAyC,sBAAuB,mBAC/FD,EAAArE,KAAiB2D,+BAAjB,GACAU,EAAArE,KAAiB4D,2BAAjB,GAEAS,EAAArE,KAAQsC,WAAmB,GAC3B+B,EAAArE,KAAQC,iCAAR,GACAoE,EAAArE,KAAQkD,oBAAmB,GAGvBlD,KAAKuC,QAAUA,EACfvC,KAAKsD,YAAcc,EAEnBpE,KAAK2D,wBAA0BY,EAASvE,KAAKqD,WAAWmB,KAAKxE,MAnBkB,KAoB/EA,KAAK4D,oBAAsBW,EAASvE,KAAKqD,WAAWmB,KAAKxE,MAnBjB,UAqBxByE,IAAZnC,IAAuBtC,KAAKsC,QAAUA,GACtCnB,IAAenB,KAAKmB,cAAgBA,EAC5C"}
|
|
1
|
+
{"version":3,"file":"Analytics.js","sources":["../../../../src/core/Analytics/Analytics.ts"],"sourcesContent":["import { debounce } from '../../utils/debounce';\nimport { processAnalyticsData } from './utils';\nimport { AbstractAnalyticsEvent, AnalyticsEventCategory } from './events/AbstractAnalyticsEvent';\nimport Storage from '../../utils/Storage';\nimport { LIBRARY_BUNDLE_TYPE, LIBRARY_VERSION } from '../config';\nimport { AnalyticsEventQueue } from './AnalyticsEventQueue';\nimport type { AnalyticsOptions } from './types';\nimport type { AnalyticsEventPayload, IAnalyticsService, RequestAttemptIdPayload } from './AnalyticsService';\n\nexport interface AnalyticsProps {\n service: IAnalyticsService;\n eventQueue: AnalyticsEventQueue;\n enabled?: boolean;\n analyticsData?: AnalyticsOptions['analyticsData'];\n}\n\nexport interface IAnalytics {\n checkoutAttemptId?: string;\n setUp({ sessionId, checkoutStage, locale }: { sessionId?: string; checkoutStage?: 'precheckout' | 'checkout'; locale?: string }): Promise<void>;\n sendFlavor(flavor: 'dropin' | 'components'): Promise<void>;\n sendAnalytics(event: AbstractAnalyticsEvent): void;\n flush(): void;\n}\n\nexport interface CheckoutAttemptIdSessionStorage {\n id: string;\n timestamp: number;\n}\n\n/**\n * If the checkout attempt ID was stored more than fifteen minutes ago, then we should request a new ID.\n * More here: COWEB-1099\n */\nfunction isSessionCreatedUnderFifteenMinutes(session: CheckoutAttemptIdSessionStorage | null): boolean {\n const FIFTEEN_MINUTES_IN_MS = 15 * 60 * 1000;\n if (!session?.timestamp) return false;\n const fifteenMinutesAgo = Date.now() - FIFTEEN_MINUTES_IN_MS;\n return session.timestamp > fifteenMinutesAgo;\n}\n\nconst ANALYTICS_INFO_DEBOUNCE_DELAY = process.env.NODE_ENV === 'development' ? 5_000 : 10_000;\nconst ANALYTICS_ERROR_AND_LOGS_DEBOUNCE_DELAY = 5_000;\n\nclass Analytics implements IAnalytics {\n private readonly analyticsData?: AnalyticsOptions['analyticsData'];\n private readonly service: IAnalyticsService;\n private readonly eventsQueue: AnalyticsEventQueue;\n private readonly storage = new Storage<CheckoutAttemptIdSessionStorage>('checkout-attempt-id', 'sessionStorage');\n private readonly debouncedSendInfoEvents: () => void;\n private readonly debouncedSendEvents: () => void;\n\n private enabled: boolean = true;\n private capturedCheckoutAttemptId?: string;\n private isFlavorReported = false;\n\n constructor({ service, eventQueue, enabled, analyticsData }: AnalyticsProps) {\n this.service = service;\n this.eventsQueue = eventQueue;\n\n this.debouncedSendInfoEvents = debounce(this.sendEvents.bind(this), ANALYTICS_INFO_DEBOUNCE_DELAY);\n this.debouncedSendEvents = debounce(this.sendEvents.bind(this), ANALYTICS_ERROR_AND_LOGS_DEBOUNCE_DELAY);\n\n if (enabled !== undefined) this.enabled = enabled;\n if (analyticsData) this.analyticsData = analyticsData;\n }\n\n public get checkoutAttemptId(): string {\n return this.capturedCheckoutAttemptId;\n }\n\n public async setUp({\n sessionId,\n checkoutStage,\n locale\n }: { sessionId?: string; locale?: string; checkoutStage?: 'precheckout' | 'checkout' } = {}): Promise<void> {\n try {\n const checkoutAttemptIdSession = this.storage.get();\n const isSessionReusable = isSessionCreatedUnderFifteenMinutes(checkoutAttemptIdSession);\n\n const { applicationInfo, checkoutAttemptId: checkoutAttemptIdFromPayByLink } = processAnalyticsData(this.analyticsData);\n\n const availableCheckoutAttemptId: string | undefined = isSessionReusable ? checkoutAttemptIdSession.id : checkoutAttemptIdFromPayByLink;\n\n const payload: RequestAttemptIdPayload = {\n version: LIBRARY_VERSION,\n buildType: LIBRARY_BUNDLE_TYPE,\n channel: 'Web',\n platform: 'Web',\n locale,\n referrer: window.location.href,\n screenWidth: window.screen.width,\n checkoutStage: checkoutStage || 'checkout',\n level: this.enabled ? 'all' : 'initial',\n ...(applicationInfo && { applicationInfo }),\n ...(sessionId && { sessionId }),\n ...(availableCheckoutAttemptId && { checkoutAttemptId: availableCheckoutAttemptId })\n };\n\n this.capturedCheckoutAttemptId = await this.service.requestCheckoutAttemptId(payload);\n\n this.storage.set({\n id: this.capturedCheckoutAttemptId,\n timestamp: isSessionReusable ? checkoutAttemptIdSession.timestamp : Date.now()\n });\n } catch (error: unknown) {\n this.enabled = false;\n console.warn('Analytics: Error setting up', error);\n }\n }\n\n public sendAnalytics(event: AbstractAnalyticsEvent): void {\n if (!this.enabled) {\n return;\n }\n\n try {\n this.addEventToQueue(event);\n } catch (error: unknown) {\n console.warn('Analytics: Error adding event to queue', error);\n }\n }\n\n public async sendFlavor(flavor: 'dropin' | 'components'): Promise<void> {\n if (!this.capturedCheckoutAttemptId) return;\n if (this.isFlavorReported) return;\n\n this.isFlavorReported = true;\n\n try {\n await this.service.reportIntegrationFlavor(flavor, this.capturedCheckoutAttemptId);\n } catch (error) {\n console.warn('Analytics: Error reporting flavor', error);\n }\n }\n\n public flush(): void {\n void this.sendEvents();\n }\n\n /**\n * Info events don't have high priority, therefore we add a delay in order to dispatch a batch of events\n * Log/Error events are sent almost immediately. There is a debounce mechanism in place but the delay is very minimal\n *\n * @param event\n * @private\n */\n private addEventToQueue(event: AbstractAnalyticsEvent): void {\n this.eventsQueue.add(event);\n\n if (event.getEventCategory() === AnalyticsEventCategory.info) {\n this.debouncedSendInfoEvents();\n } else {\n this.debouncedSendEvents();\n }\n }\n\n private async sendEvents(): Promise<void> {\n if (!this.capturedCheckoutAttemptId || !this.enabled) {\n return;\n }\n\n const payload: AnalyticsEventPayload = {\n channel: 'Web',\n platform: 'Web',\n info: this.eventsQueue.infoEvents,\n errors: this.eventsQueue.errorEvents,\n logs: this.eventsQueue.logEvents\n };\n\n this.eventsQueue.clear();\n\n try {\n await this.service.sendEvents(payload, this.capturedCheckoutAttemptId);\n } catch (error) {\n console.warn('Analytics: Error sending events', error);\n }\n }\n}\n\nexport default Analytics;\n"],"names":["Analytics","checkoutAttemptId","this","capturedCheckoutAttemptId","setUp","sessionId","checkoutStage","locale","checkoutAttemptIdSession","storage","get","isSessionReusable","session","timestamp","fifteenMinutesAgo","Date","now","isSessionCreatedUnderFifteenMinutes","applicationInfo","checkoutAttemptIdFromPayByLink","processAnalyticsData","analyticsData","availableCheckoutAttemptId","id","payload","_object_spread","version","LIBRARY_VERSION","buildType","LIBRARY_BUNDLE_TYPE","channel","platform","referrer","window","location","href","screenWidth","screen","width","level","enabled","service","requestCheckoutAttemptId","set","error","console","warn","sendAnalytics","event","addEventToQueue","sendFlavor","flavor","isFlavorReported","reportIntegrationFlavor","flush","sendEvents","eventsQueue","add","getEventCategory","AnalyticsEventCategory","info","debouncedSendInfoEvents","debouncedSendEvents","infoEvents","errors","errorEvents","logs","logEvents","clear","constructor","eventQueue","_define_property","Storage","debounce","bind","undefined"],"mappings":"uZA2CA,MAAMA,EAuBF,qBAAWC,GACP,OAAOC,KAAKC,yBAChB,CAEA,WAAaC,EAAMC,UACfA,EAASC,cACTA,EAAaC,OACbA,GACqF,CAAA,GACrF,IACI,MAAMC,EAA2BN,KAAKO,QAAQC,MACxCC,EA5ClB,SAA6CC,GAEzC,KAAKA,aAAAA,EAAAA,EAASC,WAAW,OAAO,EAChC,MAAMC,EAAoBC,KAAKC,MAFD,IAG9B,OAAOJ,EAAQC,UAAYC,CAC/B,CAuCsCG,CAAoCT,IAExDU,gBAAEA,EAAiBjB,kBAAmBkB,GAAmCC,EAAqBlB,KAAKmB,eAEnGC,EAAiDX,EAAoBH,EAAyBe,GAAKJ,EAEnGK,oUAAmCC,CAAA,CACrCC,QAASC,EACTC,UAAWC,EACXC,QAAS,MACTC,SAAU,MACVxB,SACAyB,SAAUC,OAAOC,SAASC,KAC1BC,YAAaH,OAAOI,OAAOC,MAC3BhC,cAAeA,GAAiB,WAChCiC,MAAOrC,KAAKsC,QAAU,MAAQ,WAC1BtB,GAAmB,CAAEA,mBACrBb,GAAa,CAAEA,aACfiB,GAA8B,CAAErB,kBAAmBqB,IAG3DpB,KAAKC,gCAAkCD,KAAKuC,QAAQC,yBAAyBlB,GAE7EtB,KAAKO,QAAQkC,IAAI,CACbpB,GAAIrB,KAAKC,0BACTU,UAAWF,EAAoBH,EAAyBK,UAAYE,KAAKC,OAEjF,CAAE,MAAO4B,GACL1C,KAAKsC,SAAU,EACfK,QAAQC,KAAK,8BAA+BF,EAChD,CACJ,CAEOG,aAAAA,CAAcC,GACjB,GAAK9C,KAAKsC,QAIV,IACItC,KAAK+C,gBAAgBD,EACzB,CAAE,MAAOJ,GACLC,QAAQC,KAAK,yCAA0CF,EAC3D,CACJ,CAEA,gBAAaM,CAAWC,GACpB,GAAKjD,KAAKC,4BACND,KAAKkD,iBAAT,CAEAlD,KAAKkD,kBAAmB,EAExB,UACUlD,KAAKuC,QAAQY,wBAAwBF,EAAQjD,KAAKC,0BAC5D,CAAE,MAAOyC,GACLC,QAAQC,KAAK,oCAAqCF,EACtD,CAR2B,CAS/B,CAEOU,KAAAA,GACEpD,KAAKqD,YACd,CASQN,eAAAA,CAAgBD,GACpB9C,KAAKsD,YAAYC,IAAIT,GAEjBA,EAAMU,qBAAuBC,EAAuBC,KACpD1D,KAAK2D,0BAEL3D,KAAK4D,qBAEb,CAEA,gBAAcP,GACV,IAAKrD,KAAKC,4BAA8BD,KAAKsC,QACzC,OAGJ,MAAMhB,EAAiC,CACnCM,QAAS,MACTC,SAAU,MACV6B,KAAM1D,KAAKsD,YAAYO,WACvBC,OAAQ9D,KAAKsD,YAAYS,YACzBC,KAAMhE,KAAKsD,YAAYW,WAG3BjE,KAAKsD,YAAYY,QAEjB,UACUlE,KAAKuC,QAAQc,WAAW/B,EAAStB,KAAKC,0BAChD,CAAE,MAAOyC,GACLC,QAAQC,KAAK,kCAAmCF,EACpD,CACJ,CAzHA,WAAAyB,EAAY5B,QAAEA,EAAO6B,WAAEA,EAAU9B,QAAEA,EAAOnB,cAAEA,IAX5CkD,EAAArE,KAAiBmB,wBACjBkD,EAAArE,KAAiBuC,kBACjB8B,EAAArE,KAAiBsD,sBACjBe,EAAArE,KAAiBO,UAAU,IAAI+D,EAAyC,sBAAuB,mBAC/FD,EAAArE,KAAiB2D,kCACjBU,EAAArE,KAAiB4D,8BAEjBS,EAAArE,KAAQsC,WAAmB,GAC3B+B,EAAArE,KAAQC,oCACRoE,EAAArE,KAAQkD,oBAAmB,GAGvBlD,KAAKuC,QAAUA,EACfvC,KAAKsD,YAAcc,EAEnBpE,KAAK2D,wBAA0BY,EAASvE,KAAKqD,WAAWmB,KAAKxE,MAnBkB,KAoB/EA,KAAK4D,oBAAsBW,EAASvE,KAAKqD,WAAWmB,KAAKxE,MAnBjB,UAqBxByE,IAAZnC,IAAuBtC,KAAKsC,QAAUA,GACtCnB,IAAenB,KAAKmB,cAAgBA,EAC5C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnalyticsService.js","sources":["../../../../src/core/Analytics/AnalyticsService.ts"],"sourcesContent":["import AdyenCheckoutError from '../Errors/AdyenCheckoutError';\nimport { AbstractAnalyticsEvent } from './events/AbstractAnalyticsEvent';\nimport { HttpOptions, httpPost } from '../Services/http';\nimport type { ApplicationInfo } from './types';\n\nexport interface IAnalyticsService {\n requestCheckoutAttemptId(payload: RequestAttemptIdPayload): Promise<string>;\n sendEvents(payload: AnalyticsEventPayload, checkoutAttemptId: string): Promise<void>;\n reportIntegrationFlavor(flavor: 'dropin' | 'components', checkoutAttemptId: string): Promise<void>;\n}\n\nexport interface RequestAttemptIdPayload {\n version: string;\n channel: 'Web';\n platform: 'Web';\n locale: string;\n checkoutStage: 'precheckout' | 'checkout';\n referrer: string;\n screenWidth: number;\n buildType: string;\n level: 'initial' | 'all';\n sessionId?: string;\n checkoutAttemptId?: string;\n applicationInfo?: ApplicationInfo;\n}\n\nexport interface AnalyticsEventPayload {\n channel: 'Web';\n platform: 'Web';\n info: Array<AbstractAnalyticsEvent>;\n errors: Array<AbstractAnalyticsEvent>;\n logs: Array<AbstractAnalyticsEvent>;\n}\n\nexport interface AnalyticsFlavorPayload {\n flavor: 'dropin' | 'components';\n checkoutAttemptId: string;\n}\n\nconst ANALYTICS_PATH = 'v3/analytics';\n\nclass AnalyticsService implements IAnalyticsService {\n private readonly clientKey: string;\n private readonly analyticsContext: string;\n\n constructor({ clientKey, analyticsContext }: { clientKey: string; analyticsContext: string }) {\n this.clientKey = clientKey;\n this.analyticsContext = analyticsContext;\n }\n\n public async requestCheckoutAttemptId(payload: RequestAttemptIdPayload) {\n const httpOptions: HttpOptions = {\n loadingContext: this.analyticsContext,\n path: `${ANALYTICS_PATH}?clientKey=${this.clientKey}`\n };\n\n try {\n const { checkoutAttemptId } = await httpPost<{ checkoutAttemptId: string }>(httpOptions, payload);\n return checkoutAttemptId;\n } catch (error: unknown) {\n throw new AdyenCheckoutError('NETWORK_ERROR', 'requestCheckoutAttemptId() - failed to get checkout attempt ID', { cause: error });\n }\n }\n\n public async sendEvents(payload: AnalyticsEventPayload, checkoutAttemptId: string): Promise<void> {\n if (!checkoutAttemptId) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'sendEvents() - checkoutAttemptId is required');\n }\n\n // No events to be sent\n if (!payload.info.length && !payload.errors.length && !payload.logs.length) {\n return Promise.resolve();\n }\n\n const httpOptions: HttpOptions = {\n loadingContext: this.analyticsContext,\n path: `${ANALYTICS_PATH}/${checkoutAttemptId}?clientKey=${this.clientKey}`\n };\n\n try {\n await httpPost(httpOptions, payload);\n } catch (error: unknown) {\n throw new AdyenCheckoutError('NETWORK_ERROR', 'sendEvents() - failed to send events', { cause: error });\n }\n }\n\n public async reportIntegrationFlavor(flavor: 'dropin' | 'components', checkoutAttemptId: string): Promise<void> {\n if (!flavor || !checkoutAttemptId) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'reportIntegrationFlavor() - flavor or checkoutAttemptId is required');\n }\n\n const httpOptions: HttpOptions = {\n loadingContext: this.analyticsContext,\n path: `${ANALYTICS_PATH}?clientKey=${this.clientKey}`\n };\n\n const payload: AnalyticsFlavorPayload = {\n flavor,\n checkoutAttemptId\n };\n\n try {\n await httpPost(httpOptions, payload);\n } catch (error: unknown) {\n throw new AdyenCheckoutError('NETWORK_ERROR', 'reportIntegrationFlavor() - failed to send flavor', { cause: error });\n }\n }\n}\n\nexport { AnalyticsService };\n"],"names":["ANALYTICS_PATH","AnalyticsService","requestCheckoutAttemptId","payload","httpOptions","loadingContext","this","analyticsContext","path","clientKey","checkoutAttemptId","httpPost","error","AdyenCheckoutError","cause","sendEvents","info","length","errors","logs","Promise","resolve","reportIntegrationFlavor","flavor","constructor","_define_property"],"mappings":"sNAuCA,MAAMA,EAAiB,eAEvB,MAAMC,EASF,8BAAaC,CAAyBC,GAClC,MAAMC,EAA2B,CAC7BC,eAAgBC,KAAKC,iBACrBC,KAAM,GAAGR,eAA4BM,KAAKG,aAG9C,IACI,MAAMC,kBAAEA,SAA4BC,EAAwCP,EAAaD,GACzF,OAAOO,CACX,CAAE,MAAOE,GACL,MAAM,IAAIC,EAAmB,gBAAiB,iEAAkE,CAAEC,MAAOF,GAC7H,CACJ,CAEA,gBAAaG,CAAWZ,EAAgCO,GACpD,IAAKA,EACD,MAAM,IAAIG,EAAmB,uBAAwB,gDAIzD,IAAKV,EAAQa,KAAKC,SAAWd,EAAQe,OAAOD,SAAWd,EAAQgB,KAAKF,OAChE,OAAOG,QAAQC,UAGnB,MAAMjB,EAA2B,CAC7BC,eAAgBC,KAAKC,iBACrBC,KAAM,GAAGR,KAAkBU,eAA+BJ,KAAKG,aAGnE,UACUE,EAASP,EAAaD,EAChC,CAAE,MAAOS,GACL,MAAM,IAAIC,EAAmB,gBAAiB,uCAAwC,CAAEC,MAAOF,GACnG,CACJ,CAEA,6BAAaU,CAAwBC,EAAiCb,GAClE,IAAKa,IAAWb,EACZ,MAAM,IAAIG,EAAmB,uBAAwB,uEAGzD,MAAMT,EAA2B,CAC7BC,eAAgBC,KAAKC,iBACrBC,KAAM,GAAGR,eAA4BM,KAAKG,aAGxCN,EAAkC,CACpCoB,SACAb,qBAGJ,UACUC,EAASP,EAAaD,EAChC,CAAE,MAAOS,GACL,MAAM,IAAIC,EAAmB,gBAAiB,oDAAqD,CAAEC,MAAOF,GAChH,CACJ,CA7DA,WAAAY,EAAYf,UAAEA,EAASF,iBAAEA,IAHzBkB,EAAAnB,KAAiBG,
|
|
1
|
+
{"version":3,"file":"AnalyticsService.js","sources":["../../../../src/core/Analytics/AnalyticsService.ts"],"sourcesContent":["import AdyenCheckoutError from '../Errors/AdyenCheckoutError';\nimport { AbstractAnalyticsEvent } from './events/AbstractAnalyticsEvent';\nimport { HttpOptions, httpPost } from '../Services/http';\nimport type { ApplicationInfo } from './types';\n\nexport interface IAnalyticsService {\n requestCheckoutAttemptId(payload: RequestAttemptIdPayload): Promise<string>;\n sendEvents(payload: AnalyticsEventPayload, checkoutAttemptId: string): Promise<void>;\n reportIntegrationFlavor(flavor: 'dropin' | 'components', checkoutAttemptId: string): Promise<void>;\n}\n\nexport interface RequestAttemptIdPayload {\n version: string;\n channel: 'Web';\n platform: 'Web';\n locale: string;\n checkoutStage: 'precheckout' | 'checkout';\n referrer: string;\n screenWidth: number;\n buildType: string;\n level: 'initial' | 'all';\n sessionId?: string;\n checkoutAttemptId?: string;\n applicationInfo?: ApplicationInfo;\n}\n\nexport interface AnalyticsEventPayload {\n channel: 'Web';\n platform: 'Web';\n info: Array<AbstractAnalyticsEvent>;\n errors: Array<AbstractAnalyticsEvent>;\n logs: Array<AbstractAnalyticsEvent>;\n}\n\nexport interface AnalyticsFlavorPayload {\n flavor: 'dropin' | 'components';\n checkoutAttemptId: string;\n}\n\nconst ANALYTICS_PATH = 'v3/analytics';\n\nclass AnalyticsService implements IAnalyticsService {\n private readonly clientKey: string;\n private readonly analyticsContext: string;\n\n constructor({ clientKey, analyticsContext }: { clientKey: string; analyticsContext: string }) {\n this.clientKey = clientKey;\n this.analyticsContext = analyticsContext;\n }\n\n public async requestCheckoutAttemptId(payload: RequestAttemptIdPayload) {\n const httpOptions: HttpOptions = {\n loadingContext: this.analyticsContext,\n path: `${ANALYTICS_PATH}?clientKey=${this.clientKey}`\n };\n\n try {\n const { checkoutAttemptId } = await httpPost<{ checkoutAttemptId: string }>(httpOptions, payload);\n return checkoutAttemptId;\n } catch (error: unknown) {\n throw new AdyenCheckoutError('NETWORK_ERROR', 'requestCheckoutAttemptId() - failed to get checkout attempt ID', { cause: error });\n }\n }\n\n public async sendEvents(payload: AnalyticsEventPayload, checkoutAttemptId: string): Promise<void> {\n if (!checkoutAttemptId) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'sendEvents() - checkoutAttemptId is required');\n }\n\n // No events to be sent\n if (!payload.info.length && !payload.errors.length && !payload.logs.length) {\n return Promise.resolve();\n }\n\n const httpOptions: HttpOptions = {\n loadingContext: this.analyticsContext,\n path: `${ANALYTICS_PATH}/${checkoutAttemptId}?clientKey=${this.clientKey}`\n };\n\n try {\n await httpPost(httpOptions, payload);\n } catch (error: unknown) {\n throw new AdyenCheckoutError('NETWORK_ERROR', 'sendEvents() - failed to send events', { cause: error });\n }\n }\n\n public async reportIntegrationFlavor(flavor: 'dropin' | 'components', checkoutAttemptId: string): Promise<void> {\n if (!flavor || !checkoutAttemptId) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'reportIntegrationFlavor() - flavor or checkoutAttemptId is required');\n }\n\n const httpOptions: HttpOptions = {\n loadingContext: this.analyticsContext,\n path: `${ANALYTICS_PATH}?clientKey=${this.clientKey}`\n };\n\n const payload: AnalyticsFlavorPayload = {\n flavor,\n checkoutAttemptId\n };\n\n try {\n await httpPost(httpOptions, payload);\n } catch (error: unknown) {\n throw new AdyenCheckoutError('NETWORK_ERROR', 'reportIntegrationFlavor() - failed to send flavor', { cause: error });\n }\n }\n}\n\nexport { AnalyticsService };\n"],"names":["ANALYTICS_PATH","AnalyticsService","requestCheckoutAttemptId","payload","httpOptions","loadingContext","this","analyticsContext","path","clientKey","checkoutAttemptId","httpPost","error","AdyenCheckoutError","cause","sendEvents","info","length","errors","logs","Promise","resolve","reportIntegrationFlavor","flavor","constructor","_define_property"],"mappings":"sNAuCA,MAAMA,EAAiB,eAEvB,MAAMC,EASF,8BAAaC,CAAyBC,GAClC,MAAMC,EAA2B,CAC7BC,eAAgBC,KAAKC,iBACrBC,KAAM,GAAGR,eAA4BM,KAAKG,aAG9C,IACI,MAAMC,kBAAEA,SAA4BC,EAAwCP,EAAaD,GACzF,OAAOO,CACX,CAAE,MAAOE,GACL,MAAM,IAAIC,EAAmB,gBAAiB,iEAAkE,CAAEC,MAAOF,GAC7H,CACJ,CAEA,gBAAaG,CAAWZ,EAAgCO,GACpD,IAAKA,EACD,MAAM,IAAIG,EAAmB,uBAAwB,gDAIzD,IAAKV,EAAQa,KAAKC,SAAWd,EAAQe,OAAOD,SAAWd,EAAQgB,KAAKF,OAChE,OAAOG,QAAQC,UAGnB,MAAMjB,EAA2B,CAC7BC,eAAgBC,KAAKC,iBACrBC,KAAM,GAAGR,KAAkBU,eAA+BJ,KAAKG,aAGnE,UACUE,EAASP,EAAaD,EAChC,CAAE,MAAOS,GACL,MAAM,IAAIC,EAAmB,gBAAiB,uCAAwC,CAAEC,MAAOF,GACnG,CACJ,CAEA,6BAAaU,CAAwBC,EAAiCb,GAClE,IAAKa,IAAWb,EACZ,MAAM,IAAIG,EAAmB,uBAAwB,uEAGzD,MAAMT,EAA2B,CAC7BC,eAAgBC,KAAKC,iBACrBC,KAAM,GAAGR,eAA4BM,KAAKG,aAGxCN,EAAkC,CACpCoB,SACAb,qBAGJ,UACUC,EAASP,EAAaD,EAChC,CAAE,MAAOS,GACL,MAAM,IAAIC,EAAmB,gBAAiB,oDAAqD,CAAEC,MAAOF,GAChH,CACJ,CA7DA,WAAAY,EAAYf,UAAEA,EAASF,iBAAEA,IAHzBkB,EAAAnB,KAAiBG,oBACjBgB,EAAAnB,KAAiBC,2BAGbD,KAAKG,UAAYA,EACjBH,KAAKC,iBAAmBA,CAC5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractAnalyticsEvent.js","sources":["../../../../../src/core/Analytics/events/AbstractAnalyticsEvent.ts"],"sourcesContent":["import uuid from '../../../utils/uuid';\n\nexport enum AnalyticsEventCategory {\n info = 'info',\n error = 'error',\n log = 'log'\n}\n\nexport abstract class AbstractAnalyticsEvent {\n private readonly timestamp: string;\n private readonly id: string;\n\n /**\n * Component tx variant or identifier\n * @private\n */\n private readonly component: string;\n\n public abstract getEventCategory(): AnalyticsEventCategory;\n\n protected constructor(component: string) {\n this.component = component;\n this.id = uuid();\n this.timestamp = String(Date.now());\n }\n}\n"],"names":["AnalyticsEventCategory","AbstractAnalyticsEvent","constructor","component","_define_property","this","timestamp","id","uuid","String","Date","now"],"mappings":"8JAEO,IAAAA,EAAKA,SAAAA,GAAAA,iDAAAA,CAIX,CAJWA,CAIX,CAAA,GAEM,MAAeC,EAYlB,WAAAC,CAAsBC,GAXtBC,EAAAC,KAAiBC,
|
|
1
|
+
{"version":3,"file":"AbstractAnalyticsEvent.js","sources":["../../../../../src/core/Analytics/events/AbstractAnalyticsEvent.ts"],"sourcesContent":["import uuid from '../../../utils/uuid';\n\nexport enum AnalyticsEventCategory {\n info = 'info',\n error = 'error',\n log = 'log'\n}\n\nexport abstract class AbstractAnalyticsEvent {\n private readonly timestamp: string;\n private readonly id: string;\n\n /**\n * Component tx variant or identifier\n * @private\n */\n private readonly component: string;\n\n public abstract getEventCategory(): AnalyticsEventCategory;\n\n protected constructor(component: string) {\n this.component = component;\n this.id = uuid();\n this.timestamp = String(Date.now());\n }\n}\n"],"names":["AnalyticsEventCategory","AbstractAnalyticsEvent","constructor","component","_define_property","this","timestamp","id","uuid","String","Date","now"],"mappings":"8JAEO,IAAAA,EAAKA,SAAAA,GAAAA,iDAAAA,CAIX,CAJWA,CAIX,CAAA,GAEM,MAAeC,EAYlB,WAAAC,CAAsBC,GAXtBC,EAAAC,KAAiBC,oBACjBF,EAAAC,KAAiBE,aAMjBH,EAAAC,KAAiBF,oBAKbE,KAAKF,UAAYA,EACjBE,KAAKE,GAAKC,IACVH,KAAKC,UAAYG,OAAOC,KAAKC,MACjC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{AbstractAnalyticsEvent as E,AnalyticsEventCategory as
|
|
1
|
+
import{AbstractAnalyticsEvent as E,AnalyticsEventCategory as _}from"./AbstractAnalyticsEvent.js";function e(E,_,e){return _ in E?Object.defineProperty(E,_,{value:e,enumerable:!0,configurable:!0,writable:!0}):E[_]=e,E}var r=function(E){return E.network="Network",E.implementation="Implementation",E.internal="Internal",E.apiError="ApiError",E.sdkError="SdkError",E.thirdParty="ThirdParty",E.generic="Generic",E.redirect="Redirect",E.threeDS2="ThreeDS2",E}({}),S=function(E){return E.SECURED_FIELDS_IFRAME_CONTENT_WINDOW_NOT_FOUND="500",E.REDIRECT="600",E.SECURED_FIELDS_KEY_NOT_FOUND="608",E.SECURED_FIELDS_ENCRYPTION_KEY_GEN_FAILED="609",E.SECURED_FIELDS_ENCRYPTION_ERROR="610",E.THREEDS2_ACTION_IS_MISSING_PAYMENT_DATA="700",E.THREEDS2_ACTION_IS_MISSING_TOKEN="701",E.THREEDS2_TOKEN_IS_MISSING_THREEDSMETHODURL="702",E.THREEDS2_TOKEN_IS_MISSING_OTHER_PROPS="703",E.THREEDS2_TOKEN_DECODE_OR_PARSING_FAILED="704",E.THREEDS2_TIMEOUT="710",E.THREEDS2_TOKEN_IS_MISSING_ACSURL="800",E.THREEDS2_NO_TRANSSTATUS="801",E.THREEDS2_NO_DETAILS_FOR_FRICTIONLESS_OR_REFUSED="802",E.THREEDS2_NO_COMPONENT_FOR_ACTION="803",E.THREEDS2_NO_ACTION_FOR_CHALLENGE="804",E.THREEDS2_CHALLENGE_RESOLVED_WITHOUT_RESULT_PROP="805",E}({});class T extends E{getEventCategory(){return _.error}constructor(E){super(E.component),e(this,"errorType",void 0),e(this,"code",void 0),e(this,"message",void 0),this.errorType=E.errorType,this.code=E.code,E.message&&(this.message=E.message)}}export{T as AnalyticsErrorEvent,S as ErrorEventCode,r as ErrorEventType};
|
|
2
2
|
//# sourceMappingURL=AnalyticsErrorEvent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnalyticsErrorEvent.js","sources":["../../../../../src/core/Analytics/events/AnalyticsErrorEvent.ts"],"sourcesContent":["import { AbstractAnalyticsEvent, AnalyticsEventCategory } from './AbstractAnalyticsEvent';\n\ntype AnalyticsErrorEventProps = {\n component: string;\n errorType: ErrorEventType;\n code: string;\n message?: string;\n};\n\nexport enum ErrorEventType {\n network = 'Network',\n implementation = 'Implementation',\n internal = 'Internal',\n apiError = 'ApiError',\n sdkError = 'SdkError',\n thirdParty = 'ThirdParty',\n generic = 'Generic',\n redirect = 'Redirect',\n threeDS2 = 'ThreeDS2'\n}\n\nexport enum ErrorEventCode {\n /** Trying to initialise a securedField iframe, but the iframe.contentWindow is undefined (meaning the containing element is not in the DOM */\n SECURED_FIELDS_IFRAME_CONTENT_WINDOW_NOT_FOUND = '500',\n REDIRECT = '600',\n /** Missing 'paymentData' property from threeDS2 action */\n THREEDS2_ACTION_IS_MISSING_PAYMENT_DATA = '700',\n /** Missing 'token' property from threeDS2 action */\n THREEDS2_ACTION_IS_MISSING_TOKEN = '701',\n /** Decoded token is missing a valid threeDSMethodURL property */\n THREEDS2_TOKEN_IS_MISSING_THREEDSMETHODURL = '702',\n /**\n * Decoded token is missing one or more of the following properties:\n * fingerprint: (threeDSMethodNotificationURL | postMessageDomain | threeDSServerTransID)\n * challenge: (acsTransID | messageVersion | threeDSServerTransID)\n */\n THREEDS2_TOKEN_IS_MISSING_OTHER_PROPS = '703',\n /** Token decoding or parsing has failed. ('not base64', 'malformed URI sequence' or 'Could not JSON parse token') */\n THREEDS2_TOKEN_DECODE_OR_PARSING_FAILED = '704',\n /** 3DS2 process has timed out */\n THREEDS2_TIMEOUT = '
|
|
1
|
+
{"version":3,"file":"AnalyticsErrorEvent.js","sources":["../../../../../src/core/Analytics/events/AnalyticsErrorEvent.ts"],"sourcesContent":["import { AbstractAnalyticsEvent, AnalyticsEventCategory } from './AbstractAnalyticsEvent';\n\ntype AnalyticsErrorEventProps = {\n component: string;\n errorType: ErrorEventType;\n code: string;\n message?: string;\n};\n\nexport enum ErrorEventType {\n network = 'Network',\n implementation = 'Implementation',\n internal = 'Internal',\n apiError = 'ApiError',\n sdkError = 'SdkError',\n thirdParty = 'ThirdParty',\n generic = 'Generic',\n redirect = 'Redirect',\n threeDS2 = 'ThreeDS2'\n}\n\nexport enum ErrorEventCode {\n /** Trying to initialise a securedField iframe, but the iframe.contentWindow is undefined (meaning the containing element is not in the DOM */\n SECURED_FIELDS_IFRAME_CONTENT_WINDOW_NOT_FOUND = '500',\n /** */\n REDIRECT = '600',\n /**\n * Key not present in served securedFields asset\n */\n SECURED_FIELDS_KEY_NOT_FOUND = '608',\n /**\n * Encryption key generation failed in securedField\n */\n SECURED_FIELDS_ENCRYPTION_KEY_GEN_FAILED = '609',\n /**\n * Encryption failed in securedField\n */\n SECURED_FIELDS_ENCRYPTION_ERROR = '610',\n\n /** Missing 'paymentData' property from threeDS2 action */\n THREEDS2_ACTION_IS_MISSING_PAYMENT_DATA = '700',\n\n /** Missing 'token' property from threeDS2 action */\n THREEDS2_ACTION_IS_MISSING_TOKEN = '701',\n\n /** Decoded token is missing a valid threeDSMethodURL property */\n THREEDS2_TOKEN_IS_MISSING_THREEDSMETHODURL = '702',\n /**\n * Decoded token is missing one or more of the following properties:\n * fingerprint: (threeDSMethodNotificationURL | postMessageDomain | threeDSServerTransID)\n * challenge: (acsTransID | messageVersion | threeDSServerTransID)\n */\n THREEDS2_TOKEN_IS_MISSING_OTHER_PROPS = '703',\n\n /** Token decoding or parsing has failed. ('not base64', 'malformed URI sequence' or 'Could not JSON parse token') */\n THREEDS2_TOKEN_DECODE_OR_PARSING_FAILED = '704',\n\n /** 3DS2 process has timed out */\n THREEDS2_TIMEOUT = '710',\n\n /** Decoded token is missing a valid acsURL property */\n THREEDS2_TOKEN_IS_MISSING_ACSURL = '800',\n\n /** Challenge has resulted in an error (no transStatus could be retrieved by the backend) */\n THREEDS2_NO_TRANSSTATUS = '801',\n\n /** callSubmit3DS2Fingerprint has received a response indicating either a \"frictionless\" flow, or a \"refused\" response, but without a details object */\n THREEDS2_NO_DETAILS_FOR_FRICTIONLESS_OR_REFUSED = '802',\n\n /** callSubmit3DS2Fingerprint cannot find a component to handle the action response */\n THREEDS2_NO_COMPONENT_FOR_ACTION = '803',\n\n /** callSubmit3DS2Fingerprint has received a response indicating a \"challenge\" but without an action object */\n THREEDS2_NO_ACTION_FOR_CHALLENGE = '804',\n\n /** The challenge process has happened, an object has been returned, parsed & accepted as legit, but the result prop on that object is either missing or doesn't have a transStatus prop */\n THREEDS2_CHALLENGE_RESOLVED_WITHOUT_RESULT_PROP = '805'\n}\n\nexport class AnalyticsErrorEvent extends AbstractAnalyticsEvent {\n private readonly errorType: ErrorEventType;\n private readonly code: string;\n\n private readonly message?: string;\n\n constructor(props: AnalyticsErrorEventProps) {\n super(props.component);\n\n this.errorType = props.errorType;\n this.code = props.code;\n\n if (props.message) this.message = props.message;\n }\n\n public getEventCategory(): AnalyticsEventCategory {\n return AnalyticsEventCategory.error;\n }\n}\n"],"names":["ErrorEventType","ErrorEventCode","AnalyticsErrorEvent","AbstractAnalyticsEvent","getEventCategory","AnalyticsEventCategory","error","constructor","props","super","component","_define_property","errorType","this","code","message"],"mappings":"yNASO,IAAAA,EAAKA,SAAAA,GAAAA,yNAAAA,CAUX,CAVWA,CAUX,CAAA,GAEMC,EAAKA,SAAAA,GAAAA,OACoIA,EAAA,+CAAA,MAExIA,EAAA,SAAA,MAIHA,EAAA,6BAAA,MAIAA,EAAA,yCAAA,MAIAA,EAAA,gCAAA,MAGwDA,EAAA,wCAAA,MAGPA,EAAA,iCAAA,MAGaA,EAAA,2CAAA,MAM9DA,EAAA,sCAAA,MAGkHA,EAAA,wCAAA,MAGpFA,EAAA,iBAAA,MAGsBA,EAAA,iCAAA,MAGqCA,EAAA,wBAAA,MAG2DA,EAAA,gDAAA,MAGjEA,EAAA,iCAAA,MAGwBA,EAAA,iCAAA,MAG6EA,EAAA,gDAAA,MAtDjLA,CAwDX,CAxDWA,CAwDX,CAAA,GAEM,MAAMC,UAA4BC,EAe9BC,gBAAAA,GACH,OAAOC,EAAuBC,KAClC,CAXA,WAAAC,CAAYC,GACRC,MAAMD,EAAME,WANhBC,OAAiBC,oBACjBD,EAAAE,KAAiBC,eAEjBH,EAAAE,KAAiBE,kBAKbF,KAAKD,UAAYJ,EAAMI,UACvBC,KAAKC,KAAON,EAAMM,KAEdN,EAAMO,UAASF,KAAKE,QAAUP,EAAMO,QAC5C"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{AbstractAnalyticsEvent as e,AnalyticsEventCategory as t}from"./AbstractAnalyticsEvent.js";import{mapErrorCodesForAnalytics as o}from"../utils.js";function
|
|
1
|
+
import{AbstractAnalyticsEvent as e,AnalyticsEventCategory as t}from"./AbstractAnalyticsEvent.js";import{mapErrorCodesForAnalytics as o}from"../utils.js";function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}var i=function(e){return e.instantPaymentButton="instant_payment_button",e.dualBrandButton="dual_brand_button",e.fastlaneSignupConsentToggle="fastlane_signup_consent_toggle",e.otherPaymentMethodButton="otherpaymentmethod_button",e.featuredIssuer="featured_issuer",e.list="list",e.listSearch="list_search",e.qrDownloadButton="qr_download_button",e.segmentedControl="segmented_control",e.cardNumber="card_number",e.expiryDate="expiry_date",e.expiryMonth="expiry_month",e.expiryYear="expiry_year",e.securityCode="security_code",e}({}),d=function(e){return e.clicked="clicked",e.rendered="rendered",e.selected="selected",e.validationError="validationError",e.focus="focus",e.unfocus="unfocus",e.configured="configured",e.displayed="displayed",e.input="input",e.download="download",e.sdkDownloadInitiated="sdkDownloadInitiated",e.sdkDownloadFailed="sdkDownloadFailed",e.sdkDownloadAborted="sdkDownloadAborted",e.sdkDownloadCompleted="sdkDownloadCompleted",e.Initialized="initialized",e.LookupStarted="lookupStarted",e.LookupUserNotFound="lookupUserNotFound",e.OtpStarted="otpStarted",e.OtpSucceeded="otpSucceeded",e.OtpCanceled="otpCanceled",e.OtpFailed="otpFailed",e.AddressSelectorClicked="addressSelectorClicked",e.AddressSelectorClosed="addressSelectorClosed",e.AddressChanged="addressChanged",e}({});class s extends e{get configDataExcludedFields(){return["paymentMethodsConfiguration","elementRef","isDropin","oneClick","storedPaymentMethodId","paymentMethodId","isInstantPayment","type","data","holderName","shopperEmail","email","telephoneNumber","clickToPayConfiguration","modules","i18n"]}createAnalyticsConfigData(e){if(!e)return{};const t={};try{for(const[o,r]of Object.entries(e))this.configDataExcludedFields.includes(o)||("function"==typeof r?t[o]="function":Array.isArray(r)?t[o]=r.join(", ").substring(0,128):t[o]="object"==typeof r&&null!==r?JSON.stringify(r).substring(0,128):r);return t}catch(e){return t}}getEventCategory(){return t.info}constructor(e){super(e.component),r(this,"type",void 0),r(this,"configData",void 0),r(this,"target",void 0),r(this,"issuer",void 0),r(this,"isExpress",void 0),r(this,"expressPage",void 0),r(this,"isStoredPaymentMethod",void 0),r(this,"brand",void 0),r(this,"selectedValue",void 0),r(this,"validationErrorCode",void 0),r(this,"validationErrorMessage",void 0),r(this,"cdnUrl",void 0),this.type=e.type,e.target&&(this.target=e.target),e.issuer&&(this.issuer=e.issuer),void 0!==e.isStoredPaymentMethod&&(this.isStoredPaymentMethod=e.isStoredPaymentMethod),void 0!==e.isExpress&&(this.isExpress=e.isExpress),e.expressPage&&(this.expressPage=e.expressPage),e.brand&&(this.brand=e.brand),e.cdnUrl&&(this.cdnUrl=e.cdnUrl),e.selectedValue&&(this.selectedValue=e.selectedValue),e.validationErrorCode&&(this.validationErrorCode=e.validationErrorCode),e.validationErrorMessage&&(this.validationErrorMessage=e.validationErrorMessage),"rendered"===this.type&&(this.configData=this.createAnalyticsConfigData(null==e?void 0:e.configData)),"validationError"===this.type&&(this.validationErrorCode=o(this.validationErrorCode,this.target))}}export{s as AnalyticsInfoEvent,d as InfoEventType,i as UiTarget};
|
|
2
2
|
//# sourceMappingURL=AnalyticsInfoEvent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnalyticsInfoEvent.js","sources":["../../../../../src/core/Analytics/events/AnalyticsInfoEvent.ts"],"sourcesContent":["import { AbstractAnalyticsEvent, AnalyticsEventCategory } from './AbstractAnalyticsEvent';\nimport { mapErrorCodesForAnalytics } from '../utils';\n\ntype AnalyticsInfoEventProps = {\n type: InfoEventType;\n component: string;\n target?: UiTarget;\n issuer?: string;\n isExpress?: boolean;\n expressPage?: string;\n isStoredPaymentMethod?: boolean;\n brand?: string;\n validationErrorCode?: string;\n validationErrorMessage?: string;\n configData?: Record<string, any>;\n cdnUrl?: string;\n selectedValue?: string;\n};\n\nexport enum UiTarget {\n instantPaymentButton = 'instant_payment_button',\n dualBrandButton = 'dual_brand_button',\n fastlaneSignupConsentToggle = 'fastlane_signup_consent_toggle',\n otherPaymentMethodButton = 'otherpaymentmethod_button',\n featuredIssuer = 'featured_issuer',\n list = 'list',\n listSearch = 'list_search',\n qrDownloadButton = 'qr_download_button',\n cardNumber = 'card_number',\n
|
|
1
|
+
{"version":3,"file":"AnalyticsInfoEvent.js","sources":["../../../../../src/core/Analytics/events/AnalyticsInfoEvent.ts"],"sourcesContent":["import { AbstractAnalyticsEvent, AnalyticsEventCategory } from './AbstractAnalyticsEvent';\nimport { mapErrorCodesForAnalytics } from '../utils';\n\ntype AnalyticsInfoEventProps = {\n type: InfoEventType;\n component: string;\n target?: UiTarget;\n issuer?: string;\n isExpress?: boolean;\n expressPage?: string;\n isStoredPaymentMethod?: boolean;\n brand?: string;\n validationErrorCode?: string;\n validationErrorMessage?: string;\n configData?: Record<string, any>;\n cdnUrl?: string;\n selectedValue?: string;\n};\n\nexport enum UiTarget {\n instantPaymentButton = 'instant_payment_button',\n dualBrandButton = 'dual_brand_button',\n fastlaneSignupConsentToggle = 'fastlane_signup_consent_toggle',\n otherPaymentMethodButton = 'otherpaymentmethod_button',\n featuredIssuer = 'featured_issuer',\n list = 'list',\n listSearch = 'list_search',\n qrDownloadButton = 'qr_download_button',\n segmentedControl = 'segmented_control',\n cardNumber = 'card_number',\n expiryDate = 'expiry_date',\n expiryMonth = 'expiry_month',\n expiryYear = 'expiry_year',\n securityCode = 'security_code'\n}\n\nexport enum InfoEventType {\n /** When a UI element is clicked */\n clicked = 'clicked',\n /** When a component is rendered in the browser (e.g. render() method is called) */\n rendered = 'rendered',\n /** When a list item is selected (e.g. issuer list) */\n selected = 'selected',\n /** When there is a validation issue with the input */\n validationError = 'validationError',\n /** When input gets focus */\n focus = 'focus',\n /** When input gets unfocus */\n unfocus = 'unfocus',\n /** When iframe fields are configured */\n configured = 'configured',\n /** When a dropdown list is displayed */\n displayed = 'displayed',\n /** When shopper utilizes an input field to search for values (e.g. issuer list) */\n input = 'input',\n /** When shopper clicks to download the image (e.g. QR code image) */\n download = 'download',\n sdkDownloadInitiated = 'sdkDownloadInitiated',\n sdkDownloadFailed = 'sdkDownloadFailed',\n sdkDownloadAborted = 'sdkDownloadAborted',\n sdkDownloadCompleted = 'sdkDownloadCompleted',\n Initialized = 'initialized',\n LookupStarted = 'lookupStarted',\n LookupUserNotFound = 'lookupUserNotFound',\n OtpStarted = 'otpStarted',\n OtpSucceeded = 'otpSucceeded',\n OtpCanceled = 'otpCanceled',\n OtpFailed = 'otpFailed',\n AddressSelectorClicked = 'addressSelectorClicked',\n AddressSelectorClosed = 'addressSelectorClosed',\n AddressChanged = 'addressChanged'\n}\n\nexport class AnalyticsInfoEvent extends AbstractAnalyticsEvent {\n /**\n * Analytics event type\n */\n private readonly type: InfoEventType;\n\n /**\n * Component config data set by the merchant. Sent only in 'rendered' events\n * @private\n */\n private readonly configData?: Record<string, string | boolean>;\n private readonly target?: UiTarget;\n private readonly issuer?: string;\n private readonly isExpress?: boolean;\n private readonly expressPage?: string;\n private readonly isStoredPaymentMethod?: boolean;\n private readonly brand?: string;\n private readonly selectedValue?: string;\n private readonly validationErrorCode?: string;\n private readonly validationErrorMessage?: string;\n\n /**\n * Third party script URL's (e.g. Apple Pay)\n */\n public cdnUrl?: string;\n\n constructor(props: AnalyticsInfoEventProps) {\n super(props.component);\n\n this.type = props.type;\n\n if (props.target) this.target = props.target;\n if (props.issuer) this.issuer = props.issuer;\n if (props.isStoredPaymentMethod !== undefined) this.isStoredPaymentMethod = props.isStoredPaymentMethod;\n if (props.isExpress !== undefined) this.isExpress = props.isExpress;\n if (props.expressPage) this.expressPage = props.expressPage;\n if (props.brand) this.brand = props.brand;\n if (props.cdnUrl) this.cdnUrl = props.cdnUrl;\n if (props.selectedValue) this.selectedValue = props.selectedValue;\n if (props.validationErrorCode) this.validationErrorCode = props.validationErrorCode;\n if (props.validationErrorMessage) this.validationErrorMessage = props.validationErrorMessage;\n if (this.type === InfoEventType.rendered) {\n this.configData = this.createAnalyticsConfigData(props?.configData);\n }\n\n // Some of the more generic validation error codes required combination with target to retrieve a specific code\n if (this.type === InfoEventType.validationError) {\n this.validationErrorCode = mapErrorCodesForAnalytics(this.validationErrorCode, this.target);\n }\n }\n\n /**\n * Set of properties that must not be included when creating the configData for Analytics\n * @private\n */\n private get configDataExcludedFields() {\n const DROPIN_FIELDS = ['paymentMethodsConfiguration'];\n const FIELDS_INJECTED_BY_DROPIN = [\n 'elementRef',\n 'isDropin',\n 'oneClick',\n 'storedPaymentMethodId',\n 'paymentMethodId',\n 'isInstantPayment',\n 'type'\n ];\n const PII_FIELDS = ['data', 'holderName', 'shopperEmail', 'email', 'telephoneNumber', 'clickToPayConfiguration'];\n\n /**\n * TODO: Many unit tests are passing 'modules' as props, which leads to circular structure issue\n * The components must use the 'modules' from the core and not from the props\n */\n const UNIT_TEST_FIELDS = ['modules', 'i18n'];\n\n return [...DROPIN_FIELDS, ...FIELDS_INJECTED_BY_DROPIN, ...PII_FIELDS, ...UNIT_TEST_FIELDS];\n }\n\n /**\n * Creates a serializable analytics payload from the given config object.\n * Functions are replaced with 'function', and objects/arrays are stringified.\n */\n private createAnalyticsConfigData(config: Record<string, any>) {\n if (!config) return {};\n\n const MAX_STRING_LENGTH = 128;\n const result: Record<string, string> = {};\n\n try {\n for (const [key, value] of Object.entries(config)) {\n if (!this.configDataExcludedFields.includes(key)) {\n if (typeof value === 'function') {\n result[key] = 'function';\n } else if (Array.isArray(value)) {\n result[key] = value.join(', ').substring(0, MAX_STRING_LENGTH);\n } else if (typeof value === 'object' && value !== null) {\n result[key] = JSON.stringify(value).substring(0, MAX_STRING_LENGTH);\n } else {\n result[key] = value;\n }\n }\n }\n\n return result;\n } catch (error: unknown) {\n if (process.env.NODE_ENV === 'development') console.warn('AnalyticsInfoEvent: Error when creating configData\\n', error);\n return result;\n }\n }\n\n public getEventCategory(): AnalyticsEventCategory {\n return AnalyticsEventCategory.info;\n }\n}\n"],"names":["UiTarget","InfoEventType","AnalyticsInfoEvent","AbstractAnalyticsEvent","configDataExcludedFields","createAnalyticsConfigData","config","result","key","value","Object","entries","this","includes","Array","isArray","join","substring","JSON","stringify","error","getEventCategory","AnalyticsEventCategory","info","constructor","props","super","component","_define_property","type","configData","target","issuer","isExpress","expressPage","isStoredPaymentMethod","brand","selectedValue","validationErrorCode","validationErrorMessage","cdnUrl","undefined","mapErrorCodesForAnalytics"],"mappings":"iRAmBO,IAAAA,EAAKA,SAAAA,GAAAA,2fAAAA,CAeZ,CAfYA,CAeZ,CAAA,GAEOC,EAAKA,SAAAA,GAAAA,OACyBA,EAAA,QAAA,UAEgDA,EAAA,SAAA,WAE7BA,EAAA,SAAA,WAEAA,EAAA,gBAAA,kBAE1BA,EAAA,MAAA,QAEEA,EAAA,QAAA,UAEUA,EAAA,WAAA,aAEAA,EAAA,UAAA,YAE2CA,EAAA,MAAA,QAEdA,EAAA,SAAA,+gBAnB3DA,CAmCZ,CAnCYA,CAmCZ,CAAA,GAEO,MAAMC,UAA2BC,EAuDpC,4BAAYC,GAmBR,MAAO,CAlBgB,8BAEnB,aACA,WACA,WACA,wBACA,kBACA,mBACA,OAEgB,OAAQ,aAAc,eAAgB,QAAS,kBAAmB,0BAM5D,UAAW,OAGzC,CAMQC,yBAAAA,CAA0BC,GAC9B,IAAKA,EAAQ,MAAO,CAAA,EAEpB,MACMC,EAAiC,CAAA,EAEvC,IACI,IAAK,MAAOC,EAAKC,KAAUC,OAAOC,QAAQL,GACjCM,KAAKR,yBAAyBS,SAASL,KACnB,mBAAVC,EACPF,EAAOC,GAAO,WACPM,MAAMC,QAAQN,GACrBF,EAAOC,GAAOC,EAAMO,KAAK,MAAMC,UAAU,EAT/B,KAWVV,EAAOC,GADiB,iBAAVC,GAAgC,OAAVA,EACtBS,KAAKC,UAAUV,GAAOQ,UAAU,EAXpC,KAaIR,GAK1B,OAAOF,CACX,CAAE,MAAOa,GAEL,OAAOb,CACX,CACJ,CAEOc,gBAAAA,GACH,OAAOC,EAAuBC,IAClC,CArFA,WAAAC,CAAYC,GACRC,MAAMD,EAAME,WAvBhBC,EAAAhB,KAAiBiB,eAMjBD,OAAiBE,qBACjBF,EAAAhB,KAAiBmB,iBACjBH,EAAAhB,KAAiBoB,cAAjB,GACAJ,EAAAhB,KAAiBqB,iBAAjB,GACAL,OAAiBM,mBAAjB,GACAN,EAAAhB,KAAiBuB,6BAAjB,GACAP,OAAiBQ,aAAjB,GACAR,EAAAhB,KAAiByB,wBACjBT,OAAiBU,8BACjBV,EAAAhB,KAAiB2B,iCAKjBX,EAAAhB,KAAO4B,iBAKH5B,KAAKiB,KAAOJ,EAAMI,KAEdJ,EAAMM,SAAQnB,KAAKmB,OAASN,EAAMM,QAClCN,EAAMO,SAAQpB,KAAKoB,OAASP,EAAMO,aACFS,IAAhChB,EAAMU,wBAAqCvB,KAAKuB,sBAAwBV,EAAMU,4BAC1DM,IAApBhB,EAAMQ,YAAyBrB,KAAKqB,UAAYR,EAAMQ,WACtDR,EAAMS,cAAatB,KAAKsB,YAAcT,EAAMS,aAC5CT,EAAMW,QAAOxB,KAAKwB,MAAQX,EAAMW,OAChCX,EAAMe,SAAQ5B,KAAK4B,OAASf,EAAMe,QAClCf,EAAMY,gBAAezB,KAAKyB,cAAgBZ,EAAMY,eAChDZ,EAAMa,sBAAqB1B,KAAK0B,oBAAsBb,EAAMa,qBAC5Db,EAAMc,yBAAwB3B,KAAK2B,uBAAyBd,EAAMc,wBACzD,aAAT3B,KAAKiB,OACLjB,KAAKkB,WAAalB,KAAKP,0BAA0BoB,eAAAA,EAAOK,aAI/C,oBAATlB,KAAKiB,OACLjB,KAAK0B,oBAAsBI,EAA0B9B,KAAK0B,oBAAqB1B,KAAKmB,QAE5F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnalyticsLogEvent.js","sources":["../../../../../src/core/Analytics/events/AnalyticsLogEvent.ts"],"sourcesContent":["import { AbstractAnalyticsEvent, AnalyticsEventCategory } from './AbstractAnalyticsEvent';\nimport type { PaymentAction } from '../../../types/global-types';\n\ntype AnalyticsLogEventProps = {\n type: LogEventType;\n subType?: LogEventSubtype;\n component: string;\n message: string;\n result?: string;\n};\n\nexport enum LogEventType {\n action = 'action',\n submit = 'submit',\n redirect = 'redirect',\n threeDS2 = 'threeDS2',\n closed = 'closed'\n}\n\nexport enum LogEventSubtype {\n challengeIframeLoaded = 'challengeIframeLoaded',\n challengeDataSentWeb = 'challengeDataSentWeb',\n challengeCompleted = 'challengeCompleted',\n fingerprintDataSentWeb = 'fingerprintDataSentWeb',\n fingerprintCompleted = 'fingerprintCompleted',\n fingerprintIframeLoaded = 'fingerprintIframeLoaded',\n threeDS2 = 'threeDS2',\n redirect = 'redirect',\n voucher = 'voucher',\n await = 'awat',\n qrCode = 'qrCode',\n bankTransfer = 'bankTransfer',\n sdk = 'sdk'\n}\n\nexport class AnalyticsLogEvent extends AbstractAnalyticsEvent {\n private readonly type: LogEventType;\n private readonly subType: LogEventSubtype;\n\n private readonly message?: string;\n private readonly result?: string;\n\n constructor(props: AnalyticsLogEventProps) {\n super(props.component);\n\n this.type = props.type;\n this.message = props.message;\n\n if (props.subType) this.subType = props.subType;\n if (props.result) this.result = props.result;\n }\n\n public getEventCategory(): AnalyticsEventCategory {\n return AnalyticsEventCategory.log;\n }\n\n public static getSubtypeFromActionType(type: PaymentAction['type']): LogEventSubtype {\n return LogEventSubtype[type];\n }\n}\n"],"names":["LogEventType","LogEventSubtype","AnalyticsLogEvent","AbstractAnalyticsEvent","getEventCategory","AnalyticsEventCategory","log","getSubtypeFromActionType","type","constructor","props","super","component","_define_property","this","subType","message","result"],"mappings":"yNAWO,IAAAA,EAAKA,SAAAA,GAAAA,yGAAAA,CAMX,CANWA,CAMX,CAAA,GAEMC,EAAKA,SAAAA,GAAAA,8aAAAA,CAcX,CAdWA,CAcX,CAAA,GAEM,MAAMC,UAA0BC,EAiB5BC,gBAAAA,GACH,OAAOC,EAAuBC,GAClC,CAEA,+BAAcC,CAAyBC,GACnC,OAAOP,EAAgBO,EAC3B,CAhBA,WAAAC,CAAYC,GACRC,MAAMD,EAAME,WAPhBC,EAAAC,KAAiBN,YAAjB,GACAK,EAAAC,KAAiBC,
|
|
1
|
+
{"version":3,"file":"AnalyticsLogEvent.js","sources":["../../../../../src/core/Analytics/events/AnalyticsLogEvent.ts"],"sourcesContent":["import { AbstractAnalyticsEvent, AnalyticsEventCategory } from './AbstractAnalyticsEvent';\nimport type { PaymentAction } from '../../../types/global-types';\n\ntype AnalyticsLogEventProps = {\n type: LogEventType;\n subType?: LogEventSubtype;\n component: string;\n message: string;\n result?: string;\n};\n\nexport enum LogEventType {\n action = 'action',\n submit = 'submit',\n redirect = 'redirect',\n threeDS2 = 'threeDS2',\n closed = 'closed'\n}\n\nexport enum LogEventSubtype {\n challengeIframeLoaded = 'challengeIframeLoaded',\n challengeDataSentWeb = 'challengeDataSentWeb',\n challengeCompleted = 'challengeCompleted',\n fingerprintDataSentWeb = 'fingerprintDataSentWeb',\n fingerprintCompleted = 'fingerprintCompleted',\n fingerprintIframeLoaded = 'fingerprintIframeLoaded',\n threeDS2 = 'threeDS2',\n redirect = 'redirect',\n voucher = 'voucher',\n await = 'awat',\n qrCode = 'qrCode',\n bankTransfer = 'bankTransfer',\n sdk = 'sdk'\n}\n\nexport class AnalyticsLogEvent extends AbstractAnalyticsEvent {\n private readonly type: LogEventType;\n private readonly subType: LogEventSubtype;\n\n private readonly message?: string;\n private readonly result?: string;\n\n constructor(props: AnalyticsLogEventProps) {\n super(props.component);\n\n this.type = props.type;\n this.message = props.message;\n\n if (props.subType) this.subType = props.subType;\n if (props.result) this.result = props.result;\n }\n\n public getEventCategory(): AnalyticsEventCategory {\n return AnalyticsEventCategory.log;\n }\n\n public static getSubtypeFromActionType(type: PaymentAction['type']): LogEventSubtype {\n return LogEventSubtype[type];\n }\n}\n"],"names":["LogEventType","LogEventSubtype","AnalyticsLogEvent","AbstractAnalyticsEvent","getEventCategory","AnalyticsEventCategory","log","getSubtypeFromActionType","type","constructor","props","super","component","_define_property","this","subType","message","result"],"mappings":"yNAWO,IAAAA,EAAKA,SAAAA,GAAAA,yGAAAA,CAMX,CANWA,CAMX,CAAA,GAEMC,EAAKA,SAAAA,GAAAA,8aAAAA,CAcX,CAdWA,CAcX,CAAA,GAEM,MAAMC,UAA0BC,EAiB5BC,gBAAAA,GACH,OAAOC,EAAuBC,GAClC,CAEA,+BAAcC,CAAyBC,GACnC,OAAOP,EAAgBO,EAC3B,CAhBA,WAAAC,CAAYC,GACRC,MAAMD,EAAME,WAPhBC,EAAAC,KAAiBN,YAAjB,GACAK,EAAAC,KAAiBC,kBAEjBF,EAAAC,KAAiBE,kBACjBH,EAAAC,KAAiBG,iBAKbH,KAAKN,KAAOE,EAAMF,KAClBM,KAAKE,QAAUN,EAAMM,QAEjBN,EAAMK,UAASD,KAAKC,QAAUL,EAAMK,SACpCL,EAAMO,SAAQH,KAAKG,OAASP,EAAMO,OAC1C"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{errorCodeMapping as t}from"./constants.js";import{digitsOnlyFormatter as
|
|
1
|
+
import{errorCodeMapping as t}from"./constants.js";import{digitsOnlyFormatter as o}from"../../utils/Formatters/formatters.js";import{ERROR_FIELD_REQUIRED as r,ERROR_INVALID_FORMAT_EXPECTS as i}from"../Errors/constants.js";const c=(c,e)=>{var n,p;if(c===r||c===i)return null!==(p=t[`${c}.${e}`])&&void 0!==p?p:c;let a=null!==(n=t[c])&&void 0!==n?n:c;return isNaN(Number(a))&&(a=o(a)),a},e=t=>t?["applicationInfo","checkoutAttemptId"].reduce((o,r)=>"applicationInfo"===r?(void 0!==t.applicationInfo&&(o.applicationInfo=t.applicationInfo),o):("checkoutAttemptId"===r&&void 0!==t.checkoutAttemptId&&(o.checkoutAttemptId=t.checkoutAttemptId),o),{}):{};export{c as mapErrorCodesForAnalytics,e as processAnalyticsData};
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../src/core/Analytics/utils.ts"],"sourcesContent":["import { errorCodeMapping } from './constants';\nimport { digitsOnlyFormatter } from '../../utils/Formatters/formatters';\nimport { ERROR_FIELD_REQUIRED, ERROR_INVALID_FORMAT_EXPECTS } from '../Errors/constants';\nimport type { AnalyticsOptions } from './types';\n\nexport const mapErrorCodesForAnalytics = (errorCode: string, target: string) => {\n // Some of the more generic error codes required combination with target to retrieve a specific code\n if (errorCode === ERROR_FIELD_REQUIRED || errorCode === ERROR_INVALID_FORMAT_EXPECTS) {\n return errorCodeMapping[`${errorCode}.${target}`] ?? errorCode;\n }\n\n let errCode = errorCodeMapping[errorCode] ?? errorCode;\n\n // If errCode isn't now a number - then we just need to remove any non-digits\n // since the correct error code is already contained within the string e.g. securedField related errors\n if (isNaN(Number(errCode))) {\n errCode = digitsOnlyFormatter(errCode);\n }\n\n return errCode;\n};\n\nexport const processAnalyticsData = (analyticsData?: AnalyticsOptions['analyticsData']): AnalyticsOptions['analyticsData'] => {\n const ALLOWED_ANALYTICS_DATA = ['applicationInfo', 'checkoutAttemptId'];\n\n if (!analyticsData) return {};\n\n return
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../src/core/Analytics/utils.ts"],"sourcesContent":["import { errorCodeMapping } from './constants';\nimport { digitsOnlyFormatter } from '../../utils/Formatters/formatters';\nimport { ERROR_FIELD_REQUIRED, ERROR_INVALID_FORMAT_EXPECTS } from '../Errors/constants';\nimport type { AnalyticsOptions } from './types';\n\nexport const mapErrorCodesForAnalytics = (errorCode: string, target: string) => {\n // Some of the more generic error codes required combination with target to retrieve a specific code\n if (errorCode === ERROR_FIELD_REQUIRED || errorCode === ERROR_INVALID_FORMAT_EXPECTS) {\n return errorCodeMapping[`${errorCode}.${target}`] ?? errorCode;\n }\n\n let errCode = errorCodeMapping[errorCode] ?? errorCode;\n\n // If errCode isn't now a number - then we just need to remove any non-digits\n // since the correct error code is already contained within the string e.g. securedField related errors\n if (isNaN(Number(errCode))) {\n errCode = digitsOnlyFormatter(errCode);\n }\n\n return errCode;\n};\n\nexport const processAnalyticsData = (analyticsData?: AnalyticsOptions['analyticsData']): AnalyticsOptions['analyticsData'] => {\n const ALLOWED_ANALYTICS_DATA: Array<keyof AnalyticsOptions['analyticsData']> = ['applicationInfo', 'checkoutAttemptId'];\n\n if (!analyticsData) return {};\n\n return ALLOWED_ANALYTICS_DATA.reduce<AnalyticsOptions['analyticsData']>((acc, prop) => {\n if (prop === 'applicationInfo') {\n if (analyticsData.applicationInfo !== undefined) acc.applicationInfo = analyticsData.applicationInfo;\n return acc;\n }\n\n if (prop === 'checkoutAttemptId') {\n if (analyticsData.checkoutAttemptId !== undefined) acc.checkoutAttemptId = analyticsData.checkoutAttemptId;\n }\n\n return acc;\n }, {});\n};\n"],"names":["mapErrorCodesForAnalytics","errorCode","target","errorCodeMapping","ERROR_FIELD_REQUIRED","ERROR_INVALID_FORMAT_EXPECTS","errCode","isNaN","Number","digitsOnlyFormatter","processAnalyticsData","analyticsData","reduce","acc","prop","undefined","applicationInfo","checkoutAttemptId"],"mappings":"6NAKO,MAAMA,EAA4B,CAACC,EAAmBC,KAM3CC,IAAAA,EAHHA,EADX,GAAIF,IAAcG,GAAwBH,IAAcI,EACpD,OAAiD,QAA1CF,EAAAA,EAAiB,GAAGF,KAAaC,YAAjCC,IAAAA,EAAAA,EAA8CF,EAGzD,IAAIK,EAAqC,QAA3BH,EAAAA,EAAiBF,cAAjBE,EAAAA,EAA+BF,EAQ7C,OAJIM,MAAMC,OAAOF,MACbA,EAAUG,EAAoBH,IAG3BA,GAGEI,EAAwBC,GAG5BA,EAF0E,CAAC,kBAAmB,qBAIrEC,OAA0C,CAACC,EAAKC,IAC7D,oBAATA,QACsCC,IAAlCJ,EAAcK,kBAA+BH,EAAIG,gBAAkBL,EAAcK,iBAC9EH,IAGE,sBAATC,QACwCC,IAApCJ,EAAcM,oBAAiCJ,EAAII,kBAAoBN,EAAcM,mBAGtFJ,GACR,CAAA,GAbwB,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import s from"../Services/sessions/make-payment.js";import e from"../Services/sessions/submit-details.js";import t from"../Services/sessions/setup-session.js";import i from"../Services/sessions/check-balance.js";import o from"../../utils/Storage.js";import r from"../Services/sessions/create-order.js";import{sanitizeSession as n}from"./utils.js";import a from"../Services/sessions/cancel-order.js";import c from"../../utils/browserInfo.js";function h(s,e,t){return e in s?Object.defineProperty(s,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):s[e]=t,s}function u(s){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{},i=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(t).filter(function(s){return Object.getOwnPropertyDescriptor(t,s).enumerable}))),i.forEach(function(e){h(s,e,t[e])})}return s}function l(s,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(e)):function(s){var e=Object.keys(s);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(s);e.push.apply(e,t)}return e}(Object(e)).forEach(function(t){Object.defineProperty(s,t,Object.getOwnPropertyDescriptor(e,t))}),s}class p{get shopperLocale(){return this.session.shopperLocale}get id(){return this.session.id}get data(){return this.session.sessionData}updateSessionData(s){this.session.sessionData=s,this.storeSession()}setupSession(s){const e=l(u({},s),{browserInfo:c()});return t(this,e).then(s=>(s.configuration&&(this.configuration=u({},s.configuration)),s.sessionData&&this.updateSessionData(s.sessionData),s))}submitPayment(e){return s(e,this).then(s=>(s.sessionData&&this.updateSessionData(s.sessionData),s))}submitDetails(s){return e(s,this).then(s=>(s.sessionData&&this.updateSessionData(s.sessionData),s))}checkBalance(s){return i(s,this).then(s=>(s.sessionData&&this.updateSessionData(s.sessionData),s))}createOrder(){return r(this).then(s=>(s.sessionData&&this.updateSessionData(s.sessionData),s))}cancelOrder(s){return a(s.order,this).then(s=>(s.sessionData&&this.updateSessionData(s.sessionData),s))}getStoredSession(){const s=this.storage.get();return this.id===(null==s?void 0:s.id)?s:this.session}storeSession(){this.storage.set({id:this.session.id,sessionData:this.session.sessionData})}removeStoredSession(){this.storage.remove()}constructor(s,e,t){h(this,"
|
|
1
|
+
import s from"../Services/sessions/make-payment.js";import e from"../Services/sessions/submit-details.js";import t from"../Services/sessions/setup-session.js";import i from"../Services/sessions/check-balance.js";import o from"../../utils/Storage.js";import r from"../Services/sessions/create-order.js";import{sanitizeSession as n}from"./utils.js";import a from"../Services/sessions/cancel-order.js";import c from"../../utils/browserInfo.js";function h(s,e,t){return e in s?Object.defineProperty(s,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):s[e]=t,s}function u(s){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{},i=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(t).filter(function(s){return Object.getOwnPropertyDescriptor(t,s).enumerable}))),i.forEach(function(e){h(s,e,t[e])})}return s}function l(s,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(e)):function(s){var e=Object.keys(s);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(s);e.push.apply(e,t)}return e}(Object(e)).forEach(function(t){Object.defineProperty(s,t,Object.getOwnPropertyDescriptor(e,t))}),s}class p{get shopperLocale(){return this.session.shopperLocale}get id(){return this.session.id}get data(){return this.session.sessionData}updateSessionData(s){this.session.sessionData=s,this.storeSession()}setupSession(s){const e=l(u({},s),{browserInfo:c()});return t(this,e).then(s=>(s.configuration&&(this.configuration=u({},s.configuration)),s.sessionData&&this.updateSessionData(s.sessionData),s))}submitPayment(e){return s(e,this).then(s=>(s.sessionData&&this.updateSessionData(s.sessionData),s))}submitDetails(s){return e(s,this).then(s=>(s.sessionData&&this.updateSessionData(s.sessionData),s))}checkBalance(s){return i(s,this).then(s=>(s.sessionData&&this.updateSessionData(s.sessionData),s))}createOrder(){return r(this).then(s=>(s.sessionData&&this.updateSessionData(s.sessionData),s))}cancelOrder(s){return a(s.order,this).then(s=>(s.sessionData&&this.updateSessionData(s.sessionData),s))}getStoredSession(){const s=this.storage.get();return this.id===(null==s?void 0:s.id)?s:this.session}storeSession(){this.storage.set({id:this.session.id,sessionData:this.session.sessionData})}removeStoredSession(){this.storage.remove()}constructor(s,e,t){h(this,"storage",void 0),h(this,"session",void 0),h(this,"clientKey",void 0),h(this,"loadingContext",void 0),h(this,"configuration",void 0);const i=n(s);if(!e)throw new Error("No clientKey available");if(!t)throw new Error("No loadingContext available");this.storage=new o("session","localStorage"),this.clientKey=e,this.loadingContext=t,this.session=i,this.session.sessionData?this.storeSession():this.session=this.getStoredSession()}}export{p as default};
|
|
2
2
|
//# sourceMappingURL=CheckoutSession.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckoutSession.js","sources":["../../../../src/core/CheckoutSession/CheckoutSession.ts"],"sourcesContent":["import makePayment from '../Services/sessions/make-payment';\nimport submitDetails from '../Services/sessions/submit-details';\nimport setupSession from '../Services/sessions/setup-session';\nimport checkBalance from '../Services/sessions/check-balance';\nimport Storage from '../../utils/Storage';\nimport createOrder from '../Services/sessions/create-order';\nimport { sanitizeSession } from './utils';\nimport {\n CheckoutSession,\n CheckoutSessionBalanceResponse,\n CheckoutSessionDetailsResponse,\n CheckoutSessionOrdersResponse,\n CheckoutSessionPaymentResponse,\n CheckoutSessionSetupResponse,\n SessionConfiguration,\n SetupSessionOptions\n} from './types';\nimport cancelOrder from '../Services/sessions/cancel-order';\nimport { onOrderCancelData } from '../../components/Dropin/types';\nimport type { AdditionalDetailsData } from '../types';\nimport collectBrowserInfo from '../../utils/browserInfo';\n\nclass Session {\n private readonly
|
|
1
|
+
{"version":3,"file":"CheckoutSession.js","sources":["../../../../src/core/CheckoutSession/CheckoutSession.ts"],"sourcesContent":["import makePayment from '../Services/sessions/make-payment';\nimport submitDetails from '../Services/sessions/submit-details';\nimport setupSession from '../Services/sessions/setup-session';\nimport checkBalance from '../Services/sessions/check-balance';\nimport Storage from '../../utils/Storage';\nimport createOrder from '../Services/sessions/create-order';\nimport { sanitizeSession } from './utils';\nimport {\n CheckoutSession,\n CheckoutSessionBalanceResponse,\n CheckoutSessionDetailsResponse,\n CheckoutSessionOrdersResponse,\n CheckoutSessionPaymentResponse,\n CheckoutSessionSetupResponse,\n SessionConfiguration,\n SetupSessionOptions\n} from './types';\nimport cancelOrder from '../Services/sessions/cancel-order';\nimport { onOrderCancelData } from '../../components/Dropin/types';\nimport type { AdditionalDetailsData } from '../types';\nimport collectBrowserInfo from '../../utils/browserInfo';\n\nclass Session {\n private readonly storage: Storage<CheckoutSession>;\n\n public readonly session: CheckoutSession;\n public readonly clientKey: string;\n public readonly loadingContext: string;\n public configuration: SessionConfiguration;\n\n constructor(rawSession: Partial<CheckoutSession>, clientKey: string, loadingContext: string) {\n const session = sanitizeSession(rawSession) as CheckoutSession;\n\n if (!clientKey) throw new Error('No clientKey available');\n if (!loadingContext) throw new Error('No loadingContext available');\n\n this.storage = new Storage('session', 'localStorage');\n this.clientKey = clientKey;\n this.loadingContext = loadingContext;\n this.session = session;\n\n if (!this.session.sessionData) {\n this.session = this.getStoredSession();\n } else {\n this.storeSession();\n }\n }\n\n get shopperLocale() {\n return this.session.shopperLocale;\n }\n\n get id() {\n return this.session.id;\n }\n\n get data() {\n return this.session.sessionData;\n }\n\n /**\n * Updates the session.data with the latest data blob\n */\n private updateSessionData(latestData: string): void {\n this.session.sessionData = latestData;\n this.storeSession();\n }\n\n /**\n * Fetches data from a session\n */\n setupSession(options: SetupSessionOptions): Promise<CheckoutSessionSetupResponse> {\n const mergedOptions = { ...options, browserInfo: collectBrowserInfo() };\n return setupSession(this, mergedOptions).then(response => {\n if (response.configuration) {\n this.configuration = { ...response.configuration };\n }\n\n if (response.sessionData) {\n this.updateSessionData(response.sessionData);\n }\n\n return response;\n });\n }\n\n /**\n * Submits a session payment\n */\n submitPayment(data): Promise<CheckoutSessionPaymentResponse> {\n return makePayment(data, this).then(response => {\n if (response.sessionData) {\n this.updateSessionData(response.sessionData);\n }\n\n return response;\n });\n }\n\n /**\n * Submits session payment additional details\n */\n submitDetails(data: AdditionalDetailsData['data']): Promise<CheckoutSessionDetailsResponse> {\n return submitDetails(data, this).then(response => {\n if (response.sessionData) {\n this.updateSessionData(response.sessionData);\n }\n\n return response;\n });\n }\n\n /**\n * Checks the balance for a payment method\n */\n checkBalance(data): Promise<CheckoutSessionBalanceResponse> {\n return checkBalance(data, this).then(response => {\n if (response.sessionData) {\n this.updateSessionData(response.sessionData);\n }\n\n return response;\n });\n }\n\n /**\n * Creates an order for the current session\n */\n createOrder(): Promise<CheckoutSessionOrdersResponse> {\n return createOrder(this).then(response => {\n if (response.sessionData) {\n this.updateSessionData(response.sessionData);\n }\n\n return response;\n });\n }\n\n /**\n * Cancels an order for the current session\n */\n cancelOrder(data: onOrderCancelData): Promise<CheckoutSessionOrdersResponse> {\n return cancelOrder(data.order, this).then(response => {\n if (response.sessionData) {\n this.updateSessionData(response.sessionData);\n }\n\n return response;\n });\n }\n\n /**\n * Gets the stored session but only if the current id and the stored id match\n */\n getStoredSession(): CheckoutSession {\n const storedSession = this.storage.get();\n return this.id === storedSession?.id ? storedSession : this.session;\n }\n\n /**\n * Stores the session\n */\n storeSession(): void {\n this.storage.set({ id: this.session.id, sessionData: this.session.sessionData });\n }\n\n /**\n * Clears the stored session\n */\n removeStoredSession(): void {\n this.storage.remove();\n }\n}\n\nexport default Session;\n"],"names":["Session","shopperLocale","this","session","id","data","sessionData","updateSessionData","latestData","storeSession","setupSession","options","mergedOptions","_object_spread_props","_object_spread","browserInfo","collectBrowserInfo","then","response","configuration","submitPayment","makePayment","submitDetails","checkBalance","createOrder","cancelOrder","order","getStoredSession","storedSession","storage","get","set","removeStoredSession","remove","constructor","rawSession","clientKey","loadingContext","_define_property","sanitizeSession","Error","Storage"],"mappings":"kuCAsBA,MAAMA,EA0BF,iBAAIC,GACA,OAAOC,KAAKC,QAAQF,aACxB,CAEA,MAAIG,GACA,OAAOF,KAAKC,QAAQC,EACxB,CAEA,QAAIC,GACA,OAAOH,KAAKC,QAAQG,WACxB,CAKQC,iBAAAA,CAAkBC,GACtBN,KAAKC,QAAQG,YAAcE,EAC3BN,KAAKO,cACT,CAKAC,YAAAA,CAAaC,GACT,MAAMC,EAAgBC,EAAAC,EAAA,CAAA,EAAKH,GAAAA,CAASI,YAAaC,MACjD,OAAON,EAAaR,KAAMU,GAAeK,KAAKC,IACtCA,EAASC,gBACTjB,KAAKiB,cAAgBL,EAAA,CAAA,EAAKI,EAASC,gBAGnCD,EAASZ,aACTJ,KAAKK,kBAAkBW,EAASZ,aAG7BY,GAEf,CAKAE,aAAAA,CAAcf,GACV,OAAOgB,EAAYhB,EAAMH,MAAMe,KAAKC,IAC5BA,EAASZ,aACTJ,KAAKK,kBAAkBW,EAASZ,aAG7BY,GAEf,CAKAI,aAAAA,CAAcjB,GACV,OAAOiB,EAAcjB,EAAMH,MAAMe,KAAKC,IAC9BA,EAASZ,aACTJ,KAAKK,kBAAkBW,EAASZ,aAG7BY,GAEf,CAKAK,YAAAA,CAAalB,GACT,OAAOkB,EAAalB,EAAMH,MAAMe,KAAKC,IAC7BA,EAASZ,aACTJ,KAAKK,kBAAkBW,EAASZ,aAG7BY,GAEf,CAKAM,WAAAA,GACI,OAAOA,EAAYtB,MAAMe,KAAKC,IACtBA,EAASZ,aACTJ,KAAKK,kBAAkBW,EAASZ,aAG7BY,GAEf,CAKAO,WAAAA,CAAYpB,GACR,OAAOoB,EAAYpB,EAAKqB,MAAOxB,MAAMe,KAAKC,IAClCA,EAASZ,aACTJ,KAAKK,kBAAkBW,EAASZ,aAG7BY,GAEf,CAKAS,gBAAAA,GACI,MAAMC,EAAgB1B,KAAK2B,QAAQC,MACnC,OAAO5B,KAAKE,MAAOwB,aAAAA,EAAAA,EAAexB,IAAKwB,EAAgB1B,KAAKC,OAChE,CAKAM,YAAAA,GACIP,KAAK2B,QAAQE,IAAI,CAAE3B,GAAIF,KAAKC,QAAQC,GAAIE,YAAaJ,KAAKC,QAAQG,aACtE,CAKA0B,mBAAAA,GACI9B,KAAK2B,QAAQI,QACjB,CA7IA,WAAAC,CAAYC,EAAsCC,EAAmBC,GAPrEC,EAAApC,KAAiB2B,kBAEjBS,EAAApC,KAAgBC,kBAChBmC,EAAApC,KAAgBkC,oBAChBE,EAAApC,KAAgBmC,yBAChBC,EAAApC,KAAOiB,wBAGH,MAAMhB,EAAUoC,EAAgBJ,GAEhC,IAAKC,EAAW,MAAM,IAAII,MAAM,0BAChC,IAAKH,EAAgB,MAAM,IAAIG,MAAM,+BAErCtC,KAAK2B,QAAU,IAAIY,EAAQ,UAAW,gBACtCvC,KAAKkC,UAAYA,EACjBlC,KAAKmC,eAAiBA,EACtBnC,KAAKC,QAAUA,EAEVD,KAAKC,QAAQG,YAGdJ,KAAKO,eAFLP,KAAKC,QAAUD,KAAKyB,kBAI5B"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createContext as e,createElement as t,Fragment as o}from"../../external/preact/dist/preact.js";import{useContext as r,useState as n,useEffect as s,useImperativeHandle as a,useMemo as u}from"../../external/preact/hooks/dist/hooks.js";const m=e(void 0),i=()=>{var e;const t=r(m);if(!t)throw new Error("useAmount must be used within an AmountProvider");return{amount:t.amount,isZeroAuth:0===(null===(e=t.amount)||void 0===e?void 0:e.value)}},d=()=>{const e=r(m);if(!e)throw new Error("useAmount must be used within an AmountProvider");return{secondaryAmount:e.secondaryAmount}},c=({amount:e,secondaryAmount:i,providerRef:d,children:c})=>{const l=r(m),[v,p]=n(e),[A,h]=n(i);s(()=>{p(e)},[e]),a(d,()=>({update:(e,t)=>{p(e),h(t)}}));const f=u(()=>({amount:v,secondaryAmount:A}),[v,A]);return l?t(o,null,c):t(m.Provider,{value:f},c)};export{c as AmountProvider,i as useAmount,d as useSecondaryAmount};
|
|
2
|
+
//# sourceMappingURL=AmountProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AmountProvider.js","sources":["../../../../src/core/Context/AmountProvider.tsx"],"sourcesContent":["import { h, createContext, Fragment } from 'preact';\nimport { useContext, useEffect, useImperativeHandle, useMemo, useState } from 'preact/hooks';\nimport type { ComponentChildren, RefObject } from 'preact';\nimport type { PaymentAmount } from '../../types';\n\ninterface AmountContextValue {\n amount?: PaymentAmount;\n secondaryAmount?: PaymentAmount;\n}\n\nexport interface AmountProviderProps {\n amount?: PaymentAmount;\n secondaryAmount?: PaymentAmount;\n providerRef: RefObject<AmountProviderRef>;\n children: ComponentChildren;\n}\n\nexport interface AmountProviderRef {\n update(newAmount: PaymentAmount, newSecondaryAmount?: PaymentAmount): void;\n}\n\nconst AmountContext = createContext<AmountContextValue | undefined>(undefined);\n\nconst useAmount = (): { amount: PaymentAmount | undefined; isZeroAuth: boolean } => {\n const context = useContext(AmountContext);\n if (!context) {\n throw new Error('useAmount must be used within an AmountProvider');\n }\n\n return {\n amount: context.amount,\n isZeroAuth: context.amount?.value === 0\n };\n};\n\nconst useSecondaryAmount = (): { secondaryAmount: PaymentAmount | undefined } => {\n const context = useContext(AmountContext);\n if (!context) {\n throw new Error('useAmount must be used within an AmountProvider');\n }\n return { secondaryAmount: context.secondaryAmount };\n};\n\nconst AmountProvider = ({ amount, secondaryAmount, providerRef, children }: AmountProviderProps) => {\n const context = useContext(AmountContext);\n\n const [updatedAmount, setUpdatedAmount] = useState<PaymentAmount>(amount);\n const [updatedSecondaryAmount, setUpdatedSecondaryAmount] = useState<PaymentAmount | undefined>(secondaryAmount);\n\n useEffect(() => {\n setUpdatedAmount(amount);\n }, [amount]);\n\n useImperativeHandle(providerRef, () => ({\n update: (newAmount: PaymentAmount, newSecondaryAmount?: PaymentAmount) => {\n setUpdatedAmount(newAmount);\n setUpdatedSecondaryAmount(newSecondaryAmount);\n }\n }));\n\n const contextValue = useMemo(() => ({ amount: updatedAmount, secondaryAmount: updatedSecondaryAmount }), [updatedAmount, updatedSecondaryAmount]);\n\n if (context) {\n return <Fragment>{children}</Fragment>;\n }\n\n return <AmountContext.Provider value={contextValue}>{children}</AmountContext.Provider>;\n};\n\nexport { AmountProvider, useAmount, useSecondaryAmount };\n"],"names":["AmountContext","createContext","undefined","useAmount","context","useContext","Error","amount","isZeroAuth","value","useSecondaryAmount","secondaryAmount","AmountProvider","providerRef","children","updatedAmount","setUpdatedAmount","useState","updatedSecondaryAmount","setUpdatedSecondaryAmount","useEffect","useImperativeHandle","update","newAmount","newSecondaryAmount","contextValue","useMemo","h","Fragment","Provider"],"mappings":"gPAqBA,MAAMA,EAAgBC,OAA8CC,GAE9DC,EAAY,KAQEC,IAAAA,EAPhB,MAAMA,EAAUC,EAAWL,GAC3B,IAAKI,EACD,MAAM,IAAIE,MAAM,mDAGpB,MAAO,CACHC,OAAQH,EAAQG,OAChBC,WAAsC,aAA1BJ,EAAAA,EAAQG,cAARH,IAAAA,SAAAA,EAAgBK,SAI9BC,EAAqB,KACvB,MAAMN,EAAUC,EAAWL,GAC3B,IAAKI,EACD,MAAM,IAAIE,MAAM,mDAEpB,MAAO,CAAEK,gBAAiBP,EAAQO,kBAGhCC,EAAiB,EAAGL,SAAQI,kBAAiBE,cAAaC,eAC5D,MAAMV,EAAUC,EAAWL,IAEpBe,EAAeC,GAAoBC,EAAwBV,IAC3DW,EAAwBC,GAA6BF,EAAoCN,GAEhGS,EAAU,KACNJ,EAAiBT,IAClB,CAACA,IAEJc,EAAoBR,EAAa,KAAA,CAC7BS,OAAQ,CAACC,EAA0BC,KAC/BR,EAAiBO,GACjBJ,EAA0BK,OAIlC,MAAMC,EAAeC,EAAQ,KAAA,CAASnB,OAAQQ,EAAeJ,gBAAiBO,IAA2B,CAACH,EAAeG,IAEzH,OAAId,EACOuB,EAACC,EAAAA,KAAUd,GAGfa,EAAC3B,EAAc6B,SAAQ,CAACpB,MAAOgB,GAAeX"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Resources.js","sources":["../../../../src/core/Context/Resources.ts"],"sourcesContent":["import AdyenCheckoutError from '../Errors/AdyenCheckoutError';\n\nexport interface ImageOptions {\n extension?: string;\n imageFolder?: string;\n resourceContext?: string;\n name?: string;\n parentFolder?: string;\n size?: string;\n subFolder?: string;\n svgOptions?: string;\n type?: string;\n}\n\nexport type GetImageFnType = (name) => string;\n\nexport class Resources {\n private readonly resourceContext: string;\n\n constructor(cdnContext: string) {\n if (!cdnContext) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'Resources module: \"environmentsUrls.cdn\" is not a valid URL');\n }\n this.resourceContext = cdnContext;\n }\n\n private returnImage = ({\n name,\n resourceContext,\n imageFolder = '',\n parentFolder = '',\n extension,\n size = '',\n subFolder = ''\n }: ImageOptions): string => `${resourceContext}images/${imageFolder}${subFolder}${parentFolder}${name}${size}.${extension}`;\n\n private getImageUrl =\n ({ resourceContext, extension = 'svg', ...options }: ImageOptions): GetImageFnType =>\n (name: string): string => {\n const imageOptions: ImageOptions = {\n extension,\n resourceContext,\n imageFolder: 'logos/',\n parentFolder: '',\n name,\n ...options\n };\n\n return this.returnImage(imageOptions);\n };\n\n public getImage(props = {} as ImageOptions) {\n return this.getImageUrl({ ...props, resourceContext: this.resourceContext });\n }\n}\n"],"names":["Resources","getImage","props","this","getImageUrl","_object_spread_props","_object_spread","resourceContext","constructor","cdnContext","_define_property","returnImage","name","imageFolder","parentFolder","extension","size","subFolder","_0","options","imageOptions","AdyenCheckoutError"],"mappings":"y8CAgBO,MAAMA,EAmCFC,QAAAA,CAASC,EAAQ,IACpB,OAAOC,KAAKC,YAAYC,EAAAC,EAAA,CAAA,EAAKJ,GAAAA,CAAOK,gBAAiBJ,KAAKI,kBAC9D,CAlCA,WAAAC,CAAYC,GACR,GAHJC,EAAAP,KAAiBI,
|
|
1
|
+
{"version":3,"file":"Resources.js","sources":["../../../../src/core/Context/Resources.ts"],"sourcesContent":["import AdyenCheckoutError from '../Errors/AdyenCheckoutError';\n\nexport interface ImageOptions {\n extension?: string;\n imageFolder?: string;\n resourceContext?: string;\n name?: string;\n parentFolder?: string;\n size?: string;\n subFolder?: string;\n svgOptions?: string;\n type?: string;\n}\n\nexport type GetImageFnType = (name) => string;\n\nexport class Resources {\n private readonly resourceContext: string;\n\n constructor(cdnContext: string) {\n if (!cdnContext) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'Resources module: \"environmentsUrls.cdn\" is not a valid URL');\n }\n this.resourceContext = cdnContext;\n }\n\n private returnImage = ({\n name,\n resourceContext,\n imageFolder = '',\n parentFolder = '',\n extension,\n size = '',\n subFolder = ''\n }: ImageOptions): string => `${resourceContext}images/${imageFolder}${subFolder}${parentFolder}${name}${size}.${extension}`;\n\n private getImageUrl =\n ({ resourceContext, extension = 'svg', ...options }: ImageOptions): GetImageFnType =>\n (name: string): string => {\n const imageOptions: ImageOptions = {\n extension,\n resourceContext,\n imageFolder: 'logos/',\n parentFolder: '',\n name,\n ...options\n };\n\n return this.returnImage(imageOptions);\n };\n\n public getImage(props = {} as ImageOptions) {\n return this.getImageUrl({ ...props, resourceContext: this.resourceContext });\n }\n}\n"],"names":["Resources","getImage","props","this","getImageUrl","_object_spread_props","_object_spread","resourceContext","constructor","cdnContext","_define_property","returnImage","name","imageFolder","parentFolder","extension","size","subFolder","_0","options","imageOptions","AdyenCheckoutError"],"mappings":"y8CAgBO,MAAMA,EAmCFC,QAAAA,CAASC,EAAQ,IACpB,OAAOC,KAAKC,YAAYC,EAAAC,EAAA,CAAA,EAAKJ,GAAAA,CAAOK,gBAAiBJ,KAAKI,kBAC9D,CAlCA,WAAAC,CAAYC,GACR,GAHJC,EAAAP,KAAiBI,0BASjBG,EAAAP,KAAQQ,cAAc,EAClBC,OACAL,kBACAM,cAAc,GACdC,eAAe,GACfC,YACAC,OAAO,GACPC,YAAY,MACY,GAAGV,WAAyBM,IAAcI,IAAYH,IAAeF,IAAOI,KAAQD,KAEhHL,EAAAP,KAAQC,cACJc,IAAC,IAAAX,gBAAEA,EAAeQ,UAAEA,EAAY,OAAiCG,EAAvBC,EAAAA,EAAAA,EAAAA,wCACzCP,IACG,MAAMQ,EAA6Bd,EAAA,CAC/BS,YACAR,kBACAM,YAAa,SACbC,aAAc,GACdF,QACGO,GAGP,OAAOhB,KAAKQ,YAAYS,OA5BvBX,EACD,MAAM,IAAIY,EAAmB,uBAAwB,+DAEzDlB,KAAKI,gBAAkBE,CAC3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Environment.js","sources":["../../../../src/core/Environment/Environment.ts"],"sourcesContent":["import { ANALYTICS_ENVIRONMENTS, API_ENVIRONMENTS, CDN_ENVIRONMENTS } from './constants';\nimport type { CoreConfiguration } from '../types';\n\nexport const getUrlFromMap = (env: CoreConfiguration['environment'], environmentMap: Record<string, string>, environmentUrl?: string): string => {\n if (environmentUrl) {\n return environmentUrl;\n }\n return environmentMap[env?.toLowerCase()] || environmentMap.fallback;\n};\n\nexport const resolveEnvironments = (environment: CoreConfiguration['environment'], environmentsUrls?: CoreConfiguration['_environmentUrls']) => {\n const apiUrl = getUrlFromMap(environment, API_ENVIRONMENTS, environmentsUrls?.api);\n const analyticsUrl = getUrlFromMap(environment, ANALYTICS_ENVIRONMENTS, environmentsUrls?.analytics);\n const cdnImagesUrl = getUrlFromMap(environment, CDN_ENVIRONMENTS, environmentsUrls?.cdn?.images);\n const cdnTranslationsUrl = getUrlFromMap(environment, CDN_ENVIRONMENTS, environmentsUrls?.cdn?.translations);\n\n return {\n apiUrl,\n analyticsUrl,\n cdnImagesUrl,\n cdnTranslationsUrl\n };\n};\n"],"names":["getUrlFromMap","env","environmentMap","environmentUrl","toLowerCase","fallback","resolveEnvironments","environment","environmentsUrls","apiUrl","API_ENVIRONMENTS","api","analyticsUrl","ANALYTICS_ENVIRONMENTS","analytics","cdnImagesUrl","CDN_ENVIRONMENTS","cdn","images","cdnTranslationsUrl","translations"],"mappings":"oGAGO,MAAMA,EAAgB,CAACC,EAAuCC,EAAwCC,IACrGA,IAGGD,EAAeD,aAAAA,EAAAA,EAAKG,gBAAkBF,EAAeG,UAGnDC,EAAsB,CAACC,EAA+CC,SAGbA,EACMA,EAExE,MAAO,CACHC,OANWT,EAAcO,EAAaG,EAAkBF,
|
|
1
|
+
{"version":3,"file":"Environment.js","sources":["../../../../src/core/Environment/Environment.ts"],"sourcesContent":["import { ANALYTICS_ENVIRONMENTS, API_ENVIRONMENTS, CDN_ENVIRONMENTS } from './constants';\nimport type { CoreConfiguration } from '../types';\n\nexport const getUrlFromMap = (env: CoreConfiguration['environment'], environmentMap: Record<string, string>, environmentUrl?: string): string => {\n if (environmentUrl) {\n return environmentUrl;\n }\n return environmentMap[env?.toLowerCase()] || environmentMap.fallback;\n};\n\nexport const resolveEnvironments = (environment: CoreConfiguration['environment'], environmentsUrls?: CoreConfiguration['_environmentUrls']) => {\n const apiUrl = getUrlFromMap(environment, API_ENVIRONMENTS, environmentsUrls?.api);\n const analyticsUrl = getUrlFromMap(environment, ANALYTICS_ENVIRONMENTS, environmentsUrls?.analytics);\n const cdnImagesUrl = getUrlFromMap(environment, CDN_ENVIRONMENTS, environmentsUrls?.cdn?.images);\n const cdnTranslationsUrl = getUrlFromMap(environment, CDN_ENVIRONMENTS, environmentsUrls?.cdn?.translations);\n\n return {\n apiUrl,\n analyticsUrl,\n cdnImagesUrl,\n cdnTranslationsUrl\n };\n};\n"],"names":["getUrlFromMap","env","environmentMap","environmentUrl","toLowerCase","fallback","resolveEnvironments","environment","environmentsUrls","apiUrl","API_ENVIRONMENTS","api","analyticsUrl","ANALYTICS_ENVIRONMENTS","analytics","cdnImagesUrl","CDN_ENVIRONMENTS","cdn","images","cdnTranslationsUrl","translations"],"mappings":"oGAGO,MAAMA,EAAgB,CAACC,EAAuCC,EAAwCC,IACrGA,IAGGD,EAAeD,aAAAA,EAAAA,EAAKG,gBAAkBF,EAAeG,UAGnDC,EAAsB,CAACC,EAA+CC,SAGbA,EACMA,EAExE,MAAO,CACHC,OANWT,EAAcO,EAAaG,EAAkBF,eAAAA,EAAkBG,KAO1EC,aANiBZ,EAAcO,EAAaM,EAAwBL,eAAAA,EAAkBM,WAOtFC,aANiBf,EAAcO,EAAaS,EAAkBR,SAAqB,QAArBA,EAAAA,EAAkBS,eAAlBT,OAAAA,EAAAA,EAAuBU,QAOrFC,mBANuBnB,EAAcO,EAAaS,EAAkBR,SAAqB,QAArBA,EAAAA,EAAkBS,eAAlBT,OAAAA,EAAAA,EAAuBY"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SRPanel.js","sources":["../../../../src/core/Errors/SRPanel.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { AriaAttributes, SRPanelProps } from './types';\nimport BaseElement from '../../components/internal/BaseElement/BaseElement';\nimport { SRMessages, SRMessagesRef } from './SRMessages';\nimport type { ICore } from '../types';\nimport './SRPanel.scss';\n\n/**\n * A panel meant to hold messages that will be read out by ScreenReaders on an aria-live=\"polite\" basis\n * Expects a string or string array of message to add to the panel to be read out\n * For testing purposes can be made visible\n */\nexport class SRPanel extends BaseElement<SRPanelProps> {\n public static type = 'srPanel';\n\n public static defaultProps: Partial<SRPanelProps> = {\n enabled: true,\n node: 'body',\n showPanel: false,\n id: 'ariaLiveSRPanel',\n ariaAttributes: {\n 'aria-relevant': 'all',\n 'aria-live': 'polite',\n 'aria-atomic': 'true'\n }\n };\n\n private readonly srPanelContainer = null;\n\n private readonly id;\n private readonly showPanel;\n private readonly _enabled: boolean;\n private readonly _moveFocus: boolean;\n\n private componentRef: SRMessagesRef;\n\n constructor(checkout: ICore, props?: SRPanelProps) {\n super(checkout, props);\n\n this.id = this.props.id;\n this.showPanel = process.env.NODE_ENV !== 'production' ? this.props.showPanel : false;\n this._enabled = false;\n this._moveFocus = this.props.moveFocus ?? true;\n\n if (this.props.enabled) {\n this._enabled = true;\n\n const panelParent = document.querySelector(this.props.node);\n\n if (panelParent) {\n const preExistingSRPanel = document.getElementById(this.id);\n if (preExistingSRPanel) {\n panelParent.removeChild(preExistingSRPanel);\n }\n\n this.srPanelContainer = document.createElement('div');\n this.srPanelContainer.className = 'sr-panel-holder';\n this.srPanelContainer.id = this.id;\n\n panelParent.appendChild(this.srPanelContainer);\n\n this.mount(this.srPanelContainer);\n } else {\n throw new Error('Component could not mount. Root node was not found.');\n }\n }\n }\n\n public setComponentRef = ref => {\n this.componentRef = ref;\n };\n\n public get enabled() {\n return this._enabled;\n }\n\n public get moveFocus() {\n return this._moveFocus;\n }\n\n public setAriaProps(ariaAttributes: AriaAttributes): void {\n if (!this.props.enabled) return;\n\n const firstPanel = document.querySelector('[class^=\"adyen-checkout-sr-panel\"]');\n\n if (!firstPanel) {\n console.error('SRPanel: Failed to set aria props because no panel was found');\n return;\n }\n\n for (const [key, value] of Object.entries(ariaAttributes)) {\n firstPanel.setAttribute(key, value);\n }\n this.props = { ...this.props, ariaAttributes: { ...this.props.ariaAttributes, ...ariaAttributes } };\n }\n\n // A method we can expose to allow comps to set messages in this panel\n public setMessages = (messages: string[] | string): void => {\n if (!this.props.enabled) return;\n\n let panelMessages = null;\n if (messages) {\n // Ensure panelMessages is an array\n panelMessages = Array.isArray(messages) ? messages : [messages];\n }\n\n this.componentRef.setMessages(panelMessages);\n };\n\n render() {\n if (!this.props.enabled) return null;\n return (\n <div\n className={this.showPanel ? 'adyen-checkout-sr-panel' : 'adyen-checkout-sr-panel--sr-only'}\n role={'log'}\n {...this.props.ariaAttributes}\n {...(process.env.NODE_ENV !== 'production' && { 'data-testid': this.id })}\n >\n <SRMessages setComponentRef={this.setComponentRef} />\n </div>\n );\n }\n}\n"],"names":["SRPanel","BaseElement","enabled","this","_enabled","moveFocus","_moveFocus","setAriaProps","ariaAttributes","props","firstPanel","document","querySelector","key","value","Object","entries","setAttribute","_object_spread_props","_object_spread","console","error","render","h","div","className","showPanel","role","SRMessages","setComponentRef","constructor","checkout","_this_props_moveFocus","super","_define_property","srPanelContainer","id","componentRef","ref","setMessages","messages","panelMessages","Array","isArray","panelParent","node","Error","preExistingSRPanel","getElementById","removeChild","createElement","appendChild","mount","type","defaultProps"],"mappings":"+9BAYO,MAAMA,UAAgBC,EA4DzB,WAAWC,GACP,OAAOC,KAAKC,QAChB,CAEA,aAAWC,GACP,OAAOF,KAAKG,UAChB,CAEOC,YAAAA,CAAaC,GAChB,IAAKL,KAAKM,MAAMP,QAAS,OAEzB,MAAMQ,EAAaC,SAASC,cAAc,sCAE1C,GAAKF,EAAL,CAKA,IAAK,MAAOG,EAAKC,KAAUC,OAAOC,QAAQR,GACtCE,EAAWO,aAAaJ,EAAKC,GAEjCX,KAAKM,MAAQS,EAAAC,EAAA,CAAA,EAAKhB,KAAKM,OAAK,CAAED,eAAgBW,KAAKhB,KAAKM,MAAMD,eAAmBA,IALjF,MAFIY,QAAQC,MAAM,+DAQtB,CAeAC,MAAAA,GACI,OAAKnB,KAAKM,MAAMP,QAEZqB,EAACC,MAAAA,EAAAA,CACGC,UAAWtB,KAAKuB,UAAY,0BAA4B,mCACxDC,KAAM,OACFxB,KAAKM,MAAMD,gBACV,GAELe,EAACK,EAAAA,CAAWC,gBAAiB1B,KAAK0B,mBARV,IAWpC,CArFA,WAAAC,CAAYC,EAAiBtB,GAMP,IAAAuB,EAElB,GAPAC,MAAMF,EAAUtB,GAVpByB,EAAA/B,KAAiBgC,mBAAmB,MAEpCD,EAAA/B,KAAiBiC,
|
|
1
|
+
{"version":3,"file":"SRPanel.js","sources":["../../../../src/core/Errors/SRPanel.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { AriaAttributes, SRPanelProps } from './types';\nimport BaseElement from '../../components/internal/BaseElement/BaseElement';\nimport { SRMessages, SRMessagesRef } from './SRMessages';\nimport type { ICore } from '../types';\nimport './SRPanel.scss';\n\n/**\n * A panel meant to hold messages that will be read out by ScreenReaders on an aria-live=\"polite\" basis\n * Expects a string or string array of message to add to the panel to be read out\n * For testing purposes can be made visible\n */\nexport class SRPanel extends BaseElement<SRPanelProps> {\n public static type = 'srPanel';\n\n public static defaultProps: Partial<SRPanelProps> = {\n enabled: true,\n node: 'body',\n showPanel: false,\n id: 'ariaLiveSRPanel',\n ariaAttributes: {\n 'aria-relevant': 'all',\n 'aria-live': 'polite',\n 'aria-atomic': 'true'\n }\n };\n\n private readonly srPanelContainer = null;\n\n private readonly id;\n private readonly showPanel;\n private readonly _enabled: boolean;\n private readonly _moveFocus: boolean;\n\n private componentRef: SRMessagesRef;\n\n constructor(checkout: ICore, props?: SRPanelProps) {\n super(checkout, props);\n\n this.id = this.props.id;\n this.showPanel = process.env.NODE_ENV !== 'production' ? this.props.showPanel : false;\n this._enabled = false;\n this._moveFocus = this.props.moveFocus ?? true;\n\n if (this.props.enabled) {\n this._enabled = true;\n\n const panelParent = document.querySelector(this.props.node);\n\n if (panelParent) {\n const preExistingSRPanel = document.getElementById(this.id);\n if (preExistingSRPanel) {\n panelParent.removeChild(preExistingSRPanel);\n }\n\n this.srPanelContainer = document.createElement('div');\n this.srPanelContainer.className = 'sr-panel-holder';\n this.srPanelContainer.id = this.id;\n\n panelParent.appendChild(this.srPanelContainer);\n\n this.mount(this.srPanelContainer);\n } else {\n throw new Error('Component could not mount. Root node was not found.');\n }\n }\n }\n\n public setComponentRef = ref => {\n this.componentRef = ref;\n };\n\n public get enabled() {\n return this._enabled;\n }\n\n public get moveFocus() {\n return this._moveFocus;\n }\n\n public setAriaProps(ariaAttributes: AriaAttributes): void {\n if (!this.props.enabled) return;\n\n const firstPanel = document.querySelector('[class^=\"adyen-checkout-sr-panel\"]');\n\n if (!firstPanel) {\n console.error('SRPanel: Failed to set aria props because no panel was found');\n return;\n }\n\n for (const [key, value] of Object.entries(ariaAttributes)) {\n firstPanel.setAttribute(key, value);\n }\n this.props = { ...this.props, ariaAttributes: { ...this.props.ariaAttributes, ...ariaAttributes } };\n }\n\n // A method we can expose to allow comps to set messages in this panel\n public setMessages = (messages: string[] | string): void => {\n if (!this.props.enabled) return;\n\n let panelMessages = null;\n if (messages) {\n // Ensure panelMessages is an array\n panelMessages = Array.isArray(messages) ? messages : [messages];\n }\n\n this.componentRef.setMessages(panelMessages);\n };\n\n render() {\n if (!this.props.enabled) return null;\n return (\n <div\n className={this.showPanel ? 'adyen-checkout-sr-panel' : 'adyen-checkout-sr-panel--sr-only'}\n role={'log'}\n {...this.props.ariaAttributes}\n {...(process.env.NODE_ENV !== 'production' && { 'data-testid': this.id })}\n >\n <SRMessages setComponentRef={this.setComponentRef} />\n </div>\n );\n }\n}\n"],"names":["SRPanel","BaseElement","enabled","this","_enabled","moveFocus","_moveFocus","setAriaProps","ariaAttributes","props","firstPanel","document","querySelector","key","value","Object","entries","setAttribute","_object_spread_props","_object_spread","console","error","render","h","div","className","showPanel","role","SRMessages","setComponentRef","constructor","checkout","_this_props_moveFocus","super","_define_property","srPanelContainer","id","componentRef","ref","setMessages","messages","panelMessages","Array","isArray","panelParent","node","Error","preExistingSRPanel","getElementById","removeChild","createElement","appendChild","mount","type","defaultProps"],"mappings":"+9BAYO,MAAMA,UAAgBC,EA4DzB,WAAWC,GACP,OAAOC,KAAKC,QAChB,CAEA,aAAWC,GACP,OAAOF,KAAKG,UAChB,CAEOC,YAAAA,CAAaC,GAChB,IAAKL,KAAKM,MAAMP,QAAS,OAEzB,MAAMQ,EAAaC,SAASC,cAAc,sCAE1C,GAAKF,EAAL,CAKA,IAAK,MAAOG,EAAKC,KAAUC,OAAOC,QAAQR,GACtCE,EAAWO,aAAaJ,EAAKC,GAEjCX,KAAKM,MAAQS,EAAAC,EAAA,CAAA,EAAKhB,KAAKM,OAAK,CAAED,eAAgBW,KAAKhB,KAAKM,MAAMD,eAAmBA,IALjF,MAFIY,QAAQC,MAAM,+DAQtB,CAeAC,MAAAA,GACI,OAAKnB,KAAKM,MAAMP,QAEZqB,EAACC,MAAAA,EAAAA,CACGC,UAAWtB,KAAKuB,UAAY,0BAA4B,mCACxDC,KAAM,OACFxB,KAAKM,MAAMD,gBACV,GAELe,EAACK,EAAAA,CAAWC,gBAAiB1B,KAAK0B,mBARV,IAWpC,CArFA,WAAAC,CAAYC,EAAiBtB,GAMP,IAAAuB,EAElB,GAPAC,MAAMF,EAAUtB,GAVpByB,EAAA/B,KAAiBgC,mBAAmB,MAEpCD,EAAA/B,KAAiBiC,aACjBF,EAAA/B,KAAiBuB,oBACjBQ,EAAA/B,KAAiBC,mBACjB8B,EAAA/B,KAAiBG,qBAEjB4B,EAAA/B,KAAQkC,uBAkCRH,EAAA/B,KAAO0B,kBAAkBS,IACrBnC,KAAKkC,aAAeC,IA4BxBJ,EAAA/B,KAAOoC,cAAeC,IAClB,IAAKrC,KAAKM,MAAMP,QAAS,OAEzB,IAAIuC,EAAgB,KAChBD,IAEAC,EAAgBC,MAAMC,QAAQH,GAAYA,EAAW,CAACA,IAG1DrC,KAAKkC,aAAaE,YAAYE,KAnE9BtC,KAAKiC,GAAKjC,KAAKM,MAAM2B,GACrBjC,KAAKuB,WAA2E,EAChFvB,KAAKC,UAAW,EAChBD,KAAKG,WAAiC,QAApB0B,EAAA7B,KAAKM,MAAMJ,iBAAX,IAAA2B,GAAAA,EAEd7B,KAAKM,MAAMP,QAAS,CACpBC,KAAKC,UAAW,EAEhB,MAAMwC,EAAcjC,SAASC,cAAcT,KAAKM,MAAMoC,MAEtD,IAAID,EAcA,MAAM,IAAIE,MAAM,uDAdH,CACb,MAAMC,EAAqBpC,SAASqC,eAAe7C,KAAKiC,IACpDW,GACAH,EAAYK,YAAYF,GAG5B5C,KAAKgC,iBAAmBxB,SAASuC,cAAc,OAC/C/C,KAAKgC,iBAAiBV,UAAY,kBAClCtB,KAAKgC,iBAAiBC,GAAKjC,KAAKiC,GAEhCQ,EAAYO,YAAYhD,KAAKgC,kBAE7BhC,KAAKiD,MAAMjD,KAAKgC,iBACpB,CAGJ,CACJ,EArDAD,EADSlC,EACKqD,OAAO,WAErBnB,EAHSlC,EAGKsD,eAAsC,CAChDpD,SAAS,EACT2C,KAAM,OACNnB,WAAW,EACXU,GAAI,kBACJ5B,eAAgB,CACZ,gBAAiB,MACjB,YAAa,SACb,cAAe"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actionTypes.js","sources":["../../../../../src/core/ProcessResponse/PaymentAction/actionTypes.ts"],"sourcesContent":["import { get3DS2FlowProps } from '../../../components/ThreeDS2/components/utils';\nimport uuid from '../../../utils/uuid';\nimport type { StatusFromAction, ThreeDS2ActionProps, UIElement, UIElementProps } from '../../../types';\nimport type { PaymentAction } from '../../../types/global-types';\nimport type { IRegistry } from '../../core.registry';\nimport type { ICore } from '../../types';\nimport type { ThreeDS2ConfigProps } from '../../../types';\nimport type { ActionHandlerConfig } from './types';\n\nconst createComponent = (core: ICore, registry: IRegistry, componentType: string, props: ActionHandlerConfig | ThreeDS2ConfigProps): UIElement => {\n const Element = registry.getComponent(componentType);\n\n if (!Element) {\n throw Error(`Action Element of type ${componentType} not found in the registry`);\n }\n\n const element = new Element(core, { ...props, id: `${componentType}-${uuid()}` });\n return element;\n};\n\nconst getActionHandler = (statusType: StatusFromAction) => {\n return (core: ICore, registry: IRegistry, action: PaymentAction, props: UIElementProps): UIElement => {\n const config: ActionHandlerConfig = {\n ...props,\n ...action,\n onError: props.onError,\n statusType,\n originalAction: action\n };\n\n return createComponent(core, registry, action.paymentMethodType, config);\n };\n};\n\nconst actionTypes = {\n redirect: (core: ICore, registry, action: PaymentAction, props: UIElementProps): UIElement => {\n const config: ActionHandlerConfig = {\n ...props,\n ...action,\n statusType: 'redirect',\n originalAction: action\n };\n\n return createComponent(core, registry, 'redirect', config);\n },\n\n threeDS2: (core: ICore, registry, action: PaymentAction, props: ThreeDS2ActionProps): UIElement => {\n const componentType = action.subtype === 'fingerprint' ? 'threeDS2DeviceFingerprint' : 'threeDS2Challenge';\n\n /**\n * NOTE: the isMDFlow prop comes from the options object, added within the MDFlow when it calls createFromAction(action, options) to initiate a 3DS2 component\n * It replaces the useOriginalFlow config prop that the MDFlow used to pass when directly initiating the threeDS2Fingerprint or threeDS2Challenge components\n */\n const paymentData = action.subtype === 'fingerprint' || props.isMDFlow ? action.paymentData : action.authorisationToken;\n\n const config: ThreeDS2ConfigProps = {\n // Props common to both flows\n core,\n token: action.token,\n paymentData,\n onActionHandled: props.onActionHandled,\n onComplete: props.onComplete, // NOTE: We only ever expect props.onComplete to be defined for the MDFlow\n onAdditionalDetails: props.onAdditionalDetails, // Needed to prevent regression in v6.24.0 re. supporting onAdditionalDetails being directly set on Card component (in v7 we will *not* allow this, & this line can be removed)\n onError: props.onError,\n isDropin: !!props.isDropin,\n loadingContext: props.loadingContext,\n clientKey: props.clientKey,\n paymentMethodType: props.paymentMethodType,\n challengeWindowSize: props.challengeWindowSize, // always pass challengeWindowSize in case it's been set directly in the handleAction config object\n isMDFlow: props.isMDFlow,\n modules: {\n analytics: props.modules?.analytics,\n resources: props.modules?.resources\n },\n\n // Props unique to a particular flow\n ...get3DS2FlowProps(action.subtype, props)\n };\n\n return createComponent(core, registry, componentType, config);\n },\n\n voucher: getActionHandler('custom'),\n qrCode: getActionHandler('custom'),\n await: getActionHandler('custom'),\n bankTransfer: getActionHandler('custom'),\n sdk: getActionHandler('custom')\n} as const;\n\nexport default actionTypes;\n"],"names":["createComponent","core","registry","componentType","props","Element","getComponent","Error","_object_spread_props","_object_spread","id","uuid","getActionHandler","statusType","action","config","onError","originalAction","paymentMethodType","actionTypes","redirect","threeDS2","subtype","paymentData","isMDFlow","authorisationToken","token","onActionHandled","onComplete","onAdditionalDetails","isDropin","loadingContext","clientKey","challengeWindowSize","modules","analytics","resources","get3DS2FlowProps","voucher","qrCode","await","bankTransfer","sdk"],"mappings":"m6BASA,MAAMA,EAAkB,CAACC,EAAaC,EAAqBC,EAAuBC,KAC9E,MAAMC,EAAUH,EAASI,aAAaH,GAEtC,IAAKE,EACD,MAAME,MAAM,0BAA0BJ,+BAI1C,OADgB,IAAIE,EAAQJ,EAAMO,EAAAC,EAAA,CAAA,EAAKL,GAAAA,CAAOM,GAAI,GAAGP,KAAiBQ,UAIpEC,EAAoBC,GACf,CAACZ,EAAaC,EAAqBY,EAAuBV,KAC7D,MAAMW,EAA8BP,OAC7BJ,EACAU,GAAAA,CACHE,QAASZ,EAAMY,QACfH,aACAI,eAAgBH,IAGpB,OAAOd,EAAgBC,EAAMC,EAAUY,EAAOI,kBAAmBH,IAInEI,EAAc,CAChBC,SAAU,CAACnB,EAAaC,EAAUY,EAAuBV,KACrD,MAAMW,EAA8BP,OAC7BJ,EACAU,GAAAA,CACHD,WAAY,WACZI,eAAgBH,IAGpB,OAAOd,EAAgBC,EAAMC,EAAU,WAAYa,IAGvDM,SAAU,CAACpB,EAAaC,EAAUY,EAAuBV,SAyBlCA,EACAA,EAzBnB,MAAMD,EAAmC,gBAAnBW,EAAOQ,QAA4B,4BAA8B,oBAMjFC,EAAiC,gBAAnBT,EAAOQ,SAA6BlB,EAAMoB,SAAWV,EAAOS,YAAcT,EAAOW,mBAE/FV,EAA8BN,EAAA,CAEhCR,OACAyB,MAAOZ,EAAOY,MACdH,cACAI,gBAAiBvB,EAAMuB,gBACvBC,WAAYxB,EAAMwB,WAClBC,oBAAqBzB,EAAMyB,oBAC3Bb,QAASZ,EAAMY,QACfc,WAAY1B,EAAM0B,SAClBC,eAAgB3B,EAAM2B,eACtBC,UAAW5B,EAAM4B,UACjBd,kBAAmBd,EAAMc,kBACzBe,oBAAqB7B,EAAM6B,oBAC3BT,SAAUpB,EAAMoB,SAChBU,QAAS,CACLC,UAAwB,QAAb/B,EAAAA,EAAM8B,eAAN9B,IAAAA,
|
|
1
|
+
{"version":3,"file":"actionTypes.js","sources":["../../../../../src/core/ProcessResponse/PaymentAction/actionTypes.ts"],"sourcesContent":["import { get3DS2FlowProps } from '../../../components/ThreeDS2/components/utils';\nimport uuid from '../../../utils/uuid';\nimport type { StatusFromAction, ThreeDS2ActionProps, UIElement, UIElementProps } from '../../../types';\nimport type { PaymentAction } from '../../../types/global-types';\nimport type { IRegistry } from '../../core.registry';\nimport type { ICore } from '../../types';\nimport type { ThreeDS2ConfigProps } from '../../../types';\nimport type { ActionHandlerConfig } from './types';\n\nconst createComponent = (core: ICore, registry: IRegistry, componentType: string, props: ActionHandlerConfig | ThreeDS2ConfigProps): UIElement => {\n const Element = registry.getComponent(componentType);\n\n if (!Element) {\n throw Error(`Action Element of type ${componentType} not found in the registry`);\n }\n\n const element = new Element(core, { ...props, id: `${componentType}-${uuid()}` });\n return element;\n};\n\nconst getActionHandler = (statusType: StatusFromAction) => {\n return (core: ICore, registry: IRegistry, action: PaymentAction, props: UIElementProps): UIElement => {\n const config: ActionHandlerConfig = {\n ...props,\n ...action,\n onError: props.onError,\n statusType,\n originalAction: action\n };\n\n return createComponent(core, registry, action.paymentMethodType, config);\n };\n};\n\nconst actionTypes = {\n redirect: (core: ICore, registry, action: PaymentAction, props: UIElementProps): UIElement => {\n const config: ActionHandlerConfig = {\n ...props,\n ...action,\n statusType: 'redirect',\n originalAction: action\n };\n\n return createComponent(core, registry, 'redirect', config);\n },\n\n threeDS2: (core: ICore, registry, action: PaymentAction, props: ThreeDS2ActionProps): UIElement => {\n const componentType = action.subtype === 'fingerprint' ? 'threeDS2DeviceFingerprint' : 'threeDS2Challenge';\n\n /**\n * NOTE: the isMDFlow prop comes from the options object, added within the MDFlow when it calls createFromAction(action, options) to initiate a 3DS2 component\n * It replaces the useOriginalFlow config prop that the MDFlow used to pass when directly initiating the threeDS2Fingerprint or threeDS2Challenge components\n */\n const paymentData = action.subtype === 'fingerprint' || props.isMDFlow ? action.paymentData : action.authorisationToken;\n\n const config: ThreeDS2ConfigProps = {\n // Props common to both flows\n core,\n token: action.token,\n paymentData,\n onActionHandled: props.onActionHandled,\n onComplete: props.onComplete, // NOTE: We only ever expect props.onComplete to be defined for the MDFlow\n onAdditionalDetails: props.onAdditionalDetails, // Needed to prevent regression in v6.24.0 re. supporting onAdditionalDetails being directly set on Card component (in v7 we will *not* allow this, & this line can be removed)\n onError: props.onError,\n isDropin: !!props.isDropin,\n loadingContext: props.loadingContext,\n clientKey: props.clientKey,\n paymentMethodType: props.paymentMethodType,\n challengeWindowSize: props.challengeWindowSize, // always pass challengeWindowSize in case it's been set directly in the handleAction config object\n isMDFlow: props.isMDFlow,\n modules: {\n analytics: props.modules?.analytics,\n resources: props.modules?.resources\n },\n\n // Props unique to a particular flow\n ...get3DS2FlowProps(action.subtype, props)\n };\n\n return createComponent(core, registry, componentType, config);\n },\n\n voucher: getActionHandler('custom'),\n qrCode: getActionHandler('custom'),\n await: getActionHandler('custom'),\n bankTransfer: getActionHandler('custom'),\n sdk: getActionHandler('custom')\n} as const;\n\nexport default actionTypes;\n"],"names":["createComponent","core","registry","componentType","props","Element","getComponent","Error","_object_spread_props","_object_spread","id","uuid","getActionHandler","statusType","action","config","onError","originalAction","paymentMethodType","actionTypes","redirect","threeDS2","subtype","paymentData","isMDFlow","authorisationToken","token","onActionHandled","onComplete","onAdditionalDetails","isDropin","loadingContext","clientKey","challengeWindowSize","modules","analytics","resources","get3DS2FlowProps","voucher","qrCode","await","bankTransfer","sdk"],"mappings":"m6BASA,MAAMA,EAAkB,CAACC,EAAaC,EAAqBC,EAAuBC,KAC9E,MAAMC,EAAUH,EAASI,aAAaH,GAEtC,IAAKE,EACD,MAAME,MAAM,0BAA0BJ,+BAI1C,OADgB,IAAIE,EAAQJ,EAAMO,EAAAC,EAAA,CAAA,EAAKL,GAAAA,CAAOM,GAAI,GAAGP,KAAiBQ,UAIpEC,EAAoBC,GACf,CAACZ,EAAaC,EAAqBY,EAAuBV,KAC7D,MAAMW,EAA8BP,OAC7BJ,EACAU,GAAAA,CACHE,QAASZ,EAAMY,QACfH,aACAI,eAAgBH,IAGpB,OAAOd,EAAgBC,EAAMC,EAAUY,EAAOI,kBAAmBH,IAInEI,EAAc,CAChBC,SAAU,CAACnB,EAAaC,EAAUY,EAAuBV,KACrD,MAAMW,EAA8BP,OAC7BJ,EACAU,GAAAA,CACHD,WAAY,WACZI,eAAgBH,IAGpB,OAAOd,EAAgBC,EAAMC,EAAU,WAAYa,IAGvDM,SAAU,CAACpB,EAAaC,EAAUY,EAAuBV,SAyBlCA,EACAA,EAzBnB,MAAMD,EAAmC,gBAAnBW,EAAOQ,QAA4B,4BAA8B,oBAMjFC,EAAiC,gBAAnBT,EAAOQ,SAA6BlB,EAAMoB,SAAWV,EAAOS,YAAcT,EAAOW,mBAE/FV,EAA8BN,EAAA,CAEhCR,OACAyB,MAAOZ,EAAOY,MACdH,cACAI,gBAAiBvB,EAAMuB,gBACvBC,WAAYxB,EAAMwB,WAClBC,oBAAqBzB,EAAMyB,oBAC3Bb,QAASZ,EAAMY,QACfc,WAAY1B,EAAM0B,SAClBC,eAAgB3B,EAAM2B,eACtBC,UAAW5B,EAAM4B,UACjBd,kBAAmBd,EAAMc,kBACzBe,oBAAqB7B,EAAM6B,oBAC3BT,SAAUpB,EAAMoB,SAChBU,QAAS,CACLC,UAAwB,QAAb/B,EAAAA,EAAM8B,eAAN9B,IAAAA,SAAAA,EAAe+B,UAC1BC,UAAwB,QAAbhC,EAAAA,EAAM8B,eAAN9B,IAAAA,OAAAA,EAAAA,EAAegC,YAI3BC,EAAiBvB,EAAOQ,QAASlB,IAGxC,OAAOJ,EAAgBC,EAAMC,EAAUC,EAAeY,IAG1DuB,QAAS1B,EAAiB,UAC1B2B,OAAQ3B,EAAiB,UACzB4B,MAAO5B,EAAiB,UACxB6B,aAAc7B,EAAiB,UAC/B8B,IAAK9B,EAAiB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../../src/core/ProcessResponse/PaymentMethods/utils.ts"],"sourcesContent":["import { RawPaymentMethod, PaymentMethodsResponse, RawStoredPaymentMethod } from '../../../types/global-types';\nimport {\n filterAllowedPaymentMethods,\n filterEcomStoredPaymentMethods,\n filterRemovedPaymentMethods,\n filterSupportedStoredPaymentMethods\n} from './filters';\nimport uuidv4 from '../../../utils/uuid';\nimport type { PaymentMethod, StoredPaymentMethod } from './PaymentMethods';\n\n/**\n * Finds the fundingSource for a stored payment method by matching its brand\n * against the available payment methods.\n */\nfunction getFundingSourceForStoredCard(\n storedPaymentMethod: RawStoredPaymentMethod,\n paymentMethods: RawPaymentMethod[]\n): RawPaymentMethod['fundingSource'] {\n if (storedPaymentMethod.type !== 'scheme') {\n return undefined;\n }\n\n const storedBrand = storedPaymentMethod.brand;\n if (!storedBrand) {\n return undefined;\n }\n\n const matchingPaymentMethod = paymentMethods.find(pm => pm.type === 'scheme' && pm.brands?.includes(storedBrand));\n\n return matchingPaymentMethod?.fundingSource;\n}\n\nconst processStoredPaymentMethod = (storedPM: RawStoredPaymentMethod, paymentMethods: RawPaymentMethod[]): StoredPaymentMethod => {\n const fundingSource = getFundingSourceForStoredCard(storedPM, paymentMethods);\n return {\n ...storedPM,\n storedPaymentMethodId: storedPM.id,\n isStoredPaymentMethod: true,\n ...(fundingSource && { fundingSource })\n };\n};\n\n/**\n * Generate unique ID per payment method. Useful to fetch the correct payment method properties from the response\n * @param paymentMethod\n */\nfunction generatePaymentMethodId(paymentMethod: RawPaymentMethod): PaymentMethod {\n return {\n ...paymentMethod,\n _id: uuidv4()\n };\n}\n\nexport const processPaymentMethods = (\n paymentMethods: RawPaymentMethod[],\n { allowPaymentMethods = [], removePaymentMethods = [] }\n): PaymentMethod[] => {\n if (!paymentMethods) return [];\n\n return paymentMethods\n .filter(filterAllowedPaymentMethods, allowPaymentMethods)\n .filter(filterRemovedPaymentMethods, removePaymentMethods)\n .map(generatePaymentMethodId);\n};\n\nexport const processStoredPaymentMethods = (\n storedPaymentMethods: RawStoredPaymentMethod[],\n { allowPaymentMethods = [], removePaymentMethods = [] },\n paymentMethods: RawPaymentMethod[] = []\n): StoredPaymentMethod[] => {\n if (!storedPaymentMethods) return [];\n\n return storedPaymentMethods\n .filter(filterSupportedStoredPaymentMethods) // only display supported stored payment methods\n .filter(filterAllowedPaymentMethods, allowPaymentMethods)\n .filter(filterRemovedPaymentMethods, removePaymentMethods)\n .filter(filterEcomStoredPaymentMethods) // Only accept Ecommerce shopper interactions\n .map(storedPM => processStoredPaymentMethod(storedPM, paymentMethods));\n};\n\nexport const checkPaymentMethodsResponse = (paymentMethodsResponse: PaymentMethodsResponse) => {\n if (typeof paymentMethodsResponse === 'string') {\n throw new Error(\n 'paymentMethodsResponse was provided but of an incorrect type (should be an object but a string was provided).' +\n 'Try JSON.parse(\"{...}\") your paymentMethodsResponse.'\n );\n }\n\n if (paymentMethodsResponse instanceof Array) {\n throw new Error(\n 'paymentMethodsResponse was provided but of an incorrect type (should be an object but an array was provided).' +\n 'Please check you are passing the whole response.'\n );\n }\n\n if (paymentMethodsResponse && !paymentMethodsResponse?.paymentMethods?.length && !paymentMethodsResponse?.storedPaymentMethods?.length) {\n console.warn('paymentMethodsResponse was provided but no payment methods were found.');\n }\n};\n"],"names":["generatePaymentMethodId","paymentMethod","_object_spread_props","_object_spread","_id","uuidv4","processPaymentMethods","paymentMethods","allowPaymentMethods","removePaymentMethods","filter","filterAllowedPaymentMethods","filterRemovedPaymentMethods","map","processStoredPaymentMethods","storedPaymentMethods","filterSupportedStoredPaymentMethods","filterEcomStoredPaymentMethods","storedPM","fundingSource","storedPaymentMethod","type","storedBrand","brand","matchingPaymentMethod","find","pm","brands","includes","getFundingSourceForStoredCard","storedPaymentMethodId","id","isStoredPaymentMethod","processStoredPaymentMethod","checkPaymentMethodsResponse","paymentMethodsResponse","Error","Array","length","console","warn"],"mappings":"w/BA8CA,SAASA,EAAwBC,GAC7B,OAAOC,EAAAC,EAAA,CAAA,EACAF,GAAAA,CACHG,IAAKC,KAEb,CAEO,MAAMC,EAAwB,CACjCC,GACEC,sBAAsB,GAAIC,uBAAuB,MAE9CF,EAEEA,EACFG,OAAOC,EAA6BH,GACpCE,OAAOE,EAA6BH,GACpCI,IAAIb,GALmB,GAQnBc,EAA8B,CACvCC,GACEP,sBAAsB,GAAIC,uBAAuB,IACnDF,EAAqC,KAEhCQ,EAEEA,EACFL,OAAOM,GACPN,OAAOC,EAA6BH,GACpCE,OAAOE,EAA6BH,GACpCC,OAAOO,GACPJ,IAAIK,GA7CsB,EAACA,EAAkCX,KAClE,MAAMY,EAnBV,SACIC,EACAb,GAEA,GAAiC,WAA7Ba,EAAoBC,KACpB,OAGJ,MAAMC,EAAcF,EAAoBG,MACxC,IAAKD,EACD,OAGJ,MAAME,EAAwBjB,EAAekB,KAAKC,IAA8BA,IAAAA,QAAZ,WAAZA,EAAGL,OAA8B,QAATK,EAAAA,EAAGC,cAAHD,IAAAA,OAAAA,EAAAA,EAAWE,SAASN,MAEpG,OAAOE,aAAAA,EAAAA,EAAuBL,aAClC,CAG0BU,CAA8BX,EAAUX,GAC9D,OAAOJ,EAAAD,EAAAC,EAAA,CAAA,EACAe,GAAAA,CACHY,sBAAuBZ,EAASa,GAChCC,uBAAuB,IACnBb,GAAiB,CAAEA,mBAuCNc,CAA2Bf,EAAUX,IAPxB,GAUzB2B,EAA+BC,QAeTA,EAAmDA,EAdlF,GAAsC,iBAA3BA,EACP,MAAM,IAAIC,MACN,qKAKR,GAAID,aAAkCE,MAClC,MAAM,IAAID,MACN,kKAKJD,IAA2BA,SAAsC,QAAtCA,EAAAA,EAAwB5B,sBAAxB4B,IAAAA,
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../src/core/ProcessResponse/PaymentMethods/utils.ts"],"sourcesContent":["import { RawPaymentMethod, PaymentMethodsResponse, RawStoredPaymentMethod } from '../../../types/global-types';\nimport {\n filterAllowedPaymentMethods,\n filterEcomStoredPaymentMethods,\n filterRemovedPaymentMethods,\n filterSupportedStoredPaymentMethods\n} from './filters';\nimport uuidv4 from '../../../utils/uuid';\nimport type { PaymentMethod, StoredPaymentMethod } from './PaymentMethods';\n\n/**\n * Finds the fundingSource for a stored payment method by matching its brand\n * against the available payment methods.\n */\nfunction getFundingSourceForStoredCard(\n storedPaymentMethod: RawStoredPaymentMethod,\n paymentMethods: RawPaymentMethod[]\n): RawPaymentMethod['fundingSource'] {\n if (storedPaymentMethod.type !== 'scheme') {\n return undefined;\n }\n\n const storedBrand = storedPaymentMethod.brand;\n if (!storedBrand) {\n return undefined;\n }\n\n const matchingPaymentMethod = paymentMethods.find(pm => pm.type === 'scheme' && pm.brands?.includes(storedBrand));\n\n return matchingPaymentMethod?.fundingSource;\n}\n\nconst processStoredPaymentMethod = (storedPM: RawStoredPaymentMethod, paymentMethods: RawPaymentMethod[]): StoredPaymentMethod => {\n const fundingSource = getFundingSourceForStoredCard(storedPM, paymentMethods);\n return {\n ...storedPM,\n storedPaymentMethodId: storedPM.id,\n isStoredPaymentMethod: true,\n ...(fundingSource && { fundingSource })\n };\n};\n\n/**\n * Generate unique ID per payment method. Useful to fetch the correct payment method properties from the response\n * @param paymentMethod\n */\nfunction generatePaymentMethodId(paymentMethod: RawPaymentMethod): PaymentMethod {\n return {\n ...paymentMethod,\n _id: uuidv4()\n };\n}\n\nexport const processPaymentMethods = (\n paymentMethods: RawPaymentMethod[],\n { allowPaymentMethods = [], removePaymentMethods = [] }\n): PaymentMethod[] => {\n if (!paymentMethods) return [];\n\n return paymentMethods\n .filter(filterAllowedPaymentMethods, allowPaymentMethods)\n .filter(filterRemovedPaymentMethods, removePaymentMethods)\n .map(generatePaymentMethodId);\n};\n\nexport const processStoredPaymentMethods = (\n storedPaymentMethods: RawStoredPaymentMethod[],\n { allowPaymentMethods = [], removePaymentMethods = [] },\n paymentMethods: RawPaymentMethod[] = []\n): StoredPaymentMethod[] => {\n if (!storedPaymentMethods) return [];\n\n return storedPaymentMethods\n .filter(filterSupportedStoredPaymentMethods) // only display supported stored payment methods\n .filter(filterAllowedPaymentMethods, allowPaymentMethods)\n .filter(filterRemovedPaymentMethods, removePaymentMethods)\n .filter(filterEcomStoredPaymentMethods) // Only accept Ecommerce shopper interactions\n .map(storedPM => processStoredPaymentMethod(storedPM, paymentMethods));\n};\n\nexport const checkPaymentMethodsResponse = (paymentMethodsResponse: PaymentMethodsResponse) => {\n if (typeof paymentMethodsResponse === 'string') {\n throw new Error(\n 'paymentMethodsResponse was provided but of an incorrect type (should be an object but a string was provided).' +\n 'Try JSON.parse(\"{...}\") your paymentMethodsResponse.'\n );\n }\n\n if (paymentMethodsResponse instanceof Array) {\n throw new Error(\n 'paymentMethodsResponse was provided but of an incorrect type (should be an object but an array was provided).' +\n 'Please check you are passing the whole response.'\n );\n }\n\n if (paymentMethodsResponse && !paymentMethodsResponse?.paymentMethods?.length && !paymentMethodsResponse?.storedPaymentMethods?.length) {\n console.warn('paymentMethodsResponse was provided but no payment methods were found.');\n }\n};\n"],"names":["generatePaymentMethodId","paymentMethod","_object_spread_props","_object_spread","_id","uuidv4","processPaymentMethods","paymentMethods","allowPaymentMethods","removePaymentMethods","filter","filterAllowedPaymentMethods","filterRemovedPaymentMethods","map","processStoredPaymentMethods","storedPaymentMethods","filterSupportedStoredPaymentMethods","filterEcomStoredPaymentMethods","storedPM","fundingSource","storedPaymentMethod","type","storedBrand","brand","matchingPaymentMethod","find","pm","brands","includes","getFundingSourceForStoredCard","storedPaymentMethodId","id","isStoredPaymentMethod","processStoredPaymentMethod","checkPaymentMethodsResponse","paymentMethodsResponse","Error","Array","length","console","warn"],"mappings":"w/BA8CA,SAASA,EAAwBC,GAC7B,OAAOC,EAAAC,EAAA,CAAA,EACAF,GAAAA,CACHG,IAAKC,KAEb,CAEO,MAAMC,EAAwB,CACjCC,GACEC,sBAAsB,GAAIC,uBAAuB,MAE9CF,EAEEA,EACFG,OAAOC,EAA6BH,GACpCE,OAAOE,EAA6BH,GACpCI,IAAIb,GALmB,GAQnBc,EAA8B,CACvCC,GACEP,sBAAsB,GAAIC,uBAAuB,IACnDF,EAAqC,KAEhCQ,EAEEA,EACFL,OAAOM,GACPN,OAAOC,EAA6BH,GACpCE,OAAOE,EAA6BH,GACpCC,OAAOO,GACPJ,IAAIK,GA7CsB,EAACA,EAAkCX,KAClE,MAAMY,EAnBV,SACIC,EACAb,GAEA,GAAiC,WAA7Ba,EAAoBC,KACpB,OAGJ,MAAMC,EAAcF,EAAoBG,MACxC,IAAKD,EACD,OAGJ,MAAME,EAAwBjB,EAAekB,KAAKC,IAA8BA,IAAAA,QAAZ,WAAZA,EAAGL,OAA8B,QAATK,EAAAA,EAAGC,cAAHD,IAAAA,OAAAA,EAAAA,EAAWE,SAASN,MAEpG,OAAOE,aAAAA,EAAAA,EAAuBL,aAClC,CAG0BU,CAA8BX,EAAUX,GAC9D,OAAOJ,EAAAD,EAAAC,EAAA,CAAA,EACAe,GAAAA,CACHY,sBAAuBZ,EAASa,GAChCC,uBAAuB,IACnBb,GAAiB,CAAEA,mBAuCNc,CAA2Bf,EAAUX,IAPxB,GAUzB2B,EAA+BC,QAeTA,EAAmDA,EAdlF,GAAsC,iBAA3BA,EACP,MAAM,IAAIC,MACN,qKAKR,GAAID,aAAkCE,MAClC,MAAM,IAAID,MACN,kKAKJD,IAA2BA,SAAsC,QAAtCA,EAAAA,EAAwB5B,sBAAxB4B,IAAAA,SAAAA,EAAwCG,UAAWH,SAA4C,QAA5CA,EAAAA,EAAwBpB,4BAAxBoB,IAAAA,SAAAA,EAA8CG,SAC5HC,QAAQC,KAAK"}
|
package/dist/es-legacy/core/RiskModule/components/DeviceFingerprint/GetDeviceFingerprint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GetDeviceFingerprint.js","sources":["../../../../../../src/core/RiskModule/components/DeviceFingerprint/GetDeviceFingerprint.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport Iframe from '../../../../components/internal/IFrame';\nimport promiseTimeout from '../../../../utils/promiseTimeout';\nimport { DEVICE_FINGERPRINT, DF_TIMEOUT, FAILED_DFP_RESOLVE_OBJECT_TIMEOUT } from '../../constants';\nimport getProcessMessageHandler from '../../../../utils/get-process-message-handler';\nimport { getOrigin } from '../../../../utils/getOrigin';\nimport { GetDeviceFingerprintProps } from './types';\n\nconst iframeName = 'dfIframe';\nconst allowProperties = 'geolocation; microphone; camera;';\n\nclass GetDeviceFingerprint extends Component<GetDeviceFingerprintProps> {\n public postMessageDomain;\n public processMessageHandler;\n public deviceFingerPrintPromise;\n\n constructor(props) {\n super(props);\n\n this.postMessageDomain = getOrigin(this.props.loadingContext) || this.props.loadingContext;\n }\n\n getDfpPromise(): Promise<any> {\n return new Promise((resolve, reject) => {\n /**\n * Listen for postMessage responses from the notification url\n */\n this.processMessageHandler = getProcessMessageHandler(this.postMessageDomain, resolve, reject, DEVICE_FINGERPRINT);\n\n window.addEventListener('message', this.processMessageHandler);\n });\n }\n\n componentDidMount() {\n // Get device fingerprint\n this.deviceFingerPrintPromise = promiseTimeout(DF_TIMEOUT, this.getDfpPromise(), FAILED_DFP_RESOLVE_OBJECT_TIMEOUT);\n this.deviceFingerPrintPromise.promise\n .then(resolveObject => {\n this.props.onCompleteFingerprint(resolveObject);\n window.removeEventListener('message', this.processMessageHandler);\n })\n .catch(rejectObject => {\n this.props.onErrorFingerprint(rejectObject);\n window.removeEventListener('message', this.processMessageHandler);\n });\n }\n\n render({ dfpURL }) {\n return (\n <div className=\"adyen-checkout-risk__device-fingerprint\">\n <Iframe name={iframeName} src={dfpURL} allow={allowProperties} title=\"devicefingerprinting iframe\" />\n </div>\n );\n }\n}\n\nexport default GetDeviceFingerprint;\n"],"names":["GetDeviceFingerprint","Component","getDfpPromise","Promise","resolve","reject","this","processMessageHandler","getProcessMessageHandler","postMessageDomain","DEVICE_FINGERPRINT","window","addEventListener","componentDidMount","deviceFingerPrintPromise","promiseTimeout","DF_TIMEOUT","FAILED_DFP_RESOLVE_OBJECT_TIMEOUT","promise","then","resolveObject","props","onCompleteFingerprint","removeEventListener","catch","rejectObject","onErrorFingerprint","render","dfpURL","h","div","className","Iframe","name","src","allow","title","constructor","super","_define_property","getOrigin","loadingContext"],"mappings":"+iBAWA,MAAMA,UAA6BC,EAW/BC,aAAAA,GACI,OAAO,IAAIC,QAAQ,CAACC,EAASC,KAIzBC,KAAKC,sBAAwBC,EAAyBF,KAAKG,kBAAmBL,EAASC,EAAQK,GAE/FC,OAAOC,iBAAiB,UAAWN,KAAKC,wBAEhD,CAEAM,iBAAAA,GAEIP,KAAKQ,yBAA2BC,EAAeC,EAAYV,KAAKJ,gBAAiBe,GACjFX,KAAKQ,yBAAyBI,QACzBC,KAAKC,IACFd,KAAKe,MAAMC,sBAAsBF,GACjCT,OAAOY,oBAAoB,UAAWjB,KAAKC,yBAE9CiB,MAAMC,IACHnB,KAAKe,MAAMK,mBAAmBD,GAC9Bd,OAAOY,oBAAoB,UAAWjB,KAAKC,wBAEvD,CAEAoB,MAAAA,EAAOC,OAAEA,IACL,OACIC,EAACC,MAAAA,CAAIC,UAAU,2CACXF,EAACG,EAAAA,CAAOC,KA1CL,WA0CuBC,IAAKN,EAAQO,MAzC/B,mCAyCuDC,MAAM,gCAGjF,CArCA,WAAAC,CAAYhB,GACRiB,MAAMjB,GALVkB,EAAAjC,KAAOG,yBAAP,GACA8B,EAAAjC,KAAOC,6BAAP,GACAgC,EAAAjC,KAAOQ,
|
|
1
|
+
{"version":3,"file":"GetDeviceFingerprint.js","sources":["../../../../../../src/core/RiskModule/components/DeviceFingerprint/GetDeviceFingerprint.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport Iframe from '../../../../components/internal/IFrame';\nimport promiseTimeout from '../../../../utils/promiseTimeout';\nimport { DEVICE_FINGERPRINT, DF_TIMEOUT, FAILED_DFP_RESOLVE_OBJECT_TIMEOUT } from '../../constants';\nimport getProcessMessageHandler from '../../../../utils/get-process-message-handler';\nimport { getOrigin } from '../../../../utils/getOrigin';\nimport { GetDeviceFingerprintProps } from './types';\n\nconst iframeName = 'dfIframe';\nconst allowProperties = 'geolocation; microphone; camera;';\n\nclass GetDeviceFingerprint extends Component<GetDeviceFingerprintProps> {\n public postMessageDomain;\n public processMessageHandler;\n public deviceFingerPrintPromise;\n\n constructor(props) {\n super(props);\n\n this.postMessageDomain = getOrigin(this.props.loadingContext) || this.props.loadingContext;\n }\n\n getDfpPromise(): Promise<any> {\n return new Promise((resolve, reject) => {\n /**\n * Listen for postMessage responses from the notification url\n */\n this.processMessageHandler = getProcessMessageHandler(this.postMessageDomain, resolve, reject, DEVICE_FINGERPRINT);\n\n window.addEventListener('message', this.processMessageHandler);\n });\n }\n\n componentDidMount() {\n // Get device fingerprint\n this.deviceFingerPrintPromise = promiseTimeout(DF_TIMEOUT, this.getDfpPromise(), FAILED_DFP_RESOLVE_OBJECT_TIMEOUT);\n this.deviceFingerPrintPromise.promise\n .then(resolveObject => {\n this.props.onCompleteFingerprint(resolveObject);\n window.removeEventListener('message', this.processMessageHandler);\n })\n .catch(rejectObject => {\n this.props.onErrorFingerprint(rejectObject);\n window.removeEventListener('message', this.processMessageHandler);\n });\n }\n\n render({ dfpURL }) {\n return (\n <div className=\"adyen-checkout-risk__device-fingerprint\">\n <Iframe name={iframeName} src={dfpURL} allow={allowProperties} title=\"devicefingerprinting iframe\" />\n </div>\n );\n }\n}\n\nexport default GetDeviceFingerprint;\n"],"names":["GetDeviceFingerprint","Component","getDfpPromise","Promise","resolve","reject","this","processMessageHandler","getProcessMessageHandler","postMessageDomain","DEVICE_FINGERPRINT","window","addEventListener","componentDidMount","deviceFingerPrintPromise","promiseTimeout","DF_TIMEOUT","FAILED_DFP_RESOLVE_OBJECT_TIMEOUT","promise","then","resolveObject","props","onCompleteFingerprint","removeEventListener","catch","rejectObject","onErrorFingerprint","render","dfpURL","h","div","className","Iframe","name","src","allow","title","constructor","super","_define_property","getOrigin","loadingContext"],"mappings":"+iBAWA,MAAMA,UAA6BC,EAW/BC,aAAAA,GACI,OAAO,IAAIC,QAAQ,CAACC,EAASC,KAIzBC,KAAKC,sBAAwBC,EAAyBF,KAAKG,kBAAmBL,EAASC,EAAQK,GAE/FC,OAAOC,iBAAiB,UAAWN,KAAKC,wBAEhD,CAEAM,iBAAAA,GAEIP,KAAKQ,yBAA2BC,EAAeC,EAAYV,KAAKJ,gBAAiBe,GACjFX,KAAKQ,yBAAyBI,QACzBC,KAAKC,IACFd,KAAKe,MAAMC,sBAAsBF,GACjCT,OAAOY,oBAAoB,UAAWjB,KAAKC,yBAE9CiB,MAAMC,IACHnB,KAAKe,MAAMK,mBAAmBD,GAC9Bd,OAAOY,oBAAoB,UAAWjB,KAAKC,wBAEvD,CAEAoB,MAAAA,EAAOC,OAAEA,IACL,OACIC,EAACC,MAAAA,CAAIC,UAAU,2CACXF,EAACG,EAAAA,CAAOC,KA1CL,WA0CuBC,IAAKN,EAAQO,MAzC/B,mCAyCuDC,MAAM,gCAGjF,CArCA,WAAAC,CAAYhB,GACRiB,MAAMjB,GALVkB,EAAAjC,KAAOG,yBAAP,GACA8B,EAAAjC,KAAOC,6BAAP,GACAgC,EAAAjC,KAAOQ,mCAKHR,KAAKG,kBAAoB+B,EAAUlC,KAAKe,MAAMoB,iBAAmBnC,KAAKe,MAAMoB,cAChF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sources":["../../../../src/core/Services/http.ts"],"sourcesContent":["import { DEFAULT_HTTP_TIMEOUT, FALLBACK_CONTEXT } from '../config';\nimport AdyenCheckoutError from '../Errors/AdyenCheckoutError';\n\nexport interface HttpOptions {\n accept?: string;\n contentType?: string;\n headers?;\n loadingContext?: string;\n method?: string;\n path: string;\n timeout?: number;\n errorLevel?: ErrorLevel;\n errorMessage?: string;\n errorCode?: string;\n}\n\ninterface FetchErrorOptions {\n message?: string;\n level?: ErrorLevel;\n cause?: unknown;\n code?: string;\n}\n\ntype ErrorLevel = 'silent' | 'info' | 'warn' | 'error' | 'fatal';\n\ntype AdyenApiErrorResponse = {\n errorCode: string;\n message: string;\n errorType: string;\n status: number;\n};\n\nfunction isAdyenApiErrorResponse(data: any): data is AdyenApiErrorResponse {\n return data && data.errorCode && data.errorType && data.message && data.status;\n}\n\nexport function http<T>(options: HttpOptions, payload?: any): Promise<T> {\n const {\n headers = [],\n errorLevel = 'warn',\n errorCode,\n loadingContext = FALLBACK_CONTEXT,\n method = 'GET',\n path,\n timeout = DEFAULT_HTTP_TIMEOUT\n } = options;\n\n const request: RequestInit = {\n method,\n mode: 'cors',\n cache: 'default',\n credentials: 'same-origin',\n headers: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': method === 'POST' ? 'application/json' : 'text/plain',\n ...headers\n },\n redirect: 'follow',\n referrerPolicy: 'no-referrer-when-downgrade',\n ...(AbortSignal?.timeout && { signal: AbortSignal?.timeout(timeout) }),\n ...(payload && { body: JSON.stringify(payload) })\n };\n\n const url = `${loadingContext}${path}`;\n\n return (\n fetch(url, request)\n .then(async response => {\n // Handle empty responses (e.g., 204 No Content)\n if (response.status === 204) {\n return;\n }\n\n const data = await response.json();\n\n if (response.ok) {\n return data;\n }\n\n if (isAdyenApiErrorResponse(data)) {\n handleFetchError({ message: data.message, level: errorLevel, cause: data, code: errorCode });\n return;\n }\n\n const errorMessage = options.errorMessage || `Service at ${url} is not available`;\n handleFetchError({ message: errorMessage, level: errorLevel, cause: data, code: errorCode });\n return;\n })\n /**\n * Catch block handles Network error, CORS error, or exception throw by the `handleFetchError`\n * inside the `then` block\n */\n .catch((error: unknown) => {\n /**\n * If error is instance of AdyenCheckoutError, which means that it was already\n * handled by the `handleFetchError` on the `then` block, then we just throw it.\n * There is no need to create it again\n */\n if (error instanceof AdyenCheckoutError) {\n throw error;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-base-to-string,@typescript-eslint/restrict-template-expressions\n const errorMessage = options.errorMessage || `Call to ${url} failed. Error= ${error}`;\n handleFetchError({ message: errorMessage, level: errorLevel, cause: error, code: errorCode });\n })\n );\n}\n\nfunction handleFetchError({ message, level, cause, code }: FetchErrorOptions): void {\n switch (level) {\n case 'silent': {\n break;\n }\n case 'info':\n case 'warn':\n case 'error': {\n console[level](message);\n break;\n }\n default:\n throw new AdyenCheckoutError('NETWORK_ERROR', message, { cause, code });\n }\n}\n\nexport function httpGet<T = any>(options: HttpOptions, data?: any): Promise<T> {\n return http<T>({ ...options, method: 'GET' }, data);\n}\n\nexport function httpPost<T = any>(options: HttpOptions, data?: any): Promise<T> {\n return http<T>({ ...options, method: 'POST' }, data);\n}\n"],"names":["http","options","payload","AbortSignal","headers","errorLevel","errorCode","loadingContext","FALLBACK_CONTEXT","method","path","timeout","DEFAULT_HTTP_TIMEOUT","request","_object_spread","mode","cache","credentials","Accept","redirect","referrerPolicy","signal","body","JSON","stringify","url","fetch","then","async","response","status","data","json","ok","errorType","message","isAdyenApiErrorResponse","handleFetchError","level","cause","code","errorMessage","catch","error","AdyenCheckoutError","console","httpGet","_object_spread_props","httpPost"],"mappings":"k6BAoCO,SAASA,EAAQC,EAAsBC,OAuBlCC,EAAkCA,EAtB1C,MAAMC,QACFA,EAAU,GAAEC,WACZA,EAAa,OAAMC,UACnBA,EAASC,eACTA,EAAiBC,EAAgBC,OACjCA,EAAS,MAAKC,KACdA,EAAIC,QACJA,EAAUC,GACVX,EAEEY,EAAuBC,EAAA,CACzBL,SACAM,KAAM,OACNC,MAAO,UACPC,YAAa,cACbb,QAASU,EAAA,CACLI,OAAQ,oCACR,eAA2B,SAAXT,EAAoB,mBAAqB,cACtDL,GAEPe,SAAU,SACVC,eAAgB,+BACZjB,QAAAA,EAAAA,
|
|
1
|
+
{"version":3,"file":"http.js","sources":["../../../../src/core/Services/http.ts"],"sourcesContent":["import { DEFAULT_HTTP_TIMEOUT, FALLBACK_CONTEXT } from '../config';\nimport AdyenCheckoutError from '../Errors/AdyenCheckoutError';\n\nexport interface HttpOptions {\n accept?: string;\n contentType?: string;\n headers?;\n loadingContext?: string;\n method?: string;\n path: string;\n timeout?: number;\n errorLevel?: ErrorLevel;\n errorMessage?: string;\n errorCode?: string;\n}\n\ninterface FetchErrorOptions {\n message?: string;\n level?: ErrorLevel;\n cause?: unknown;\n code?: string;\n}\n\ntype ErrorLevel = 'silent' | 'info' | 'warn' | 'error' | 'fatal';\n\ntype AdyenApiErrorResponse = {\n errorCode: string;\n message: string;\n errorType: string;\n status: number;\n};\n\nfunction isAdyenApiErrorResponse(data: any): data is AdyenApiErrorResponse {\n return data && data.errorCode && data.errorType && data.message && data.status;\n}\n\nexport function http<T>(options: HttpOptions, payload?: any): Promise<T> {\n const {\n headers = [],\n errorLevel = 'warn',\n errorCode,\n loadingContext = FALLBACK_CONTEXT,\n method = 'GET',\n path,\n timeout = DEFAULT_HTTP_TIMEOUT\n } = options;\n\n const request: RequestInit = {\n method,\n mode: 'cors',\n cache: 'default',\n credentials: 'same-origin',\n headers: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': method === 'POST' ? 'application/json' : 'text/plain',\n ...headers\n },\n redirect: 'follow',\n referrerPolicy: 'no-referrer-when-downgrade',\n ...(AbortSignal?.timeout && { signal: AbortSignal?.timeout(timeout) }),\n ...(payload && { body: JSON.stringify(payload) })\n };\n\n const url = `${loadingContext}${path}`;\n\n return (\n fetch(url, request)\n .then(async response => {\n // Handle empty responses (e.g., 204 No Content)\n if (response.status === 204) {\n return;\n }\n\n const data = await response.json();\n\n if (response.ok) {\n return data;\n }\n\n if (isAdyenApiErrorResponse(data)) {\n handleFetchError({ message: data.message, level: errorLevel, cause: data, code: errorCode });\n return;\n }\n\n const errorMessage = options.errorMessage || `Service at ${url} is not available`;\n handleFetchError({ message: errorMessage, level: errorLevel, cause: data, code: errorCode });\n return;\n })\n /**\n * Catch block handles Network error, CORS error, or exception throw by the `handleFetchError`\n * inside the `then` block\n */\n .catch((error: unknown) => {\n /**\n * If error is instance of AdyenCheckoutError, which means that it was already\n * handled by the `handleFetchError` on the `then` block, then we just throw it.\n * There is no need to create it again\n */\n if (error instanceof AdyenCheckoutError) {\n throw error;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-base-to-string,@typescript-eslint/restrict-template-expressions\n const errorMessage = options.errorMessage || `Call to ${url} failed. Error= ${error}`;\n handleFetchError({ message: errorMessage, level: errorLevel, cause: error, code: errorCode });\n })\n );\n}\n\nfunction handleFetchError({ message, level, cause, code }: FetchErrorOptions): void {\n switch (level) {\n case 'silent': {\n break;\n }\n case 'info':\n case 'warn':\n case 'error': {\n console[level](message);\n break;\n }\n default:\n throw new AdyenCheckoutError('NETWORK_ERROR', message, { cause, code });\n }\n}\n\nexport function httpGet<T = any>(options: HttpOptions, data?: any): Promise<T> {\n return http<T>({ ...options, method: 'GET' }, data);\n}\n\nexport function httpPost<T = any>(options: HttpOptions, data?: any): Promise<T> {\n return http<T>({ ...options, method: 'POST' }, data);\n}\n"],"names":["http","options","payload","AbortSignal","headers","errorLevel","errorCode","loadingContext","FALLBACK_CONTEXT","method","path","timeout","DEFAULT_HTTP_TIMEOUT","request","_object_spread","mode","cache","credentials","Accept","redirect","referrerPolicy","signal","body","JSON","stringify","url","fetch","then","async","response","status","data","json","ok","errorType","message","isAdyenApiErrorResponse","handleFetchError","level","cause","code","errorMessage","catch","error","AdyenCheckoutError","console","httpGet","_object_spread_props","httpPost"],"mappings":"k6BAoCO,SAASA,EAAQC,EAAsBC,OAuBlCC,EAAkCA,EAtB1C,MAAMC,QACFA,EAAU,GAAEC,WACZA,EAAa,OAAMC,UACnBA,EAASC,eACTA,EAAiBC,EAAgBC,OACjCA,EAAS,MAAKC,KACdA,EAAIC,QACJA,EAAUC,GACVX,EAEEY,EAAuBC,EAAA,CACzBL,SACAM,KAAM,OACNC,MAAO,UACPC,YAAa,cACbb,QAASU,EAAA,CACLI,OAAQ,oCACR,eAA2B,SAAXT,EAAoB,mBAAqB,cACtDL,GAEPe,SAAU,SACVC,eAAgB,+BACZjB,QAAAA,EAAAA,uBAAAA,OAAAA,EAAAA,EAAaQ,UAAW,CAAEU,OAAQlB,QAAAA,EAAAA,mBAAAA,IAAAA,OAAAA,EAAAA,EAAaQ,QAAQA,IACvDT,GAAW,CAAEoB,KAAMC,KAAKC,UAAUtB,KAGpCuB,EAAM,GAAGlB,IAAiBG,IAEhC,OACIgB,MAAMD,EAAKZ,GACNc,KAAKC,MAAMC,IAER,GAAwB,MAApBA,EAASC,OACT,OAGJ,MAAMC,QAAaF,EAASG,OAE5B,GAAIH,EAASI,GACT,OAAOF,EAGX,GA/ChB,SAAiCA,GAC7B,OAAOA,GAAQA,EAAKzB,WAAayB,EAAKG,WAAaH,EAAKI,SAAWJ,EAAKD,MAC5E,CA6CoBM,CAAwBL,GAExB,YADAM,EAAiB,CAAEF,QAASJ,EAAKI,QAASG,MAAOjC,EAAYkC,MAAOR,EAAMS,KAAMlC,IAKpF+B,EAAiB,CAAEF,QADElC,EAAQwC,cAAgB,cAAchB,qBACjBa,MAAOjC,EAAYkC,MAAOR,EAAMS,KAAMlC,MAOnFoC,MAAOC,IAMJ,GAAIA,aAAiBC,EACjB,MAAMD,EAKVN,EAAiB,CAAEF,QADElC,EAAQwC,cAAgB,WAAWhB,oBAAsBkB,IACpCL,MAAOjC,EAAYkC,MAAOI,EAAOH,KAAMlC,KAGjG,CAEA,SAAS+B,GAAiBF,QAAEA,EAAOG,MAAEA,EAAKC,MAAEA,EAAKC,KAAEA,IAC/C,OAAQF,GACJ,IAAK,SACD,MAEJ,IAAK,OACL,IAAK,OACL,IAAK,QACDO,QAAQP,GAAOH,GACf,MAEJ,QACI,MAAM,IAAIS,EAAmB,gBAAiBT,EAAS,CAAEI,QAAOC,SAE5E,CAEO,SAASM,EAAiB7C,EAAsB8B,GACnD,OAAO/B,EAAQ+C,EAAAjC,EAAA,CAAA,EAAKb,GAAAA,CAASQ,OAAQ,QAASsB,EAClD,CAEO,SAASiB,EAAkB/C,EAAsB8B,GACpD,OAAO/B,EAAQ+C,EAAAjC,EAAA,CAAA,EAAKb,GAAAA,CAASQ,OAAQ,SAAUsB,EACnD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e="https://checkoutshopper-live.adyen.com/checkoutshopper/",n="6.
|
|
1
|
+
const e="https://checkoutshopper-live.adyen.com/checkoutshopper/",n="6.31.1",o="eslegacy",t=["amount","secondaryAmount","countryCode","environment","_environmentUrls","loadingContext","i18n","modules","order","session","clientKey","showPayButton","redirectFromTopWhenInIframe","onPaymentCompleted","onPaymentFailed","beforeRedirect","beforeSubmit","onSubmit","onActionHandled","onAdditionalDetails","onChange","onEnterKeyPressed","onError","onBalanceCheck","onOrderCancel","onOrderRequest","onOrderUpdated","onPaymentMethodsRequest"],r=6e4;export{r as DEFAULT_HTTP_TIMEOUT,e as FALLBACK_CONTEXT,t as GENERIC_OPTIONS,o as LIBRARY_BUNDLE_TYPE,n as LIBRARY_VERSION};
|
|
2
2
|
//# sourceMappingURL=config.js.map
|