@adyen/adyen-web 6.13.1 → 6.15.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 +7 -2
- package/dist/cjs/adyen.css.map +1 -1
- package/dist/cjs/index.cjs +2 -2
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.cts +299 -205
- package/dist/es/adyen.css +7 -2
- package/dist/es/adyen.css.map +1 -1
- package/dist/es/components/AmazonPay/AmazonPay.js +1 -1
- package/dist/es/components/AmazonPay/AmazonPay.js.map +1 -1
- package/dist/es/components/ApplePay/ApplePay.js +1 -1
- package/dist/es/components/ApplePay/ApplePay.js.map +1 -1
- package/dist/es/components/Card/Card.js +1 -1
- package/dist/es/components/Card/Card.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/CardInput.js +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/Card/components/CardInput/utils.js +1 -1
- package/dist/es/components/Card/components/CardInput/utils.js.map +1 -1
- package/dist/es/components/Card/components/Fastlane/FastlaneSignup.js +1 -1
- package/dist/es/components/Card/components/Fastlane/FastlaneSignup.js.map +1 -1
- package/dist/es/components/CustomCard/CustomCard.js +1 -1
- package/dist/es/components/CustomCard/CustomCard.js.map +1 -1
- package/dist/es/components/Dropin/Dropin.js +1 -1
- package/dist/es/components/Dropin/Dropin.js.map +1 -1
- package/dist/es/components/Dropin/components/DropinComponent.js +1 -1
- package/dist/es/components/Dropin/components/DropinComponent.js.map +1 -1
- package/dist/es/components/GooglePay/GooglePay.js +1 -1
- package/dist/es/components/GooglePay/GooglePay.js.map +1 -1
- package/dist/es/components/PayByBankPix/PayByBankPix.js +2 -0
- package/dist/es/components/PayByBankPix/PayByBankPix.js.map +1 -0
- package/dist/es/components/PayByBankPix/components/Enrollment/Enrollment.js +2 -0
- package/dist/es/components/PayByBankPix/components/Enrollment/Enrollment.js.map +1 -0
- package/dist/es/components/PayByBankPix/components/Enrollment/components/AwaitLogoContainer.js +2 -0
- package/dist/es/components/PayByBankPix/components/Enrollment/components/AwaitLogoContainer.js.map +1 -0
- package/dist/es/components/PayByBankPix/components/Enrollment/components/IssuerListIntroduction.js +2 -0
- package/dist/es/components/PayByBankPix/components/Enrollment/components/IssuerListIntroduction.js.map +1 -0
- package/dist/es/components/PayByBankPix/components/Enrollment/components/PayByBankPixAwait.js +2 -0
- package/dist/es/components/PayByBankPix/components/Enrollment/components/PayByBankPixAwait.js.map +1 -0
- package/dist/es/components/PayByBankPix/components/Enrollment/getEnrollmentStatus.js +2 -0
- package/dist/es/components/PayByBankPix/components/Enrollment/getEnrollmentStatus.js.map +1 -0
- package/dist/es/components/PayByBankPix/components/Enrollment/useIssuerWithLogo.js +2 -0
- package/dist/es/components/PayByBankPix/components/Enrollment/useIssuerWithLogo.js.map +1 -0
- package/dist/es/components/PayByBankPix/components/StoredPayment/StoredPayment.js +2 -0
- package/dist/es/components/PayByBankPix/components/StoredPayment/StoredPayment.js.map +1 -0
- package/dist/es/components/PayByBankPix/components/StoredPayment/getAuthorizationStatus.js +2 -0
- package/dist/es/components/PayByBankPix/components/StoredPayment/getAuthorizationStatus.js.map +1 -0
- package/dist/es/components/PayByBankPix/services/PasskeySdkLoader.js +2 -0
- package/dist/es/components/PayByBankPix/services/PasskeySdkLoader.js.map +1 -0
- package/dist/es/components/PayByBankPix/services/PasskeyService.js +2 -0
- package/dist/es/components/PayByBankPix/services/PasskeyService.js.map +1 -0
- package/dist/es/components/PayByBankPix/services/authorizeEnrollment.js +2 -0
- package/dist/es/components/PayByBankPix/services/authorizeEnrollment.js.map +1 -0
- package/dist/es/components/PayByBankPix/services/authorizePayment.js +2 -0
- package/dist/es/components/PayByBankPix/services/authorizePayment.js.map +1 -0
- package/dist/es/components/PayByBankPix/services/types.js +2 -0
- package/dist/es/components/PayByBankPix/services/types.js.map +1 -0
- package/dist/es/components/PayPal/Paypal.js +1 -1
- package/dist/es/components/PayPal/Paypal.js.map +1 -1
- package/dist/es/components/Redirect/Redirect.js +1 -1
- package/dist/es/components/Redirect/Redirect.js.map +1 -1
- package/dist/es/components/Riverty/Riverty.js +1 -1
- package/dist/es/components/Riverty/Riverty.js.map +1 -1
- package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
- package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
- package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
- package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
- package/dist/es/components/ThreeDS2/callSubmit3DS2Fingerprint.js +1 -1
- package/dist/es/components/ThreeDS2/callSubmit3DS2Fingerprint.js.map +1 -1
- package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
- package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
- package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
- package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
- package/dist/es/components/ThreeDS2/constants.js +1 -1
- package/dist/es/components/ThreeDS2/constants.js.map +1 -1
- package/dist/es/components/components-name-map.js +1 -1
- package/dist/es/components/components-name-map.js.map +1 -1
- package/dist/es/components/index.js +1 -1
- package/dist/es/components/internal/Address/components/ReadOnlyAddress.js +1 -1
- package/dist/es/components/internal/Address/components/ReadOnlyAddress.js.map +1 -1
- package/dist/es/components/internal/Address/constants.js +1 -1
- package/dist/es/components/internal/Address/constants.js.map +1 -1
- package/dist/es/components/internal/Await/Await.js +1 -1
- package/dist/es/components/internal/Await/Await.js.map +1 -1
- package/dist/es/components/internal/BaseElement/BaseElement.js +1 -1
- package/dist/es/components/internal/BaseElement/BaseElement.js.map +1 -1
- package/dist/es/components/internal/DisclaimerMessage/DisclaimerMessage.js +1 -1
- package/dist/es/components/internal/DisclaimerMessage/DisclaimerMessage.js.map +1 -1
- package/dist/es/components/internal/IssuerList/IssuerList.js +1 -1
- package/dist/es/components/internal/IssuerList/IssuerList.js.map +1 -1
- package/dist/es/components/internal/OpenInvoice/utils.js.map +1 -1
- package/dist/es/components/internal/QRLoader/QRLoader.js +1 -1
- package/dist/es/components/internal/QRLoader/QRLoader.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
- package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
- package/dist/es/components/internal/UIElement/UIElement.js +1 -1
- package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
- package/dist/es/components/tx-variants.js +1 -1
- package/dist/es/components/tx-variants.js.map +1 -1
- package/dist/es/core/Analytics/Analytics.js +1 -1
- package/dist/es/core/Analytics/Analytics.js.map +1 -1
- package/dist/es/core/Analytics/AnalyticsErrorEvent.js +2 -0
- package/dist/es/core/Analytics/AnalyticsErrorEvent.js.map +1 -0
- package/dist/es/core/Analytics/AnalyticsEvent.js +2 -0
- package/dist/es/core/Analytics/AnalyticsEvent.js.map +1 -0
- package/dist/es/core/Analytics/AnalyticsInfoEvent.js +2 -0
- package/dist/es/core/Analytics/AnalyticsInfoEvent.js.map +1 -0
- package/dist/es/core/Analytics/AnalyticsLogEvent.js +2 -0
- package/dist/es/core/Analytics/AnalyticsLogEvent.js.map +1 -0
- package/dist/es/core/Analytics/utils.js +1 -1
- package/dist/es/core/Analytics/utils.js.map +1 -1
- package/dist/es/core/Environment/Environment.js +1 -1
- package/dist/es/core/Environment/Environment.js.map +1 -1
- package/dist/es/core/ProcessResponse/PaymentMethods/filters.js +1 -1
- package/dist/es/core/ProcessResponse/PaymentMethods/filters.js.map +1 -1
- package/dist/es/core/Services/analytics/collect-id.js +1 -1
- package/dist/es/core/core.js +1 -1
- package/dist/es/core/core.js.map +1 -1
- package/dist/es/core/utils.js +1 -1
- package/dist/es/core/utils.js.map +1 -1
- package/dist/es/index.d.ts +299 -205
- package/dist/es/index.js +1 -1
- package/dist/es/utils/base64.js.map +1 -1
- package/dist/es-legacy/adyen.css +7 -2
- package/dist/es-legacy/adyen.css.map +1 -1
- package/dist/es-legacy/components/AmazonPay/AmazonPay.js +1 -1
- package/dist/es-legacy/components/AmazonPay/AmazonPay.js.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/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/types.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/Fastlane/FastlaneSignup.js +1 -1
- package/dist/es-legacy/components/Card/components/Fastlane/FastlaneSignup.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/Dropin/Dropin.js +1 -1
- package/dist/es-legacy/components/Dropin/Dropin.js.map +1 -1
- package/dist/es-legacy/components/Dropin/components/DropinComponent.js +1 -1
- package/dist/es-legacy/components/Dropin/components/DropinComponent.js.map +1 -1
- package/dist/es-legacy/components/GooglePay/GooglePay.js +1 -1
- package/dist/es-legacy/components/GooglePay/GooglePay.js.map +1 -1
- package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js +2 -0
- package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js.map +1 -0
- package/dist/es-legacy/components/PayByBankPix/components/Enrollment/Enrollment.js +2 -0
- package/dist/es-legacy/components/PayByBankPix/components/Enrollment/Enrollment.js.map +1 -0
- package/dist/es-legacy/components/PayByBankPix/components/Enrollment/components/AwaitLogoContainer.js +2 -0
- package/dist/es-legacy/components/PayByBankPix/components/Enrollment/components/AwaitLogoContainer.js.map +1 -0
- package/dist/es-legacy/components/PayByBankPix/components/Enrollment/components/IssuerListIntroduction.js +2 -0
- package/dist/es-legacy/components/PayByBankPix/components/Enrollment/components/IssuerListIntroduction.js.map +1 -0
- package/dist/es-legacy/components/PayByBankPix/components/Enrollment/components/PayByBankPixAwait.js +2 -0
- package/dist/es-legacy/components/PayByBankPix/components/Enrollment/components/PayByBankPixAwait.js.map +1 -0
- package/dist/es-legacy/components/PayByBankPix/components/Enrollment/getEnrollmentStatus.js +2 -0
- package/dist/es-legacy/components/PayByBankPix/components/Enrollment/getEnrollmentStatus.js.map +1 -0
- package/dist/es-legacy/components/PayByBankPix/components/Enrollment/useIssuerWithLogo.js +2 -0
- package/dist/es-legacy/components/PayByBankPix/components/Enrollment/useIssuerWithLogo.js.map +1 -0
- package/dist/es-legacy/components/PayByBankPix/components/StoredPayment/StoredPayment.js +2 -0
- package/dist/es-legacy/components/PayByBankPix/components/StoredPayment/StoredPayment.js.map +1 -0
- package/dist/es-legacy/components/PayByBankPix/components/StoredPayment/getAuthorizationStatus.js +2 -0
- package/dist/es-legacy/components/PayByBankPix/components/StoredPayment/getAuthorizationStatus.js.map +1 -0
- package/dist/es-legacy/components/PayByBankPix/services/PasskeySdkLoader.js +2 -0
- package/dist/es-legacy/components/PayByBankPix/services/PasskeySdkLoader.js.map +1 -0
- package/dist/es-legacy/components/PayByBankPix/services/PasskeyService.js +2 -0
- package/dist/es-legacy/components/PayByBankPix/services/PasskeyService.js.map +1 -0
- package/dist/es-legacy/components/PayByBankPix/services/authorizeEnrollment.js +2 -0
- package/dist/es-legacy/components/PayByBankPix/services/authorizeEnrollment.js.map +1 -0
- package/dist/es-legacy/components/PayByBankPix/services/authorizePayment.js +2 -0
- package/dist/es-legacy/components/PayByBankPix/services/authorizePayment.js.map +1 -0
- package/dist/es-legacy/components/PayByBankPix/services/types.js +2 -0
- package/dist/es-legacy/components/PayByBankPix/services/types.js.map +1 -0
- 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/Redirect/Redirect.js +1 -1
- package/dist/es-legacy/components/Redirect/Redirect.js.map +1 -1
- package/dist/es-legacy/components/Riverty/Riverty.js +1 -1
- package/dist/es-legacy/components/Riverty/Riverty.js.map +1 -1
- package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
- package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
- package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
- package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
- package/dist/es-legacy/components/ThreeDS2/callSubmit3DS2Fingerprint.js +1 -1
- package/dist/es-legacy/components/ThreeDS2/callSubmit3DS2Fingerprint.js.map +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
- package/dist/es-legacy/components/ThreeDS2/constants.js +1 -1
- package/dist/es-legacy/components/ThreeDS2/constants.js.map +1 -1
- package/dist/es-legacy/components/components-name-map.js +1 -1
- package/dist/es-legacy/components/components-name-map.js.map +1 -1
- package/dist/es-legacy/components/index.js +1 -1
- package/dist/es-legacy/components/internal/Address/components/ReadOnlyAddress.js +1 -1
- package/dist/es-legacy/components/internal/Address/components/ReadOnlyAddress.js.map +1 -1
- package/dist/es-legacy/components/internal/Address/constants.js +1 -1
- package/dist/es-legacy/components/internal/Address/constants.js.map +1 -1
- package/dist/es-legacy/components/internal/Await/Await.js +1 -1
- package/dist/es-legacy/components/internal/Await/Await.js.map +1 -1
- package/dist/es-legacy/components/internal/BaseElement/BaseElement.js +1 -1
- package/dist/es-legacy/components/internal/BaseElement/BaseElement.js.map +1 -1
- package/dist/es-legacy/components/internal/DisclaimerMessage/DisclaimerMessage.js +1 -1
- package/dist/es-legacy/components/internal/DisclaimerMessage/DisclaimerMessage.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/OpenInvoice/utils.js.map +1 -1
- package/dist/es-legacy/components/internal/QRLoader/QRLoader.js +1 -1
- package/dist/es-legacy/components/internal/QRLoader/QRLoader.js.map +1 -1
- package/dist/es-legacy/components/internal/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/UIElement/UIElement.js +1 -1
- package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
- package/dist/es-legacy/components/tx-variants.js +1 -1
- package/dist/es-legacy/components/tx-variants.js.map +1 -1
- package/dist/es-legacy/core/Analytics/Analytics.js +1 -1
- package/dist/es-legacy/core/Analytics/Analytics.js.map +1 -1
- package/dist/es-legacy/core/Analytics/AnalyticsErrorEvent.js +2 -0
- package/dist/es-legacy/core/Analytics/AnalyticsErrorEvent.js.map +1 -0
- package/dist/es-legacy/core/Analytics/AnalyticsEvent.js +2 -0
- package/dist/es-legacy/core/Analytics/AnalyticsEvent.js.map +1 -0
- package/dist/es-legacy/core/Analytics/AnalyticsInfoEvent.js +2 -0
- package/dist/es-legacy/core/Analytics/AnalyticsInfoEvent.js.map +1 -0
- package/dist/es-legacy/core/Analytics/AnalyticsLogEvent.js +2 -0
- package/dist/es-legacy/core/Analytics/AnalyticsLogEvent.js.map +1 -0
- 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/Environment/Environment.js +1 -1
- package/dist/es-legacy/core/Environment/Environment.js.map +1 -1
- package/dist/es-legacy/core/ProcessResponse/PaymentMethods/filters.js +1 -1
- package/dist/es-legacy/core/ProcessResponse/PaymentMethods/filters.js.map +1 -1
- package/dist/es-legacy/core/Services/analytics/collect-id.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/core/utils.js +1 -1
- package/dist/es-legacy/core/utils.js.map +1 -1
- package/dist/es-legacy/index.js +1 -1
- package/dist/es-legacy/utils/base64.js.map +1 -1
- package/package.json +6 -7
- package/styles/adyen.css +7 -2
- package/dist/es/components/Riverty/config.js +0 -2
- package/dist/es/components/Riverty/config.js.map +0 -1
- package/dist/es/core/Analytics/analyticsPreProcessor.js +0 -2
- package/dist/es/core/Analytics/analyticsPreProcessor.js.map +0 -1
- package/dist/es-legacy/components/Riverty/config.js +0 -2
- package/dist/es-legacy/components/Riverty/config.js.map +0 -1
- package/dist/es-legacy/core/Analytics/analyticsPreProcessor.js +0 -2
- package/dist/es-legacy/core/Analytics/analyticsPreProcessor.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasskeySdkLoader.js","sources":["../../../../../src/components/PayByBankPix/services/PasskeySdkLoader.ts"],"sourcesContent":["import { IAdyenPasskey } from './types';\nimport { getUrlFromMap } from '../../../core/Environment/Environment';\nimport type { CoreConfiguration } from '../../../core/types';\nimport { CDN_ENVIRONMENTS } from '../../../core/Environment/constants';\nimport AdyenCheckoutError from '../../../core/Errors/AdyenCheckoutError';\nimport Script from '../../../utils/Script';\n\nexport interface IPasskeySdkLoader {\n load(environment: CoreConfiguration['environment']): Promise<IAdyenPasskey>;\n}\n\nclass PasskeySdkLoader implements IPasskeySdkLoader {\n private static readonly PASSKEY_SDK_URL = 'js/adyenpasskey/1.1.0/adyen-passkey.js';\n private AdyenPasskey: IAdyenPasskey;\n\n private isAvailable(): boolean {\n return this.AdyenPasskey != null;\n }\n\n public async load(environment: string): Promise<IAdyenPasskey> {\n if (this.isAvailable()) {\n return this.AdyenPasskey;\n }\n\n try {\n const cdnUrl = getUrlFromMap(environment as CoreConfiguration['environment'], CDN_ENVIRONMENTS);\n const url = `${cdnUrl}${PasskeySdkLoader.PASSKEY_SDK_URL}`;\n const scriptElement = new Script(url);\n await scriptElement.load();\n this.AdyenPasskey = window.AdyenPasskey?.default;\n return this.AdyenPasskey;\n } catch (e: unknown) {\n throw new AdyenCheckoutError(\n 'SCRIPT_ERROR',\n `Unable to load script. Message: ${e instanceof Error ? e.message : 'Unknown error loading Passkey sdk'}`\n );\n }\n }\n}\n\nexport { PasskeySdkLoader };\n"],"names":["PasskeySdkLoader","isAvailable","this","AdyenPasskey","load","environment","window","cdnUrl","getUrlFromMap","CDN_ENVIRONMENTS","scriptElement","Script","PASSKEY_SDK_URL","default","e","AdyenCheckoutError","Error","message","_define_property"],"mappings":"6WAWA,MAAMA,EAIMC,WAAAA,GACJ,OAA4B,MAArBC,KAAKC,YAChB,CAEA,UAAaC,CAAKC,GACd,GAAIH,KAAKD,cACL,OAAOC,KAAKC,aAGhB,IAKwBG,IAAAA,EAJpB,MAAMC,EAASC,EAAcH,EAAiDI,GAExEC,EAAgB,IAAIC,EADd,GAAGJ,IAASP,EAAiBY,mBAIzC,aAFMF,EAAcN,OACpBF,KAAKC,aAAkC,QAAnBG,EAAAA,OAAOH,oBAAPG,IAAAA,OAAAA,EAAAA,EAAqBO,QAClCX,KAAKC,YAChB,CAAE,MAAOW,GACL,MAAM,IAAIC,EACN,eACA,mCAAmCD,aAAaE,MAAQF,EAAEG,QAAU,sCAE5E,CACJ,eAxBAC,EAAAhB,KAAQC,oBAAR,IADAe,EADElB,EACsBY,kBAAkB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{PasskeySdkLoader as e}from"./PasskeySdkLoader.js";import{PasskeyErrorTypes as i}from"./types.js";import t,{SDK_ERROR as n}from"../../../core/Errors/AdyenCheckoutError.js";import s from"../../../utils/base64.js";function r(e,i,t){return i in e?Object.defineProperty(e,i,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[i]=t,e}class a{get deviceId(){return this.passkeyServiceConfig.deviceId}async getWebAuthnUnsupportedReason(){if(!window.PublicKeyCredential)return"Browser does not support webauthn";try{if(!await window.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable())return"Device does not have platform authenticator"}catch(e){return"Unknown error"}return""}initialize(){return null==this.initialized&&(this.initialized=(new e).load(this.passkeyServiceConfig.environment).then((e=>{this.passkeySdk=e}))),this.initialized}async captureRiskSignalsEnrollment(){if(await this.initialized,this.riskSignals)return this.riskSignals;const e=await this.passkeySdk.captureRiskSignalsEnrollment(this.deviceId);if(e&&"type"in e&&e.type===i.RISK_SIGNALS_ERROR)throw new t(n,e.message);return this.riskSignals=e,this.riskSignals}async canUseStoredCredential(){try{return await this.captureRiskSignalsAuthentication(),!0}catch(e){return console.warn(`The device is not eligible for stored credential authentication: ${e instanceof Error?null==e?void 0:e.message:"unknown error"}`),!1}}async captureRiskSignalsAuthentication(){await this.initialized;const e=await this.passkeySdk.captureRiskSignalsAuthentication(this.deviceId);if(e&&"type"in e&&e.type===i.RISK_SIGNALS_ERROR)throw new t(n,e.message);return e}async createCredentialForEnrollment(e){await this.initialized;const r=this.decodeJsonBase64(e,"Failed to decode registrationOptions"),a=await this.passkeySdk.createCredentialForEnrollment(r);if(a&&"type"in a&&a.type===i.CREDENTIAL_CREATION_ERROR)throw new t(n,a.message);return s.encode(JSON.stringify(a))}async authenticateWithCredential(e){await this.initialized;const r=this.decodeJsonBase64(e,"Failed to decode authenticationOptions"),a=await this.passkeySdk.authenticateWithCredential(r);if(a&&"type"in a&&a.type===i.CREDENTIAL_RETRIEVAL_ERROR)throw new t(n,a.message);return s.encode(JSON.stringify(a))}decodeJsonBase64(e,i){const r=s.decode(e);if(!r.success)throw new t(n,i);return JSON.parse(r.data)}constructor(e){r(this,"passkeySdk",void 0),r(this,"passkeyServiceConfig",void 0),r(this,"riskSignals",void 0),r(this,"initialized",void 0),this.passkeyServiceConfig=e}}export{a as PasskeyService};
|
|
2
|
+
//# sourceMappingURL=PasskeyService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasskeyService.js","sources":["../../../../../src/components/PayByBankPix/services/PasskeyService.ts"],"sourcesContent":["import { PasskeySdkLoader } from './PasskeySdkLoader';\nimport {\n PasskeyServiceConfig,\n IPasskeyService,\n IAdyenPasskey,\n PasskeyErrorTypes,\n RiskSignalsEnrollment,\n RiskSignalsAuthentication,\n NavigatorCredentialCreationsError,\n NavigatorCredentialRetrievalError\n} from './types';\nimport AdyenCheckoutError, { SDK_ERROR } from '../../../core/Errors/AdyenCheckoutError';\nimport { DecodeObject } from '../../../types/global-types';\nimport base64 from '../../../utils/base64';\n\nexport class PasskeyService implements IPasskeyService {\n private passkeySdk: IAdyenPasskey;\n private readonly passkeyServiceConfig: PasskeyServiceConfig;\n private riskSignals: RiskSignalsEnrollment | RiskSignalsAuthentication;\n private initialized: Promise<void>;\n\n constructor(configuration: PasskeyServiceConfig) {\n this.passkeyServiceConfig = configuration;\n }\n\n get deviceId() {\n return this.passkeyServiceConfig.deviceId;\n }\n\n public async getWebAuthnUnsupportedReason(): Promise<string> {\n if (!window.PublicKeyCredential) {\n return 'Browser does not support webauthn';\n }\n try {\n const platformAuthenticatorAvailable = await window.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable();\n if (!platformAuthenticatorAvailable) {\n return 'Device does not have platform authenticator';\n }\n } catch (e) {\n return 'Unknown error';\n }\n\n return '';\n }\n\n public initialize() {\n if (this.initialized == null) {\n this.initialized = new PasskeySdkLoader().load(this.passkeyServiceConfig.environment).then(passkey => {\n this.passkeySdk = passkey;\n });\n }\n\n return this.initialized;\n }\n\n public async captureRiskSignalsEnrollment(): Promise<RiskSignalsEnrollment> {\n await this.initialized;\n if (this.riskSignals) {\n // Cache it so we don't create unnecessary entries in the localstorage by calling captureRiskSignalsEnrollment\n return this.riskSignals;\n }\n\n const result = await this.passkeySdk.captureRiskSignalsEnrollment(this.deviceId);\n if (result && 'type' in result && result.type === PasskeyErrorTypes.RISK_SIGNALS_ERROR) {\n throw new AdyenCheckoutError(SDK_ERROR, result.message);\n }\n this.riskSignals = result as RiskSignalsEnrollment;\n return this.riskSignals;\n }\n\n public async canUseStoredCredential(): Promise<boolean> {\n try {\n await this.captureRiskSignalsAuthentication();\n return true;\n } catch (error) {\n console.warn(\n `The device is not eligible for stored credential authentication: ${error instanceof Error ? error?.message : 'unknown error'}`\n );\n return false;\n }\n }\n\n public async captureRiskSignalsAuthentication(): Promise<RiskSignalsAuthentication> {\n await this.initialized;\n const result = await this.passkeySdk.captureRiskSignalsAuthentication(this.deviceId);\n if (result && 'type' in result && result.type === PasskeyErrorTypes.RISK_SIGNALS_ERROR) {\n throw new AdyenCheckoutError(SDK_ERROR, result.message);\n }\n return result as RiskSignalsAuthentication;\n }\n\n public async createCredentialForEnrollment(registrationOptions: string): Promise<string> {\n await this.initialized;\n const options = this.decodeJsonBase64(registrationOptions, 'Failed to decode registrationOptions');\n const result = await this.passkeySdk.createCredentialForEnrollment(options);\n if (result && 'type' in result && result.type === PasskeyErrorTypes.CREDENTIAL_CREATION_ERROR) {\n throw new AdyenCheckoutError(SDK_ERROR, (result as NavigatorCredentialCreationsError).message);\n }\n return base64.encode(JSON.stringify(result));\n }\n\n public async authenticateWithCredential(authenticationOptions: string): Promise<string> {\n await this.initialized;\n const options = this.decodeJsonBase64(authenticationOptions, 'Failed to decode authenticationOptions');\n const result = await this.passkeySdk.authenticateWithCredential(options);\n if (result && 'type' in result && result.type === PasskeyErrorTypes.CREDENTIAL_RETRIEVAL_ERROR) {\n throw new AdyenCheckoutError(SDK_ERROR, (result as NavigatorCredentialRetrievalError).message);\n }\n return base64.encode(JSON.stringify(result));\n }\n\n private decodeJsonBase64(encoded: string, errorMessage: string) {\n const decoded: DecodeObject = base64.decode(encoded);\n if (!decoded.success) {\n throw new AdyenCheckoutError(SDK_ERROR, errorMessage);\n }\n return JSON.parse(decoded.data);\n }\n}\n"],"names":["PasskeyService","deviceId","this","passkeyServiceConfig","getWebAuthnUnsupportedReason","window","PublicKeyCredential","isUserVerifyingPlatformAuthenticatorAvailable","e","initialize","initialized","PasskeySdkLoader","load","environment","then","passkey","passkeySdk","captureRiskSignalsEnrollment","riskSignals","result","type","PasskeyErrorTypes","RISK_SIGNALS_ERROR","AdyenCheckoutError","SDK_ERROR","message","canUseStoredCredential","captureRiskSignalsAuthentication","error","console","warn","Error","createCredentialForEnrollment","registrationOptions","options","decodeJsonBase64","CREDENTIAL_CREATION_ERROR","base64","encode","JSON","stringify","authenticateWithCredential","authenticationOptions","CREDENTIAL_RETRIEVAL_ERROR","encoded","errorMessage","decoded","decode","success","parse","data","constructor","configuration","_define_property"],"mappings":"kVAeO,MAAMA,EAUT,YAAIC,GACA,OAAOC,KAAKC,qBAAqBF,QACrC,CAEA,kCAAaG,GACT,IAAKC,OAAOC,oBACR,MAAO,oCAEX,IAEI,UAD6CD,OAAOC,oBAAoBC,gDAEpE,MAAO,6CAEf,CAAE,MAAOC,GACL,MAAO,eACX,CAEA,MAAO,EACX,CAEOC,UAAAA,GAOH,OANwB,MAApBP,KAAKQ,cACLR,KAAKQ,aAAc,IAAIC,GAAmBC,KAAKV,KAAKC,qBAAqBU,aAAaC,MAAKC,IACvFb,KAAKc,WAAaD,CAAAA,KAInBb,KAAKQ,WAChB,CAEA,kCAAaO,GAET,SADMf,KAAKQ,YACPR,KAAKgB,YAEL,OAAOhB,KAAKgB,YAGhB,MAAMC,QAAejB,KAAKc,WAAWC,6BAA6Bf,KAAKD,UACvE,GAAIkB,GAAU,SAAUA,GAAUA,EAAOC,OAASC,EAAkBC,mBAChE,MAAM,IAAIC,EAAmBC,EAAWL,EAAOM,SAGnD,OADAvB,KAAKgB,YAAcC,EACZjB,KAAKgB,WAChB,CAEA,4BAAaQ,GACT,IAEI,aADMxB,KAAKyB,oCACJ,CACX,CAAE,MAAOC,GAIL,OAHAC,QAAQC,KACJ,oEAAoEF,aAAiBG,MAAQH,aAAAA,EAAAA,EAAOH,QAAU,oBAE3G,CACX,CACJ,CAEA,sCAAaE,SACHzB,KAAKQ,YACX,MAAMS,QAAejB,KAAKc,WAAWW,iCAAiCzB,KAAKD,UAC3E,GAAIkB,GAAU,SAAUA,GAAUA,EAAOC,OAASC,EAAkBC,mBAChE,MAAM,IAAIC,EAAmBC,EAAWL,EAAOM,SAEnD,OAAON,CACX,CAEA,mCAAaa,CAA8BC,SACjC/B,KAAKQ,YACX,MAAMwB,EAAUhC,KAAKiC,iBAAiBF,EAAqB,wCACrDd,QAAejB,KAAKc,WAAWgB,8BAA8BE,GACnE,GAAIf,GAAU,SAAUA,GAAUA,EAAOC,OAASC,EAAkBe,0BAChE,MAAM,IAAIb,EAAmBC,EAAYL,EAA6CM,SAE1F,OAAOY,EAAOC,OAAOC,KAAKC,UAAUrB,GACxC,CAEA,gCAAasB,CAA2BC,SAC9BxC,KAAKQ,YACX,MAAMwB,EAAUhC,KAAKiC,iBAAiBO,EAAuB,0CACvDvB,QAAejB,KAAKc,WAAWyB,2BAA2BP,GAChE,GAAIf,GAAU,SAAUA,GAAUA,EAAOC,OAASC,EAAkBsB,2BAChE,MAAM,IAAIpB,EAAmBC,EAAYL,EAA6CM,SAE1F,OAAOY,EAAOC,OAAOC,KAAKC,UAAUrB,GACxC,CAEQgB,gBAAAA,CAAiBS,EAAiBC,GACtC,MAAMC,EAAwBT,EAAOU,OAAOH,GAC5C,IAAKE,EAAQE,QACT,MAAM,IAAIzB,EAAmBC,EAAWqB,GAE5C,OAAON,KAAKU,MAAMH,EAAQI,KAC9B,CAhGAC,WAAAA,CAAYC,GALZC,EAAAnD,KAAQc,kBAAR,GACAqC,EAAAnD,KAAiBC,4BAAjB,GACAkD,EAAAnD,KAAQgB,mBAAR,GACAmC,EAAAnD,KAAQQ,mBAAR,GAGIR,KAAKC,qBAAuBiD,CAChC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{httpPost as t}from"../../../core/Services/http.js";async function e({enrollment:e,clientKey:o,loadingContext:n,timeout:r=1e4}){if(!e||!o)throw new Error("Could not authorize the enrollment");return t({loadingContext:n,path:`utility/v1/pixpaybybank/redirect-result?clientKey=${o}`,timeout:r},e)}export{e as authorizeEnrollment};
|
|
2
|
+
//# sourceMappingURL=authorizeEnrollment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorizeEnrollment.js","sources":["../../../../../src/components/PayByBankPix/services/authorizeEnrollment.ts"],"sourcesContent":["import { httpPost } from '../../../core/Services/http';\nimport { RawPaymentResponse } from '../../../types/global-types';\n\ninterface IPostEnrollment {\n enrollment: { enrollmentId: string; fidoAssertion: string };\n clientKey: string;\n loadingContext: string;\n timeout?: number; // in milliseconds\n}\n\nasync function authorizeEnrollment({ enrollment, clientKey, loadingContext, timeout = 10000 }: IPostEnrollment): Promise<RawPaymentResponse> {\n if (!enrollment || !clientKey) {\n throw new Error('Could not authorize the enrollment');\n }\n const options = {\n loadingContext,\n path: `utility/v1/pixpaybybank/redirect-result?clientKey=${clientKey}`,\n timeout\n };\n\n return httpPost(options, enrollment);\n}\n\nexport { authorizeEnrollment };\n"],"names":["async","authorizeEnrollment","enrollment","clientKey","loadingContext","timeout","Error","httpPost","path"],"mappings":"0DAUAA,eAAeC,GAAoBC,WAAEA,EAAUC,UAAEA,EAASC,eAAEA,EAAcC,QAAEA,EAAU,MAClF,IAAKH,IAAeC,EAChB,MAAM,IAAIG,MAAM,sCAQpB,OAAOC,EANS,CACZH,iBACAI,KAAM,qDAAqDL,IAC3DE,WAGqBH,EAC7B"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{httpPost as t}from"../../../core/Services/http.js";async function e({payment:e,clientKey:o,loadingContext:i,timeout:n=1e4}){if(!e||!o)throw new Error("Could not authorize the payment");return t({loadingContext:i,path:`utility/v1/pixpaybybank/redirect-result?clientKey=${o}`,timeout:n},e)}export{e as authorizePayment};
|
|
2
|
+
//# sourceMappingURL=authorizePayment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorizePayment.js","sources":["../../../../../src/components/PayByBankPix/services/authorizePayment.ts"],"sourcesContent":["import { httpPost } from '../../../core/Services/http';\nimport { RawPaymentResponse } from '../../../types/global-types';\n\ninterface IAuthorizePayment {\n payment: { enrollmentId: string; initiationId: string; fidoAssertion: string };\n clientKey: string;\n loadingContext: string;\n timeout?: number; // in milliseconds\n}\n\nasync function authorizePayment({ payment, clientKey, loadingContext, timeout = 10000 }: IAuthorizePayment): Promise<RawPaymentResponse> {\n if (!payment || !clientKey) {\n throw new Error('Could not authorize the payment');\n }\n const options = {\n loadingContext,\n path: `utility/v1/pixpaybybank/redirect-result?clientKey=${clientKey}`,\n timeout\n };\n\n return httpPost(options, payment);\n}\n\nexport { authorizePayment };\n"],"names":["async","authorizePayment","payment","clientKey","loadingContext","timeout","Error","httpPost","path"],"mappings":"0DAUAA,eAAeC,GAAiBC,QAAEA,EAAOC,UAAEA,EAASC,eAAEA,EAAcC,QAAEA,EAAU,MAC5E,IAAKH,IAAYC,EACb,MAAM,IAAIG,MAAM,mCAQpB,OAAOC,EANS,CACZH,iBACAI,KAAM,qDAAqDL,IAC3DE,WAGqBH,EAC7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../../src/components/PayByBankPix/services/types.ts"],"sourcesContent":["interface BrowserRiskSignals {\n osVersion: string;\n userTimeZoneOffset: number;\n language: string;\n screenDimensions: ScreenDimensions;\n}\n\ninterface ScreenDimensions {\n width: number;\n height: number;\n}\n\ntype RiskSignalsError = {\n type: typeof PasskeyErrorTypes.RISK_SIGNALS_ERROR;\n message: string;\n};\n\ntype ConfidenceScore = {\n score: number;\n errors?: string[];\n};\n\ninterface PublicKeyCredentialCreationOptionsDTO {\n enrollmentId: string;\n challenge: string;\n rp: {\n name: string;\n id: string;\n };\n user: {\n id: string;\n name: string;\n displayName: string;\n };\n pubKeyCredParams: { alg: number; type: string }[];\n timeout?: number;\n attestation: string;\n excludeCredentials: string[];\n authenticatorSelection?: {\n authenticatorAttachment: string;\n residentKey: string;\n userVerification: string;\n requireResidentKey: boolean;\n };\n extensions?: {\n credProps?: boolean;\n };\n}\n\ninterface WebAuthnPublicKeyCreationCredential extends Omit<PublicKeyCredential, 'response'> {\n id: string;\n response: AuthenticatorAttestationResponse;\n}\n\ninterface PublicKeyCredentialRequestOptionsDTO {\n challenge: string;\n allowCredentials?: { id: string; type: string }[];\n timeout: number;\n userVerification: string;\n rpId: string;\n}\n\ninterface WebAuthnPublicKeyPaymentCredential extends Omit<PublicKeyCredential, 'response'> {\n response: AuthenticatorAssertionResponse;\n}\n\nexport const PasskeyErrorTypes = {\n CREDENTIAL_CREATION_ERROR: 'Navigator.credentials creation error',\n CREDENTIAL_RETRIEVAL_ERROR: 'Navigator.credentials retrieval error',\n RISK_SIGNALS_ERROR: 'Error capturing Risk Signals'\n};\n\nexport interface RiskSignalsEnrollment extends BrowserRiskSignals {\n deviceId: string;\n}\n\nexport interface RiskSignalsAuthentication extends BrowserRiskSignals {\n deviceId: string;\n confidenceScore: ConfidenceScore;\n}\n\nexport type NavigatorCredentialCreationsError = {\n type: typeof PasskeyErrorTypes.CREDENTIAL_CREATION_ERROR;\n message: string;\n};\n\nexport type NavigatorCredentialRetrievalError = {\n type: typeof PasskeyErrorTypes.CREDENTIAL_RETRIEVAL_ERROR;\n message: string;\n};\n\nexport interface IAdyenPasskey {\n captureRiskSignalsEnrollment: (deviceId?: string) => Promise<RiskSignalsEnrollment | RiskSignalsError>;\n captureRiskSignalsAuthentication: (deviceId: string) => Promise<RiskSignalsAuthentication | RiskSignalsError>;\n createCredentialForEnrollment: (\n creationData: PublicKeyCredentialCreationOptionsDTO\n ) => Promise<WebAuthnPublicKeyCreationCredential | NavigatorCredentialCreationsError>;\n authenticateWithCredential: (\n retrievalData: PublicKeyCredentialRequestOptionsDTO\n ) => Promise<WebAuthnPublicKeyPaymentCredential | NavigatorCredentialRetrievalError>;\n}\n\nexport interface IPasskeyService {\n captureRiskSignalsEnrollment(): Promise<RiskSignalsEnrollment>;\n captureRiskSignalsAuthentication(): Promise<RiskSignalsAuthentication>;\n /**\n *\n * @param registrationOptions - registration options object encoded in base64\n * @returns fido assertion result encoded in base64\n */\n createCredentialForEnrollment: (registrationOptions: string) => Promise<string>;\n /**\n *\n * @param authenticationOptions - encoded in base64\n * @returns result encoded in base64\n */\n authenticateWithCredential: (authenticationOptions: string) => Promise<string>;\n}\n\nexport type PasskeyServiceConfig = {\n deviceId?: string; // Merchant optionally pass\n environment: string;\n};\n"],"names":["PasskeyErrorTypes","CREDENTIAL_CREATION_ERROR","CREDENTIAL_RETRIEVAL_ERROR","RISK_SIGNALS_ERROR"],"mappings":"MAkEaA,EAAoB,CAC7BC,0BAA2B,uCAC3BC,2BAA4B,wCAC5BC,mBAAoB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import n from"./components/PaypalComponent.js";import r from"./defaultProps.js";import{CoreProvider as i}from"../../core/Context/CoreProvider.js";import o from"../../core/Errors/AdyenCheckoutError.js";import{ERRORS as s}from"./constants.js";import{TxVariants as a}from"../tx-variants.js";import{formatPaypalOrderContactToAdyenFormat as p}from"./utils/format-paypal-order-contact-to-adyen-format.js";function
|
|
1
|
+
import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import n from"./components/PaypalComponent.js";import r from"./defaultProps.js";import{CoreProvider as i}from"../../core/Context/CoreProvider.js";import o from"../../core/Errors/AdyenCheckoutError.js";import{ERRORS as s}from"./constants.js";import{TxVariants as a}from"../tx-variants.js";import{formatPaypalOrderContactToAdyenFormat as p}from"./utils/format-paypal-order-contact-to-adyen-format.js";import{ANALYTICS_RENDERED_STR as h,ANALYTICS_EXPRESS_PAGES_ARRAY as l}from"../../core/Analytics/constants.js";import{AnalyticsInfoEvent as d}from"../../core/Analytics/AnalyticsInfoEvent.js";function c(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function u(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable})))),r.forEach((function(e){c(t,e,n[e])}))}return t}function m(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 n=Object.getOwnPropertySymbols(t);e.push.apply(e,n)}return e}(Object(e)).forEach((function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})),t}function g(t,e){if(null==t)return{};var n,r,i=function(t,e){if(null==t)return{};var n,r,i={},o=Object.keys(t);for(r=0;r<o.length;r++)n=o[r],e.indexOf(n)>=0||(i[n]=t[n]);return i}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r<o.length;r++)n=o[r],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}class y extends e{formatProps(t){var e,n,r;const i=null===(e=t.configuration)||void 0===e?void 0:e.merchantId,o=null===(n=t.configuration)||void 0===n?void 0:n.intent,s=0===(null===(r=t.amount)||void 0===r?void 0:r.value)?"tokenize":t.intent||o,a="tokenize"===s||t.vault,p="continue"===t.userAction;return m(u({},t),{commit:!p&&t.commit,vault:a,configuration:{intent:s,merchantId:i}})}submitAnalytics(t){if(t instanceof d&&t.type===h){const{isExpress:e,expressPage:n}=this.props,r=n&&l.includes(n);"boolean"==typeof e&&(t.isExpress=e),!0===e&&r&&(t.expressPage=n)}super.submitAnalytics(t)}updatePaymentData(t){t||console.warn("PayPal - Updating payment data with an invalid value"),this.paymentData=t}formatData(){const{isExpress:t,userAction:e}=this.props;return{paymentMethod:{type:y.type,userAction:e,subtype:t?"express":y.subtype}}}get isValid(){return!0}handleResolve(t){if(!this.resolve)return this.handleError(new o("ERROR",s.WRONG_INSTANCE));this.resolve(t)}handleReject(t){if(!this.reject)return this.handleError(new o("ERROR",s.WRONG_INSTANCE));this.reject(new Error(t))}handleSubmit(){return super.submit(),new Promise(((t,e)=>{this.resolve=t,this.reject=e}))}handleOnShippingAddressChange(t,e){return this.props.onShippingAddressChange(t,e,this)}handleOnShippingOptionsChange(t,e){return this.props.onShippingOptionsChange(t,e,this)}render(){if(!this.props.showPayButton)return null;const e=this.props,{onShippingAddressChange:r,onShippingOptionsChange:s}=e,a=g(e,["onShippingAddressChange","onShippingOptionsChange"]);return t(i,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(n,m(u({ref:t=>{this.componentRef=t}},a,r&&{onShippingAddressChange:this.handleOnShippingAddressChange},s&&{onShippingOptionsChange:this.handleOnShippingOptionsChange}),{onCancel:()=>this.handleError(new o("CANCEL")),onChange:this.setState,onApprove:this.handleOnApprove,onError:t=>{this.handleError(new o("ERROR",t.toString(),{cause:t}))},onScriptLoadFailure:t=>this.handleError(t),onSubmit:this.handleSubmit})))}constructor(t,e){super(t,e),c(this,"paymentData",null),c(this,"resolve",null),c(this,"reject",null),c(this,"submit",(()=>{this.handleError(new o("IMPLEMENTATION_ERROR",s.SUBMIT_NOT_SUPPORTED))})),c(this,"handleAction",(t=>this.updateWithAction(t))),c(this,"updateWithAction",(t=>{if(t.paymentMethodType!==this.type)throw new Error("Invalid Action");return t.paymentData&&(this.paymentData=t.paymentData),t.sdkData&&t.sdkData.token?(this.onActionHandled({componentType:this.type,actionDescription:"sdk-loaded",originalAction:t}),this.handleResolve(t.sdkData.token)):this.handleReject(s.NO_TOKEN_PROVIDED),null})),c(this,"handleOnApprove",((t,e)=>{const{onAuthorized:n}=this.props,r={data:{details:t,paymentData:this.paymentData}};if(n)return e.order.get().then((t=>{var e;const r=p(null==t?void 0:t.payer),i=p(null==t||null===(e=t.purchase_units)||void 0===e?void 0:e[0].shipping,!0);return this.setState(u({authorizedEvent:t},r&&{billingAddress:r},i&&{deliveryAddress:i})),new Promise(((e,o)=>n(u({authorizedEvent:t},r&&{billingAddress:r},i&&{deliveryAddress:i}),{resolve:e,reject:o})))})).then((()=>this.handleAdditionalDetails(r))).catch((t=>this.handleError(new o("ERROR","Something went wrong while parsing PayPal Order",{cause:t}))));this.handleAdditionalDetails(r)})),this.handleSubmit=this.handleSubmit.bind(this),this.handleOnShippingAddressChange=this.handleOnShippingAddressChange.bind(this),this.handleOnShippingOptionsChange=this.handleOnShippingOptionsChange.bind(this)}}c(y,"type",a.paypal),c(y,"subtype","sdk"),c(y,"defaultProps",r);export{y as default};
|
|
2
2
|
//# sourceMappingURL=Paypal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Paypal.js","sources":["../../../../src/components/PayPal/Paypal.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport PaypalComponent from './components/PaypalComponent';\nimport defaultProps from './defaultProps';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { ERRORS } from './constants';\nimport { TxVariants } from '../tx-variants';\nimport { formatPaypalOrderContactToAdyenFormat } from './utils/format-paypal-order-contact-to-adyen-format';\n\nimport type { ICore } from '../../core/types';\nimport type { PaymentAction } from '../../types/global-types';\nimport type { Intent, PayPalConfiguration } from './types';\n\nimport './Paypal.scss';\nimport { SendAnalyticsObject } from '../../core/Analytics/types';\n\nclass PaypalElement extends UIElement<PayPalConfiguration> {\n public static type = TxVariants.paypal;\n public static subtype = 'sdk';\n\n public paymentData: string = null;\n\n private resolve = null;\n private reject = null;\n\n protected static defaultProps = defaultProps;\n\n constructor(checkout: ICore, props?: PayPalConfiguration) {\n super(checkout, props);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleOnShippingAddressChange = this.handleOnShippingAddressChange.bind(this);\n this.handleOnShippingOptionsChange = this.handleOnShippingOptionsChange.bind(this);\n }\n\n formatProps(props: PayPalConfiguration): PayPalConfiguration {\n const merchantId = props.configuration?.merchantId;\n const intentFromConfig = props.configuration?.intent;\n const isZeroAuth = props.amount?.value === 0;\n const intent: Intent = isZeroAuth ? 'tokenize' : props.intent || intentFromConfig;\n const vault = intent === 'tokenize' || props.vault;\n\n const displayContinueToReviewPageButton = props.userAction === 'continue';\n\n return {\n ...props,\n commit: displayContinueToReviewPageButton ? false : props.commit,\n vault,\n configuration: {\n intent,\n merchantId\n }\n };\n }\n\n protected submitAnalytics(analyticsObj: SendAnalyticsObject) {\n // Analytics will need to know about this.props.isExpress & this.props.expressPage\n super.submitAnalytics({ ...analyticsObj }, this.props);\n }\n\n public submit = () => {\n this.handleError(new AdyenCheckoutError('IMPLEMENTATION_ERROR', ERRORS.SUBMIT_NOT_SUPPORTED));\n };\n\n /**\n * Updates the paymentData value. It must be used in the PayPal Express flow, when patching the amount\n * @param paymentData - Payment data value\n */\n public updatePaymentData(paymentData: string): void {\n if (!paymentData) console.warn('PayPal - Updating payment data with an invalid value');\n this.paymentData = paymentData;\n }\n\n /**\n * Formats the component data output\n */\n protected formatData() {\n const { isExpress, userAction } = this.props;\n\n return {\n paymentMethod: {\n type: PaypalElement.type,\n userAction,\n subtype: isExpress ? 'express' : PaypalElement.subtype\n }\n };\n }\n\n public handleAction = (action: PaymentAction) => {\n return this.updateWithAction(action);\n };\n\n public updateWithAction = (action: PaymentAction) => {\n if (action.paymentMethodType !== this.type) throw new Error('Invalid Action');\n\n if (action.paymentData) {\n this.paymentData = action.paymentData;\n }\n\n if (action.sdkData && action.sdkData.token) {\n this.onActionHandled({ componentType: this.type, actionDescription: 'sdk-loaded', originalAction: action });\n this.handleResolve(action.sdkData.token);\n } else {\n this.handleReject(ERRORS.NO_TOKEN_PROVIDED);\n }\n\n return null;\n };\n\n /**\n * Dropin Validation\n *\n * @remarks\n * Paypal does not require any specific Dropin validation\n */\n get isValid() {\n return true;\n }\n\n private handleOnApprove = (data: any, actions: any): Promise<void> | void => {\n const { onAuthorized } = this.props;\n const state = { data: { details: data, paymentData: this.paymentData } };\n\n if (!onAuthorized) {\n this.handleAdditionalDetails(state);\n return;\n }\n\n return actions.order\n .get()\n .then((paypalOrder: any) => {\n const billingAddress = formatPaypalOrderContactToAdyenFormat(paypalOrder?.payer);\n const deliveryAddress = formatPaypalOrderContactToAdyenFormat(paypalOrder?.purchase_units?.[0].shipping, true);\n\n this.setState({\n authorizedEvent: paypalOrder,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n });\n\n return new Promise<void>((resolve, reject) =>\n onAuthorized(\n {\n authorizedEvent: paypalOrder,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n },\n { resolve, reject }\n )\n );\n })\n .then(() => this.handleAdditionalDetails(state))\n .catch(error => this.handleError(new AdyenCheckoutError('ERROR', 'Something went wrong while parsing PayPal Order', { cause: error })));\n };\n\n handleResolve(token: string) {\n if (!this.resolve) return this.handleError(new AdyenCheckoutError('ERROR', ERRORS.WRONG_INSTANCE));\n this.resolve(token);\n }\n\n handleReject(errorMessage: string) {\n if (!this.reject) return this.handleError(new AdyenCheckoutError('ERROR', ERRORS.WRONG_INSTANCE));\n this.reject(new Error(errorMessage));\n }\n\n private handleSubmit(): Promise<void> {\n super.submit();\n\n return new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n }\n\n /**\n * If the merchant provides the 'onShippingAddressChange' callback, then this method is used as a wrapper to it, in order\n * to expose to the merchant the 'component' instance. The merchant needs the 'component' in order to manipulate the\n * paymentData\n *\n * @param data - PayPal data\n * @param actions - PayPal actions.\n */\n private handleOnShippingAddressChange(data: any, actions: any): Promise<void> {\n return this.props.onShippingAddressChange(data, actions, this);\n }\n\n /**\n * If the merchant provides the 'onShippingOptionsChange' callback, then this method is used as a wrapper to it, in order\n * to expose to the merchant the 'component' instance. The merchant needs the 'component' in order to manipulate the\n * paymentData\n *\n * @param data - PayPal data\n * @param actions - PayPal actions.\n */\n private handleOnShippingOptionsChange(data: any, actions: any): Promise<void> {\n return this.props.onShippingOptionsChange(data, actions, this);\n }\n\n render() {\n if (!this.props.showPayButton) return null;\n\n const { onShippingAddressChange, onShippingOptionsChange, ...rest } = this.props;\n\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <PaypalComponent\n ref={ref => {\n this.componentRef = ref;\n }}\n {...rest}\n {...(onShippingAddressChange && { onShippingAddressChange: this.handleOnShippingAddressChange })}\n {...(onShippingOptionsChange && { onShippingOptionsChange: this.handleOnShippingOptionsChange })}\n onCancel={() => this.handleError(new AdyenCheckoutError('CANCEL'))}\n onChange={this.setState}\n onApprove={this.handleOnApprove}\n onError={error => {\n this.handleError(new AdyenCheckoutError('ERROR', error.toString(), { cause: error }));\n }}\n onScriptLoadFailure={error => this.handleError(error)}\n onSubmit={this.handleSubmit}\n />\n </CoreProvider>\n );\n }\n}\n\nexport default PaypalElement;\n"],"names":["PaypalElement","UIElement","formatProps","props","merchantId","configuration","intentFromConfig","intent","amount","value","vault","displayContinueToReviewPageButton","userAction","_object_spread_props","commit","submitAnalytics","analyticsObj","super","_object_spread","this","updatePaymentData","paymentData","console","warn","formatData","isExpress","paymentMethod","type","subtype","isValid","handleResolve","token","resolve","handleError","AdyenCheckoutError","ERRORS","WRONG_INSTANCE","handleReject","errorMessage","reject","Error","handleSubmit","submit","Promise","handleOnShippingAddressChange","data","actions","onShippingAddressChange","handleOnShippingOptionsChange","onShippingOptionsChange","render","showPayButton","_this_props","rest","_object_without_properties","h","CoreProvider","i18n","loadingContext","resources","PaypalComponent","ref","componentRef","onCancel","onChange","setState","onApprove","handleOnApprove","onError","error","toString","cause","onScriptLoadFailure","onSubmit","constructor","checkout","_define_property","SUBMIT_NOT_SUPPORTED","handleAction","action","updateWithAction","paymentMethodType","sdkData","onActionHandled","componentType","actionDescription","originalAction","NO_TOKEN_PROVIDED","onAuthorized","state","details","order","get","then","paypalOrder","billingAddress","formatPaypalOrderContactToAdyenFormat","payer","deliveryAddress","purchase_units","shipping","authorizedEvent","handleAdditionalDetails","catch","bind","TxVariants","paypal","defaultProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Paypal.js","sources":["../../../../src/components/PayPal/Paypal.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport PaypalComponent from './components/PaypalComponent';\nimport defaultProps from './defaultProps';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { ERRORS } from './constants';\nimport { TxVariants } from '../tx-variants';\nimport { formatPaypalOrderContactToAdyenFormat } from './utils/format-paypal-order-contact-to-adyen-format';\n\nimport type { ICore } from '../../core/types';\nimport type { PaymentAction } from '../../types/global-types';\nimport type { Intent, PayPalConfiguration } from './types';\n\nimport './Paypal.scss';\nimport { ANALYTICS_EXPRESS_PAGES_ARRAY, ANALYTICS_RENDERED_STR } from '../../core/Analytics/constants';\nimport { AnalyticsInfoEvent } from '../../core/Analytics/AnalyticsInfoEvent';\nimport { AnalyticsEvent } from '../../core/Analytics/AnalyticsEvent';\n\nclass PaypalElement extends UIElement<PayPalConfiguration> {\n public static type = TxVariants.paypal;\n public static subtype = 'sdk';\n\n public paymentData: string = null;\n\n private resolve = null;\n private reject = null;\n\n protected static defaultProps = defaultProps;\n\n constructor(checkout: ICore, props?: PayPalConfiguration) {\n super(checkout, props);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleOnShippingAddressChange = this.handleOnShippingAddressChange.bind(this);\n this.handleOnShippingOptionsChange = this.handleOnShippingOptionsChange.bind(this);\n }\n\n formatProps(props: PayPalConfiguration): PayPalConfiguration {\n const merchantId = props.configuration?.merchantId;\n const intentFromConfig = props.configuration?.intent;\n const isZeroAuth = props.amount?.value === 0;\n const intent: Intent = isZeroAuth ? 'tokenize' : props.intent || intentFromConfig;\n const vault = intent === 'tokenize' || props.vault;\n\n const displayContinueToReviewPageButton = props.userAction === 'continue';\n\n return {\n ...props,\n commit: displayContinueToReviewPageButton ? false : props.commit,\n vault,\n configuration: {\n intent,\n merchantId\n }\n };\n }\n\n protected submitAnalytics(analyticsObj: AnalyticsEvent) {\n // Analytics will need to know about this.props.isExpress & this.props.expressPage\n if (analyticsObj instanceof AnalyticsInfoEvent && analyticsObj.type === ANALYTICS_RENDERED_STR) {\n const { isExpress, expressPage } = this.props;\n const hasExpressPage = expressPage && ANALYTICS_EXPRESS_PAGES_ARRAY.includes(expressPage);\n\n if (typeof isExpress === 'boolean') {\n analyticsObj.isExpress = isExpress;\n }\n\n if (isExpress === true && hasExpressPage) {\n analyticsObj.expressPage = expressPage; // We only care about the expressPage value if isExpress is true\n }\n }\n\n super.submitAnalytics(analyticsObj);\n }\n\n public submit = () => {\n this.handleError(new AdyenCheckoutError('IMPLEMENTATION_ERROR', ERRORS.SUBMIT_NOT_SUPPORTED));\n };\n\n /**\n * Updates the paymentData value. It must be used in the PayPal Express flow, when patching the amount\n * @param paymentData - Payment data value\n */\n public updatePaymentData(paymentData: string): void {\n if (!paymentData) console.warn('PayPal - Updating payment data with an invalid value');\n this.paymentData = paymentData;\n }\n\n /**\n * Formats the component data output\n */\n protected formatData() {\n const { isExpress, userAction } = this.props;\n\n return {\n paymentMethod: {\n type: PaypalElement.type,\n userAction,\n subtype: isExpress ? 'express' : PaypalElement.subtype\n }\n };\n }\n\n public handleAction = (action: PaymentAction) => {\n return this.updateWithAction(action);\n };\n\n public updateWithAction = (action: PaymentAction) => {\n if (action.paymentMethodType !== this.type) throw new Error('Invalid Action');\n\n if (action.paymentData) {\n this.paymentData = action.paymentData;\n }\n\n if (action.sdkData && action.sdkData.token) {\n this.onActionHandled({ componentType: this.type, actionDescription: 'sdk-loaded', originalAction: action });\n this.handleResolve(action.sdkData.token);\n } else {\n this.handleReject(ERRORS.NO_TOKEN_PROVIDED);\n }\n\n return null;\n };\n\n /**\n * Dropin Validation\n *\n * @remarks\n * Paypal does not require any specific Dropin validation\n */\n get isValid() {\n return true;\n }\n\n private handleOnApprove = (data: any, actions: any): Promise<void> | void => {\n const { onAuthorized } = this.props;\n const state = { data: { details: data, paymentData: this.paymentData } };\n\n if (!onAuthorized) {\n this.handleAdditionalDetails(state);\n return;\n }\n\n return actions.order\n .get()\n .then((paypalOrder: any) => {\n const billingAddress = formatPaypalOrderContactToAdyenFormat(paypalOrder?.payer);\n const deliveryAddress = formatPaypalOrderContactToAdyenFormat(paypalOrder?.purchase_units?.[0].shipping, true);\n\n this.setState({\n authorizedEvent: paypalOrder,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n });\n\n return new Promise<void>((resolve, reject) =>\n onAuthorized(\n {\n authorizedEvent: paypalOrder,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n },\n { resolve, reject }\n )\n );\n })\n .then(() => this.handleAdditionalDetails(state))\n .catch(error => this.handleError(new AdyenCheckoutError('ERROR', 'Something went wrong while parsing PayPal Order', { cause: error })));\n };\n\n handleResolve(token: string) {\n if (!this.resolve) return this.handleError(new AdyenCheckoutError('ERROR', ERRORS.WRONG_INSTANCE));\n this.resolve(token);\n }\n\n handleReject(errorMessage: string) {\n if (!this.reject) return this.handleError(new AdyenCheckoutError('ERROR', ERRORS.WRONG_INSTANCE));\n this.reject(new Error(errorMessage));\n }\n\n private handleSubmit(): Promise<void> {\n super.submit();\n\n return new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n }\n\n /**\n * If the merchant provides the 'onShippingAddressChange' callback, then this method is used as a wrapper to it, in order\n * to expose to the merchant the 'component' instance. The merchant needs the 'component' in order to manipulate the\n * paymentData\n *\n * @param data - PayPal data\n * @param actions - PayPal actions.\n */\n private handleOnShippingAddressChange(data: any, actions: any): Promise<void> {\n return this.props.onShippingAddressChange(data, actions, this);\n }\n\n /**\n * If the merchant provides the 'onShippingOptionsChange' callback, then this method is used as a wrapper to it, in order\n * to expose to the merchant the 'component' instance. The merchant needs the 'component' in order to manipulate the\n * paymentData\n *\n * @param data - PayPal data\n * @param actions - PayPal actions.\n */\n private handleOnShippingOptionsChange(data: any, actions: any): Promise<void> {\n return this.props.onShippingOptionsChange(data, actions, this);\n }\n\n render() {\n if (!this.props.showPayButton) return null;\n\n const { onShippingAddressChange, onShippingOptionsChange, ...rest } = this.props;\n\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <PaypalComponent\n ref={ref => {\n this.componentRef = ref;\n }}\n {...rest}\n {...(onShippingAddressChange && { onShippingAddressChange: this.handleOnShippingAddressChange })}\n {...(onShippingOptionsChange && { onShippingOptionsChange: this.handleOnShippingOptionsChange })}\n onCancel={() => this.handleError(new AdyenCheckoutError('CANCEL'))}\n onChange={this.setState}\n onApprove={this.handleOnApprove}\n onError={error => {\n this.handleError(new AdyenCheckoutError('ERROR', error.toString(), { cause: error }));\n }}\n onScriptLoadFailure={error => this.handleError(error)}\n onSubmit={this.handleSubmit}\n />\n </CoreProvider>\n );\n }\n}\n\nexport default PaypalElement;\n"],"names":["PaypalElement","UIElement","formatProps","props","merchantId","configuration","intentFromConfig","intent","amount","value","vault","displayContinueToReviewPageButton","userAction","_object_spread_props","commit","submitAnalytics","analyticsObj","AnalyticsInfoEvent","type","ANALYTICS_RENDERED_STR","isExpress","expressPage","this","hasExpressPage","ANALYTICS_EXPRESS_PAGES_ARRAY","includes","super","updatePaymentData","paymentData","console","warn","formatData","paymentMethod","subtype","isValid","handleResolve","token","resolve","handleError","AdyenCheckoutError","ERRORS","WRONG_INSTANCE","handleReject","errorMessage","reject","Error","handleSubmit","submit","Promise","handleOnShippingAddressChange","data","actions","onShippingAddressChange","handleOnShippingOptionsChange","onShippingOptionsChange","render","showPayButton","_this_props","rest","_object_without_properties","h","CoreProvider","i18n","loadingContext","resources","PaypalComponent","ref","componentRef","onCancel","onChange","setState","onApprove","handleOnApprove","onError","error","toString","cause","onScriptLoadFailure","onSubmit","constructor","checkout","_define_property","SUBMIT_NOT_SUPPORTED","handleAction","action","updateWithAction","paymentMethodType","sdkData","onActionHandled","componentType","actionDescription","originalAction","NO_TOKEN_PROVIDED","onAuthorized","state","details","order","get","then","paypalOrder","billingAddress","formatPaypalOrderContactToAdyenFormat","payer","deliveryAddress","purchase_units","shipping","_object_spread","authorizedEvent","handleAdditionalDetails","catch","bind","TxVariants","paypal","defaultProps"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import{CoreProvider as r}from"../../core/Context/CoreProvider.js";import o from"./components/RedirectShopper/RedirectShopper.js";import n from"../internal/RedirectButton/RedirectButton.js";import{TxVariants as s}from"../tx-variants.js";import i from"../../utils/browserInfo.js";import{ANALYTICS_ERROR_CODE as p,ANALYTICS_ERROR_TYPE as c
|
|
1
|
+
import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import{CoreProvider as r}from"../../core/Context/CoreProvider.js";import o from"./components/RedirectShopper/RedirectShopper.js";import n from"../internal/RedirectButton/RedirectButton.js";import{TxVariants as s}from"../tx-variants.js";import i from"../../utils/browserInfo.js";import{ANALYTICS_ERROR_CODE as p,ANALYTICS_ERROR_TYPE as c}from"../../core/Analytics/constants.js";import{AnalyticsErrorEvent as a}from"../../core/Analytics/AnalyticsErrorEvent.js";function u(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function l(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter((function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable})))),o.forEach((function(e){u(t,e,r[e])}))}return t}function m(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 r=Object.getOwnPropertySymbols(t);e.push.apply(e,r)}return e}(Object(e)).forEach((function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})),t}class y extends e{formatData(){return{paymentMethod:{type:this.type},browserInfo:this.browserInfo}}get isValid(){return!0}get browserInfo(){return i()}render(){return this.props.url&&this.props.method?t(o,m(l({url:this.props.url},this.props),{onActionHandled:this.onActionHandled,onRedirectError:this.handleRedirectError})):this.props.showPayButton?t(r,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(n,m(l({},this.props),{showPayButton:this.props.showPayButton,name:this.displayName,onSubmit:this.submit,payButton:this.payButton,ref:t=>{this.componentRef=t}}))):null}constructor(...t){super(...t),u(this,"handleRedirectError",(()=>{const t=new a({component:this.props.paymentMethodType,errorType:c.redirect,code:p.redirect});super.submitAnalytics(t)}))}}u(y,"type",s.redirect),u(y,"defaultProps",{type:y.type});export{y as default};
|
|
2
2
|
//# sourceMappingURL=Redirect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Redirect.js","sources":["../../../../src/components/Redirect/Redirect.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport RedirectShopper from './components/RedirectShopper';\nimport RedirectButton from '../internal/RedirectButton';\nimport { TxVariants } from '../tx-variants';\nimport { RedirectConfiguration } from './types';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport { ANALYTICS_ERROR_CODE, ANALYTICS_ERROR_TYPE
|
|
1
|
+
{"version":3,"file":"Redirect.js","sources":["../../../../src/components/Redirect/Redirect.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport RedirectShopper from './components/RedirectShopper';\nimport RedirectButton from '../internal/RedirectButton';\nimport { TxVariants } from '../tx-variants';\nimport { RedirectConfiguration } from './types';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport { ANALYTICS_ERROR_CODE, ANALYTICS_ERROR_TYPE } from '../../core/Analytics/constants';\nimport { AnalyticsErrorEvent } from '../../core/Analytics/AnalyticsErrorEvent';\n\nclass RedirectElement extends UIElement<RedirectConfiguration> {\n public static type = TxVariants.redirect;\n\n public static defaultProps = {\n type: RedirectElement.type\n };\n\n formatData() {\n return {\n paymentMethod: {\n type: this.type\n },\n browserInfo: this.browserInfo\n };\n }\n\n private handleRedirectError = () => {\n const event = new AnalyticsErrorEvent({\n component: this.props.paymentMethodType,\n errorType: ANALYTICS_ERROR_TYPE.redirect,\n code: ANALYTICS_ERROR_CODE.redirect\n });\n super.submitAnalytics(event);\n };\n\n get isValid() {\n return true;\n }\n\n get browserInfo() {\n return collectBrowserInfo();\n }\n\n render() {\n if (this.props.url && this.props.method) {\n return (\n <RedirectShopper\n url={this.props.url}\n {...this.props}\n onActionHandled={this.onActionHandled}\n onRedirectError={this.handleRedirectError}\n />\n );\n }\n\n if (this.props.showPayButton) {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <RedirectButton\n {...this.props}\n showPayButton={this.props.showPayButton}\n name={this.displayName}\n onSubmit={this.submit}\n payButton={this.payButton}\n ref={ref => {\n this.componentRef = ref;\n }}\n />\n </CoreProvider>\n );\n }\n\n return null;\n }\n}\n\nexport default RedirectElement;\n"],"names":["RedirectElement","UIElement","formatData","paymentMethod","type","this","browserInfo","isValid","collectBrowserInfo","render","props","url","method","h","RedirectShopper","onActionHandled","onRedirectError","handleRedirectError","showPayButton","CoreProvider","i18n","loadingContext","resources","RedirectButton","name","displayName","onSubmit","submit","payButton","ref","componentRef","super","args","_define_property","event","AnalyticsErrorEvent","component","paymentMethodType","errorType","ANALYTICS_ERROR_TYPE","redirect","code","ANALYTICS_ERROR_CODE","submitAnalytics","TxVariants","defaultProps"],"mappings":"83CAWA,MAAMA,UAAwBC,EAO1BC,UAAAA,GACI,MAAO,CACHC,cAAe,CACXC,KAAMC,KAAKD,MAEfE,YAAaD,KAAKC,YAE1B,CAWA,WAAIC,GACA,OAAO,CACX,CAEA,eAAID,GACA,OAAOE,GACX,CAEAC,MAAAA,GACI,OAAIJ,KAAKK,MAAMC,KAAON,KAAKK,MAAME,OAEzBC,EAACC,EAAAA,EAAAA,EAAAA,CACGH,IAAKN,KAAKK,MAAMC,KACZN,KAAKK,OAAK,CACdK,gBAAiBV,KAAKU,gBACtBC,gBAAiBX,KAAKY,uBAK9BZ,KAAKK,MAAMQ,cAEPL,EAACM,EAAAA,CAAaC,KAAMf,KAAKK,MAAMU,KAAMC,eAAgBhB,KAAKK,MAAMW,eAAgBC,UAAWjB,KAAKiB,WAC5FT,EAACU,EAAAA,EAAAA,EAAAA,GACOlB,KAAKK,OAAK,CACdQ,cAAeb,KAAKK,MAAMQ,cAC1BM,KAAMnB,KAAKoB,YACXC,SAAUrB,KAAKsB,OACfC,UAAWvB,KAAKuB,UAChBC,IAAKA,IACDxB,KAAKyB,aAAeD,CAAAA,MAOjC,IACX,mBA/DJE,SAAAC,GAgBIC,OAAQhB,uBAAsB,KAC1B,MAAMiB,EAAQ,IAAIC,EAAoB,CAClCC,UAAW/B,KAAKK,MAAM2B,kBACtBC,UAAWC,EAAqBC,SAChCC,KAAMC,EAAqBF,WAE/BT,MAAMY,gBAAgBT,EAAAA,KArB1BD,EADEjC,EACYI,OAAOwC,EAAWJ,UAEhCP,EAHEjC,EAGY6C,eAAe,CACzBzC,KAAMJ,EAAgBI"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{TxVariants as e}from"../tx-variants.js";import t from"../Redirect/Redirect.js";function r(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class i extends t{formatData(){return{paymentMethod:{type:this.type,subtype:"redirect"},browserInfo:this.browserInfo}}}r(i,"type",e.riverty),r(i,"defaultProps",{type:e.riverty});export{i as default};
|
|
2
2
|
//# sourceMappingURL=Riverty.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Riverty.js","sources":["../../../../src/components/Riverty/Riverty.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"Riverty.js","sources":["../../../../src/components/Riverty/Riverty.tsx"],"sourcesContent":["import { TxVariants } from '../tx-variants';\nimport RedirectElement from '../Redirect';\n\nclass Riverty extends RedirectElement {\n public static readonly type = TxVariants.riverty;\n\n public static override readonly defaultProps = {\n type: TxVariants.riverty\n };\n\n public override formatData() {\n return {\n paymentMethod: {\n type: this.type,\n subtype: 'redirect'\n },\n browserInfo: this.browserInfo\n };\n }\n}\n\nexport default Riverty;\n"],"names":["Riverty","RedirectElement","formatData","paymentMethod","type","this","subtype","browserInfo","_define_property","TxVariants","riverty","defaultProps"],"mappings":"8MAGA,MAAMA,UAAgBC,EAOFC,UAAAA,GACZ,MAAO,CACHC,cAAe,CACXC,KAAMC,KAAKD,KACXE,QAAS,YAEbC,YAAaF,KAAKE,YAE1B,EAdAC,EADER,EACqBI,OAAOK,EAAWC,SAEzCF,EAHER,EAG8BW,eAAe,CAC3CP,KAAMK,EAAWC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import r from"./components/Challenge/PrepareChallenge3DS2.js";import{THREEDS2_CHALLENGE_ERROR as o,
|
|
1
|
+
import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import r from"./components/Challenge/PrepareChallenge3DS2.js";import{THREEDS2_CHALLENGE_ERROR as o,THREEDS2_FULL as n,THREEDS2_CHALLENGE as s,DEFAULT_CHALLENGE_WINDOW_SIZE as i}from"./constants.js";import{existy as c}from"../../utils/commonUtils.js";import{hasOwnProperty as p}from"../../utils/hasOwnProperty.js";import{TxVariants as a}from"../tx-variants.js";import l,{API_ERROR as m}from"../../core/Errors/AdyenCheckoutError.js";import{ANALYTICS_ERROR_TYPE as u,Analytics3DS2Errors as y,ANALYTICS_RENDERED_STR as f,Analytics3DS2Events as h}from"../../core/Analytics/constants.js";import{CoreProvider as b}from"../../core/Context/CoreProvider.js";import{AnalyticsLogEvent as j}from"../../core/Analytics/AnalyticsLogEvent.js";import{AnalyticsInfoEvent as A}from"../../core/Analytics/AnalyticsInfoEvent.js";import{AnalyticsErrorEvent as O}from"../../core/Analytics/AnalyticsErrorEvent.js";function d(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function g(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 r=Object.getOwnPropertySymbols(t);e.push.apply(e,r)}return e}(Object(e)).forEach((function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})),t}class D extends e{onComplete(t){t&&super.onComplete(t),this.unmount()}render(){if(!c(this.props.paymentData)){const t=p(this.props,"isMDFlow")?"paymentData":"authorisationToken";this.props.onError(new l(m,`No ${t} received. 3DS2 Challenge cannot proceed`));const e=new O({code:y.ACTION_IS_MISSING_PAYMENT_DATA,errorType:u.apiError,message:`${o}: Missing 'paymentData' property from threeDS2 action`});return this.submitAnalytics(e),null}return t(b,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(r,g(function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter((function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable})))),o.forEach((function(e){d(t,e,r[e])}))}return t}({},this.props),{onComplete:this.onComplete,onSubmitAnalytics:this.submitAnalytics,isMDFlow:this.props.paymentData.length<15,onActionHandled:this.onActionHandled})))}constructor(...t){super(...t),d(this,"submitAnalytics",(t=>{t instanceof A&&t.type===f||super.submitAnalytics(t)})),d(this,"onActionHandled",(t=>{const e=new j({type:n,message:t.actionDescription,subType:h.CHALLENGE_IFRAME_LOADED});this.submitAnalytics(e),super.onActionHandled(t)}))}}d(D,"type",a.threeDS2Challenge),d(D,"defaultProps",{dataKey:"threeDSResult",size:i,type:s});export{D as default};
|
|
2
2
|
//# sourceMappingURL=ThreeDS2Challenge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreeDS2Challenge.js","sources":["../../../../src/components/ThreeDS2/ThreeDS2Challenge.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport PrepareChallenge from './components/Challenge';\nimport { DEFAULT_CHALLENGE_WINDOW_SIZE, THREEDS2_CHALLENGE, THREEDS2_CHALLENGE_ERROR,
|
|
1
|
+
{"version":3,"file":"ThreeDS2Challenge.js","sources":["../../../../src/components/ThreeDS2/ThreeDS2Challenge.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport PrepareChallenge from './components/Challenge';\nimport { DEFAULT_CHALLENGE_WINDOW_SIZE, THREEDS2_CHALLENGE, THREEDS2_CHALLENGE_ERROR, THREEDS2_FULL } from './constants';\nimport { existy } from '../../utils/commonUtils';\nimport { hasOwnProperty } from '../../utils/hasOwnProperty';\nimport { TxVariants } from '../tx-variants';\nimport { ThreeDS2ChallengeConfiguration } from './types';\nimport AdyenCheckoutError, { API_ERROR } from '../../core/Errors/AdyenCheckoutError';\nimport { ANALYTICS_ERROR_TYPE, Analytics3DS2Errors, ANALYTICS_RENDERED_STR, Analytics3DS2Events } from '../../core/Analytics/constants';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport { ActionHandledReturnObject } from '../../types/global-types';\nimport { AnalyticsLogEvent } from '../../core/Analytics/AnalyticsLogEvent';\nimport { AnalyticsEvent } from '../../core/Analytics/AnalyticsEvent';\nimport { AnalyticsInfoEvent } from '../../core/Analytics/AnalyticsInfoEvent';\nimport { AnalyticsErrorEvent } from '../../core/Analytics/AnalyticsErrorEvent';\n\nclass ThreeDS2Challenge extends UIElement<ThreeDS2ChallengeConfiguration> {\n public static type = TxVariants.threeDS2Challenge;\n\n public static defaultProps = {\n dataKey: 'threeDSResult',\n size: DEFAULT_CHALLENGE_WINDOW_SIZE,\n type: THREEDS2_CHALLENGE\n };\n\n protected submitAnalytics = (aObj: AnalyticsEvent) => {\n if (aObj instanceof AnalyticsInfoEvent && aObj.type === ANALYTICS_RENDERED_STR) return; // suppress the rendered event (it will have the same timestamp as the \"creq sent\" event)\n\n super.submitAnalytics(aObj);\n };\n\n protected onActionHandled = (rtnObj: ActionHandledReturnObject) => {\n const event = new AnalyticsLogEvent({\n type: THREEDS2_FULL,\n message: rtnObj.actionDescription,\n subType: Analytics3DS2Events.CHALLENGE_IFRAME_LOADED\n });\n\n this.submitAnalytics(event);\n\n super.onActionHandled(rtnObj);\n };\n\n onComplete(state) {\n /**\n * Equals a call to onAdditionalDetails (as set in actionTypes.ts) for the regular, \"native\" flow.\n * However, if the action to create this component came from the 3DS2InMDFlow process it will instead equal a call to the onComplete callback\n * (as defined in the 3DS2InMDFlow and passed in as a config prop).\n */\n if (state) super.onComplete(state);\n this.unmount(); // re. fixing issue around back to back challenge calls\n }\n\n render() {\n // existy used because threeds2InMDFlow will send empty string for paymentData and we should be allowed to proceed with this\n if (!existy(this.props.paymentData)) {\n /**\n * The presence of props.isMDFlow indicates the action to create this component came from the threeds2InMDFlow process which passes (an empty) paymentsData.\n * The regular, \"native\" flow uses the authorisationToken from the 3DS2 action, which actionTypes.ts assigns to a property called paymentData\n */\n const dataTypeForError = hasOwnProperty(this.props, 'isMDFlow') ? 'paymentData' : 'authorisationToken';\n\n this.props.onError(new AdyenCheckoutError(API_ERROR, `No ${dataTypeForError} received. 3DS2 Challenge cannot proceed`));\n\n const event = new AnalyticsErrorEvent({\n code: Analytics3DS2Errors.ACTION_IS_MISSING_PAYMENT_DATA,\n errorType: ANALYTICS_ERROR_TYPE.apiError,\n message: `${THREEDS2_CHALLENGE_ERROR}: Missing 'paymentData' property from threeDS2 action`\n });\n\n this.submitAnalytics(event);\n\n return null;\n }\n\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <PrepareChallenge\n {...this.props}\n onComplete={this.onComplete}\n onSubmitAnalytics={this.submitAnalytics}\n isMDFlow={this.props.paymentData.length < 15}\n onActionHandled={this.onActionHandled}\n />\n </CoreProvider>\n );\n }\n}\n\nexport default ThreeDS2Challenge;\n"],"names":["ThreeDS2Challenge","UIElement","onComplete","state","super","this","unmount","render","existy","props","paymentData","dataTypeForError","hasOwnProperty","onError","AdyenCheckoutError","API_ERROR","event","AnalyticsErrorEvent","code","Analytics3DS2Errors","ACTION_IS_MISSING_PAYMENT_DATA","errorType","ANALYTICS_ERROR_TYPE","apiError","message","THREEDS2_CHALLENGE_ERROR","submitAnalytics","h","CoreProvider","i18n","loadingContext","resources","PrepareChallenge","onSubmitAnalytics","isMDFlow","length","onActionHandled","args","_define_property","aObj","AnalyticsInfoEvent","type","ANALYTICS_RENDERED_STR","rtnObj","AnalyticsLogEvent","THREEDS2_FULL","actionDescription","subType","Analytics3DS2Events","CHALLENGE_IFRAME_LOADED","TxVariants","threeDS2Challenge","defaultProps","dataKey","size","DEFAULT_CHALLENGE_WINDOW_SIZE","THREEDS2_CHALLENGE"],"mappings":"m+CAiBA,MAAMA,UAA0BC,EA2B5BC,UAAAA,CAAWC,GAMHA,GAAOC,MAAMF,WAAWC,GAC5BE,KAAKC,SACT,CAEAC,MAAAA,GAEI,IAAKC,EAAOH,KAAKI,MAAMC,aAAc,CAKjC,MAAMC,EAAmBC,EAAeP,KAAKI,MAAO,YAAc,cAAgB,qBAElFJ,KAAKI,MAAMI,QAAQ,IAAIC,EAAmBC,EAAW,MAAMJ,8CAE3D,MAAMK,EAAQ,IAAIC,EAAoB,CAClCC,KAAMC,EAAoBC,+BAC1BC,UAAWC,EAAqBC,SAChCC,QAAS,GAAGC,2DAKhB,OAFApB,KAAKqB,gBAAgBV,GAEd,IACX,CAEA,OACIW,EAACC,EAAAA,CAAaC,KAAMxB,KAAKI,MAAMoB,KAAMC,eAAgBzB,KAAKI,MAAMqB,eAAgBC,UAAW1B,KAAK0B,WAC5FJ,EAACK,EAAAA,wUAAAA,CAAAA,GACO3B,KAAKI,OAAK,CACdP,WAAYG,KAAKH,WACjB+B,kBAAmB5B,KAAKqB,gBACxBQ,SAAU7B,KAAKI,MAAMC,YAAYyB,OAAS,GAC1CC,gBAAiB/B,KAAK+B,mBAItC,mBAtEJhC,SASIiC,GAAAC,EAAAjC,KAAUqB,mBAAmBa,IACrBA,aAAgBC,GAAsBD,EAAKE,OAASC,GAExDtC,MAAMsB,gBAAgBa,EAAAA,IAG1BD,EAAAjC,KAAU+B,mBAAmBO,IACzB,MAAM3B,EAAQ,IAAI4B,EAAkB,CAChCH,KAAMI,EACNrB,QAASmB,EAAOG,kBAChBC,QAASC,EAAoBC,0BAGjC5C,KAAKqB,gBAAgBV,GAErBZ,MAAMgC,gBAAgBO,EAAAA,KAvB1BL,EADEtC,EACYyC,OAAOS,EAAWC,mBAEhCb,EAHEtC,EAGYoD,eAAe,CACzBC,QAAS,gBACTC,KAAMC,EACNd,KAAMe"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import r from"./components/DeviceFingerprint/PrepareFingerprint3DS2.js";import n from"./callSubmit3DS2Fingerprint.js";import{existy as o}from"../../utils/commonUtils.js";import{TxVariants as i}from"../tx-variants.js";import s,{API_ERROR as
|
|
1
|
+
import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import r from"./components/DeviceFingerprint/PrepareFingerprint3DS2.js";import n from"./callSubmit3DS2Fingerprint.js";import{existy as o}from"../../utils/commonUtils.js";import{TxVariants as i}from"../tx-variants.js";import s,{API_ERROR as c}from"../../core/Errors/AdyenCheckoutError.js";import{ANALYTICS_ERROR_TYPE as p,Analytics3DS2Errors as a,ANALYTICS_RENDERED_STR as l,Analytics3DS2Events as m}from"../../core/Analytics/constants.js";import{THREEDS2_FINGERPRINT_ERROR as u,THREEDS2_FULL as y,THREEDS2_FINGERPRINT as f}from"./constants.js";import{AnalyticsLogEvent as b}from"../../core/Analytics/AnalyticsLogEvent.js";import{AnalyticsInfoEvent as j}from"../../core/Analytics/AnalyticsInfoEvent.js";import{AnalyticsErrorEvent as h}from"../../core/Analytics/AnalyticsErrorEvent.js";function A(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function O(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 r=Object.getOwnPropertySymbols(t);e.push.apply(e,r)}return e}(Object(e)).forEach((function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})),t}class g extends e{onComplete(t){super.onComplete(t),this.unmount()}render(){if(!o(this.props.paymentData)){this.props.onError(new s(c,"No paymentData received. 3DS2 Fingerprint cannot proceed"));const t=new h({code:a.ACTION_IS_MISSING_PAYMENT_DATA,errorType:p.apiError,message:`${u}: Missing 'paymentData' property from threeDS2 action`});return this.submitAnalytics(t),null}return t(r,O(function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable})))),n.forEach((function(e){A(t,e,r[e])}))}return t}({},this.props),{onComplete:this.props.isMDFlow?this.onComplete:this.callSubmit3DS2Fingerprint,onSubmitAnalytics:this.submitAnalytics,isMDFlow:this.props.paymentData.length<15,onActionHandled:this.onActionHandled}))}constructor(...t){super(...t),A(this,"callSubmit3DS2Fingerprint",n.bind(this)),A(this,"submitAnalytics",(t=>{t instanceof j&&t.type===l||super.submitAnalytics(t)})),A(this,"onActionHandled",(t=>{const e=new b({type:y,message:t.actionDescription,subType:m.FINGERPRINT_IFRAME_LOADED});this.submitAnalytics(e),super.onActionHandled(t)}))}}A(g,"type",i.threeDS2Fingerprint),A(g,"defaultProps",{dataKey:"fingerprintResult",type:f});export{g as default};
|
|
2
2
|
//# sourceMappingURL=ThreeDS2DeviceFingerprint.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreeDS2DeviceFingerprint.js","sources":["../../../../src/components/ThreeDS2/ThreeDS2DeviceFingerprint.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport PrepareFingerprint from './components/DeviceFingerprint';\nimport callSubmit3DS2Fingerprint from './callSubmit3DS2Fingerprint';\nimport { existy } from '../../utils/commonUtils';\nimport { TxVariants } from '../tx-variants';\nimport { ThreeDS2DeviceFingerprintConfiguration } from './types';\nimport AdyenCheckoutError, { API_ERROR } from '../../core/Errors/AdyenCheckoutError';\nimport { ANALYTICS_ERROR_TYPE, Analytics3DS2Errors, ANALYTICS_RENDERED_STR, Analytics3DS2Events } from '../../core/Analytics/constants';\nimport {
|
|
1
|
+
{"version":3,"file":"ThreeDS2DeviceFingerprint.js","sources":["../../../../src/components/ThreeDS2/ThreeDS2DeviceFingerprint.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport PrepareFingerprint from './components/DeviceFingerprint';\nimport callSubmit3DS2Fingerprint from './callSubmit3DS2Fingerprint';\nimport { existy } from '../../utils/commonUtils';\nimport { TxVariants } from '../tx-variants';\nimport { ThreeDS2DeviceFingerprintConfiguration } from './types';\nimport AdyenCheckoutError, { API_ERROR } from '../../core/Errors/AdyenCheckoutError';\nimport { ANALYTICS_ERROR_TYPE, Analytics3DS2Errors, ANALYTICS_RENDERED_STR, Analytics3DS2Events } from '../../core/Analytics/constants';\nimport { THREEDS2_FINGERPRINT, THREEDS2_FINGERPRINT_ERROR, THREEDS2_FULL } from './constants';\nimport { ActionHandledReturnObject } from '../../types/global-types';\nimport { AnalyticsLogEvent } from '../../core/Analytics/AnalyticsLogEvent';\nimport { AnalyticsEvent } from '../../core/Analytics/AnalyticsEvent';\nimport { AnalyticsInfoEvent } from '../../core/Analytics/AnalyticsInfoEvent';\nimport { AnalyticsErrorEvent } from '../../core/Analytics/AnalyticsErrorEvent';\n\nclass ThreeDS2DeviceFingerprint extends UIElement<ThreeDS2DeviceFingerprintConfiguration> {\n public static type = TxVariants.threeDS2Fingerprint;\n\n public static defaultProps = {\n dataKey: 'fingerprintResult',\n type: THREEDS2_FINGERPRINT\n };\n\n private callSubmit3DS2Fingerprint = callSubmit3DS2Fingerprint.bind(this); // New 3DS2 flow\n\n protected submitAnalytics = (aObj: AnalyticsEvent) => {\n if (aObj instanceof AnalyticsInfoEvent && aObj.type === ANALYTICS_RENDERED_STR) return; // suppress the rendered event (it will have the same timestamp as the \"threeDSMethodData sent\" event)\n\n super.submitAnalytics(aObj);\n };\n\n protected onActionHandled = (rtnObj: ActionHandledReturnObject) => {\n const event = new AnalyticsLogEvent({\n type: THREEDS2_FULL,\n message: rtnObj.actionDescription,\n subType: Analytics3DS2Events.FINGERPRINT_IFRAME_LOADED\n });\n\n this.submitAnalytics(event);\n\n super.onActionHandled(rtnObj);\n };\n\n onComplete(state) {\n super.onComplete(state);\n this.unmount(); // re. fixing issue around back to back fingerprinting calls\n }\n\n render() {\n /**\n * In the regular components (aka \"native\") flow we can't proceed because something has gone wrong with the payment if paymentData is missing from the threeDS2 action.\n * In the MDFlow the paymentData is always present (albeit an empty string, which is why we use 'existy' since we should be allowed to proceed with this)\n */\n if (!existy(this.props.paymentData)) {\n this.props.onError(new AdyenCheckoutError(API_ERROR, `No paymentData received. 3DS2 Fingerprint cannot proceed`));\n\n // TODO - check logs to see if this *ever* happens\n const event = new AnalyticsErrorEvent({\n code: Analytics3DS2Errors.ACTION_IS_MISSING_PAYMENT_DATA,\n errorType: ANALYTICS_ERROR_TYPE.apiError,\n message: `${THREEDS2_FINGERPRINT_ERROR}: Missing 'paymentData' property from threeDS2 action`\n });\n\n this.submitAnalytics(event);\n\n return null;\n }\n\n /**\n * this.props.isMDFlow indicates the action to create this component came from the 3DS2InMDFlow process and upon completion should call the\n * passed onComplete callback (as defined in the 3DS2InMDFlow) instead of the /submitThreeDS2Fingerprint endpoint for the regular, \"native\" flow\n */\n return (\n <PrepareFingerprint\n {...this.props}\n onComplete={this.props.isMDFlow ? this.onComplete : this.callSubmit3DS2Fingerprint}\n onSubmitAnalytics={this.submitAnalytics}\n isMDFlow={this.props.paymentData.length < 15}\n onActionHandled={this.onActionHandled}\n />\n );\n }\n}\n\nexport default ThreeDS2DeviceFingerprint;\n"],"names":["ThreeDS2DeviceFingerprint","UIElement","onComplete","state","super","this","unmount","render","existy","props","paymentData","onError","AdyenCheckoutError","API_ERROR","event","AnalyticsErrorEvent","code","Analytics3DS2Errors","ACTION_IS_MISSING_PAYMENT_DATA","errorType","ANALYTICS_ERROR_TYPE","apiError","message","THREEDS2_FINGERPRINT_ERROR","submitAnalytics","h","PrepareFingerprint","_object_spread_props","_object_spread","isMDFlow","callSubmit3DS2Fingerprint","onSubmitAnalytics","length","onActionHandled","args","_define_property","bind","aObj","AnalyticsInfoEvent","type","ANALYTICS_RENDERED_STR","rtnObj","AnalyticsLogEvent","THREEDS2_FULL","actionDescription","subType","Analytics3DS2Events","FINGERPRINT_IFRAME_LOADED","TxVariants","threeDS2Fingerprint","defaultProps","dataKey","THREEDS2_FINGERPRINT"],"mappings":"23CAgBA,MAAMA,UAAkCC,EA4BpCC,UAAAA,CAAWC,GACPC,MAAMF,WAAWC,GACjBE,KAAKC,SACT,CAEAC,MAAAA,GAKI,IAAKC,EAAOH,KAAKI,MAAMC,aAAc,CACjCL,KAAKI,MAAME,QAAQ,IAAIC,EAAmBC,EAAW,6DAGrD,MAAMC,EAAQ,IAAIC,EAAoB,CAClCC,KAAMC,EAAoBC,+BAC1BC,UAAWC,EAAqBC,SAChCC,QAAS,GAAGC,2DAKhB,OAFAlB,KAAKmB,gBAAgBV,GAEd,IACX,CAMA,OACIW,EAACC,EACOC,wUAAAC,CAAA,GAAAvB,KAAKI,OAAK,CACdP,WAAYG,KAAKI,MAAMoB,SAAWxB,KAAKH,WAAaG,KAAKyB,0BACzDC,kBAAmB1B,KAAKmB,gBACxBK,SAAUxB,KAAKI,MAAMC,YAAYsB,OAAS,GAC1CC,gBAAiB5B,KAAK4B,kBAGlC,mBAlEJ7B,SAAA8B,GAQIC,OAAQL,4BAA4BA,EAA0BM,KAAK/B,OAEnE8B,EAAA9B,KAAUmB,mBAAmBa,IACrBA,aAAgBC,GAAsBD,EAAKE,OAASC,GAExDpC,MAAMoB,gBAAgBa,EAAAA,IAG1BF,EAAA9B,KAAU4B,mBAAmBQ,IACzB,MAAM3B,EAAQ,IAAI4B,EAAkB,CAChCH,KAAMI,EACNrB,QAASmB,EAAOG,kBAChBC,QAASC,EAAoBC,4BAGjC1C,KAAKmB,gBAAgBV,GAErBV,MAAM6B,gBAAgBQ,EAAAA,KAxB1BN,EADEnC,EACYuC,OAAOS,EAAWC,qBAEhCd,EAHEnC,EAGYkD,eAAe,CACzBC,QAAS,oBACTZ,KAAMa"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{httpPost as e}from"../../core/Services/http.js";import{pick as t}from"../../utils/commonUtils.js";import{THREEDS2_FINGERPRINT_SUBMIT as
|
|
1
|
+
import{httpPost as e}from"../../core/Services/http.js";import{pick as t}from"../../utils/commonUtils.js";import{THREEDS2_FINGERPRINT_SUBMIT as r}from"./constants.js";import{ANALYTICS_ERROR_TYPE as n,Analytics3DS2Errors as o}from"../../core/Analytics/constants.js";import{API_ERROR_CODE as i}from"../../core/Services/sessions/constants.js";import{AnalyticsErrorEvent as s}from"../../core/Analytics/AnalyticsErrorEvent.js";function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c({data:c}){e({path:`v1/submitThreeDS2Fingerprint?token=${this.props.clientKey}`,loadingContext:this.props.loadingContext,errorLevel:"fatal",errorCode:i.submitThreeDS2Fingerprint},function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){a(e,t,r[t])}))}return e}({},c)).then((e=>{var i,a;let c;if("completed"===e.type){const{details:t}=e;return e.details?this.onComplete({data:{details:t}}):(console.debug('Handled Error::callSubmit3DS2Fingerprint::FAILED:: no details object in a response indicating either a "frictionless" flow, or a "refused" response. resData=',e),c=new s({code:o.NO_DETAILS_FOR_FRICTIONLESS_OR_REFUSED,errorType:n.apiError,message:`${r}: no details object in a response indicating either a "frictionless" flow, or a "refused" response`}),void this.submitAnalytics(c))}if(!e.action)return console.debug('Handled Error::callSubmit3DS2Fingerprint::FAILED:: no action object in a response indicating a "challenge". resData=',e),c=new s({code:o.NO_ACTION_FOR_CHALLENGE,errorType:n.apiError,message:`${r}: no action object in a response indicating a "challenge" flow`}),void this.submitAnalytics(c);var l;const d=null!==(l=this.props.elementRef)&&void 0!==l?l:this;return d?"threeDS2"===(null===(i=e.action)||void 0===i?void 0:i.type)?d.handleAction(e.action,t("challengeWindowSize").from(this.props)):"redirect"===(null===(a=e.action)||void 0===a?void 0:a.type)?d.handleAction(e.action):void 0:(console.debug("Handled Error::callSubmit3DS2Fingerprint::FAILED:: no actionHandler"),c=new s({code:o.NO_COMPONENT_FOR_ACTION,errorType:n.sdkError,message:`${r}: no component defined to handle the action response`}),void this.submitAnalytics(c))})).catch((e=>{this.handleError(e)}))}export{c as default};
|
|
2
2
|
//# sourceMappingURL=callSubmit3DS2Fingerprint.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callSubmit3DS2Fingerprint.js","sources":["../../../../src/components/ThreeDS2/callSubmit3DS2Fingerprint.ts"],"sourcesContent":["import { httpPost } from '../../core/Services/http';\nimport { pick } from '../../utils/commonUtils';\nimport { ThreeDS2FingerprintResponse } from './types';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport {
|
|
1
|
+
{"version":3,"file":"callSubmit3DS2Fingerprint.js","sources":["../../../../src/components/ThreeDS2/callSubmit3DS2Fingerprint.ts"],"sourcesContent":["import { httpPost } from '../../core/Services/http';\nimport { pick } from '../../utils/commonUtils';\nimport { ThreeDS2FingerprintResponse } from './types';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { THREEDS2_FINGERPRINT_SUBMIT } from './constants';\nimport { ANALYTICS_ERROR_TYPE, Analytics3DS2Errors } from '../../core/Analytics/constants';\nimport { API_ERROR_CODE } from '../../core/Services/sessions/constants';\nimport { AnalyticsEvent } from '../../core/Analytics/AnalyticsEvent';\nimport { AnalyticsErrorEvent } from '../../core/Analytics/AnalyticsErrorEvent';\n\n/**\n * ThreeDS2DeviceFingerprint, onComplete, calls a new, internal, endpoint which\n * behaves like the /details endpoint but doesn't require the same credentials\n */\nexport default function callSubmit3DS2Fingerprint({ data }): void {\n httpPost<ThreeDS2FingerprintResponse>(\n {\n path: `v1/submitThreeDS2Fingerprint?token=${this.props.clientKey}`,\n loadingContext: this.props.loadingContext,\n errorLevel: 'fatal',\n errorCode: API_ERROR_CODE.submitThreeDS2Fingerprint\n },\n {\n ...data\n }\n )\n .then(resData => {\n let event: AnalyticsEvent;\n\n /**\n * Frictionless (no challenge) flow OR \"refused\" flow\n */\n if (resData.type === 'completed') {\n const { details } = resData;\n\n if (!resData.details) {\n console.debug(\n 'Handled Error::callSubmit3DS2Fingerprint::FAILED:: no details object in a response indicating either a \"frictionless\" flow, or a \"refused\" response. resData=',\n resData\n );\n\n event = new AnalyticsErrorEvent({\n code: Analytics3DS2Errors.NO_DETAILS_FOR_FRICTIONLESS_OR_REFUSED,\n errorType: ANALYTICS_ERROR_TYPE.apiError,\n message: `${THREEDS2_FINGERPRINT_SUBMIT}: no details object in a response indicating either a \"frictionless\" flow, or a \"refused\" response`\n });\n\n this.submitAnalytics(event);\n\n return;\n }\n\n return this.onComplete({ data: { details } });\n }\n\n /**\n * If we don't have a type: \"completed\", then we expect an action, because we must be in a Challenge or Redirect flow\n */\n if (!resData.action) {\n console.debug(\n 'Handled Error::callSubmit3DS2Fingerprint::FAILED:: no action object in a response indicating a \"challenge\". resData=',\n resData\n );\n\n event = new AnalyticsErrorEvent({\n code: Analytics3DS2Errors.NO_ACTION_FOR_CHALLENGE,\n errorType: ANALYTICS_ERROR_TYPE.apiError,\n message: `${THREEDS2_FINGERPRINT_SUBMIT}: no action object in a response indicating a \"challenge\" flow`\n });\n this.submitAnalytics(event);\n\n return;\n }\n\n // elementRef exists when the fingerprint component is created from the Dropin\n const actionHandler = this.props.elementRef ?? this;\n\n /**\n * We have an action but do we have a way to handle it?\n * TODO - check logs: do we ever *not* have an actionHandler?\n */\n if (!actionHandler) {\n console.debug('Handled Error::callSubmit3DS2Fingerprint::FAILED:: no actionHandler');\n\n event = new AnalyticsErrorEvent({\n code: Analytics3DS2Errors.NO_COMPONENT_FOR_ACTION,\n errorType: ANALYTICS_ERROR_TYPE.sdkError,\n message: `${THREEDS2_FINGERPRINT_SUBMIT}: no component defined to handle the action response`\n });\n\n this.submitAnalytics(event);\n\n return;\n }\n\n /**\n * Challenge flow\n */\n if (resData.action?.type === 'threeDS2') {\n // Ensure challengeWindowSize is propagated if there was a (merchant defined) handleAction call proceeding this one that had it set as an option\n return actionHandler.handleAction(resData.action, pick('challengeWindowSize').from(this.props));\n }\n\n /**\n * Redirect flow (usecase: we thought we could do 3DS2 but it turns out we can't)\n * TODO - check logs: does this ever happen, anymore?\n */\n if (resData.action?.type === 'redirect') {\n return actionHandler.handleAction(resData.action);\n }\n })\n .catch((error: AdyenCheckoutError) => {\n this.handleError(error);\n });\n}\n"],"names":["callSubmit3DS2Fingerprint","data","httpPost","path","this","props","clientKey","loadingContext","errorLevel","errorCode","API_ERROR_CODE","submitThreeDS2Fingerprint","_object_spread","then","resData","event","type","details","onComplete","console","debug","AnalyticsErrorEvent","code","Analytics3DS2Errors","NO_DETAILS_FOR_FRICTIONLESS_OR_REFUSED","errorType","ANALYTICS_ERROR_TYPE","apiError","message","THREEDS2_FINGERPRINT_SUBMIT","submitAnalytics","action","NO_ACTION_FOR_CHALLENGE","_this_props_elementRef","actionHandler","elementRef","handleAction","pick","from","NO_COMPONENT_FOR_ACTION","sdkError","catch","error","handleError"],"mappings":"6hBAce,SAASA,GAA0BC,KAAEA,IAChDC,EACI,CACIC,KAAM,sCAAsCC,KAAKC,MAAMC,YACvDC,eAAgBH,KAAKC,MAAME,eAC3BC,WAAY,QACZC,UAAWC,EAAeC,iWAE9BC,CACOX,CAAAA,EAAAA,IAGNY,MAAKC,QAwEEA,EASAA,EAhFJ,IAAIC,EAKJ,GAAqB,cAAjBD,EAAQE,KAAsB,CAC9B,MAAMC,QAAEA,GAAYH,EAEpB,OAAKA,EAAQG,QAiBNb,KAAKc,WAAW,CAAEjB,KAAM,CAAEgB,cAhB7BE,QAAQC,MACJ,gKACAN,GAGJC,EAAQ,IAAIM,EAAoB,CAC5BC,KAAMC,EAAoBC,uCAC1BC,UAAWC,EAAqBC,SAChCC,QAAS,GAAGC,6GAGhBzB,KAAK0B,gBAAgBf,GAM7B,CAKA,IAAKD,EAAQiB,OAaT,OAZAZ,QAAQC,MACJ,uHACAN,GAGJC,EAAQ,IAAIM,EAAoB,CAC5BC,KAAMC,EAAoBS,wBAC1BP,UAAWC,EAAqBC,SAChCC,QAAS,GAAGC,yEAEhBzB,KAAK0B,gBAAgBf,GAMH,IAAAkB,EAAtB,MAAMC,EAAqC,QAArBD,EAAA7B,KAAKC,MAAM8B,kBAAX,IAAAF,EAAAA,EAAyB7B,KAM/C,OAAK8B,EAiBwB,sBAAzBpB,EAAAA,EAAQiB,cAARjB,IAAAA,OAAAA,EAAAA,EAAgBE,MAETkB,EAAcE,aAAatB,EAAQiB,OAAQM,EAAK,uBAAuBC,KAAKlC,KAAKC,QAO/D,sBAAzBS,EAAAA,EAAQiB,cAARjB,IAAAA,OAAAA,EAAAA,EAAgBE,MACTkB,EAAcE,aAAatB,EAAQiB,aAD9C,GAzBIZ,QAAQC,MAAM,uEAEdL,EAAQ,IAAIM,EAAoB,CAC5BC,KAAMC,EAAoBgB,wBAC1Bd,UAAWC,EAAqBc,SAChCZ,QAAS,GAAGC,+DAGhBzB,KAAK0B,gBAAgBf,GAmBzB,IAEH0B,OAAOC,IACJtC,KAAKuC,YAAYD,EAAAA,GAE7B"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Component as e,createElement as r}from"../../../../external/preact/dist/preact.js";import t from"./DoChallenge3DS2.js";import{isErrorObject as o,createOldChallengeResolveData as s,createChallengeResolveData as n,prepareChallengeData as i}from"../utils.js";import a from"../../../internal/Img/Img.js";import{hasOwnProperty as l}from"../../../../utils/hasOwnProperty.js";import
|
|
1
|
+
import{Component as e,createElement as r}from"../../../../external/preact/dist/preact.js";import t from"./DoChallenge3DS2.js";import{isErrorObject as o,createOldChallengeResolveData as s,createChallengeResolveData as n,prepareChallengeData as i}from"../utils.js";import a from"../../../internal/Img/Img.js";import{hasOwnProperty as l}from"../../../../utils/hasOwnProperty.js";import c from"../../../../core/Context/useImage.js";import p,{ERROR as u}from"../../../../core/Errors/AdyenCheckoutError.js";import{THREEDS2_CHALLENGE_ERROR as h,MISSING_TOKEN_IN_ACTION_MSG as m,THREEDS2_NUM as g,THREEDS2_FULL as d,THREEDS2_CHALLENGE as S}from"../../constants.js";import{isValidHttpUrl as f}from"../../../../utils/isValidURL.js";import{Analytics3DS2Errors as E,ANALYTICS_ERROR_TYPE as D,Analytics3DS2Events as O}from"../../../../core/Analytics/constants.js";import{AnalyticsLogEvent as _}from"../../../../core/Analytics/AnalyticsLogEvent.js";import{AnalyticsErrorEvent as b}from"../../../../core/Analytics/AnalyticsErrorEvent.js";function y(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function C(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},o=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),o.forEach((function(r){y(e,r,t[r])}))}return e}function I(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 t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r}(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})),e}class T extends e{componentDidMount(){if(!o(this.state.challengeData)){var e,r;const t="test"===this.props.environment&&(null===(r=this.props._environmentUrls)||void 0===r||null===(e=r.api)||void 0===e?void 0:e.includes("http://localhost:8080")),{acsURL:o}=this.state.challengeData;if(!f(o,t)){this.setError({errorInfo:`${E.TOKEN_IS_MISSING_ACSURL}: ${this.props.i18n.get("err.gen.9102")}`},!0);const e=new b({code:E.TOKEN_IS_MISSING_ACSURL,errorType:D.apiError,message:`${h}: Decoded token is missing a valid acsURL property`});return this.props.onSubmitAnalytics(e),void console.debug("### PrepareChallenge3DS2::exiting:: no valid acsURL")}const{acsTransID:s,messageVersion:n,threeDSServerTransID:i}=this.state.challengeData.cReqData;if(!s||!n||!i){this.setError({errorInfo:`${E.TOKEN_IS_MISSING_OTHER_PROPS}: ${this.props.i18n.get("err.gen.9102")}`},!0);const e=new b({code:E.TOKEN_IS_MISSING_OTHER_PROPS,errorType:D.apiError,message:`${h}: Decoded token is missing one or more of the following properties (acsTransID | messageVersion | threeDSServerTransID)`});return this.props.onSubmitAnalytics(e),void console.debug("### PrepareChallenge3DS2::exiting:: missing one or more of the following properties (acsTransID | messageVersion | threeDSServerTransID)")}this.setState({status:"performingChallenge"})}else{const e=this.state.challengeData.error,r=e.indexOf(m)>-1?E.ACTION_IS_MISSING_TOKEN:E.TOKEN_DECODE_OR_PARSING_FAILED;this.setError({errorInfo:e.indexOf(m)>-1?`${E.ACTION_IS_MISSING_TOKEN}: ${this.props.i18n.get("err.gen.9102")}`:`${E.TOKEN_DECODE_OR_PARSING_FAILED}: ${this.props.i18n.get("err.gen.9102")}`},!0);const t=new b({code:r,errorType:D.apiError,message:`${h}: ${e}`});this.props.onSubmitAnalytics(t),console.debug("### PrepareChallenge3DS2::exiting:: no challengeData")}}setStatusComplete(e,r=null){this.setState({status:"complete"},(()=>{const t=(this.props.isMDFlow?s:n)(this.props.dataKey,e.transStatus,this.props.paymentData);let o;r&&console.debug("### PrepareChallenge3DS2::errorCodeObject::",r);const i=r||e;if(i.errorCode){const e={code:"timeout"===i.errorCode?E.THREEDS2_TIMEOUT:E.NO_TRANSSTATUS,errorType:"timeout"===i.errorCode?D.network:D.apiError};o=new b(C({message:i.message},e)),this.props.onSubmitAnalytics(o)}let a;switch(null==e?void 0:e.transStatus){case"Y":a="success";break;case"N":a="failed";break;case"U":a=r?"timeout":"cancelled"}(null==e?void 0:e.errorCode)&&(a="noTransStatus"),o=new _({type:d,message:`${g} challenge has completed`,subType:O.CHALLENGE_COMPLETED,result:a}),this.props.onSubmitAnalytics(o),this.props.onComplete(t)}))}setError(e,r){this.setState({status:"error",errorInfo:e.errorInfo}),r&&this.props.onError(new p(u,e.errorInfo,{cause:e.errorObj}))}render(e,{challengeData:o}){const s=c();return"performingChallenge"===this.state.status?r(t,I(C({onCompleteChallenge:e=>{let r=null;if(l(e.result,"errorCode")&&e.result.errorCode.length&&(r={errorCode:e.result.errorCode,message:`${h}: ${e.result.errorDescription?e.result.errorDescription:"no transStatus could be retrieved"}`},this.props.isMDFlow&&this.props.onError(new p(u,`${h}: ${e.result.errorDescription?e.result.errorDescription:"no transStatus could be retrieved"}`,{cause:e.result.errorCode}))),!e.result){this.setError({errorInfo:`${h}: ${this.props.i18n.get("3ds.chal.805",{values:{result:'"result"'}})}`,errorObj:e},!0);const r=new b({code:E.CHALLENGE_RESOLVED_WITHOUT_RESULT_PROP,errorType:D.apiError,message:`${h}: challenge resolved without a "result" object`});return this.props.onSubmitAnalytics(r),void console.debug('### PrepareChallenge3DS2::exiting:: challenge resolved without a "result" object')}this.setStatusComplete(e.result,r)},onErrorChallenge:e=>{if(l(e,"errorCode")){const r={errorCode:e.errorCode,message:`${S}: ${e.errorCode}`};return this.props.isMDFlow&&this.props.onError(new p(u,`${h}: '3DS2 challenge timed out'`,{cause:e.errorCode})),void this.setStatusComplete(e.result,r)}}},o),{onActionHandled:this.props.onActionHandled,onFormSubmit:this.onFormSubmit})):"error"===this.state.status?r("div",{className:"adyen-checkout__threeds2-challenge-error"},r(a,{className:"adyen-checkout__status__icon adyen-checkout__status__icon--error",src:s({imageFolder:"components/"})("error"),alt:""}),r("div",{className:"adyen-checkout__status__text"},this.state.errorInfo?this.state.errorInfo:this.props.i18n.get("error.message.unknown"))):null}constructor(e){if(super(e),y(this,"onFormSubmit",(e=>{const r=new _({type:d,message:e,subType:O.CHALLENGE_DATA_SENT});this.props.onSubmitAnalytics(r)})),this.props.token){const e=i({token:this.props.token,size:this.props.challengeWindowSize||this.props.size});this.state={status:"init",challengeData:e}}else this.state={challengeData:{success:!1,error:m}},console.debug(`${h}: ${m}`)}}y(T,"defaultProps",{onComplete:()=>{},onError:()=>{},isMDFlow:!1});export{T as default};
|
|
2
2
|
//# sourceMappingURL=PrepareChallenge3DS2.js.map
|