@primer-io/react-native 2.16.2 → 2.17.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/.project +2 -2
- package/android/build.gradle +2 -3
- package/android/gradle.properties +1 -1
- package/android/src/main/java/com/primerioreactnative/PrimerCardNumberEditTextManager.kt +0 -15
- package/android/src/main/java/com/primerioreactnative/PrimerRN.kt +13 -34
- package/android/src/main/java/com/primerioreactnative/PrimerRNEventListener.kt +23 -8
- package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckout.kt +20 -120
- package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckoutListener.kt +61 -69
- package/android/src/main/java/com/primerioreactnative/ReactNativePackage.kt +6 -2
- package/android/src/main/java/com/primerioreactnative/{huc → components}/assets/AssetsManager.kt +5 -14
- package/android/src/main/java/com/primerioreactnative/components/assets/CardNetworkImageFileProvider.kt +23 -0
- package/android/src/main/java/com/primerioreactnative/components/assets/PaymentMethodAssetFileProvider.kt +24 -0
- package/android/src/main/java/com/primerioreactnative/components/datamodels/core/PrimerRNHeadlessUniversalCheckoutPaymentMethod.kt +25 -0
- package/android/src/main/java/com/primerioreactnative/components/datamodels/core/PrimerRawPaymentMethodType.kt +9 -0
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/asset/PrimerRNAsset.kt +99 -0
- package/android/src/main/java/com/primerioreactnative/{huc/datamodels/manager/raw/card/PrimerRNRawCardData.kt → components/datamodels/manager/raw/card/PrimerRNCardData.kt} +6 -8
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/cardRedirect/PrimerRNCardRedirectData.kt +19 -0
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/phoneNumber/PrimerRNPhoneNumberData.kt +14 -0
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/retailOutlets/PrimerRNRetailOutletData.kt +12 -0
- package/android/src/main/java/com/primerioreactnative/{huc → components}/datamodels/manager/raw/retailOutlets/RNRetailOutletsList.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/components/events/PrimerHeadlessUniversalCheckoutEvent.kt +17 -0
- package/android/src/main/java/com/primerioreactnative/{huc → components}/events/PrimerHeadlessUniversalCheckoutRawDataManagerEvent.kt +1 -2
- package/android/src/main/java/com/primerioreactnative/components/manager/asset/PrimerRNHeadlessUniversalCheckoutAssetManager.kt +131 -0
- package/android/src/main/java/com/primerioreactnative/components/manager/nativeUi/PrimerRNHeadlessUniversalCheckoutNativeUiManager.kt +87 -0
- package/android/src/main/java/com/primerioreactnative/{huc → components}/manager/raw/PrimerRNHeadlessUniversalCheckoutRawManager.kt +72 -68
- package/android/src/main/java/com/primerioreactnative/{huc → components}/manager/raw/PrimerRNHeadlessUniversalCheckoutRawManagerListener.kt +13 -5
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerErrorRN.kt +5 -4
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerInputValidationErrorRN.kt +11 -0
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerSettingsRN.kt +0 -8
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerPaymentMethodOptionsRN.kt +0 -4
- package/android/src/main/java/com/primerioreactnative/utils/PrimerHeadlessUniversalCheckoutImplementedRNCallbacks.kt +15 -15
- package/android/src/main/java/com/primerioreactnative/utils/PrimerImplementedRNCallbacks.kt +7 -7
- package/ios/Podfile.lock +1 -1
- package/ios/ReactNative.xcodeproj/project.pbxproj +20 -20
- package/ios/Sources/DataModels/ImplementedRNCallbacks.swift +75 -0
- package/ios/{DataModels/RNTPrimerCardRedirectData.swift → Sources/DataModels/PrimerBancontactCardRedirectData+Extension.swift} +5 -8
- package/ios/{DataModels/RNTPrimerCardData.swift → Sources/DataModels/PrimerCardData+Extension.swift} +2 -5
- package/ios/Sources/DataModels/PrimerHeadlessUniversalCheckout_PaymentMethod.swift +20 -0
- package/ios/{DataModels/RNTPrimerPhoneNumberData.swift → Sources/DataModels/PrimerPhoneNumberData+Extension.swift} +0 -1
- package/ios/{DataModels/RNTPrimerRetailerData.swift → Sources/DataModels/PrimerRawRetailerData+Extension.swift} +3 -4
- package/ios/Sources/DataModels/PrimerSettings+Extensions.swift +82 -0
- package/ios/{DataModels → Sources/DataModels}/PrimerThemeRN.swift +0 -0
- package/ios/Sources/DataModels/RNTNativeError.swift +22 -0
- package/ios/Sources/DataModels/RNTPrimerPaymentMethodAsset.swift +65 -0
- package/ios/Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNTNativeUIManager.m +19 -0
- package/ios/Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNTNativeUIManager.swift +63 -0
- package/ios/{Headless Universal Checkout → Sources/Headless Universal Checkout/Managers/Payment Method Managers}/RNTPrimerCardNumberInputElementManager.m +0 -0
- package/ios/Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNTRawDataManager.m +23 -0
- package/ios/{Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckoutRawDataManager.swift → Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNTRawDataManager.swift } +36 -31
- package/ios/Sources/Headless Universal Checkout/Managers/RNTAssetsManager.m +24 -0
- package/ios/Sources/Headless Universal Checkout/Managers/RNTAssetsManager.swift +107 -0
- package/ios/Sources/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.m +41 -0
- package/ios/Sources/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.swift +498 -0
- package/ios/Sources/Helpers/Encodable+Extension.swift +17 -0
- package/ios/Sources/Helpers/Error+Extensions.swift +39 -0
- package/ios/Sources/Helpers/UIColor+Extensions.swift +32 -0
- package/ios/Sources/Helpers/UIImage+Extensions.swift +32 -0
- package/ios/Sources/RNTPrimer.m +80 -0
- package/ios/{RNTPrimer.swift → Sources/RNTPrimer.swift} +20 -34
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/AssetsManager.js +59 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +1 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js +35 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js.map +1 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js +151 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js.map +1 -0
- package/lib/commonjs/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js +270 -0
- package/lib/commonjs/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js.map +1 -0
- package/lib/commonjs/{headless_checkout → HeadlessUniversalCheckout}/RNPrimerHeadlessUniversalCheckout.js +7 -81
- package/lib/commonjs/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js.map +1 -0
- package/lib/commonjs/HeadlessUniversalCheckout/types.js +34 -0
- package/lib/commonjs/HeadlessUniversalCheckout/types.js.map +1 -0
- package/lib/commonjs/Primer.js +52 -52
- package/lib/commonjs/Primer.js.map +1 -1
- package/lib/commonjs/PrimerInput.js.map +1 -1
- package/lib/commonjs/RNPrimer.js +2 -12
- package/lib/commonjs/RNPrimer.js.map +1 -1
- package/lib/commonjs/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js.map +1 -1
- package/lib/commonjs/index.js +63 -71
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/models/PrimerAsset.js +2 -0
- package/lib/commonjs/models/PrimerAsset.js.map +1 -0
- package/lib/commonjs/models/PrimerCheckoutAdditionalInfo.js.map +1 -1
- package/lib/commonjs/models/PrimerCheckoutData.js.map +1 -1
- package/lib/commonjs/models/PrimerCheckoutPaymentMethodData.js.map +1 -1
- package/lib/commonjs/models/PrimerClientSession.js.map +1 -1
- package/lib/commonjs/models/PrimerCountryCode.js.map +1 -1
- package/lib/commonjs/models/PrimerCurrencyCode.js.map +1 -1
- package/lib/commonjs/models/PrimerError.js +4 -4
- package/lib/commonjs/models/PrimerError.js.map +1 -1
- package/lib/commonjs/models/PrimerHandlers.js +2 -0
- package/lib/commonjs/models/PrimerHandlers.js.map +1 -0
- package/lib/commonjs/models/PrimerHeadlessUniversalCheckoutPaymentMethod.js +2 -0
- package/lib/commonjs/models/PrimerHeadlessUniversalCheckoutPaymentMethod.js.map +1 -0
- package/lib/commonjs/models/PrimerImplementedRNCallbacks.js +2 -0
- package/lib/commonjs/models/PrimerImplementedRNCallbacks.js.map +1 -0
- package/lib/commonjs/models/PrimerInitializationData.js.map +1 -1
- package/lib/commonjs/models/PrimerInputElementType.js +20 -0
- package/lib/commonjs/models/PrimerInputElementType.js.map +1 -0
- package/lib/commonjs/models/PrimerInterfaces.js.map +1 -1
- package/lib/commonjs/models/PrimerPaymentMethodManagerCategory.js +14 -0
- package/lib/commonjs/models/PrimerPaymentMethodManagerCategory.js.map +1 -0
- package/lib/commonjs/models/PrimerPaymentMethodTokenData.js.map +1 -1
- package/lib/commonjs/models/PrimerRawData.js.map +1 -1
- package/lib/commonjs/models/PrimerSessionIntent.js.map +1 -1
- package/lib/commonjs/models/PrimerSettings.js.map +1 -1
- package/lib/commonjs/models/PrimerTheme.js.map +1 -1
- package/lib/commonjs/models/RetailOutletsRetail.js.map +1 -1
- package/lib/commonjs/utils/index.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/AssetsManager.js +52 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +1 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js +28 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js.map +1 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js +144 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js.map +1 -0
- package/lib/module/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js +261 -0
- package/lib/module/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js.map +1 -0
- package/lib/module/{headless_checkout → HeadlessUniversalCheckout}/RNPrimerHeadlessUniversalCheckout.js +7 -81
- package/lib/module/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js.map +1 -0
- package/lib/module/HeadlessUniversalCheckout/types.js +33 -0
- package/lib/module/HeadlessUniversalCheckout/types.js.map +1 -0
- package/lib/module/Primer.js +52 -52
- package/lib/module/Primer.js.map +1 -1
- package/lib/module/PrimerInput.js.map +1 -1
- package/lib/module/RNPrimer.js +2 -12
- package/lib/module/RNPrimer.js.map +1 -1
- package/lib/module/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js.map +1 -1
- package/lib/module/index.js +15 -9
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/PrimerAsset.js +2 -0
- package/lib/module/models/PrimerAsset.js.map +1 -0
- package/lib/module/models/PrimerCheckoutAdditionalInfo.js.map +1 -1
- package/lib/module/models/PrimerCheckoutData.js.map +1 -1
- package/lib/module/models/PrimerCheckoutPaymentMethodData.js.map +1 -1
- package/lib/module/models/PrimerClientSession.js.map +1 -1
- package/lib/module/models/PrimerCountryCode.js.map +1 -1
- package/lib/module/models/PrimerCurrencyCode.js.map +1 -1
- package/lib/module/models/PrimerError.js +4 -4
- package/lib/module/models/PrimerError.js.map +1 -1
- package/lib/module/models/PrimerHandlers.js +2 -0
- package/lib/module/models/PrimerHandlers.js.map +1 -0
- package/lib/module/models/PrimerHeadlessUniversalCheckoutPaymentMethod.js +2 -0
- package/lib/module/models/PrimerHeadlessUniversalCheckoutPaymentMethod.js.map +1 -0
- package/lib/module/models/PrimerImplementedRNCallbacks.js +2 -0
- package/lib/module/models/PrimerImplementedRNCallbacks.js.map +1 -0
- package/lib/module/models/PrimerInitializationData.js.map +1 -1
- package/lib/module/models/PrimerInputElementType.js +13 -0
- package/lib/module/models/PrimerInputElementType.js.map +1 -0
- package/lib/module/models/PrimerInterfaces.js.map +1 -1
- package/lib/module/models/PrimerPaymentMethodManagerCategory.js +7 -0
- package/lib/module/models/PrimerPaymentMethodManagerCategory.js.map +1 -0
- package/lib/module/models/PrimerPaymentMethodTokenData.js.map +1 -1
- package/lib/module/models/PrimerRawData.js.map +1 -1
- package/lib/module/models/PrimerSessionIntent.js.map +1 -1
- package/lib/module/models/PrimerSettings.js.map +1 -1
- package/lib/module/models/PrimerTheme.js.map +1 -1
- package/lib/module/models/RetailOutletsRetail.js.map +1 -1
- package/lib/module/utils/index.js.map +1 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts +9 -0
- package/lib/typescript/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts.map +1 -0
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.d.ts +8 -0
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.d.ts.map +1 -0
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.d.ts +29 -0
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.d.ts.map +1 -0
- package/lib/typescript/{headless_checkout → HeadlessUniversalCheckout}/PrimerHeadlessUniversalCheckout.d.ts +4 -5
- package/lib/typescript/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.d.ts.map +1 -0
- package/lib/typescript/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.d.ts +18 -0
- package/lib/typescript/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.d.ts.map +1 -0
- package/lib/typescript/HeadlessUniversalCheckout/types.d.ts +1 -0
- package/lib/typescript/HeadlessUniversalCheckout/types.d.ts.map +1 -0
- package/lib/typescript/Primer.d.ts +1 -0
- package/lib/typescript/Primer.d.ts.map +1 -0
- package/lib/typescript/PrimerInput.d.ts +5 -4
- package/lib/typescript/PrimerInput.d.ts.map +1 -0
- package/lib/typescript/RNPrimer.d.ts +3 -4
- package/lib/typescript/RNPrimer.d.ts.map +1 -0
- package/lib/typescript/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.d.ts +1 -0
- package/lib/typescript/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +18 -9
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/models/PrimerAsset.d.ts +14 -0
- package/lib/typescript/models/PrimerAsset.d.ts.map +1 -0
- package/lib/typescript/models/PrimerCheckoutAdditionalInfo.d.ts +7 -6
- package/lib/typescript/models/PrimerCheckoutAdditionalInfo.d.ts.map +1 -0
- package/lib/typescript/models/PrimerCheckoutData.d.ts +3 -2
- package/lib/typescript/models/PrimerCheckoutData.d.ts.map +1 -0
- package/lib/typescript/models/PrimerCheckoutPaymentMethodData.d.ts +2 -1
- package/lib/typescript/models/PrimerCheckoutPaymentMethodData.d.ts.map +1 -0
- package/lib/typescript/models/PrimerClientSession.d.ts +6 -5
- package/lib/typescript/models/PrimerClientSession.d.ts.map +1 -0
- package/lib/typescript/models/PrimerCountryCode.d.ts +2 -1
- package/lib/typescript/models/PrimerCountryCode.d.ts.map +1 -0
- package/lib/typescript/models/PrimerCurrencyCode.d.ts +2 -1
- package/lib/typescript/models/PrimerCurrencyCode.d.ts.map +1 -0
- package/lib/typescript/models/PrimerError.d.ts +3 -1
- package/lib/typescript/models/PrimerError.d.ts.map +1 -0
- package/lib/typescript/models/PrimerHandlers.d.ts +22 -0
- package/lib/typescript/models/PrimerHandlers.d.ts.map +1 -0
- package/lib/typescript/models/PrimerHeadlessUniversalCheckoutPaymentMethod.d.ts +6 -0
- package/lib/typescript/models/PrimerHeadlessUniversalCheckoutPaymentMethod.d.ts.map +1 -0
- package/lib/typescript/models/PrimerImplementedRNCallbacks.d.ts +17 -0
- package/lib/typescript/models/PrimerImplementedRNCallbacks.d.ts.map +1 -0
- package/lib/typescript/models/PrimerInitializationData.d.ts +3 -2
- package/lib/typescript/models/PrimerInitializationData.d.ts.map +1 -0
- package/lib/typescript/models/PrimerInputElementType.d.ts +12 -0
- package/lib/typescript/models/PrimerInputElementType.d.ts.map +1 -0
- package/lib/typescript/models/PrimerInterfaces.d.ts +2 -20
- package/lib/typescript/models/PrimerInterfaces.d.ts.map +1 -0
- package/lib/typescript/models/PrimerPaymentMethodManagerCategory.d.ts +6 -0
- package/lib/typescript/models/PrimerPaymentMethodManagerCategory.d.ts.map +1 -0
- package/lib/typescript/models/PrimerPaymentMethodTokenData.d.ts +2 -1
- package/lib/typescript/models/PrimerPaymentMethodTokenData.d.ts.map +1 -0
- package/lib/typescript/models/PrimerRawData.d.ts +7 -10
- package/lib/typescript/models/PrimerRawData.d.ts.map +1 -0
- package/lib/typescript/models/PrimerSessionIntent.d.ts +1 -0
- package/lib/typescript/models/PrimerSessionIntent.d.ts.map +1 -0
- package/lib/typescript/models/PrimerSettings.d.ts +30 -16
- package/lib/typescript/models/PrimerSettings.d.ts.map +1 -0
- package/lib/typescript/models/PrimerTheme.d.ts +3 -2
- package/lib/typescript/models/PrimerTheme.d.ts.map +1 -0
- package/lib/typescript/models/RetailOutletsRetail.d.ts +2 -1
- package/lib/typescript/models/RetailOutletsRetail.d.ts.map +1 -0
- package/lib/typescript/utils/index.d.ts +1 -0
- package/lib/typescript/utils/index.d.ts.map +1 -0
- package/package.json +8 -7
- package/primer-io-react-native.podspec +1 -2
- package/src/HeadlessUniversalCheckout/Managers/AssetsManager.ts +56 -0
- package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.ts +31 -0
- package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.ts +166 -0
- package/src/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.ts +333 -0
- package/src/{headless_checkout → HeadlessUniversalCheckout}/RNPrimerHeadlessUniversalCheckout.ts +37 -128
- package/src/HeadlessUniversalCheckout/types.ts +32 -0
- package/src/Primer.ts +49 -60
- package/src/RNPrimer.ts +2 -18
- package/src/index.tsx +43 -29
- package/src/models/PrimerAsset.ts +13 -0
- package/src/models/PrimerError.ts +3 -1
- package/src/models/PrimerHandlers.ts +25 -0
- package/src/models/PrimerHeadlessUniversalCheckoutPaymentMethod.ts +5 -0
- package/src/models/PrimerImplementedRNCallbacks.ts +20 -0
- package/src/models/PrimerInputElementType.ts +11 -0
- package/src/models/PrimerInterfaces.ts +1 -28
- package/src/models/PrimerPaymentMethodManagerCategory.ts +5 -0
- package/src/models/PrimerRawData.ts +6 -10
- package/src/models/PrimerSettings.ts +40 -26
- package/android/src/main/java/com/primerioreactnative/huc/datamodels/manager/raw/cardRedirect/PrimerRNPRawCardRedirectData.kt +0 -20
- package/android/src/main/java/com/primerioreactnative/huc/datamodels/manager/raw/phoneNumber/PrimerRNRawPhoneNumberData.kt +0 -14
- package/android/src/main/java/com/primerioreactnative/huc/datamodels/manager/raw/retailOutlets/PrimerRNRawRetailOutletData.kt +0 -12
- package/android/src/main/java/com/primerioreactnative/huc/events/PrimerHeadlessUniversalCheckoutEvent.kt +0 -15
- package/ios/DataModels/ImplementedRNCallbacks.swift +0 -62
- package/ios/DataModels/PrimerErrorRN.swift +0 -35
- package/ios/DataModels/PrimerSettingsRN.swift +0 -84
- package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.m +0 -62
- package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.swift +0 -501
- package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.m +0 -14
- package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.swift +0 -117
- package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckoutRawDataManager.m +0 -23
- package/ios/RNTPrimer.m +0 -59
- package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckout.js +0 -288
- package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckout.js.map +0 -1
- package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckoutRawDataManager.js +0 -91
- package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckoutRawDataManager.js.map +0 -1
- package/lib/commonjs/headless_checkout/RNPrimerHeadlessUniversalCheckout.js.map +0 -1
- package/lib/commonjs/headless_checkout/RNPrimerHeadlessUniversalCheckoutRawDataManager.js +0 -91
- package/lib/commonjs/headless_checkout/RNPrimerHeadlessUniversalCheckoutRawDataManager.js.map +0 -1
- package/lib/commonjs/headless_checkout/types.js +0 -6
- package/lib/commonjs/headless_checkout/types.js.map +0 -1
- package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckout.js +0 -279
- package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckout.js.map +0 -1
- package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckoutRawDataManager.js +0 -83
- package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckoutRawDataManager.js.map +0 -1
- package/lib/module/headless_checkout/RNPrimerHeadlessUniversalCheckout.js.map +0 -1
- package/lib/module/headless_checkout/RNPrimerHeadlessUniversalCheckoutRawDataManager.js +0 -84
- package/lib/module/headless_checkout/RNPrimerHeadlessUniversalCheckoutRawDataManager.js.map +0 -1
- package/lib/module/headless_checkout/types.js +0 -2
- package/lib/module/headless_checkout/types.js.map +0 -1
- package/lib/typescript/headless_checkout/PrimerHeadlessUniversalCheckoutRawDataManager.d.ts +0 -18
- package/lib/typescript/headless_checkout/RNPrimerHeadlessUniversalCheckout.d.ts +0 -22
- package/lib/typescript/headless_checkout/RNPrimerHeadlessUniversalCheckoutRawDataManager.d.ts +0 -14
- package/lib/typescript/headless_checkout/types.d.ts +0 -22
- package/src/headless_checkout/PrimerHeadlessUniversalCheckout.ts +0 -358
- package/src/headless_checkout/PrimerHeadlessUniversalCheckoutRawDataManager.ts +0 -109
- package/src/headless_checkout/RNPrimerHeadlessUniversalCheckoutRawDataManager.ts +0 -104
- package/src/headless_checkout/types.ts +0 -32
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
package com.primerioreactnative.components.manager.asset
|
|
2
|
+
|
|
3
|
+
import androidx.core.content.ContextCompat
|
|
4
|
+
import com.facebook.react.bridge.Promise
|
|
5
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
|
+
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
7
|
+
import com.facebook.react.bridge.ReactMethod
|
|
8
|
+
import com.primerioreactnative.components.assets.AssetsManager
|
|
9
|
+
import com.primerioreactnative.components.assets.AssetsManager.drawableToBitmap
|
|
10
|
+
import com.primerioreactnative.components.assets.CardNetworkImageFileProvider.getFileForCardNetworkAsset
|
|
11
|
+
import com.primerioreactnative.components.datamodels.manager.asset.PrimerCardNetworkAsset
|
|
12
|
+
import com.primerioreactnative.components.datamodels.manager.asset.PrimerRNPaymentMethodAssets
|
|
13
|
+
import com.primerioreactnative.components.datamodels.manager.asset.toPrimerRNPaymentMethodLogo
|
|
14
|
+
import com.primerioreactnative.datamodels.ErrorTypeRN
|
|
15
|
+
import com.primerioreactnative.utils.convertJsonToMap
|
|
16
|
+
import com.primerioreactnative.utils.errorTo
|
|
17
|
+
import io.primer.android.ExperimentalPrimerApi
|
|
18
|
+
import io.primer.android.components.SdkUninitializedException
|
|
19
|
+
import io.primer.android.components.ui.assets.PrimerHeadlessUniversalCheckoutAssetsManager
|
|
20
|
+
import io.primer.android.ui.CardNetwork
|
|
21
|
+
import kotlinx.serialization.encodeToString
|
|
22
|
+
import kotlinx.serialization.json.Json
|
|
23
|
+
import org.json.JSONObject
|
|
24
|
+
|
|
25
|
+
@ExperimentalPrimerApi
|
|
26
|
+
internal class PrimerRNHeadlessUniversalCheckoutAssetManager(
|
|
27
|
+
private val reactContext: ReactApplicationContext,
|
|
28
|
+
) : ReactContextBaseJavaModule(reactContext) {
|
|
29
|
+
|
|
30
|
+
override fun getName() = "RNTPrimerHeadlessUniversalCheckoutAssetsManager"
|
|
31
|
+
|
|
32
|
+
@ReactMethod
|
|
33
|
+
fun getCardNetworkImage(
|
|
34
|
+
cardNetworkStr: String,
|
|
35
|
+
promise: Promise,
|
|
36
|
+
) {
|
|
37
|
+
val cardNetwork =
|
|
38
|
+
CardNetwork.Type.values().find { it.name.equals(cardNetworkStr, ignoreCase = true) }
|
|
39
|
+
when (cardNetwork) {
|
|
40
|
+
null -> {
|
|
41
|
+
val exception =
|
|
42
|
+
ErrorTypeRN.NativeBridgeFailed errorTo "Failed to find asset of $cardNetworkStr."
|
|
43
|
+
promise.reject(exception.errorId, exception.description)
|
|
44
|
+
}
|
|
45
|
+
else -> try {
|
|
46
|
+
PrimerHeadlessUniversalCheckoutAssetsManager.getCardNetworkImage(cardNetwork)
|
|
47
|
+
.let { resourceId ->
|
|
48
|
+
val file = getFileForCardNetworkAsset(reactContext, cardNetworkStr)
|
|
49
|
+
AssetsManager.saveBitmapToFile(
|
|
50
|
+
file,
|
|
51
|
+
drawableToBitmap(ContextCompat.getDrawable(reactContext, resourceId)!!),
|
|
52
|
+
)
|
|
53
|
+
promise.resolve(
|
|
54
|
+
convertJsonToMap(
|
|
55
|
+
JSONObject(
|
|
56
|
+
Json.encodeToString(
|
|
57
|
+
PrimerCardNetworkAsset("file://${file.absolutePath}")
|
|
58
|
+
)
|
|
59
|
+
)
|
|
60
|
+
)
|
|
61
|
+
)
|
|
62
|
+
}
|
|
63
|
+
} catch (e: SdkUninitializedException) {
|
|
64
|
+
promise.reject(ErrorTypeRN.UnitializedSdkSession.errorId, e.message, e)
|
|
65
|
+
} catch (e: Exception) {
|
|
66
|
+
promise.reject(ErrorTypeRN.NativeBridgeFailed.errorId, e.message, e)
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
@ReactMethod
|
|
72
|
+
fun getPaymentMethodAsset(paymentMethodTypeStr: String, promise: Promise) {
|
|
73
|
+
try {
|
|
74
|
+
val paymentMethodAsset =
|
|
75
|
+
PrimerHeadlessUniversalCheckoutAssetsManager.getPaymentMethodAsset(
|
|
76
|
+
reactContext,
|
|
77
|
+
paymentMethodTypeStr
|
|
78
|
+
)
|
|
79
|
+
promise.resolve(
|
|
80
|
+
convertJsonToMap(
|
|
81
|
+
JSONObject().apply {
|
|
82
|
+
put(
|
|
83
|
+
"paymentMethodAsset",
|
|
84
|
+
Json.encodeToString(
|
|
85
|
+
paymentMethodAsset.toPrimerRNPaymentMethodLogo(
|
|
86
|
+
reactContext,
|
|
87
|
+
paymentMethodTypeStr
|
|
88
|
+
)
|
|
89
|
+
)
|
|
90
|
+
)
|
|
91
|
+
}
|
|
92
|
+
)
|
|
93
|
+
)
|
|
94
|
+
} catch (e: SdkUninitializedException) {
|
|
95
|
+
promise.reject(ErrorTypeRN.UnitializedSdkSession.errorId, e.message, e)
|
|
96
|
+
} catch (e: Exception) {
|
|
97
|
+
val exception =
|
|
98
|
+
ErrorTypeRN.NativeBridgeFailed errorTo "Failed to find asset of $paymentMethodTypeStr for this session."
|
|
99
|
+
promise.reject(exception.errorId, exception.description)
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
@ReactMethod
|
|
104
|
+
fun getPaymentMethodAssets(promise: Promise) {
|
|
105
|
+
try {
|
|
106
|
+
val paymentMethodAssets =
|
|
107
|
+
PrimerHeadlessUniversalCheckoutAssetsManager.getPaymentMethodAssets(reactContext)
|
|
108
|
+
if (paymentMethodAssets.isEmpty()) {
|
|
109
|
+
val exception =
|
|
110
|
+
ErrorTypeRN.NativeBridgeFailed errorTo "Failed to find assets for this session"
|
|
111
|
+
promise.reject(exception.errorId, exception.description)
|
|
112
|
+
}
|
|
113
|
+
promise.resolve(
|
|
114
|
+
convertJsonToMap(
|
|
115
|
+
JSONObject(
|
|
116
|
+
Json.encodeToString(
|
|
117
|
+
PrimerRNPaymentMethodAssets(paymentMethodAssets.map {
|
|
118
|
+
it.toPrimerRNPaymentMethodLogo(
|
|
119
|
+
reactContext,
|
|
120
|
+
it.paymentMethodType
|
|
121
|
+
)
|
|
122
|
+
})
|
|
123
|
+
)
|
|
124
|
+
)
|
|
125
|
+
)
|
|
126
|
+
)
|
|
127
|
+
} catch (e: SdkUninitializedException) {
|
|
128
|
+
promise.reject(ErrorTypeRN.UnitializedSdkSession.errorId, e.message, e)
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
package com.primerioreactnative.components.manager.nativeUi
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.Promise
|
|
4
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
5
|
+
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
6
|
+
import com.facebook.react.bridge.ReactMethod
|
|
7
|
+
import com.primerioreactnative.datamodels.ErrorTypeRN
|
|
8
|
+
import com.primerioreactnative.datamodels.PrimerErrorRN
|
|
9
|
+
import com.primerioreactnative.utils.errorTo
|
|
10
|
+
import io.primer.android.ExperimentalPrimerApi
|
|
11
|
+
import io.primer.android.PrimerSessionIntent
|
|
12
|
+
import io.primer.android.components.SdkUninitializedException
|
|
13
|
+
import io.primer.android.components.domain.exception.UnsupportedPaymentMethodManagerException
|
|
14
|
+
import io.primer.android.components.manager.native.PrimerHeadlessUniversalCheckoutNativeUiManager
|
|
15
|
+
import io.primer.android.components.manager.native.PrimerHeadlessUniversalCheckoutNativeUiManagerInterface
|
|
16
|
+
import io.primer.android.domain.exception.UnsupportedPaymentIntentException
|
|
17
|
+
|
|
18
|
+
@ExperimentalPrimerApi
|
|
19
|
+
internal class PrimerRNHeadlessUniversalCheckoutNativeUiManager(
|
|
20
|
+
private val reactContext: ReactApplicationContext,
|
|
21
|
+
) : ReactContextBaseJavaModule(reactContext) {
|
|
22
|
+
|
|
23
|
+
private lateinit var nativeUiManager: PrimerHeadlessUniversalCheckoutNativeUiManagerInterface
|
|
24
|
+
private var paymentMethodTypeStr: String? = null
|
|
25
|
+
|
|
26
|
+
override fun getName() = "RNTPrimerHeadlessUniversalPaymentMethodNativeUIManager"
|
|
27
|
+
|
|
28
|
+
@ReactMethod
|
|
29
|
+
fun configure(paymentMethodTypeStr: String, promise: Promise) {
|
|
30
|
+
try {
|
|
31
|
+
nativeUiManager = PrimerHeadlessUniversalCheckoutNativeUiManager.newInstance(
|
|
32
|
+
paymentMethodTypeStr
|
|
33
|
+
)
|
|
34
|
+
this.paymentMethodTypeStr = paymentMethodTypeStr
|
|
35
|
+
promise.resolve(null)
|
|
36
|
+
} catch (e: SdkUninitializedException) {
|
|
37
|
+
promise.reject(ErrorTypeRN.UnitializedSdkSession.errorId, e.message, e)
|
|
38
|
+
} catch (e: UnsupportedPaymentMethodManagerException) {
|
|
39
|
+
promise.reject(ErrorTypeRN.UnsupportedPaymentMethod.errorId, e.message, e)
|
|
40
|
+
} catch (e: Exception) {
|
|
41
|
+
val exception =
|
|
42
|
+
ErrorTypeRN.NativeBridgeFailed errorTo e.message.orEmpty()
|
|
43
|
+
promise.reject(exception.errorId, exception.description, e)
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
@ReactMethod
|
|
48
|
+
fun showPaymentMethod(
|
|
49
|
+
intentStr: String,
|
|
50
|
+
promise: Promise
|
|
51
|
+
) {
|
|
52
|
+
|
|
53
|
+
if (::nativeUiManager.isInitialized.not()) {
|
|
54
|
+
val exception = PrimerErrorRN(
|
|
55
|
+
ErrorTypeRN.NativeBridgeFailed.errorId,
|
|
56
|
+
"The NativeUIManager has not been initialized.",
|
|
57
|
+
null,
|
|
58
|
+
"Initialize the NativeUIManager by calling the configure function" +
|
|
59
|
+
" and providing a payment method type."
|
|
60
|
+
)
|
|
61
|
+
promise.reject(exception.errorId, exception.description)
|
|
62
|
+
} else if (PrimerSessionIntent.values()
|
|
63
|
+
.firstOrNull { intentStr.equals(it.name, true) } == null
|
|
64
|
+
) {
|
|
65
|
+
val exception = PrimerErrorRN(
|
|
66
|
+
ErrorTypeRN.NativeBridgeFailed.errorId,
|
|
67
|
+
"Invalid value for 'intent'.",
|
|
68
|
+
null,
|
|
69
|
+
"'intent' can be 'CHECKOUT' or 'VAULT'."
|
|
70
|
+
)
|
|
71
|
+
promise.reject(exception.errorId, exception.description)
|
|
72
|
+
} else {
|
|
73
|
+
try {
|
|
74
|
+
nativeUiManager.showPaymentMethod(
|
|
75
|
+
reactContext,
|
|
76
|
+
PrimerSessionIntent.valueOf(intentStr.uppercase())
|
|
77
|
+
)
|
|
78
|
+
} catch (e: UnsupportedPaymentIntentException) {
|
|
79
|
+
promise.reject(ErrorTypeRN.UnsupportedPaymentIntent.errorId, e.message, e)
|
|
80
|
+
} catch (e: Exception) {
|
|
81
|
+
val exception =
|
|
82
|
+
ErrorTypeRN.NativeBridgeFailed errorTo e.message.orEmpty()
|
|
83
|
+
promise.reject(exception.errorId, exception.description, e)
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -1,19 +1,22 @@
|
|
|
1
|
-
package com.primerioreactnative.
|
|
1
|
+
package com.primerioreactnative.components.manager.raw
|
|
2
2
|
|
|
3
3
|
import com.facebook.react.bridge.*
|
|
4
4
|
import com.facebook.react.modules.core.DeviceEventManagerModule
|
|
5
5
|
import com.primerioreactnative.Keys
|
|
6
|
+
import com.primerioreactnative.components.datamodels.core.PrimerRawPaymentMethodType
|
|
7
|
+
import com.primerioreactnative.components.datamodels.manager.raw.card.PrimerRNCardData
|
|
8
|
+
import com.primerioreactnative.components.datamodels.manager.raw.cardRedirect.PrimerRNBancontactCardData
|
|
9
|
+
import com.primerioreactnative.components.datamodels.manager.raw.phoneNumber.PrimerRNPhoneNumberData
|
|
10
|
+
import com.primerioreactnative.components.datamodels.manager.raw.retailOutlets.PrimerRNRetailOutletData
|
|
11
|
+
import com.primerioreactnative.components.datamodels.manager.raw.retailOutlets.toRNRetailOutletsList
|
|
12
|
+
import com.primerioreactnative.components.events.PrimerHeadlessUniversalCheckoutEvent
|
|
6
13
|
import com.primerioreactnative.datamodels.ErrorTypeRN
|
|
7
14
|
import com.primerioreactnative.datamodels.PrimerErrorRN
|
|
8
|
-
import com.primerioreactnative.huc.datamodels.manager.raw.card.PrimerRNRawCardData
|
|
9
|
-
import com.primerioreactnative.huc.datamodels.manager.raw.cardRedirect.PrimerRNRawBancontactCardData
|
|
10
|
-
import com.primerioreactnative.huc.datamodels.manager.raw.phoneNumber.PrimerRNRawPhoneNumberData
|
|
11
|
-
import com.primerioreactnative.huc.datamodels.manager.raw.retailOutlets.PrimerRNRawRetailOutletData
|
|
12
|
-
import com.primerioreactnative.huc.datamodels.manager.raw.retailOutlets.toRNRetailOutletsList
|
|
13
|
-
import com.primerioreactnative.huc.events.PrimerHeadlessUniversalCheckoutEvent
|
|
14
15
|
import com.primerioreactnative.utils.convertJsonToMap
|
|
15
16
|
import com.primerioreactnative.utils.errorTo
|
|
16
17
|
import io.primer.android.ExperimentalPrimerApi
|
|
18
|
+
import io.primer.android.components.SdkUninitializedException
|
|
19
|
+
import io.primer.android.components.domain.exception.UnsupportedPaymentMethodManagerException
|
|
17
20
|
import io.primer.android.components.manager.raw.PrimerHeadlessUniversalCheckoutRawDataManager
|
|
18
21
|
import io.primer.android.components.manager.raw.PrimerHeadlessUniversalCheckoutRawDataManagerInterface
|
|
19
22
|
import io.primer.android.data.payments.configure.retailOutlets.RetailOutletsList
|
|
@@ -23,6 +26,7 @@ import kotlinx.serialization.json.Json
|
|
|
23
26
|
import org.json.JSONArray
|
|
24
27
|
import org.json.JSONObject
|
|
25
28
|
|
|
29
|
+
|
|
26
30
|
@ExperimentalPrimerApi
|
|
27
31
|
internal class PrimerRNHeadlessUniversalCheckoutRawManager(
|
|
28
32
|
reactContext: ReactApplicationContext,
|
|
@@ -37,34 +41,56 @@ internal class PrimerRNHeadlessUniversalCheckoutRawManager(
|
|
|
37
41
|
listener.sendEvent = { eventName, paramsJson -> sendEvent(eventName, paramsJson) }
|
|
38
42
|
}
|
|
39
43
|
|
|
40
|
-
override fun getName() = "
|
|
44
|
+
override fun getName() = "RNTPrimerHeadlessUniversalCheckoutRawDataManager"
|
|
41
45
|
|
|
42
46
|
@ReactMethod
|
|
43
|
-
fun
|
|
47
|
+
fun configure(paymentMethodTypeStr: String, promise: Promise) {
|
|
44
48
|
try {
|
|
45
49
|
rawManager = PrimerHeadlessUniversalCheckoutRawDataManager.newInstance(
|
|
46
50
|
paymentMethodTypeStr
|
|
47
51
|
)
|
|
48
52
|
this.paymentMethodTypeStr = paymentMethodTypeStr
|
|
49
|
-
rawManager.
|
|
50
|
-
|
|
53
|
+
rawManager.setListener(listener)
|
|
54
|
+
rawManager.configure { primerInitializationData, error ->
|
|
55
|
+
if (error == null) {
|
|
56
|
+
when (primerInitializationData) {
|
|
57
|
+
is RetailOutletsList -> {
|
|
58
|
+
promise.resolve(
|
|
59
|
+
prepareData(
|
|
60
|
+
JSONObject().apply {
|
|
61
|
+
put(
|
|
62
|
+
"initializationData", JSONObject(
|
|
63
|
+
Json.encodeToString(
|
|
64
|
+
primerInitializationData.toRNRetailOutletsList()
|
|
65
|
+
)
|
|
66
|
+
)
|
|
67
|
+
)
|
|
68
|
+
}
|
|
69
|
+
)
|
|
70
|
+
)
|
|
71
|
+
}
|
|
72
|
+
else -> promise.resolve(null)
|
|
73
|
+
}
|
|
74
|
+
} else promise.reject(error.errorId, error.description)
|
|
75
|
+
}
|
|
76
|
+
} catch (e: SdkUninitializedException) {
|
|
77
|
+
promise.reject(ErrorTypeRN.UnitializedSdkSession.errorId, e.message, e)
|
|
78
|
+
} catch (e: UnsupportedPaymentMethodManagerException) {
|
|
79
|
+
promise.reject(ErrorTypeRN.UnsupportedPaymentMethod.errorId, e.message, e)
|
|
51
80
|
} catch (e: Exception) {
|
|
52
81
|
val exception =
|
|
53
82
|
ErrorTypeRN.NativeBridgeFailed errorTo e.message.orEmpty()
|
|
54
|
-
promise.reject(exception.errorId, exception.description)
|
|
83
|
+
promise.reject(exception.errorId, exception.description, e)
|
|
55
84
|
}
|
|
56
85
|
}
|
|
57
86
|
|
|
58
87
|
@ReactMethod
|
|
59
|
-
fun
|
|
60
|
-
paymentMethodTypeStr: String,
|
|
88
|
+
fun listRequiredInputElementTypes(
|
|
61
89
|
promise: Promise
|
|
62
90
|
) {
|
|
63
91
|
if (::rawManager.isInitialized.not()) {
|
|
64
92
|
val exception =
|
|
65
|
-
ErrorTypeRN.NativeBridgeFailed errorTo
|
|
66
|
-
" has not been initialized. Make sure you have called the" +
|
|
67
|
-
" HeadlessUniversalCheckoutRawDataManager.configure function first."
|
|
93
|
+
ErrorTypeRN.NativeBridgeFailed errorTo UNINITIALIZED_ERROR
|
|
68
94
|
promise.reject(exception.errorId, exception.description)
|
|
69
95
|
} else {
|
|
70
96
|
promise.resolve(
|
|
@@ -84,33 +110,31 @@ internal class PrimerRNHeadlessUniversalCheckoutRawManager(
|
|
|
84
110
|
fun setRawData(rawDataStr: String, promise: Promise) {
|
|
85
111
|
if (::rawManager.isInitialized.not()) {
|
|
86
112
|
val exception =
|
|
87
|
-
ErrorTypeRN.NativeBridgeFailed errorTo
|
|
88
|
-
" has not been initialized. Make sure you have called the" +
|
|
89
|
-
" HeadlessUniversalCheckoutRawDataManager.configure function first."
|
|
113
|
+
ErrorTypeRN.NativeBridgeFailed errorTo UNINITIALIZED_ERROR
|
|
90
114
|
promise.reject(exception.errorId, exception.description)
|
|
91
115
|
} else {
|
|
92
116
|
try {
|
|
93
|
-
val rawData = when (paymentMethodTypeStr) {
|
|
94
|
-
|
|
117
|
+
val rawData = when (PrimerRawPaymentMethodType.valueOf(paymentMethodTypeStr.toString())) {
|
|
118
|
+
PrimerRawPaymentMethodType.PAYMENT_CARD -> json.decodeFromString<PrimerRNCardData>(
|
|
95
119
|
rawDataStr
|
|
96
120
|
).toPrimerCardData()
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
121
|
+
PrimerRawPaymentMethodType.XENDIT_OVO,
|
|
122
|
+
PrimerRawPaymentMethodType.ADYEN_MBWAY ->
|
|
123
|
+
json.decodeFromString<PrimerRNPhoneNumberData>(rawDataStr)
|
|
124
|
+
.toPrimerPhoneNumberData()
|
|
125
|
+
PrimerRawPaymentMethodType.ADYEN_BANCONTACT_CARD ->
|
|
126
|
+
json.decodeFromString<PrimerRNBancontactCardData>(rawDataStr)
|
|
127
|
+
.toPrimerBancontactCardData()
|
|
128
|
+
PrimerRawPaymentMethodType.XENDIT_RETAIL_OUTLETS ->
|
|
129
|
+
json.decodeFromString<PrimerRNRetailOutletData>(rawDataStr)
|
|
130
|
+
.toPrimerRetailOutletData()
|
|
107
131
|
}
|
|
108
132
|
rawManager.setRawData(rawData)
|
|
109
133
|
promise.resolve(null)
|
|
110
134
|
} catch (e: Exception) {
|
|
111
135
|
val exception =
|
|
112
136
|
ErrorTypeRN.NativeBridgeFailed errorTo "Failed to decode $rawDataStr on Android." +
|
|
113
|
-
" Make sure you're providing a valid object"
|
|
137
|
+
" Make sure you're providing a valid 'RawData' (or any inherited) object."
|
|
114
138
|
onError(exception)
|
|
115
139
|
promise.reject(exception.errorId, exception.description, e)
|
|
116
140
|
}
|
|
@@ -121,9 +145,7 @@ internal class PrimerRNHeadlessUniversalCheckoutRawManager(
|
|
|
121
145
|
fun submit(promise: Promise) {
|
|
122
146
|
if (::rawManager.isInitialized.not()) {
|
|
123
147
|
val exception =
|
|
124
|
-
ErrorTypeRN.NativeBridgeFailed errorTo
|
|
125
|
-
" has not been initialized. Make sure you have called the" +
|
|
126
|
-
" HeadlessUniversalCheckoutRawDataManager.configure function first."
|
|
148
|
+
ErrorTypeRN.NativeBridgeFailed errorTo UNINITIALIZED_ERROR
|
|
127
149
|
promise.reject(exception.errorId, exception.description)
|
|
128
150
|
} else {
|
|
129
151
|
rawManager.submit()
|
|
@@ -132,12 +154,10 @@ internal class PrimerRNHeadlessUniversalCheckoutRawManager(
|
|
|
132
154
|
}
|
|
133
155
|
|
|
134
156
|
@ReactMethod
|
|
135
|
-
fun
|
|
157
|
+
fun cleanUp(promise: Promise) {
|
|
136
158
|
if (::rawManager.isInitialized.not()) {
|
|
137
159
|
val exception =
|
|
138
|
-
ErrorTypeRN.NativeBridgeFailed errorTo
|
|
139
|
-
" has not been initialized. Make sure you have called the" +
|
|
140
|
-
" HeadlessUniversalCheckoutRawDataManager.configure function first."
|
|
160
|
+
ErrorTypeRN.NativeBridgeFailed errorTo UNINITIALIZED_ERROR
|
|
141
161
|
promise.reject(exception.errorId, exception.description)
|
|
142
162
|
} else {
|
|
143
163
|
rawManager.cleanup()
|
|
@@ -146,34 +166,10 @@ internal class PrimerRNHeadlessUniversalCheckoutRawManager(
|
|
|
146
166
|
}
|
|
147
167
|
|
|
148
168
|
@ReactMethod
|
|
149
|
-
fun
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
" has not been initialized. Make sure you have called the" +
|
|
154
|
-
" HeadlessUniversalCheckoutRawDataManager.configure function first."
|
|
155
|
-
promise.reject(exception.errorId, exception.description)
|
|
156
|
-
} else {
|
|
157
|
-
rawManager.configure { primerInitializationData, error ->
|
|
158
|
-
if (error == null) {
|
|
159
|
-
when (primerInitializationData) {
|
|
160
|
-
is RetailOutletsList -> {
|
|
161
|
-
promise.resolve(
|
|
162
|
-
prepareData(
|
|
163
|
-
JSONObject(
|
|
164
|
-
Json.encodeToString(
|
|
165
|
-
primerInitializationData.toRNRetailOutletsList()
|
|
166
|
-
)
|
|
167
|
-
)
|
|
168
|
-
)
|
|
169
|
-
)
|
|
170
|
-
}
|
|
171
|
-
else -> promise.resolve(null)
|
|
172
|
-
}
|
|
173
|
-
} else promise.reject(error.errorId, error.description)
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
}
|
|
169
|
+
fun addListener(eventName: String?) = Unit
|
|
170
|
+
|
|
171
|
+
@ReactMethod
|
|
172
|
+
fun removeListeners(count: Int?) = Unit
|
|
177
173
|
|
|
178
174
|
private fun sendEvent(name: String, params: WritableMap) {
|
|
179
175
|
reactApplicationContext.getJSModule(
|
|
@@ -199,4 +195,12 @@ internal class PrimerRNHeadlessUniversalCheckoutRawManager(
|
|
|
199
195
|
params.putMap(Keys.ERROR, errorData)
|
|
200
196
|
sendEvent(PrimerHeadlessUniversalCheckoutEvent.ON_ERROR.eventName, params)
|
|
201
197
|
}
|
|
198
|
+
|
|
199
|
+
private companion object {
|
|
200
|
+
const val UNINITIALIZED_ERROR =
|
|
201
|
+
"""
|
|
202
|
+
The RawDataManager has not been initialized.
|
|
203
|
+
Make sure you have initialized the `RawDataManager' first.
|
|
204
|
+
"""
|
|
205
|
+
}
|
|
202
206
|
}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
package com.primerioreactnative.
|
|
1
|
+
package com.primerioreactnative.components.manager.raw
|
|
2
2
|
|
|
3
|
-
import com.primerioreactnative.
|
|
4
|
-
import com.primerioreactnative.
|
|
3
|
+
import com.primerioreactnative.components.events.PrimerHeadlessUniversalCheckoutRawDataManagerEvent
|
|
4
|
+
import com.primerioreactnative.datamodels.PrimerInputValidationErrorRN
|
|
5
5
|
import io.primer.android.ExperimentalPrimerApi
|
|
6
6
|
import io.primer.android.components.domain.core.models.card.PrimerCardMetadata
|
|
7
7
|
import io.primer.android.components.domain.core.models.metadata.PrimerPaymentMethodMetadata
|
|
8
8
|
import io.primer.android.components.domain.error.PrimerInputValidationError
|
|
9
|
-
import io.primer.android.components.manager.raw.PrimerHeadlessUniversalCheckoutRawDataManager
|
|
10
9
|
import io.primer.android.components.manager.raw.PrimerHeadlessUniversalCheckoutRawDataManagerListener
|
|
11
10
|
import kotlinx.serialization.encodeToString
|
|
12
11
|
import kotlinx.serialization.json.Json
|
|
@@ -28,7 +27,16 @@ internal class PrimerRNHeadlessUniversalCheckoutRawManagerListener :
|
|
|
28
27
|
"errors",
|
|
29
28
|
JSONArray(
|
|
30
29
|
errors.map {
|
|
31
|
-
JSONObject(
|
|
30
|
+
JSONObject(
|
|
31
|
+
Json.encodeToString(
|
|
32
|
+
PrimerInputValidationErrorRN(
|
|
33
|
+
it.errorId,
|
|
34
|
+
it.description,
|
|
35
|
+
it.inputElementType.name,
|
|
36
|
+
it.diagnosticsId
|
|
37
|
+
)
|
|
38
|
+
)
|
|
39
|
+
)
|
|
32
40
|
}
|
|
33
41
|
)
|
|
34
42
|
)
|
|
@@ -6,13 +6,14 @@ import kotlinx.serialization.Serializable
|
|
|
6
6
|
data class PrimerErrorRN(
|
|
7
7
|
val errorId: String? = null,
|
|
8
8
|
val description: String? = null,
|
|
9
|
+
val diagnosticsId: String? = null,
|
|
9
10
|
val recoverySuggestion: String? = null
|
|
10
11
|
)
|
|
11
12
|
|
|
12
13
|
@Serializable
|
|
13
14
|
enum class ErrorTypeRN(val errorId: String) {
|
|
14
|
-
NativeBridgeFailed("native-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
NativeBridgeFailed("native-android"),
|
|
16
|
+
UnitializedSdkSession("uninitialized-sdk-session"),
|
|
17
|
+
UnsupportedPaymentMethod("unsupported-payment-method-type"),
|
|
18
|
+
UnsupportedPaymentIntent("unsupported-session-intent")
|
|
18
19
|
}
|
package/android/src/main/java/com/primerioreactnative/datamodels/PrimerInputValidationErrorRN.kt
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
package com.primerioreactnative.datamodels
|
|
2
|
+
|
|
3
|
+
import kotlinx.serialization.Serializable
|
|
4
|
+
|
|
5
|
+
@Serializable
|
|
6
|
+
data class PrimerInputValidationErrorRN(
|
|
7
|
+
val errorId: String? = null,
|
|
8
|
+
val description: String? = null,
|
|
9
|
+
val inputElementType: String? = null,
|
|
10
|
+
val diagnosticsId: String? = null
|
|
11
|
+
)
|
|
@@ -33,7 +33,6 @@ data class PrimerPaymentMethodOptionsRN(
|
|
|
33
33
|
var googlePayOptions: PrimerGooglePayOptionsRN = PrimerGooglePayOptionsRN(),
|
|
34
34
|
var klarnaOptions: PrimerKlarnaOptionsRN = PrimerKlarnaOptionsRN(),
|
|
35
35
|
var apayaOptions: PrimerApayaOptionsRN = PrimerApayaOptionsRN(),
|
|
36
|
-
var goCardlessOptions: PrimerGoCardlessOptionsRN = PrimerGoCardlessOptionsRN()
|
|
37
36
|
)
|
|
38
37
|
|
|
39
38
|
@Serializable
|
|
@@ -81,13 +80,6 @@ data class PrimerApayaOptionsRN(
|
|
|
81
80
|
var webViewTitle: String? = null,
|
|
82
81
|
)
|
|
83
82
|
|
|
84
|
-
@Serializable
|
|
85
|
-
@Deprecated("This class is deprecated and will be removed in future release.")
|
|
86
|
-
data class PrimerGoCardlessOptionsRN(
|
|
87
|
-
var businessName: String? = null,
|
|
88
|
-
var businessAddress: String? = null,
|
|
89
|
-
)
|
|
90
|
-
|
|
91
83
|
fun PrimerSettingsRN.toPrimerSettings() = PrimerSettings(
|
|
92
84
|
paymentHandling,
|
|
93
85
|
localeData.toLocale(),
|
package/android/src/main/java/com/primerioreactnative/extensions/PrimerPaymentMethodOptionsRN.kt
CHANGED
|
@@ -8,7 +8,6 @@ fun PrimerPaymentMethodOptionsRN.toPrimerPaymentMethodOptions() = PrimerPaymentM
|
|
|
8
8
|
googlePayOptions.toPrimerGooglePayOptions(),
|
|
9
9
|
klarnaOptions.toPrimerKlarnaOptions(),
|
|
10
10
|
apayaOptions.toPrimerApayaOptions(),
|
|
11
|
-
goCardlessOptions.toPrimerGoCardlessOptions()
|
|
12
11
|
)
|
|
13
12
|
|
|
14
13
|
fun PrimerGooglePayOptionsRN.toPrimerGooglePayOptions() =
|
|
@@ -18,6 +17,3 @@ fun PrimerKlarnaOptionsRN.toPrimerKlarnaOptions() =
|
|
|
18
17
|
PrimerKlarnaOptions(recurringPaymentDescription, webViewTitle)
|
|
19
18
|
|
|
20
19
|
fun PrimerApayaOptionsRN.toPrimerApayaOptions() = PrimerApayaOptions(webViewTitle)
|
|
21
|
-
|
|
22
|
-
fun PrimerGoCardlessOptionsRN.toPrimerGoCardlessOptions() =
|
|
23
|
-
PrimerGoCardlessOptions(businessName, businessAddress)
|
|
@@ -15,20 +15,20 @@ data class PrimerHeadlessUniversalCheckoutImplementedRNCallbacks(
|
|
|
15
15
|
val isOnBeforePaymentCreateImplemented: Boolean? = null,
|
|
16
16
|
@SerialName("onError")
|
|
17
17
|
val isOnErrorImplemented: Boolean? = null,
|
|
18
|
-
@SerialName("
|
|
18
|
+
@SerialName("onTokenizationSuccess")
|
|
19
19
|
val isOnTokenizeSuccessImplemented: Boolean? = null,
|
|
20
|
-
@SerialName("
|
|
21
|
-
val
|
|
22
|
-
@SerialName("
|
|
23
|
-
val
|
|
24
|
-
@SerialName("
|
|
25
|
-
val
|
|
26
|
-
@SerialName("
|
|
27
|
-
val
|
|
28
|
-
@SerialName("
|
|
29
|
-
val
|
|
30
|
-
@SerialName("
|
|
31
|
-
val
|
|
32
|
-
@SerialName("
|
|
33
|
-
val
|
|
20
|
+
@SerialName("onCheckoutResume")
|
|
21
|
+
val isOnCheckoutResumeImplemented: Boolean? = null,
|
|
22
|
+
@SerialName("onCheckoutPending")
|
|
23
|
+
val isOnCheckoutPendingImplemented: Boolean? = null,
|
|
24
|
+
@SerialName("onCheckoutAdditionalInfo")
|
|
25
|
+
val isOnCheckoutAdditionalInfoImplemented: Boolean? = null,
|
|
26
|
+
@SerialName("onTokenizationStart")
|
|
27
|
+
val isOnTokenizationStartImplemented: Boolean? = null,
|
|
28
|
+
@SerialName("onPreparationStart")
|
|
29
|
+
val isOnPreparationStartImplemented: Boolean? = null,
|
|
30
|
+
@SerialName("onAvailablePaymentMethodsLoad")
|
|
31
|
+
val isOnAvailablePaymentMethodsLoadImplemented: Boolean? = null,
|
|
32
|
+
@SerialName("onPaymentMethodShow")
|
|
33
|
+
val isOnPaymentMethodShowImplemented: Boolean? = null,
|
|
34
34
|
)
|
|
@@ -17,12 +17,12 @@ data class PrimerImplementedRNCallbacks(
|
|
|
17
17
|
val isOnErrorImplemented: Boolean? = null,
|
|
18
18
|
@SerialName("onDismiss")
|
|
19
19
|
val isOnDismissImplemented: Boolean? = null,
|
|
20
|
-
@SerialName("
|
|
20
|
+
@SerialName("onTokenizationSuccess")
|
|
21
21
|
val isOnTokenizeSuccessImplemented: Boolean? = null,
|
|
22
|
-
@SerialName("
|
|
23
|
-
val
|
|
24
|
-
@SerialName("
|
|
25
|
-
val
|
|
26
|
-
@SerialName("
|
|
27
|
-
val
|
|
22
|
+
@SerialName("onCheckoutResume")
|
|
23
|
+
val isOnCheckoutResumeImplemented: Boolean? = null,
|
|
24
|
+
@SerialName("onCheckoutPending")
|
|
25
|
+
val isOnCheckoutPendingImplemented: Boolean? = null,
|
|
26
|
+
@SerialName("onCheckoutAdditionalInfo")
|
|
27
|
+
val isOnCheckoutAdditionalInfoImplemented: Boolean? = null,
|
|
28
28
|
)
|
package/ios/Podfile.lock
CHANGED