@primer-io/react-native 2.16.2 → 2.17.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/.project +2 -2
- package/android/build.gradle +2 -3
- package/android/gradle.properties +1 -1
- package/android/src/main/java/com/primerioreactnative/PrimerCardNumberEditTextManager.kt +0 -15
- package/android/src/main/java/com/primerioreactnative/PrimerRN.kt +13 -34
- package/android/src/main/java/com/primerioreactnative/PrimerRNEventListener.kt +23 -8
- package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckout.kt +20 -120
- package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckoutListener.kt +61 -69
- package/android/src/main/java/com/primerioreactnative/ReactNativePackage.kt +6 -2
- package/android/src/main/java/com/primerioreactnative/{huc → components}/assets/AssetsManager.kt +5 -14
- package/android/src/main/java/com/primerioreactnative/components/assets/CardNetworkImageFileProvider.kt +23 -0
- package/android/src/main/java/com/primerioreactnative/components/assets/PaymentMethodAssetFileProvider.kt +24 -0
- package/android/src/main/java/com/primerioreactnative/components/datamodels/core/PrimerRNHeadlessUniversalCheckoutPaymentMethod.kt +25 -0
- package/android/src/main/java/com/primerioreactnative/components/datamodels/core/PrimerRawPaymentMethodType.kt +9 -0
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/asset/PrimerRNAsset.kt +99 -0
- package/android/src/main/java/com/primerioreactnative/{huc/datamodels/manager/raw/card/PrimerRNRawCardData.kt → components/datamodels/manager/raw/card/PrimerRNCardData.kt} +6 -8
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/cardRedirect/PrimerRNCardRedirectData.kt +19 -0
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/phoneNumber/PrimerRNPhoneNumberData.kt +14 -0
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/retailOutlets/PrimerRNRetailOutletData.kt +12 -0
- package/android/src/main/java/com/primerioreactnative/{huc → components}/datamodels/manager/raw/retailOutlets/RNRetailOutletsList.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/components/events/PrimerHeadlessUniversalCheckoutEvent.kt +17 -0
- package/android/src/main/java/com/primerioreactnative/{huc → components}/events/PrimerHeadlessUniversalCheckoutRawDataManagerEvent.kt +1 -2
- package/android/src/main/java/com/primerioreactnative/components/manager/asset/PrimerRNHeadlessUniversalCheckoutAssetManager.kt +131 -0
- package/android/src/main/java/com/primerioreactnative/components/manager/nativeUi/PrimerRNHeadlessUniversalCheckoutNativeUiManager.kt +87 -0
- package/android/src/main/java/com/primerioreactnative/{huc → components}/manager/raw/PrimerRNHeadlessUniversalCheckoutRawManager.kt +72 -68
- package/android/src/main/java/com/primerioreactnative/{huc → components}/manager/raw/PrimerRNHeadlessUniversalCheckoutRawManagerListener.kt +13 -5
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerErrorRN.kt +5 -4
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerInputValidationErrorRN.kt +11 -0
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerSettingsRN.kt +0 -8
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerPaymentMethodOptionsRN.kt +0 -4
- package/android/src/main/java/com/primerioreactnative/utils/PrimerHeadlessUniversalCheckoutImplementedRNCallbacks.kt +15 -15
- package/android/src/main/java/com/primerioreactnative/utils/PrimerImplementedRNCallbacks.kt +7 -7
- package/ios/Podfile.lock +1 -1
- package/ios/ReactNative.xcodeproj/project.pbxproj +20 -20
- package/ios/Sources/DataModels/ImplementedRNCallbacks.swift +75 -0
- package/ios/{DataModels/RNTPrimerCardRedirectData.swift → Sources/DataModels/PrimerBancontactCardRedirectData+Extension.swift} +5 -8
- package/ios/{DataModels/RNTPrimerCardData.swift → Sources/DataModels/PrimerCardData+Extension.swift} +2 -5
- package/ios/Sources/DataModels/PrimerHeadlessUniversalCheckout_PaymentMethod.swift +20 -0
- package/ios/{DataModels/RNTPrimerPhoneNumberData.swift → Sources/DataModels/PrimerPhoneNumberData+Extension.swift} +0 -1
- package/ios/{DataModels/RNTPrimerRetailerData.swift → Sources/DataModels/PrimerRawRetailerData+Extension.swift} +3 -4
- package/ios/Sources/DataModels/PrimerSettings+Extensions.swift +82 -0
- package/ios/{DataModels → Sources/DataModels}/PrimerThemeRN.swift +0 -0
- package/ios/Sources/DataModels/RNTNativeError.swift +22 -0
- package/ios/Sources/DataModels/RNTPrimerPaymentMethodAsset.swift +65 -0
- package/ios/Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNTNativeUIManager.m +19 -0
- package/ios/Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNTNativeUIManager.swift +63 -0
- package/ios/{Headless Universal Checkout → Sources/Headless Universal Checkout/Managers/Payment Method Managers}/RNTPrimerCardNumberInputElementManager.m +0 -0
- package/ios/Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNTRawDataManager.m +23 -0
- package/ios/{Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckoutRawDataManager.swift → Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNTRawDataManager.swift } +36 -31
- package/ios/Sources/Headless Universal Checkout/Managers/RNTAssetsManager.m +24 -0
- package/ios/Sources/Headless Universal Checkout/Managers/RNTAssetsManager.swift +107 -0
- package/ios/Sources/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.m +41 -0
- package/ios/Sources/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.swift +498 -0
- package/ios/Sources/Helpers/Encodable+Extension.swift +17 -0
- package/ios/Sources/Helpers/Error+Extensions.swift +39 -0
- package/ios/Sources/Helpers/UIColor+Extensions.swift +32 -0
- package/ios/Sources/Helpers/UIImage+Extensions.swift +32 -0
- package/ios/Sources/RNTPrimer.m +80 -0
- package/ios/{RNTPrimer.swift → Sources/RNTPrimer.swift} +20 -34
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/AssetsManager.js +59 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +1 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js +35 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js.map +1 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js +151 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js.map +1 -0
- package/lib/commonjs/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js +270 -0
- package/lib/commonjs/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js.map +1 -0
- package/lib/commonjs/{headless_checkout → HeadlessUniversalCheckout}/RNPrimerHeadlessUniversalCheckout.js +7 -81
- package/lib/commonjs/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js.map +1 -0
- package/lib/commonjs/HeadlessUniversalCheckout/types.js +34 -0
- package/lib/commonjs/HeadlessUniversalCheckout/types.js.map +1 -0
- package/lib/commonjs/Primer.js +52 -52
- package/lib/commonjs/Primer.js.map +1 -1
- package/lib/commonjs/PrimerInput.js.map +1 -1
- package/lib/commonjs/RNPrimer.js +2 -12
- package/lib/commonjs/RNPrimer.js.map +1 -1
- package/lib/commonjs/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js.map +1 -1
- package/lib/commonjs/index.js +63 -71
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/models/PrimerAsset.js +2 -0
- package/lib/commonjs/models/PrimerAsset.js.map +1 -0
- package/lib/commonjs/models/PrimerCheckoutAdditionalInfo.js.map +1 -1
- package/lib/commonjs/models/PrimerCheckoutData.js.map +1 -1
- package/lib/commonjs/models/PrimerCheckoutPaymentMethodData.js.map +1 -1
- package/lib/commonjs/models/PrimerClientSession.js.map +1 -1
- package/lib/commonjs/models/PrimerCountryCode.js.map +1 -1
- package/lib/commonjs/models/PrimerCurrencyCode.js.map +1 -1
- package/lib/commonjs/models/PrimerError.js +4 -4
- package/lib/commonjs/models/PrimerError.js.map +1 -1
- package/lib/commonjs/models/PrimerHandlers.js +2 -0
- package/lib/commonjs/models/PrimerHandlers.js.map +1 -0
- package/lib/commonjs/models/PrimerHeadlessUniversalCheckoutPaymentMethod.js +2 -0
- package/lib/commonjs/models/PrimerHeadlessUniversalCheckoutPaymentMethod.js.map +1 -0
- package/lib/commonjs/models/PrimerImplementedRNCallbacks.js +2 -0
- package/lib/commonjs/models/PrimerImplementedRNCallbacks.js.map +1 -0
- package/lib/commonjs/models/PrimerInitializationData.js.map +1 -1
- package/lib/commonjs/models/PrimerInputElementType.js +20 -0
- package/lib/commonjs/models/PrimerInputElementType.js.map +1 -0
- package/lib/commonjs/models/PrimerInterfaces.js.map +1 -1
- package/lib/commonjs/models/PrimerPaymentMethodManagerCategory.js +14 -0
- package/lib/commonjs/models/PrimerPaymentMethodManagerCategory.js.map +1 -0
- package/lib/commonjs/models/PrimerPaymentMethodTokenData.js.map +1 -1
- package/lib/commonjs/models/PrimerRawData.js.map +1 -1
- package/lib/commonjs/models/PrimerSessionIntent.js.map +1 -1
- package/lib/commonjs/models/PrimerSettings.js.map +1 -1
- package/lib/commonjs/models/PrimerTheme.js.map +1 -1
- package/lib/commonjs/models/RetailOutletsRetail.js.map +1 -1
- package/lib/commonjs/utils/index.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/AssetsManager.js +52 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +1 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js +28 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js.map +1 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js +144 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js.map +1 -0
- package/lib/module/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js +261 -0
- package/lib/module/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js.map +1 -0
- package/lib/module/{headless_checkout → HeadlessUniversalCheckout}/RNPrimerHeadlessUniversalCheckout.js +7 -81
- package/lib/module/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js.map +1 -0
- package/lib/module/HeadlessUniversalCheckout/types.js +33 -0
- package/lib/module/HeadlessUniversalCheckout/types.js.map +1 -0
- package/lib/module/Primer.js +52 -52
- package/lib/module/Primer.js.map +1 -1
- package/lib/module/PrimerInput.js.map +1 -1
- package/lib/module/RNPrimer.js +2 -12
- package/lib/module/RNPrimer.js.map +1 -1
- package/lib/module/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js.map +1 -1
- package/lib/module/index.js +15 -9
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/PrimerAsset.js +2 -0
- package/lib/module/models/PrimerAsset.js.map +1 -0
- package/lib/module/models/PrimerCheckoutAdditionalInfo.js.map +1 -1
- package/lib/module/models/PrimerCheckoutData.js.map +1 -1
- package/lib/module/models/PrimerCheckoutPaymentMethodData.js.map +1 -1
- package/lib/module/models/PrimerClientSession.js.map +1 -1
- package/lib/module/models/PrimerCountryCode.js.map +1 -1
- package/lib/module/models/PrimerCurrencyCode.js.map +1 -1
- package/lib/module/models/PrimerError.js +4 -4
- package/lib/module/models/PrimerError.js.map +1 -1
- package/lib/module/models/PrimerHandlers.js +2 -0
- package/lib/module/models/PrimerHandlers.js.map +1 -0
- package/lib/module/models/PrimerHeadlessUniversalCheckoutPaymentMethod.js +2 -0
- package/lib/module/models/PrimerHeadlessUniversalCheckoutPaymentMethod.js.map +1 -0
- package/lib/module/models/PrimerImplementedRNCallbacks.js +2 -0
- package/lib/module/models/PrimerImplementedRNCallbacks.js.map +1 -0
- package/lib/module/models/PrimerInitializationData.js.map +1 -1
- package/lib/module/models/PrimerInputElementType.js +13 -0
- package/lib/module/models/PrimerInputElementType.js.map +1 -0
- package/lib/module/models/PrimerInterfaces.js.map +1 -1
- package/lib/module/models/PrimerPaymentMethodManagerCategory.js +7 -0
- package/lib/module/models/PrimerPaymentMethodManagerCategory.js.map +1 -0
- package/lib/module/models/PrimerPaymentMethodTokenData.js.map +1 -1
- package/lib/module/models/PrimerRawData.js.map +1 -1
- package/lib/module/models/PrimerSessionIntent.js.map +1 -1
- package/lib/module/models/PrimerSettings.js.map +1 -1
- package/lib/module/models/PrimerTheme.js.map +1 -1
- package/lib/module/models/RetailOutletsRetail.js.map +1 -1
- package/lib/module/utils/index.js.map +1 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts +9 -0
- package/lib/typescript/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts.map +1 -0
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.d.ts +8 -0
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.d.ts.map +1 -0
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.d.ts +29 -0
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.d.ts.map +1 -0
- package/lib/typescript/{headless_checkout → HeadlessUniversalCheckout}/PrimerHeadlessUniversalCheckout.d.ts +4 -5
- package/lib/typescript/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.d.ts.map +1 -0
- package/lib/typescript/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.d.ts +18 -0
- package/lib/typescript/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.d.ts.map +1 -0
- package/lib/typescript/HeadlessUniversalCheckout/types.d.ts +1 -0
- package/lib/typescript/HeadlessUniversalCheckout/types.d.ts.map +1 -0
- package/lib/typescript/Primer.d.ts +1 -0
- package/lib/typescript/Primer.d.ts.map +1 -0
- package/lib/typescript/PrimerInput.d.ts +5 -4
- package/lib/typescript/PrimerInput.d.ts.map +1 -0
- package/lib/typescript/RNPrimer.d.ts +3 -4
- package/lib/typescript/RNPrimer.d.ts.map +1 -0
- package/lib/typescript/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.d.ts +1 -0
- package/lib/typescript/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +18 -9
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/models/PrimerAsset.d.ts +14 -0
- package/lib/typescript/models/PrimerAsset.d.ts.map +1 -0
- package/lib/typescript/models/PrimerCheckoutAdditionalInfo.d.ts +7 -6
- package/lib/typescript/models/PrimerCheckoutAdditionalInfo.d.ts.map +1 -0
- package/lib/typescript/models/PrimerCheckoutData.d.ts +3 -2
- package/lib/typescript/models/PrimerCheckoutData.d.ts.map +1 -0
- package/lib/typescript/models/PrimerCheckoutPaymentMethodData.d.ts +2 -1
- package/lib/typescript/models/PrimerCheckoutPaymentMethodData.d.ts.map +1 -0
- package/lib/typescript/models/PrimerClientSession.d.ts +6 -5
- package/lib/typescript/models/PrimerClientSession.d.ts.map +1 -0
- package/lib/typescript/models/PrimerCountryCode.d.ts +2 -1
- package/lib/typescript/models/PrimerCountryCode.d.ts.map +1 -0
- package/lib/typescript/models/PrimerCurrencyCode.d.ts +2 -1
- package/lib/typescript/models/PrimerCurrencyCode.d.ts.map +1 -0
- package/lib/typescript/models/PrimerError.d.ts +3 -1
- package/lib/typescript/models/PrimerError.d.ts.map +1 -0
- package/lib/typescript/models/PrimerHandlers.d.ts +22 -0
- package/lib/typescript/models/PrimerHandlers.d.ts.map +1 -0
- package/lib/typescript/models/PrimerHeadlessUniversalCheckoutPaymentMethod.d.ts +6 -0
- package/lib/typescript/models/PrimerHeadlessUniversalCheckoutPaymentMethod.d.ts.map +1 -0
- package/lib/typescript/models/PrimerImplementedRNCallbacks.d.ts +17 -0
- package/lib/typescript/models/PrimerImplementedRNCallbacks.d.ts.map +1 -0
- package/lib/typescript/models/PrimerInitializationData.d.ts +3 -2
- package/lib/typescript/models/PrimerInitializationData.d.ts.map +1 -0
- package/lib/typescript/models/PrimerInputElementType.d.ts +12 -0
- package/lib/typescript/models/PrimerInputElementType.d.ts.map +1 -0
- package/lib/typescript/models/PrimerInterfaces.d.ts +2 -20
- package/lib/typescript/models/PrimerInterfaces.d.ts.map +1 -0
- package/lib/typescript/models/PrimerPaymentMethodManagerCategory.d.ts +6 -0
- package/lib/typescript/models/PrimerPaymentMethodManagerCategory.d.ts.map +1 -0
- package/lib/typescript/models/PrimerPaymentMethodTokenData.d.ts +2 -1
- package/lib/typescript/models/PrimerPaymentMethodTokenData.d.ts.map +1 -0
- package/lib/typescript/models/PrimerRawData.d.ts +7 -10
- package/lib/typescript/models/PrimerRawData.d.ts.map +1 -0
- package/lib/typescript/models/PrimerSessionIntent.d.ts +1 -0
- package/lib/typescript/models/PrimerSessionIntent.d.ts.map +1 -0
- package/lib/typescript/models/PrimerSettings.d.ts +30 -16
- package/lib/typescript/models/PrimerSettings.d.ts.map +1 -0
- package/lib/typescript/models/PrimerTheme.d.ts +3 -2
- package/lib/typescript/models/PrimerTheme.d.ts.map +1 -0
- package/lib/typescript/models/RetailOutletsRetail.d.ts +2 -1
- package/lib/typescript/models/RetailOutletsRetail.d.ts.map +1 -0
- package/lib/typescript/utils/index.d.ts +1 -0
- package/lib/typescript/utils/index.d.ts.map +1 -0
- package/package.json +8 -7
- package/primer-io-react-native.podspec +1 -2
- package/src/HeadlessUniversalCheckout/Managers/AssetsManager.ts +56 -0
- package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.ts +31 -0
- package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.ts +166 -0
- package/src/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.ts +333 -0
- package/src/{headless_checkout → HeadlessUniversalCheckout}/RNPrimerHeadlessUniversalCheckout.ts +37 -128
- package/src/HeadlessUniversalCheckout/types.ts +32 -0
- package/src/Primer.ts +49 -60
- package/src/RNPrimer.ts +2 -18
- package/src/index.tsx +43 -29
- package/src/models/PrimerAsset.ts +13 -0
- package/src/models/PrimerError.ts +3 -1
- package/src/models/PrimerHandlers.ts +25 -0
- package/src/models/PrimerHeadlessUniversalCheckoutPaymentMethod.ts +5 -0
- package/src/models/PrimerImplementedRNCallbacks.ts +20 -0
- package/src/models/PrimerInputElementType.ts +11 -0
- package/src/models/PrimerInterfaces.ts +1 -28
- package/src/models/PrimerPaymentMethodManagerCategory.ts +5 -0
- package/src/models/PrimerRawData.ts +6 -10
- package/src/models/PrimerSettings.ts +40 -26
- package/android/src/main/java/com/primerioreactnative/huc/datamodels/manager/raw/cardRedirect/PrimerRNPRawCardRedirectData.kt +0 -20
- package/android/src/main/java/com/primerioreactnative/huc/datamodels/manager/raw/phoneNumber/PrimerRNRawPhoneNumberData.kt +0 -14
- package/android/src/main/java/com/primerioreactnative/huc/datamodels/manager/raw/retailOutlets/PrimerRNRawRetailOutletData.kt +0 -12
- package/android/src/main/java/com/primerioreactnative/huc/events/PrimerHeadlessUniversalCheckoutEvent.kt +0 -15
- package/ios/DataModels/ImplementedRNCallbacks.swift +0 -62
- package/ios/DataModels/PrimerErrorRN.swift +0 -35
- package/ios/DataModels/PrimerSettingsRN.swift +0 -84
- package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.m +0 -62
- package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.swift +0 -501
- package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.m +0 -14
- package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.swift +0 -117
- package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckoutRawDataManager.m +0 -23
- package/ios/RNTPrimer.m +0 -59
- package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckout.js +0 -288
- package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckout.js.map +0 -1
- package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckoutRawDataManager.js +0 -91
- package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckoutRawDataManager.js.map +0 -1
- package/lib/commonjs/headless_checkout/RNPrimerHeadlessUniversalCheckout.js.map +0 -1
- package/lib/commonjs/headless_checkout/RNPrimerHeadlessUniversalCheckoutRawDataManager.js +0 -91
- package/lib/commonjs/headless_checkout/RNPrimerHeadlessUniversalCheckoutRawDataManager.js.map +0 -1
- package/lib/commonjs/headless_checkout/types.js +0 -6
- package/lib/commonjs/headless_checkout/types.js.map +0 -1
- package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckout.js +0 -279
- package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckout.js.map +0 -1
- package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckoutRawDataManager.js +0 -83
- package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckoutRawDataManager.js.map +0 -1
- package/lib/module/headless_checkout/RNPrimerHeadlessUniversalCheckout.js.map +0 -1
- package/lib/module/headless_checkout/RNPrimerHeadlessUniversalCheckoutRawDataManager.js +0 -84
- package/lib/module/headless_checkout/RNPrimerHeadlessUniversalCheckoutRawDataManager.js.map +0 -1
- package/lib/module/headless_checkout/types.js +0 -2
- package/lib/module/headless_checkout/types.js.map +0 -1
- package/lib/typescript/headless_checkout/PrimerHeadlessUniversalCheckoutRawDataManager.d.ts +0 -18
- package/lib/typescript/headless_checkout/RNPrimerHeadlessUniversalCheckout.d.ts +0 -22
- package/lib/typescript/headless_checkout/RNPrimerHeadlessUniversalCheckoutRawDataManager.d.ts +0 -14
- package/lib/typescript/headless_checkout/types.d.ts +0 -22
- package/src/headless_checkout/PrimerHeadlessUniversalCheckout.ts +0 -358
- package/src/headless_checkout/PrimerHeadlessUniversalCheckoutRawDataManager.ts +0 -109
- package/src/headless_checkout/RNPrimerHeadlessUniversalCheckoutRawDataManager.ts +0 -104
- package/src/headless_checkout/types.ts +0 -32
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
1DEBE0FE26C2D875004E3064 /* PrimerSettingsRN.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DEBE0FD26C2D875004E3064 /* PrimerSettingsRN.swift */; };
|
|
15
15
|
1DEBE10026C2D88E004E3064 /* PrimerThemeRN.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DEBE0FF26C2D88E004E3064 /* PrimerThemeRN.swift */; };
|
|
16
16
|
1DEBE10226C2D8BA004E3064 /* PaymentInstrumentTokenRN.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DEBE10126C2D8BA004E3064 /* PaymentInstrumentTokenRN.swift */; };
|
|
17
|
-
|
|
17
|
+
3513609F0CAED44C39E307A6 /* libPods-ReactNative.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1BC6985820719A2A61EB3DD8 /* libPods-ReactNative.a */; };
|
|
18
18
|
F4FF95D7245B92E800C19C63 /* UniversalCheckoutRN.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4FF95D6245B92E800C19C63 /* UniversalCheckoutRN.swift */; };
|
|
19
19
|
/* End PBXBuildFile section */
|
|
20
20
|
|
|
@@ -32,16 +32,16 @@
|
|
|
32
32
|
|
|
33
33
|
/* Begin PBXFileReference section */
|
|
34
34
|
134814201AA4EA6300B7C361 /* libReactNative.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libReactNative.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
35
|
+
1BC6985820719A2A61EB3DD8 /* libPods-ReactNative.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ReactNative.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
35
36
|
1DEBE0F626C2D594004E3064 /* PrimerRN.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimerRN.swift; sourceTree = "<group>"; };
|
|
36
37
|
1DEBE0F926C2D75A004E3064 /* PrimerFlowRN.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimerFlowRN.swift; sourceTree = "<group>"; };
|
|
37
38
|
1DEBE0FB26C2D859004E3064 /* PrimerExceptionRN.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimerExceptionRN.swift; sourceTree = "<group>"; };
|
|
38
39
|
1DEBE0FD26C2D875004E3064 /* PrimerSettingsRN.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimerSettingsRN.swift; sourceTree = "<group>"; };
|
|
39
40
|
1DEBE0FF26C2D88E004E3064 /* PrimerThemeRN.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimerThemeRN.swift; sourceTree = "<group>"; };
|
|
40
41
|
1DEBE10126C2D8BA004E3064 /* PaymentInstrumentTokenRN.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaymentInstrumentTokenRN.swift; sourceTree = "<group>"; };
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
568A70304A987529851A447E /* Pods-ReactNative.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNative.release.xcconfig"; path = "Target Support Files/Pods-ReactNative/Pods-ReactNative.release.xcconfig"; sourceTree = "<group>"; };
|
|
43
|
+
AED192A9C2698C599CF21663 /* Pods-ReactNative.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNative.debug.xcconfig"; path = "Target Support Files/Pods-ReactNative/Pods-ReactNative.debug.xcconfig"; sourceTree = "<group>"; };
|
|
43
44
|
B3E7B5891CC2AC0600A0062D /* ReactNative.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ReactNative.m; sourceTree = "<group>"; };
|
|
44
|
-
BADF4926CED3501185F76198 /* libPods-ReactNative.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ReactNative.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
45
45
|
F4FF95D5245B92E700C19C63 /* ReactNative-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ReactNative-Bridging-Header.h"; sourceTree = "<group>"; };
|
|
46
46
|
F4FF95D6245B92E800C19C63 /* UniversalCheckoutRN.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UniversalCheckoutRN.swift; sourceTree = "<group>"; };
|
|
47
47
|
/* End PBXFileReference section */
|
|
@@ -51,13 +51,21 @@
|
|
|
51
51
|
isa = PBXFrameworksBuildPhase;
|
|
52
52
|
buildActionMask = 2147483647;
|
|
53
53
|
files = (
|
|
54
|
-
|
|
54
|
+
3513609F0CAED44C39E307A6 /* libPods-ReactNative.a in Frameworks */,
|
|
55
55
|
);
|
|
56
56
|
runOnlyForDeploymentPostprocessing = 0;
|
|
57
57
|
};
|
|
58
58
|
/* End PBXFrameworksBuildPhase section */
|
|
59
59
|
|
|
60
60
|
/* Begin PBXGroup section */
|
|
61
|
+
11BA866BDA971C4D4B96C2C4 /* Frameworks */ = {
|
|
62
|
+
isa = PBXGroup;
|
|
63
|
+
children = (
|
|
64
|
+
1BC6985820719A2A61EB3DD8 /* libPods-ReactNative.a */,
|
|
65
|
+
);
|
|
66
|
+
name = Frameworks;
|
|
67
|
+
sourceTree = "<group>";
|
|
68
|
+
};
|
|
61
69
|
134814211AA4EA7D00B7C361 /* Products */ = {
|
|
62
70
|
isa = PBXGroup;
|
|
63
71
|
children = (
|
|
@@ -81,8 +89,8 @@
|
|
|
81
89
|
38076040A533828516C55677 /* Pods */ = {
|
|
82
90
|
isa = PBXGroup;
|
|
83
91
|
children = (
|
|
84
|
-
|
|
85
|
-
|
|
92
|
+
AED192A9C2698C599CF21663 /* Pods-ReactNative.debug.xcconfig */,
|
|
93
|
+
568A70304A987529851A447E /* Pods-ReactNative.release.xcconfig */,
|
|
86
94
|
);
|
|
87
95
|
path = Pods;
|
|
88
96
|
sourceTree = "<group>";
|
|
@@ -97,18 +105,10 @@
|
|
|
97
105
|
F4FF95D5245B92E700C19C63 /* ReactNative-Bridging-Header.h */,
|
|
98
106
|
134814211AA4EA7D00B7C361 /* Products */,
|
|
99
107
|
38076040A533828516C55677 /* Pods */,
|
|
100
|
-
|
|
108
|
+
11BA866BDA971C4D4B96C2C4 /* Frameworks */,
|
|
101
109
|
);
|
|
102
110
|
sourceTree = "<group>";
|
|
103
111
|
};
|
|
104
|
-
E193973ADE52A4E8D27FFC73 /* Frameworks */ = {
|
|
105
|
-
isa = PBXGroup;
|
|
106
|
-
children = (
|
|
107
|
-
BADF4926CED3501185F76198 /* libPods-ReactNative.a */,
|
|
108
|
-
);
|
|
109
|
-
name = Frameworks;
|
|
110
|
-
sourceTree = "<group>";
|
|
111
|
-
};
|
|
112
112
|
/* End PBXGroup section */
|
|
113
113
|
|
|
114
114
|
/* Begin PBXNativeTarget section */
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
isa = PBXNativeTarget;
|
|
117
117
|
buildConfigurationList = 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "ReactNative" */;
|
|
118
118
|
buildPhases = (
|
|
119
|
-
|
|
119
|
+
64FF98C09B1E65E78CC7F5BB /* [CP] Check Pods Manifest.lock */,
|
|
120
120
|
58B511D71A9E6C8500147676 /* Sources */,
|
|
121
121
|
58B511D81A9E6C8500147676 /* Frameworks */,
|
|
122
122
|
58B511D91A9E6C8500147676 /* CopyFiles */,
|
|
@@ -163,7 +163,7 @@
|
|
|
163
163
|
/* End PBXProject section */
|
|
164
164
|
|
|
165
165
|
/* Begin PBXShellScriptBuildPhase section */
|
|
166
|
-
|
|
166
|
+
64FF98C09B1E65E78CC7F5BB /* [CP] Check Pods Manifest.lock */ = {
|
|
167
167
|
isa = PBXShellScriptBuildPhase;
|
|
168
168
|
buildActionMask = 2147483647;
|
|
169
169
|
files = (
|
|
@@ -310,7 +310,7 @@
|
|
|
310
310
|
};
|
|
311
311
|
58B511F01A9E6C8500147676 /* Debug */ = {
|
|
312
312
|
isa = XCBuildConfiguration;
|
|
313
|
-
baseConfigurationReference =
|
|
313
|
+
baseConfigurationReference = AED192A9C2698C599CF21663 /* Pods-ReactNative.debug.xcconfig */;
|
|
314
314
|
buildSettings = {
|
|
315
315
|
HEADER_SEARCH_PATHS = (
|
|
316
316
|
"$(inherited)",
|
|
@@ -330,7 +330,7 @@
|
|
|
330
330
|
};
|
|
331
331
|
58B511F11A9E6C8500147676 /* Release */ = {
|
|
332
332
|
isa = XCBuildConfiguration;
|
|
333
|
-
baseConfigurationReference =
|
|
333
|
+
baseConfigurationReference = 568A70304A987529851A447E /* Pods-ReactNative.release.xcconfig */;
|
|
334
334
|
buildSettings = {
|
|
335
335
|
HEADER_SEARCH_PATHS = (
|
|
336
336
|
"$(inherited)",
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
//
|
|
2
|
+
// ImplementedRNCallbacks.swift
|
|
3
|
+
// primer-io-react-native
|
|
4
|
+
//
|
|
5
|
+
// Created by Evangelos on 20/5/22.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
|
|
10
|
+
internal struct ImplementedRNCallbacks: Decodable {
|
|
11
|
+
|
|
12
|
+
internal var isOnAvailablePaymentMethodsLoadImplemented = false
|
|
13
|
+
internal var isOnTokenizationStartImplemented = false
|
|
14
|
+
internal var isOnTokenizationSuccessImplemented = false
|
|
15
|
+
|
|
16
|
+
internal var isOnCheckoutResumeImplemented = false
|
|
17
|
+
internal var isOnCheckoutPendingImplemented = false
|
|
18
|
+
internal var isOnCheckoutAdditionalInfoImplemented = false
|
|
19
|
+
|
|
20
|
+
internal var isOnErrorImplemented = false
|
|
21
|
+
internal var isOnCheckoutCompleteImplemented = false
|
|
22
|
+
internal var isOnBeforeClientSessionUpdateImplemented = false
|
|
23
|
+
|
|
24
|
+
internal var isOnClientSessionUpdateImplemented = false
|
|
25
|
+
internal var isOnBeforePaymentCreateImplemented = false
|
|
26
|
+
internal var isOnPreparationStartImplemented = false
|
|
27
|
+
|
|
28
|
+
internal var isOnPaymentMethodShowImplemented = false
|
|
29
|
+
internal var isOnDismissImplemented = false
|
|
30
|
+
|
|
31
|
+
enum CodingKeys: String, CodingKey {
|
|
32
|
+
|
|
33
|
+
case isOnAvailablePaymentMethodsLoadImplemented = "onAvailablePaymentMethodsLoad"
|
|
34
|
+
case isOnTokenizationStartImplemented = "onTokenizationStart"
|
|
35
|
+
case isOnTokenizationSuccessImplemented = "onTokenizationSuccess"
|
|
36
|
+
|
|
37
|
+
case isOnCheckoutResumeImplemented = "onCheckoutResume"
|
|
38
|
+
case isOnCheckoutPendingImplemented = "onCheckoutPending"
|
|
39
|
+
case isOnCheckoutAdditionalInfoImplemented = "onCheckoutAdditionalInfo"
|
|
40
|
+
|
|
41
|
+
case isOnErrorImplemented = "onError"
|
|
42
|
+
case isOnCheckoutCompleteImplemented = "onCheckoutComplete"
|
|
43
|
+
case isOnBeforeClientSessionUpdateImplemented = "onBeforeClientSessionUpdate"
|
|
44
|
+
|
|
45
|
+
case isOnClientSessionUpdateImplemented = "onClientSessionUpdate"
|
|
46
|
+
case isOnBeforePaymentCreateImplemented = "onBeforePaymentCreate"
|
|
47
|
+
case isOnPreparationStartImplemented = "onPreparationStart"
|
|
48
|
+
|
|
49
|
+
case isOnPaymentMethodShowImplemented = "onPaymentMethodShow"
|
|
50
|
+
case isOnDismissImplemented = "onDismiss"
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
init(from decoder: Decoder) throws {
|
|
54
|
+
let container = try decoder.container(keyedBy: CodingKeys.self)
|
|
55
|
+
|
|
56
|
+
self.isOnAvailablePaymentMethodsLoadImplemented = (try? container.decode(Bool.self, forKey: .isOnAvailablePaymentMethodsLoadImplemented)) ?? false
|
|
57
|
+
self.isOnTokenizationStartImplemented = (try? container.decode(Bool.self, forKey: .isOnTokenizationStartImplemented)) ?? false
|
|
58
|
+
self.isOnTokenizationSuccessImplemented = (try? container.decode(Bool.self, forKey: .isOnTokenizationSuccessImplemented)) ?? false
|
|
59
|
+
|
|
60
|
+
self.isOnCheckoutResumeImplemented = (try? container.decode(Bool.self, forKey: .isOnCheckoutResumeImplemented)) ?? false
|
|
61
|
+
self.isOnCheckoutPendingImplemented = (try? container.decode(Bool.self, forKey: .isOnCheckoutPendingImplemented)) ?? false
|
|
62
|
+
self.isOnCheckoutAdditionalInfoImplemented = (try? container.decode(Bool.self, forKey: .isOnCheckoutAdditionalInfoImplemented)) ?? false
|
|
63
|
+
|
|
64
|
+
self.isOnErrorImplemented = (try? container.decode(Bool.self, forKey: .isOnErrorImplemented)) ?? false
|
|
65
|
+
self.isOnCheckoutCompleteImplemented = (try? container.decode(Bool.self, forKey: .isOnCheckoutCompleteImplemented)) ?? false
|
|
66
|
+
self.isOnBeforeClientSessionUpdateImplemented = (try? container.decode(Bool.self, forKey: .isOnBeforeClientSessionUpdateImplemented)) ?? false
|
|
67
|
+
|
|
68
|
+
self.isOnClientSessionUpdateImplemented = (try? container.decode(Bool.self, forKey: .isOnClientSessionUpdateImplemented)) ?? false
|
|
69
|
+
self.isOnBeforePaymentCreateImplemented = (try? container.decode(Bool.self, forKey: .isOnBeforePaymentCreateImplemented)) ?? false
|
|
70
|
+
self.isOnPreparationStartImplemented = (try? container.decode(Bool.self, forKey: .isOnPreparationStartImplemented)) ?? false
|
|
71
|
+
|
|
72
|
+
self.isOnPaymentMethodShowImplemented = (try? container.decode(Bool.self, forKey: .isOnPaymentMethodShowImplemented)) ?? false
|
|
73
|
+
self.isOnDismissImplemented = (try? container.decode(Bool.self, forKey: .isOnDismissImplemented)) ?? false
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -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,82 @@
|
|
|
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
|
+
applePayOptions = PrimerApplePayOptions(merchantIdentifier: rnApplePayMerchantIdentifier, merchantName: rnApplePayMerchantName)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
var klarnaOptions: PrimerKlarnaOptions?
|
|
43
|
+
if let rnKlarnaRecurringPaymentDescription = ((settingsJson["paymentMethodOptions"] as? [String: Any])?["klarnaOptions"] as? [String: Any])?["recurringPaymentDescription"] as? String {
|
|
44
|
+
klarnaOptions = PrimerKlarnaOptions(recurringPaymentDescription: rnKlarnaRecurringPaymentDescription)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
var uiOptions: PrimerUIOptions?
|
|
48
|
+
if let rnUIOptions = settingsJson["uiOptions"] as? [String: Any] {
|
|
49
|
+
|
|
50
|
+
var theme: PrimerTheme?
|
|
51
|
+
if let rnTheme = rnUIOptions["theme"] as? [String: Any] {
|
|
52
|
+
let rnThemeData = (try JSONSerialization.data(withJSONObject: rnTheme))
|
|
53
|
+
let rnTheme = try JSONDecoder().decode(PrimerThemeRN.self, from: rnThemeData)
|
|
54
|
+
theme = rnTheme.asPrimerTheme()
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
uiOptions = PrimerUIOptions(
|
|
58
|
+
isInitScreenEnabled: rnUIOptions["isInitScreenEnabled"] as? Bool,
|
|
59
|
+
isSuccessScreenEnabled: rnUIOptions["isSuccessScreenEnabled"] as? Bool,
|
|
60
|
+
isErrorScreenEnabled: rnUIOptions["isErrorScreenEnabled"] as? Bool,
|
|
61
|
+
theme: theme)
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
var debugOptions: PrimerDebugOptions?
|
|
65
|
+
if let rnIs3DSSanityCheckEnabled = (settingsJson["debugOptions"] as? [String: Any])?["is3DSSanityCheckEnabled"] as? Bool {
|
|
66
|
+
debugOptions = PrimerDebugOptions(is3DSSanityCheckEnabled: rnIs3DSSanityCheckEnabled)
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
let paymentMethodOptions = PrimerPaymentMethodOptions(
|
|
70
|
+
urlScheme: rnUrlScheme,
|
|
71
|
+
applePayOptions: applePayOptions,
|
|
72
|
+
klarnaOptions: klarnaOptions)
|
|
73
|
+
|
|
74
|
+
self.init(
|
|
75
|
+
paymentHandling: paymentHandling,
|
|
76
|
+
localeData: localeData,
|
|
77
|
+
paymentMethodOptions: paymentMethodOptions,
|
|
78
|
+
uiOptions: uiOptions,
|
|
79
|
+
debugOptions: debugOptions)
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
File without changes
|
|
@@ -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,65 @@
|
|
|
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 paymentMethodLogo: RNTPrimerPaymentMethodLogo
|
|
15
|
+
let paymentMethodBackgroundColor: RNTPrimerPaymentMethodBackgroundColor
|
|
16
|
+
|
|
17
|
+
init(primerPaymentMethodAsset: PrimerPaymentMethodAsset) {
|
|
18
|
+
self.paymentMethodType = primerPaymentMethodAsset.paymentMethodType
|
|
19
|
+
self.paymentMethodLogo = RNTPrimerPaymentMethodLogo(
|
|
20
|
+
paymentMethodType: primerPaymentMethodAsset.paymentMethodType,
|
|
21
|
+
primerPaymentMethodLogo: primerPaymentMethodAsset.paymentMethodLogo)
|
|
22
|
+
self.paymentMethodBackgroundColor = RNTPrimerPaymentMethodBackgroundColor(
|
|
23
|
+
primerPaymentMethodBackgroundColor: primerPaymentMethodAsset.paymentMethodBackgroundColor)
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
struct RNTPrimerPaymentMethodLogo: Codable {
|
|
28
|
+
|
|
29
|
+
let colored: String?
|
|
30
|
+
let dark: String?
|
|
31
|
+
let light: String?
|
|
32
|
+
|
|
33
|
+
init(paymentMethodType: String, primerPaymentMethodLogo: PrimerPaymentMethodLogo) {
|
|
34
|
+
self.colored = (try? primerPaymentMethodLogo.colored?.store(withName: "\(paymentMethodType)-colored").absoluteString) ?? nil
|
|
35
|
+
self.dark = (try? primerPaymentMethodLogo.dark?.store(withName: "\(paymentMethodType)-dark").absoluteString) ?? nil
|
|
36
|
+
self.light = (try? primerPaymentMethodLogo.light?.store(withName: "\(paymentMethodType)-light").absoluteString) ?? nil
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
struct RNTPrimerPaymentMethodBackgroundColor: Codable {
|
|
41
|
+
|
|
42
|
+
let colored: String?
|
|
43
|
+
let dark: String?
|
|
44
|
+
let light: String?
|
|
45
|
+
|
|
46
|
+
init(primerPaymentMethodBackgroundColor: PrimerPaymentMethodBackgroundColor) {
|
|
47
|
+
if let bgColoredHex = primerPaymentMethodBackgroundColor.colored?.toHex() {
|
|
48
|
+
self.colored = "#\(bgColoredHex)"
|
|
49
|
+
} else {
|
|
50
|
+
self.colored = nil
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
if let darkColoredHex = primerPaymentMethodBackgroundColor.dark?.toHex() {
|
|
54
|
+
self.dark = "#\(darkColoredHex)"
|
|
55
|
+
} else {
|
|
56
|
+
self.dark = nil
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
if let lightColoredHex = primerPaymentMethodBackgroundColor.light?.toHex() {
|
|
60
|
+
self.light = "#\(lightColoredHex)"
|
|
61
|
+
} else {
|
|
62
|
+
self.light = nil
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -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
|
+
}
|
|
File without changes
|
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
|