@adyen/adyen-web 6.28.0 → 6.29.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 +8 -6
- 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 -2557
- package/dist/es/adyen.css +8 -6
- 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/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/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/UPI/components/UPIComponent/UPIComponent.js +1 -1
- package/dist/es/components/UPI/components/UPIComponent/UPIComponent.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/PersonalDetails/PersonalDetails.js +1 -1
- package/dist/es/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
- package/dist/es/components/internal/QRLoader/QRLoader.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/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 -2557
- 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 +8 -6
- 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/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/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/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/components/UPIComponent/UPIComponent.js +1 -1
- package/dist/es-legacy/components/UPI/components/UPIComponent/UPIComponent.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/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.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/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/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/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 +8 -6
|
@@ -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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reducer.js","sources":["../../../../src/utils/useForm/reducer.ts"],"sourcesContent":["const omitKeys = (obj, omit) =>\n Object.keys(obj)\n .filter(k => !omit.includes(k))\n .reduce((a, c) => {\n a[c] = obj[c];\n return a;\n }, {});\n\nconst addKeys = (obj, add, initialValue, defaultData, pendingData) =>\n add.reduce((a, c) => ({ ...a, [c]: a[c] ?? pendingData?.[c] ?? defaultData?.[c] ?? initialValue }), obj);\n\n/**\n * Processes default data and sets as default in state\n */\nexport function init({ schema, defaultData, processField, fieldProblems }) {\n const getProcessedState = fieldKey => {\n if (typeof defaultData[fieldKey] === 'undefined')\n return { valid: false, errors: null, data: null, fieldProblems: fieldProblems?.[fieldKey] ?? null };\n\n const [formattedValue, validationResult] = processField(\n { key: fieldKey, value: defaultData[fieldKey], mode: 'blur' },\n { state: { data: defaultData } }\n );\n\n return {\n valid: (validationResult.isValid && !fieldProblems?.[fieldKey]) || false,\n errors: validationResult.hasError() ? validationResult.getError() : null,\n data: formattedValue,\n fieldProblems: fieldProblems?.[fieldKey] ?? null\n };\n };\n\n const formData = schema.reduce(\n (acc: any, fieldKey) => {\n const { valid, errors, data, fieldProblems } = getProcessedState(fieldKey);\n\n return {\n valid: { ...acc.valid, [fieldKey]: valid },\n errors: { ...acc.errors, [fieldKey]: errors },\n data: { ...acc.data, [fieldKey]: data },\n fieldProblems: { ...acc.fieldProblems, [fieldKey]: fieldProblems }\n };\n },\n { data: {}, valid: {}, errors: {}, fieldProblems: {} }\n );\n\n return {\n schema,\n data: formData.data,\n valid: formData.valid,\n errors: formData.errors,\n fieldProblems: formData.fieldProblems\n };\n}\n\nexport function getReducer(processField) {\n return function reducer(state, { type, key, value, mode, schema, defaultData, formValue, selectedSchema, fieldProblems, data }) {\n const validationSchema: string[] = selectedSchema || state.schema;\n\n switch (type) {\n case 'setData': {\n return { ...state, data: { ...state['data'], [key]: value } };\n }\n case 'mergeData': {\n return { ...state, data: { ...state['data'], ...data } };\n }\n case 'setValid': {\n return { ...state, valid: { ...state['valid'], [key]: value } };\n }\n case 'setErrors': {\n return { ...state, errors: { ...state['errors'], [key]: value } };\n }\n case 'setFieldProblems': {\n return (\n state?.schema?.reduce(\n (acc, key) => ({\n ...acc,\n fieldProblems: { ...state['fieldProblems'], [key]: fieldProblems?.[key] ?? null },\n valid: { ...state['valid'], [key]: state['valid']?.[key] && !fieldProblems[key] }\n }),\n state\n ) ?? state\n );\n }\n case 'updateField': {\n const [formattedValue, validation] = processField({ key, value, mode }, { state });\n const oldValue = state.data[key];\n const fieldProblems = { ...state.fieldProblems };\n if (oldValue !== formattedValue) {\n fieldProblems[key] = null;\n }\n return {\n ...state,\n data: { ...state['data'], [key]: formattedValue },\n errors: { ...state['errors'], [key]: validation.hasError() ? validation.getError() : null },\n valid: { ...state['valid'], [key]: (validation.isValid && !fieldProblems[key]) || false },\n fieldProblems\n };\n }\n case 'mergeForm': {\n // To provide a uniform result from forms even if there are multiple levels of nested forms are present\n const mergedState = {\n ...state,\n data: { ...state['data'], ...formValue['data'] },\n errors: { ...state['errors'], ...formValue['errors'] },\n valid: { ...state['valid'], ...formValue['valid'] },\n fieldProblems: { ...state['fieldProblems'], ...formValue['fieldProblems'] }\n };\n if (mergedState['valid']) {\n mergedState.isValid = Object.values(mergedState.valid).every(isValid => isValid);\n }\n return mergedState;\n }\n case 'setSchema': {\n const defaultState = init({ schema, defaultData, processField, fieldProblems });\n const removedSchemaFields = state.schema.filter(x => !schema.includes(x));\n const newSchemaFields = schema.filter(x => !state.schema.includes(x));\n\n // if we remove a key from the schema we also lost the latest value of the field\n // to prevent this we have to store the value in a local state so we can recover it when the key is re-added to the schema\n const local = {\n data: omitKeys(state.data, newSchemaFields),\n errors: omitKeys(state.errors, newSchemaFields),\n valid: omitKeys(state.valid, newSchemaFields)\n };\n\n // reindex data and validation according to the new schema\n const data = addKeys(omitKeys(state.data, removedSchemaFields), newSchemaFields, null, defaultState.data, state.local?.data);\n const valid = addKeys(omitKeys(state.valid, removedSchemaFields), newSchemaFields, false, defaultState.valid, state.local?.valid);\n const errors = addKeys(omitKeys(state.errors, removedSchemaFields), newSchemaFields, null, defaultState.errors, state.local?.errors);\n\n return { ...state, schema, data, valid, errors, local };\n }\n case 'validateForm': {\n const formValidation = validationSchema.reduce(\n (acc, cur) => {\n const [, validation] = processField({ key: cur, value: state.data[cur], mode: 'blur' }, { state });\n return {\n valid: { ...acc['valid'], [cur]: (validation.isValid && !state.fieldProblems[cur]) || false },\n errors: { ...acc['errors'], [cur]: validation.hasError(true) ? validation.getError(true) : null }\n };\n },\n { valid: state.valid, errors: state.errors }\n );\n\n return { ...state, valid: formValidation.valid, errors: formValidation.errors };\n }\n default:\n throw new Error('Undefined useForm action');\n }\n };\n}\n"],"names":["omitKeys","obj","omit","Object","keys","filter","k","includes","reduce","a","c","addKeys","add","initialValue","defaultData","pendingData","_object_spread_props","_object_spread","init","schema","processField","fieldProblems","getProcessedState","fieldKey","valid","errors","data","formattedValue","validationResult","key","value","mode","state","isValid","hasError","getError","formData","acc","getReducer","type","formValue","selectedSchema","validationSchema","validation","oldValue","mergedState","values","every","defaultState","removedSchemaFields","x","newSchemaFields","local","formValidation","cur","Error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reducer.js","sources":["../../../../src/utils/useForm/reducer.ts"],"sourcesContent":["const omitKeys = (obj, omit) =>\n Object.keys(obj)\n .filter(k => !omit.includes(k))\n .reduce((a, c) => {\n a[c] = obj[c];\n return a;\n }, {});\n\nconst addKeys = (obj, add, initialValue, defaultData, pendingData) =>\n add.reduce((a, c) => ({ ...a, [c]: a[c] ?? pendingData?.[c] ?? defaultData?.[c] ?? initialValue }), obj);\n\n/**\n * Processes default data and sets as default in state\n */\nexport function init({ schema, defaultData, processField, fieldProblems }) {\n const getProcessedState = fieldKey => {\n if (typeof defaultData[fieldKey] === 'undefined')\n return { valid: false, errors: null, data: null, fieldProblems: fieldProblems?.[fieldKey] ?? null };\n\n const [formattedValue, validationResult] = processField(\n { key: fieldKey, value: defaultData[fieldKey], mode: 'blur' },\n { state: { data: defaultData } }\n );\n\n return {\n valid: (validationResult.isValid && !fieldProblems?.[fieldKey]) || false,\n errors: validationResult.hasError() ? validationResult.getError() : null,\n data: formattedValue,\n fieldProblems: fieldProblems?.[fieldKey] ?? null\n };\n };\n\n const formData = schema.reduce(\n (acc: any, fieldKey) => {\n const { valid, errors, data, fieldProblems } = getProcessedState(fieldKey);\n\n return {\n valid: { ...acc.valid, [fieldKey]: valid },\n errors: { ...acc.errors, [fieldKey]: errors },\n data: { ...acc.data, [fieldKey]: data },\n fieldProblems: { ...acc.fieldProblems, [fieldKey]: fieldProblems }\n };\n },\n { data: {}, valid: {}, errors: {}, fieldProblems: {} }\n );\n\n return {\n schema,\n data: formData.data,\n valid: formData.valid,\n errors: formData.errors,\n fieldProblems: formData.fieldProblems\n };\n}\n\nexport function getReducer(processField) {\n return function reducer(state, { type, key, value, mode, schema, defaultData, formValue, selectedSchema, fieldProblems, data }) {\n const validationSchema: string[] = selectedSchema || state.schema;\n\n switch (type) {\n case 'setData': {\n return { ...state, data: { ...state['data'], [key]: value } };\n }\n case 'mergeData': {\n return { ...state, data: { ...state['data'], ...data } };\n }\n case 'setValid': {\n return { ...state, valid: { ...state['valid'], [key]: value } };\n }\n case 'setErrors': {\n return { ...state, errors: { ...state['errors'], [key]: value } };\n }\n case 'setFieldProblems': {\n return (\n state?.schema?.reduce(\n (acc, key) => ({\n ...acc,\n fieldProblems: { ...state['fieldProblems'], [key]: fieldProblems?.[key] ?? null },\n valid: { ...state['valid'], [key]: state['valid']?.[key] && !fieldProblems[key] }\n }),\n state\n ) ?? state\n );\n }\n case 'updateField': {\n const [formattedValue, validation] = processField({ key, value, mode }, { state });\n const oldValue = state.data[key];\n const fieldProblems = { ...state.fieldProblems };\n if (oldValue !== formattedValue) {\n fieldProblems[key] = null;\n }\n return {\n ...state,\n data: { ...state['data'], [key]: formattedValue },\n errors: { ...state['errors'], [key]: validation.hasError() ? validation.getError() : null },\n valid: { ...state['valid'], [key]: (validation.isValid && !fieldProblems[key]) || false },\n fieldProblems\n };\n }\n case 'mergeForm': {\n // To provide a uniform result from forms even if there are multiple levels of nested forms are present\n const mergedState = {\n ...state,\n data: { ...state['data'], ...formValue['data'] },\n errors: { ...state['errors'], ...formValue['errors'] },\n valid: { ...state['valid'], ...formValue['valid'] },\n fieldProblems: { ...state['fieldProblems'], ...formValue['fieldProblems'] }\n };\n if (mergedState['valid']) {\n mergedState.isValid = Object.values(mergedState.valid).every(isValid => isValid);\n }\n return mergedState;\n }\n case 'setSchema': {\n const defaultState = init({ schema, defaultData, processField, fieldProblems });\n const removedSchemaFields = state.schema.filter(x => !schema.includes(x));\n const newSchemaFields = schema.filter(x => !state.schema.includes(x));\n\n // if we remove a key from the schema we also lost the latest value of the field\n // to prevent this we have to store the value in a local state so we can recover it when the key is re-added to the schema\n const local = {\n data: omitKeys(state.data, newSchemaFields),\n errors: omitKeys(state.errors, newSchemaFields),\n valid: omitKeys(state.valid, newSchemaFields)\n };\n\n // reindex data and validation according to the new schema\n const data = addKeys(omitKeys(state.data, removedSchemaFields), newSchemaFields, null, defaultState.data, state.local?.data);\n const valid = addKeys(omitKeys(state.valid, removedSchemaFields), newSchemaFields, false, defaultState.valid, state.local?.valid);\n const errors = addKeys(omitKeys(state.errors, removedSchemaFields), newSchemaFields, null, defaultState.errors, state.local?.errors);\n\n return { ...state, schema, data, valid, errors, local };\n }\n case 'validateForm': {\n const formValidation = validationSchema.reduce(\n (acc, cur) => {\n const [, validation] = processField({ key: cur, value: state.data[cur], mode: 'blur' }, { state });\n return {\n valid: { ...acc['valid'], [cur]: (validation.isValid && !state.fieldProblems[cur]) || false },\n errors: { ...acc['errors'], [cur]: validation.hasError(true) ? validation.getError(true) : null }\n };\n },\n { valid: state.valid, errors: state.errors }\n );\n\n return { ...state, valid: formValidation.valid, errors: formValidation.errors };\n }\n default:\n throw new Error('Undefined useForm action');\n }\n };\n}\n"],"names":["omitKeys","obj","omit","Object","keys","filter","k","includes","reduce","a","c","addKeys","add","initialValue","defaultData","pendingData","_object_spread_props","_object_spread","init","schema","processField","fieldProblems","getProcessedState","fieldKey","valid","errors","data","_ref","formattedValue","validationResult","key","value","mode","state","isValid","hasError","getError","_ref1","formData","acc","getReducer","type","formValue","selectedSchema","validationSchema","validation","oldValue","mergedState","values","every","defaultState","removedSchemaFields","x","newSchemaFields","local","formValidation","cur","Error"],"mappings":"yyBAAA,MAAMA,EAAW,CAACC,EAAKC,IACnBC,OAAOC,KAAKH,GACPI,OAAOC,IAAMJ,EAAKK,SAASD,IAC3BE,OAAO,CAACC,EAAGC,KACRD,EAAEC,GAAKT,EAAIS,GACJD,GACR,CAAA,GAELE,EAAU,CAACV,EAAKW,EAAKC,EAAcC,EAAaC,IAClDH,EAAIJ,OAAO,CAACC,EAAGC,KAAoBD,IAAAA,EAAAA,EAAAA,SAAbO,EAAAC,EAAA,CAAA,EAAKR,GAAAA,CAAGC,CAACA,GAAgD,QAA5CD,EAAwB,QAAxBA,EAAI,QAAJA,EAAAA,EAAEC,UAAFD,IAAAA,EAAAA,EAAQM,aAAAA,EAAAA,EAAcL,UAAtBD,IAAAA,EAAAA,EAA4BK,aAAAA,EAAAA,EAAcJ,UAA1CD,IAAAA,EAAAA,EAAgDI,KAAiBZ,GAKjG,SAASiB,GAAKC,OAAEA,EAAML,YAAEA,EAAWM,aAAEA,EAAYC,cAAEA,IACtD,MAAMC,EAAoBC,YACtB,QAAqC,IAA1BT,EAAYS,GACnB,MAAO,CAAEC,OAAO,EAAOC,OAAQ,KAAMC,KAAM,KAAML,cAAwC,UAAzBA,aAAAA,EAAAA,EAAgBE,UAAS,IAAAI,EAAAA,EAAI,MAEjG,MAAOC,EAAgBC,GAAoBT,EACvC,CAAEU,IAAKP,EAAUQ,MAAOjB,EAAYS,GAAWS,KAAM,QACrD,CAAEC,MAAO,CAAEP,KAAMZ,KAGrB,MAAO,CACHU,MAAQK,EAAiBK,WAAYb,aAAAA,EAAAA,EAAgBE,MAAc,EACnEE,OAAQI,EAAiBM,WAAaN,EAAiBO,WAAa,KACpEV,KAAME,EACNP,cAAwC,UAAzBA,aAAAA,EAAAA,EAAgBE,UAAS,IAAAc,EAAAA,EAAI,OAI9CC,EAAWnB,EAAOX,OACpB,CAAC+B,EAAUhB,KACP,MAAMC,MAAEA,EAAKC,OAAEA,EAAMC,KAAEA,EAAIL,cAAEA,GAAkBC,EAAkBC,GAEjE,MAAO,CACHC,MAAOR,EAAAC,EAAA,CAAA,EAAKsB,EAAIf,OAAK,CAAED,CAACA,GAAWC,IACnCC,OAAQT,EAAAC,EAAA,CAAA,EAAKsB,EAAId,QAAM,CAAEF,CAACA,GAAWE,IACrCC,KAAMV,EAAAC,EAAA,CAAA,EAAKsB,EAAIb,MAAI,CAAEH,CAACA,GAAWG,IACjCL,cAAeL,EAAAC,EAAA,CAAA,EAAKsB,EAAIlB,eAAa,CAAEE,CAACA,GAAWF,MAG3D,CAAEK,KAAM,CAAA,EAAIF,MAAO,CAAA,EAAIC,OAAQ,CAAA,EAAIJ,cAAe,CAAA,IAGtD,MAAO,CACHF,SACAO,KAAMY,EAASZ,KACfF,MAAOc,EAASd,MAChBC,OAAQa,EAASb,OACjBJ,cAAeiB,EAASjB,cAEhC,CAEO,SAASmB,EAAWpB,GACvB,OAAO,SAAiBa,GAAOQ,KAAEA,EAAIX,IAAEA,EAAGC,MAAEA,EAAKC,KAAEA,EAAIb,OAAEA,EAAML,YAAEA,EAAW4B,UAAEA,EAASC,eAAEA,EAActB,cAAEA,EAAaK,KAAEA,IACpH,MAAMkB,EAA6BD,GAAkBV,EAAMd,OAE3D,OAAQsB,GACJ,IAAK,UACD,OAAOzB,EAAAC,EAAA,CAAA,EAAKgB,GAAAA,CAAOP,KAAMV,EAAAC,EAAA,CAAA,EAAKgB,EAAM,MAAO,CAAEH,CAACA,GAAMC,MAExD,IAAK,YACD,OAAOf,EAAAC,EAAA,CAAA,EAAKgB,GAAAA,CAAOP,KAAMT,EAAA,CAAA,EAAKgB,EAAM,KAAYP,KAEpD,IAAK,WACD,OAAOV,EAAAC,EAAA,CAAA,EAAKgB,GAAAA,CAAOT,MAAOR,EAAAC,EAAA,CAAA,EAAKgB,EAAM,OAAQ,CAAEH,CAACA,GAAMC,MAE1D,IAAK,YACD,OAAOf,EAAAC,EAAA,CAAA,EAAKgB,GAAAA,CAAOR,OAAQT,EAAAC,EAAA,CAAA,EAAKgB,EAAM,QAAS,CAAEH,CAACA,GAAMC,MAE5D,IAAK,yBAEGE,EADJ,OAOQA,QAPRN,EACIM,SAAa,QAAbA,EAAAA,EAAOd,cAAPc,IAAAA,OAAAA,EAAAA,EAAezB,OACX,CAAC+B,EAAKT,WAGiCG,SAHxBjB,EAAAC,EAAA,CAAA,EACRsB,GAAAA,CACHlB,cAAeL,EAAAC,EAAA,CAAA,EAAKgB,EAAM,eAAgB,CAAEH,CAACA,GAA0B,QAAtBH,EAAEN,eAAAA,EAAgBS,UAAI,IAAAH,EAAAA,EAAI,OAC3EH,MAAOR,EAAAC,EAAA,CAAA,EAAKgB,EAAM,OAAQ,CAAEH,CAACA,IAAoB,QAAdG,EAAAA,EAAM,aAANA,IAAAA,OAAAA,EAAAA,EAAiBH,MAAST,EAAcS,QAE/EG,UAAAA,IAAAA,EAAAA,EACCA,EAGb,IAAK,cAAe,CAChB,MAAOL,EAAgBiB,GAAczB,EAAa,CAAEU,MAAKC,QAAOC,QAAQ,CAAEC,UACpEa,EAAWb,EAAMP,KAAKI,GACtBT,EAAgBJ,EAAA,GAAKgB,EAAMZ,eAIjC,OAHIyB,IAAalB,IACbP,EAAcS,GAAO,MAElBd,EAAAC,EAAA,CAAA,EACAgB,GAAAA,CACHP,KAAMV,EAAAC,EAAA,CAAA,EAAKgB,EAAM,MAAO,CAAEH,CAACA,GAAMF,IACjCH,OAAQT,EAAAC,EAAA,CAAA,EAAKgB,EAAM,QAAS,CAAEH,CAACA,GAAMe,EAAWV,WAAaU,EAAWT,WAAa,OACrFZ,MAAOR,EAAAC,EAAA,CAAA,EAAKgB,EAAM,OAAQ,CAAEH,CAACA,GAAOe,EAAWX,UAAYb,EAAcS,KAAS,IAClFT,iBAER,CACA,IAAK,YAAa,CAEd,MAAM0B,EAAc/B,EAAAC,EAAA,CAAA,EACbgB,GAAAA,CACHP,KAAMT,KAAKgB,OAAkBS,EAAU,MACvCjB,OAAQR,KAAKgB,SAAoBS,EAAU,QAC3ClB,MAAOP,KAAKgB,QAAmBS,EAAU,OACzCrB,cAAeJ,KAAKgB,gBAA2BS,EAAU,iBAK7D,OAHIK,EAAY,QACZA,EAAYb,QAAU/B,OAAO6C,OAAOD,EAAYvB,OAAOyB,MAAMf,GAAWA,IAErEa,CACX,CACA,IAAK,YAAa,CAc4Fd,IAAAA,EACIA,EACEA,EAfhH,MAAMiB,EAAehC,EAAK,CAAEC,SAAQL,cAAaM,eAAcC,kBACzD8B,EAAsBlB,EAAMd,OAAOd,OAAO+C,IAAMjC,EAAOZ,SAAS6C,IAChEC,EAAkBlC,EAAOd,OAAO+C,IAAMnB,EAAMd,OAAOZ,SAAS6C,IAI5DE,EAAQ,CACV5B,KAAM1B,EAASiC,EAAMP,KAAM2B,GAC3B5B,OAAQzB,EAASiC,EAAMR,OAAQ4B,GAC/B7B,MAAOxB,EAASiC,EAAMT,MAAO6B,IAI3B3B,EAAOf,EAAQX,EAASiC,EAAMP,KAAMyB,GAAsBE,EAAiB,KAAMH,EAAaxB,KAAiB,QAAXO,EAAAA,EAAMqB,aAANrB,IAAAA,OAAAA,EAAAA,EAAaP,MACjHF,EAAQb,EAAQX,EAASiC,EAAMT,MAAO2B,GAAsBE,GAAiB,EAAOH,EAAa1B,MAAkB,QAAXS,EAAAA,EAAMqB,aAANrB,IAAAA,OAAAA,EAAAA,EAAaT,OACrHC,EAASd,EAAQX,EAASiC,EAAMR,OAAQ0B,GAAsBE,EAAiB,KAAMH,EAAazB,OAAmB,QAAXQ,EAAAA,EAAMqB,aAANrB,IAAAA,OAAAA,EAAAA,EAAaR,QAE7H,OAAOT,EAAAC,EAAA,CAAA,EAAKgB,GAAAA,CAAOd,SAAQO,OAAMF,QAAOC,SAAQ6B,SACpD,CACA,IAAK,eAAgB,CACjB,MAAMC,EAAiBX,EAAiBpC,OACpC,CAAC+B,EAAKiB,KACF,MAAM,CAAGX,GAAczB,EAAa,CAAEU,IAAK0B,EAAKzB,MAAOE,EAAMP,KAAK8B,GAAMxB,KAAM,QAAU,CAAEC,UAC1F,MAAO,CACHT,MAAOR,EAAAC,EAAA,CAAA,EAAKsB,EAAI,OAAQ,CAAEiB,CAACA,GAAOX,EAAWX,UAAYD,EAAMZ,cAAcmC,KAAS,IACtF/B,OAAQT,EAAAC,EAAA,CAAA,EAAKsB,EAAI,QAAS,CAAEiB,CAACA,GAAMX,EAAWV,UAAS,GAAQU,EAAWT,UAAS,GAAQ,SAGnG,CAAEZ,MAAOS,EAAMT,MAAOC,OAAQQ,EAAMR,SAGxC,OAAOT,EAAAC,EAAA,CAAA,EAAKgB,GAAAA,CAAOT,MAAO+B,EAAe/B,MAAOC,OAAQ8B,EAAe9B,QAC3E,CACA,QACI,MAAM,IAAIgC,MAAM,4BAE5B,CACJ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adyen/adyen-web",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.29.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"homepage": "https://docs.adyen.com/checkout",
|
|
6
6
|
"type": "module",
|
|
@@ -90,11 +90,11 @@
|
|
|
90
90
|
"@rollup/plugin-node-resolve": "16.0.3",
|
|
91
91
|
"@rollup/plugin-replace": "6.0.3",
|
|
92
92
|
"@rollup/plugin-terser": "0.4.4",
|
|
93
|
-
"@size-limit/preset-big-lib": "
|
|
94
|
-
"@storybook/addon-a11y": "10.1.
|
|
95
|
-
"@storybook/addon-docs": "10.1.
|
|
96
|
-
"@storybook/preact-vite": "10.1.
|
|
97
|
-
"@swc/core": "1.
|
|
93
|
+
"@size-limit/preset-big-lib": "12.0.0",
|
|
94
|
+
"@storybook/addon-a11y": "10.1.10",
|
|
95
|
+
"@storybook/addon-docs": "10.1.10",
|
|
96
|
+
"@storybook/preact-vite": "10.1.10",
|
|
97
|
+
"@swc/core": "1.15.7",
|
|
98
98
|
"@testing-library/jest-dom": "6.9.1",
|
|
99
99
|
"@testing-library/preact": "3.2.4",
|
|
100
100
|
"@testing-library/preact-hooks": "1.1.0",
|
|
@@ -109,8 +109,8 @@
|
|
|
109
109
|
"eslint-plugin-import": "2.32.0",
|
|
110
110
|
"eslint-plugin-jsx-a11y": "6.10.2",
|
|
111
111
|
"eslint-plugin-react": "7.37.5",
|
|
112
|
-
"eslint-plugin-storybook": "10.1.
|
|
113
|
-
"eslint-plugin-testing-library": "7.
|
|
112
|
+
"eslint-plugin-storybook": "10.1.10",
|
|
113
|
+
"eslint-plugin-testing-library": "7.15.3",
|
|
114
114
|
"globals": "16.5.0",
|
|
115
115
|
"jest": "29.7.0",
|
|
116
116
|
"jest-environment-jsdom": "29.7.0",
|
|
@@ -119,13 +119,13 @@
|
|
|
119
119
|
"msw": "2.12.4",
|
|
120
120
|
"msw-storybook-addon": "2.0.6",
|
|
121
121
|
"postcss": "8.5.6",
|
|
122
|
-
"rollup": "4.
|
|
122
|
+
"rollup": "4.54.0",
|
|
123
123
|
"rollup-plugin-dts": "6.3.0",
|
|
124
124
|
"rollup-plugin-postcss": "4.0.2",
|
|
125
125
|
"rollup-plugin-stylelint": "1.0.0",
|
|
126
126
|
"rollup-plugin-swc3": "0.12.1",
|
|
127
|
-
"sass": "1.
|
|
128
|
-
"size-limit": "
|
|
127
|
+
"sass": "1.97.1",
|
|
128
|
+
"size-limit": "12.0.0",
|
|
129
129
|
"storybook": "10.1.10",
|
|
130
130
|
"stylelint": "16.26.1",
|
|
131
131
|
"stylelint-config-standard-scss": "16.0.0",
|
|
@@ -139,7 +139,7 @@
|
|
|
139
139
|
},
|
|
140
140
|
"dependencies": {
|
|
141
141
|
"@types/applepayjs": "14.0.9",
|
|
142
|
-
"@types/googlepay": "0.7.
|
|
142
|
+
"@types/googlepay": "0.7.10",
|
|
143
143
|
"classnames": "2.5.1",
|
|
144
144
|
"preact": "10.22.1"
|
|
145
145
|
},
|