@adyen/adyen-web 6.28.0 → 6.30.0
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/dist/cjs/adyen.css +15 -14
- 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 +2688 -2566
- package/dist/es/adyen.css +15 -14
- package/dist/es/adyen.css.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 +1 -1
- package/dist/es/components/Card/components/CardInput/CardInput.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/types.js.map +1 -1
- package/dist/es/components/CustomCard/CustomCard.js +1 -1
- package/dist/es/components/CustomCard/CustomCard.js.map +1 -1
- package/dist/es/components/CustomCard/CustomCardInput/CustomCardInput.js +1 -1
- package/dist/es/components/CustomCard/CustomCardInput/CustomCardInput.js.map +1 -1
- package/dist/es/components/Econtext/Econtext.js +1 -1
- package/dist/es/components/Econtext/Econtext.js.map +1 -1
- package/dist/es/components/Econtext/components/EcontextInput/EcontextInput.js +1 -1
- package/dist/es/components/Econtext/components/EcontextInput/EcontextInput.js.map +1 -1
- package/dist/es/components/Econtext/components/EcontextVoucherResult/EcontextVoucherResult.js +1 -1
- package/dist/es/components/Econtext/components/EcontextVoucherResult/EcontextVoucherResult.js.map +1 -1
- package/dist/es/components/Giftcard/Giftcard.js +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/Iris/Iris.js +2 -0
- package/dist/es/components/Iris/Iris.js.map +1 -0
- package/dist/es/components/Iris/components/IrisComponent.js +2 -0
- package/dist/es/components/Iris/components/IrisComponent.js.map +1 -0
- package/dist/es/components/Iris/components/IrisComponent.module.scss.js +2 -0
- package/dist/es/components/Iris/components/IrisComponent.module.scss.js.map +1 -0
- package/dist/es/components/Iris/components/IrisGenerateQRCode.js +2 -0
- package/dist/es/components/Iris/components/IrisGenerateQRCode.js.map +1 -0
- package/dist/es/components/Iris/components/IrisGenerateQRCode.module.scss.js +2 -0
- package/dist/es/components/Iris/components/IrisGenerateQRCode.module.scss.js.map +1 -0
- package/dist/es/components/Iris/components/IrisQrCodeInstructions.js +2 -0
- package/dist/es/components/Iris/components/IrisQrCodeInstructions.js.map +1 -0
- package/dist/es/components/Iris/constants.js +2 -0
- package/dist/es/components/Iris/constants.js.map +1 -0
- package/dist/es/components/Iris/types.js +2 -0
- package/dist/es/components/Iris/types.js.map +1 -0
- package/dist/es/components/Iris/utils.js +2 -0
- package/dist/es/components/Iris/utils.js.map +1 -0
- package/dist/es/components/PayTo/components/PayToComponent.js +1 -1
- package/dist/es/components/PayTo/components/PayToComponent.js.map +1 -1
- package/dist/es/components/Pix/components/PixQRDetails.js +1 -1
- package/dist/es/components/Pix/components/PixQRDetails.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/constants.js +1 -1
- package/dist/es/components/UPI/constants.js.map +1 -1
- package/dist/es/components/components-name-map.js +1 -1
- package/dist/es/components/components-name-map.js.map +1 -1
- package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
- package/dist/es/components/index.js +1 -1
- package/dist/es/components/internal/BaseElement/BaseElement.js +1 -1
- package/dist/es/components/internal/BaseElement/BaseElement.js.map +1 -1
- package/dist/es/components/internal/Countdown/index.js +1 -1
- package/dist/es/components/internal/Countdown/index.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/QRLoader/QRLoaderDetailsProvider.js.map +1 -1
- package/dist/es/components/internal/QRLoader/components/QRDetails.js +1 -1
- package/dist/es/components/internal/QRLoader/components/QRDetails.js.map +1 -1
- package/dist/es/components/internal/QRLoader/components/QRImage.js +1 -1
- package/dist/es/components/internal/QRLoader/components/QRImage.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/extensions/createSecuredFields.js +1 -1
- package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js +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/SegmentedControl/SegmentedControl.js +1 -1
- package/dist/es/components/internal/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/es/components/internal/SegmentedControl/SegmentedControlRegion.js +2 -0
- package/dist/es/components/internal/SegmentedControl/SegmentedControlRegion.js.map +1 -0
- package/dist/es/components/internal/Voucher/Voucher.js +1 -1
- package/dist/es/components/internal/Voucher/Voucher.js.map +1 -1
- package/dist/es/components/internal/Voucher/utils.js.map +1 -1
- package/dist/es/components/tx-variants.js +1 -1
- package/dist/es/components/tx-variants.js.map +1 -1
- package/dist/es/core/Analytics/Analytics.js +1 -1
- package/dist/es/core/Analytics/Analytics.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/ProcessResponse/PaymentMethods/PaymentMethods.js +1 -1
- package/dist/es/core/ProcessResponse/PaymentMethods/PaymentMethods.js.map +1 -1
- package/dist/es/core/ProcessResponse/PaymentMethods/utils.js +1 -1
- package/dist/es/core/ProcessResponse/PaymentMethods/utils.js.map +1 -1
- package/dist/es/core/config.js +1 -1
- package/dist/es/index.d.ts +2688 -2566
- package/dist/es/index.js +1 -1
- package/dist/es/language/Language.js.map +1 -1
- package/dist/es/utils/createSdkData.js +2 -0
- package/dist/es/utils/createSdkData.js.map +1 -0
- package/dist/es-legacy/adyen.css +15 -14
- package/dist/es-legacy/adyen.css.map +1 -1
- package/dist/es-legacy/components/ApplePay/ApplePay.js +1 -1
- package/dist/es-legacy/components/ApplePay/ApplePay.js.map +1 -1
- package/dist/es-legacy/components/ApplePay/utils/payment-request.js +1 -1
- package/dist/es-legacy/components/ApplePay/utils/payment-request.js.map +1 -1
- package/dist/es-legacy/components/BankTransfer/components/BankTransferResult/BankTransferVoucher.js +1 -1
- package/dist/es-legacy/components/BankTransfer/components/BankTransferResult/BankTransferVoucher.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 +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/CardInput.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/BrandIcon.js +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/BrandIcon.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/types.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/useSRPanelForCardInputErrors.js +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/CustomCard/CustomCard.js +1 -1
- package/dist/es-legacy/components/CustomCard/CustomCard.js.map +1 -1
- package/dist/es-legacy/components/CustomCard/CustomCardInput/CustomCardInput.js +1 -1
- package/dist/es-legacy/components/CustomCard/CustomCardInput/CustomCardInput.js.map +1 -1
- package/dist/es-legacy/components/Dragonpay/Dragonpay.js +1 -1
- package/dist/es-legacy/components/Dragonpay/Dragonpay.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/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js +1 -1
- package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
- package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodList.js +1 -1
- package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodList.js.map +1 -1
- package/dist/es-legacy/components/Econtext/Econtext.js +1 -1
- package/dist/es-legacy/components/Econtext/Econtext.js.map +1 -1
- package/dist/es-legacy/components/Econtext/components/EcontextInput/EcontextInput.js +1 -1
- package/dist/es-legacy/components/Econtext/components/EcontextInput/EcontextInput.js.map +1 -1
- package/dist/es-legacy/components/Econtext/components/EcontextVoucherResult/EcontextVoucherResult.js +1 -1
- package/dist/es-legacy/components/Econtext/components/EcontextVoucherResult/EcontextVoucherResult.js.map +1 -1
- package/dist/es-legacy/components/Giftcard/Giftcard.js +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/GooglePay/GooglePay.js +1 -1
- package/dist/es-legacy/components/GooglePay/GooglePay.js.map +1 -1
- package/dist/es-legacy/components/GooglePay/requests.js +1 -1
- package/dist/es-legacy/components/GooglePay/requests.js.map +1 -1
- package/dist/es-legacy/components/Iris/Iris.js +2 -0
- package/dist/es-legacy/components/Iris/Iris.js.map +1 -0
- package/dist/es-legacy/components/Iris/components/IrisComponent.js +2 -0
- package/dist/es-legacy/components/Iris/components/IrisComponent.js.map +1 -0
- package/dist/es-legacy/components/Iris/components/IrisComponent.module.scss.js +2 -0
- package/dist/es-legacy/components/Iris/components/IrisComponent.module.scss.js.map +1 -0
- package/dist/es-legacy/components/Iris/components/IrisGenerateQRCode.js +2 -0
- package/dist/es-legacy/components/Iris/components/IrisGenerateQRCode.js.map +1 -0
- package/dist/es-legacy/components/Iris/components/IrisGenerateQRCode.module.scss.js +2 -0
- package/dist/es-legacy/components/Iris/components/IrisGenerateQRCode.module.scss.js.map +1 -0
- package/dist/es-legacy/components/Iris/components/IrisQrCodeInstructions.js +2 -0
- package/dist/es-legacy/components/Iris/components/IrisQrCodeInstructions.js.map +1 -0
- package/dist/es-legacy/components/Iris/constants.js +2 -0
- package/dist/es-legacy/components/Iris/constants.js.map +1 -0
- package/dist/es-legacy/components/Iris/types.js +2 -0
- package/dist/es-legacy/components/Iris/types.js.map +1 -0
- package/dist/es-legacy/components/Iris/utils.js +2 -0
- package/dist/es-legacy/components/Iris/utils.js.map +1 -0
- package/dist/es-legacy/components/Klarna/components/KlarnaContainer/KlarnaContainer.js +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 +1 -1
- package/dist/es-legacy/components/Klarna/components/KlarnaWidget/KlarnaWidget.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/PayPal/Paypal.js +1 -1
- package/dist/es-legacy/components/PayPal/Paypal.js.map +1 -1
- package/dist/es-legacy/components/PayPal/components/PaypalButtons.js +1 -1
- package/dist/es-legacy/components/PayPal/components/PaypalButtons.js.map +1 -1
- package/dist/es-legacy/components/PayPal/components/PaypalComponent.js +1 -1
- package/dist/es-legacy/components/PayPal/components/PaypalComponent.js.map +1 -1
- package/dist/es-legacy/components/PayTo/components/PayToComponent.js +1 -1
- package/dist/es-legacy/components/PayTo/components/PayToComponent.js.map +1 -1
- package/dist/es-legacy/components/Pix/components/PixQRDetails.js +1 -1
- package/dist/es-legacy/components/Pix/components/PixQRDetails.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/ThreeDS2/callSubmit3DS2Fingerprint.js +1 -1
- package/dist/es-legacy/components/ThreeDS2/callSubmit3DS2Fingerprint.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/constants.js +1 -1
- package/dist/es-legacy/components/UPI/constants.js.map +1 -1
- package/dist/es-legacy/components/components-name-map.js +1 -1
- package/dist/es-legacy/components/components-name-map.js.map +1 -1
- package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
- package/dist/es-legacy/components/index.js +1 -1
- package/dist/es-legacy/components/internal/Address/Address.js.map +1 -1
- package/dist/es-legacy/components/internal/BaseElement/BaseElement.js +1 -1
- package/dist/es-legacy/components/internal/BaseElement/BaseElement.js.map +1 -1
- package/dist/es-legacy/components/internal/Button/CopyButton.js +1 -1
- package/dist/es-legacy/components/internal/Button/CopyButton.js.map +1 -1
- package/dist/es-legacy/components/internal/Button/CopyIconButton.js +1 -1
- package/dist/es-legacy/components/internal/Button/CopyIconButton.js.map +1 -1
- package/dist/es-legacy/components/internal/Countdown/index.js +1 -1
- package/dist/es-legacy/components/internal/Countdown/index.js.map +1 -1
- package/dist/es-legacy/components/internal/FormFields/Checkbox/Checkbox.js +1 -1
- package/dist/es-legacy/components/internal/FormFields/Checkbox/Checkbox.js.map +1 -1
- package/dist/es-legacy/components/internal/FormFields/ConsentCheckbox/ConsentCheckbox.js +1 -1
- package/dist/es-legacy/components/internal/FormFields/ConsentCheckbox/ConsentCheckbox.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/Select/components/SelectButton.js +1 -1
- package/dist/es-legacy/components/internal/FormFields/Select/components/SelectButton.js.map +1 -1
- package/dist/es-legacy/components/internal/FormFields/Select/components/SelectList.js +1 -1
- package/dist/es-legacy/components/internal/FormFields/Select/components/SelectList.js.map +1 -1
- package/dist/es-legacy/components/internal/FormFields/Select/components/SelectListItem.js +1 -1
- package/dist/es-legacy/components/internal/FormFields/Select/components/SelectListItem.js.map +1 -1
- package/dist/es-legacy/components/internal/IssuerList/IssuerList.js +1 -1
- package/dist/es-legacy/components/internal/IssuerList/IssuerList.js.map +1 -1
- package/dist/es-legacy/components/internal/Modal/Modal.js +1 -1
- package/dist/es-legacy/components/internal/Modal/Modal.js.map +1 -1
- package/dist/es-legacy/components/internal/OpenInvoice/OpenInvoice.js +1 -1
- package/dist/es-legacy/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
- package/dist/es-legacy/components/internal/OpenInvoice/useSRPanelForOpenInvoiceErrors.js +1 -1
- package/dist/es-legacy/components/internal/OpenInvoice/useSRPanelForOpenInvoiceErrors.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/PersonalDetails/PersonalDetails.js +1 -1
- package/dist/es-legacy/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
- package/dist/es-legacy/components/internal/PhoneInput/PhoneInputFields.js +1 -1
- package/dist/es-legacy/components/internal/PhoneInput/PhoneInputFields.js.map +1 -1
- package/dist/es-legacy/components/internal/PhoneInput/PhoneInputForm.js +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/QRLoader/QRLoaderDetailsProvider.js +1 -1
- package/dist/es-legacy/components/internal/QRLoader/QRLoaderDetailsProvider.js.map +1 -1
- package/dist/es-legacy/components/internal/QRLoader/components/QRDetails.js +1 -1
- package/dist/es-legacy/components/internal/QRLoader/components/QRDetails.js.map +1 -1
- package/dist/es-legacy/components/internal/QRLoader/components/QRImage.js +1 -1
- package/dist/es-legacy/components/internal/QRLoader/components/QRImage.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/SFP/SecuredFieldsProviderHandlers.js +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProviderHandlers.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleBrandFromBinLookup.js +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleBrandFromBinLookup.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleConfig.js +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleConfig.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleIOSTouchEvents.js +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleIOSTouchEvents.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js +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/lib/securedField/utils/processPlaceholders.js.map +1 -1
- package/dist/es-legacy/components/internal/SegmentedControl/SegmentedControl.js +1 -1
- package/dist/es-legacy/components/internal/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/es-legacy/components/internal/SegmentedControl/SegmentedControlRegion.js +2 -0
- package/dist/es-legacy/components/internal/SegmentedControl/SegmentedControlRegion.js.map +1 -0
- package/dist/es-legacy/components/internal/StoreDetails/StoreDetails.js +1 -1
- package/dist/es-legacy/components/internal/StoreDetails/StoreDetails.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/components/internal/Voucher/Voucher.js +1 -1
- package/dist/es-legacy/components/internal/Voucher/Voucher.js.map +1 -1
- package/dist/es-legacy/components/internal/Voucher/utils.js.map +1 -1
- package/dist/es-legacy/components/tx-variants.js +1 -1
- package/dist/es-legacy/components/tx-variants.js.map +1 -1
- package/dist/es-legacy/core/Analytics/Analytics.js +1 -1
- package/dist/es-legacy/core/Analytics/Analytics.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/utils.js +1 -1
- package/dist/es-legacy/core/Analytics/utils.js.map +1 -1
- package/dist/es-legacy/core/Context/Resources.js +1 -1
- package/dist/es-legacy/core/Context/Resources.js.map +1 -1
- package/dist/es-legacy/core/ProcessResponse/PaymentMethods/PaymentMethods.js +1 -1
- package/dist/es-legacy/core/ProcessResponse/PaymentMethods/PaymentMethods.js.map +1 -1
- package/dist/es-legacy/core/ProcessResponse/PaymentMethods/utils.js +1 -1
- package/dist/es-legacy/core/ProcessResponse/PaymentMethods/utils.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/hooks/usePaymentStatusTimer/usePaymentStatusTimer.js +1 -1
- package/dist/es-legacy/hooks/usePaymentStatusTimer/usePaymentStatusTimer.js.map +1 -1
- package/dist/es-legacy/index.js +1 -1
- package/dist/es-legacy/language/Language.js.map +1 -1
- package/dist/es-legacy/utils/Validator/Validator.js.map +1 -1
- package/dist/es-legacy/utils/commonUtils.js.map +1 -1
- package/dist/es-legacy/utils/createSdkData.js +2 -0
- package/dist/es-legacy/utils/createSdkData.js.map +1 -0
- package/dist/es-legacy/utils/useForm/reducer.js +1 -1
- package/dist/es-legacy/utils/useForm/reducer.js.map +1 -1
- package/package.json +12 -12
- package/styles/adyen.css +15 -14
- package/dist/es/components/UPI/components/VpaInput/VpaInput.js +0 -2
- package/dist/es/components/UPI/components/VpaInput/VpaInput.js.map +0 -1
- package/dist/es/components/UPI/components/VpaInput/validate.js +0 -2
- package/dist/es/components/UPI/components/VpaInput/validate.js.map +0 -1
- package/dist/es-legacy/components/UPI/components/VpaInput/VpaInput.js +0 -2
- package/dist/es-legacy/components/UPI/components/VpaInput/VpaInput.js.map +0 -1
- package/dist/es-legacy/components/UPI/components/VpaInput/validate.js +0 -2
- package/dist/es-legacy/components/UPI/components/VpaInput/validate.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"../Errors/AdyenCheckoutError.js";function
|
|
1
|
+
import e from"../Errors/AdyenCheckoutError.js";function t(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function r(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),o.forEach(function(r){t(e,r,n[r])})}return e}function n(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function o(e,t){if(null==e)return{};var r,n,o,c={};if("undefined"!=typeof Reflect&&Reflect.ownKeys){for(r=Reflect.ownKeys(e),o=0;o<r.length;o++)n=r[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(c[n]=e[n]);return c}if(c=function(e,t){if(null==e)return{};var r,n,o={},c=Object.getOwnPropertyNames(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r]);return o}(e,t),Object.getOwnPropertySymbols)for(r=Object.getOwnPropertySymbols(e),o=0;o<r.length;o++)n=r[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(c[n]=e[n]);return c}class c{getImage(e={}){return this.getImageUrl(n(r({},e),{resourceContext:this.resourceContext}))}constructor(n){if(t(this,"resourceContext",void 0),t(this,"returnImage",({name:e,resourceContext:t,imageFolder:r="",parentFolder:n="",extension:o,size:c="",subFolder:s=""})=>`${t}images/${r}${s}${n}${e}${c}.${o}`),t(this,"getImageUrl",e=>{let{resourceContext:t,extension:n="svg"}=e,c=o(e,["resourceContext","extension"]);return e=>{const o=r({extension:n,resourceContext:t,imageFolder:"logos/",parentFolder:"",name:e},c);return this.returnImage(o)}}),!n)throw new e("IMPLEMENTATION_ERROR",'Resources module: "environmentsUrls.cdn" is not a valid URL');this.resourceContext=n}}export{c as Resources};
|
|
2
2
|
//# sourceMappingURL=Resources.js.map
|
|
@@ -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","
|
|
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,uBAAjB,GASAG,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,2 +1,2 @@
|
|
|
1
|
-
import{checkPaymentMethodsResponse as e,processPaymentMethods as t,processStoredPaymentMethods as n}from"./utils.js";function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class o{mapCreatedComponentType(e){return"card"===e?"scheme":e}has(e){return Boolean(this.paymentMethods.find(t=>t.type===this.mapCreatedComponentType(e)))}find(e){return this.paymentMethods.find(t=>t.type===this.mapCreatedComponentType(e))}findById(e){return this.paymentMethods.find(t=>t._id===e)}findStoredPaymentMethod(e){return this.storedPaymentMethods.find(t=>t.id===e)}constructor(o,s={}){d(this,"paymentMethods",[]),d(this,"storedPaymentMethods",[]),e(o),this.paymentMethods=o?t(o.paymentMethods,s):[],this.storedPaymentMethods=o?n(o.storedPaymentMethods,s):[]}}export{o as default};
|
|
1
|
+
import{checkPaymentMethodsResponse as e,processPaymentMethods as t,processStoredPaymentMethods as n}from"./utils.js";function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class o{mapCreatedComponentType(e){return"card"===e?"scheme":e}has(e){return Boolean(this.paymentMethods.find(t=>t.type===this.mapCreatedComponentType(e)))}find(e){return this.paymentMethods.find(t=>t.type===this.mapCreatedComponentType(e))}findById(e){return this.paymentMethods.find(t=>t._id===e)}findStoredPaymentMethod(e){return this.storedPaymentMethods.find(t=>t.id===e)}constructor(o,s={}){d(this,"paymentMethods",[]),d(this,"storedPaymentMethods",[]),e(o),this.paymentMethods=o?t(o.paymentMethods,s):[],this.storedPaymentMethods=o?n(o.storedPaymentMethods,s,o.paymentMethods||[]):[]}}export{o as default};
|
|
2
2
|
//# sourceMappingURL=PaymentMethods.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaymentMethods.js","sources":["../../../../../src/core/ProcessResponse/PaymentMethods/PaymentMethods.ts"],"sourcesContent":["import { RawPaymentMethod, PaymentMethodsResponse, RawStoredPaymentMethod } from '../../../types/global-types';\nimport { checkPaymentMethodsResponse, processPaymentMethods, processStoredPaymentMethods } from './utils';\n\nexport type PaymentMethod = RawPaymentMethod & {\n /**\n * Internal ID generated when parsing the payment method list\n */\n _id: string;\n};\n\nexport type StoredPaymentMethod = RawStoredPaymentMethod & {\n /**\n * A unique identifier of this stored payment method. Mapped from 'storedPaymentMethod.id'\n * @internal\n */\n storedPaymentMethodId?: string;\n /**\n * Internal flag\n * @internal\n */\n isStoredPaymentMethod?: boolean;\n};\n\nclass PaymentMethods {\n public paymentMethods: PaymentMethod[] = [];\n public storedPaymentMethods: StoredPaymentMethod[] = [];\n\n constructor(response: PaymentMethodsResponse, options = {}) {\n checkPaymentMethodsResponse(response);\n\n this.paymentMethods = response ? processPaymentMethods(response.paymentMethods, options) : [];\n this.storedPaymentMethods = response
|
|
1
|
+
{"version":3,"file":"PaymentMethods.js","sources":["../../../../../src/core/ProcessResponse/PaymentMethods/PaymentMethods.ts"],"sourcesContent":["import { RawPaymentMethod, PaymentMethodsResponse, RawStoredPaymentMethod } from '../../../types/global-types';\nimport { checkPaymentMethodsResponse, processPaymentMethods, processStoredPaymentMethods } from './utils';\n\nexport type PaymentMethod = RawPaymentMethod & {\n /**\n * Internal ID generated when parsing the payment method list\n */\n _id: string;\n};\n\nexport type StoredPaymentMethod = RawStoredPaymentMethod & {\n /**\n * A unique identifier of this stored payment method. Mapped from 'storedPaymentMethod.id'\n * @internal\n */\n storedPaymentMethodId?: string;\n /**\n * Internal flag\n * @internal\n */\n isStoredPaymentMethod?: boolean;\n};\n\nclass PaymentMethods {\n public paymentMethods: PaymentMethod[] = [];\n public storedPaymentMethods: StoredPaymentMethod[] = [];\n\n constructor(response: PaymentMethodsResponse, options = {}) {\n checkPaymentMethodsResponse(response);\n\n this.paymentMethods = response ? processPaymentMethods(response.paymentMethods, options) : [];\n this.storedPaymentMethods = response\n ? processStoredPaymentMethods(response.storedPaymentMethods, options, response.paymentMethods || [])\n : [];\n }\n\n private mapCreatedComponentType(pmType: string): string {\n // Components created as 'card' need to be matched with paymentMethod response objects with type 'scheme'\n return pmType === 'card' ? 'scheme' : pmType;\n }\n\n has(paymentMethod: string): boolean {\n return Boolean(this.paymentMethods.find(pm => pm.type === this.mapCreatedComponentType(paymentMethod)));\n }\n\n find(paymentMethod: string): PaymentMethod {\n return this.paymentMethods.find(pm => pm.type === this.mapCreatedComponentType(paymentMethod));\n }\n\n findById(paymentMethodId: string): PaymentMethod {\n return this.paymentMethods.find(pm => pm._id === paymentMethodId);\n }\n\n findStoredPaymentMethod(storedPaymentMethodId: string): StoredPaymentMethod {\n return this.storedPaymentMethods.find(pm => pm.id === storedPaymentMethodId);\n }\n}\n\nexport default PaymentMethods;\n"],"names":["PaymentMethods","mapCreatedComponentType","pmType","has","paymentMethod","Boolean","this","paymentMethods","find","pm","type","findById","paymentMethodId","_id","findStoredPaymentMethod","storedPaymentMethodId","storedPaymentMethods","id","constructor","response","options","_define_property","checkPaymentMethodsResponse","processPaymentMethods","processStoredPaymentMethods"],"mappings":"6OAuBA,MAAMA,EAaMC,uBAAAA,CAAwBC,GAE5B,MAAkB,SAAXA,EAAoB,SAAWA,CAC1C,CAEAC,GAAAA,CAAIC,GACA,OAAOC,QAAQC,KAAKC,eAAeC,KAAKC,GAAMA,EAAGC,OAASJ,KAAKL,wBAAwBG,IAC3F,CAEAI,IAAAA,CAAKJ,GACD,OAAOE,KAAKC,eAAeC,KAAKC,GAAMA,EAAGC,OAASJ,KAAKL,wBAAwBG,GACnF,CAEAO,QAAAA,CAASC,GACL,OAAON,KAAKC,eAAeC,KAAKC,GAAMA,EAAGI,MAAQD,EACrD,CAEAE,uBAAAA,CAAwBC,GACpB,OAAOT,KAAKU,qBAAqBR,KAAKC,GAAMA,EAAGQ,KAAOF,EAC1D,CA5BA,WAAAG,CAAYC,EAAkCC,EAAU,IAHxDC,EAAAf,KAAOC,iBAAkC,IACzCc,EAAAf,KAAOU,uBAA8C,IAGjDM,EAA4BH,GAE5Bb,KAAKC,eAAiBY,EAAWI,EAAsBJ,EAASZ,eAAgBa,GAAW,GAC3Fd,KAAKU,qBAAuBG,EACtBK,EAA4BL,EAASH,qBAAsBI,EAASD,EAASZ,gBAAkB,IAC/F,EACV"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{filterAllowedPaymentMethods as e,filterRemovedPaymentMethods as t,filterSupportedStoredPaymentMethods as r,filterEcomStoredPaymentMethods as
|
|
1
|
+
import{filterAllowedPaymentMethods as e,filterRemovedPaymentMethods as t,filterSupportedStoredPaymentMethods as r,filterEcomStoredPaymentMethods as n}from"./filters.js";import o from"../../../utils/uuid.js";function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){s(e,t,r[t])})}return e}function a(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function c(e){return a(i({},e),{_id:o()})}const u=(r,{allowPaymentMethods:n=[],removePaymentMethods:o=[]})=>r?r.filter(e,n).filter(t,o).map(c):[],d=(o,{allowPaymentMethods:s=[],removePaymentMethods:c=[]},u=[])=>o?o.filter(r).filter(e,s).filter(t,c).filter(n).map(e=>((e,t)=>{const r=function(e,t){if("scheme"!==e.type)return;const r=e.brand;if(!r)return;const n=t.find(e=>{var t;return"scheme"===e.type&&(null===(t=e.brands)||void 0===t?void 0:t.includes(r))});return null==n?void 0:n.fundingSource}(e,t);return i(a(i({},e),{storedPaymentMethodId:e.id,isStoredPaymentMethod:!0}),r&&{fundingSource:r})})(e,u)):[],l=e=>{var t,r;if("string"==typeof e)throw new Error('paymentMethodsResponse was provided but of an incorrect type (should be an object but a string was provided).Try JSON.parse("{...}") your paymentMethodsResponse.');if(e instanceof Array)throw new Error("paymentMethodsResponse was provided but of an incorrect type (should be an object but an array was provided).Please check you are passing the whole response.");!e||(null==e||null===(t=e.paymentMethods)||void 0===t?void 0:t.length)||(null==e||null===(r=e.storedPaymentMethods)||void 0===r?void 0:r.length)||console.warn("paymentMethodsResponse was provided but no payment methods were found.")};export{l as checkPaymentMethodsResponse,u as processPaymentMethods,d as processStoredPaymentMethods};
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|
|
@@ -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 } from './PaymentMethods';\n\nconst processStoredPaymentMethod = (
|
|
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,OAAAA,EAAAA,EAAwCG,UAAWH,SAA4C,QAA5CA,EAAAA,EAAwBpB,4BAAxBoB,IAAAA,SAAAA,EAA8CG,SAC5HC,QAAQC,KAAK"}
|
|
@@ -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.30.0",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
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Language as t}from"../language/Language.js";import e from"./RiskModule/RiskModule.js";import o from"./ProcessResponse/PaymentMethods/PaymentMethods.js";import{getComponentForAction as s}from"./ProcessResponse/PaymentAction/PaymentAction.js";import i from"./Analytics/Analytics.js";import{processGlobalOptions as n,assertConfigurationPropertiesAreValid as r}from"./utils.js";import a from"./CheckoutSession/CheckoutSession.js";import{hasOwnProperty as l}from"../utils/hasOwnProperty.js";import{Resources as c}from"./Context/Resources.js";import{SRPanel as h}from"./Errors/SRPanel.js";import p from"./core.registry.js";import{sanitizeResponse as d,verifyPaymentDidNotFail as m,cleanupFinalResult as u}from"../components/internal/UIElement/utils.js";import y,{IMPLEMENTATION_ERROR as f}from"./Errors/AdyenCheckoutError.js";import{THREEDS2_FULL as v}from"../components/ThreeDS2/constants.js";import{DEFAULT_LOCALE as g}from"../language/constants.js";import b from"./Services/get-translations.js";import{defaultProps as w}from"./core.defaultProps.js";import{formatLocale as j,formatCustomTranslations as C}from"../language/utils.js";import{resolveEnvironments as O}from"./Environment/Environment.js";import{LIBRARY_BUNDLE_TYPE as A,LIBRARY_VERSION as P}from"./config.js";import{AnalyticsLogEvent as E,LogEventType as M}from"./Analytics/events/AnalyticsLogEvent.js";import T from"./Errors/CancelError.js";import{AnalyticsService as x}from"./Analytics/AnalyticsService.js";import{AnalyticsEventQueue as R}from"./Analytics/AnalyticsEventQueue.js";function k(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function D(t){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{},s=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(s=s.concat(Object.getOwnPropertySymbols(o).filter(function(t){return Object.getOwnPropertyDescriptor(o,t).enumerable}))),s.forEach(function(e){k(t,e,o[e])})}return t}function I(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e.push.apply(e,o)}return e}(Object(e)).forEach(function(o){Object.defineProperty(t,o,Object.getOwnPropertyDescriptor(e,o))}),t}function S(t,e){if(null==t)return{};var o,s,i=function(t,e){if(null==t)return{};var o,s,i={},n=Object.keys(t);for(s=0;s<n.length;s++)o=n[s],e.indexOf(o)>=0||(i[o]=t[o]);return i}(t,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);for(s=0;s<n.length;s++)o=n[s],e.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(t,o)&&(i[o]=t[o])}return i}class U{static setBundleType(t){U.metadata.bundleType=t}static register(...t){p.add(...t)}register(...t){p.add(...t)}getComponent(t){return p.getComponent(t)}async initialize(){return await this.initializeCore(),this.validateCoreConfiguration(),await this.createCoreModules(),await this.requestAnalyticsAttemptId(),this}async initializeCore(){return this.session?this.session.setupSession(this.options).then(t=>{const{amount:e,shopperLocale:o,countryCode:s,paymentMethods:i}=t,n=S(t,["amount","shopperLocale","countryCode","paymentMethods"]);return this.setOptions(I(D({},n),{amount:this.options.order?this.options.order.remainingAmount:e,locale:this.options.locale||o,countryCode:this.options.countryCode||s})),this.createPaymentMethodsList(i),this}).catch(t=>(this.options.onError&&this.options.onError(t),Promise.reject(t))):(this.createPaymentMethodsList(),Promise.resolve(this))}async fetchLocaleTranslations(){try{return await b(this.cdnTranslationsUrl,U.metadata.version,this.options.locale)}catch(i){var t,e,o,s;i instanceof y?null===(t=(e=this.options).onError)||void 0===t||t.call(e,i):null===(o=(s=this.options).onError)||void 0===o||o.call(s,new y("ERROR","Failed to fetch translation",{cause:i}))}}validateCoreConfiguration(){if(this.options.paymentMethodsConfiguration&&console.warn('WARNING: "paymentMethodsConfiguration" is supported only by Drop-in.'),!this.options.countryCode)throw new y(f,"You must specify a countryCode when initializing checkout.");this.options.locale||this.setOptions({locale:g}),this.options.locale=j(this.options.locale),this.options.translations=C(this.options.translations)}submitDetails(t){let e=null;var o,s;(this.options.onAdditionalDetails&&(e=new Promise((e,o)=>{this.options.onAdditionalDetails({data:t},void 0,{resolve:e,reject:o})})),this.session&&(e=this.session.submitDetails(t).catch(t=>{var e,o;return null===(e=(o=this.options).onError)||void 0===e||e.call(o,t),Promise.reject(t)})),e)?e.then(d).then(m).then(this.afterAdditionalDetails).then(t=>{var e,o;u(t),null===(e=(o=this.options).onPaymentCompleted)||void 0===e||e.call(o,t)}).catch(t=>{var e,o;t instanceof T||(u(t),null===(e=(o=this.options).onPaymentFailed)||void 0===e||e.call(o,t))}):null===(o=(s=this.options).onError)||void 0===o||o.call(s,new y("IMPLEMENTATION_ERROR",'It can not submit the details. The callback "onAdditionalDetails" or the Session is not setup correctly.'))}createFromAction(t,e={}){if(!t||!t.type){if(l(t,"action")&&l(t,"resultCode"))throw new Error('createFromAction::Invalid Action - the passed action object itself has an "action" property and a "resultCode": have you passed in the whole response object by mistake?');throw new Error('createFromAction::Invalid Action - the passed action object does not have a "type" property')}if(t.type){const o=t.type===v?`${t.type}${t.subtype}`:t.paymentMethodType,i=new E({type:M.action,subType:E.getSubtypeFromActionType(t.type),message:`${o} action was handled by the SDK`,component:o});this.modules.analytics.sendAnalytics(i);const n=D({},this.getCorePropsForComponent(),e);return s(this,p,t,n)}return this.handleCreateError()}getCorePropsForComponent(){return I(D({},n(this.options)),{core:this,i18n:this.modules.i18n,modules:this.modules,session:this.session,loadingContext:this.loadingContext,cdnContext:this.cdnImagesUrl,createFromAction:this.createFromAction})}storeElementReference(t){t&&this.components.push(t)}handleCreateError(t){var e;const o=null!==(e=null==t?void 0:t.name)&&void 0!==e?e:"The passed payment method",s=t?`${o} is not a valid Checkout Component. What was passed as a txVariant was: ${JSON.stringify(t)}. Check if this payment method is configured in the Backoffice or if the txVariant is a valid one`:"No Payment Method component was passed";throw new Error(s)}createPaymentMethodsList(t){this.paymentMethodsResponse=new o(this.options.paymentMethodsResponse||t,this.options)}async createCoreModules(){var o,s;if(this.modules)return;const n=await this.fetchLocaleTranslations();this.modules=Object.freeze({risk:new e(this,I(D({},this.options),{loadingContext:this.loadingContext})),analytics:new i({eventQueue:new R,service:new x({analyticsContext:this.analyticsContext,clientKey:this.options.clientKey}),enabled:null===(o=this.options.analytics)||void 0===o?void 0:o.enabled,analyticsData:null===(s=this.options.analytics)||void 0===s?void 0:s.analyticsData}),resources:new c(this.cdnImagesUrl),i18n:new t({locale:this.options.locale,translations:n,customTranslations:this.options.translations}),srPanel:new h(this,D({},this.options.srConfig))})}async requestAnalyticsAttemptId(){var t;await this.modules.analytics.setUp(D({locale:this.options.locale},(null===(t=this.session)||void 0===t?void 0:t.id)&&{sessionId:this.session.id}))}constructor(t){var e;k(this,"session",void 0),k(this,"paymentMethodsResponse",void 0),k(this,"modules",void 0),k(this,"options",void 0),k(this,"analyticsContext",void 0),k(this,"loadingContext",void 0),k(this,"cdnImagesUrl",void 0),k(this,"cdnTranslationsUrl",void 0),k(this,"components",[]),k(this,"afterAdditionalDetails",t=>{if(this.options.afterAdditionalDetails&&(null==t?void 0:t.action)){const e=this.createFromAction(t.action);return this.options.afterAdditionalDetails(e),Promise.reject(new T("Handled by afterAdditionalDetails"))}return Promise.resolve(t)}),k(this,"update",(t={})=>(this.setOptions(t),this.initialize().then(()=>(this.components.forEach(e=>{const o=D({},t,this.session&&{session:this.session});e.update(o)}),this)))),k(this,"remove",t=>(this.components=this.components.filter(e=>e._id!==t._id),t.unmount(),this)),k(this,"setOptions",t=>{var e;this.options=I(D({},this.options,t),{locale:(null==t?void 0:t.locale)||(null===(e=this.options)||void 0===e?void 0:e.locale)})}),r(t),this.createFromAction=this.createFromAction.bind(this),this.setOptions(D({},w,t));const{apiUrl:o,analyticsUrl:s,cdnImagesUrl:i,cdnTranslationsUrl:n}=O(this.options.environment,this.options._environmentUrls);this.loadingContext=o,this.analyticsContext=s,this.cdnImagesUrl=i,this.cdnTranslationsUrl=n,this.session=this.options.session&&new a(this.options.session,this.options.clientKey,this.loadingContext);const l=null===(e=this.options.clientKey)||void 0===e?void 0:e.substring(0,4);var c,h;if(("test"===l||"live"===l)&&!this.loadingContext.includes(l))throw new y("IMPLEMENTATION_ERROR",`Error: you are using a ${l} clientKey against the ${(null===(c=this.options._environmentUrls)||void 0===c?void 0:c.api)||this.options.environment} environment`);"pub."===l&&console.debug(`The value you are passing as your "clientKey" looks like an originKey (${null===(h=this.options.clientKey)||void 0===h?void 0:h.substring(0,12)}..). Although this is supported it is not the recommended way to integrate. To generate a clientKey, see the documentation (https://docs.adyen.com/development-resources/client-side-authentication/migrate-from-origin-key-to-client-key/) for more details.`);this.options.exposeLibraryMetadata&&(window.AdyenWebMetadata=U.metadata)}}k(U,"metadata",{version:P,bundleType:A}),k(U,"registry",p);export{U as default};
|
|
1
|
+
import{Language as t}from"../language/Language.js";import e from"./RiskModule/RiskModule.js";import o from"./ProcessResponse/PaymentMethods/PaymentMethods.js";import{getComponentForAction as s}from"./ProcessResponse/PaymentAction/PaymentAction.js";import i from"./Analytics/Analytics.js";import{processGlobalOptions as n,assertConfigurationPropertiesAreValid as r}from"./utils.js";import a from"./CheckoutSession/CheckoutSession.js";import{hasOwnProperty as l}from"../utils/hasOwnProperty.js";import{Resources as c}from"./Context/Resources.js";import{SRPanel as h}from"./Errors/SRPanel.js";import p from"./core.registry.js";import{sanitizeResponse as d,verifyPaymentDidNotFail as m,cleanupFinalResult as u}from"../components/internal/UIElement/utils.js";import y,{IMPLEMENTATION_ERROR as f}from"./Errors/AdyenCheckoutError.js";import{THREEDS2_FULL as v}from"../components/ThreeDS2/constants.js";import{DEFAULT_LOCALE as g}from"../language/constants.js";import b from"./Services/get-translations.js";import{defaultProps as w}from"./core.defaultProps.js";import{formatLocale as j,formatCustomTranslations as C}from"../language/utils.js";import{resolveEnvironments as O}from"./Environment/Environment.js";import{LIBRARY_BUNDLE_TYPE as A,LIBRARY_VERSION as P}from"./config.js";import{AnalyticsLogEvent as E,LogEventType as M}from"./Analytics/events/AnalyticsLogEvent.js";import R from"./Errors/CancelError.js";import{AnalyticsService as T}from"./Analytics/AnalyticsService.js";import{AnalyticsEventQueue as x}from"./Analytics/AnalyticsEventQueue.js";function I(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function D(t){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{},s=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(s=s.concat(Object.getOwnPropertySymbols(o).filter(function(t){return Object.getOwnPropertyDescriptor(o,t).enumerable}))),s.forEach(function(e){I(t,e,o[e])})}return t}function k(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e.push.apply(e,o)}return e}(Object(e)).forEach(function(o){Object.defineProperty(t,o,Object.getOwnPropertyDescriptor(e,o))}),t}function S(t,e){if(null==t)return{};var o,s,i,n={};if("undefined"!=typeof Reflect&&Reflect.ownKeys){for(o=Reflect.ownKeys(t),i=0;i<o.length;i++)s=o[i],e.indexOf(s)>=0||Object.prototype.propertyIsEnumerable.call(t,s)&&(n[s]=t[s]);return n}if(n=function(t,e){if(null==t)return{};var o,s,i={},n=Object.getOwnPropertyNames(t);for(s=0;s<n.length;s++)o=n[s],e.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(t,o)&&(i[o]=t[o]);return i}(t,e),Object.getOwnPropertySymbols)for(o=Object.getOwnPropertySymbols(t),i=0;i<o.length;i++)s=o[i],e.indexOf(s)>=0||Object.prototype.propertyIsEnumerable.call(t,s)&&(n[s]=t[s]);return n}class U{static setBundleType(t){U.metadata.bundleType=t}static register(...t){p.add(...t)}register(...t){p.add(...t)}getComponent(t){return p.getComponent(t)}async initialize(){return await this.initializeCore(),this.validateCoreConfiguration(),await this.createCoreModules(),await this.requestAnalyticsAttemptId(),this}async initializeCore(){return this.session?this.session.setupSession(this.options).then(t=>{const{amount:e,shopperLocale:o,countryCode:s,paymentMethods:i}=t,n=S(t,["amount","shopperLocale","countryCode","paymentMethods"]);return this.setOptions(k(D({},n),{amount:this.options.order?this.options.order.remainingAmount:e,locale:this.options.locale||o,countryCode:this.options.countryCode||s})),this.createPaymentMethodsList(i),this}).catch(t=>(this.options.onError&&this.options.onError(t),Promise.reject(t))):(this.createPaymentMethodsList(),Promise.resolve(this))}async fetchLocaleTranslations(){try{return await b(this.cdnTranslationsUrl,U.metadata.version,this.options.locale)}catch(i){var t,e,o,s;i instanceof y?null===(t=(e=this.options).onError)||void 0===t||t.call(e,i):null===(o=(s=this.options).onError)||void 0===o||o.call(s,new y("ERROR","Failed to fetch translation",{cause:i}))}}validateCoreConfiguration(){if(this.options.paymentMethodsConfiguration&&console.warn('WARNING: "paymentMethodsConfiguration" is supported only by Drop-in.'),!this.options.countryCode)throw new y(f,"You must specify a countryCode when initializing checkout.");this.options.locale||this.setOptions({locale:g}),this.options.locale=j(this.options.locale),this.options.translations=C(this.options.translations)}submitDetails(t){let e=null;var o,s;(this.options.onAdditionalDetails&&(e=new Promise((e,o)=>{this.options.onAdditionalDetails({data:t},void 0,{resolve:e,reject:o})})),this.session&&(e=this.session.submitDetails(t).catch(t=>{var e,o;return null===(e=(o=this.options).onError)||void 0===e||e.call(o,t),Promise.reject(t)})),e)?e.then(d).then(m).then(this.afterAdditionalDetails).then(t=>{var e,o;u(t),null===(e=(o=this.options).onPaymentCompleted)||void 0===e||e.call(o,t)}).catch(t=>{var e,o;t instanceof R||(u(t),null===(e=(o=this.options).onPaymentFailed)||void 0===e||e.call(o,t))}):null===(o=(s=this.options).onError)||void 0===o||o.call(s,new y("IMPLEMENTATION_ERROR",'It can not submit the details. The callback "onAdditionalDetails" or the Session is not setup correctly.'))}createFromAction(t,e={}){if(!t||!t.type){if(l(t,"action")&&l(t,"resultCode"))throw new Error('createFromAction::Invalid Action - the passed action object itself has an "action" property and a "resultCode": have you passed in the whole response object by mistake?');throw new Error('createFromAction::Invalid Action - the passed action object does not have a "type" property')}if(t.type){const o=t.type===v?`${t.type}${t.subtype}`:t.paymentMethodType,i=new E({type:M.action,subType:E.getSubtypeFromActionType(t.type),message:`${o} action was handled by the SDK`,component:o});this.modules.analytics.sendAnalytics(i);const n=D({},this.getCorePropsForComponent(),e);return s(this,p,t,n)}return this.handleCreateError()}getCorePropsForComponent(){return k(D({},n(this.options)),{core:this,i18n:this.modules.i18n,modules:this.modules,session:this.session,loadingContext:this.loadingContext,cdnContext:this.cdnImagesUrl,createFromAction:this.createFromAction})}storeElementReference(t){t&&this.components.push(t)}handleCreateError(t){var e;const o=null!==(e=null==t?void 0:t.name)&&void 0!==e?e:"The passed payment method",s=t?`${o} is not a valid Checkout Component. What was passed as a txVariant was: ${JSON.stringify(t)}. Check if this payment method is configured in the Backoffice or if the txVariant is a valid one`:"No Payment Method component was passed";throw new Error(s)}createPaymentMethodsList(t){this.paymentMethodsResponse=new o(this.options.paymentMethodsResponse||t,this.options)}async createCoreModules(){var o,s;if(this.modules)return;const n=await this.fetchLocaleTranslations();this.modules=Object.freeze({risk:new e(this,k(D({},this.options),{loadingContext:this.loadingContext})),analytics:new i({eventQueue:new x,service:new T({analyticsContext:this.analyticsContext,clientKey:this.options.clientKey}),enabled:null===(o=this.options.analytics)||void 0===o?void 0:o.enabled,analyticsData:null===(s=this.options.analytics)||void 0===s?void 0:s.analyticsData}),resources:new c(this.cdnImagesUrl),i18n:new t({locale:this.options.locale,translations:n,customTranslations:this.options.translations}),srPanel:new h(this,D({},this.options.srConfig))})}async requestAnalyticsAttemptId(){var t;await this.modules.analytics.setUp(D({locale:this.options.locale},(null===(t=this.session)||void 0===t?void 0:t.id)&&{sessionId:this.session.id}))}constructor(t){var e;I(this,"session",void 0),I(this,"paymentMethodsResponse",void 0),I(this,"modules",void 0),I(this,"options",void 0),I(this,"analyticsContext",void 0),I(this,"loadingContext",void 0),I(this,"cdnImagesUrl",void 0),I(this,"cdnTranslationsUrl",void 0),I(this,"components",[]),I(this,"afterAdditionalDetails",t=>{if(this.options.afterAdditionalDetails&&(null==t?void 0:t.action)){const e=this.createFromAction(t.action);return this.options.afterAdditionalDetails(e),Promise.reject(new R("Handled by afterAdditionalDetails"))}return Promise.resolve(t)}),I(this,"update",(t={})=>(this.setOptions(t),this.initialize().then(()=>(this.components.forEach(e=>{const o=D({},t,this.session&&{session:this.session});e.update(o)}),this)))),I(this,"remove",t=>(this.components=this.components.filter(e=>e._id!==t._id),t.unmount(),this)),I(this,"setOptions",t=>{var e;this.options=k(D({},this.options,t),{locale:(null==t?void 0:t.locale)||(null===(e=this.options)||void 0===e?void 0:e.locale)})}),r(t),this.createFromAction=this.createFromAction.bind(this),this.setOptions(D({},w,t));const{apiUrl:o,analyticsUrl:s,cdnImagesUrl:i,cdnTranslationsUrl:n}=O(this.options.environment,this.options._environmentUrls);this.loadingContext=o,this.analyticsContext=s,this.cdnImagesUrl=i,this.cdnTranslationsUrl=n,this.session=this.options.session&&new a(this.options.session,this.options.clientKey,this.loadingContext);const l=null===(e=this.options.clientKey)||void 0===e?void 0:e.substring(0,4);var c,h;if(("test"===l||"live"===l)&&!this.loadingContext.includes(l))throw new y("IMPLEMENTATION_ERROR",`Error: you are using a ${l} clientKey against the ${(null===(c=this.options._environmentUrls)||void 0===c?void 0:c.api)||this.options.environment} environment`);"pub."===l&&console.debug(`The value you are passing as your "clientKey" looks like an originKey (${null===(h=this.options.clientKey)||void 0===h?void 0:h.substring(0,12)}..). Although this is supported it is not the recommended way to integrate. To generate a clientKey, see the documentation (https://docs.adyen.com/development-resources/client-side-authentication/migrate-from-origin-key-to-client-key/) for more details.`);this.options.exposeLibraryMetadata&&(window.AdyenWebMetadata=U.metadata)}}I(U,"metadata",{version:P,bundleType:A}),I(U,"registry",p);export{U as default};
|
|
2
2
|
//# sourceMappingURL=core.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sources":["../../../src/core/core.ts"],"sourcesContent":["import Language from '../language';\nimport UIElement from '../components/internal/UIElement/UIElement';\nimport RiskModule from './RiskModule';\nimport PaymentMethods from './ProcessResponse/PaymentMethods';\nimport getComponentForAction from './ProcessResponse/PaymentAction';\nimport Analytics from './Analytics';\nimport { assertConfigurationPropertiesAreValid, processGlobalOptions } from './utils';\nimport Session from './CheckoutSession';\nimport { hasOwnProperty } from '../utils/hasOwnProperty';\nimport { Resources } from './Context/Resources';\nimport { SRPanel } from './Errors/SRPanel';\nimport registry, { NewableComponent } from './core.registry';\nimport { cleanupFinalResult, sanitizeResponse, verifyPaymentDidNotFail } from '../components/internal/UIElement/utils';\nimport AdyenCheckoutError, { IMPLEMENTATION_ERROR } from './Errors/AdyenCheckoutError';\nimport { THREEDS2_FULL } from '../components/ThreeDS2/constants';\nimport { DEFAULT_LOCALE } from '../language/constants';\nimport getTranslations from './Services/get-translations';\nimport { defaultProps } from './core.defaultProps';\nimport { formatCustomTranslations, formatLocale } from '../language/utils';\nimport { resolveEnvironments } from './Environment';\nimport { LIBRARY_BUNDLE_TYPE, LIBRARY_VERSION } from './config';\n\nimport type { PaymentAction, PaymentResponseData } from '../types/global-types';\nimport type { CoreConfiguration, ICore, AdditionalDetailsData, CoreModules } from './types';\nimport type { Translations } from '../language/types';\nimport type { UIElementProps } from '../components/internal/UIElement/types';\nimport { AnalyticsLogEvent, LogEventType } from './Analytics/events/AnalyticsLogEvent';\nimport CancelError from './Errors/CancelError';\nimport { AnalyticsService } from './Analytics/AnalyticsService';\nimport { AnalyticsEventQueue } from './Analytics/AnalyticsEventQueue';\n\nclass Core implements ICore {\n public session?: Session;\n public paymentMethodsResponse: PaymentMethods;\n public modules: CoreModules;\n public options: CoreConfiguration;\n\n public analyticsContext: string;\n public loadingContext: string;\n public cdnImagesUrl: string;\n public cdnTranslationsUrl: string;\n\n private components: UIElement[] = [];\n\n public static readonly metadata = {\n version: LIBRARY_VERSION,\n bundleType: LIBRARY_BUNDLE_TYPE\n };\n\n public static registry = registry;\n\n public static setBundleType(type: string): void {\n Core.metadata.bundleType = type;\n }\n\n public static register(...items: NewableComponent[]) {\n registry.add(...items);\n }\n\n /**\n * Used internally by the PaymentMethod components to auto-register themselves\n * @internal\n */\n public register(...items: NewableComponent[]) {\n registry.add(...items);\n }\n\n public getComponent(txVariant: string) {\n return registry.getComponent(txVariant);\n }\n\n constructor(props: CoreConfiguration) {\n assertConfigurationPropertiesAreValid(props);\n\n this.createFromAction = this.createFromAction.bind(this);\n\n this.setOptions({ ...defaultProps, ...props });\n\n const { apiUrl, analyticsUrl, cdnImagesUrl, cdnTranslationsUrl } = resolveEnvironments(\n this.options.environment,\n this.options._environmentUrls\n );\n\n this.loadingContext = apiUrl;\n this.analyticsContext = analyticsUrl;\n this.cdnImagesUrl = cdnImagesUrl;\n this.cdnTranslationsUrl = cdnTranslationsUrl;\n\n this.session = this.options.session && new Session(this.options.session, this.options.clientKey, this.loadingContext);\n\n const clientKeyType = this.options.clientKey?.substring(0, 4);\n if ((clientKeyType === 'test' || clientKeyType === 'live') && !this.loadingContext.includes(clientKeyType)) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n `Error: you are using a ${clientKeyType} clientKey against the ${this.options._environmentUrls?.api || this.options.environment} environment`\n );\n }\n if (clientKeyType === 'pub.') {\n console.debug(\n `The value you are passing as your \"clientKey\" looks like an originKey (${this.options.clientKey?.substring(0, 12)}..). Although this is supported it is not the recommended way to integrate. To generate a clientKey, see the documentation (https://docs.adyen.com/development-resources/client-side-authentication/migrate-from-origin-key-to-client-key/) for more details.`\n );\n }\n\n if (this.options.exposeLibraryMetadata) {\n window['AdyenWebMetadata'] = Core.metadata;\n }\n }\n\n public async initialize(): Promise<this> {\n await this.initializeCore();\n this.validateCoreConfiguration();\n await this.createCoreModules();\n await this.requestAnalyticsAttemptId();\n return this;\n }\n\n private async initializeCore(): Promise<this> {\n if (this.session) {\n return this.session\n .setupSession(this.options)\n .then(sessionResponse => {\n const { amount, shopperLocale, countryCode, paymentMethods, ...rest } = sessionResponse;\n\n this.setOptions({\n ...rest,\n amount: this.options.order ? this.options.order.remainingAmount : amount,\n locale: this.options.locale || shopperLocale,\n countryCode: this.options.countryCode || countryCode\n });\n\n this.createPaymentMethodsList(paymentMethods);\n\n return this;\n })\n .catch(error => {\n if (this.options.onError) this.options.onError(error);\n return Promise.reject(error);\n });\n }\n\n this.createPaymentMethodsList();\n return Promise.resolve(this);\n }\n\n private async fetchLocaleTranslations(): Promise<Translations> {\n try {\n return await getTranslations(this.cdnTranslationsUrl, Core.metadata.version, this.options.locale);\n } catch (error: unknown) {\n if (error instanceof AdyenCheckoutError) this.options.onError?.(error);\n else this.options.onError?.(new AdyenCheckoutError('ERROR', 'Failed to fetch translation', { cause: error }));\n }\n }\n\n private validateCoreConfiguration(): void {\n // @ts-ignore This property does not exist, although merchants might be using when migrating from v5 to v6\n if (this.options.paymentMethodsConfiguration) {\n console.warn('WARNING: \"paymentMethodsConfiguration\" is supported only by Drop-in.');\n }\n\n if (!this.options.countryCode) {\n throw new AdyenCheckoutError(IMPLEMENTATION_ERROR, 'You must specify a countryCode when initializing checkout.');\n }\n\n if (!this.options.locale) {\n this.setOptions({ locale: DEFAULT_LOCALE });\n }\n\n this.options.locale = formatLocale(this.options.locale);\n this.options.translations = formatCustomTranslations(this.options.translations);\n }\n\n /**\n * Method used when handling redirects. It submits details using 'onAdditionalDetails' or the Sessions flow if available.\n *\n * @public\n * @see {https://docs.adyen.com/online-payments/build-your-integration/?platform=Web&integration=Components&version=5.55.1#handle-the-redirect}\n * @param details - Details object containing the redirectResult\n */\n public submitDetails(details: AdditionalDetailsData['data']): void {\n let promise = null;\n\n if (this.options.onAdditionalDetails) {\n promise = new Promise((resolve, reject) => {\n this.options.onAdditionalDetails({ data: details }, undefined, { resolve, reject });\n });\n }\n\n if (this.session) {\n promise = this.session.submitDetails(details).catch(error => {\n this.options.onError?.(error);\n return Promise.reject(error);\n });\n }\n\n if (!promise) {\n this.options.onError?.(\n new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'It can not submit the details. The callback \"onAdditionalDetails\" or the Session is not setup correctly.'\n )\n );\n return;\n }\n\n promise\n .then(sanitizeResponse)\n .then(verifyPaymentDidNotFail)\n .then(this.afterAdditionalDetails)\n .then((response: PaymentResponseData) => {\n cleanupFinalResult(response);\n this.options.onPaymentCompleted?.(response);\n })\n .catch((e: PaymentResponseData | Error) => {\n if (e instanceof CancelError) {\n return;\n }\n\n cleanupFinalResult(e as PaymentResponseData);\n this.options.onPaymentFailed?.(e as PaymentResponseData);\n });\n }\n\n private readonly afterAdditionalDetails = (response: PaymentResponseData): Promise<PaymentResponseData | Error> => {\n /**\n * After the user is redirected back, a request to `/details` or `/paymentDetails` will be made.\n * Typically, the response will not include an action object, except for the case of `paybybank_pix` payment method.\n * In terms of `paybybank_pix`, the action UIElement will be created and passed to the `afterAdditionalDetails` callback, allowing it to be mounted on the page.\n */\n if (this.options.afterAdditionalDetails && response?.action) {\n const actionEle = this.createFromAction(response.action);\n this.options.afterAdditionalDetails(actionEle);\n return Promise.reject(new CancelError('Handled by afterAdditionalDetails'));\n }\n return Promise.resolve(response);\n };\n\n /**\n * Instantiates a new element component ready to be mounted from an action object\n *\n * @param action - action defining the component with the component data\n * @param options - options that will be merged to the global Checkout props\n * @returns new UIElement\n */\n public createFromAction(action: PaymentAction, options = {}): UIElement {\n if (!action || !action.type) {\n if (hasOwnProperty(action, 'action') && hasOwnProperty(action, 'resultCode')) {\n throw new Error(\n 'createFromAction::Invalid Action - the passed action object itself has an \"action\" property and ' +\n 'a \"resultCode\": have you passed in the whole response object by mistake?'\n );\n }\n throw new Error('createFromAction::Invalid Action - the passed action object does not have a \"type\" property');\n }\n\n if (action.type) {\n // 'threeDS2' OR 'qrCode', 'voucher', 'redirect', 'await', 'bankTransfer`\n const component = action.type === THREEDS2_FULL ? `${action.type}${action.subtype}` : action.paymentMethodType;\n\n const event = new AnalyticsLogEvent({\n type: LogEventType.action,\n subType: AnalyticsLogEvent.getSubtypeFromActionType(action.type),\n message: `${component} action was handled by the SDK`,\n component\n });\n this.modules.analytics.sendAnalytics(event);\n\n const props = {\n ...this.getCorePropsForComponent(),\n ...options\n };\n\n return getComponentForAction(this, registry, action, props);\n }\n\n return this.handleCreateError();\n }\n\n /**\n * Updates global configurations, resets the internal state and remounts each element.\n *\n * @param options - props to update\n * @returns this - the element instance\n */\n public update = (options: Partial<CoreConfiguration> = {}): Promise<this> => {\n this.setOptions(options);\n\n return this.initialize().then(() => {\n this.components.forEach(component => {\n // We update only with the new options that have been received\n const newProps: Partial<UIElementProps> = {\n ...options,\n ...(this.session && { session: this.session })\n };\n component.update(newProps);\n });\n return this;\n });\n };\n\n /**\n * Remove the reference of a component\n * @param component - reference to the component to be removed\n * @returns this - the element instance\n * // TODO: Do we need this?\n */\n public remove = (component): this => {\n this.components = this.components.filter(c => c._id !== component._id);\n component.unmount();\n\n return this;\n };\n\n /**\n * @internal\n * Create or update the config object passed when AdyenCheckout is initialised (environment, clientKey, etc...)\n */\n private setOptions = (options: CoreConfiguration): void => {\n this.options = {\n ...this.options,\n ...options,\n locale: options?.locale || this.options?.locale\n };\n };\n\n /**\n * @internal\n * @returns props for a new UIElement\n */\n public getCorePropsForComponent(): any {\n const globalOptions = processGlobalOptions(this.options);\n\n return {\n ...globalOptions,\n core: this,\n i18n: this.modules.i18n,\n modules: this.modules,\n session: this.session,\n loadingContext: this.loadingContext,\n cdnContext: this.cdnImagesUrl,\n createFromAction: this.createFromAction\n };\n }\n\n public storeElementReference(element: UIElement) {\n if (element) {\n this.components.push(element);\n }\n }\n\n /**\n * @internal\n */\n private handleCreateError(paymentMethod?): never {\n const paymentMethodName = paymentMethod?.name ?? 'The passed payment method';\n const errorMessage = paymentMethod\n ? `${paymentMethodName} is not a valid Checkout Component. What was passed as a txVariant was: ${JSON.stringify(\n paymentMethod\n )}. Check if this payment method is configured in the Backoffice or if the txVariant is a valid one`\n : 'No Payment Method component was passed';\n\n throw new Error(errorMessage);\n }\n\n private createPaymentMethodsList(paymentMethodsResponse?: PaymentMethods): void {\n this.paymentMethodsResponse = new PaymentMethods(this.options.paymentMethodsResponse || paymentMethodsResponse, this.options);\n }\n\n private async createCoreModules(): Promise<void> {\n if (this.modules) {\n if (process.env.NODE_ENV === 'development') {\n console.warn('Core: Core modules are already created.');\n }\n return;\n }\n\n const translations = await this.fetchLocaleTranslations();\n\n this.modules = Object.freeze({\n risk: new RiskModule(this, { ...this.options, loadingContext: this.loadingContext }),\n analytics: new Analytics({\n eventQueue: new AnalyticsEventQueue(),\n service: new AnalyticsService({\n analyticsContext: this.analyticsContext,\n clientKey: this.options.clientKey\n }),\n enabled: this.options.analytics?.enabled,\n analyticsData: this.options.analytics?.analyticsData\n }),\n resources: new Resources(this.cdnImagesUrl),\n i18n: new Language({\n locale: this.options.locale,\n translations,\n customTranslations: this.options.translations\n }),\n srPanel: new SRPanel(this, { ...this.options.srConfig })\n });\n }\n\n private async requestAnalyticsAttemptId(): Promise<void> {\n await this.modules.analytics.setUp({\n locale: this.options.locale,\n ...(this.session?.id && { sessionId: this.session.id })\n });\n }\n}\n\nexport default Core;\n"],"names":["Core","setBundleType","type","metadata","bundleType","register","items","registry","add","getComponent","txVariant","initialize","this","initializeCore","validateCoreConfiguration","createCoreModules","requestAnalyticsAttemptId","session","setupSession","options","then","sessionResponse","amount","shopperLocale","countryCode","paymentMethods","rest","setOptions","_object_spread_props","_object_spread","order","remainingAmount","locale","createPaymentMethodsList","catch","error","onError","Promise","reject","resolve","fetchLocaleTranslations","getTranslations","cdnTranslationsUrl","version","_this_options_onError","_this_options","_this_options_onError1","_this_options1","AdyenCheckoutError","call","cause","paymentMethodsConfiguration","console","warn","IMPLEMENTATION_ERROR","DEFAULT_LOCALE","formatLocale","translations","formatCustomTranslations","submitDetails","details","promise","onAdditionalDetails","data","undefined","sanitizeResponse","verifyPaymentDidNotFail","afterAdditionalDetails","response","_this_options_onPaymentCompleted","cleanupFinalResult","onPaymentCompleted","e","_this_options_onPaymentFailed","CancelError","onPaymentFailed","createFromAction","action","hasOwnProperty","Error","component","THREEDS2_FULL","subtype","paymentMethodType","event","AnalyticsLogEvent","LogEventType","subType","getSubtypeFromActionType","message","modules","analytics","sendAnalytics","props","getCorePropsForComponent","getComponentForAction","handleCreateError","processGlobalOptions","globalOptions","core","i18n","loadingContext","cdnContext","cdnImagesUrl","storeElementReference","element","components","push","paymentMethod","paymentMethodName","name","errorMessage","JSON","stringify","paymentMethodsResponse","PaymentMethods","_this_options_analytics","_this_options_analytics1","Object","freeze","risk","RiskModule","Analytics","eventQueue","AnalyticsEventQueue","service","AnalyticsService","analyticsContext","clientKey","enabled","analyticsData","resources","Resources","Language","customTranslations","srPanel","SRPanel","srConfig","_this_session","setUp","id","sessionId","constructor","_this_options_clientKey","_define_property","actionEle","update","forEach","newProps","remove","filter","c","_id","unmount","assertConfigurationPropertiesAreValid","bind","defaultProps","apiUrl","analyticsUrl","resolveEnvironments","environment","_environmentUrls","Session","clientKeyType","substring","_this_options__environmentUrls","_this_options_clientKey1","includes","api","debug","exposeLibraryMetadata","window","LIBRARY_VERSION","LIBRARY_BUNDLE_TYPE"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.js","sources":["../../../src/core/core.ts"],"sourcesContent":["import Language from '../language';\nimport UIElement from '../components/internal/UIElement/UIElement';\nimport RiskModule from './RiskModule';\nimport PaymentMethods from './ProcessResponse/PaymentMethods';\nimport getComponentForAction from './ProcessResponse/PaymentAction';\nimport Analytics from './Analytics';\nimport { assertConfigurationPropertiesAreValid, processGlobalOptions } from './utils';\nimport Session from './CheckoutSession';\nimport { hasOwnProperty } from '../utils/hasOwnProperty';\nimport { Resources } from './Context/Resources';\nimport { SRPanel } from './Errors/SRPanel';\nimport registry, { NewableComponent } from './core.registry';\nimport { cleanupFinalResult, sanitizeResponse, verifyPaymentDidNotFail } from '../components/internal/UIElement/utils';\nimport AdyenCheckoutError, { IMPLEMENTATION_ERROR } from './Errors/AdyenCheckoutError';\nimport { THREEDS2_FULL } from '../components/ThreeDS2/constants';\nimport { DEFAULT_LOCALE } from '../language/constants';\nimport getTranslations from './Services/get-translations';\nimport { defaultProps } from './core.defaultProps';\nimport { formatCustomTranslations, formatLocale } from '../language/utils';\nimport { resolveEnvironments } from './Environment';\nimport { LIBRARY_BUNDLE_TYPE, LIBRARY_VERSION } from './config';\n\nimport type { PaymentAction, PaymentResponseData } from '../types/global-types';\nimport type { CoreConfiguration, ICore, AdditionalDetailsData, CoreModules } from './types';\nimport type { Translations } from '../language/types';\nimport type { UIElementProps } from '../components/internal/UIElement/types';\nimport { AnalyticsLogEvent, LogEventType } from './Analytics/events/AnalyticsLogEvent';\nimport CancelError from './Errors/CancelError';\nimport { AnalyticsService } from './Analytics/AnalyticsService';\nimport { AnalyticsEventQueue } from './Analytics/AnalyticsEventQueue';\n\nclass Core implements ICore {\n public session?: Session;\n public paymentMethodsResponse: PaymentMethods;\n public modules: CoreModules;\n public options: CoreConfiguration;\n\n public analyticsContext: string;\n public loadingContext: string;\n public cdnImagesUrl: string;\n public cdnTranslationsUrl: string;\n\n private components: UIElement[] = [];\n\n public static readonly metadata = {\n version: LIBRARY_VERSION,\n bundleType: LIBRARY_BUNDLE_TYPE\n };\n\n public static registry = registry;\n\n public static setBundleType(type: string): void {\n Core.metadata.bundleType = type;\n }\n\n public static register(...items: NewableComponent[]) {\n registry.add(...items);\n }\n\n /**\n * Used internally by the PaymentMethod components to auto-register themselves\n * @internal\n */\n public register(...items: NewableComponent[]) {\n registry.add(...items);\n }\n\n public getComponent(txVariant: string) {\n return registry.getComponent(txVariant);\n }\n\n constructor(props: CoreConfiguration) {\n assertConfigurationPropertiesAreValid(props);\n\n this.createFromAction = this.createFromAction.bind(this);\n\n this.setOptions({ ...defaultProps, ...props });\n\n const { apiUrl, analyticsUrl, cdnImagesUrl, cdnTranslationsUrl } = resolveEnvironments(\n this.options.environment,\n this.options._environmentUrls\n );\n\n this.loadingContext = apiUrl;\n this.analyticsContext = analyticsUrl;\n this.cdnImagesUrl = cdnImagesUrl;\n this.cdnTranslationsUrl = cdnTranslationsUrl;\n\n this.session = this.options.session && new Session(this.options.session, this.options.clientKey, this.loadingContext);\n\n const clientKeyType = this.options.clientKey?.substring(0, 4);\n if ((clientKeyType === 'test' || clientKeyType === 'live') && !this.loadingContext.includes(clientKeyType)) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n `Error: you are using a ${clientKeyType} clientKey against the ${this.options._environmentUrls?.api || this.options.environment} environment`\n );\n }\n if (clientKeyType === 'pub.') {\n console.debug(\n `The value you are passing as your \"clientKey\" looks like an originKey (${this.options.clientKey?.substring(0, 12)}..). Although this is supported it is not the recommended way to integrate. To generate a clientKey, see the documentation (https://docs.adyen.com/development-resources/client-side-authentication/migrate-from-origin-key-to-client-key/) for more details.`\n );\n }\n\n if (this.options.exposeLibraryMetadata) {\n window['AdyenWebMetadata'] = Core.metadata;\n }\n }\n\n public async initialize(): Promise<this> {\n await this.initializeCore();\n this.validateCoreConfiguration();\n await this.createCoreModules();\n await this.requestAnalyticsAttemptId();\n return this;\n }\n\n private async initializeCore(): Promise<this> {\n if (this.session) {\n return this.session\n .setupSession(this.options)\n .then(sessionResponse => {\n const { amount, shopperLocale, countryCode, paymentMethods, ...rest } = sessionResponse;\n\n this.setOptions({\n ...rest,\n amount: this.options.order ? this.options.order.remainingAmount : amount,\n locale: this.options.locale || shopperLocale,\n countryCode: this.options.countryCode || countryCode\n });\n\n this.createPaymentMethodsList(paymentMethods);\n\n return this;\n })\n .catch(error => {\n if (this.options.onError) this.options.onError(error);\n return Promise.reject(error);\n });\n }\n\n this.createPaymentMethodsList();\n return Promise.resolve(this);\n }\n\n private async fetchLocaleTranslations(): Promise<Translations> {\n try {\n return await getTranslations(this.cdnTranslationsUrl, Core.metadata.version, this.options.locale);\n } catch (error: unknown) {\n if (error instanceof AdyenCheckoutError) this.options.onError?.(error);\n else this.options.onError?.(new AdyenCheckoutError('ERROR', 'Failed to fetch translation', { cause: error }));\n }\n }\n\n private validateCoreConfiguration(): void {\n // @ts-ignore This property does not exist, although merchants might be using when migrating from v5 to v6\n if (this.options.paymentMethodsConfiguration) {\n console.warn('WARNING: \"paymentMethodsConfiguration\" is supported only by Drop-in.');\n }\n\n if (!this.options.countryCode) {\n throw new AdyenCheckoutError(IMPLEMENTATION_ERROR, 'You must specify a countryCode when initializing checkout.');\n }\n\n if (!this.options.locale) {\n this.setOptions({ locale: DEFAULT_LOCALE });\n }\n\n this.options.locale = formatLocale(this.options.locale);\n this.options.translations = formatCustomTranslations(this.options.translations);\n }\n\n /**\n * Method used when handling redirects. It submits details using 'onAdditionalDetails' or the Sessions flow if available.\n *\n * @public\n * @see {https://docs.adyen.com/online-payments/build-your-integration/?platform=Web&integration=Components&version=5.55.1#handle-the-redirect}\n * @param details - Details object containing the redirectResult\n */\n public submitDetails(details: AdditionalDetailsData['data']): void {\n let promise = null;\n\n if (this.options.onAdditionalDetails) {\n promise = new Promise((resolve, reject) => {\n this.options.onAdditionalDetails({ data: details }, undefined, { resolve, reject });\n });\n }\n\n if (this.session) {\n promise = this.session.submitDetails(details).catch(error => {\n this.options.onError?.(error);\n return Promise.reject(error);\n });\n }\n\n if (!promise) {\n this.options.onError?.(\n new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'It can not submit the details. The callback \"onAdditionalDetails\" or the Session is not setup correctly.'\n )\n );\n return;\n }\n\n promise\n .then(sanitizeResponse)\n .then(verifyPaymentDidNotFail)\n .then(this.afterAdditionalDetails)\n .then((response: PaymentResponseData) => {\n cleanupFinalResult(response);\n this.options.onPaymentCompleted?.(response);\n })\n .catch((e: PaymentResponseData | Error) => {\n if (e instanceof CancelError) {\n return;\n }\n\n cleanupFinalResult(e as PaymentResponseData);\n this.options.onPaymentFailed?.(e as PaymentResponseData);\n });\n }\n\n private readonly afterAdditionalDetails = (response: PaymentResponseData): Promise<PaymentResponseData | Error> => {\n /**\n * After the user is redirected back, a request to `/details` or `/paymentDetails` will be made.\n * Typically, the response will not include an action object, except for the case of `paybybank_pix` payment method.\n * In terms of `paybybank_pix`, the action UIElement will be created and passed to the `afterAdditionalDetails` callback, allowing it to be mounted on the page.\n */\n if (this.options.afterAdditionalDetails && response?.action) {\n const actionEle = this.createFromAction(response.action);\n this.options.afterAdditionalDetails(actionEle);\n return Promise.reject(new CancelError('Handled by afterAdditionalDetails'));\n }\n return Promise.resolve(response);\n };\n\n /**\n * Instantiates a new element component ready to be mounted from an action object\n *\n * @param action - action defining the component with the component data\n * @param options - options that will be merged to the global Checkout props\n * @returns new UIElement\n */\n public createFromAction(action: PaymentAction, options = {}): UIElement {\n if (!action || !action.type) {\n if (hasOwnProperty(action, 'action') && hasOwnProperty(action, 'resultCode')) {\n throw new Error(\n 'createFromAction::Invalid Action - the passed action object itself has an \"action\" property and ' +\n 'a \"resultCode\": have you passed in the whole response object by mistake?'\n );\n }\n throw new Error('createFromAction::Invalid Action - the passed action object does not have a \"type\" property');\n }\n\n if (action.type) {\n // 'threeDS2' OR 'qrCode', 'voucher', 'redirect', 'await', 'bankTransfer`\n const component = action.type === THREEDS2_FULL ? `${action.type}${action.subtype}` : action.paymentMethodType;\n\n const event = new AnalyticsLogEvent({\n type: LogEventType.action,\n subType: AnalyticsLogEvent.getSubtypeFromActionType(action.type),\n message: `${component} action was handled by the SDK`,\n component\n });\n this.modules.analytics.sendAnalytics(event);\n\n const props = {\n ...this.getCorePropsForComponent(),\n ...options\n };\n\n return getComponentForAction(this, registry, action, props);\n }\n\n return this.handleCreateError();\n }\n\n /**\n * Updates global configurations, resets the internal state and remounts each element.\n *\n * @param options - props to update\n * @returns this - the element instance\n */\n public update = (options: Partial<CoreConfiguration> = {}): Promise<this> => {\n this.setOptions(options);\n\n return this.initialize().then(() => {\n this.components.forEach(component => {\n // We update only with the new options that have been received\n const newProps: Partial<UIElementProps> = {\n ...options,\n ...(this.session && { session: this.session })\n };\n component.update(newProps);\n });\n return this;\n });\n };\n\n /**\n * Remove the reference of a component\n * @param component - reference to the component to be removed\n * @returns this - the element instance\n * // TODO: Do we need this?\n */\n public remove = (component): this => {\n this.components = this.components.filter(c => c._id !== component._id);\n component.unmount();\n\n return this;\n };\n\n /**\n * @internal\n * Create or update the config object passed when AdyenCheckout is initialised (environment, clientKey, etc...)\n */\n private setOptions = (options: CoreConfiguration): void => {\n this.options = {\n ...this.options,\n ...options,\n locale: options?.locale || this.options?.locale\n };\n };\n\n /**\n * @internal\n * @returns props for a new UIElement\n */\n public getCorePropsForComponent(): any {\n const globalOptions = processGlobalOptions(this.options);\n\n return {\n ...globalOptions,\n core: this,\n i18n: this.modules.i18n,\n modules: this.modules,\n session: this.session,\n loadingContext: this.loadingContext,\n cdnContext: this.cdnImagesUrl,\n createFromAction: this.createFromAction\n };\n }\n\n public storeElementReference(element: UIElement) {\n if (element) {\n this.components.push(element);\n }\n }\n\n /**\n * @internal\n */\n private handleCreateError(paymentMethod?): never {\n const paymentMethodName = paymentMethod?.name ?? 'The passed payment method';\n const errorMessage = paymentMethod\n ? `${paymentMethodName} is not a valid Checkout Component. What was passed as a txVariant was: ${JSON.stringify(\n paymentMethod\n )}. Check if this payment method is configured in the Backoffice or if the txVariant is a valid one`\n : 'No Payment Method component was passed';\n\n throw new Error(errorMessage);\n }\n\n private createPaymentMethodsList(paymentMethodsResponse?: PaymentMethods): void {\n this.paymentMethodsResponse = new PaymentMethods(this.options.paymentMethodsResponse || paymentMethodsResponse, this.options);\n }\n\n private async createCoreModules(): Promise<void> {\n if (this.modules) {\n if (process.env.NODE_ENV === 'development') {\n console.warn('Core: Core modules are already created.');\n }\n return;\n }\n\n const translations = await this.fetchLocaleTranslations();\n\n this.modules = Object.freeze({\n risk: new RiskModule(this, { ...this.options, loadingContext: this.loadingContext }),\n analytics: new Analytics({\n eventQueue: new AnalyticsEventQueue(),\n service: new AnalyticsService({\n analyticsContext: this.analyticsContext,\n clientKey: this.options.clientKey\n }),\n enabled: this.options.analytics?.enabled,\n analyticsData: this.options.analytics?.analyticsData\n }),\n resources: new Resources(this.cdnImagesUrl),\n i18n: new Language({\n locale: this.options.locale,\n translations,\n customTranslations: this.options.translations\n }),\n srPanel: new SRPanel(this, { ...this.options.srConfig })\n });\n }\n\n private async requestAnalyticsAttemptId(): Promise<void> {\n await this.modules.analytics.setUp({\n locale: this.options.locale,\n ...(this.session?.id && { sessionId: this.session.id })\n });\n }\n}\n\nexport default Core;\n"],"names":["Core","setBundleType","type","metadata","bundleType","register","items","registry","add","getComponent","txVariant","initialize","this","initializeCore","validateCoreConfiguration","createCoreModules","requestAnalyticsAttemptId","session","setupSession","options","then","sessionResponse","amount","shopperLocale","countryCode","paymentMethods","rest","setOptions","_object_spread_props","_object_spread","order","remainingAmount","locale","createPaymentMethodsList","catch","error","onError","Promise","reject","resolve","fetchLocaleTranslations","getTranslations","cdnTranslationsUrl","version","_this_options_onError","_this_options","_this_options_onError1","_this_options1","AdyenCheckoutError","call","cause","paymentMethodsConfiguration","console","warn","IMPLEMENTATION_ERROR","DEFAULT_LOCALE","formatLocale","translations","formatCustomTranslations","submitDetails","details","promise","onAdditionalDetails","data","undefined","sanitizeResponse","verifyPaymentDidNotFail","afterAdditionalDetails","response","_this_options_onPaymentCompleted","cleanupFinalResult","onPaymentCompleted","e","_this_options_onPaymentFailed","CancelError","onPaymentFailed","createFromAction","action","hasOwnProperty","Error","component","THREEDS2_FULL","subtype","paymentMethodType","event","AnalyticsLogEvent","LogEventType","subType","getSubtypeFromActionType","message","modules","analytics","sendAnalytics","props","getCorePropsForComponent","getComponentForAction","handleCreateError","processGlobalOptions","globalOptions","core","i18n","loadingContext","cdnContext","cdnImagesUrl","storeElementReference","element","components","push","paymentMethod","paymentMethodName","name","_ref","errorMessage","JSON","stringify","paymentMethodsResponse","PaymentMethods","_this_options_analytics","_this_options_analytics1","Object","freeze","risk","RiskModule","Analytics","eventQueue","AnalyticsEventQueue","service","AnalyticsService","analyticsContext","clientKey","enabled","analyticsData","resources","Resources","Language","customTranslations","srPanel","SRPanel","srConfig","_this_session","setUp","id","sessionId","constructor","_this_options_clientKey","_define_property","actionEle","update","forEach","newProps","remove","filter","c","_id","unmount","assertConfigurationPropertiesAreValid","bind","defaultProps","apiUrl","analyticsUrl","resolveEnvironments","environment","_environmentUrls","Session","clientKeyType","substring","_this_options__environmentUrls","_this_options_clientKey1","includes","api","debug","exposeLibraryMetadata","window","LIBRARY_VERSION","LIBRARY_BUNDLE_TYPE"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useState as e,useRef as t,useEffect as o}from"../../external/preact/hooks/dist/hooks.js";import r from"../../core/Services/payment-status.js";import{processPaymentStatusResponse as a}from"../../core/ProcessResponse/PaymentStatus/PaymentStatus.js";import n from"../../core/Errors/AdyenCheckoutError.js";import{DEFAULT_PAYMENT_STATUS_TIMER_THROTTLE_TIME_MS as s,DEFAULT_PAYMENT_STATUS_TIMER_THROTTLE_INTERVAL_MS as l,DEFAULT_PAYMENT_STATUS_TIMER_DELAY_MS as p}from"./constants.js";function c(c){const[
|
|
1
|
+
import{useState as e,useRef as t,useEffect as o}from"../../external/preact/hooks/dist/hooks.js";import r from"../../core/Services/payment-status.js";import{processPaymentStatusResponse as a}from"../../core/ProcessResponse/PaymentStatus/PaymentStatus.js";import n from"../../core/Errors/AdyenCheckoutError.js";import{DEFAULT_PAYMENT_STATUS_TIMER_THROTTLE_TIME_MS as s,DEFAULT_PAYMENT_STATUS_TIMER_THROTTLE_INTERVAL_MS as l,DEFAULT_PAYMENT_STATUS_TIMER_DELAY_MS as p}from"./constants.js";function c(c){var i;const[u,d]=e(!1),[m,y]=e(!1),[f,h]=e(!0),[v,R]=e(null!==(i=c.delay)&&void 0!==i?i:p),[E,w]=e(100),[k,T]=e(0),[D,g]=e(!1),j=t(null),x=async()=>{const{paymentData:e,clientKey:t,throttleInterval:o,pollStatus:s}=c,l=null!=s?s:()=>r(e,t,c.loadingContext,o);var p;D||(null===(p=c.onActionHandled)||void 0===p||p.call(c,{componentType:c.type,actionDescription:"polling-started"}),g(!0));return l().then(a).catch(e=>({type:"network-error",props:e})).then(e=>{switch(e.type){case"success":(e=>{if(d(!0),h(!1),e.props.payload){const t={data:{details:{payload:e.props.payload},paymentData:c.paymentData}};c.onComplete(t)}else y(!0),c.onError(new n("ERROR","successful result, but no payload in response"))})(e);break;case"error":(e=>{if(y(!0),h(!1),e.props.payload){const t={data:{details:{payload:e.props.payload},paymentData:c.paymentData}};c.onComplete(t)}else{const e=new n("ERROR","error result with no payload in response");c.onError(e)}})(e);break;default:h(!1)}})};o(()=>{x()},[]),o(()=>{if(m||u||f)return;return j.current=setTimeout(()=>{(async()=>{var e,t;const o=performance.now();await x();const r=performance.now(),a=Math.round(r-o),n=k+a+v;var p;T(n),n>=(null!==(e=c.throttleTime)&&void 0!==e?e:s)&&v!==(null!==(t=c.throttleInterval)&&void 0!==t?t:l)&&R(null!==(p=c.throttleInterval)&&void 0!==p?p:l)})()},v),()=>{clearTimeout(j.current)}},[m,u,f,v,c.throttleTime,c.throttleInterval,k]);return{state:{completed:u,expired:m,loading:f,percentage:E,timePassed:k},actions:{onTick:e=>{w(e.percentage)},onTimeUp:()=>{y(!0),c.onError(new n("ERROR","Payment Expired"))}}}}export{c as usePaymentStatusTimer};
|
|
2
2
|
//# sourceMappingURL=usePaymentStatusTimer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePaymentStatusTimer.js","sources":["../../../../src/hooks/usePaymentStatusTimer/usePaymentStatusTimer.tsx"],"sourcesContent":["import { useState, useEffect, useRef } from 'preact/hooks';\nimport checkPaymentStatus from '../../core/Services/payment-status';\nimport { processPaymentStatusResponse } from '../../core/ProcessResponse/PaymentStatus';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { CountdownTime } from '../../components/internal/Countdown/types';\nimport { PaymentStatusTimerActions, PaymentStatusTimerState, UsePaymentStatusTimerProps } from './types';\nimport {\n DEFAULT_PAYMENT_STATUS_TIMER_DELAY_MS,\n DEFAULT_PAYMENT_STATUS_TIMER_THROTTLE_INTERVAL_MS,\n DEFAULT_PAYMENT_STATUS_TIMER_THROTTLE_TIME_MS\n} from './constants';\nimport { AdditionalDetailsData, ProcessedPaymentStatusResponse } from '../../types';\n\nexport function usePaymentStatusTimer(props: UsePaymentStatusTimerProps): { state: PaymentStatusTimerState; actions: PaymentStatusTimerActions } {\n const [completed, setCompleted] = useState(false);\n const [expired, setExpired] = useState(false);\n const [loading, setLoading] = useState(true);\n const [delay, setDelay] = useState(props.delay ?? DEFAULT_PAYMENT_STATUS_TIMER_DELAY_MS);\n const [percentage, setPercentage] = useState(100);\n const [timePassed, setTimePassed] = useState(0);\n const [onPollingStartedActionHandled, setOnPollingStartedActionHandled] = useState(false);\n const timeoutRef = useRef<NodeJS.Timeout | number | null>(null);\n\n const onTick = (time: CountdownTime): void => {\n setPercentage(time.percentage);\n };\n\n const onTimeUp = (): void => {\n setExpired(true);\n props.onError(new AdyenCheckoutError('ERROR', 'Payment Expired'));\n };\n\n const onComplete = (status: ProcessedPaymentStatusResponse): void => {\n setCompleted(true);\n setLoading(false);\n\n if (status.props.payload) {\n const additionalDetailsData: AdditionalDetailsData = {\n data: {\n details: { payload: status.props.payload },\n paymentData: props.paymentData\n }\n };\n props.onComplete(additionalDetailsData);\n } else {\n setExpired(true);\n props.onError(new AdyenCheckoutError('ERROR', 'successful result, but no payload in response'));\n }\n };\n\n const onError = (status: ProcessedPaymentStatusResponse): void => {\n setExpired(true);\n setLoading(false);\n\n if (status.props.payload) {\n const additionalDetailsData: AdditionalDetailsData = {\n data: {\n details: { payload: status.props.payload },\n paymentData: props.paymentData\n }\n };\n props.onComplete(additionalDetailsData);\n } else {\n const error = new AdyenCheckoutError('ERROR', 'error result with no payload in response');\n props.onError(error);\n }\n };\n\n const checkStatus = async (): Promise<void> => {\n const { paymentData, clientKey, throttleInterval, pollStatus } = props;\n\n const pollStatusFunction = pollStatus ?? (() => checkPaymentStatus(paymentData, clientKey, props.loadingContext, throttleInterval));\n\n if (!onPollingStartedActionHandled) {\n props.onActionHandled?.({ componentType: props.type, actionDescription: 'polling-started' });\n setOnPollingStartedActionHandled(true);\n }\n\n return pollStatusFunction()\n .then(processPaymentStatusResponse)\n .catch(\n (error: unknown) =>\n ({\n type: 'network-error',\n props: error\n }) as ProcessedPaymentStatusResponse\n )\n .then((status: ProcessedPaymentStatusResponse) => {\n switch (status.type) {\n case 'success':\n onComplete(status);\n break;\n case 'error':\n onError(status);\n break;\n default:\n setLoading(false);\n }\n });\n };\n\n useEffect(() => {\n void checkStatus();\n }, []);\n\n useEffect(() => {\n if (expired || completed || loading) {\n return;\n }\n\n const statusInterval = async (): Promise<void> => {\n const start = performance.now();\n await checkStatus();\n const end = performance.now();\n const responseTime = Math.round(end - start);\n\n const actualTimePassed = timePassed + responseTime + delay;\n setTimePassed(actualTimePassed);\n\n if (\n actualTimePassed >= (props.throttleTime ?? DEFAULT_PAYMENT_STATUS_TIMER_THROTTLE_TIME_MS) &&\n delay !== (props.throttleInterval ?? DEFAULT_PAYMENT_STATUS_TIMER_THROTTLE_INTERVAL_MS)\n ) {\n setDelay(props.throttleInterval ?? DEFAULT_PAYMENT_STATUS_TIMER_THROTTLE_INTERVAL_MS);\n }\n };\n\n timeoutRef.current = setTimeout(() => {\n void statusInterval();\n }, delay);\n\n return () => {\n clearTimeout(timeoutRef.current);\n };\n }, [expired, completed, loading, delay, props.throttleTime, props.throttleInterval, timePassed]);\n\n const state: PaymentStatusTimerState = {\n completed,\n expired,\n loading,\n percentage,\n timePassed\n };\n\n const actions: PaymentStatusTimerActions = {\n onTick,\n onTimeUp\n };\n\n return { state, actions };\n}\n"],"names":["usePaymentStatusTimer","props","completed","setCompleted","useState","expired","setExpired","loading","setLoading","delay","setDelay","DEFAULT_PAYMENT_STATUS_TIMER_DELAY_MS","percentage","setPercentage","timePassed","setTimePassed","onPollingStartedActionHandled","setOnPollingStartedActionHandled","timeoutRef","useRef","checkStatus","async","paymentData","clientKey","throttleInterval","pollStatus","pollStatusFunction","checkPaymentStatus","loadingContext","onActionHandled","componentType","type","actionDescription","then","processPaymentStatusResponse","catch","error","status","payload","additionalDetailsData","data","details","onComplete","onError","AdyenCheckoutError","useEffect","current","setTimeout","start","performance","now","end","responseTime","Math","round","actualTimePassed","throttleTime","DEFAULT_PAYMENT_STATUS_TIMER_THROTTLE_TIME_MS","DEFAULT_PAYMENT_STATUS_TIMER_THROTTLE_INTERVAL_MS","statusInterval","clearTimeout","state","actions","onTick","time","onTimeUp"],"mappings":"seAaO,SAASA,EAAsBC,
|
|
1
|
+
{"version":3,"file":"usePaymentStatusTimer.js","sources":["../../../../src/hooks/usePaymentStatusTimer/usePaymentStatusTimer.tsx"],"sourcesContent":["import { useState, useEffect, useRef } from 'preact/hooks';\nimport checkPaymentStatus from '../../core/Services/payment-status';\nimport { processPaymentStatusResponse } from '../../core/ProcessResponse/PaymentStatus';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { CountdownTime } from '../../components/internal/Countdown/types';\nimport { PaymentStatusTimerActions, PaymentStatusTimerState, UsePaymentStatusTimerProps } from './types';\nimport {\n DEFAULT_PAYMENT_STATUS_TIMER_DELAY_MS,\n DEFAULT_PAYMENT_STATUS_TIMER_THROTTLE_INTERVAL_MS,\n DEFAULT_PAYMENT_STATUS_TIMER_THROTTLE_TIME_MS\n} from './constants';\nimport { AdditionalDetailsData, ProcessedPaymentStatusResponse } from '../../types';\n\nexport function usePaymentStatusTimer(props: UsePaymentStatusTimerProps): { state: PaymentStatusTimerState; actions: PaymentStatusTimerActions } {\n const [completed, setCompleted] = useState(false);\n const [expired, setExpired] = useState(false);\n const [loading, setLoading] = useState(true);\n const [delay, setDelay] = useState(props.delay ?? DEFAULT_PAYMENT_STATUS_TIMER_DELAY_MS);\n const [percentage, setPercentage] = useState(100);\n const [timePassed, setTimePassed] = useState(0);\n const [onPollingStartedActionHandled, setOnPollingStartedActionHandled] = useState(false);\n const timeoutRef = useRef<NodeJS.Timeout | number | null>(null);\n\n const onTick = (time: CountdownTime): void => {\n setPercentage(time.percentage);\n };\n\n const onTimeUp = (): void => {\n setExpired(true);\n props.onError(new AdyenCheckoutError('ERROR', 'Payment Expired'));\n };\n\n const onComplete = (status: ProcessedPaymentStatusResponse): void => {\n setCompleted(true);\n setLoading(false);\n\n if (status.props.payload) {\n const additionalDetailsData: AdditionalDetailsData = {\n data: {\n details: { payload: status.props.payload },\n paymentData: props.paymentData\n }\n };\n props.onComplete(additionalDetailsData);\n } else {\n setExpired(true);\n props.onError(new AdyenCheckoutError('ERROR', 'successful result, but no payload in response'));\n }\n };\n\n const onError = (status: ProcessedPaymentStatusResponse): void => {\n setExpired(true);\n setLoading(false);\n\n if (status.props.payload) {\n const additionalDetailsData: AdditionalDetailsData = {\n data: {\n details: { payload: status.props.payload },\n paymentData: props.paymentData\n }\n };\n props.onComplete(additionalDetailsData);\n } else {\n const error = new AdyenCheckoutError('ERROR', 'error result with no payload in response');\n props.onError(error);\n }\n };\n\n const checkStatus = async (): Promise<void> => {\n const { paymentData, clientKey, throttleInterval, pollStatus } = props;\n\n const pollStatusFunction = pollStatus ?? (() => checkPaymentStatus(paymentData, clientKey, props.loadingContext, throttleInterval));\n\n if (!onPollingStartedActionHandled) {\n props.onActionHandled?.({ componentType: props.type, actionDescription: 'polling-started' });\n setOnPollingStartedActionHandled(true);\n }\n\n return pollStatusFunction()\n .then(processPaymentStatusResponse)\n .catch(\n (error: unknown) =>\n ({\n type: 'network-error',\n props: error\n }) as ProcessedPaymentStatusResponse\n )\n .then((status: ProcessedPaymentStatusResponse) => {\n switch (status.type) {\n case 'success':\n onComplete(status);\n break;\n case 'error':\n onError(status);\n break;\n default:\n setLoading(false);\n }\n });\n };\n\n useEffect(() => {\n void checkStatus();\n }, []);\n\n useEffect(() => {\n if (expired || completed || loading) {\n return;\n }\n\n const statusInterval = async (): Promise<void> => {\n const start = performance.now();\n await checkStatus();\n const end = performance.now();\n const responseTime = Math.round(end - start);\n\n const actualTimePassed = timePassed + responseTime + delay;\n setTimePassed(actualTimePassed);\n\n if (\n actualTimePassed >= (props.throttleTime ?? DEFAULT_PAYMENT_STATUS_TIMER_THROTTLE_TIME_MS) &&\n delay !== (props.throttleInterval ?? DEFAULT_PAYMENT_STATUS_TIMER_THROTTLE_INTERVAL_MS)\n ) {\n setDelay(props.throttleInterval ?? DEFAULT_PAYMENT_STATUS_TIMER_THROTTLE_INTERVAL_MS);\n }\n };\n\n timeoutRef.current = setTimeout(() => {\n void statusInterval();\n }, delay);\n\n return () => {\n clearTimeout(timeoutRef.current);\n };\n }, [expired, completed, loading, delay, props.throttleTime, props.throttleInterval, timePassed]);\n\n const state: PaymentStatusTimerState = {\n completed,\n expired,\n loading,\n percentage,\n timePassed\n };\n\n const actions: PaymentStatusTimerActions = {\n onTick,\n onTimeUp\n };\n\n return { state, actions };\n}\n"],"names":["usePaymentStatusTimer","props","completed","setCompleted","useState","expired","setExpired","loading","setLoading","delay","setDelay","DEFAULT_PAYMENT_STATUS_TIMER_DELAY_MS","percentage","setPercentage","timePassed","setTimePassed","onPollingStartedActionHandled","setOnPollingStartedActionHandled","timeoutRef","useRef","checkStatus","async","paymentData","clientKey","throttleInterval","pollStatus","pollStatusFunction","checkPaymentStatus","loadingContext","onActionHandled","componentType","type","actionDescription","then","processPaymentStatusResponse","catch","error","status","payload","additionalDetailsData","data","details","onComplete","onError","AdyenCheckoutError","useEffect","current","setTimeout","start","performance","now","end","responseTime","Math","round","actualTimePassed","throttleTime","DEFAULT_PAYMENT_STATUS_TIMER_THROTTLE_TIME_MS","DEFAULT_PAYMENT_STATUS_TIMER_THROTTLE_INTERVAL_MS","statusInterval","clearTimeout","state","actions","onTick","time","onTimeUp"],"mappings":"seAaO,SAASA,EAAsBC,GAICA,IAAAA,EAHnC,MAAOC,EAAWC,GAAgBC,GAAS,IACpCC,EAASC,GAAcF,GAAS,IAChCG,EAASC,GAAcJ,GAAS,IAChCK,EAAOC,GAAYN,EAAoB,QAAXH,EAAAA,EAAMQ,aAANR,IAAAA,EAAAA,EAAeU,IAC3CC,EAAYC,GAAiBT,EAAS,MACtCU,EAAYC,GAAiBX,EAAS,IACtCY,EAA+BC,GAAoCb,GAAS,GAC7Ec,EAAaC,EAAuC,MA+CpDC,EAAcC,UAChB,MAAMC,YAAEA,EAAWC,UAAEA,EAASC,iBAAEA,EAAgBC,WAAEA,GAAexB,EAE3DyB,EAAqBD,QAAAA,EAAe,IAAME,EAAmBL,EAAaC,EAAWtB,EAAM2B,eAAgBJ,GAG7GvB,IAAAA,EADCe,IACoB,QAArBf,EAAAA,EAAM4B,uBAAN5B,IAAAA,GAAAA,OAAAA,EAAwB,CAAE6B,cAAe7B,EAAM8B,KAAMC,kBAAmB,oBACxEf,GAAiC,IAGrC,OAAOS,IACFO,KAAKC,GACLC,MACIC,KAEOL,KAAM,gBACN9B,MAAOmC,KAGlBH,KAAMI,IACH,OAAQA,EAAON,MACX,IAAK,UAzDF,CAACM,IAIhB,GAHAlC,GAAa,GACbK,GAAW,GAEP6B,EAAOpC,MAAMqC,QAAS,CACtB,MAAMC,EAA+C,CACjDC,KAAM,CACFC,QAAS,CAAEH,QAASD,EAAOpC,MAAMqC,SACjChB,YAAarB,EAAMqB,cAG3BrB,EAAMyC,WAAWH,EACrB,MACIjC,GAAW,GACXL,EAAM0C,QAAQ,IAAIC,EAAmB,QAAS,mDA4ClCF,CAAWL,GACX,MACJ,IAAK,QA1CL,CAACA,IAIb,GAHA/B,GAAW,GACXE,GAAW,GAEP6B,EAAOpC,MAAMqC,QAAS,CACtB,MAAMC,EAA+C,CACjDC,KAAM,CACFC,QAAS,CAAEH,QAASD,EAAOpC,MAAMqC,SACjChB,YAAarB,EAAMqB,cAG3BrB,EAAMyC,WAAWH,EACrB,KAAO,CACH,MAAMH,EAAQ,IAAIQ,EAAmB,QAAS,4CAC9C3C,EAAM0C,QAAQP,EAClB,GA4BgBO,CAAQN,GACR,MACJ,QACI7B,GAAW,OAK/BqC,EAAU,KACDzB,KACN,IAEHyB,EAAU,KACN,GAAIxC,GAAWH,GAAaK,EACxB,OAwBJ,OAJAW,EAAW4B,QAAUC,WAAW,KAjBT1B,eAUMpB,EACVA,EAVf,MAAM+C,EAAQC,YAAYC,YACpB9B,IACN,MAAM+B,EAAMF,YAAYC,MAClBE,EAAeC,KAAKC,MAAMH,EAAMH,GAEhCO,EAAmBzC,EAAasC,EAAe3C,EAOxCR,IAAAA,EANbc,EAAcwC,GAGVA,YAAqBtD,EAAAA,EAAMuD,oBAANvD,IAAAA,EAAAA,EAAsBwD,IAC3ChD,KAAiC,QAAtBR,EAAAA,EAAMuB,wBAANvB,IAAAA,EAAAA,EAA0ByD,IAErChD,EAA+B,QAAtBT,EAAAA,EAAMuB,4BAANvB,EAAAA,EAA0ByD,IAKlCC,IACNlD,GAEI,KACHmD,aAAa1C,EAAW4B,WAE7B,CAACzC,EAASH,EAAWK,EAASE,EAAOR,EAAMuD,aAAcvD,EAAMuB,iBAAkBV,IAepF,MAAO,CAAE+C,MAb8B,CACnC3D,YACAG,UACAE,UACAK,aACAE,cAQYgD,QAL2B,CACvCC,OA1HYC,IACZnD,EAAcmD,EAAKpD,aA0HnBqD,SAvHa,KACb3D,GAAW,GACXL,EAAM0C,QAAQ,IAAIC,EAAmB,QAAS,sBAyHtD"}
|
package/dist/es-legacy/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import*as o from"./components/index.js";export{o as components};export{default as initializeFastlane}from"./components/PayPalFastlane/initializeFastlane.js";export{AdyenCheckout}from"./core/AdyenCheckout.js";export{CardElement as Card}from"./components/Card/Card.js";export{default as Bancontact}from"./components/Card/Bancontact.js";export{CustomCard}from"./components/CustomCard/CustomCard.js";export{default as ThreeDS2Challenge}from"./components/ThreeDS2/ThreeDS2Challenge.js";export{default as ThreeDS2DeviceFingerprint}from"./components/ThreeDS2/ThreeDS2DeviceFingerprint.js";export{AchElement as Ach}from"./components/Ach/Ach.js";export{default as BacsDirectDebit}from"./components/BacsDD/BacsDD.js";export{default as SepaDirectDebit}from"./components/Sepa/Sepa.js";export{PreAuthorizedDebitCanada}from"./components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js";export{AmazonPayElement as AmazonPay}from"./components/AmazonPay/AmazonPay.js";export{default as ApplePay}from"./components/ApplePay/ApplePay.js";export{CashAppPay}from"./components/CashAppPay/CashAppPay.js";export{ClickToPayElement as ClickToPay}from"./components/ClickToPay/ClickToPay.js";export{default as GooglePay}from"./components/GooglePay/GooglePay.js";export{default as PayPal}from"./components/PayPal/Paypal.js";export{default as Fastlane}from"./components/PayPalFastlane/Fastlane.js";export{BoletoElement as Boleto}from"./components/Boleto/Boleto.js";export{DokuElement as Doku}from"./components/Doku/Doku.js";export{OxxoElement as Oxxo}from"./components/Oxxo/Oxxo.js";export{default as BillDeskOnline}from"./components/BillDesk/BillDeskOnline.js";export{default as BillDeskWallet}from"./components/BillDesk/BillDeskWallet.js";export{default as Dotpay}from"./components/Dotpay/index.js";export{default as EPS}from"./components/EPS/index.js";export{default as MolPayEBankingMY}from"./components/MolPayEBanking/MolPayEBankingMY.js";export{default as MolPayEBankingTH}from"./components/MolPayEBanking/MolPayEBankingTH.js";export{default as MolPayEBankingVN}from"./components/MolPayEBanking/MolPayEBankingVN.js";export{default as OnlineBankingCZ}from"./components/OnlineBankingCZ/index.js";export{default as OnlineBankingIN}from"./components/OnlineBankingIN/index.js";export{default as OnlineBankingPL}from"./components/OnlineBankingPL/OnlineBankingPL.js";export{default as OnlineBankingSK}from"./components/OnlineBankingSK/index.js";export{default as OnlineBankingFI}from"./components/OnlineBankingFI/OnlineBankingFI.js";export{default as PayByBank}from"./components/PayByBank/PayByBank.js";export{default as PayuCashcard}from"./components/PayU/PayuCashcard.js";export{default as PayuNetBanking}from"./components/PayU/PayuNetBanking.js";export{default as WalletIN}from"./components/WalletIN/index.js";export{DragonpayElement as Dragonpay}from"./components/Dragonpay/Dragonpay.js";export{EcontextElement as Econtext}from"./components/Econtext/Econtext.js";export{default as Giropay}from"./components/Giropay/Giropay.js";export{MultibancoElement as Multibanco}from"./components/Multibanco/Multibanco.js";export{default as Redirect}from"./components/Redirect/Redirect.js";export{default as Twint}from"./components/Twint/Twint.js";export{default as Vipps}from"./components/Vipps/Vipps.js";export{default as Trustly}from"./components/Trustly/Trustly.js";export{default as Riverty}from"./components/Riverty/Riverty.js";export{default as PayByBankPix}from"./components/PayByBankPix/PayByBankPix.js";export{default as Klarna}from"./components/Klarna/KlarnaPayments.js";export{default as BcmcMobile}from"./components/BcmcMobile/BcmcMobile.js";export{default as Pix}from"./components/Pix/Pix.js";export{default as Swish}from"./components/Swish/Swish.js";export{default as WeChat}from"./components/WeChat/WeChat.js";export{default as PromptPay}from"./components/PromptPay/PromptPay.js";export{default as PayNow}from"./components/PayNow/PayNow.js";export{default as DuitNow}from"./components/DuitNow/DuitNow.js";export{default as PayMe}from"./components/PayMe/PayMe.js";export{default as Blik}from"./components/Blik/Blik.js";export{MBWayElement as MBWay}from"./components/MBWay/MBWay.js";export{default as UPI}from"./components/UPI/UPI.js";export{ANCVElement as ANCV}from"./components/ANCV/ANCV.js";export{PayToElement as PayTo}from"./components/PayTo/PayTo.js";export{GiftcardElement as Giftcard}from"./components/Giftcard/Giftcard.js";export{MealVoucherFRElement as MealVoucherFR}from"./components/MealVoucherFR/MealVoucherFR.js";export{AddressElement as Address}from"./components/Address/Address.js";export{BankTransferElement as BankTransfer}from"./components/BankTransfer/BankTransfer.js";export{default as Donation}from"./components/Donation/Donation.js";export{default as Dropin}from"./components/Dropin/Dropin.js";export{PersonalDetailsElement as PersonalDetails}from"./components/PersonalDetails/PersonalDetails.js";export{default as Core}from"./core/core.js";export{default as Affirm}from"./components/Affirm/Affirm.js";export{default as AfterPay}from"./components/AfterPay/AfterPay.js";export{default as AfterPayB2B}from"./components/AfterPay/AfterPayB2B.js";export{default as Atome}from"./components/Atome/Atome.js";export{default as FacilPay3x}from"./components/FacilyPay/FacilyPay3x.js";export{default as FacilPay4x}from"./components/FacilyPay/FacilyPay4x.js";export{default as FacilPay6x}from"./components/FacilyPay/FacilyPay6x.js";export{default as FacilPay10x}from"./components/FacilyPay/FacilyPay10x.js";export{default as FacilPay12x}from"./components/FacilyPay/FacilyPay12x.js";export{default as RatePay}from"./components/RatePay/RatePay.js";export{default as RatePayDirectDebit}from"./components/RatePay/RatePayDirectDebit.js";export{default as PayByBankUS}from"./components/PayByBankUS/PayByBankUS.js";
|
|
1
|
+
import*as o from"./components/index.js";export{o as components};export{default as initializeFastlane}from"./components/PayPalFastlane/initializeFastlane.js";export{AdyenCheckout}from"./core/AdyenCheckout.js";export{CardElement as Card}from"./components/Card/Card.js";export{default as Bancontact}from"./components/Card/Bancontact.js";export{CustomCard}from"./components/CustomCard/CustomCard.js";export{default as ThreeDS2Challenge}from"./components/ThreeDS2/ThreeDS2Challenge.js";export{default as ThreeDS2DeviceFingerprint}from"./components/ThreeDS2/ThreeDS2DeviceFingerprint.js";export{AchElement as Ach}from"./components/Ach/Ach.js";export{default as BacsDirectDebit}from"./components/BacsDD/BacsDD.js";export{default as SepaDirectDebit}from"./components/Sepa/Sepa.js";export{PreAuthorizedDebitCanada}from"./components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js";export{AmazonPayElement as AmazonPay}from"./components/AmazonPay/AmazonPay.js";export{default as ApplePay}from"./components/ApplePay/ApplePay.js";export{CashAppPay}from"./components/CashAppPay/CashAppPay.js";export{ClickToPayElement as ClickToPay}from"./components/ClickToPay/ClickToPay.js";export{default as GooglePay}from"./components/GooglePay/GooglePay.js";export{default as PayPal}from"./components/PayPal/Paypal.js";export{default as Fastlane}from"./components/PayPalFastlane/Fastlane.js";export{BoletoElement as Boleto}from"./components/Boleto/Boleto.js";export{DokuElement as Doku}from"./components/Doku/Doku.js";export{OxxoElement as Oxxo}from"./components/Oxxo/Oxxo.js";export{default as BillDeskOnline}from"./components/BillDesk/BillDeskOnline.js";export{default as BillDeskWallet}from"./components/BillDesk/BillDeskWallet.js";export{default as Dotpay}from"./components/Dotpay/index.js";export{default as EPS}from"./components/EPS/index.js";export{Iris}from"./components/Iris/Iris.js";export{default as MolPayEBankingMY}from"./components/MolPayEBanking/MolPayEBankingMY.js";export{default as MolPayEBankingTH}from"./components/MolPayEBanking/MolPayEBankingTH.js";export{default as MolPayEBankingVN}from"./components/MolPayEBanking/MolPayEBankingVN.js";export{default as OnlineBankingCZ}from"./components/OnlineBankingCZ/index.js";export{default as OnlineBankingIN}from"./components/OnlineBankingIN/index.js";export{default as OnlineBankingPL}from"./components/OnlineBankingPL/OnlineBankingPL.js";export{default as OnlineBankingSK}from"./components/OnlineBankingSK/index.js";export{default as OnlineBankingFI}from"./components/OnlineBankingFI/OnlineBankingFI.js";export{default as PayByBank}from"./components/PayByBank/PayByBank.js";export{default as PayuCashcard}from"./components/PayU/PayuCashcard.js";export{default as PayuNetBanking}from"./components/PayU/PayuNetBanking.js";export{default as WalletIN}from"./components/WalletIN/index.js";export{DragonpayElement as Dragonpay}from"./components/Dragonpay/Dragonpay.js";export{EcontextElement as Econtext}from"./components/Econtext/Econtext.js";export{default as Giropay}from"./components/Giropay/Giropay.js";export{MultibancoElement as Multibanco}from"./components/Multibanco/Multibanco.js";export{default as Redirect}from"./components/Redirect/Redirect.js";export{default as Twint}from"./components/Twint/Twint.js";export{default as Vipps}from"./components/Vipps/Vipps.js";export{default as Trustly}from"./components/Trustly/Trustly.js";export{default as Riverty}from"./components/Riverty/Riverty.js";export{default as PayByBankPix}from"./components/PayByBankPix/PayByBankPix.js";export{default as Klarna}from"./components/Klarna/KlarnaPayments.js";export{default as BcmcMobile}from"./components/BcmcMobile/BcmcMobile.js";export{default as Pix}from"./components/Pix/Pix.js";export{default as Swish}from"./components/Swish/Swish.js";export{default as WeChat}from"./components/WeChat/WeChat.js";export{default as PromptPay}from"./components/PromptPay/PromptPay.js";export{default as PayNow}from"./components/PayNow/PayNow.js";export{default as DuitNow}from"./components/DuitNow/DuitNow.js";export{default as PayMe}from"./components/PayMe/PayMe.js";export{default as Blik}from"./components/Blik/Blik.js";export{MBWayElement as MBWay}from"./components/MBWay/MBWay.js";export{default as UPI}from"./components/UPI/UPI.js";export{ANCVElement as ANCV}from"./components/ANCV/ANCV.js";export{PayToElement as PayTo}from"./components/PayTo/PayTo.js";export{GiftcardElement as Giftcard}from"./components/Giftcard/Giftcard.js";export{MealVoucherFRElement as MealVoucherFR}from"./components/MealVoucherFR/MealVoucherFR.js";export{AddressElement as Address}from"./components/Address/Address.js";export{BankTransferElement as BankTransfer}from"./components/BankTransfer/BankTransfer.js";export{default as Donation}from"./components/Donation/Donation.js";export{default as Dropin}from"./components/Dropin/Dropin.js";export{PersonalDetailsElement as PersonalDetails}from"./components/PersonalDetails/PersonalDetails.js";export{default as Core}from"./core/core.js";export{default as Affirm}from"./components/Affirm/Affirm.js";export{default as AfterPay}from"./components/AfterPay/AfterPay.js";export{default as AfterPayB2B}from"./components/AfterPay/AfterPayB2B.js";export{default as Atome}from"./components/Atome/Atome.js";export{default as FacilPay3x}from"./components/FacilyPay/FacilyPay3x.js";export{default as FacilPay4x}from"./components/FacilyPay/FacilyPay4x.js";export{default as FacilPay6x}from"./components/FacilyPay/FacilyPay6x.js";export{default as FacilPay10x}from"./components/FacilyPay/FacilyPay10x.js";export{default as FacilPay12x}from"./components/FacilyPay/FacilyPay12x.js";export{default as RatePay}from"./components/RatePay/RatePay.js";export{default as RatePayDirectDebit}from"./components/RatePay/RatePayDirectDebit.js";export{default as PayByBankUS}from"./components/PayByBankUS/PayByBankUS.js";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Language.js","sources":["../../../src/language/Language.ts"],"sourcesContent":["import { getTranslation } from './utils';\nimport { getLocalisedAmount } from '../utils/amount-util';\nimport AdyenCheckoutError from '../core/Errors/AdyenCheckoutError';\nimport type { CustomTranslations, LanguageOptions, Translations } from './types';\n\nexport class Language {\n public readonly locale: string;\n public readonly languageCode: string;\n\n private readonly translations: Translations;\n private readonly customTranslations: CustomTranslations;\n\n public readonly timeFormatOptions: Intl.DateTimeFormatOptions = {\n hour: 'numeric',\n minute: 'numeric'\n };\n public readonly timeAndDateFormatOptions: Intl.DateTimeFormatOptions = {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n ...this.timeFormatOptions\n };\n public readonly timeAndDateFormatter: Intl.DateTimeFormat;\n\n constructor(props: LanguageOptions) {\n const { locale, translations, customTranslations } = props;\n\n if (!locale) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'Language: \"locale\" property is not defined');\n }\n\n this.locale = locale;\n this.languageCode = this.locale.split('-')[0];\n this.customTranslations = customTranslations || {};\n\n this.timeAndDateFormatter = Intl.DateTimeFormat(this.locale, this.timeAndDateFormatOptions);\n\n this.translations = {\n ...translations,\n ...(!!this.customTranslations[this.locale] && this.customTranslations[this.locale])\n };\n }\n\n /**\n * Returns a translated string from a key in the current {@link Language.locale}\n * @param key - Translation key\n * @param options - Translation options\n * @returns Translated string\n */\n public get(key: string, options?): string {\n const translation = getTranslation(this.translations, key, options);\n if (translation !== null) {\n return translation;\n }\n\n return key;\n }\n\n /**\n * Returns a localized string for an amount\n * @param amount - Amount to be converted\n * @param currencyCode - Currency code of the amount\n * @param options - Options for String.prototype.toLocaleString\n */\n public amount(amount: number, currencyCode: string, options?: object): string {\n return getLocalisedAmount(amount, this.locale, currencyCode, options);\n }\n\n /**\n * Returns a localized string for a date\n * @param date - Date to be localized\n * @param options - Options for {@link
|
|
1
|
+
{"version":3,"file":"Language.js","sources":["../../../src/language/Language.ts"],"sourcesContent":["import { getTranslation } from './utils';\nimport { getLocalisedAmount } from '../utils/amount-util';\nimport AdyenCheckoutError from '../core/Errors/AdyenCheckoutError';\nimport type { CustomTranslations, LanguageOptions, Translations } from './types';\n\nexport class Language {\n public readonly locale: string;\n public readonly languageCode: string;\n\n private readonly translations: Translations;\n private readonly customTranslations: CustomTranslations;\n\n public readonly timeFormatOptions: Intl.DateTimeFormatOptions = {\n hour: 'numeric',\n minute: 'numeric'\n };\n public readonly timeAndDateFormatOptions: Intl.DateTimeFormatOptions = {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n ...this.timeFormatOptions\n };\n public readonly timeAndDateFormatter: Intl.DateTimeFormat;\n\n constructor(props: LanguageOptions) {\n const { locale, translations, customTranslations } = props;\n\n if (!locale) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'Language: \"locale\" property is not defined');\n }\n\n this.locale = locale;\n this.languageCode = this.locale.split('-')[0];\n this.customTranslations = customTranslations || {};\n\n this.timeAndDateFormatter = Intl.DateTimeFormat(this.locale, this.timeAndDateFormatOptions);\n\n this.translations = {\n ...translations,\n ...(!!this.customTranslations[this.locale] && this.customTranslations[this.locale])\n };\n }\n\n /**\n * Returns a translated string from a key in the current {@link Language.locale}\n * @param key - Translation key\n * @param options - Translation options\n * @returns Translated string\n */\n public get(key: string, options?): string {\n const translation = getTranslation(this.translations, key, options);\n if (translation !== null) {\n return translation;\n }\n\n return key;\n }\n\n /**\n * Returns a localized string for an amount\n * @param amount - Amount to be converted\n * @param currencyCode - Currency code of the amount\n * @param options - Options for String.prototype.toLocaleString\n */\n public amount(amount: number, currencyCode: string, options?: object): string {\n return getLocalisedAmount(amount, this.locale, currencyCode, options);\n }\n\n /**\n * Returns a localized string for a date\n * @param date - Date to be localized\n * @param options - Options for {@link Intl.DateTimeFormatOptions}\n */\n public date(date: string, options: Intl.DateTimeFormatOptions = {}) {\n if (date === undefined) return '';\n const dateOptions: Intl.DateTimeFormatOptions = { year: 'numeric', month: '2-digit', day: '2-digit', ...options };\n return new Date(date).toLocaleDateString(this.locale, dateOptions);\n }\n\n /**\n * Returns a localized string for a date and time\n * @param date - Date to be localized\n */\n public dateTime(date: string) {\n if (date === undefined) return '';\n return this.timeAndDateFormatter.format(new Date(date));\n }\n}\n\nexport default Language;\n"],"names":["Language","get","key","options","translation","getTranslation","this","translations","amount","currencyCode","getLocalisedAmount","locale","date","undefined","dateOptions","_object_spread","year","month","day","Date","toLocaleDateString","dateTime","timeAndDateFormatter","format","constructor","props","_define_property","languageCode","customTranslations","timeFormatOptions","hour","minute","timeAndDateFormatOptions","AdyenCheckoutError","split","Intl","DateTimeFormat"],"mappings":"ylBAKO,MAAMA,EA4CT,GAAAC,CAAWC,EAAaC,GACpB,MAAMC,EAAcC,EAAeC,KAAKC,aAAcL,EAAKC,GAC3D,OAAoB,OAAhBC,EACOA,EAGJF,CACX,CAQA,MAAAM,CAAcA,EAAgBC,EAAsBN,GAChD,OAAOO,EAAmBF,EAAQF,KAAKK,OAAQF,EAAcN,EACjE,CAOA,IAAAS,CAAYA,EAAcT,EAAsC,IAC5D,QAAaU,IAATD,EAAoB,MAAO,GAC/B,MAAME,EAA0CC,EAAA,CAAEC,KAAM,UAAWC,MAAO,UAAWC,IAAK,WAAcf,GACxG,OAAO,IAAIgB,KAAKP,GAAMQ,mBAAmBd,KAAKK,OAAQG,EAC1D,CAMOO,QAAAA,CAAST,GACZ,YAAaC,IAATD,EAA2B,GACxBN,KAAKgB,qBAAqBC,OAAO,IAAIJ,KAAKP,GACrD,CA9DA,WAAAY,CAAYC,GAlBZC,EAAApB,KAAgBK,cAAhB,GACAe,EAAApB,KAAgBqB,oBAAhB,GAEAD,EAAApB,KAAiBC,oBAAjB,GACAmB,EAAApB,KAAiBsB,0BAAjB,GAEAF,EAAApB,KAAgBuB,oBAAgD,CAC5DC,KAAM,UACNC,OAAQ,YAEZL,EAAApB,KAAgB0B,2BAAuDjB,EAAA,CACnEC,KAAM,UACNC,MAAO,UACPC,IAAK,WACFZ,KAAKuB,oBAEZH,EAAApB,KAAgBgB,4BAAhB,GAGI,MAAMX,OAAEA,EAAMJ,aAAEA,EAAYqB,mBAAEA,GAAuBH,EAErD,IAAKd,EACD,MAAM,IAAIsB,EAAmB,uBAAwB,8CAGzD3B,KAAKK,OAASA,EACdL,KAAKqB,aAAerB,KAAKK,OAAOuB,MAAM,KAAK,GAC3C5B,KAAKsB,mBAAqBA,GAAsB,CAAA,EAEhDtB,KAAKgB,qBAAuBa,KAAKC,eAAe9B,KAAKK,OAAQL,KAAK0B,0BAElE1B,KAAKC,aAAeQ,EAAA,CAAA,EACbR,IACGD,KAAKsB,mBAAmBtB,KAAKK,SAAWL,KAAKsB,mBAAmBtB,KAAKK,QAEnF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Validator.js","sources":["../../../../src/utils/Validator/Validator.ts"],"sourcesContent":["import { ValidatorRules, ValidatorRule, FieldContext, FieldData } from './types';\nimport { ValidationRuleResult } from './ValidationRuleResult';\n\nclass ValidationResult {\n private validationResults: ValidationRuleResult[];\n\n constructor(results: ValidationRuleResult[]) {\n this.validationResults = results;\n }\n\n /** Checks if all validation rules have passed */\n get isValid(): boolean {\n return this.validationResults.reduce((acc, result) => acc && result.isValid, true);\n }\n\n /** Checks if any validation rule returned an error */\n hasError(isValidatingForm = false): boolean {\n return Boolean(this.getError(isValidatingForm));\n }\n\n /** Returns the first validation result that returned an error */\n getError(isValidatingForm = false) {\n return this.validationResults.find(result => result.hasError(isValidatingForm));\n }\n\n /** Returns all validation results that returned an error */\n getAllErrors() {\n return this.validationResults.filter(result => result.hasError());\n }\n}\n\nclass Validator {\n public rules: ValidatorRules = {\n default: {\n validate: () => true,\n modes: ['blur', 'input']\n }\n };\n\n constructor(rules) {\n this.setRules(rules);\n }\n\n setRules(newRules) {\n this.rules = {\n ...this.rules,\n ...newRules\n };\n }\n\n /**\n * Get all validation rules for a field\n */\n private getRulesFor(field: string): ValidatorRule[] {\n let fieldRules: ValidatorRule | ValidatorRule[] = this.rules[field] ?? this.rules['default'];\n\n if (!Array.isArray(fieldRules)) {\n fieldRules = [fieldRules];\n }\n\n return fieldRules;\n }\n\n /**\n * Validates a field\n */\n validate({ key, value, mode = 'blur' }: FieldData, context?: FieldContext) {\n const fieldRules = this.getRulesFor(key);\n // create an ValidationRuleResult, we run the actual validation inside of it\n // validate is called in the constructor of ValidationRuleResult\n // line rule.validate(value, context);\n //\n const validationRulesResult = fieldRules.map(rule => new ValidationRuleResult(rule, value, mode, context));\n\n return new ValidationResult(validationRulesResult);\n }\n}\n\nexport default Validator;\n"],"names":["ValidationResult","isValid","this","validationResults","reduce","acc","result","hasError","isValidatingForm","Boolean","getError","find","getAllErrors","filter","constructor","results","_define_property","Validator","setRules","newRules","rules","_object_spread","getRulesFor","field","_this_rules_field","fieldRules","Array","isArray","validate","key","value","mode","context","validationRulesResult","map","rule","ValidationRuleResult","default","modes"],"mappings":"yLAGA,MAAMA,EAQF,WAAIC,GACA,OAAOC,KAAKC,kBAAkBC,OAAO,CAACC,EAAKC,IAAWD,GAAOC,EAAOL,SAAS,EACjF,CAGAM,QAAAA,CAASC,GAAmB,GACxB,OAAOC,QAAQP,KAAKQ,SAASF,GACjC,CAGAE,QAAAA,CAASF,GAAmB,GACxB,OAAON,KAAKC,kBAAkBQ,KAAKL,GAAUA,EAAOC,SAASC,GACjE,CAGAI,YAAAA,GACI,OAAOV,KAAKC,kBAAkBU,OAAOP,GAAUA,EAAOC,WAC1D,CAtBA,WAAAO,CAAYC,GAFZC,EAAAd,KAAQC,yBAAR,GAGID,KAAKC,kBAAoBY,CAC7B,EAuBJ,MAAME,EAYFC,QAAAA,CAASC,GACLjB,KAAKkB,wUAAQC,IACNnB,KAAKkB,MACLD,EAEX,CAKQG,WAAAA,CAAYC,GACkC,IAAAC,EAAlD,IAAIC,EAA+D,QAAjBD,EAAAtB,KAAKkB,MAAMG,
|
|
1
|
+
{"version":3,"file":"Validator.js","sources":["../../../../src/utils/Validator/Validator.ts"],"sourcesContent":["import { ValidatorRules, ValidatorRule, FieldContext, FieldData } from './types';\nimport { ValidationRuleResult } from './ValidationRuleResult';\n\nclass ValidationResult {\n private validationResults: ValidationRuleResult[];\n\n constructor(results: ValidationRuleResult[]) {\n this.validationResults = results;\n }\n\n /** Checks if all validation rules have passed */\n get isValid(): boolean {\n return this.validationResults.reduce((acc, result) => acc && result.isValid, true);\n }\n\n /** Checks if any validation rule returned an error */\n hasError(isValidatingForm = false): boolean {\n return Boolean(this.getError(isValidatingForm));\n }\n\n /** Returns the first validation result that returned an error */\n getError(isValidatingForm = false) {\n return this.validationResults.find(result => result.hasError(isValidatingForm));\n }\n\n /** Returns all validation results that returned an error */\n getAllErrors() {\n return this.validationResults.filter(result => result.hasError());\n }\n}\n\nclass Validator {\n public rules: ValidatorRules = {\n default: {\n validate: () => true,\n modes: ['blur', 'input']\n }\n };\n\n constructor(rules) {\n this.setRules(rules);\n }\n\n setRules(newRules) {\n this.rules = {\n ...this.rules,\n ...newRules\n };\n }\n\n /**\n * Get all validation rules for a field\n */\n private getRulesFor(field: string): ValidatorRule[] {\n let fieldRules: ValidatorRule | ValidatorRule[] = this.rules[field] ?? this.rules['default'];\n\n if (!Array.isArray(fieldRules)) {\n fieldRules = [fieldRules];\n }\n\n return fieldRules;\n }\n\n /**\n * Validates a field\n */\n validate({ key, value, mode = 'blur' }: FieldData, context?: FieldContext) {\n const fieldRules = this.getRulesFor(key);\n // create an ValidationRuleResult, we run the actual validation inside of it\n // validate is called in the constructor of ValidationRuleResult\n // line rule.validate(value, context);\n //\n const validationRulesResult = fieldRules.map(rule => new ValidationRuleResult(rule, value, mode, context));\n\n return new ValidationResult(validationRulesResult);\n }\n}\n\nexport default Validator;\n"],"names":["ValidationResult","isValid","this","validationResults","reduce","acc","result","hasError","isValidatingForm","Boolean","getError","find","getAllErrors","filter","constructor","results","_define_property","Validator","setRules","newRules","rules","_object_spread","getRulesFor","field","_this_rules_field","fieldRules","Array","isArray","validate","key","value","mode","context","validationRulesResult","map","rule","ValidationRuleResult","default","modes"],"mappings":"yLAGA,MAAMA,EAQF,WAAIC,GACA,OAAOC,KAAKC,kBAAkBC,OAAO,CAACC,EAAKC,IAAWD,GAAOC,EAAOL,SAAS,EACjF,CAGAM,QAAAA,CAASC,GAAmB,GACxB,OAAOC,QAAQP,KAAKQ,SAASF,GACjC,CAGAE,QAAAA,CAASF,GAAmB,GACxB,OAAON,KAAKC,kBAAkBQ,KAAKL,GAAUA,EAAOC,SAASC,GACjE,CAGAI,YAAAA,GACI,OAAOV,KAAKC,kBAAkBU,OAAOP,GAAUA,EAAOC,WAC1D,CAtBA,WAAAO,CAAYC,GAFZC,EAAAd,KAAQC,yBAAR,GAGID,KAAKC,kBAAoBY,CAC7B,EAuBJ,MAAME,EAYFC,QAAAA,CAASC,GACLjB,KAAKkB,wUAAQC,IACNnB,KAAKkB,MACLD,EAEX,CAKQG,WAAAA,CAAYC,GACkC,IAAAC,EAAlD,IAAIC,EAA+D,QAAjBD,EAAAtB,KAAKkB,MAAMG,UAAX,IAAAC,EAAAA,EAAqBtB,KAAKkB,MAAM,QAMlF,OAJKM,MAAMC,QAAQF,KACfA,EAAa,CAACA,IAGXA,CACX,CAKAG,QAAAA,EAASC,IAAEA,EAAGC,MAAEA,EAAKC,KAAEA,EAAO,QAAqBC,GAC/C,MAKMC,EALa/B,KAAKoB,YAAYO,GAKKK,IAAIC,GAAQ,IAAIC,EAAqBD,EAAML,EAAOC,EAAMC,IAEjG,OAAO,IAAIhC,EAAiBiC,EAChC,CApCA,WAAAnB,CAAYM,GAPZJ,EAAAd,KAAOkB,QAAwB,CAC3BiB,QAAS,CACLT,SAAU,KAAM,EAChBU,MAAO,CAAC,OAAQ,YAKpBpC,KAAKgB,SAASE,EAClB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commonUtils.js","sources":["../../../src/utils/commonUtils.ts"],"sourcesContent":["/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n * @internal\n */\nconst objToString = Object.prototype.toString;\n\n/**\n * Checks if `prop` is classified as an `Array` primitive or object.\n * @internal\n * @param prop - The value to check.\n * @returns Returns `true` if `prop` is correctly classified, else `false`.\n * @example\n * ```\n * isArray([1, 2, 3]);\n * // => true\n *\n * isArray(1);\n * // => false\n * ```\n */\nexport function isArray(prop) {\n return typeof prop === 'object' && prop !== null && Object.prototype.toString.call(prop) === '[object Array]';\n}\n\n/**\n * The function existy is meant to define the existence of something.\n * Using the loose inequality operator (!=), it is possible to distinguish between null, undefined, and everything else.\n * @internal\n * @param x -\n * @returns\n */\nexport function existy(x) {\n return x != null;\n}\n\n/**\n * Used to determine if something should be considered a synonym for true\n * NOTE: The number zero is considered “truthy” by design as is '' & `{}`.\n * If you wish to retain the behavior where 0 is a synonym for false, then do not use truthy where you might expect 0\n * So - returns true if something is not false, undefined or null\n * @internal\n * @param x -\n * @returns\n */\nexport function truthy(x) {\n return x !== false && existy(x);\n}\n\n/**\n * Checks if `value` is object-like.\n * (FROM lodash.3.10.1)\n * @internal\n * @param value - The value to check.\n * @returns Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value === 'object';\n}\n\n/**\n * @internal\n * Checks if `value` is classified as a `Number` primitive or object.\n * NOTE: `Infinity`, `-Infinity`, and `NaN` are classified as numbers\n * (FROM lodash.3.10.1)\n * @param value - The value to check.\n * @returns Returns `true` if `value` is correctly classified, else `false`.\n * @example\n * ```\n * isNumber(8.4);\n * // => true\n *\n * isNumber(NaN);\n * // => true\n *\n * isNumber('8.4');\n * // => false\n * ```\n */\nfunction isNumber(value) {\n const numberTag = '[object Number]';\n return typeof value === 'number' || (isObjectLike(value) && objToString.call(value) === numberTag);\n}\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n * (FROM lodash.3.10.1)\n * @internal\n * @param value - The value to check.\n * @returns Returns `true` if `value` is correctly classified, else `false`.\n * @example\n * ```\n * isString('abc');\n * // => true\n *\n * isString(1);\n * // => false\n * ```\n */\nfunction isString(value) {\n const stringTag = '[object String]';\n return typeof value === 'string' || (isObjectLike(value) && objToString.call(value) === stringTag);\n}\n\n/**\n * Returns true if x is:\n * null, undefined, false, 0, NaN, empty object or array, empty string\n * @param x -\n * @example\n * ```\n * falsy(0) // => true\n * falsy('') // => true\n * falsy({}) // => true\n * falsy([]) // => true\n * falsy(false) // => true\n * falsy(NaN) // => true\n * falsy(null) // => true\n * falsy(undefined) // => true\n *\n * falsy(1) // => false\n * falsy('d') // => false\n * falsy({type:\"kin\"}) // => false\n * falsy([6]) // => false\n * falsy(true) // => false\n * ```\n */\nexport function falsy(x) {\n // Is null, undefined or false\n if (!truthy(x)) {\n return true;\n }\n\n // = 0 || NaN\n if (isNumber(x)) {\n if (x === 0 || Number.isNaN(x)) {\n return true;\n }\n }\n\n // empty array or string\n if ((isArray(x) || isString(x)) && x.length === 0) {\n return true;\n }\n\n // empty object\n if (isObjectLike(x) && Object.keys(x).length === 0) {\n return true;\n }\n\n return false;\n}\n\n/**\n * Inverse of falsy - returns true if x is NOT null, undefined, false, 0, NaN, empty object or array, empty string\n * @param x -\n */\nexport function notFalsy(x) {\n return !falsy(x);\n}\n\n/**\n * 'Destructures' properties from object - returns a new object only containing those properties that were asked for (including if those properties\n * have values that are falsy: null, undefined, false, '').\n *\n * @param args - property names to select: can be either 'regular' arguments (comma separated list) or an array\n * @returns - an object with a function 'from' that accepts a single argument - the object from which to choose properties.\n * This function returns a new object - a copy of the original but only including the desired properties\n *\n * @example const strippedObj = pick('cardType', 'securityCode').from(cardObject);\n * @example const strippedObj = pick(['cardType', 'securityCode']).from(cardObject);\n */\nexport function pick(...args) {\n const myArgs = isArray(args[0]) ? args[0] : args;\n return {\n from: obj => {\n return myArgs.map(k => (k in obj ? { [k]: obj[k] } : {})).reduce((res, o) => ({ ...res, ...o }), {});\n }\n };\n}\n\n/**\n *'Destructures' properties from object, returning a new object containing all the original objects properties except those that were specifically rejected\n *\n * @param args - property names to reject: can be either 'regular' arguments (comma separated list) or an array\n * @returns - an object with a function 'from' that accepts a single argument - the object from which to reject properties.\n * This function returns a new object - a copy of the original but excluding the selected properties\n *\n * @example const strippedObj = reject('permittedLengths', 'pattern', 'startingRules').from(cardObject);\n * @example const strippedObj = reject(['permittedLengths', 'pattern', 'startingRules']).from(cardObject);\n */\nexport function reject(...args) {\n const myArgs = isArray(args[0]) ? args[0] : args;\n return {\n from: obj => {\n const vkeys = Object.keys(obj).filter(k => !myArgs.includes(k));\n return pick(...vkeys).from(obj);\n }\n };\n}\n"],"names":["
|
|
1
|
+
{"version":3,"file":"commonUtils.js","sources":["../../../src/utils/commonUtils.ts"],"sourcesContent":["/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n * @internal\n */\nconst objToString = Object.prototype.toString;\n\n/**\n * Checks if `prop` is classified as an `Array` primitive or object.\n * @internal\n * @param prop - The value to check.\n * @returns Returns `true` if `prop` is correctly classified, else `false`.\n * @example\n * ```\n * isArray([1, 2, 3]);\n * // => true\n *\n * isArray(1);\n * // => false\n * ```\n */\nexport function isArray(prop) {\n return typeof prop === 'object' && prop !== null && Object.prototype.toString.call(prop) === '[object Array]';\n}\n\n/**\n * The function existy is meant to define the existence of something.\n * Using the loose inequality operator (!=), it is possible to distinguish between null, undefined, and everything else.\n * @internal\n * @param x -\n * @returns\n */\nexport function existy(x) {\n return x != null;\n}\n\n/**\n * Used to determine if something should be considered a synonym for true\n * NOTE: The number zero is considered “truthy” by design as is '' & `{}`.\n * If you wish to retain the behavior where 0 is a synonym for false, then do not use truthy where you might expect 0\n * So - returns true if something is not false, undefined or null\n * @internal\n * @param x -\n * @returns\n */\nexport function truthy(x) {\n return x !== false && existy(x);\n}\n\n/**\n * Checks if `value` is object-like.\n * (FROM lodash.3.10.1)\n * @internal\n * @param value - The value to check.\n * @returns Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value === 'object';\n}\n\n/**\n * @internal\n * Checks if `value` is classified as a `Number` primitive or object.\n * NOTE: `Infinity`, `-Infinity`, and `NaN` are classified as numbers\n * (FROM lodash.3.10.1)\n * @param value - The value to check.\n * @returns Returns `true` if `value` is correctly classified, else `false`.\n * @example\n * ```\n * isNumber(8.4);\n * // => true\n *\n * isNumber(NaN);\n * // => true\n *\n * isNumber('8.4');\n * // => false\n * ```\n */\nfunction isNumber(value) {\n const numberTag = '[object Number]';\n return typeof value === 'number' || (isObjectLike(value) && objToString.call(value) === numberTag);\n}\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n * (FROM lodash.3.10.1)\n * @internal\n * @param value - The value to check.\n * @returns Returns `true` if `value` is correctly classified, else `false`.\n * @example\n * ```\n * isString('abc');\n * // => true\n *\n * isString(1);\n * // => false\n * ```\n */\nfunction isString(value) {\n const stringTag = '[object String]';\n return typeof value === 'string' || (isObjectLike(value) && objToString.call(value) === stringTag);\n}\n\n/**\n * Returns true if x is:\n * null, undefined, false, 0, NaN, empty object or array, empty string\n * @param x -\n * @example\n * ```\n * falsy(0) // => true\n * falsy('') // => true\n * falsy({}) // => true\n * falsy([]) // => true\n * falsy(false) // => true\n * falsy(NaN) // => true\n * falsy(null) // => true\n * falsy(undefined) // => true\n *\n * falsy(1) // => false\n * falsy('d') // => false\n * falsy({type:\"kin\"}) // => false\n * falsy([6]) // => false\n * falsy(true) // => false\n * ```\n */\nexport function falsy(x) {\n // Is null, undefined or false\n if (!truthy(x)) {\n return true;\n }\n\n // = 0 || NaN\n if (isNumber(x)) {\n if (x === 0 || Number.isNaN(x)) {\n return true;\n }\n }\n\n // empty array or string\n if ((isArray(x) || isString(x)) && x.length === 0) {\n return true;\n }\n\n // empty object\n if (isObjectLike(x) && Object.keys(x).length === 0) {\n return true;\n }\n\n return false;\n}\n\n/**\n * Inverse of falsy - returns true if x is NOT null, undefined, false, 0, NaN, empty object or array, empty string\n * @param x -\n */\nexport function notFalsy(x) {\n return !falsy(x);\n}\n\n/**\n * 'Destructures' properties from object - returns a new object only containing those properties that were asked for (including if those properties\n * have values that are falsy: null, undefined, false, '').\n *\n * @param args - property names to select: can be either 'regular' arguments (comma separated list) or an array\n * @returns - an object with a function 'from' that accepts a single argument - the object from which to choose properties.\n * This function returns a new object - a copy of the original but only including the desired properties\n *\n * @example const strippedObj = pick('cardType', 'securityCode').from(cardObject);\n * @example const strippedObj = pick(['cardType', 'securityCode']).from(cardObject);\n */\nexport function pick(...args) {\n const myArgs = isArray(args[0]) ? args[0] : args;\n return {\n from: obj => {\n return myArgs.map(k => (k in obj ? { [k]: obj[k] } : {})).reduce((res, o) => ({ ...res, ...o }), {});\n }\n };\n}\n\n/**\n *'Destructures' properties from object, returning a new object containing all the original objects properties except those that were specifically rejected\n *\n * @param args - property names to reject: can be either 'regular' arguments (comma separated list) or an array\n * @returns - an object with a function 'from' that accepts a single argument - the object from which to reject properties.\n * This function returns a new object - a copy of the original but excluding the selected properties\n *\n * @example const strippedObj = reject('permittedLengths', 'pattern', 'startingRules').from(cardObject);\n * @example const strippedObj = reject(['permittedLengths', 'pattern', 'startingRules']).from(cardObject);\n */\nexport function reject(...args) {\n const myArgs = isArray(args[0]) ? args[0] : args;\n return {\n from: obj => {\n const vkeys = Object.keys(obj).filter(k => !myArgs.includes(k));\n return pick(...vkeys).from(obj);\n }\n };\n}\n"],"names":["objToString","Object","prototype","toString","isArray","prop","call","existy","x","truthy","isObjectLike","value","falsy","Number","isNaN","isString","length","keys","pick","args","myArgs","from","obj","map","k","reduce","res","o","_object_spread","reject","filter","includes"],"mappings":"wHAKA,MAAMA,EAAcC,OAAOC,UAAUC,SAgB9B,SAASC,EAAQC,GACpB,MAAuB,iBAATA,GAA8B,OAATA,GAA0D,mBAAzCJ,OAAOC,UAAUC,SAASG,KAAKD,EACvF,CASO,SAASE,EAAOC,GACnB,OAAY,MAALA,CACX,CAWO,SAASC,EAAOD,GACnB,OAAa,IAANA,GAAeD,EAAOC,EACjC,CASA,SAASE,EAAaC,GAClB,QAASA,GAA0B,iBAAVA,CAC7B,CAoEO,SAASC,EAAMJ,GAElB,OAAKC,EAAOD,SA/CY,iBAFVG,EAsDDH,IApDwBE,EAAaC,IADhC,oBAC0CX,EAAYM,KAAKK,KAqD/D,IAANH,IAAWK,OAAOC,MAAMN,SAM3BJ,EAAQI,KAzCjB,SAAkBG,GAEd,MAAwB,iBAAVA,GAAuBD,EAAaC,IADhC,oBAC0CX,EAAYM,KAAKK,EACjF,CAsCuBI,CAASP,IAAoB,IAAbA,EAAEQ,YAKjCN,EAAaF,IAAgC,IAA1BP,OAAOgB,KAAKT,GAAGQ,UAlE1C,IAAkBL,CAuElB,CAqBO,SAASO,KAAQC,GACpB,MAAMC,EAAShB,EAAQe,EAAK,IAAMA,EAAK,GAAKA,EAC5C,MAAO,CACHE,KAAMC,GACKF,EAAOG,IAAIC,GAAMA,KAAKF,EAAM,CAAEE,CAACA,GAAIF,EAAIE,IAAO,IAAKC,OAAO,CAACC,EAAKC,sUAAOC,CAAA,GAAKF,EAAQC,GAAM,CAAA,GAG7G,CAYO,SAASE,KAAUV,GACtB,MAAMC,EAAShB,EAAQe,EAAK,IAAMA,EAAK,GAAKA,EAC5C,MAAO,CACHE,KAAMC,GAEKJ,KADOjB,OAAOgB,KAAKK,GAAKQ,OAAON,IAAMJ,EAAOW,SAASP,KACtCH,KAAKC,GAGvC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"./base64.js";function t(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function n(n,r){const o=function(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),o.forEach(function(n){t(e,n,r[n])})}return e}({schemaVersion:1,createdAt:Date.now(),analytics:{checkoutAttemptId:n}},r&&{riskData:{clientData:r}});return e.encode(JSON.stringify(o))}export{n as createSdkData};
|
|
2
|
+
//# sourceMappingURL=createSdkData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createSdkData.js","sources":["../../../src/utils/createSdkData.ts"],"sourcesContent":["import base64 from './base64';\n\nexport interface SdkDataObject {\n schemaVersion: number;\n createdAt: number;\n analytics: {\n checkoutAttemptId: string;\n };\n riskData: {\n clientData: string;\n };\n}\n\n/**\n * Creates the sdkData object with analytics and risk information\n * @param checkoutAttemptId - The checkout attempt ID from analytics\n * @param clientData - The client data from risk module\n * @returns Base64 encoded JSON string of the SDK data object\n */\nexport function createSdkData(checkoutAttemptId: string, clientData: string | null): string {\n const sdkDataObject: SdkDataObject = {\n schemaVersion: 1,\n createdAt: Date.now(),\n analytics: {\n checkoutAttemptId\n },\n ...(clientData && { riskData: { clientData } }),\n };\n\n return base64.encode(JSON.stringify(sdkDataObject));\n}\n"],"names":["createSdkData","checkoutAttemptId","clientData","sdkDataObject","_object_spread","schemaVersion","createdAt","Date","now","analytics","riskData","base64","encode","JSON","stringify"],"mappings":"mJAmBO,SAASA,EAAcC,EAA2BC,GACrD,MAAMC,oUAA+BC,CAAA,CACjCC,cAAe,EACfC,UAAWC,KAAKC,MAChBC,UAAW,CACPR,sBAEAC,GAAc,CAAEQ,SAAU,CAAER,gBAGpC,OAAOS,EAAOC,OAAOC,KAAKC,UAAUX,GACxC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function
|
|
1
|
+
function e(e,r,l){return r in e?Object.defineProperty(e,r,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[r]=l,e}function r(r){for(var l=1;l<arguments.length;l++){var a=null!=arguments[l]?arguments[l]:{},t=Object.keys(a);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(a).filter(function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.forEach(function(l){e(r,l,a[l])})}return r}function l(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):function(e){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);r.push.apply(r,l)}return r}(Object(r)).forEach(function(l){Object.defineProperty(e,l,Object.getOwnPropertyDescriptor(r,l))}),e}const a=(e,r)=>Object.keys(e).filter(e=>!r.includes(e)).reduce((r,l)=>(r[l]=e[l],r),{}),t=(e,a,t,o,d)=>a.reduce((e,a)=>{var i,s,n;return l(r({},e),{[a]:null!==(i=null!==(s=null!==(n=e[a])&&void 0!==n?n:null==d?void 0:d[a])&&void 0!==s?s:null==o?void 0:o[a])&&void 0!==i?i:t})},e);function o({schema:e,defaultData:a,processField:t,fieldProblems:o}){const d=e=>{var r,l;if(void 0===a[e])return{valid:!1,errors:null,data:null,fieldProblems:null!==(r=null==o?void 0:o[e])&&void 0!==r?r:null};const[d,i]=t({key:e,value:a[e],mode:"blur"},{state:{data:a}});return{valid:i.isValid&&!(null==o?void 0:o[e])||!1,errors:i.hasError()?i.getError():null,data:d,fieldProblems:null!==(l=null==o?void 0:o[e])&&void 0!==l?l:null}},i=e.reduce((e,a)=>{const{valid:t,errors:o,data:i,fieldProblems:s}=d(a);return{valid:l(r({},e.valid),{[a]:t}),errors:l(r({},e.errors),{[a]:o}),data:l(r({},e.data),{[a]:i}),fieldProblems:l(r({},e.fieldProblems),{[a]:s})}},{data:{},valid:{},errors:{},fieldProblems:{}});return{schema:e,data:i.data,valid:i.valid,errors:i.errors,fieldProblems:i.fieldProblems}}function d(e){return function(d,{type:i,key:s,value:n,mode:u,schema:c,defaultData:v,formValue:f,selectedSchema:m,fieldProblems:b,data:P}){const y=m||d.schema;switch(i){case"setData":return l(r({},d),{data:l(r({},d.data),{[s]:n})});case"mergeData":return l(r({},d),{data:r({},d.data,P)});case"setValid":return l(r({},d),{valid:l(r({},d.valid),{[s]:n})});case"setErrors":return l(r({},d),{errors:l(r({},d.errors),{[s]:n})});case"setFieldProblems":var p,O;return null!==(p=null==d||null===(O=d.schema)||void 0===O?void 0:O.reduce((e,a)=>{var t,o;return l(r({},e),{fieldProblems:l(r({},d.fieldProblems),{[a]:null!==(t=null==b?void 0:b[a])&&void 0!==t?t:null}),valid:l(r({},d.valid),{[a]:(null===(o=d.valid)||void 0===o?void 0:o[a])&&!b[a]})})},d))&&void 0!==p?p:d;case"updateField":{const[a,t]=e({key:s,value:n,mode:u},{state:d}),o=d.data[s],i=r({},d.fieldProblems);return o!==a&&(i[s]=null),l(r({},d),{data:l(r({},d.data),{[s]:a}),errors:l(r({},d.errors),{[s]:t.hasError()?t.getError():null}),valid:l(r({},d.valid),{[s]:t.isValid&&!i[s]||!1}),fieldProblems:i})}case"mergeForm":{const e=l(r({},d),{data:r({},d.data,f.data),errors:r({},d.errors,f.errors),valid:r({},d.valid,f.valid),fieldProblems:r({},d.fieldProblems,f.fieldProblems)});return e.valid&&(e.isValid=Object.values(e.valid).every(e=>e)),e}case"setSchema":{var h,j,g;const i=o({schema:c,defaultData:v,processField:e,fieldProblems:b}),s=d.schema.filter(e=>!c.includes(e)),n=c.filter(e=>!d.schema.includes(e)),u={data:a(d.data,n),errors:a(d.errors,n),valid:a(d.valid,n)},f=t(a(d.data,s),n,null,i.data,null===(h=d.local)||void 0===h?void 0:h.data),m=t(a(d.valid,s),n,!1,i.valid,null===(j=d.local)||void 0===j?void 0:j.valid),P=t(a(d.errors,s),n,null,i.errors,null===(g=d.local)||void 0===g?void 0:g.errors);return l(r({},d),{schema:c,data:f,valid:m,errors:P,local:u})}case"validateForm":{const a=y.reduce((a,t)=>{const[,o]=e({key:t,value:d.data[t],mode:"blur"},{state:d});return{valid:l(r({},a.valid),{[t]:o.isValid&&!d.fieldProblems[t]||!1}),errors:l(r({},a.errors),{[t]:o.hasError(!0)?o.getError(!0):null})}},{valid:d.valid,errors:d.errors});return l(r({},d),{valid:a.valid,errors:a.errors})}default:throw new Error("Undefined useForm action")}}}export{d as getReducer,o as init};
|
|
2
2
|
//# sourceMappingURL=reducer.js.map
|