@primer-io/react-native 2.16.7 → 2.17.0-rc.10
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 +15 -2
- 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 +106 -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 +13 -9
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerPaymentMethodOptionsRN.kt +3 -3
- 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 +94 -0
- package/ios/Sources/DataModels/RNTNativeError.swift +22 -0
- package/ios/Sources/DataModels/RNTPrimerPaymentMethodAsset.swift +67 -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/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 +86 -0
- package/ios/{RNTPrimer.swift → Sources/RNTPrimer.swift} +37 -28
- 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 +24 -23
- package/lib/commonjs/Primer.js.map +1 -1
- package/lib/commonjs/PrimerInput.js.map +1 -1
- package/lib/commonjs/RNPrimer.js +4 -4
- 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 +24 -23
- package/lib/module/Primer.js.map +1 -1
- package/lib/module/PrimerInput.js.map +1 -1
- package/lib/module/RNPrimer.js +4 -4
- 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 +4 -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 +15 -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 +3 -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 +28 -6
- 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 +32 -31
- package/src/RNPrimer.ts +4 -9
- package/src/index.tsx +43 -29
- package/src/models/PrimerAsset.ts +14 -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 +2 -28
- package/src/models/PrimerPaymentMethodManagerCategory.ts +5 -0
- package/src/models/PrimerRawData.ts +6 -10
- package/src/models/PrimerSettings.ts +42 -16
- 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/ios/{DataModels → Sources/DataModels}/PrimerThemeRN.swift +0 -0
- /package/ios/{Headless Universal Checkout → Sources/Headless Universal Checkout/Managers/Payment Method Managers}/RNTPrimerCardNumberInputElementManager.m +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import Foundation
|
|
2
2
|
import PrimerSDK
|
|
3
3
|
|
|
4
|
-
extension
|
|
4
|
+
extension PrimerBancontactCardData {
|
|
5
5
|
|
|
6
|
-
convenience init?(
|
|
6
|
+
convenience init?(bankcontactCardDataStr: String) {
|
|
7
7
|
do {
|
|
8
|
-
guard let data =
|
|
8
|
+
guard let data = bankcontactCardDataStr.data(using: .utf8) else {
|
|
9
9
|
return nil
|
|
10
10
|
}
|
|
11
11
|
|
|
@@ -16,14 +16,12 @@ extension PrimerBancontactCardRedirectData {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
if let cardNumber = dict["cardNumber"],
|
|
19
|
-
let
|
|
20
|
-
let expiryYear = dict["expiryYear"],
|
|
19
|
+
let expiryDate = dict["expiryDate"],
|
|
21
20
|
let cardholderName = dict["cardholderName"]
|
|
22
21
|
{
|
|
23
22
|
self.init(
|
|
24
23
|
cardNumber: cardNumber,
|
|
25
|
-
|
|
26
|
-
expiryYear: expiryYear,
|
|
24
|
+
expiryDate: expiryDate,
|
|
27
25
|
cardholderName: cardholderName)
|
|
28
26
|
} else {
|
|
29
27
|
return nil
|
|
@@ -33,5 +31,4 @@ extension PrimerBancontactCardRedirectData {
|
|
|
33
31
|
return nil
|
|
34
32
|
}
|
|
35
33
|
}
|
|
36
|
-
|
|
37
34
|
}
|
package/ios/{DataModels/RNTPrimerCardData.swift → Sources/DataModels/PrimerCardData+Extension.swift}
RENAMED
|
@@ -24,14 +24,12 @@ extension PrimerCardData {
|
|
|
24
24
|
|
|
25
25
|
if let cardNumber = dict["cardNumber"],
|
|
26
26
|
let cvv = dict["cvv"],
|
|
27
|
-
let
|
|
28
|
-
let expiryYear = dict["expiryYear"]
|
|
27
|
+
let expiryDate = dict["expiryDate"]
|
|
29
28
|
{
|
|
30
29
|
let cardholderName = dict["cardholderName"]
|
|
31
30
|
self.init(
|
|
32
31
|
cardNumber: cardNumber,
|
|
33
|
-
|
|
34
|
-
expiryYear: expiryYear,
|
|
32
|
+
expiryDate: expiryDate,
|
|
35
33
|
cvv: cvv,
|
|
36
34
|
cardholderName: cardholderName)
|
|
37
35
|
} else {
|
|
@@ -42,5 +40,4 @@ extension PrimerCardData {
|
|
|
42
40
|
return nil
|
|
43
41
|
}
|
|
44
42
|
}
|
|
45
|
-
|
|
46
43
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//
|
|
2
|
+
// PrimerHeadlessUniversalCheckout_PaymentMethod.swift
|
|
3
|
+
// primer-io-react-native
|
|
4
|
+
//
|
|
5
|
+
// Created by Evangelos on 7/10/22.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
import PrimerSDK
|
|
10
|
+
|
|
11
|
+
extension PrimerHeadlessUniversalCheckout.PaymentMethod {
|
|
12
|
+
|
|
13
|
+
func toJsonObject() -> [String: Any] {
|
|
14
|
+
return [
|
|
15
|
+
"paymentMethodType": paymentMethodType,
|
|
16
|
+
"supportedPrimerSessionIntents": self.supportedPrimerSessionIntents.compactMap({ $0.rawValue }),
|
|
17
|
+
"paymentMethodManagerCategories": self.paymentMethodManagerCategories.compactMap({ $0.rawValue }).filter({ $0 != "CARD_COMPONENTS" })
|
|
18
|
+
]
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
import Foundation
|
|
9
9
|
import PrimerSDK
|
|
10
10
|
|
|
11
|
-
extension
|
|
11
|
+
extension PrimerRetailerData {
|
|
12
12
|
|
|
13
|
-
convenience init?(
|
|
13
|
+
convenience init?(primerRetailerDataStr: String) {
|
|
14
14
|
do {
|
|
15
|
-
guard let data =
|
|
15
|
+
guard let data = primerRetailerDataStr.data(using: .utf8) else {
|
|
16
16
|
return nil
|
|
17
17
|
}
|
|
18
18
|
|
|
@@ -34,5 +34,4 @@ extension PrimerRawRetailerData {
|
|
|
34
34
|
return nil
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
|
|
38
37
|
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import PrimerSDK
|
|
2
|
+
|
|
3
|
+
extension PrimerSettings {
|
|
4
|
+
|
|
5
|
+
convenience init(settingsStr: String?) throws {
|
|
6
|
+
if settingsStr == nil {
|
|
7
|
+
self.init()
|
|
8
|
+
} else {
|
|
9
|
+
guard let settingsData = settingsStr!.data(using: .utf8) else {
|
|
10
|
+
let err = RNTNativeError(errorId: "native-ios", errorDescription: "The value of the 'settings' object is invalid.", recoverySuggestion: "Provide a valid 'settings' object")
|
|
11
|
+
throw err
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
let settingsJson = try JSONSerialization.jsonObject(with: settingsData)
|
|
15
|
+
|
|
16
|
+
guard let settingsJson = settingsJson as? [String: Any] else {
|
|
17
|
+
let err = RNTNativeError(errorId: "native-ios", errorDescription: "The 'settings' object is not a valid JSON", recoverySuggestion: "Provide a valid 'settings' object")
|
|
18
|
+
throw err
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
var paymentHandling: PrimerPaymentHandling = .auto
|
|
22
|
+
if let rnPaymentHandling = settingsJson["paymentHandling"] as? String,
|
|
23
|
+
rnPaymentHandling == "MANUAL" {
|
|
24
|
+
paymentHandling = .manual
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
let rnLocaleDataLanguageCode = (settingsJson["localeData"] as? [String: Any])?["languageCode"] as? String
|
|
28
|
+
let rnLocaleDataLocaleCode = (settingsJson["localeData"] as? [String: Any])?["localeCode"] as? String
|
|
29
|
+
let localeData = PrimerLocaleData(
|
|
30
|
+
languageCode: rnLocaleDataLanguageCode,
|
|
31
|
+
regionCode: rnLocaleDataLocaleCode)
|
|
32
|
+
|
|
33
|
+
let rnUrlScheme = ((settingsJson["paymentMethodOptions"] as? [String: Any])?["iOS"] as? [String: Any])?["urlScheme"] as? String
|
|
34
|
+
|
|
35
|
+
var applePayOptions: PrimerApplePayOptions?
|
|
36
|
+
if let rnApplePayOptions = ((settingsJson["paymentMethodOptions"] as? [String: Any])?["applePayOptions"] as? [String: Any]),
|
|
37
|
+
let rnApplePayMerchantIdentifier = rnApplePayOptions["merchantIdentifier"] as? String,
|
|
38
|
+
let rnApplePayMerchantName = rnApplePayOptions["merchantName"] as? String
|
|
39
|
+
{
|
|
40
|
+
let rnApplePayIsCaptureBillingAddressEnabled = (rnApplePayOptions["isCaptureBillingAddressEnabled"] as? Bool) ?? false
|
|
41
|
+
|
|
42
|
+
applePayOptions = PrimerApplePayOptions(
|
|
43
|
+
merchantIdentifier: rnApplePayMerchantIdentifier,
|
|
44
|
+
merchantName: rnApplePayMerchantName,
|
|
45
|
+
isCaptureBillingAddressEnabled: rnApplePayIsCaptureBillingAddressEnabled )
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
var klarnaOptions: PrimerKlarnaOptions?
|
|
49
|
+
if let rnKlarnaRecurringPaymentDescription = ((settingsJson["paymentMethodOptions"] as? [String: Any])?["klarnaOptions"] as? [String: Any])?["recurringPaymentDescription"] as? String {
|
|
50
|
+
klarnaOptions = PrimerKlarnaOptions(recurringPaymentDescription: rnKlarnaRecurringPaymentDescription)
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
var uiOptions: PrimerUIOptions?
|
|
54
|
+
if let rnUIOptions = settingsJson["uiOptions"] as? [String: Any] {
|
|
55
|
+
|
|
56
|
+
var theme: PrimerTheme?
|
|
57
|
+
if let rnTheme = rnUIOptions["theme"] as? [String: Any] {
|
|
58
|
+
let rnThemeData = (try JSONSerialization.data(withJSONObject: rnTheme))
|
|
59
|
+
let rnTheme = try JSONDecoder().decode(PrimerThemeRN.self, from: rnThemeData)
|
|
60
|
+
theme = rnTheme.asPrimerTheme()
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
uiOptions = PrimerUIOptions(
|
|
64
|
+
isInitScreenEnabled: rnUIOptions["isInitScreenEnabled"] as? Bool,
|
|
65
|
+
isSuccessScreenEnabled: rnUIOptions["isSuccessScreenEnabled"] as? Bool,
|
|
66
|
+
isErrorScreenEnabled: rnUIOptions["isErrorScreenEnabled"] as? Bool,
|
|
67
|
+
theme: theme)
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
var debugOptions: PrimerDebugOptions?
|
|
71
|
+
if let rnIs3DSSanityCheckEnabled = (settingsJson["debugOptions"] as? [String: Any])?["is3DSSanityCheckEnabled"] as? Bool {
|
|
72
|
+
debugOptions = PrimerDebugOptions(is3DSSanityCheckEnabled: rnIs3DSSanityCheckEnabled)
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
var threeDsOptions: PrimerThreeDsOptions?
|
|
76
|
+
if let rnThreeDsAppRequestorUrlStr = (((settingsJson["paymentMethodOptions"] as? [String: Any])?["threeDsOptions"] as? [String: Any])?["iOS"] as? [String: Any])?["threeDsAppRequestorUrl"] as? String {
|
|
77
|
+
threeDsOptions = PrimerThreeDsOptions(threeDsAppRequestorUrl: rnThreeDsAppRequestorUrlStr)
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
let paymentMethodOptions = PrimerPaymentMethodOptions(
|
|
81
|
+
urlScheme: rnUrlScheme,
|
|
82
|
+
applePayOptions: applePayOptions,
|
|
83
|
+
klarnaOptions: klarnaOptions,
|
|
84
|
+
threeDsOptions: threeDsOptions)
|
|
85
|
+
|
|
86
|
+
self.init(
|
|
87
|
+
paymentHandling: paymentHandling,
|
|
88
|
+
localeData: localeData,
|
|
89
|
+
paymentMethodOptions: paymentMethodOptions,
|
|
90
|
+
uiOptions: uiOptions,
|
|
91
|
+
debugOptions: debugOptions)
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
|
|
2
|
+
import Foundation
|
|
3
|
+
|
|
4
|
+
struct RNTNativeError: CustomNSError, LocalizedError, Codable {
|
|
5
|
+
|
|
6
|
+
let errorId: String
|
|
7
|
+
let errorDescription: String?
|
|
8
|
+
let recoverySuggestion: String?
|
|
9
|
+
|
|
10
|
+
var rnError: [String: String] {
|
|
11
|
+
var json: [String: String] = [
|
|
12
|
+
"errorId": errorId,
|
|
13
|
+
"description": errorDescription ?? "Something went wrong"
|
|
14
|
+
]
|
|
15
|
+
|
|
16
|
+
if let recoverySuggestion = recoverySuggestion {
|
|
17
|
+
json["recoverySuggestion"] = recoverySuggestion
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
return json
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
//
|
|
2
|
+
// RNTPrimerPaymentMethodAsset.swift
|
|
3
|
+
// primer-io-react-native
|
|
4
|
+
//
|
|
5
|
+
// Created by Evangelos on 6/10/22.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
import PrimerSDK
|
|
10
|
+
|
|
11
|
+
struct RNTPrimerPaymentMethodAsset: Codable {
|
|
12
|
+
|
|
13
|
+
let paymentMethodType: String
|
|
14
|
+
let paymentMethodName: String
|
|
15
|
+
let paymentMethodLogo: RNTPrimerPaymentMethodLogo
|
|
16
|
+
let paymentMethodBackgroundColor: RNTPrimerPaymentMethodBackgroundColor
|
|
17
|
+
|
|
18
|
+
init(primerPaymentMethodAsset: PrimerPaymentMethodAsset) {
|
|
19
|
+
self.paymentMethodType = primerPaymentMethodAsset.paymentMethodType
|
|
20
|
+
self.paymentMethodName = primerPaymentMethodAsset.paymentMethodName
|
|
21
|
+
self.paymentMethodLogo = RNTPrimerPaymentMethodLogo(
|
|
22
|
+
paymentMethodType: primerPaymentMethodAsset.paymentMethodType,
|
|
23
|
+
primerPaymentMethodLogo: primerPaymentMethodAsset.paymentMethodLogo)
|
|
24
|
+
self.paymentMethodBackgroundColor = RNTPrimerPaymentMethodBackgroundColor(
|
|
25
|
+
primerPaymentMethodBackgroundColor: primerPaymentMethodAsset.paymentMethodBackgroundColor)
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
struct RNTPrimerPaymentMethodLogo: Codable {
|
|
30
|
+
|
|
31
|
+
let colored: String?
|
|
32
|
+
let dark: String?
|
|
33
|
+
let light: String?
|
|
34
|
+
|
|
35
|
+
init(paymentMethodType: String, primerPaymentMethodLogo: PrimerPaymentMethodLogo) {
|
|
36
|
+
self.colored = (try? primerPaymentMethodLogo.colored?.store(withName: "\(paymentMethodType)-colored").absoluteString) ?? nil
|
|
37
|
+
self.dark = (try? primerPaymentMethodLogo.dark?.store(withName: "\(paymentMethodType)-dark").absoluteString) ?? nil
|
|
38
|
+
self.light = (try? primerPaymentMethodLogo.light?.store(withName: "\(paymentMethodType)-light").absoluteString) ?? nil
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
struct RNTPrimerPaymentMethodBackgroundColor: Codable {
|
|
43
|
+
|
|
44
|
+
let colored: String?
|
|
45
|
+
let dark: String?
|
|
46
|
+
let light: String?
|
|
47
|
+
|
|
48
|
+
init(primerPaymentMethodBackgroundColor: PrimerPaymentMethodBackgroundColor) {
|
|
49
|
+
if let bgColoredHex = primerPaymentMethodBackgroundColor.colored?.toHex() {
|
|
50
|
+
self.colored = "#\(bgColoredHex)"
|
|
51
|
+
} else {
|
|
52
|
+
self.colored = nil
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
if let darkColoredHex = primerPaymentMethodBackgroundColor.dark?.toHex() {
|
|
56
|
+
self.dark = "#\(darkColoredHex)"
|
|
57
|
+
} else {
|
|
58
|
+
self.dark = nil
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
if let lightColoredHex = primerPaymentMethodBackgroundColor.light?.toHex() {
|
|
62
|
+
self.light = "#\(lightColoredHex)"
|
|
63
|
+
} else {
|
|
64
|
+
self.light = nil
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//
|
|
2
|
+
// NativeUIManager.m
|
|
3
|
+
// primer-io-react-native
|
|
4
|
+
//
|
|
5
|
+
// Created by Evangelos on 7/10/22.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#import <React/RCTBridgeModule.h>
|
|
9
|
+
#import <React/RCTEventEmitter.h>
|
|
10
|
+
|
|
11
|
+
@interface RCT_EXTERN_MODULE(RNTPrimerHeadlessUniversalPaymentMethodNativeUIManager, RCTEventEmitter)
|
|
12
|
+
|
|
13
|
+
// MARK: - API
|
|
14
|
+
|
|
15
|
+
RCT_EXTERN_METHOD(configure: (NSString *)paymentMethod resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
16
|
+
|
|
17
|
+
RCT_EXTERN_METHOD(showPaymentMethod:(NSString *)intentStr resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
18
|
+
|
|
19
|
+
@end
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
//
|
|
2
|
+
// NativeUIManager.swift
|
|
3
|
+
// primer-io-react-native
|
|
4
|
+
//
|
|
5
|
+
// Created by Evangelos on 6/10/22.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
import PrimerSDK
|
|
10
|
+
|
|
11
|
+
@objc(RNTPrimerHeadlessUniversalPaymentMethodNativeUIManager)
|
|
12
|
+
class RNTPrimerHeadlessUniversalPaymentMethodNativeUIManager: RCTEventEmitter {
|
|
13
|
+
|
|
14
|
+
var paymentMethodNativeUIManager: PrimerSDK.PrimerHeadlessUniversalCheckout.NativeUIManager!
|
|
15
|
+
|
|
16
|
+
override func supportedEvents() -> [String]! {
|
|
17
|
+
return []
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
override class func requiresMainQueueSetup() -> Bool {
|
|
21
|
+
return true
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@objc
|
|
25
|
+
func configure(
|
|
26
|
+
_ paymentMethod: String,
|
|
27
|
+
resolver: @escaping RCTPromiseResolveBlock,
|
|
28
|
+
rejecter: @escaping RCTPromiseRejectBlock
|
|
29
|
+
) {
|
|
30
|
+
do {
|
|
31
|
+
self.paymentMethodNativeUIManager = try PrimerSDK.PrimerHeadlessUniversalCheckout.NativeUIManager(paymentMethodType: paymentMethod)
|
|
32
|
+
resolver(nil)
|
|
33
|
+
} catch {
|
|
34
|
+
rejecter(error.rnError["errorId"]!, error.rnError["description"], error)
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@objc
|
|
39
|
+
func showPaymentMethod(_ intentStr: String, resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
|
40
|
+
do {
|
|
41
|
+
guard let paymentMethodNativeUIManager = paymentMethodNativeUIManager else {
|
|
42
|
+
let err = RNTNativeError(
|
|
43
|
+
errorId: "native-ios",
|
|
44
|
+
errorDescription: "The NativeUIManager has not been initialized.",
|
|
45
|
+
recoverySuggestion: "Initialize the NativeUIManager by calling the initialize function and providing a payment method type.")
|
|
46
|
+
throw err
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
guard let intent = PrimerSessionIntent(rawValue: intentStr) else {
|
|
50
|
+
let err = RNTNativeError(
|
|
51
|
+
errorId: "native-ios",
|
|
52
|
+
errorDescription: "Invalid value for 'intent'.",
|
|
53
|
+
recoverySuggestion: "'intent' can be 'CHECKOUT' or 'VAULT'.")
|
|
54
|
+
throw err
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
try paymentMethodNativeUIManager.showPaymentMethod(intent: intent)
|
|
58
|
+
|
|
59
|
+
} catch {
|
|
60
|
+
rejecter(error.rnError["errorId"]!, error.rnError["description"], error)
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
package/ios/Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNTRawDataManager.m
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
//
|
|
2
|
+
// RNTPrimerHeadlessUniversalCheckoutRawDataManager.m
|
|
3
|
+
// primer-io-react-native
|
|
4
|
+
//
|
|
5
|
+
// Created by Evangelos on 3/8/22.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#import <React/RCTBridgeModule.h>
|
|
9
|
+
#import <React/RCTEventEmitter.h>
|
|
10
|
+
|
|
11
|
+
@interface RCT_EXTERN_MODULE(RNTPrimerHeadlessUniversalCheckoutRawDataManager, RCTEventEmitter)
|
|
12
|
+
|
|
13
|
+
RCT_EXTERN_METHOD(configure:(NSString *)paymentMethodTypeStr resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
|
|
14
|
+
|
|
15
|
+
RCT_EXTERN_METHOD(listRequiredInputElementTypes:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
|
|
16
|
+
|
|
17
|
+
RCT_EXTERN_METHOD(setRawData:(NSString *)rawDataStr resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
|
|
18
|
+
|
|
19
|
+
RCT_EXTERN_METHOD(submit:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
|
|
20
|
+
|
|
21
|
+
RCT_EXTERN_METHOD(cleanUp:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
|
|
22
|
+
|
|
23
|
+
@end
|
|
@@ -13,7 +13,6 @@ enum PrimerHeadlessUniversalCheckoutRawDataManagerEvents: Int, CaseIterable {
|
|
|
13
13
|
|
|
14
14
|
case onMetadataChange = 0
|
|
15
15
|
case onValidation
|
|
16
|
-
case onNativeError
|
|
17
16
|
|
|
18
17
|
var stringValue: String {
|
|
19
18
|
switch self {
|
|
@@ -21,13 +20,11 @@ enum PrimerHeadlessUniversalCheckoutRawDataManagerEvents: Int, CaseIterable {
|
|
|
21
20
|
return "onMetadataChange"
|
|
22
21
|
case .onValidation:
|
|
23
22
|
return "onValidation"
|
|
24
|
-
case .onNativeError:
|
|
25
|
-
return "onNativeError"
|
|
26
23
|
}
|
|
27
24
|
}
|
|
28
25
|
}
|
|
29
26
|
|
|
30
|
-
@objc(
|
|
27
|
+
@objc(RNTPrimerHeadlessUniversalCheckoutRawDataManager)
|
|
31
28
|
class RNTPrimerHeadlessUniversalCheckoutRawDataManager: RCTEventEmitter {
|
|
32
29
|
|
|
33
30
|
private var rawDataManager: PrimerHeadlessUniversalCheckout.RawDataManager!
|
|
@@ -44,32 +41,20 @@ class RNTPrimerHeadlessUniversalCheckoutRawDataManager: RCTEventEmitter {
|
|
|
44
41
|
// MARK: - API
|
|
45
42
|
|
|
46
43
|
@objc
|
|
47
|
-
public func
|
|
44
|
+
public func configure(
|
|
48
45
|
_ paymentMethodTypeStr: String,
|
|
49
|
-
resolver: RCTPromiseResolveBlock,
|
|
50
|
-
rejecter: RCTPromiseRejectBlock
|
|
46
|
+
resolver: @escaping RCTPromiseResolveBlock,
|
|
47
|
+
rejecter: @escaping RCTPromiseRejectBlock
|
|
51
48
|
) {
|
|
52
49
|
self.paymentMethodType = paymentMethodTypeStr
|
|
53
50
|
|
|
54
51
|
do {
|
|
55
|
-
self.rawDataManager = try PrimerHeadlessUniversalCheckout.RawDataManager(paymentMethodType: self.paymentMethodType
|
|
56
|
-
self.rawDataManager.delegate = self
|
|
57
|
-
resolver(nil)
|
|
52
|
+
self.rawDataManager = try PrimerHeadlessUniversalCheckout.RawDataManager(paymentMethodType: self.paymentMethodType!, delegate: self)
|
|
58
53
|
} catch {
|
|
59
54
|
rejecter(error.rnError["errorId"]!, error.rnError["description"], error)
|
|
60
55
|
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
@objc
|
|
64
|
-
public func configure(_ resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
|
65
|
-
|
|
66
|
-
guard let rawDataManager = rawDataManager else {
|
|
67
|
-
let err = NSError(domain: "native-bridge", code: 1, userInfo: [NSLocalizedDescriptionKey: "The PrimerHeadlessUniversalCheckoutRawDataManager has not been initialized. Make sure you have called the PrimerHeadlessUniversalCheckoutRawDataManager.initialize function first."])
|
|
68
|
-
rejecter(err.rnError["errorId"]!, err.rnError["description"], err)
|
|
69
|
-
return
|
|
70
|
-
}
|
|
71
56
|
|
|
72
|
-
rawDataManager
|
|
57
|
+
self.rawDataManager!.configure { data, error in
|
|
73
58
|
do {
|
|
74
59
|
guard error == nil else {
|
|
75
60
|
rejecter(error!.rnError["errorId"]!, error!.rnError["description"], error)
|
|
@@ -85,13 +70,15 @@ class RNTPrimerHeadlessUniversalCheckoutRawDataManager: RCTEventEmitter {
|
|
|
85
70
|
}
|
|
86
71
|
|
|
87
72
|
@objc
|
|
88
|
-
public func
|
|
89
|
-
_
|
|
90
|
-
resolver: RCTPromiseResolveBlock,
|
|
73
|
+
public func listRequiredInputElementTypes(
|
|
74
|
+
_ resolver: RCTPromiseResolveBlock,
|
|
91
75
|
rejecter: RCTPromiseRejectBlock
|
|
92
76
|
) {
|
|
93
77
|
guard let rawDataManager = rawDataManager else {
|
|
94
|
-
let err =
|
|
78
|
+
let err = RNTNativeError(
|
|
79
|
+
errorId: "native-ios",
|
|
80
|
+
errorDescription: "The RawDataManager has not been initialized",
|
|
81
|
+
recoverySuggestion: "Make sure you have called initialized the `RawDataManager' first.")
|
|
95
82
|
rejecter(err.rnError["errorId"]!, err.rnError["description"], err)
|
|
96
83
|
return
|
|
97
84
|
}
|
|
@@ -107,7 +94,10 @@ class RNTPrimerHeadlessUniversalCheckoutRawDataManager: RCTEventEmitter {
|
|
|
107
94
|
rejecter: RCTPromiseRejectBlock
|
|
108
95
|
) {
|
|
109
96
|
guard let rawDataManager = rawDataManager else {
|
|
110
|
-
let err =
|
|
97
|
+
let err = RNTNativeError(
|
|
98
|
+
errorId: "native-ios",
|
|
99
|
+
errorDescription: "The RawDataManager has not been initialized",
|
|
100
|
+
recoverySuggestion: "Make sure you have called initialized the `RawDataManager' first.")
|
|
111
101
|
rejecter(err.rnError["errorId"]!, err.rnError["description"], err)
|
|
112
102
|
return
|
|
113
103
|
}
|
|
@@ -124,19 +114,22 @@ class RNTPrimerHeadlessUniversalCheckoutRawDataManager: RCTEventEmitter {
|
|
|
124
114
|
return
|
|
125
115
|
}
|
|
126
116
|
|
|
127
|
-
if let rawCardRedirectData =
|
|
117
|
+
if let rawCardRedirectData = PrimerBancontactCardData(bankcontactCardDataStr: rawDataStr) {
|
|
128
118
|
rawDataManager.rawData = rawCardRedirectData
|
|
129
119
|
resolver(nil)
|
|
130
120
|
return
|
|
131
121
|
}
|
|
132
122
|
|
|
133
|
-
if let rawRetailerData =
|
|
123
|
+
if let rawRetailerData = PrimerRetailerData(primerRetailerDataStr: rawDataStr) {
|
|
134
124
|
rawDataManager.rawData = rawRetailerData
|
|
135
125
|
resolver(nil)
|
|
136
126
|
return
|
|
137
127
|
}
|
|
138
128
|
|
|
139
|
-
let err =
|
|
129
|
+
let err = RNTNativeError(
|
|
130
|
+
errorId: "native-ios",
|
|
131
|
+
errorDescription: "Failed to decode RawData on iOS.",
|
|
132
|
+
recoverySuggestion: "Make sure you're providing a valid 'RawData' (or any inherited) object.")
|
|
140
133
|
rejecter(err.rnError["errorId"]!, err.rnError["description"], err)
|
|
141
134
|
}
|
|
142
135
|
|
|
@@ -146,7 +139,10 @@ class RNTPrimerHeadlessUniversalCheckoutRawDataManager: RCTEventEmitter {
|
|
|
146
139
|
rejecter: RCTPromiseRejectBlock
|
|
147
140
|
) {
|
|
148
141
|
guard let rawDataManager = rawDataManager else {
|
|
149
|
-
let err =
|
|
142
|
+
let err = RNTNativeError(
|
|
143
|
+
errorId: "native-ios",
|
|
144
|
+
errorDescription: "The RawDataManager has not been initialized",
|
|
145
|
+
recoverySuggestion: "Make sure you have called initialized the `RawDataManager' first.")
|
|
150
146
|
rejecter(err.rnError["errorId"]!, err.rnError["description"], err)
|
|
151
147
|
return
|
|
152
148
|
}
|
|
@@ -154,9 +150,18 @@ class RNTPrimerHeadlessUniversalCheckoutRawDataManager: RCTEventEmitter {
|
|
|
154
150
|
rawDataManager.submit()
|
|
155
151
|
resolver(nil)
|
|
156
152
|
}
|
|
153
|
+
|
|
154
|
+
@objc
|
|
155
|
+
public func cleanUp(
|
|
156
|
+
_ resolver: RCTPromiseResolveBlock,
|
|
157
|
+
rejecter: RCTPromiseRejectBlock
|
|
158
|
+
) {
|
|
159
|
+
|
|
160
|
+
}
|
|
161
|
+
|
|
157
162
|
}
|
|
158
163
|
|
|
159
|
-
extension RNTPrimerHeadlessUniversalCheckoutRawDataManager:
|
|
164
|
+
extension RNTPrimerHeadlessUniversalCheckoutRawDataManager: PrimerHeadlessUniversalCheckoutRawDataManagerDelegate {
|
|
160
165
|
|
|
161
166
|
func primerRawDataManager(_ rawDataManager: PrimerHeadlessUniversalCheckout.RawDataManager, metadataDidChange metadata: [String : Any]?) {
|
|
162
167
|
DispatchQueue.main.async {
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
//
|
|
2
|
+
// RNTAssetsManager.m
|
|
3
|
+
// primer-io-react-native
|
|
4
|
+
//
|
|
5
|
+
// Created by Evangelos on 6/10/22.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#import <React/RCTBridgeModule.h>
|
|
9
|
+
#import <React/RCTEventEmitter.h>
|
|
10
|
+
|
|
11
|
+
@interface RCT_EXTERN_MODULE(RNTPrimerHeadlessUniversalCheckoutAssetsManager, RCTEventEmitter)
|
|
12
|
+
|
|
13
|
+
RCT_EXTERN_METHOD(getCardNetworkImage:(NSString *)cardNetworkStr
|
|
14
|
+
resolver:(RCTPromiseResolveBlock)resolver
|
|
15
|
+
rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
16
|
+
|
|
17
|
+
RCT_EXTERN_METHOD(getPaymentMethodAsset:(NSString *)paymentMethodType
|
|
18
|
+
resolver:(RCTPromiseResolveBlock)resolver
|
|
19
|
+
rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
20
|
+
|
|
21
|
+
RCT_EXTERN_METHOD(getPaymentMethodAssets:(RCTPromiseResolveBlock)resolver
|
|
22
|
+
rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
23
|
+
|
|
24
|
+
@end
|