@primer-io/react-native 2.45.0 → 3.0.0-beta.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/android/build.gradle +3 -1
- package/android/src/main/java/com/primerioreactnative/DefaultNativePrimerModule.kt +64 -0
- package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckoutListener.kt +36 -2
- package/android/src/main/java/com/primerioreactnative/PrimerSdkPackage.kt +2 -0
- package/android/src/main/java/com/primerioreactnative/PrimerViewUtilsImpl.kt +33 -0
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/billingAddress/PrimerRNAddress.kt +29 -0
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/card/PrimerRNCardData.kt +3 -0
- package/android/src/main/java/com/primerioreactnative/components/manager/asset/PrimerRNHeadlessUniversalCheckoutAssetManager.kt +49 -0
- package/android/src/main/java/com/primerioreactnative/components/manager/raw/PrimerRNHeadlessUniversalCheckoutRawManager.kt +61 -3
- package/android/src/main/java/com/primerioreactnative/components/manager/vault/PrimerRNHeadlessUniversalCheckoutVaultManager.kt +6 -0
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerClientSessionRN.kt +7 -0
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerErrorRN.kt +1 -0
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerClientSession.kt +14 -10
- package/android/src/main/java/com/primerioreactnative/utils/AnalyticsEventMapper.kt +115 -0
- package/android/src/newarch/java/com/primerioreactnative/NativePrimerModule.kt +28 -0
- package/android/src/newarch/java/com/primerioreactnative/PrimerViewUtilsModule.kt +24 -0
- package/android/src/oldarch/java/com/primerioreactnative/NativePrimerModule.kt +32 -0
- package/android/src/oldarch/java/com/primerioreactnative/PrimerViewUtilsModule.kt +27 -0
- package/android/src/test/java/com/primerioreactnative/utils/AnalyticsEventMapperTest.kt +351 -0
- package/ios/Sources/DataModels/PrimerAddress+Extension.swift +35 -0
- package/ios/Sources/DataModels/PrimerCardData+Extension.swift +9 -1
- package/ios/Sources/Headless Universal Checkout/Managers/Assets Manager/RNTAssetsManager.m +7 -0
- package/ios/Sources/Headless Universal Checkout/Managers/Assets Manager/RNTAssetsManager.swift +46 -13
- package/ios/Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNPrimerHeadlessUniversalCheckoutVaultManager.m +2 -0
- package/ios/Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNPrimerHeadlessUniversalCheckoutVaultManager.swift +12 -1
- package/ios/Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNTRawDataManager.m +2 -0
- package/ios/Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNTRawDataManager.swift +45 -2
- package/ios/Sources/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.swift +61 -3
- package/ios/Sources/NativePrimer/RCTNativePrimer.mm +47 -1
- package/ios/Sources/PrimerViewUtils/RCTPrimerViewUtils.h +10 -0
- package/ios/Sources/PrimerViewUtils/RCTPrimerViewUtils.mm +41 -0
- package/ios/Sources/PrimerViewUtils/RNTPrimerViewUtils.swift +23 -0
- package/ios/Sources/RNTPrimer.swift +88 -3
- package/ios/Sources/version.swift +1 -1
- package/lib/module/Components/PrimerAcceptedCardNetworks.js +73 -0
- package/lib/module/Components/PrimerAcceptedCardNetworks.js.map +1 -0
- package/lib/module/Components/PrimerBillingAddressForm.js +167 -0
- package/lib/module/Components/PrimerBillingAddressForm.js.map +1 -0
- package/lib/module/Components/PrimerCardForm.js +97 -0
- package/lib/module/Components/PrimerCardForm.js.map +1 -0
- package/lib/module/Components/PrimerCardNetworkSelector.js +164 -0
- package/lib/module/Components/PrimerCardNetworkSelector.js.map +1 -0
- package/lib/module/Components/PrimerCheckoutProvider.js +1059 -0
- package/lib/module/Components/PrimerCheckoutProvider.js.map +1 -0
- package/lib/module/Components/PrimerCheckoutSheet.js +28 -0
- package/lib/module/Components/PrimerCheckoutSheet.js.map +1 -0
- package/lib/module/Components/PrimerPaymentMethodList.js +80 -0
- package/lib/module/Components/PrimerPaymentMethodList.js.map +1 -0
- package/lib/module/Components/PrimerVaultedPaymentMethod.js +234 -0
- package/lib/module/Components/PrimerVaultedPaymentMethod.js.map +1 -0
- package/lib/module/Components/analytics.js +18 -0
- package/lib/module/Components/analytics.js.map +1 -0
- package/lib/module/Components/hooks/useCardNetworkDescriptor.js +25 -0
- package/lib/module/Components/hooks/useCardNetworkDescriptor.js.map +1 -0
- package/lib/module/Components/hooks/useCardNetworkIcons.js +44 -0
- package/lib/module/Components/hooks/useCardNetworkIcons.js.map +1 -0
- package/lib/module/Components/hooks/usePrimerBillingAddressForm.js +27 -0
- package/lib/module/Components/hooks/usePrimerBillingAddressForm.js.map +1 -0
- package/lib/module/Components/hooks/usePrimerCardForm.js +44 -0
- package/lib/module/Components/hooks/usePrimerCardForm.js.map +1 -0
- package/lib/module/Components/hooks/usePrimerCardNetwork.js +70 -0
- package/lib/module/Components/hooks/usePrimerCardNetwork.js.map +1 -0
- package/lib/module/Components/hooks/usePrimerCardNetworkSelection.js +70 -0
- package/lib/module/Components/hooks/usePrimerCardNetworkSelection.js.map +1 -0
- package/lib/module/Components/hooks/usePrimerCheckout.js +12 -0
- package/lib/module/Components/hooks/usePrimerCheckout.js.map +1 -0
- package/lib/module/Components/hooks/usePrimerPaymentMethod.js +94 -0
- package/lib/module/Components/hooks/usePrimerPaymentMethod.js.map +1 -0
- package/lib/module/Components/hooks/usePrimerPaymentMethods.js +159 -0
- package/lib/module/Components/hooks/usePrimerPaymentMethods.js.map +1 -0
- package/lib/module/Components/hooks/usePrimerVaultManager.js +85 -0
- package/lib/module/Components/hooks/usePrimerVaultManager.js.map +1 -0
- package/lib/module/Components/index.js +22 -0
- package/lib/module/Components/index.js.map +1 -0
- package/lib/module/Components/inputs/CountrySelectorRow.js +117 -0
- package/lib/module/Components/inputs/CountrySelectorRow.js.map +1 -0
- package/lib/module/Components/inputs/PrimerCVVInput.js +51 -0
- package/lib/module/Components/inputs/PrimerCVVInput.js.map +1 -0
- package/lib/module/Components/inputs/PrimerCardNumberInput.js +134 -0
- package/lib/module/Components/inputs/PrimerCardNumberInput.js.map +1 -0
- package/lib/module/Components/inputs/PrimerCardholderNameInput.js +33 -0
- package/lib/module/Components/inputs/PrimerCardholderNameInput.js.map +1 -0
- package/lib/module/Components/inputs/PrimerExpiryDateInput.js +92 -0
- package/lib/module/Components/inputs/PrimerExpiryDateInput.js.map +1 -0
- package/lib/module/Components/inputs/PrimerTextInput.js +182 -0
- package/lib/module/Components/inputs/PrimerTextInput.js.map +1 -0
- package/lib/module/Components/inputs/caret.js +37 -0
- package/lib/module/Components/inputs/caret.js.map +1 -0
- package/lib/module/Components/inputs/dimensions.js +18 -0
- package/lib/module/Components/inputs/dimensions.js.map +1 -0
- package/lib/module/Components/inputs/index.js +9 -0
- package/lib/module/Components/inputs/index.js.map +1 -0
- package/lib/module/Components/internal/CardNetworkBadge.js +113 -0
- package/lib/module/Components/internal/CardNetworkBadge.js.map +1 -0
- package/lib/module/Components/internal/Popover.js +85 -0
- package/lib/module/Components/internal/Popover.js.map +1 -0
- package/lib/module/Components/internal/PrimerCheckoutContext.js +5 -0
- package/lib/module/Components/internal/PrimerCheckoutContext.js.map +1 -0
- package/lib/module/Components/internal/applePay.js +14 -0
- package/lib/module/Components/internal/applePay.js.map +1 -0
- package/lib/module/Components/internal/billingAddressOptions.js +29 -0
- package/lib/module/Components/internal/billingAddressOptions.js.map +1 -0
- package/lib/module/Components/internal/cardFormat.js +41 -0
- package/lib/module/Components/internal/cardFormat.js.map +1 -0
- package/lib/module/Components/internal/cardNetwork.js +85 -0
- package/lib/module/Components/internal/cardNetwork.js.map +1 -0
- package/lib/module/Components/internal/cardNetworkIcons.js +28 -0
- package/lib/module/Components/internal/cardNetworkIcons.js.map +1 -0
- package/lib/module/Components/internal/checkout-flow/CheckoutFlow.js +129 -0
- package/lib/module/Components/internal/checkout-flow/CheckoutFlow.js.map +1 -0
- package/lib/module/Components/internal/checkout-flow/CheckoutFlowContext.js +12 -0
- package/lib/module/Components/internal/checkout-flow/CheckoutFlowContext.js.map +1 -0
- package/lib/module/Components/internal/checkout-flow/index.js +4 -0
- package/lib/module/Components/internal/checkout-flow/index.js.map +1 -0
- package/lib/module/Components/internal/checkout-sheet/CheckoutSheet.js +280 -0
- package/lib/module/Components/internal/checkout-sheet/CheckoutSheet.js.map +1 -0
- package/lib/module/Components/internal/checkout-sheet/SheetHeightContext.js +12 -0
- package/lib/module/Components/internal/checkout-sheet/SheetHeightContext.js.map +1 -0
- package/lib/module/Components/internal/checkout-sheet/index.js +5 -0
- package/lib/module/Components/internal/checkout-sheet/index.js.map +1 -0
- package/lib/module/Components/internal/checkout-sheet/types.js +4 -0
- package/lib/module/Components/internal/checkout-sheet/types.js.map +1 -0
- package/lib/module/Components/internal/countries.js +795 -0
- package/lib/module/Components/internal/countries.js.map +1 -0
- package/lib/module/Components/internal/currency/currencies.json +1 -0
- package/lib/module/Components/internal/currency/currency-metadata.js +52 -0
- package/lib/module/Components/internal/currency/currency-metadata.js.map +1 -0
- package/lib/module/Components/internal/currency/formatting.js +28 -0
- package/lib/module/Components/internal/currency/formatting.js.map +1 -0
- package/lib/module/Components/internal/currency/index.js +5 -0
- package/lib/module/Components/internal/currency/index.js.map +1 -0
- package/lib/module/Components/internal/debug.js +15 -0
- package/lib/module/Components/internal/debug.js.map +1 -0
- package/lib/module/Components/internal/flags.js +19 -0
- package/lib/module/Components/internal/flags.js.map +1 -0
- package/lib/module/Components/internal/form-state/BillingAddressFormStateProvider.js +221 -0
- package/lib/module/Components/internal/form-state/BillingAddressFormStateProvider.js.map +1 -0
- package/lib/module/Components/internal/form-state/CardFormStateProvider.js +271 -0
- package/lib/module/Components/internal/form-state/CardFormStateProvider.js.map +1 -0
- package/lib/module/Components/internal/form-state/index.js +5 -0
- package/lib/module/Components/internal/form-state/index.js.map +1 -0
- package/lib/module/Components/internal/googlePay.js +15 -0
- package/lib/module/Components/internal/googlePay.js.map +1 -0
- package/lib/module/Components/internal/localization/index.js +6 -0
- package/lib/module/Components/internal/localization/index.js.map +1 -0
- package/lib/module/Components/internal/localization/interpolation.js +13 -0
- package/lib/module/Components/internal/localization/interpolation.js.map +1 -0
- package/lib/module/Components/internal/localization/locale-resolver.js +40 -0
- package/lib/module/Components/internal/localization/locale-resolver.js.map +1 -0
- package/lib/module/Components/internal/localization/strings/ar.json +227 -0
- package/lib/module/Components/internal/localization/strings/az.json +227 -0
- package/lib/module/Components/internal/localization/strings/bg.json +227 -0
- package/lib/module/Components/internal/localization/strings/bs.json +227 -0
- package/lib/module/Components/internal/localization/strings/ca.json +227 -0
- package/lib/module/Components/internal/localization/strings/cs.json +227 -0
- package/lib/module/Components/internal/localization/strings/da.json +227 -0
- package/lib/module/Components/internal/localization/strings/de.json +227 -0
- package/lib/module/Components/internal/localization/strings/el.json +227 -0
- package/lib/module/Components/internal/localization/strings/en.json +256 -0
- package/lib/module/Components/internal/localization/strings/es-AR.json +227 -0
- package/lib/module/Components/internal/localization/strings/es-MX.json +227 -0
- package/lib/module/Components/internal/localization/strings/es.json +227 -0
- package/lib/module/Components/internal/localization/strings/et.json +227 -0
- package/lib/module/Components/internal/localization/strings/fa.json +227 -0
- package/lib/module/Components/internal/localization/strings/fi.json +227 -0
- package/lib/module/Components/internal/localization/strings/fil.json +227 -0
- package/lib/module/Components/internal/localization/strings/fr.json +227 -0
- package/lib/module/Components/internal/localization/strings/he.json +227 -0
- package/lib/module/Components/internal/localization/strings/hi.json +227 -0
- package/lib/module/Components/internal/localization/strings/hr.json +227 -0
- package/lib/module/Components/internal/localization/strings/hu.json +227 -0
- package/lib/module/Components/internal/localization/strings/hy.json +227 -0
- package/lib/module/Components/internal/localization/strings/id.json +227 -0
- package/lib/module/Components/internal/localization/strings/index.js +68 -0
- package/lib/module/Components/internal/localization/strings/index.js.map +1 -0
- package/lib/module/Components/internal/localization/strings/it.json +227 -0
- package/lib/module/Components/internal/localization/strings/ja.json +227 -0
- package/lib/module/Components/internal/localization/strings/ka.json +227 -0
- package/lib/module/Components/internal/localization/strings/kk.json +227 -0
- package/lib/module/Components/internal/localization/strings/ko.json +227 -0
- package/lib/module/Components/internal/localization/strings/ku.json +227 -0
- package/lib/module/Components/internal/localization/strings/ky.json +227 -0
- package/lib/module/Components/internal/localization/strings/lt.json +227 -0
- package/lib/module/Components/internal/localization/strings/lv.json +227 -0
- package/lib/module/Components/internal/localization/strings/mk.json +227 -0
- package/lib/module/Components/internal/localization/strings/ms.json +227 -0
- package/lib/module/Components/internal/localization/strings/nb.json +227 -0
- package/lib/module/Components/internal/localization/strings/nl-BE.json +227 -0
- package/lib/module/Components/internal/localization/strings/nl.json +227 -0
- package/lib/module/Components/internal/localization/strings/pl.json +227 -0
- package/lib/module/Components/internal/localization/strings/pt-BR.json +227 -0
- package/lib/module/Components/internal/localization/strings/pt.json +227 -0
- package/lib/module/Components/internal/localization/strings/ro.json +227 -0
- package/lib/module/Components/internal/localization/strings/ru.json +227 -0
- package/lib/module/Components/internal/localization/strings/sk.json +227 -0
- package/lib/module/Components/internal/localization/strings/sl.json +227 -0
- package/lib/module/Components/internal/localization/strings/sq.json +227 -0
- package/lib/module/Components/internal/localization/strings/sr.json +227 -0
- package/lib/module/Components/internal/localization/strings/sv.json +227 -0
- package/lib/module/Components/internal/localization/strings/th.json +227 -0
- package/lib/module/Components/internal/localization/strings/tr.json +227 -0
- package/lib/module/Components/internal/localization/strings/uk.json +227 -0
- package/lib/module/Components/internal/localization/strings/ur-PK.json +227 -0
- package/lib/module/Components/internal/localization/strings/uz.json +227 -0
- package/lib/module/Components/internal/localization/strings/vi.json +227 -0
- package/lib/module/Components/internal/localization/strings/zh-CN.json +227 -0
- package/lib/module/Components/internal/localization/strings/zh-HK.json +227 -0
- package/lib/module/Components/internal/localization/strings/zh-TW.json +227 -0
- package/lib/module/Components/internal/localization/translate.js +28 -0
- package/lib/module/Components/internal/localization/translate.js.map +1 -0
- package/lib/module/Components/internal/localization/types.js +2 -0
- package/lib/module/Components/internal/localization/types.js.map +1 -0
- package/lib/module/Components/internal/localization/usePrimerLocalization.js +22 -0
- package/lib/module/Components/internal/localization/usePrimerLocalization.js.map +1 -0
- package/lib/module/Components/internal/navigation/NavigationContainer.js +180 -0
- package/lib/module/Components/internal/navigation/NavigationContainer.js.map +1 -0
- package/lib/module/Components/internal/navigation/NavigationContext.js +6 -0
- package/lib/module/Components/internal/navigation/NavigationContext.js.map +1 -0
- package/lib/module/Components/internal/navigation/NavigationHeader.js +185 -0
- package/lib/module/Components/internal/navigation/NavigationHeader.js.map +1 -0
- package/lib/module/Components/internal/navigation/NavigationProvider.js +92 -0
- package/lib/module/Components/internal/navigation/NavigationProvider.js.map +1 -0
- package/lib/module/Components/internal/navigation/index.js +9 -0
- package/lib/module/Components/internal/navigation/index.js.map +1 -0
- package/lib/module/Components/internal/navigation/navigationReducer.js +52 -0
- package/lib/module/Components/internal/navigation/navigationReducer.js.map +1 -0
- package/lib/module/Components/internal/navigation/types.js +17 -0
- package/lib/module/Components/internal/navigation/types.js.map +1 -0
- package/lib/module/Components/internal/navigation/useNavigation.js +19 -0
- package/lib/module/Components/internal/navigation/useNavigation.js.map +1 -0
- package/lib/module/Components/internal/navigation/useRoute.js +17 -0
- package/lib/module/Components/internal/navigation/useRoute.js.map +1 -0
- package/lib/module/Components/internal/routeMethodSelection.js +30 -0
- package/lib/module/Components/internal/routeMethodSelection.js.map +1 -0
- package/lib/module/Components/internal/screens/CardFormScreen.js +226 -0
- package/lib/module/Components/internal/screens/CardFormScreen.js.map +1 -0
- package/lib/module/Components/internal/screens/CountrySelectorScreen.js +252 -0
- package/lib/module/Components/internal/screens/CountrySelectorScreen.js.map +1 -0
- package/lib/module/Components/internal/screens/ErrorScreen.js +75 -0
- package/lib/module/Components/internal/screens/ErrorScreen.js.map +1 -0
- package/lib/module/Components/internal/screens/LoadingScreen.js +41 -0
- package/lib/module/Components/internal/screens/LoadingScreen.js.map +1 -0
- package/lib/module/Components/internal/screens/MethodSelectionScreen.js +252 -0
- package/lib/module/Components/internal/screens/MethodSelectionScreen.js.map +1 -0
- package/lib/module/Components/internal/screens/SuccessScreen.js +49 -0
- package/lib/module/Components/internal/screens/SuccessScreen.js.map +1 -0
- package/lib/module/Components/internal/screens/VaultedMethodsScreen.js +525 -0
- package/lib/module/Components/internal/screens/VaultedMethodsScreen.js.map +1 -0
- package/lib/module/Components/internal/screens/assets/check-circle-large.png +0 -0
- package/lib/module/Components/internal/screens/assets/check-circle-large@2x.png +0 -0
- package/lib/module/Components/internal/screens/assets/check-circle-large@3x.png +0 -0
- package/lib/module/Components/internal/screens/assets/check.png +0 -0
- package/lib/module/Components/internal/screens/assets/check@2x.png +0 -0
- package/lib/module/Components/internal/screens/assets/check@3x.png +0 -0
- package/lib/module/Components/internal/screens/assets/chevron-down.png +0 -0
- package/lib/module/Components/internal/screens/assets/chevron-down@2x.png +0 -0
- package/lib/module/Components/internal/screens/assets/chevron-down@3x.png +0 -0
- package/lib/module/Components/internal/screens/assets/close.png +0 -0
- package/lib/module/Components/internal/screens/assets/close@2x.png +0 -0
- package/lib/module/Components/internal/screens/assets/close@3x.png +0 -0
- package/lib/module/Components/internal/screens/assets/done.png +0 -0
- package/lib/module/Components/internal/screens/assets/done@2x.png +0 -0
- package/lib/module/Components/internal/screens/assets/done@3x.png +0 -0
- package/lib/module/Components/internal/screens/assets/edit.png +0 -0
- package/lib/module/Components/internal/screens/assets/edit@2x.png +0 -0
- package/lib/module/Components/internal/screens/assets/edit@3x.png +0 -0
- package/lib/module/Components/internal/screens/assets/error-large.png +0 -0
- package/lib/module/Components/internal/screens/assets/error-large@2x.png +0 -0
- package/lib/module/Components/internal/screens/assets/error-large@3x.png +0 -0
- package/lib/module/Components/internal/screens/assets/lock.png +0 -0
- package/lib/module/Components/internal/screens/assets/lock@2x.png +0 -0
- package/lib/module/Components/internal/screens/assets/lock@3x.png +0 -0
- package/lib/module/Components/internal/screens/constants.js +4 -0
- package/lib/module/Components/internal/screens/constants.js.map +1 -0
- package/lib/module/Components/internal/screens/index.js +8 -0
- package/lib/module/Components/internal/screens/index.js.map +1 -0
- package/lib/module/Components/internal/screens/useBottomSafeArea.js +20 -0
- package/lib/module/Components/internal/screens/useBottomSafeArea.js.map +1 -0
- package/lib/module/Components/internal/screens/useKeyboardHeight.js +32 -0
- package/lib/module/Components/internal/screens/useKeyboardHeight.js.map +1 -0
- package/lib/module/Components/internal/screens/useKeyboardPadding.js +28 -0
- package/lib/module/Components/internal/screens/useKeyboardPadding.js.map +1 -0
- package/lib/module/Components/internal/screens/useStatusScreenHeight.js +14 -0
- package/lib/module/Components/internal/screens/useStatusScreenHeight.js.map +1 -0
- package/lib/module/Components/internal/theme/ThemeContext.js +5 -0
- package/lib/module/Components/internal/theme/ThemeContext.js.map +1 -0
- package/lib/module/Components/internal/theme/index.js +6 -0
- package/lib/module/Components/internal/theme/index.js.map +1 -0
- package/lib/module/Components/internal/theme/merge.js +39 -0
- package/lib/module/Components/internal/theme/merge.js.map +1 -0
- package/lib/module/Components/internal/theme/tokens/dark.js +108 -0
- package/lib/module/Components/internal/theme/tokens/dark.js.map +1 -0
- package/lib/module/Components/internal/theme/tokens/index.js +5 -0
- package/lib/module/Components/internal/theme/tokens/index.js.map +1 -0
- package/lib/module/Components/internal/theme/tokens/light.js +138 -0
- package/lib/module/Components/internal/theme/tokens/light.js.map +1 -0
- package/lib/module/Components/internal/theme/types.js +2 -0
- package/lib/module/Components/internal/theme/types.js.map +1 -0
- package/lib/module/Components/internal/theme/usePrimerTheme.js +14 -0
- package/lib/module/Components/internal/theme/usePrimerTheme.js.map +1 -0
- package/lib/module/Components/internal/ui/CheckoutButton.js +89 -0
- package/lib/module/Components/internal/ui/CheckoutButton.js.map +1 -0
- package/lib/module/Components/internal/ui/PaymentMethodButton.js +169 -0
- package/lib/module/Components/internal/ui/PaymentMethodButton.js.map +1 -0
- package/lib/module/Components/internal/ui/VaultedCardCvvRow.js +110 -0
- package/lib/module/Components/internal/ui/VaultedCardCvvRow.js.map +1 -0
- package/lib/module/Components/internal/ui/index.js +5 -0
- package/lib/module/Components/internal/ui/index.js.map +1 -0
- package/lib/module/Components/internal/utils/errors.js +12 -0
- package/lib/module/Components/internal/utils/errors.js.map +1 -0
- package/lib/module/Components/internal/utils/formatting.js +30 -0
- package/lib/module/Components/internal/utils/formatting.js.map +1 -0
- package/lib/module/Components/status/PrimerErrorScreen.js +69 -0
- package/lib/module/Components/status/PrimerErrorScreen.js.map +1 -0
- package/lib/module/Components/status/PrimerLoadingScreen.js +48 -0
- package/lib/module/Components/status/PrimerLoadingScreen.js.map +1 -0
- package/lib/module/Components/status/PrimerStatusScreenLayout.js +85 -0
- package/lib/module/Components/status/PrimerStatusScreenLayout.js.map +1 -0
- package/lib/module/Components/status/PrimerSuccessScreen.js +43 -0
- package/lib/module/Components/status/PrimerSuccessScreen.js.map +1 -0
- package/lib/module/Components/status/index.js +7 -0
- package/lib/module/Components/status/index.js.map +1 -0
- package/lib/module/Components/types/BillingAddressFormTypes.js +4 -0
- package/lib/module/Components/types/BillingAddressFormTypes.js.map +1 -0
- package/lib/module/Components/types/CardFormTypes.js +4 -0
- package/lib/module/Components/types/CardFormTypes.js.map +1 -0
- package/lib/module/Components/types/CardInputTypes.js +4 -0
- package/lib/module/Components/types/CardInputTypes.js.map +1 -0
- package/lib/module/Components/types/CardNetworkSelection.js +4 -0
- package/lib/module/Components/types/CardNetworkSelection.js.map +1 -0
- package/lib/module/Components/types/PaymentMethodTypes.js +4 -0
- package/lib/module/Components/types/PaymentMethodTypes.js.map +1 -0
- package/lib/module/Components/types/PrimerCardFormTypes.js +4 -0
- package/lib/module/Components/types/PrimerCardFormTypes.js.map +1 -0
- package/lib/module/Components/types/PrimerCheckoutProviderTypes.js +4 -0
- package/lib/module/Components/types/PrimerCheckoutProviderTypes.js.map +1 -0
- package/lib/module/Components/types/PrimerPaymentMethodListTypes.js +4 -0
- package/lib/module/Components/types/PrimerPaymentMethodListTypes.js.map +1 -0
- package/lib/module/Components/types/PrimerPaymentMethodTypes.js +4 -0
- package/lib/module/Components/types/PrimerPaymentMethodTypes.js.map +1 -0
- package/lib/module/Components/types/VaultedPaymentMethodTypes.js +4 -0
- package/lib/module/Components/types/VaultedPaymentMethodTypes.js.map +1 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/AssetsManager.js +22 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.js +6 -6
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js +6 -6
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js +23 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/VaultManager.js +11 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/VaultManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js +6 -6
- package/lib/module/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js.map +1 -1
- package/lib/module/Primer.js +11 -11
- package/lib/module/Primer.js.map +1 -1
- package/lib/module/RNPrimer.js +41 -0
- package/lib/module/RNPrimer.js.map +1 -1
- package/lib/module/assets/images/ic-card-placeholder.png +0 -0
- package/lib/module/assets/images/ic-card-placeholder@2x.png +0 -0
- package/lib/module/assets/images/ic-card-placeholder@3x.png +0 -0
- package/lib/module/assets/images/ic-cvv-hint.png +0 -0
- package/lib/module/assets/images/ic-cvv-hint@2x.png +0 -0
- package/lib/module/assets/images/ic-cvv-hint@3x.png +0 -0
- package/lib/module/assets/images/ic-expiry-calendar.png +0 -0
- package/lib/module/assets/images/ic-expiry-calendar@2x.png +0 -0
- package/lib/module/assets/images/ic-expiry-calendar@3x.png +0 -0
- package/lib/module/index.js +24 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/PrimerCheckoutData.js.map +1 -1
- package/lib/module/specs/NativePrimer.js.map +1 -1
- package/lib/module/specs/NativePrimerViewUtils.js +5 -0
- package/lib/module/specs/NativePrimerViewUtils.js.map +1 -0
- package/lib/module/utils/debounce.js +31 -0
- package/lib/module/utils/debounce.js.map +1 -0
- package/lib/module/utils/index.js +0 -8
- package/lib/module/utils/index.js.map +1 -1
- package/lib/typescript/src/Components/PrimerAcceptedCardNetworks.d.ts +9 -0
- package/lib/typescript/src/Components/PrimerAcceptedCardNetworks.d.ts.map +1 -0
- package/lib/typescript/src/Components/PrimerBillingAddressForm.d.ts +3 -0
- package/lib/typescript/src/Components/PrimerBillingAddressForm.d.ts.map +1 -0
- package/lib/typescript/src/Components/PrimerCardForm.d.ts +3 -0
- package/lib/typescript/src/Components/PrimerCardForm.d.ts.map +1 -0
- package/lib/typescript/src/Components/PrimerCardNetworkSelector.d.ts +5 -0
- package/lib/typescript/src/Components/PrimerCardNetworkSelector.d.ts.map +1 -0
- package/lib/typescript/src/Components/PrimerCheckoutProvider.d.ts +3 -0
- package/lib/typescript/src/Components/PrimerCheckoutProvider.d.ts.map +1 -0
- package/lib/typescript/src/Components/PrimerCheckoutSheet.d.ts +18 -0
- package/lib/typescript/src/Components/PrimerCheckoutSheet.d.ts.map +1 -0
- package/lib/typescript/src/Components/PrimerPaymentMethodList.d.ts +3 -0
- package/lib/typescript/src/Components/PrimerPaymentMethodList.d.ts.map +1 -0
- package/lib/typescript/src/Components/PrimerVaultedPaymentMethod.d.ts +5 -0
- package/lib/typescript/src/Components/PrimerVaultedPaymentMethod.d.ts.map +1 -0
- package/lib/typescript/src/Components/analytics.d.ts +7 -0
- package/lib/typescript/src/Components/analytics.d.ts.map +1 -0
- package/lib/typescript/src/Components/hooks/useCardNetworkDescriptor.d.ts +8 -0
- package/lib/typescript/src/Components/hooks/useCardNetworkDescriptor.d.ts.map +1 -0
- package/lib/typescript/src/Components/hooks/useCardNetworkIcons.d.ts +19 -0
- package/lib/typescript/src/Components/hooks/useCardNetworkIcons.d.ts.map +1 -0
- package/lib/typescript/src/Components/hooks/usePrimerBillingAddressForm.d.ts +13 -0
- package/lib/typescript/src/Components/hooks/usePrimerBillingAddressForm.d.ts.map +1 -0
- package/lib/typescript/src/Components/hooks/usePrimerCardForm.d.ts +12 -0
- package/lib/typescript/src/Components/hooks/usePrimerCardForm.d.ts.map +1 -0
- package/lib/typescript/src/Components/hooks/usePrimerCardNetwork.d.ts +21 -0
- package/lib/typescript/src/Components/hooks/usePrimerCardNetwork.d.ts.map +1 -0
- package/lib/typescript/src/Components/hooks/usePrimerCardNetworkSelection.d.ts +3 -0
- package/lib/typescript/src/Components/hooks/usePrimerCardNetworkSelection.d.ts.map +1 -0
- package/lib/typescript/src/Components/hooks/usePrimerCheckout.d.ts +3 -0
- package/lib/typescript/src/Components/hooks/usePrimerCheckout.d.ts.map +1 -0
- package/lib/typescript/src/Components/hooks/usePrimerPaymentMethod.d.ts +9 -0
- package/lib/typescript/src/Components/hooks/usePrimerPaymentMethod.d.ts.map +1 -0
- package/lib/typescript/src/Components/hooks/usePrimerPaymentMethods.d.ts +3 -0
- package/lib/typescript/src/Components/hooks/usePrimerPaymentMethods.d.ts.map +1 -0
- package/lib/typescript/src/Components/hooks/usePrimerVaultManager.d.ts +3 -0
- package/lib/typescript/src/Components/hooks/usePrimerVaultManager.d.ts.map +1 -0
- package/lib/typescript/src/Components/index.d.ts +36 -0
- package/lib/typescript/src/Components/index.d.ts.map +1 -0
- package/lib/typescript/src/Components/inputs/CountrySelectorRow.d.ts +21 -0
- package/lib/typescript/src/Components/inputs/CountrySelectorRow.d.ts.map +1 -0
- package/lib/typescript/src/Components/inputs/PrimerCVVInput.d.ts +3 -0
- package/lib/typescript/src/Components/inputs/PrimerCVVInput.d.ts.map +1 -0
- package/lib/typescript/src/Components/inputs/PrimerCardNumberInput.d.ts +3 -0
- package/lib/typescript/src/Components/inputs/PrimerCardNumberInput.d.ts.map +1 -0
- package/lib/typescript/src/Components/inputs/PrimerCardholderNameInput.d.ts +3 -0
- package/lib/typescript/src/Components/inputs/PrimerCardholderNameInput.d.ts.map +1 -0
- package/lib/typescript/src/Components/inputs/PrimerExpiryDateInput.d.ts +3 -0
- package/lib/typescript/src/Components/inputs/PrimerExpiryDateInput.d.ts.map +1 -0
- package/lib/typescript/src/Components/inputs/PrimerTextInput.d.ts +4 -0
- package/lib/typescript/src/Components/inputs/PrimerTextInput.d.ts.map +1 -0
- package/lib/typescript/src/Components/inputs/caret.d.ts +5 -0
- package/lib/typescript/src/Components/inputs/caret.d.ts.map +1 -0
- package/lib/typescript/src/Components/inputs/dimensions.d.ts +7 -0
- package/lib/typescript/src/Components/inputs/dimensions.d.ts.map +1 -0
- package/lib/typescript/src/Components/inputs/index.d.ts +8 -0
- package/lib/typescript/src/Components/inputs/index.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/CardNetworkBadge.d.ts +7 -0
- package/lib/typescript/src/Components/internal/CardNetworkBadge.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/Popover.d.ts +15 -0
- package/lib/typescript/src/Components/internal/Popover.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/PrimerCheckoutContext.d.ts +3 -0
- package/lib/typescript/src/Components/internal/PrimerCheckoutContext.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/applePay.d.ts +11 -0
- package/lib/typescript/src/Components/internal/applePay.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/billingAddressOptions.d.ts +9 -0
- package/lib/typescript/src/Components/internal/billingAddressOptions.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/cardFormat.d.ts +20 -0
- package/lib/typescript/src/Components/internal/cardFormat.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/cardNetwork.d.ts +55 -0
- package/lib/typescript/src/Components/internal/cardNetwork.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/cardNetworkIcons.d.ts +10 -0
- package/lib/typescript/src/Components/internal/cardNetworkIcons.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/checkout-flow/CheckoutFlow.d.ts +5 -0
- package/lib/typescript/src/Components/internal/checkout-flow/CheckoutFlow.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/checkout-flow/CheckoutFlowContext.d.ts +7 -0
- package/lib/typescript/src/Components/internal/checkout-flow/CheckoutFlowContext.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/checkout-flow/index.d.ts +2 -0
- package/lib/typescript/src/Components/internal/checkout-flow/index.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/checkout-sheet/CheckoutSheet.d.ts +3 -0
- package/lib/typescript/src/Components/internal/checkout-sheet/CheckoutSheet.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/checkout-sheet/SheetHeightContext.d.ts +14 -0
- package/lib/typescript/src/Components/internal/checkout-sheet/SheetHeightContext.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/checkout-sheet/index.d.ts +5 -0
- package/lib/typescript/src/Components/internal/checkout-sheet/index.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/checkout-sheet/types.d.ts +21 -0
- package/lib/typescript/src/Components/internal/checkout-sheet/types.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/countries.d.ts +751 -0
- package/lib/typescript/src/Components/internal/countries.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/currency/currency-metadata.d.ts +7 -0
- package/lib/typescript/src/Components/internal/currency/currency-metadata.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/currency/formatting.d.ts +10 -0
- package/lib/typescript/src/Components/internal/currency/formatting.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/currency/index.d.ts +3 -0
- package/lib/typescript/src/Components/internal/currency/index.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/debug.d.ts +3 -0
- package/lib/typescript/src/Components/internal/debug.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/flags.d.ts +2 -0
- package/lib/typescript/src/Components/internal/flags.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/form-state/BillingAddressFormStateProvider.d.ts +13 -0
- package/lib/typescript/src/Components/internal/form-state/BillingAddressFormStateProvider.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/form-state/CardFormStateProvider.d.ts +16 -0
- package/lib/typescript/src/Components/internal/form-state/CardFormStateProvider.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/form-state/index.d.ts +3 -0
- package/lib/typescript/src/Components/internal/form-state/index.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/googlePay.d.ts +12 -0
- package/lib/typescript/src/Components/internal/googlePay.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/localization/index.d.ts +6 -0
- package/lib/typescript/src/Components/internal/localization/index.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/localization/interpolation.d.ts +3 -0
- package/lib/typescript/src/Components/internal/localization/interpolation.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/localization/locale-resolver.d.ts +3 -0
- package/lib/typescript/src/Components/internal/localization/locale-resolver.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/localization/strings/index.d.ts +4 -0
- package/lib/typescript/src/Components/internal/localization/strings/index.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/localization/translate.d.ts +3 -0
- package/lib/typescript/src/Components/internal/localization/translate.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/localization/types.d.ts +7 -0
- package/lib/typescript/src/Components/internal/localization/types.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/localization/usePrimerLocalization.d.ts +9 -0
- package/lib/typescript/src/Components/internal/localization/usePrimerLocalization.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/navigation/NavigationContainer.d.ts +8 -0
- package/lib/typescript/src/Components/internal/navigation/NavigationContainer.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/navigation/NavigationContext.d.ts +12 -0
- package/lib/typescript/src/Components/internal/navigation/NavigationContext.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/navigation/NavigationHeader.d.ts +16 -0
- package/lib/typescript/src/Components/internal/navigation/NavigationHeader.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/navigation/NavigationProvider.d.ts +10 -0
- package/lib/typescript/src/Components/internal/navigation/NavigationProvider.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/navigation/index.d.ts +9 -0
- package/lib/typescript/src/Components/internal/navigation/index.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/navigation/navigationReducer.d.ts +3 -0
- package/lib/typescript/src/Components/internal/navigation/navigationReducer.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/navigation/types.d.ts +79 -0
- package/lib/typescript/src/Components/internal/navigation/types.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/navigation/useNavigation.d.ts +9 -0
- package/lib/typescript/src/Components/internal/navigation/useNavigation.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/navigation/useRoute.d.ts +6 -0
- package/lib/typescript/src/Components/internal/navigation/useRoute.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/routeMethodSelection.d.ts +17 -0
- package/lib/typescript/src/Components/internal/routeMethodSelection.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/screens/CardFormScreen.d.ts +2 -0
- package/lib/typescript/src/Components/internal/screens/CardFormScreen.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/screens/CountrySelectorScreen.d.ts +2 -0
- package/lib/typescript/src/Components/internal/screens/CountrySelectorScreen.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/screens/ErrorScreen.d.ts +2 -0
- package/lib/typescript/src/Components/internal/screens/ErrorScreen.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/screens/LoadingScreen.d.ts +2 -0
- package/lib/typescript/src/Components/internal/screens/LoadingScreen.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/screens/MethodSelectionScreen.d.ts +2 -0
- package/lib/typescript/src/Components/internal/screens/MethodSelectionScreen.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/screens/SuccessScreen.d.ts +2 -0
- package/lib/typescript/src/Components/internal/screens/SuccessScreen.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/screens/VaultedMethodsScreen.d.ts +2 -0
- package/lib/typescript/src/Components/internal/screens/VaultedMethodsScreen.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/screens/constants.d.ts +2 -0
- package/lib/typescript/src/Components/internal/screens/constants.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/screens/index.d.ts +6 -0
- package/lib/typescript/src/Components/internal/screens/index.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/screens/useBottomSafeArea.d.ts +2 -0
- package/lib/typescript/src/Components/internal/screens/useBottomSafeArea.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/screens/useKeyboardHeight.d.ts +3 -0
- package/lib/typescript/src/Components/internal/screens/useKeyboardHeight.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/screens/useKeyboardPadding.d.ts +2 -0
- package/lib/typescript/src/Components/internal/screens/useKeyboardPadding.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/screens/useStatusScreenHeight.d.ts +2 -0
- package/lib/typescript/src/Components/internal/screens/useStatusScreenHeight.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/theme/ThemeContext.d.ts +8 -0
- package/lib/typescript/src/Components/internal/theme/ThemeContext.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/theme/index.d.ts +3 -0
- package/lib/typescript/src/Components/internal/theme/index.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/theme/merge.d.ts +5 -0
- package/lib/typescript/src/Components/internal/theme/merge.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/theme/tokens/dark.d.ts +3 -0
- package/lib/typescript/src/Components/internal/theme/tokens/dark.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/theme/tokens/index.d.ts +3 -0
- package/lib/typescript/src/Components/internal/theme/tokens/index.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/theme/tokens/light.d.ts +3 -0
- package/lib/typescript/src/Components/internal/theme/tokens/light.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/theme/types.d.ts +83 -0
- package/lib/typescript/src/Components/internal/theme/types.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/theme/usePrimerTheme.d.ts +3 -0
- package/lib/typescript/src/Components/internal/theme/usePrimerTheme.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/ui/CheckoutButton.d.ts +9 -0
- package/lib/typescript/src/Components/internal/ui/CheckoutButton.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/ui/PaymentMethodButton.d.ts +4 -0
- package/lib/typescript/src/Components/internal/ui/PaymentMethodButton.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/ui/VaultedCardCvvRow.d.ts +13 -0
- package/lib/typescript/src/Components/internal/ui/VaultedCardCvvRow.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/ui/index.d.ts +5 -0
- package/lib/typescript/src/Components/internal/ui/index.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/utils/errors.d.ts +8 -0
- package/lib/typescript/src/Components/internal/utils/errors.d.ts.map +1 -0
- package/lib/typescript/src/Components/internal/utils/formatting.d.ts +18 -0
- package/lib/typescript/src/Components/internal/utils/formatting.d.ts.map +1 -0
- package/lib/typescript/src/Components/status/PrimerErrorScreen.d.ts +12 -0
- package/lib/typescript/src/Components/status/PrimerErrorScreen.d.ts.map +1 -0
- package/lib/typescript/src/Components/status/PrimerLoadingScreen.d.ts +9 -0
- package/lib/typescript/src/Components/status/PrimerLoadingScreen.d.ts.map +1 -0
- package/lib/typescript/src/Components/status/PrimerStatusScreenLayout.d.ts +9 -0
- package/lib/typescript/src/Components/status/PrimerStatusScreenLayout.d.ts.map +1 -0
- package/lib/typescript/src/Components/status/PrimerSuccessScreen.d.ts +10 -0
- package/lib/typescript/src/Components/status/PrimerSuccessScreen.d.ts.map +1 -0
- package/lib/typescript/src/Components/status/index.d.ts +9 -0
- package/lib/typescript/src/Components/status/index.d.ts.map +1 -0
- package/lib/typescript/src/Components/types/BillingAddressFormTypes.d.ts +59 -0
- package/lib/typescript/src/Components/types/BillingAddressFormTypes.d.ts.map +1 -0
- package/lib/typescript/src/Components/types/CardFormTypes.d.ts +71 -0
- package/lib/typescript/src/Components/types/CardFormTypes.d.ts.map +1 -0
- package/lib/typescript/src/Components/types/CardInputTypes.d.ts +82 -0
- package/lib/typescript/src/Components/types/CardInputTypes.d.ts.map +1 -0
- package/lib/typescript/src/Components/types/CardNetworkSelection.d.ts +62 -0
- package/lib/typescript/src/Components/types/CardNetworkSelection.d.ts.map +1 -0
- package/lib/typescript/src/Components/types/PaymentMethodTypes.d.ts +37 -0
- package/lib/typescript/src/Components/types/PaymentMethodTypes.d.ts.map +1 -0
- package/lib/typescript/src/Components/types/PrimerCardFormTypes.d.ts +19 -0
- package/lib/typescript/src/Components/types/PrimerCardFormTypes.d.ts.map +1 -0
- package/lib/typescript/src/Components/types/PrimerCheckoutProviderTypes.d.ts +149 -0
- package/lib/typescript/src/Components/types/PrimerCheckoutProviderTypes.d.ts.map +1 -0
- package/lib/typescript/src/Components/types/PrimerPaymentMethodListTypes.d.ts +23 -0
- package/lib/typescript/src/Components/types/PrimerPaymentMethodListTypes.d.ts.map +1 -0
- package/lib/typescript/src/Components/types/PrimerPaymentMethodTypes.d.ts +51 -0
- package/lib/typescript/src/Components/types/PrimerPaymentMethodTypes.d.ts.map +1 -0
- package/lib/typescript/src/Components/types/VaultedPaymentMethodTypes.d.ts +71 -0
- package/lib/typescript/src/Components/types/VaultedPaymentMethodTypes.d.ts.map +1 -0
- package/lib/typescript/src/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts +17 -2
- package/lib/typescript/src/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts.map +1 -1
- package/lib/typescript/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.d.ts +2 -0
- package/lib/typescript/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.d.ts.map +1 -1
- package/lib/typescript/src/HeadlessUniversalCheckout/Managers/VaultManager.d.ts +1 -0
- package/lib/typescript/src/HeadlessUniversalCheckout/Managers/VaultManager.d.ts.map +1 -1
- package/lib/typescript/src/RNPrimer.d.ts +6 -1
- package/lib/typescript/src/RNPrimer.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +39 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/models/PrimerCheckoutData.d.ts +2 -0
- package/lib/typescript/src/models/PrimerCheckoutData.d.ts.map +1 -1
- package/lib/typescript/src/models/PrimerClientSession.d.ts +20 -0
- package/lib/typescript/src/models/PrimerClientSession.d.ts.map +1 -1
- package/lib/typescript/src/models/PrimerHeadlessUniversalCheckoutPaymentMethod.d.ts +4 -2
- package/lib/typescript/src/models/PrimerHeadlessUniversalCheckoutPaymentMethod.d.ts.map +1 -1
- package/lib/typescript/src/models/PrimerRawData.d.ts +1 -0
- package/lib/typescript/src/models/PrimerRawData.d.ts.map +1 -1
- package/lib/typescript/src/models/PrimerSettings.d.ts +2 -1
- package/lib/typescript/src/models/PrimerSettings.d.ts.map +1 -1
- package/lib/typescript/src/specs/NativePrimer.d.ts +4 -0
- package/lib/typescript/src/specs/NativePrimer.d.ts.map +1 -1
- package/lib/typescript/src/specs/NativePrimerViewUtils.d.ts +7 -0
- package/lib/typescript/src/specs/NativePrimerViewUtils.d.ts.map +1 -0
- package/lib/typescript/src/utils/debounce.d.ts +6 -0
- package/lib/typescript/src/utils/debounce.d.ts.map +1 -0
- package/lib/typescript/src/utils/index.d.ts +0 -1
- package/lib/typescript/src/utils/index.d.ts.map +1 -1
- package/package.json +14 -28
- package/primer-io-react-native.podspec +1 -1
- package/src/Components/PrimerAcceptedCardNetworks.tsx +73 -0
- package/src/Components/PrimerBillingAddressForm.tsx +195 -0
- package/src/Components/PrimerCardForm.tsx +102 -0
- package/src/Components/PrimerCardNetworkSelector.tsx +164 -0
- package/src/Components/PrimerCheckoutProvider.tsx +1092 -0
- package/src/Components/PrimerCheckoutSheet.tsx +37 -0
- package/src/Components/PrimerPaymentMethodList.tsx +82 -0
- package/src/Components/PrimerVaultedPaymentMethod.tsx +234 -0
- package/src/Components/analytics.ts +19 -0
- package/src/Components/hooks/useCardNetworkDescriptor.ts +27 -0
- package/src/Components/hooks/useCardNetworkIcons.ts +57 -0
- package/src/Components/hooks/usePrimerBillingAddressForm.ts +37 -0
- package/src/Components/hooks/usePrimerCardForm.ts +50 -0
- package/src/Components/hooks/usePrimerCardNetwork.ts +74 -0
- package/src/Components/hooks/usePrimerCardNetworkSelection.ts +85 -0
- package/src/Components/hooks/usePrimerCheckout.ts +14 -0
- package/src/Components/hooks/usePrimerPaymentMethod.ts +91 -0
- package/src/Components/hooks/usePrimerPaymentMethods.ts +172 -0
- package/src/Components/hooks/usePrimerVaultManager.ts +114 -0
- package/src/Components/index.ts +77 -0
- package/src/Components/inputs/CountrySelectorRow.tsx +127 -0
- package/src/Components/inputs/PrimerCVVInput.tsx +53 -0
- package/src/Components/inputs/PrimerCardNumberInput.tsx +146 -0
- package/src/Components/inputs/PrimerCardholderNameInput.tsx +30 -0
- package/src/Components/inputs/PrimerExpiryDateInput.tsx +101 -0
- package/src/Components/inputs/PrimerTextInput.tsx +201 -0
- package/src/Components/inputs/caret.ts +37 -0
- package/src/Components/inputs/dimensions.ts +15 -0
- package/src/Components/inputs/index.ts +7 -0
- package/src/Components/internal/CardNetworkBadge.tsx +124 -0
- package/src/Components/internal/Popover.tsx +95 -0
- package/src/Components/internal/PrimerCheckoutContext.ts +4 -0
- package/src/Components/internal/applePay.ts +12 -0
- package/src/Components/internal/billingAddressOptions.ts +47 -0
- package/src/Components/internal/cardFormat.ts +39 -0
- package/src/Components/internal/cardNetwork.ts +128 -0
- package/src/Components/internal/cardNetworkIcons.ts +27 -0
- package/src/Components/internal/checkout-flow/CheckoutFlow.tsx +124 -0
- package/src/Components/internal/checkout-flow/CheckoutFlowContext.ts +16 -0
- package/src/Components/internal/checkout-flow/index.ts +1 -0
- package/src/Components/internal/checkout-sheet/CheckoutSheet.tsx +301 -0
- package/src/Components/internal/checkout-sheet/SheetHeightContext.ts +24 -0
- package/src/Components/internal/checkout-sheet/index.ts +4 -0
- package/src/Components/internal/checkout-sheet/types.ts +27 -0
- package/src/Components/internal/countries.ts +302 -0
- package/src/Components/internal/currency/currencies.json +1 -0
- package/src/Components/internal/currency/currency-metadata.ts +57 -0
- package/src/Components/internal/currency/formatting.ts +26 -0
- package/src/Components/internal/currency/index.ts +2 -0
- package/src/Components/internal/debug.ts +12 -0
- package/src/Components/internal/flags.ts +20 -0
- package/src/Components/internal/form-state/BillingAddressFormStateProvider.tsx +283 -0
- package/src/Components/internal/form-state/CardFormStateProvider.tsx +302 -0
- package/src/Components/internal/form-state/index.ts +2 -0
- package/src/Components/internal/googlePay.ts +13 -0
- package/src/Components/internal/localization/index.ts +5 -0
- package/src/Components/internal/localization/interpolation.ts +13 -0
- package/src/Components/internal/localization/locale-resolver.ts +37 -0
- package/src/Components/internal/localization/strings/ar.json +227 -0
- package/src/Components/internal/localization/strings/az.json +227 -0
- package/src/Components/internal/localization/strings/bg.json +227 -0
- package/src/Components/internal/localization/strings/bs.json +227 -0
- package/src/Components/internal/localization/strings/ca.json +227 -0
- package/src/Components/internal/localization/strings/cs.json +227 -0
- package/src/Components/internal/localization/strings/da.json +227 -0
- package/src/Components/internal/localization/strings/de.json +227 -0
- package/src/Components/internal/localization/strings/el.json +227 -0
- package/src/Components/internal/localization/strings/en.json +256 -0
- package/src/Components/internal/localization/strings/es-AR.json +227 -0
- package/src/Components/internal/localization/strings/es-MX.json +227 -0
- package/src/Components/internal/localization/strings/es.json +227 -0
- package/src/Components/internal/localization/strings/et.json +227 -0
- package/src/Components/internal/localization/strings/fa.json +227 -0
- package/src/Components/internal/localization/strings/fi.json +227 -0
- package/src/Components/internal/localization/strings/fil.json +227 -0
- package/src/Components/internal/localization/strings/fr.json +227 -0
- package/src/Components/internal/localization/strings/he.json +227 -0
- package/src/Components/internal/localization/strings/hi.json +227 -0
- package/src/Components/internal/localization/strings/hr.json +227 -0
- package/src/Components/internal/localization/strings/hu.json +227 -0
- package/src/Components/internal/localization/strings/hy.json +227 -0
- package/src/Components/internal/localization/strings/id.json +227 -0
- package/src/Components/internal/localization/strings/index.ts +69 -0
- package/src/Components/internal/localization/strings/it.json +227 -0
- package/src/Components/internal/localization/strings/ja.json +227 -0
- package/src/Components/internal/localization/strings/ka.json +227 -0
- package/src/Components/internal/localization/strings/kk.json +227 -0
- package/src/Components/internal/localization/strings/ko.json +227 -0
- package/src/Components/internal/localization/strings/ku.json +227 -0
- package/src/Components/internal/localization/strings/ky.json +227 -0
- package/src/Components/internal/localization/strings/lt.json +227 -0
- package/src/Components/internal/localization/strings/lv.json +227 -0
- package/src/Components/internal/localization/strings/mk.json +227 -0
- package/src/Components/internal/localization/strings/ms.json +227 -0
- package/src/Components/internal/localization/strings/nb.json +227 -0
- package/src/Components/internal/localization/strings/nl-BE.json +227 -0
- package/src/Components/internal/localization/strings/nl.json +227 -0
- package/src/Components/internal/localization/strings/pl.json +227 -0
- package/src/Components/internal/localization/strings/pt-BR.json +227 -0
- package/src/Components/internal/localization/strings/pt.json +227 -0
- package/src/Components/internal/localization/strings/ro.json +227 -0
- package/src/Components/internal/localization/strings/ru.json +227 -0
- package/src/Components/internal/localization/strings/sk.json +227 -0
- package/src/Components/internal/localization/strings/sl.json +227 -0
- package/src/Components/internal/localization/strings/sq.json +227 -0
- package/src/Components/internal/localization/strings/sr.json +227 -0
- package/src/Components/internal/localization/strings/sv.json +227 -0
- package/src/Components/internal/localization/strings/th.json +227 -0
- package/src/Components/internal/localization/strings/tr.json +227 -0
- package/src/Components/internal/localization/strings/uk.json +227 -0
- package/src/Components/internal/localization/strings/ur-PK.json +227 -0
- package/src/Components/internal/localization/strings/uz.json +227 -0
- package/src/Components/internal/localization/strings/vi.json +227 -0
- package/src/Components/internal/localization/strings/zh-CN.json +227 -0
- package/src/Components/internal/localization/strings/zh-HK.json +227 -0
- package/src/Components/internal/localization/strings/zh-TW.json +227 -0
- package/src/Components/internal/localization/translate.ts +28 -0
- package/src/Components/internal/localization/types.ts +8 -0
- package/src/Components/internal/localization/usePrimerLocalization.ts +27 -0
- package/src/Components/internal/navigation/NavigationContainer.tsx +176 -0
- package/src/Components/internal/navigation/NavigationContext.ts +21 -0
- package/src/Components/internal/navigation/NavigationHeader.tsx +182 -0
- package/src/Components/internal/navigation/NavigationProvider.tsx +94 -0
- package/src/Components/internal/navigation/index.ts +8 -0
- package/src/Components/internal/navigation/navigationReducer.ts +47 -0
- package/src/Components/internal/navigation/types.ts +48 -0
- package/src/Components/internal/navigation/useNavigation.ts +18 -0
- package/src/Components/internal/navigation/useRoute.ts +18 -0
- package/src/Components/internal/routeMethodSelection.ts +35 -0
- package/src/Components/internal/screens/CardFormScreen.tsx +223 -0
- package/src/Components/internal/screens/CountrySelectorScreen.tsx +253 -0
- package/src/Components/internal/screens/ErrorScreen.tsx +57 -0
- package/src/Components/internal/screens/LoadingScreen.tsx +43 -0
- package/src/Components/internal/screens/MethodSelectionScreen.tsx +251 -0
- package/src/Components/internal/screens/SuccessScreen.tsx +32 -0
- package/src/Components/internal/screens/VaultedMethodsScreen.tsx +528 -0
- package/src/Components/internal/screens/assets/check-circle-large.png +0 -0
- package/src/Components/internal/screens/assets/check-circle-large@2x.png +0 -0
- package/src/Components/internal/screens/assets/check-circle-large@3x.png +0 -0
- package/src/Components/internal/screens/assets/check.png +0 -0
- package/src/Components/internal/screens/assets/check@2x.png +0 -0
- package/src/Components/internal/screens/assets/check@3x.png +0 -0
- package/src/Components/internal/screens/assets/chevron-down.png +0 -0
- package/src/Components/internal/screens/assets/chevron-down@2x.png +0 -0
- package/src/Components/internal/screens/assets/chevron-down@3x.png +0 -0
- package/src/Components/internal/screens/assets/close.png +0 -0
- package/src/Components/internal/screens/assets/close@2x.png +0 -0
- package/src/Components/internal/screens/assets/close@3x.png +0 -0
- package/src/Components/internal/screens/assets/done.png +0 -0
- package/src/Components/internal/screens/assets/done@2x.png +0 -0
- package/src/Components/internal/screens/assets/done@3x.png +0 -0
- package/src/Components/internal/screens/assets/edit.png +0 -0
- package/src/Components/internal/screens/assets/edit@2x.png +0 -0
- package/src/Components/internal/screens/assets/edit@3x.png +0 -0
- package/src/Components/internal/screens/assets/error-large.png +0 -0
- package/src/Components/internal/screens/assets/error-large@2x.png +0 -0
- package/src/Components/internal/screens/assets/error-large@3x.png +0 -0
- package/src/Components/internal/screens/assets/lock.png +0 -0
- package/src/Components/internal/screens/assets/lock@2x.png +0 -0
- package/src/Components/internal/screens/assets/lock@3x.png +0 -0
- package/src/Components/internal/screens/constants.ts +1 -0
- package/src/Components/internal/screens/index.ts +5 -0
- package/src/Components/internal/screens/useBottomSafeArea.ts +22 -0
- package/src/Components/internal/screens/useKeyboardHeight.ts +33 -0
- package/src/Components/internal/screens/useKeyboardPadding.ts +29 -0
- package/src/Components/internal/screens/useStatusScreenHeight.ts +11 -0
- package/src/Components/internal/theme/ThemeContext.ts +9 -0
- package/src/Components/internal/theme/index.ts +12 -0
- package/src/Components/internal/theme/merge.ts +27 -0
- package/src/Components/internal/theme/tokens/dark.ts +89 -0
- package/src/Components/internal/theme/tokens/index.ts +2 -0
- package/src/Components/internal/theme/tokens/light.ts +88 -0
- package/src/Components/internal/theme/types.ts +89 -0
- package/src/Components/internal/theme/usePrimerTheme.ts +15 -0
- package/src/Components/internal/ui/CheckoutButton.tsx +84 -0
- package/src/Components/internal/ui/PaymentMethodButton.tsx +132 -0
- package/src/Components/internal/ui/VaultedCardCvvRow.tsx +114 -0
- package/src/Components/internal/ui/index.ts +4 -0
- package/src/Components/internal/utils/errors.ts +9 -0
- package/src/Components/internal/utils/formatting.ts +32 -0
- package/src/Components/status/PrimerErrorScreen.tsx +77 -0
- package/src/Components/status/PrimerLoadingScreen.tsx +43 -0
- package/src/Components/status/PrimerStatusScreenLayout.tsx +77 -0
- package/src/Components/status/PrimerSuccessScreen.tsx +39 -0
- package/src/Components/status/index.ts +8 -0
- package/src/Components/types/BillingAddressFormTypes.ts +77 -0
- package/src/Components/types/CardFormTypes.ts +83 -0
- package/src/Components/types/CardInputTypes.ts +90 -0
- package/src/Components/types/CardNetworkSelection.ts +64 -0
- package/src/Components/types/PaymentMethodTypes.ts +51 -0
- package/src/Components/types/PrimerCardFormTypes.ts +19 -0
- package/src/Components/types/PrimerCheckoutProviderTypes.ts +168 -0
- package/src/Components/types/PrimerPaymentMethodListTypes.ts +24 -0
- package/src/Components/types/PrimerPaymentMethodTypes.ts +55 -0
- package/src/Components/types/VaultedPaymentMethodTypes.ts +74 -0
- package/src/HeadlessUniversalCheckout/Managers/AssetsManager.ts +38 -2
- package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.ts +6 -6
- package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.ts +6 -6
- package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.ts +31 -0
- package/src/HeadlessUniversalCheckout/Managers/VaultManager.ts +12 -0
- package/src/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.ts +6 -6
- package/src/Primer.ts +11 -11
- package/src/RNPrimer.ts +47 -1
- package/src/assets/images/ic-card-placeholder.png +0 -0
- package/src/assets/images/ic-card-placeholder@2x.png +0 -0
- package/src/assets/images/ic-card-placeholder@3x.png +0 -0
- package/src/assets/images/ic-cvv-hint.png +0 -0
- package/src/assets/images/ic-cvv-hint@2x.png +0 -0
- package/src/assets/images/ic-cvv-hint@3x.png +0 -0
- package/src/assets/images/ic-expiry-calendar.png +0 -0
- package/src/assets/images/ic-expiry-calendar@2x.png +0 -0
- package/src/assets/images/ic-expiry-calendar@3x.png +0 -0
- package/src/index.tsx +102 -2
- package/src/models/PrimerCheckoutData.ts +3 -0
- package/src/models/PrimerClientSession.ts +30 -0
- package/src/models/PrimerHeadlessUniversalCheckoutPaymentMethod.ts +5 -2
- package/src/models/PrimerRawData.ts +1 -0
- package/src/models/PrimerSettings.ts +2 -1
- package/src/specs/NativePrimer.ts +6 -0
- package/src/specs/NativePrimerViewUtils.ts +8 -0
- package/src/utils/debounce.ts +33 -0
- package/src/utils/index.ts +0 -9
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { StyleProp, ViewStyle } from 'react-native';
|
|
2
|
+
|
|
3
|
+
/** Merchant-facing props for the composed `<PrimerCardForm />` component. */
|
|
4
|
+
export interface PrimerCardFormProps {
|
|
5
|
+
/**
|
|
6
|
+
* Fires when the user hits the return key on the last input. The host screen
|
|
7
|
+
* typically routes this to the same handler that its Pay button uses.
|
|
8
|
+
*/
|
|
9
|
+
onSubmit?: () => void;
|
|
10
|
+
/**
|
|
11
|
+
* Focus the card number field after mount. Deferred until interactions settle so
|
|
12
|
+
* the keyboard opens after any nav transition, not during it.
|
|
13
|
+
*/
|
|
14
|
+
autoFocus?: boolean;
|
|
15
|
+
/** Optional outer container style. */
|
|
16
|
+
style?: StyleProp<ViewStyle>;
|
|
17
|
+
/** Test ID root for the form. Nested elements derive suffixed IDs. */
|
|
18
|
+
testID?: string;
|
|
19
|
+
}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { PrimerSettings } from '../../models/PrimerSettings';
|
|
3
|
+
import type { PrimerError } from '../../models/PrimerError';
|
|
4
|
+
import type { PrimerAddress, PrimerClientSession } from '../../models/PrimerClientSession';
|
|
5
|
+
import type { PrimerCheckoutData } from '../../models/PrimerCheckoutData';
|
|
6
|
+
import type { PrimerCheckoutPaymentMethodData } from '../../models/PrimerCheckoutPaymentMethodData';
|
|
7
|
+
import type { PrimerPaymentMethodTokenData } from '../../models/PrimerPaymentMethodTokenData';
|
|
8
|
+
import type { PrimerRawData } from '../../models/PrimerRawData';
|
|
9
|
+
import type { PrimerBinData } from '../../models/PrimerBinData';
|
|
10
|
+
import type { PrimerInputElementType } from '../../models/PrimerInputElementType';
|
|
11
|
+
import type {
|
|
12
|
+
PrimerHeadlessUniversalCheckoutResumeHandler,
|
|
13
|
+
PrimerPaymentCreationHandler,
|
|
14
|
+
} from '../../models/PrimerHandlers';
|
|
15
|
+
import type { IPrimerHeadlessUniversalCheckoutPaymentMethod } from '../../models/PrimerHeadlessUniversalCheckoutPaymentMethod';
|
|
16
|
+
import type { PrimerPaymentMethodAsset, PrimerPaymentMethodNativeView } from '../../models/PrimerPaymentMethodResource';
|
|
17
|
+
import type { PrimerVaultedPaymentMethod } from '../../models/PrimerVaultedPaymentMethod';
|
|
18
|
+
import type { PrimerVaultedPaymentMethodAdditionalData } from '../../models/PrimerVaultedPaymentMethodAdditionalData';
|
|
19
|
+
import type { PrimerThemeOverride } from '../internal/theme/types';
|
|
20
|
+
import type { CardFormErrors } from './CardFormTypes';
|
|
21
|
+
import type { CardNetworkId } from '../internal/cardNetwork';
|
|
22
|
+
|
|
23
|
+
export interface PrimerCheckoutProviderProps {
|
|
24
|
+
clientToken: string;
|
|
25
|
+
settings?: PrimerSettings;
|
|
26
|
+
theme?: PrimerThemeOverride;
|
|
27
|
+
onCheckoutComplete?: (checkoutData: PrimerCheckoutData) => void;
|
|
28
|
+
onTokenizationSuccess?: (
|
|
29
|
+
paymentMethodTokenData: PrimerPaymentMethodTokenData,
|
|
30
|
+
handler: PrimerHeadlessUniversalCheckoutResumeHandler
|
|
31
|
+
) => void;
|
|
32
|
+
onBeforePaymentCreate?: (
|
|
33
|
+
checkoutPaymentMethodData: PrimerCheckoutPaymentMethodData,
|
|
34
|
+
handler: PrimerPaymentCreationHandler
|
|
35
|
+
) => void;
|
|
36
|
+
onError?: (error: PrimerError, checkoutData: PrimerCheckoutData | null) => void;
|
|
37
|
+
children?: ReactNode;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/** Outcome of the most recent payment attempt within a checkout session. */
|
|
41
|
+
export type PaymentOutcome =
|
|
42
|
+
| { status: 'success'; data: PrimerCheckoutData }
|
|
43
|
+
| { status: 'error'; error: PrimerError; data: PrimerCheckoutData | null };
|
|
44
|
+
|
|
45
|
+
/** Validation + metadata state surfaced by the active raw-data manager. */
|
|
46
|
+
export interface CardFormState {
|
|
47
|
+
isValid: boolean;
|
|
48
|
+
errors: CardFormErrors;
|
|
49
|
+
binData: PrimerBinData | null;
|
|
50
|
+
metadata: unknown;
|
|
51
|
+
requiredFields: PrimerInputElementType[];
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export interface PrimerCheckoutContextValue {
|
|
55
|
+
// --- Session state ---
|
|
56
|
+
isReady: boolean;
|
|
57
|
+
/** Init-time errors only (before `isReady`). Payment-time errors land in `paymentOutcome`. */
|
|
58
|
+
error: PrimerError | null;
|
|
59
|
+
clientSession: PrimerClientSession | null;
|
|
60
|
+
/**
|
|
61
|
+
* Ordered list of card networks the merchant accepts for the session, e.g. `['VISA', 'MASTERCARD']`.
|
|
62
|
+
* `null` until the bridge resolves or when the session has no `paymentMethod`; `[]` when explicitly empty.
|
|
63
|
+
*/
|
|
64
|
+
acceptedCardNetworks: string[] | null;
|
|
65
|
+
availablePaymentMethods: IPrimerHeadlessUniversalCheckoutPaymentMethod[];
|
|
66
|
+
paymentMethodResources: Array<PrimerPaymentMethodAsset | PrimerPaymentMethodNativeView>;
|
|
67
|
+
isLoadingResources: boolean;
|
|
68
|
+
resourcesError: Error | null;
|
|
69
|
+
/** Settings the merchant passed to the provider. Needed for UI-option toggles. */
|
|
70
|
+
settings: PrimerSettings | undefined;
|
|
71
|
+
|
|
72
|
+
// --- Native-UI methods (Google Pay today; Apple Pay / PayPal / web-redirect APMs later) ---
|
|
73
|
+
/**
|
|
74
|
+
* Which native-UI method is currently in flight, or `null`. Backs each method's `isLoading` flag.
|
|
75
|
+
* Merchants use `usePrimerPaymentMethod(type)`, not this directly.
|
|
76
|
+
*/
|
|
77
|
+
nativeUiInFlightType: string | null;
|
|
78
|
+
/** Start a native-UI method by payment-method type. Rejects if the method is unavailable. */
|
|
79
|
+
startNativeUI: (paymentMethodType: string) => Promise<void>;
|
|
80
|
+
/** Cancel an in-flight native-UI attempt (best-effort; cannot force-close the system sheet). */
|
|
81
|
+
cancelNativeUI: (paymentMethodType: string) => void;
|
|
82
|
+
|
|
83
|
+
// --- Active payment attempt ---
|
|
84
|
+
/** Outcome of the most recent payment attempt; `null` before any submit. */
|
|
85
|
+
paymentOutcome: PaymentOutcome | null;
|
|
86
|
+
/** The payment method whose raw-data manager is currently active. */
|
|
87
|
+
activeMethod: string | null;
|
|
88
|
+
/** Validation + metadata state from the active raw-data manager. */
|
|
89
|
+
cardFormState: CardFormState;
|
|
90
|
+
|
|
91
|
+
// --- Vaulted payment methods ---
|
|
92
|
+
vaultedMethods: PrimerVaultedPaymentMethod[];
|
|
93
|
+
/** Brand-icon URIs keyed by vaulted-method id, resolved via AssetsManager at fetch time. */
|
|
94
|
+
vaultedIconUrisById: Record<string, string | undefined>;
|
|
95
|
+
isLoadingVaulted: boolean;
|
|
96
|
+
vaultedError: Error | null;
|
|
97
|
+
/** Id of the user-selected vaulted method, or `null` to fall back to the first method. */
|
|
98
|
+
activeVaultedMethodId: string | null;
|
|
99
|
+
/** When set to `'expanded'`, force the method-selection view to show APMs even after the shopper has switched vaulted method. Cleared automatically on subsequent selection changes. */
|
|
100
|
+
vaultDisplayOverride: 'expanded' | null;
|
|
101
|
+
/**
|
|
102
|
+
* Whether the merchant's session has `paymentMethods.PAYMENT_CARD.options.captureVaultedCardCvv = true`.
|
|
103
|
+
* Read once after `vm.configure()` resolves and cached for the provider's lifetime — flag flips
|
|
104
|
+
* mid-session are picked up on the next provider re-initialization.
|
|
105
|
+
*/
|
|
106
|
+
requiresVaultedCardCvv: boolean;
|
|
107
|
+
/**
|
|
108
|
+
* Whether the inline CVV input row is currently rendered inside the active vault tile.
|
|
109
|
+
* Lifted to the provider so the sheet-height calculation in `MethodSelectionScreen` can react
|
|
110
|
+
* (the entered CVV digits stay local to `PrimerVaultedPaymentMethod` for security).
|
|
111
|
+
*/
|
|
112
|
+
cvvInputVisible: boolean;
|
|
113
|
+
|
|
114
|
+
// --- Actions ---
|
|
115
|
+
/** Register/deregister the active payment method. Pass `null` to tear down. */
|
|
116
|
+
setActiveMethod: (method: string | null) => void;
|
|
117
|
+
/**
|
|
118
|
+
* Shopper-picked card network for co-badged cards. `null` until the shopper makes
|
|
119
|
+
* a choice in the popover. Persists across re-renders / hook callers (lives on the
|
|
120
|
+
* provider, not on individual hook instances).
|
|
121
|
+
*/
|
|
122
|
+
selectedCardNetwork: CardNetworkId | null;
|
|
123
|
+
/** Forward raw data to the active native manager. */
|
|
124
|
+
setRawData: (data: PrimerRawData) => Promise<void>;
|
|
125
|
+
/**
|
|
126
|
+
* Forward a billing address to the active native manager. Dispatched as a separate
|
|
127
|
+
* client-session action, independent of raw card data, before submit.
|
|
128
|
+
*/
|
|
129
|
+
setBillingAddress: (address: PrimerAddress) => Promise<void>;
|
|
130
|
+
/**
|
|
131
|
+
* Set the shopper-chosen card network on the active card form (co-badged cards).
|
|
132
|
+
* The provider merges the pick into every subsequent `setRawData` payload, so the
|
|
133
|
+
* choice survives keystroke updates.
|
|
134
|
+
*/
|
|
135
|
+
selectCardNetwork: (identifier: CardNetworkId) => Promise<void>;
|
|
136
|
+
/** Fire the active manager's submit. First-attempt path. */
|
|
137
|
+
submit: () => Promise<void>;
|
|
138
|
+
/**
|
|
139
|
+
* Retry the last submit. Reconfigures the manager, re-sends the last raw data, then submits.
|
|
140
|
+
* The reconfigure is defensive for iOS: `RawDataManager.swift:237` nullifies the delegate on
|
|
141
|
+
* successful tokenization, so any post-tokenize failure would otherwise have no delegate
|
|
142
|
+
* to surface a retry's outcome. Reconfigure rebuilds the delegate binding. Harmless on Android.
|
|
143
|
+
*/
|
|
144
|
+
retry: () => Promise<void>;
|
|
145
|
+
/** Clear the last payment outcome (e.g., when leaving the error screen). */
|
|
146
|
+
clearPaymentOutcome: () => void;
|
|
147
|
+
/**
|
|
148
|
+
* Start the payment flow for a vaulted payment method by id.
|
|
149
|
+
* If `additionalData` is supplied (e.g. `{ cvv }` for CVV-recapture), the request is sent through
|
|
150
|
+
* the with-additional-data bridge path; otherwise the no-CVV bridge path is used.
|
|
151
|
+
*/
|
|
152
|
+
payFromVault: (
|
|
153
|
+
vaultedPaymentMethodId: string,
|
|
154
|
+
additionalData?: PrimerVaultedPaymentMethodAdditionalData
|
|
155
|
+
) => Promise<void>;
|
|
156
|
+
/** Make `id` the active vaulted method. No-op if it already matches the current active id. */
|
|
157
|
+
selectVaultedMethodId: (id: string) => void;
|
|
158
|
+
/** Force the method-selection view back to expanded layout while preserving the user's selection. */
|
|
159
|
+
requestExpandedVaultDisplay: () => void;
|
|
160
|
+
/** Toggle the inline CVV input row's visibility on the active vault tile. */
|
|
161
|
+
setCvvInputVisible: (visible: boolean) => void;
|
|
162
|
+
/**
|
|
163
|
+
* Delete a vaulted payment method server-side, refresh the local list, and promote the first
|
|
164
|
+
* remaining method into the active slot if the deleted one was active. Matches iOS / Android
|
|
165
|
+
* Checkout Components behaviour. Rejects with `{ errorId, description }` on bridge failure.
|
|
166
|
+
*/
|
|
167
|
+
deleteVaultedPaymentMethod: (id: string) => Promise<void>;
|
|
168
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ViewStyle } from 'react-native';
|
|
2
|
+
import type { PaymentMethodItem } from './PaymentMethodTypes';
|
|
3
|
+
|
|
4
|
+
export interface PrimerPaymentMethodListProps {
|
|
5
|
+
/** Pre-fetched payment methods. When provided, the list skips its internal usePrimerPaymentMethods() call. */
|
|
6
|
+
data?: PaymentMethodItem[];
|
|
7
|
+
/** Whitelist: only show these payment method types */
|
|
8
|
+
include?: string[];
|
|
9
|
+
/** Blacklist: hide these payment method types */
|
|
10
|
+
exclude?: string[];
|
|
11
|
+
/** Called when a payment method button is tapped */
|
|
12
|
+
onSelect: (method: PaymentMethodItem) => void;
|
|
13
|
+
/** Called when payment methods finish loading */
|
|
14
|
+
onLoad?: (methods: PaymentMethodItem[]) => void;
|
|
15
|
+
/** Container style override */
|
|
16
|
+
style?: ViewStyle;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface PaymentMethodButtonProps {
|
|
20
|
+
/** The payment method data to render */
|
|
21
|
+
item: PaymentMethodItem;
|
|
22
|
+
/** Tap handler */
|
|
23
|
+
onPress: () => void;
|
|
24
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { PaymentOutcome } from './PrimerCheckoutProviderTypes';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Why a payment method is unavailable. Coarse `{ code, message }`; the codes are method-specific
|
|
5
|
+
* (e.g. Google Pay: `NOT_READY` / `PLATFORM_NOT_SUPPORTED`).
|
|
6
|
+
*/
|
|
7
|
+
export interface PaymentMethodAvailabilityError {
|
|
8
|
+
code: string;
|
|
9
|
+
message: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* A native-UI method (Google Pay today; Apple Pay / PayPal / web-redirect APMs later). `start()`
|
|
14
|
+
* presents the native sheet / browser; the outcome arrives via `paymentOutcome`. Render nothing
|
|
15
|
+
* when `!isAvailable`.
|
|
16
|
+
*/
|
|
17
|
+
export interface NativeUiPaymentMethod {
|
|
18
|
+
kind: 'nativeUi';
|
|
19
|
+
readonly isAvailable: boolean;
|
|
20
|
+
/** True from `start()` until a terminal outcome (a cancel counts as an error). */
|
|
21
|
+
readonly isLoading: boolean;
|
|
22
|
+
readonly paymentOutcome: PaymentOutcome | null;
|
|
23
|
+
readonly availabilityError: PaymentMethodAvailabilityError | null;
|
|
24
|
+
/** Present the native UI. Rejects if `!isAvailable`. Outcome arrives via `paymentOutcome`. */
|
|
25
|
+
start(): Promise<void>;
|
|
26
|
+
/** Cancel an in-flight attempt (best-effort; cannot force-close a system sheet). */
|
|
27
|
+
cancel(): void;
|
|
28
|
+
clearPaymentOutcome(): void;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* The card method. `start()` opens the default card form; the field-level surface (custom layouts,
|
|
33
|
+
* validation, co-badge) lives on `usePrimerCardForm` / `PrimerCardForm`. Use one or the other for a
|
|
34
|
+
* given card on screen — not both.
|
|
35
|
+
*/
|
|
36
|
+
export interface CardPaymentMethod {
|
|
37
|
+
kind: 'card';
|
|
38
|
+
readonly isAvailable: boolean;
|
|
39
|
+
/** Activate the card form's raw-data manager. Does not navigate — render the form yourself. */
|
|
40
|
+
start(): void;
|
|
41
|
+
clearPaymentOutcome(): void;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Can't be driven here: either a type not wired into Components yet, OR a known method that isn't
|
|
46
|
+
* in the current session (its category is unknown). Either way it can't be started — render
|
|
47
|
+
* nothing / disabled.
|
|
48
|
+
*/
|
|
49
|
+
export interface UnsupportedPaymentMethod {
|
|
50
|
+
kind: 'unsupported';
|
|
51
|
+
readonly isAvailable: false;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/** Return value of {@link usePrimerPaymentMethod}; narrow on `kind`. */
|
|
55
|
+
export type UsePrimerPaymentMethodReturn = NativeUiPaymentMethod | CardPaymentMethod | UnsupportedPaymentMethod;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { StyleProp, ViewStyle } from 'react-native';
|
|
2
|
+
import type { PrimerVaultedPaymentMethod } from '../../models/PrimerVaultedPaymentMethod';
|
|
3
|
+
import type { PrimerVaultedPaymentMethodAdditionalData } from '../../models/PrimerVaultedPaymentMethodAdditionalData';
|
|
4
|
+
|
|
5
|
+
/** View-model for a single vaulted payment method, with derived display fields. */
|
|
6
|
+
export interface VaultedPaymentMethodItem {
|
|
7
|
+
id: string;
|
|
8
|
+
paymentMethodType: string;
|
|
9
|
+
paymentInstrumentType: string;
|
|
10
|
+
/** Human-readable cardholder name (card vaults only). */
|
|
11
|
+
cardholderName?: string;
|
|
12
|
+
/** Last 4 digits as a string, masked-format ready. Card / bank-account vaults only. */
|
|
13
|
+
last4?: string;
|
|
14
|
+
/** Two-digit zero-padded expiry month. Card vaults only. */
|
|
15
|
+
expiryMonth?: string;
|
|
16
|
+
/** Two-digit expiry year (e.g. "26"). Card vaults only. */
|
|
17
|
+
expiryYear?: string;
|
|
18
|
+
/** Title-cased brand name for display (e.g. "Mastercard"). Card vaults only. */
|
|
19
|
+
brandName?: string;
|
|
20
|
+
/** Local file URI for the brand icon, resolved via AssetsManager. Card vaults only. */
|
|
21
|
+
brandIconUri?: string;
|
|
22
|
+
/** The underlying native method, preserved for consumers that need raw fields. */
|
|
23
|
+
rawMethod: PrimerVaultedPaymentMethod;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/** UI mode for the vault block on the method-selection surface. */
|
|
27
|
+
export type VaultDisplayMode = 'expanded' | 'lite';
|
|
28
|
+
|
|
29
|
+
export interface UsePrimerVaultManagerReturn {
|
|
30
|
+
vaultedMethods: VaultedPaymentMethodItem[];
|
|
31
|
+
/** The method that should be displayed when only one row is rendered. `null` when none exist. */
|
|
32
|
+
primaryMethod: VaultedPaymentMethodItem | null;
|
|
33
|
+
/** First method on the session — the "default" — independent of any user override. */
|
|
34
|
+
originalDefault: VaultedPaymentMethodItem | null;
|
|
35
|
+
/** The method the Pay button should charge — user-selected if any, else originalDefault. */
|
|
36
|
+
activeMethod: VaultedPaymentMethodItem | null;
|
|
37
|
+
/** `'lite'` once the shopper has actively switched off the default, unless they revert via Show other ways to pay. */
|
|
38
|
+
vaultDisplayMode: VaultDisplayMode;
|
|
39
|
+
isLoading: boolean;
|
|
40
|
+
error: Error | null;
|
|
41
|
+
/**
|
|
42
|
+
* Whether the merchant's session has CVV-recapture enabled for vaulted cards
|
|
43
|
+
* (`paymentMethods.PAYMENT_CARD.options.captureVaultedCardCvv = true`).
|
|
44
|
+
*/
|
|
45
|
+
requiresVaultedCardCvv: boolean;
|
|
46
|
+
/** Whether the inline CVV input row is currently rendered inside the active vault tile. */
|
|
47
|
+
cvvInputVisible: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Start payment for `activeMethod`. No-op when none is available.
|
|
50
|
+
* If `additionalData` is supplied (e.g. `{ cvv }` for CVV-recapture), it is forwarded to the
|
|
51
|
+
* native vault-payment bridge.
|
|
52
|
+
*/
|
|
53
|
+
pay: (additionalData?: PrimerVaultedPaymentMethodAdditionalData) => Promise<void>;
|
|
54
|
+
/** Start payment for a specific vaulted method id, with optional CVV-recapture additional data. */
|
|
55
|
+
payById: (id: string, additionalData?: PrimerVaultedPaymentMethodAdditionalData) => Promise<void>;
|
|
56
|
+
/** Make `id` the active method. No-op when `id` matches the current active method id. */
|
|
57
|
+
selectVaultedMethodId: (id: string) => void;
|
|
58
|
+
/** Override `vaultDisplayMode` to `'expanded'` while preserving `activeMethod`. */
|
|
59
|
+
requestExpandedVaultDisplay: () => void;
|
|
60
|
+
/**
|
|
61
|
+
* Delete a vaulted payment method. On success the local list refreshes and, if the deleted
|
|
62
|
+
* method was active, the first remaining method becomes the new active selection. Rejects
|
|
63
|
+
* with `{ errorId, description }` on bridge failure so callers can show a toast.
|
|
64
|
+
*/
|
|
65
|
+
deleteVaultedPaymentMethod: (id: string) => Promise<void>;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export interface PrimerVaultedPaymentMethodProps {
|
|
69
|
+
/** Optional override for the row data. Defaults to `usePrimerVaultManager().primaryMethod`. */
|
|
70
|
+
data?: VaultedPaymentMethodItem | null;
|
|
71
|
+
/** Optional override for the Pay handler. Defaults to the hook's `pay`. */
|
|
72
|
+
onPay?: (method: VaultedPaymentMethodItem) => void;
|
|
73
|
+
style?: StyleProp<ViewStyle>;
|
|
74
|
+
}
|
|
@@ -1,6 +1,25 @@
|
|
|
1
|
-
import type { IPrimerPaymentMethodResource as Resource } from '../../models/PrimerPaymentMethodResource';
|
|
2
|
-
import type { IPrimerAsset as Asset } from '../../models/PrimerPaymentMethodResource';
|
|
3
1
|
import { NativeModules } from 'react-native';
|
|
2
|
+
import type {
|
|
3
|
+
IPrimerAsset as Asset,
|
|
4
|
+
PrimerPaymentMethodAsset,
|
|
5
|
+
PrimerPaymentMethodNativeView,
|
|
6
|
+
} from '../../models/PrimerPaymentMethodResource';
|
|
7
|
+
|
|
8
|
+
type Resource = PrimerPaymentMethodAsset | PrimerPaymentMethodNativeView;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Raw bridge shape emitted by native `getCardNetworkTraits`.
|
|
12
|
+
* iOS resolves `null` for networks without validation (bancontact, cartesBancaires, eftpos, unknown);
|
|
13
|
+
* Android always resolves a dict (Type.OTHER fallback) — consumers coalesce both to a default descriptor.
|
|
14
|
+
*/
|
|
15
|
+
export interface CardNetworkTraits {
|
|
16
|
+
cardNetwork: string;
|
|
17
|
+
displayName: string;
|
|
18
|
+
panLengths: number[];
|
|
19
|
+
gapPattern: number[];
|
|
20
|
+
cvvLength: number;
|
|
21
|
+
cvvLabel: string;
|
|
22
|
+
}
|
|
4
23
|
|
|
5
24
|
const { RNTPrimerHeadlessUniversalCheckoutAssetsManager } = NativeModules;
|
|
6
25
|
|
|
@@ -26,6 +45,23 @@ class PrimerHeadlessUniversalCheckoutAssetsManager {
|
|
|
26
45
|
});
|
|
27
46
|
}
|
|
28
47
|
|
|
48
|
+
async getCardNetworkTraits(cardNetwork: string): Promise<CardNetworkTraits | null> {
|
|
49
|
+
return new Promise(async (resolve, reject) => {
|
|
50
|
+
try {
|
|
51
|
+
const data = await RNTPrimerHeadlessUniversalCheckoutAssetsManager.getCardNetworkTraits(cardNetwork);
|
|
52
|
+
resolve(data ?? null);
|
|
53
|
+
} catch (err) {
|
|
54
|
+
console.error(err);
|
|
55
|
+
reject(err);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
async getOrderedAllowedCardNetworks(): Promise<string[] | null> {
|
|
61
|
+
const data = await RNTPrimerHeadlessUniversalCheckoutAssetsManager.getOrderedAllowedCardNetworks();
|
|
62
|
+
return (data?.networks ?? null) as string[] | null;
|
|
63
|
+
}
|
|
64
|
+
|
|
29
65
|
/**
|
|
30
66
|
* @deprecated Use getPaymentMethodResource instead
|
|
31
67
|
*/
|
|
@@ -98,37 +98,37 @@ export class PrimerHeadlessUniversalCheckoutAchManager {
|
|
|
98
98
|
|
|
99
99
|
private async configureListeners(props: AchManagerProps): Promise<void> {
|
|
100
100
|
if (props?.onStep) {
|
|
101
|
-
this.addListener('onStep', (data) => {
|
|
101
|
+
void this.addListener('onStep', (data) => {
|
|
102
102
|
props.onStep?.(data);
|
|
103
103
|
});
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
if (props?.onInvalid) {
|
|
107
|
-
this.addListener('onInvalid', (data) => {
|
|
107
|
+
void this.addListener('onInvalid', (data) => {
|
|
108
108
|
props.onInvalid?.(data);
|
|
109
109
|
});
|
|
110
110
|
}
|
|
111
111
|
|
|
112
112
|
if (props?.onError) {
|
|
113
|
-
this.addListener('onError', (data) => {
|
|
113
|
+
void this.addListener('onError', (data) => {
|
|
114
114
|
props.onError?.(data);
|
|
115
115
|
});
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
if (props?.onValid) {
|
|
119
|
-
this.addListener('onValid', (data) => {
|
|
119
|
+
void this.addListener('onValid', (data) => {
|
|
120
120
|
props.onValid?.(data);
|
|
121
121
|
});
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
if (props?.onValidating) {
|
|
125
|
-
this.addListener('onValidating', (data) => {
|
|
125
|
+
void this.addListener('onValidating', (data) => {
|
|
126
126
|
props.onValidating?.(data);
|
|
127
127
|
});
|
|
128
128
|
}
|
|
129
129
|
|
|
130
130
|
if (props?.onValidationError) {
|
|
131
|
-
this.addListener('onValidationError', (data) => {
|
|
131
|
+
void this.addListener('onValidationError', (data) => {
|
|
132
132
|
props.onValidationError?.(data);
|
|
133
133
|
});
|
|
134
134
|
}
|
package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.ts
CHANGED
|
@@ -119,37 +119,37 @@ export class PrimerHeadlessUniversalCheckoutComponentWithRedirectManager {
|
|
|
119
119
|
|
|
120
120
|
private async configureListeners(props: ComponentWithRedirectManagerProps): Promise<void> {
|
|
121
121
|
if (props?.onStep) {
|
|
122
|
-
this.addListener('onStep', (data) => {
|
|
122
|
+
void this.addListener('onStep', (data) => {
|
|
123
123
|
props.onStep?.(data);
|
|
124
124
|
});
|
|
125
125
|
}
|
|
126
126
|
|
|
127
127
|
if (props?.onInvalid) {
|
|
128
|
-
this.addListener('onInvalid', (data) => {
|
|
128
|
+
void this.addListener('onInvalid', (data) => {
|
|
129
129
|
props.onInvalid?.(data);
|
|
130
130
|
});
|
|
131
131
|
}
|
|
132
132
|
|
|
133
133
|
if (props?.onError) {
|
|
134
|
-
this.addListener('onError', (data) => {
|
|
134
|
+
void this.addListener('onError', (data) => {
|
|
135
135
|
props.onError?.(data);
|
|
136
136
|
});
|
|
137
137
|
}
|
|
138
138
|
|
|
139
139
|
if (props?.onValid) {
|
|
140
|
-
this.addListener('onValid', (data) => {
|
|
140
|
+
void this.addListener('onValid', (data) => {
|
|
141
141
|
props.onValid?.(data);
|
|
142
142
|
});
|
|
143
143
|
}
|
|
144
144
|
|
|
145
145
|
if (props?.onValidating) {
|
|
146
|
-
this.addListener('onValidating', (data) => {
|
|
146
|
+
void this.addListener('onValidating', (data) => {
|
|
147
147
|
props.onValidating?.(data);
|
|
148
148
|
});
|
|
149
149
|
}
|
|
150
150
|
|
|
151
151
|
if (props?.onValidationError) {
|
|
152
|
-
this.addListener('onValidationError', (data) => {
|
|
152
|
+
void this.addListener('onValidationError', (data) => {
|
|
153
153
|
props.onValidationError?.(data);
|
|
154
154
|
});
|
|
155
155
|
}
|
|
@@ -5,6 +5,7 @@ import type { PrimerInitializationData } from '../../../models/PrimerInitializat
|
|
|
5
5
|
import { PrimerError } from '../../../models/PrimerError';
|
|
6
6
|
import type { PrimerInputElementType } from '../../../models/PrimerInputElementType';
|
|
7
7
|
import type { PrimerBinData } from '../../../models/PrimerBinData';
|
|
8
|
+
import type { PrimerAddress } from '../../../models/PrimerClientSession';
|
|
8
9
|
|
|
9
10
|
const { RNTPrimerHeadlessUniversalCheckoutRawDataManager } = NativeModules;
|
|
10
11
|
const eventEmitter = new NativeEventEmitter(RNTPrimerHeadlessUniversalCheckoutRawDataManager);
|
|
@@ -52,6 +53,14 @@ class PrimerHeadlessUniversalCheckoutRawDataManager {
|
|
|
52
53
|
}
|
|
53
54
|
|
|
54
55
|
async configureListeners(): Promise<void> {
|
|
56
|
+
// Drop previous subscriptions so calling configure() multiple times (e.g. the
|
|
57
|
+
// reconfigure-on-retry pattern in Checkout Components) doesn't stack duplicate
|
|
58
|
+
// event handlers on the shared module emitter.
|
|
59
|
+
for (const sub of this.subscriptions) {
|
|
60
|
+
sub.remove();
|
|
61
|
+
}
|
|
62
|
+
this.subscriptions = [];
|
|
63
|
+
|
|
55
64
|
//@ts-ignore
|
|
56
65
|
if (this.options?.onMetadataChange) {
|
|
57
66
|
const sub = await this.addListener('onMetadataChange', (data) => {
|
|
@@ -148,6 +157,28 @@ class PrimerHeadlessUniversalCheckoutRawDataManager {
|
|
|
148
157
|
});
|
|
149
158
|
}
|
|
150
159
|
|
|
160
|
+
setBillingAddress(address: PrimerAddress): Promise<void> {
|
|
161
|
+
return new Promise(async (resolve, reject) => {
|
|
162
|
+
if (this.options?.paymentMethodType) {
|
|
163
|
+
try {
|
|
164
|
+
await RNTPrimerHeadlessUniversalCheckoutRawDataManager.setBillingAddress(JSON.stringify(address));
|
|
165
|
+
resolve();
|
|
166
|
+
} catch (err) {
|
|
167
|
+
reject(err);
|
|
168
|
+
}
|
|
169
|
+
} else {
|
|
170
|
+
const err = new PrimerError(
|
|
171
|
+
'manager-not-configured',
|
|
172
|
+
undefined,
|
|
173
|
+
'HeadlessUniversalCheckoutRawDataManager has not been configured',
|
|
174
|
+
'Call HeadlessUniversalCheckoutRawDataManager.configure before calling this function.',
|
|
175
|
+
undefined
|
|
176
|
+
);
|
|
177
|
+
reject(err);
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
|
|
151
182
|
cleanUp(): Promise<void> {
|
|
152
183
|
return new Promise(async (resolve, reject) => {
|
|
153
184
|
if (this.options?.paymentMethodType) {
|
|
@@ -96,6 +96,18 @@ class PrimerHeadlessUniversalCheckoutVaultManager {
|
|
|
96
96
|
}
|
|
97
97
|
});
|
|
98
98
|
}
|
|
99
|
+
|
|
100
|
+
async requiresVaultedCardCvv(): Promise<boolean> {
|
|
101
|
+
return new Promise(async (resolve, reject) => {
|
|
102
|
+
try {
|
|
103
|
+
const value: boolean = await RNPrimerHeadlessUniversalCheckoutVaultManager.requiresVaultedCardCvv();
|
|
104
|
+
resolve(value);
|
|
105
|
+
} catch (err) {
|
|
106
|
+
console.error(err);
|
|
107
|
+
reject(err);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}
|
|
99
111
|
}
|
|
100
112
|
|
|
101
113
|
// Convert accountNumberLastFourDigits to accountNumberLast4Digits when present
|
|
@@ -23,14 +23,14 @@ import type {
|
|
|
23
23
|
const tokenizationHandler: PrimerHeadlessUniversalCheckoutResumeHandler = {
|
|
24
24
|
continueWithNewClientToken: async (newClientToken: string) => {
|
|
25
25
|
try {
|
|
26
|
-
RNPrimerHeadlessUniversalCheckout.handleTokenizationNewClientToken(newClientToken);
|
|
26
|
+
await RNPrimerHeadlessUniversalCheckout.handleTokenizationNewClientToken(newClientToken);
|
|
27
27
|
} catch (err) {
|
|
28
28
|
console.error(err);
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
|
|
32
32
|
complete: () => {
|
|
33
|
-
RNPrimerHeadlessUniversalCheckout.handleCompleteFlow();
|
|
33
|
+
void RNPrimerHeadlessUniversalCheckout.handleCompleteFlow();
|
|
34
34
|
},
|
|
35
35
|
};
|
|
36
36
|
|
|
@@ -39,14 +39,14 @@ const tokenizationHandler: PrimerHeadlessUniversalCheckoutResumeHandler = {
|
|
|
39
39
|
const resumeHandler: PrimerHeadlessUniversalCheckoutResumeHandler = {
|
|
40
40
|
continueWithNewClientToken: async (newClientToken: string) => {
|
|
41
41
|
try {
|
|
42
|
-
RNPrimerHeadlessUniversalCheckout.handleResumeWithNewClientToken(newClientToken);
|
|
42
|
+
await RNPrimerHeadlessUniversalCheckout.handleResumeWithNewClientToken(newClientToken);
|
|
43
43
|
} catch (err) {
|
|
44
44
|
console.error(err);
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
47
|
|
|
48
48
|
complete: () => {
|
|
49
|
-
RNPrimerHeadlessUniversalCheckout.handleCompleteFlow();
|
|
49
|
+
void RNPrimerHeadlessUniversalCheckout.handleCompleteFlow();
|
|
50
50
|
},
|
|
51
51
|
};
|
|
52
52
|
|
|
@@ -55,7 +55,7 @@ const resumeHandler: PrimerHeadlessUniversalCheckoutResumeHandler = {
|
|
|
55
55
|
const paymentCreationHandler: PrimerPaymentCreationHandler = {
|
|
56
56
|
abortPaymentCreation: async (errorMessage: string) => {
|
|
57
57
|
try {
|
|
58
|
-
RNPrimerHeadlessUniversalCheckout.handlePaymentCreationAbort(errorMessage);
|
|
58
|
+
await RNPrimerHeadlessUniversalCheckout.handlePaymentCreationAbort(errorMessage);
|
|
59
59
|
} catch (err) {
|
|
60
60
|
console.error(err);
|
|
61
61
|
}
|
|
@@ -63,7 +63,7 @@ const paymentCreationHandler: PrimerPaymentCreationHandler = {
|
|
|
63
63
|
|
|
64
64
|
continuePaymentCreation: async () => {
|
|
65
65
|
try {
|
|
66
|
-
RNPrimerHeadlessUniversalCheckout.handlePaymentCreationContinue();
|
|
66
|
+
await RNPrimerHeadlessUniversalCheckout.handlePaymentCreationContinue();
|
|
67
67
|
} catch (err) {
|
|
68
68
|
console.error(err);
|
|
69
69
|
}
|