@primer-io/react-native 2.16.0 → 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
package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckoutListener.kt
CHANGED
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
package com.primerioreactnative
|
|
2
2
|
|
|
3
|
-
import com.facebook.react.bridge.Arguments
|
|
4
|
-
import com.facebook.react.bridge.Callback
|
|
5
3
|
import com.facebook.react.bridge.Promise
|
|
4
|
+
import com.primerioreactnative.components.datamodels.core.PrimerRNAvailablePaymentMethods
|
|
5
|
+
import com.primerioreactnative.components.datamodels.core.toPrimerRNHeadlessUniversalCheckoutPaymentMethod
|
|
6
|
+
import com.primerioreactnative.components.events.PrimerHeadlessUniversalCheckoutEvent
|
|
6
7
|
import com.primerioreactnative.datamodels.*
|
|
7
8
|
import com.primerioreactnative.extensions.toCheckoutAdditionalInfoRN
|
|
8
9
|
import com.primerioreactnative.extensions.toPrimerCheckoutDataRN
|
|
9
10
|
import com.primerioreactnative.extensions.toPrimerClientSessionRN
|
|
10
11
|
import com.primerioreactnative.extensions.toPrimerPaymentMethodDataRN
|
|
11
|
-
import com.primerioreactnative.huc.events.PrimerHeadlessUniversalCheckoutEvent
|
|
12
12
|
import com.primerioreactnative.utils.PrimerHeadlessUniversalCheckoutImplementedRNCallbacks
|
|
13
|
+
import com.primerioreactnative.utils.convertJsonToMap
|
|
13
14
|
import com.primerioreactnative.utils.errorTo
|
|
14
|
-
import io.primer.android.
|
|
15
|
+
import io.primer.android.completion.PrimerHeadlessUniversalCheckoutResumeDecisionHandler
|
|
15
16
|
import io.primer.android.completion.PrimerPaymentCreationDecisionHandler
|
|
16
|
-
import io.primer.android.completion.PrimerResumeDecisionHandler
|
|
17
17
|
import io.primer.android.components.PrimerHeadlessUniversalCheckoutListener
|
|
18
|
+
import io.primer.android.components.PrimerHeadlessUniversalCheckoutUiListener
|
|
18
19
|
import io.primer.android.components.domain.core.models.PrimerHeadlessUniversalCheckoutPaymentMethod
|
|
19
20
|
import io.primer.android.domain.PrimerCheckoutData
|
|
20
21
|
import io.primer.android.domain.action.models.PrimerClientSession
|
|
@@ -26,11 +27,10 @@ import io.primer.android.domain.tokenization.models.PrimerPaymentMethodData
|
|
|
26
27
|
import io.primer.android.domain.tokenization.models.PrimerPaymentMethodTokenData
|
|
27
28
|
import kotlinx.serialization.encodeToString
|
|
28
29
|
import kotlinx.serialization.json.Json
|
|
29
|
-
import org.json.JSONArray
|
|
30
30
|
import org.json.JSONObject
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
class PrimerRNHeadlessUniversalCheckoutListener : PrimerHeadlessUniversalCheckoutListener,
|
|
33
|
+
PrimerHeadlessUniversalCheckoutUiListener {
|
|
34
34
|
private var paymentCreationDecisionHandler: ((errorMessage: String?) -> Unit)? = null
|
|
35
35
|
private var tokenizeSuccessDecisionHandler: ((resumeToken: String?, errorMessage: String?) -> Unit)? =
|
|
36
36
|
null
|
|
@@ -44,37 +44,44 @@ class PrimerRNHeadlessUniversalCheckoutListener : PrimerHeadlessUniversalCheckou
|
|
|
44
44
|
var sendErrorWithCheckoutData: ((error: PrimerErrorRN, checkoutData: PrimerCheckoutDataRN?) -> Unit)? =
|
|
45
45
|
null
|
|
46
46
|
|
|
47
|
-
var successCallback:
|
|
47
|
+
var successCallback: Promise? = null
|
|
48
48
|
|
|
49
49
|
override fun onAvailablePaymentMethodsLoaded(paymentMethods: List<PrimerHeadlessUniversalCheckoutPaymentMethod>) {
|
|
50
|
+
val availablePaymentMethods =
|
|
51
|
+
JSONObject(
|
|
52
|
+
Json.encodeToString(
|
|
53
|
+
PrimerRNAvailablePaymentMethods(
|
|
54
|
+
paymentMethods.map { it.toPrimerRNHeadlessUniversalCheckoutPaymentMethod() }
|
|
55
|
+
)
|
|
56
|
+
)
|
|
57
|
+
)
|
|
58
|
+
|
|
50
59
|
sendEvent?.invoke(
|
|
51
|
-
PrimerHeadlessUniversalCheckoutEvent.
|
|
52
|
-
|
|
53
|
-
put("paymentMethodTypes", JSONArray(paymentMethods.map { it.paymentMethodType }))
|
|
54
|
-
}
|
|
60
|
+
PrimerHeadlessUniversalCheckoutEvent.ON_AVAILABLE_PAYMENT_METHODS_LOAD.eventName,
|
|
61
|
+
availablePaymentMethods
|
|
55
62
|
)
|
|
56
|
-
successCallback?.
|
|
57
|
-
|
|
63
|
+
successCallback?.resolve(
|
|
64
|
+
convertJsonToMap(availablePaymentMethods)
|
|
58
65
|
)
|
|
59
66
|
}
|
|
60
67
|
|
|
61
68
|
override fun onPreparationStarted(paymentMethodType: String) {
|
|
62
69
|
sendEvent?.invoke(
|
|
63
|
-
PrimerHeadlessUniversalCheckoutEvent.
|
|
70
|
+
PrimerHeadlessUniversalCheckoutEvent.ON_PREPARE_START.eventName,
|
|
64
71
|
JSONObject(Json.encodeToString(PrimerPaymentMethodDataRN(paymentMethodType)))
|
|
65
72
|
)
|
|
66
73
|
}
|
|
67
74
|
|
|
68
75
|
override fun onPaymentMethodShowed(paymentMethodType: String) {
|
|
69
76
|
sendEvent?.invoke(
|
|
70
|
-
PrimerHeadlessUniversalCheckoutEvent.
|
|
77
|
+
PrimerHeadlessUniversalCheckoutEvent.ON_PAYMENT_METHOD_SHOW.eventName,
|
|
71
78
|
JSONObject(Json.encodeToString(PrimerPaymentMethodDataRN(paymentMethodType)))
|
|
72
79
|
)
|
|
73
80
|
}
|
|
74
81
|
|
|
75
82
|
override fun onTokenizationStarted(paymentMethodType: String) {
|
|
76
83
|
sendEvent?.invoke(
|
|
77
|
-
PrimerHeadlessUniversalCheckoutEvent.
|
|
84
|
+
PrimerHeadlessUniversalCheckoutEvent.ON_TOKENIZE_START.eventName,
|
|
78
85
|
JSONObject(Json.encodeToString(PrimerPaymentMethodDataRN(paymentMethodType)))
|
|
79
86
|
)
|
|
80
87
|
}
|
|
@@ -132,7 +139,12 @@ class PrimerRNHeadlessUniversalCheckoutListener : PrimerHeadlessUniversalCheckou
|
|
|
132
139
|
if (implementedRNCallbacks?.isOnClientSessionUpdateImplemented == true) {
|
|
133
140
|
sendEvent?.invoke(
|
|
134
141
|
PrimerHeadlessUniversalCheckoutEvent.ON_CLIENT_SESSION_UPDATE.eventName,
|
|
135
|
-
JSONObject(
|
|
142
|
+
JSONObject().apply {
|
|
143
|
+
put(
|
|
144
|
+
"clientSession",
|
|
145
|
+
JSONObject(Json.encodeToString(clientSession.toPrimerClientSessionRN()))
|
|
146
|
+
)
|
|
147
|
+
}
|
|
136
148
|
)
|
|
137
149
|
} else {
|
|
138
150
|
super.onClientSessionUpdated(clientSession)
|
|
@@ -141,16 +153,16 @@ class PrimerRNHeadlessUniversalCheckoutListener : PrimerHeadlessUniversalCheckou
|
|
|
141
153
|
|
|
142
154
|
override fun onTokenizeSuccess(
|
|
143
155
|
paymentMethodTokenData: PrimerPaymentMethodTokenData,
|
|
144
|
-
decisionHandler:
|
|
156
|
+
decisionHandler: PrimerHeadlessUniversalCheckoutResumeDecisionHandler
|
|
145
157
|
) {
|
|
146
158
|
if (implementedRNCallbacks?.isOnTokenizeSuccessImplemented == true) {
|
|
147
159
|
val token = PrimerPaymentInstrumentTokenRN.fromPaymentMethodToken(paymentMethodTokenData)
|
|
148
|
-
val request = JSONObject(
|
|
149
|
-
|
|
160
|
+
val request = JSONObject().apply {
|
|
161
|
+
put("paymentMethodTokenData", JSONObject(Json.encodeToString(token)))
|
|
162
|
+
}
|
|
163
|
+
tokenizeSuccessDecisionHandler = { newClientToken, _ ->
|
|
150
164
|
when {
|
|
151
|
-
err != null -> decisionHandler.handleFailure(err.ifBlank { null })
|
|
152
165
|
newClientToken != null -> decisionHandler.continueWithNewClientToken(newClientToken)
|
|
153
|
-
else -> decisionHandler.handleSuccess()
|
|
154
166
|
}
|
|
155
167
|
}
|
|
156
168
|
sendEvent?.invoke(PrimerHeadlessUniversalCheckoutEvent.ON_TOKENIZE_SUCCESS.eventName, request)
|
|
@@ -162,37 +174,35 @@ class PrimerRNHeadlessUniversalCheckoutListener : PrimerHeadlessUniversalCheckou
|
|
|
162
174
|
}
|
|
163
175
|
}
|
|
164
176
|
|
|
165
|
-
override fun
|
|
177
|
+
override fun onCheckoutResume(
|
|
166
178
|
resumeToken: String,
|
|
167
|
-
decisionHandler:
|
|
179
|
+
decisionHandler: PrimerHeadlessUniversalCheckoutResumeDecisionHandler
|
|
168
180
|
) {
|
|
169
|
-
if (implementedRNCallbacks?.
|
|
170
|
-
resumeSuccessDecisionHandler = { newClientToken,
|
|
181
|
+
if (implementedRNCallbacks?.isOnCheckoutResumeImplemented == true) {
|
|
182
|
+
resumeSuccessDecisionHandler = { newClientToken, _ ->
|
|
171
183
|
when {
|
|
172
|
-
err != null -> decisionHandler.handleFailure(err.ifBlank { null })
|
|
173
184
|
newClientToken != null -> decisionHandler.continueWithNewClientToken(newClientToken)
|
|
174
|
-
else -> decisionHandler.handleSuccess()
|
|
175
185
|
}
|
|
176
186
|
}
|
|
177
187
|
|
|
178
188
|
val resumeToken = mapOf(Keys.RESUME_TOKEN to resumeToken)
|
|
179
189
|
sendEvent?.invoke(
|
|
180
|
-
PrimerHeadlessUniversalCheckoutEvent.
|
|
190
|
+
PrimerHeadlessUniversalCheckoutEvent.ON_CHECKOUT_SUCCESS.eventName,
|
|
181
191
|
JSONObject(Json.encodeToString(resumeToken))
|
|
182
192
|
)
|
|
183
193
|
} else {
|
|
184
194
|
sendError?.invoke(
|
|
185
195
|
ErrorTypeRN.NativeBridgeFailed
|
|
186
|
-
errorTo "Callback
|
|
196
|
+
errorTo "Callback ${PrimerHeadlessUniversalCheckoutEvent.ON_CHECKOUT_SUCCESS.eventName} should be implemented."
|
|
187
197
|
)
|
|
188
198
|
}
|
|
189
199
|
}
|
|
190
200
|
|
|
191
|
-
override fun onResumePending(additionalInfo: PrimerCheckoutAdditionalInfo
|
|
192
|
-
if (implementedRNCallbacks?.
|
|
201
|
+
override fun onResumePending(additionalInfo: PrimerCheckoutAdditionalInfo) {
|
|
202
|
+
if (implementedRNCallbacks?.isOnCheckoutPendingImplemented == true) {
|
|
193
203
|
if (additionalInfo is MultibancoCheckoutAdditionalInfo) {
|
|
194
204
|
sendEvent?.invoke(
|
|
195
|
-
|
|
205
|
+
PrimerHeadlessUniversalCheckoutEvent.ON_CHECKOUT_PENDING.eventName,
|
|
196
206
|
JSONObject(Json.encodeToString(additionalInfo.toCheckoutAdditionalInfoRN())).apply {
|
|
197
207
|
remove("type")
|
|
198
208
|
}
|
|
@@ -201,16 +211,17 @@ class PrimerRNHeadlessUniversalCheckoutListener : PrimerHeadlessUniversalCheckou
|
|
|
201
211
|
} else {
|
|
202
212
|
sendError?.invoke(
|
|
203
213
|
ErrorTypeRN.NativeBridgeFailed
|
|
204
|
-
errorTo "Callback [
|
|
214
|
+
errorTo "Callback [${PrimerHeadlessUniversalCheckoutEvent.ON_CHECKOUT_PENDING.eventName}] " +
|
|
215
|
+
"should be implemented."
|
|
205
216
|
)
|
|
206
217
|
}
|
|
207
218
|
}
|
|
208
219
|
|
|
209
|
-
override fun
|
|
210
|
-
if (implementedRNCallbacks?.
|
|
220
|
+
override fun onCheckoutAdditionalInfoReceived(additionalInfo: PrimerCheckoutAdditionalInfo) {
|
|
221
|
+
if (implementedRNCallbacks?.isOnCheckoutAdditionalInfoImplemented == true) {
|
|
211
222
|
if (additionalInfo is PromptPayCheckoutAdditionalInfo) {
|
|
212
223
|
sendEvent?.invoke(
|
|
213
|
-
|
|
224
|
+
PrimerHeadlessUniversalCheckoutEvent.ON_CHECKOUT_ADDITIONAL_INFO.eventName,
|
|
214
225
|
JSONObject(Json.encodeToString(additionalInfo.toCheckoutAdditionalInfoRN())).apply {
|
|
215
226
|
remove("type")
|
|
216
227
|
}
|
|
@@ -219,7 +230,8 @@ class PrimerRNHeadlessUniversalCheckoutListener : PrimerHeadlessUniversalCheckou
|
|
|
219
230
|
} else {
|
|
220
231
|
sendError?.invoke(
|
|
221
232
|
ErrorTypeRN.NativeBridgeFailed
|
|
222
|
-
errorTo "Callback [
|
|
233
|
+
errorTo "Callback [${PrimerHeadlessUniversalCheckoutEvent.ON_CHECKOUT_ADDITIONAL_INFO.eventName}]" +
|
|
234
|
+
" should be implemented."
|
|
223
235
|
)
|
|
224
236
|
}
|
|
225
237
|
}
|
|
@@ -233,6 +245,7 @@ class PrimerRNHeadlessUniversalCheckoutListener : PrimerHeadlessUniversalCheckou
|
|
|
233
245
|
PrimerErrorRN(
|
|
234
246
|
error.errorId,
|
|
235
247
|
error.description,
|
|
248
|
+
error.diagnosticsId,
|
|
236
249
|
error.recoverySuggestion
|
|
237
250
|
), checkoutData?.toPrimerCheckoutDataRN()
|
|
238
251
|
)
|
|
@@ -243,7 +256,14 @@ class PrimerRNHeadlessUniversalCheckoutListener : PrimerHeadlessUniversalCheckou
|
|
|
243
256
|
|
|
244
257
|
override fun onFailed(error: PrimerError) {
|
|
245
258
|
if (implementedRNCallbacks?.isOnErrorImplemented == true) {
|
|
246
|
-
sendError?.invoke(
|
|
259
|
+
sendError?.invoke(
|
|
260
|
+
PrimerErrorRN(
|
|
261
|
+
error.errorId,
|
|
262
|
+
error.description,
|
|
263
|
+
error.diagnosticsId,
|
|
264
|
+
error.recoverySuggestion
|
|
265
|
+
)
|
|
266
|
+
)
|
|
247
267
|
} else {
|
|
248
268
|
super.onFailed(error)
|
|
249
269
|
}
|
|
@@ -254,20 +274,6 @@ class PrimerRNHeadlessUniversalCheckoutListener : PrimerHeadlessUniversalCheckou
|
|
|
254
274
|
tokenizeSuccessDecisionHandler?.invoke(newClientToken, null)
|
|
255
275
|
tokenizeSuccessDecisionHandler = null
|
|
256
276
|
}
|
|
257
|
-
|
|
258
|
-
fun handleTokenizationSuccess(promise: Promise) {
|
|
259
|
-
val error =
|
|
260
|
-
ErrorTypeRN.NativeBridgeFailed errorTo "PrimerTokenizationHandler's " +
|
|
261
|
-
"handleSuccess function is not available on HUC."
|
|
262
|
-
promise.reject(error.errorId, error.description)
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
fun handleTokenizationFailure(errorMessage: String, promise: Promise) {
|
|
266
|
-
val error =
|
|
267
|
-
ErrorTypeRN.NativeBridgeFailed errorTo "PrimerTokenizationHandler's " +
|
|
268
|
-
"handleFailure function is not available on HUC."
|
|
269
|
-
promise.reject(error.errorId, error.description)
|
|
270
|
-
}
|
|
271
277
|
// endregion
|
|
272
278
|
|
|
273
279
|
// region resume handlers
|
|
@@ -275,20 +281,6 @@ class PrimerRNHeadlessUniversalCheckoutListener : PrimerHeadlessUniversalCheckou
|
|
|
275
281
|
resumeSuccessDecisionHandler?.invoke(newClientToken, null)
|
|
276
282
|
resumeSuccessDecisionHandler = null
|
|
277
283
|
}
|
|
278
|
-
|
|
279
|
-
fun handleResumeSuccess(promise: Promise) {
|
|
280
|
-
val error =
|
|
281
|
-
ErrorTypeRN.NativeBridgeFailed errorTo "PrimerResumeHandler's " +
|
|
282
|
-
"handleSuccess function is not available on HUC."
|
|
283
|
-
promise.reject(error.errorId, error.description)
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
fun handleResumeFailure(errorMessage: String, promise: Promise) {
|
|
287
|
-
val error =
|
|
288
|
-
ErrorTypeRN.NativeBridgeFailed errorTo "PrimerResumeHandler's " +
|
|
289
|
-
"handleFailure function is not available on HUC."
|
|
290
|
-
promise.reject(error.errorId, error.description)
|
|
291
|
-
}
|
|
292
284
|
// endregion
|
|
293
285
|
|
|
294
286
|
// region payment create handlers
|
|
@@ -4,7 +4,9 @@ import com.facebook.react.ReactPackage
|
|
|
4
4
|
import com.facebook.react.bridge.NativeModule
|
|
5
5
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
6
|
import com.facebook.react.uimanager.ViewManager
|
|
7
|
-
import com.primerioreactnative.
|
|
7
|
+
import com.primerioreactnative.components.manager.asset.PrimerRNHeadlessUniversalCheckoutAssetManager
|
|
8
|
+
import com.primerioreactnative.components.manager.nativeUi.PrimerRNHeadlessUniversalCheckoutNativeUiManager
|
|
9
|
+
import com.primerioreactnative.components.manager.raw.PrimerRNHeadlessUniversalCheckoutRawManager
|
|
8
10
|
import kotlinx.serialization.json.Json
|
|
9
11
|
|
|
10
12
|
class ReactNativePackage : ReactPackage {
|
|
@@ -15,7 +17,9 @@ class ReactNativePackage : ReactPackage {
|
|
|
15
17
|
return listOf(
|
|
16
18
|
PrimerRN(reactContext, json),
|
|
17
19
|
PrimerRNHeadlessUniversalCheckout(reactContext, json),
|
|
18
|
-
PrimerRNHeadlessUniversalCheckoutRawManager(reactContext, json)
|
|
20
|
+
PrimerRNHeadlessUniversalCheckoutRawManager(reactContext, json),
|
|
21
|
+
PrimerRNHeadlessUniversalCheckoutNativeUiManager(reactContext),
|
|
22
|
+
PrimerRNHeadlessUniversalCheckoutAssetManager(reactContext)
|
|
19
23
|
)
|
|
20
24
|
}
|
|
21
25
|
|
package/android/src/main/java/com/primerioreactnative/{huc → components}/assets/AssetsManager.kt
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package com.primerioreactnative.
|
|
1
|
+
package com.primerioreactnative.components.assets
|
|
2
2
|
|
|
3
3
|
import android.graphics.Bitmap
|
|
4
4
|
import android.graphics.Canvas
|
|
@@ -7,11 +7,9 @@ import android.graphics.drawable.Drawable
|
|
|
7
7
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
8
8
|
import java.io.File
|
|
9
9
|
import java.io.FileOutputStream
|
|
10
|
-
import java.util.*
|
|
11
10
|
|
|
12
11
|
internal object AssetsManager {
|
|
13
12
|
|
|
14
|
-
private const val ASSETS_DIRECTORY = "primer-sdk"
|
|
15
13
|
private const val COMPRESS_QUALITY = 100
|
|
16
14
|
|
|
17
15
|
fun drawableToBitmap(drawable: Drawable): Bitmap {
|
|
@@ -35,22 +33,15 @@ internal object AssetsManager {
|
|
|
35
33
|
bitmap: Bitmap,
|
|
36
34
|
format: Bitmap.CompressFormat = Bitmap.CompressFormat.PNG,
|
|
37
35
|
) {
|
|
38
|
-
|
|
39
36
|
FileOutputStream(file).use {
|
|
40
37
|
bitmap.compress(format, COMPRESS_QUALITY, it)
|
|
41
38
|
it.close()
|
|
42
39
|
}
|
|
43
40
|
}
|
|
44
41
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
context.filesDir,
|
|
50
|
-
ASSETS_DIRECTORY + File.pathSeparator + path.toLowerCase(Locale.ROOT)
|
|
51
|
-
)
|
|
52
|
-
if (!file.exists()) file.createNewFile()
|
|
53
|
-
return file
|
|
42
|
+
internal enum class ImageColorType {
|
|
43
|
+
COLORED,
|
|
44
|
+
DARK,
|
|
45
|
+
LIGHT
|
|
54
46
|
}
|
|
55
|
-
|
|
56
47
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
package com.primerioreactnative.components.assets
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
4
|
+
import java.io.File
|
|
5
|
+
|
|
6
|
+
internal object CardNetworkImageFileProvider {
|
|
7
|
+
|
|
8
|
+
private const val ASSETS_DIRECTORY = "primer-react-native-sdk"
|
|
9
|
+
|
|
10
|
+
fun getFileForCardNetworkAsset(
|
|
11
|
+
context: ReactApplicationContext,
|
|
12
|
+
path: String,
|
|
13
|
+
): File {
|
|
14
|
+
val directory = File(context.filesDir, ASSETS_DIRECTORY)
|
|
15
|
+
if (!directory.exists()) directory.mkdirs()
|
|
16
|
+
val file = File(
|
|
17
|
+
directory,
|
|
18
|
+
path.lowercase()
|
|
19
|
+
)
|
|
20
|
+
if (!file.exists()) file.createNewFile()
|
|
21
|
+
return file
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
package com.primerioreactnative.components.assets
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
4
|
+
import java.io.File
|
|
5
|
+
|
|
6
|
+
internal object PaymentMethodAssetFileProvider {
|
|
7
|
+
|
|
8
|
+
private const val ASSETS_DIRECTORY = "primer-react-native-sdk"
|
|
9
|
+
|
|
10
|
+
fun getFileForPaymentMethodAsset(
|
|
11
|
+
context: ReactApplicationContext,
|
|
12
|
+
path: String,
|
|
13
|
+
type: AssetsManager.ImageColorType
|
|
14
|
+
): File {
|
|
15
|
+
val directory = File(context.filesDir, ASSETS_DIRECTORY + File.separator + path)
|
|
16
|
+
if (!directory.exists()) directory.mkdirs()
|
|
17
|
+
val file = File(
|
|
18
|
+
directory,
|
|
19
|
+
type.name.lowercase()
|
|
20
|
+
)
|
|
21
|
+
if (!file.exists()) file.createNewFile()
|
|
22
|
+
return file
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
package com.primerioreactnative.components.datamodels.core
|
|
2
|
+
|
|
3
|
+
import io.primer.android.PrimerSessionIntent
|
|
4
|
+
import io.primer.android.components.domain.core.models.PrimerHeadlessUniversalCheckoutPaymentMethod
|
|
5
|
+
import io.primer.android.components.domain.core.models.PrimerPaymentMethodManagerCategory
|
|
6
|
+
import kotlinx.serialization.Serializable
|
|
7
|
+
|
|
8
|
+
@Serializable
|
|
9
|
+
data class PrimerRNAvailablePaymentMethods(
|
|
10
|
+
val availablePaymentMethods: List<PrimerRNHeadlessUniversalCheckoutPaymentMethod>
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
@Serializable
|
|
14
|
+
data class PrimerRNHeadlessUniversalCheckoutPaymentMethod(
|
|
15
|
+
val paymentMethodType: String,
|
|
16
|
+
val supportedPrimerSessionIntents: List<PrimerSessionIntent>,
|
|
17
|
+
val paymentMethodManagerCategories: List<PrimerPaymentMethodManagerCategory>,
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
internal fun PrimerHeadlessUniversalCheckoutPaymentMethod.toPrimerRNHeadlessUniversalCheckoutPaymentMethod() =
|
|
21
|
+
PrimerRNHeadlessUniversalCheckoutPaymentMethod(
|
|
22
|
+
paymentMethodType,
|
|
23
|
+
supportedPrimerSessionIntents,
|
|
24
|
+
paymentMethodManagerCategories.minus(PrimerPaymentMethodManagerCategory.CARD_COMPONENTS)
|
|
25
|
+
)
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
package com.primerioreactnative.components.datamodels.manager.asset
|
|
2
|
+
|
|
3
|
+
import android.graphics.drawable.Drawable
|
|
4
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
5
|
+
import com.primerioreactnative.components.assets.AssetsManager
|
|
6
|
+
import com.primerioreactnative.components.assets.AssetsManager.drawableToBitmap
|
|
7
|
+
import com.primerioreactnative.components.assets.PaymentMethodAssetFileProvider.getFileForPaymentMethodAsset
|
|
8
|
+
import io.primer.android.components.ui.assets.PrimerPaymentMethodAsset
|
|
9
|
+
import kotlinx.serialization.Serializable
|
|
10
|
+
|
|
11
|
+
@Serializable
|
|
12
|
+
data class PrimerRNPaymentMethodAssets(
|
|
13
|
+
val paymentMethodAssets: List<PrimerRNPaymentMethodAsset>
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
@Serializable
|
|
17
|
+
data class PrimerRNPaymentMethodAsset(
|
|
18
|
+
val paymentMethodType: String,
|
|
19
|
+
val paymentMethodLogo: PrimerRNPaymentMethodLogo,
|
|
20
|
+
val paymentMethodBackgroundColor: PrimerRNPaymentMethodBackgroundColor
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
@Serializable
|
|
24
|
+
data class PrimerRNPaymentMethodLogo(
|
|
25
|
+
val colored: String?,
|
|
26
|
+
val light: String?,
|
|
27
|
+
val dark: String?
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
@Serializable
|
|
31
|
+
data class PrimerRNPaymentMethodBackgroundColor(
|
|
32
|
+
val colored: String?,
|
|
33
|
+
val light: String?,
|
|
34
|
+
val dark: String?
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
@Serializable
|
|
38
|
+
data class PrimerCardNetworkAsset(
|
|
39
|
+
val cardNetworkImageURL: String
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
internal fun PrimerPaymentMethodAsset.toPrimerRNPaymentMethodLogo(
|
|
43
|
+
reactContext: ReactApplicationContext,
|
|
44
|
+
paymentMethodType: String,
|
|
45
|
+
) = PrimerRNPaymentMethodAsset(
|
|
46
|
+
paymentMethodType,
|
|
47
|
+
PrimerRNPaymentMethodLogo(
|
|
48
|
+
paymentMethodLogo.colored?.let {
|
|
49
|
+
getFileUrl(
|
|
50
|
+
reactContext,
|
|
51
|
+
paymentMethodType,
|
|
52
|
+
AssetsManager.ImageColorType.COLORED,
|
|
53
|
+
it
|
|
54
|
+
)
|
|
55
|
+
},
|
|
56
|
+
paymentMethodLogo.light?.let {
|
|
57
|
+
getFileUrl(
|
|
58
|
+
reactContext,
|
|
59
|
+
paymentMethodType,
|
|
60
|
+
AssetsManager.ImageColorType.LIGHT,
|
|
61
|
+
it
|
|
62
|
+
)
|
|
63
|
+
},
|
|
64
|
+
paymentMethodLogo.dark?.let {
|
|
65
|
+
getFileUrl(
|
|
66
|
+
reactContext,
|
|
67
|
+
paymentMethodType,
|
|
68
|
+
AssetsManager.ImageColorType.DARK,
|
|
69
|
+
it
|
|
70
|
+
)
|
|
71
|
+
}
|
|
72
|
+
),
|
|
73
|
+
PrimerRNPaymentMethodBackgroundColor(
|
|
74
|
+
paymentMethodBackgroundColor.colored?.let {
|
|
75
|
+
String.format("#%06X", (0xFFFFFF and it))
|
|
76
|
+
},
|
|
77
|
+
paymentMethodBackgroundColor.light?.let {
|
|
78
|
+
String.format("#%06X", (0xFFFFFF and it))
|
|
79
|
+
},
|
|
80
|
+
paymentMethodBackgroundColor.dark?.let {
|
|
81
|
+
String.format("#%06X", (0xFFFFFF and it))
|
|
82
|
+
}
|
|
83
|
+
)
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
private fun getFileUrl(
|
|
88
|
+
reactContext: ReactApplicationContext,
|
|
89
|
+
paymentMethodType: String,
|
|
90
|
+
imageColorType: AssetsManager.ImageColorType,
|
|
91
|
+
drawable: Drawable,
|
|
92
|
+
): String {
|
|
93
|
+
val file = getFileForPaymentMethodAsset(reactContext, paymentMethodType, imageColorType)
|
|
94
|
+
AssetsManager.saveBitmapToFile(
|
|
95
|
+
file,
|
|
96
|
+
drawableToBitmap(drawable),
|
|
97
|
+
)
|
|
98
|
+
return "file://${file.absolutePath}"
|
|
99
|
+
}
|
|
@@ -1,21 +1,19 @@
|
|
|
1
|
-
package com.primerioreactnative.
|
|
1
|
+
package com.primerioreactnative.components.datamodels.manager.raw.card
|
|
2
2
|
|
|
3
|
-
import io.primer.android.components.domain.core.models.card.
|
|
3
|
+
import io.primer.android.components.domain.core.models.card.PrimerCardData
|
|
4
4
|
import kotlinx.serialization.Serializable
|
|
5
5
|
|
|
6
6
|
@Serializable
|
|
7
|
-
internal data class
|
|
7
|
+
internal data class PrimerRNCardData(
|
|
8
8
|
val cardNumber: String? = null,
|
|
9
|
-
val
|
|
10
|
-
val expiryYear: String? = null,
|
|
9
|
+
val expiryDate: String? = null,
|
|
11
10
|
val cvv: String? = null,
|
|
12
11
|
val cardholderName: String? = null
|
|
13
12
|
) {
|
|
14
13
|
fun toPrimerCardData() =
|
|
15
|
-
|
|
14
|
+
PrimerCardData(
|
|
16
15
|
cardNumber.orEmpty(),
|
|
17
|
-
|
|
18
|
-
expiryYear.orEmpty(),
|
|
16
|
+
expiryDate.orEmpty(),
|
|
19
17
|
cvv.orEmpty(),
|
|
20
18
|
cardholderName
|
|
21
19
|
)
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
package com.primerioreactnative.components.datamodels.manager.raw.cardRedirect
|
|
2
|
+
|
|
3
|
+
import io.primer.android.components.domain.core.models.bancontact.PrimerBancontactCardData
|
|
4
|
+
import kotlinx.serialization.Serializable
|
|
5
|
+
|
|
6
|
+
@Serializable
|
|
7
|
+
internal data class PrimerRNBancontactCardData(
|
|
8
|
+
val cardNumber: String? = null,
|
|
9
|
+
val expiryDate: String? = null,
|
|
10
|
+
val expiryYear: String? = null,
|
|
11
|
+
val cardholderName: String? = null
|
|
12
|
+
) {
|
|
13
|
+
fun toPrimerBancontactCardData() =
|
|
14
|
+
PrimerBancontactCardData(
|
|
15
|
+
cardNumber.orEmpty(),
|
|
16
|
+
expiryDate.orEmpty(),
|
|
17
|
+
cardholderName.orEmpty()
|
|
18
|
+
)
|
|
19
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
package com.primerioreactnative.components.datamodels.manager.raw.phoneNumber
|
|
2
|
+
|
|
3
|
+
import io.primer.android.components.domain.core.models.phoneNumber.PrimerPhoneNumberData
|
|
4
|
+
import kotlinx.serialization.Serializable
|
|
5
|
+
|
|
6
|
+
@Serializable
|
|
7
|
+
internal data class PrimerRNPhoneNumberData(
|
|
8
|
+
val phoneNumber: String? = null,
|
|
9
|
+
) {
|
|
10
|
+
fun toPrimerPhoneNumberData() =
|
|
11
|
+
PrimerPhoneNumberData(
|
|
12
|
+
phoneNumber.orEmpty()
|
|
13
|
+
)
|
|
14
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
package com.primerioreactnative.components.datamodels.manager.raw.retailOutlets
|
|
2
|
+
|
|
3
|
+
import io.primer.android.components.domain.core.models.retailOutlet.PrimerRetailerData
|
|
4
|
+
import kotlinx.serialization.Serializable
|
|
5
|
+
|
|
6
|
+
@Serializable
|
|
7
|
+
internal data class PrimerRNRetailOutletData(
|
|
8
|
+
val id: String
|
|
9
|
+
) {
|
|
10
|
+
|
|
11
|
+
fun toPrimerRetailOutletData() = PrimerRetailerData(id)
|
|
12
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package com.primerioreactnative.
|
|
1
|
+
package com.primerioreactnative.components.datamodels.manager.raw.retailOutlets
|
|
2
2
|
|
|
3
3
|
import io.primer.android.data.payments.configure.retailOutlets.RetailOutletsList
|
|
4
4
|
import kotlinx.serialization.Serializable
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
package com.primerioreactnative.components.events
|
|
2
|
+
|
|
3
|
+
internal enum class PrimerHeadlessUniversalCheckoutEvent(val eventName: String) {
|
|
4
|
+
ON_AVAILABLE_PAYMENT_METHODS_LOAD("onAvailablePaymentMethodsLoad"),
|
|
5
|
+
ON_PREPARE_START("onPreparationStart"),
|
|
6
|
+
ON_PAYMENT_METHOD_SHOW("onPaymentMethodShow"),
|
|
7
|
+
ON_TOKENIZE_START("onTokenizationStart"),
|
|
8
|
+
ON_CHECKOUT_COMPLETE("onCheckoutComplete"),
|
|
9
|
+
ON_CHECKOUT_PENDING("onCheckoutPending"),
|
|
10
|
+
ON_BEFORE_CLIENT_SESSION_UPDATE("onBeforeClientSessionUpdate"),
|
|
11
|
+
ON_CLIENT_SESSION_UPDATE("onClientSessionUpdate"),
|
|
12
|
+
ON_BEFORE_PAYMENT_CREATE("onBeforePaymentCreate"),
|
|
13
|
+
ON_TOKENIZE_SUCCESS("onTokenizationSuccess"),
|
|
14
|
+
ON_CHECKOUT_SUCCESS("onCheckoutResume"),
|
|
15
|
+
ON_CHECKOUT_ADDITIONAL_INFO("onCheckoutAdditionalInfo"),
|
|
16
|
+
ON_ERROR("onError"),
|
|
17
|
+
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
package com.primerioreactnative.
|
|
1
|
+
package com.primerioreactnative.components.events
|
|
2
2
|
|
|
3
3
|
internal enum class PrimerHeadlessUniversalCheckoutRawDataManagerEvent(val eventName: String) {
|
|
4
4
|
ON_METADATA_CHANGED("onMetadataChange"),
|
|
5
5
|
ON_VALIDATION_CHANGED("onValidation"),
|
|
6
|
-
ON_NATIVE_ERROR("onNativeError"),
|
|
7
6
|
}
|