@primer-io/react-native 2.29.0 → 2.30.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/.editorconfig +2 -0
- package/android/build.gradle +29 -1
- package/android/detekt-baseline.xml +24 -0
- package/android/src/main/java/com/primerioreactnative/PrimerRN.kt +248 -195
- package/android/src/main/java/com/primerioreactnative/PrimerRNEventListener.kt +261 -253
- package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckout.kt +177 -143
- package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckoutListener.kt +298 -291
- package/android/src/main/java/com/primerioreactnative/PrimerRNViewModelStoreOwner.kt +2 -3
- package/android/src/main/java/com/primerioreactnative/ReactNativePackage.kt +33 -36
- package/android/src/main/java/com/primerioreactnative/components/assets/AssetsManager.kt +29 -30
- package/android/src/main/java/com/primerioreactnative/components/assets/CardNetworkImageFileProvider.kt +15 -15
- package/android/src/main/java/com/primerioreactnative/components/assets/PaymentMethodAssetFileProvider.kt +16 -16
- package/android/src/main/java/com/primerioreactnative/components/datamodels/core/PrimerRNHeadlessUniversalCheckoutPaymentMethod.kt +9 -9
- package/android/src/main/java/com/primerioreactnative/components/datamodels/core/PrimerRawPaymentMethodType.kt +5 -5
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/asset/Resources.kt +143 -0
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/card/PrimerRNCardData.kt +11 -11
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/cardRedirect/PrimerRNBancontactCardData.kt +19 -0
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/phoneNumber/PrimerRNPhoneNumberData.kt +5 -5
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/retailOutlets/PrimerRNRetailOutletData.kt +2 -3
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/retailOutlets/RNRetailOutletsList.kt +15 -14
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/vault/PrimerRNValidationError.kt +10 -10
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/vault/PrimerRNVaultedPaymentMethod.kt +15 -16
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/vault/PrimerRNVaultedPaymentMethodAdditionalData.kt +4 -2
- package/android/src/main/java/com/primerioreactnative/components/events/PrimerHeadlessUniversalCheckoutComponentEvent.kt +6 -6
- package/android/src/main/java/com/primerioreactnative/components/events/PrimerHeadlessUniversalCheckoutEvent.kt +13 -13
- package/android/src/main/java/com/primerioreactnative/components/events/PrimerHeadlessUniversalCheckoutRawDataManagerEvent.kt +2 -2
- package/android/src/main/java/com/primerioreactnative/components/manager/NativeViewContainer.kt +9 -8
- package/android/src/main/java/com/primerioreactnative/components/manager/ach/{AchMandateManager.kt → PrimerRNAchMandateManager.kt} +20 -17
- package/android/src/main/java/com/primerioreactnative/components/manager/ach/PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent.kt +227 -212
- package/android/src/main/java/com/primerioreactnative/components/manager/asset/PrimerRNHeadlessUniversalCheckoutAssetManager.kt +178 -163
- package/android/src/main/java/com/primerioreactnative/components/manager/banks/PrimerRNHeadlessUniversalCheckoutBanksComponent.kt +207 -194
- package/android/src/main/java/com/primerioreactnative/components/manager/googlePay/PrimerGooglePayButtonConstantsModule.kt +23 -26
- package/android/src/main/java/com/primerioreactnative/components/manager/googlePay/PrimerGooglePayButtonManager.kt +25 -23
- package/android/src/main/java/com/primerioreactnative/components/manager/klarna/PrimerKlarnaPaymentViewManager.kt +24 -23
- package/android/src/main/java/com/primerioreactnative/components/manager/klarna/PrimerRNHeadlessUniversalCheckoutKlarnaComponent.kt +111 -87
- package/android/src/main/java/com/primerioreactnative/components/manager/nativeUi/PrimerRNHeadlessUniversalCheckoutNativeUiManager.kt +68 -63
- package/android/src/main/java/com/primerioreactnative/components/manager/raw/PrimerRNHeadlessUniversalCheckoutRawManager.kt +189 -164
- package/android/src/main/java/com/primerioreactnative/components/manager/raw/PrimerRNHeadlessUniversalCheckoutRawManagerListener.kt +39 -37
- package/android/src/main/java/com/primerioreactnative/components/manager/vault/PrimerRNHeadlessUniversalCheckoutVaultManager.kt +128 -118
- package/android/src/main/java/com/primerioreactnative/datamodels/{NamedComponentStepRN.kt → NamedComponentStep.kt} +0 -2
- package/android/src/main/java/com/primerioreactnative/datamodels/{NamedComponentValidatableDataRN.kt → NamedComponentValidatableData.kt} +1 -3
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerCheckoutAdditionalInfoRN.kt +14 -14
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerCheckoutDataRN.kt +4 -4
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerClientSessionRN.kt +34 -35
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerErrorRN.kt +14 -14
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerEvents.kt +10 -11
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerInputValidationErrorRN.kt +4 -4
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerIssuingBankRN.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerPaymentInstrumentTokenRN.kt +66 -67
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerSettingsRN.kt +128 -111
- package/android/src/main/java/com/primerioreactnative/datamodels/ach/AchUserDetailsStepRN.kt +2 -3
- package/android/src/main/java/com/primerioreactnative/datamodels/banks/BanksStepRN.kt +3 -3
- package/android/src/main/java/com/primerioreactnative/datamodels/extensions/ach/AchUserDetailsCollectableData.kt +11 -6
- package/android/src/main/java/com/primerioreactnative/datamodels/extensions/ach/AchUserDetailsStep.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/datamodels/extensions/banks/BanksCollectableData.kt +2 -2
- package/android/src/main/java/com/primerioreactnative/datamodels/extensions/banks/BanksStep.kt +8 -4
- package/android/src/main/java/com/primerioreactnative/datamodels/klarna/KlarnaPaymentCategoryRN.kt +2 -2
- package/android/src/main/java/com/primerioreactnative/datamodels/klarna/KlarnaPaymentCollectableDataRN.kt +2 -3
- package/android/src/main/java/com/primerioreactnative/datamodels/klarna/KlarnaPaymentStepRN.kt +6 -6
- package/android/src/main/java/com/primerioreactnative/extensions/JSONExtensions.kt +26 -26
- package/android/src/main/java/com/primerioreactnative/extensions/LocaleSettingsRN.kt +5 -5
- package/android/src/main/java/com/primerioreactnative/extensions/PaymentInstrumentData.kt +37 -31
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerAddress.kt +11 -10
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerCheckoutAdditionalInfo.kt +19 -14
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerCheckoutData.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerClientSession.kt +9 -9
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerCustomer.kt +9 -8
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerDebugOptionsRN.kt +1 -2
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerError.kt +3 -3
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerIssuingBank.kt +1 -2
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerLineItem.kt +10 -3
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerOrder.kt +5 -3
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerPaymentMethodData.kt +4 -1
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerPaymentMethodOptionsRN.kt +69 -54
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerUIOptionsRN.kt +16 -16
- package/android/src/main/java/com/primerioreactnative/extensions/ThreeDsAuthenticationData.kt +7 -7
- package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentCategory.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentCategoryRN.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentCollectableData.kt +4 -4
- package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentStep.kt +8 -7
- package/android/src/main/java/com/primerioreactnative/utils/ErrorHelper.kt +6 -5
- package/android/src/main/java/com/primerioreactnative/utils/JsonConverter.kt +33 -34
- package/android/src/main/java/com/primerioreactnative/utils/PrimerHeadlessUniversalCheckoutImplementedRNCallbacks.kt +26 -26
- package/android/src/main/java/com/primerioreactnative/utils/PrimerImplementedRNCallbacks.kt +20 -20
- package/android/src/test/java/com/primerioreactnative/utils/ErrorHelperTest.kt +12 -13
- package/android/tooling/code-analysis/detekt.yml +68 -0
- package/ios/Sources/DataModels/Ach Component/RNTAchUserDetailsCollectableData.swift +2 -2
- package/ios/Sources/DataModels/Banks Component/RNTBanksCollectableData.swift +0 -1
- package/ios/Sources/DataModels/ImplementedRNCallbacks.swift +83 -63
- package/ios/Sources/DataModels/Klarna Component/PrimerHeadlessUniversalCheckoutComponentEvent.swift +3 -1
- package/ios/Sources/DataModels/Klarna Component/RNTKlarnaCollectableData.swift +2 -2
- package/ios/Sources/DataModels/Klarna Component/RNTKlarnaPaymentCategory.swift +1 -1
- package/ios/Sources/DataModels/Klarna Component/RNTKlarnaStep.swift +5 -5
- package/ios/Sources/DataModels/Klarna Component/RNTPrimerError.swift +1 -1
- package/ios/Sources/DataModels/PrimerBancontactCardRedirectData+Extension.swift +1 -2
- package/ios/Sources/DataModels/PrimerCardData+Extension.swift +6 -7
- package/ios/Sources/DataModels/PrimerCheckoutAdditionalInfoRN.swift +6 -7
- package/ios/Sources/DataModels/PrimerHeadlessUniversalCheckout_PaymentMethod.swift +10 -7
- package/ios/Sources/DataModels/PrimerPhoneNumberData+Extension.swift +1 -2
- package/ios/Sources/DataModels/PrimerRawRetailerData+Extension.swift +1 -2
- package/ios/Sources/DataModels/PrimerSettings+Extensions.swift +235 -177
- package/ios/Sources/DataModels/PrimerThemeRN.swift +6 -6
- package/ios/Sources/DataModels/RNTNativeError.swift +3 -4
- package/ios/Sources/DataModels/RNTPrimerPaymentMethodAsset.swift +54 -48
- package/ios/Sources/Headless Universal Checkout/Managers/Ach/PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent.swift +225 -202
- package/ios/Sources/Headless Universal Checkout/Managers/Ach/RNTAchMandateManager.swift +6 -6
- package/ios/Sources/Headless Universal Checkout/Managers/Assets Manager/RNTAssetsManager.swift +163 -161
- package/ios/Sources/Headless Universal Checkout/Managers/Klarna/PrimerRNHeadlessUniversalCheckoutKlarnaComponent.swift +268 -250
- package/ios/Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNPrimerHeadlessUniversalCheckoutVaultManager.swift +88 -66
- package/ios/Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNTNativeUIManager.swift +51 -43
- package/ios/Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNTRawDataManager.swift +181 -158
- package/ios/Sources/Headless Universal Checkout/Managers/RNTRedirectManager.swift +165 -156
- package/ios/Sources/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.swift +526 -459
- package/ios/Sources/Helpers/Encodable+Extension.swift +5 -1
- package/ios/Sources/Helpers/Error+Extensions.swift +5 -5
- package/ios/Sources/Helpers/UIColor+Extensions.swift +23 -20
- package/ios/Sources/RNTPrimer.swift +135 -48
- package/ios/Sources/version.swift +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Components/NativeResourceView.js.map +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js.map +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.js.map +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/AssetsManager.js +4 -4
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.js +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.js.map +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.js +2 -2
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.js.map +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js.map +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js.map +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js.map +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js +6 -6
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js.map +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/Utils/EventType.js.map +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/VaultManager.js.map +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js +4 -4
- package/lib/commonjs/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js.map +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js.map +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/types.js +5 -5
- package/lib/commonjs/Primer.js +2 -2
- package/lib/commonjs/Primer.js.map +1 -1
- package/lib/commonjs/RNPrimer.js +5 -5
- package/lib/commonjs/RNPrimer.js.map +1 -1
- package/lib/commonjs/index.js +6 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/models/PrimerError.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Components/NativeResourceView.js +3 -3
- package/lib/module/HeadlessUniversalCheckout/Components/NativeResourceView.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js +1 -1
- package/lib/module/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.js +1 -1
- package/lib/module/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/AssetsManager.js +4 -4
- package/lib/module/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.js +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.js +2 -2
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js +6 -6
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/Utils/EventType.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/VaultManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js +4 -4
- package/lib/module/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js +1 -1
- package/lib/module/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/types.js +5 -5
- package/lib/module/Primer.js +2 -2
- package/lib/module/Primer.js.map +1 -1
- package/lib/module/RNPrimer.js +5 -5
- package/lib/module/RNPrimer.js.map +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/PrimerError.js.map +1 -1
- package/lib/typescript/HeadlessUniversalCheckout/Components/NativeResourceView.d.ts +2 -2
- package/lib/typescript/HeadlessUniversalCheckout/Components/NativeResourceView.d.ts.map +1 -1
- package/lib/typescript/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.d.ts +1 -1
- package/lib/typescript/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.d.ts.map +1 -1
- package/lib/typescript/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.d.ts.map +1 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts +4 -4
- package/lib/typescript/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts.map +1 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.d.ts.map +1 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.d.ts.map +1 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.d.ts.map +1 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.d.ts.map +1 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.d.ts.map +1 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.d.ts.map +1 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/VaultManager.d.ts.map +1 -1
- package/lib/typescript/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.d.ts.map +1 -1
- package/lib/typescript/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.d.ts.map +1 -1
- package/lib/typescript/Primer.d.ts.map +1 -1
- package/lib/typescript/RNPrimer.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +5 -5
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/models/IssuingBank.d.ts.map +1 -1
- package/lib/typescript/models/NamedComponentStep.d.ts.map +1 -1
- package/lib/typescript/models/NamedComponentValidatableData.d.ts.map +1 -1
- package/lib/typescript/models/PrimerCheckoutAdditionalInfo.d.ts +4 -4
- package/lib/typescript/models/PrimerCheckoutAdditionalInfo.d.ts.map +1 -1
- package/lib/typescript/models/PrimerCheckoutData.d.ts +1 -1
- package/lib/typescript/models/PrimerCheckoutData.d.ts.map +1 -1
- package/lib/typescript/models/PrimerCheckoutPaymentMethodData.d.ts.map +1 -1
- package/lib/typescript/models/PrimerClientSession.d.ts.map +1 -1
- package/lib/typescript/models/PrimerComponentDataValidation.d.ts +5 -5
- package/lib/typescript/models/PrimerComponentDataValidation.d.ts.map +1 -1
- package/lib/typescript/models/PrimerCountryCode.d.ts +1 -1
- package/lib/typescript/models/PrimerCountryCode.d.ts.map +1 -1
- package/lib/typescript/models/PrimerCurrencyCode.d.ts +1 -1
- package/lib/typescript/models/PrimerCurrencyCode.d.ts.map +1 -1
- package/lib/typescript/models/PrimerError.d.ts.map +1 -1
- package/lib/typescript/models/PrimerHandlers.d.ts.map +1 -1
- package/lib/typescript/models/PrimerHeadlessUniversalCheckoutPaymentMethod.d.ts +2 -2
- package/lib/typescript/models/PrimerHeadlessUniversalCheckoutPaymentMethod.d.ts.map +1 -1
- package/lib/typescript/models/PrimerImplementedRNCallbacks.d.ts.map +1 -1
- package/lib/typescript/models/PrimerInitializationData.d.ts +1 -1
- package/lib/typescript/models/PrimerInitializationData.d.ts.map +1 -1
- package/lib/typescript/models/PrimerInputElementType.d.ts.map +1 -1
- package/lib/typescript/models/PrimerInterfaces.d.ts +1 -1
- package/lib/typescript/models/PrimerPaymentMethodManagerCategory.d.ts.map +1 -1
- package/lib/typescript/models/PrimerPaymentMethodResource.d.ts.map +1 -1
- package/lib/typescript/models/PrimerRawData.d.ts.map +1 -1
- package/lib/typescript/models/PrimerSettings.d.ts +15 -10
- package/lib/typescript/models/PrimerSettings.d.ts.map +1 -1
- package/lib/typescript/models/PrimerValidationError.d.ts.map +1 -1
- package/lib/typescript/models/PrimerValidationErrorResult.d.ts +1 -1
- package/lib/typescript/models/PrimerValidationErrorResult.d.ts.map +1 -1
- package/lib/typescript/models/PrimerVaultedPaymentMethod.d.ts +1 -1
- package/lib/typescript/models/PrimerVaultedPaymentMethod.d.ts.map +1 -1
- package/lib/typescript/models/PrimerVaultedPaymentMethodAdditionalData.d.ts.map +1 -1
- package/lib/typescript/models/PrimerVaultedPaymentMethodResult.d.ts +1 -1
- package/lib/typescript/models/PrimerVaultedPaymentMethodResult.d.ts.map +1 -1
- package/lib/typescript/models/RetailOutletsRetail.d.ts.map +1 -1
- package/lib/typescript/models/ach/AchCollectableData.d.ts +4 -4
- package/lib/typescript/models/ach/AchCollectableData.d.ts.map +1 -1
- package/lib/typescript/models/ach/AchSteps.d.ts +3 -3
- package/lib/typescript/models/ach/AchSteps.d.ts.map +1 -1
- package/lib/typescript/models/banks/BanksCollectableData.d.ts +3 -3
- package/lib/typescript/models/banks/BanksCollectableData.d.ts.map +1 -1
- package/lib/typescript/models/banks/BanksSteps.d.ts +6 -6
- package/lib/typescript/models/banks/BanksSteps.d.ts.map +1 -1
- package/lib/typescript/models/klarna/KlarnaPaymentCategory.d.ts +2 -2
- package/lib/typescript/models/klarna/KlarnaPaymentCategory.d.ts.map +1 -1
- package/lib/typescript/models/klarna/KlarnaPaymentCollectableData.d.ts +4 -4
- package/lib/typescript/models/klarna/KlarnaPaymentCollectableData.d.ts.map +1 -1
- package/lib/typescript/models/klarna/KlarnaPaymentSteps.d.ts +6 -6
- package/lib/typescript/models/klarna/KlarnaPaymentSteps.d.ts.map +1 -1
- package/lib/typescript/utils/index.d.ts +1 -1
- package/package.json +5 -4
- package/primer-io-react-native.podspec +1 -1
- package/src/HeadlessUniversalCheckout/Components/NativeResourceView.tsx +17 -21
- package/src/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.tsx +3 -6
- package/src/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.tsx +2 -4
- package/src/HeadlessUniversalCheckout/Managers/AssetsManager.ts +68 -69
- package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.ts +127 -131
- package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.ts +23 -25
- package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.ts +21 -30
- package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.ts +137 -141
- package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.ts +17 -18
- package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.ts +158 -142
- package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/Utils/EventType.ts +7 -7
- package/src/HeadlessUniversalCheckout/Managers/VaultManager.ts +96 -87
- package/src/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.ts +159 -170
- package/src/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.ts +2 -6
- package/src/HeadlessUniversalCheckout/types.ts +5 -5
- package/src/Primer.ts +60 -57
- package/src/RNPrimer.ts +53 -54
- package/src/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.tsx +1 -1
- package/src/index.tsx +74 -37
- package/src/models/IssuingBank.ts +5 -5
- package/src/models/NamedComponentStep.ts +5 -5
- package/src/models/NamedComponentValidatableData.ts +5 -5
- package/src/models/PrimerCheckoutAdditionalInfo.ts +18 -23
- package/src/models/PrimerCheckoutData.ts +8 -8
- package/src/models/PrimerCheckoutPaymentMethodData.ts +6 -6
- package/src/models/PrimerClientSession.ts +34 -34
- package/src/models/PrimerComponentDataValidation.ts +33 -33
- package/src/models/PrimerCountryCode.ts +1 -1
- package/src/models/PrimerCurrencyCode.ts +1 -1
- package/src/models/PrimerError.ts +7 -1
- package/src/models/PrimerHandlers.ts +24 -24
- package/src/models/PrimerHeadlessUniversalCheckoutPaymentMethod.ts +4 -4
- package/src/models/PrimerImplementedRNCallbacks.ts +15 -15
- package/src/models/PrimerInitializationData.ts +3 -3
- package/src/models/PrimerInputElementType.ts +9 -9
- package/src/models/PrimerInterfaces.ts +1 -1
- package/src/models/PrimerPaymentMethodManagerCategory.ts +4 -4
- package/src/models/PrimerPaymentMethodResource.ts +11 -11
- package/src/models/PrimerRawData.ts +9 -9
- package/src/models/PrimerSessionIntent.ts +1 -1
- package/src/models/PrimerSettings.ts +47 -21
- package/src/models/PrimerValidationError.ts +3 -3
- package/src/models/PrimerValidationErrorResult.ts +2 -2
- package/src/models/PrimerVaultedPaymentMethod.ts +7 -7
- package/src/models/PrimerVaultedPaymentMethodAdditionalData.ts +1 -1
- package/src/models/PrimerVaultedPaymentMethodResult.ts +3 -3
- package/src/models/RetailOutletsRetail.ts +5 -5
- package/src/models/ach/AchCollectableData.ts +12 -12
- package/src/models/ach/AchSteps.ts +18 -18
- package/src/models/banks/BanksCollectableData.ts +14 -14
- package/src/models/banks/BanksSteps.ts +13 -13
- package/src/models/klarna/KlarnaPaymentCategory.ts +16 -16
- package/src/models/klarna/KlarnaPaymentCollectableData.ts +16 -15
- package/src/models/klarna/KlarnaPaymentSteps.ts +21 -17
- package/src/utils/index.ts +1 -1
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/cardRedirect/PrimerRNCardRedirectData.kt +0 -19
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/resource/Resources.kt +0 -138
|
@@ -1,85 +1,107 @@
|
|
|
1
1
|
import PrimerSDK
|
|
2
2
|
|
|
3
|
+
// swiftlint:disable type_name
|
|
3
4
|
@objc(RNPrimerHeadlessUniversalCheckoutVaultManager)
|
|
4
5
|
class RNPrimerHeadlessUniversalCheckoutVaultManager: RCTEventEmitter {
|
|
6
|
+
// swiftlint:enable type_name
|
|
5
7
|
|
|
6
|
-
|
|
8
|
+
private var vaultedManager: PrimerHeadlessUniversalCheckout.VaultManager!
|
|
7
9
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
override func supportedEvents() -> [String]! {
|
|
11
|
+
return []
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
override class func requiresMainQueueSetup() -> Bool {
|
|
15
|
+
return true
|
|
16
|
+
}
|
|
11
17
|
|
|
12
|
-
|
|
13
|
-
|
|
18
|
+
@objc
|
|
19
|
+
func configure(
|
|
20
|
+
_ resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock
|
|
21
|
+
) {
|
|
22
|
+
do {
|
|
23
|
+
self.vaultedManager = PrimerSDK.PrimerHeadlessUniversalCheckout.VaultManager()
|
|
24
|
+
try self.vaultedManager.configure()
|
|
25
|
+
resolver(nil)
|
|
26
|
+
} catch {
|
|
27
|
+
rejecter(error.rnError["errorId"]!, error.rnError["description"], error)
|
|
14
28
|
}
|
|
29
|
+
}
|
|
15
30
|
|
|
16
|
-
|
|
17
|
-
|
|
31
|
+
@objc
|
|
32
|
+
func fetchVaultedPaymentMethods(
|
|
33
|
+
_ resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock
|
|
34
|
+
) {
|
|
35
|
+
self.vaultedManager.fetchVaultedPaymentMethods { vaultedPaymentMethods, err in
|
|
36
|
+
if let err = err {
|
|
37
|
+
rejecter(err.rnError["errorId"]!, err.rnError["description"], err)
|
|
38
|
+
} else if let paymentMethods = vaultedPaymentMethods {
|
|
18
39
|
do {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
resolver(nil)
|
|
40
|
+
let paymentMethodObjects = try paymentMethods.compactMap({ try $0.toJsonObject() })
|
|
41
|
+
resolver(["paymentMethods": paymentMethodObjects])
|
|
22
42
|
} catch {
|
|
23
|
-
|
|
43
|
+
rejecter(error.rnError["errorId"]!, error.rnError["description"], error)
|
|
24
44
|
}
|
|
45
|
+
}
|
|
25
46
|
}
|
|
47
|
+
}
|
|
26
48
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
49
|
+
@objc
|
|
50
|
+
func deleteVaultedPaymentMethod(
|
|
51
|
+
_ vaultedPaymentMethodId: String, resolver: @escaping RCTPromiseResolveBlock,
|
|
52
|
+
rejecter: @escaping RCTPromiseRejectBlock
|
|
53
|
+
) {
|
|
54
|
+
self.vaultedManager.deleteVaultedPaymentMethod(id: vaultedPaymentMethodId) { err in
|
|
55
|
+
if let err = err {
|
|
56
|
+
rejecter(err.rnError["errorId"]!, err.rnError["description"], err)
|
|
57
|
+
} else {
|
|
58
|
+
resolver([])
|
|
59
|
+
}
|
|
41
60
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
if let err = err, err.count > 0 {
|
|
60
|
-
rejecter(err.first!.rnError["errorId"]!, err.first!.rnError["description"], err.first!)
|
|
61
|
-
} else {
|
|
62
|
-
resolver(["validationErrors": []])
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
} catch {
|
|
66
|
-
rejecter(error.rnError["errorId"]!, error.rnError["description"], error)
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
@objc
|
|
64
|
+
func validate(
|
|
65
|
+
_ vaultedPaymentMethodId: String, additionalDataStr: String,
|
|
66
|
+
resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock
|
|
67
|
+
) {
|
|
68
|
+
do {
|
|
69
|
+
let additionalData = try PrimerVaultedCardAdditionalData.from(jsonString: additionalDataStr)
|
|
70
|
+
self.vaultedManager.validate(
|
|
71
|
+
vaultedPaymentMethodId: vaultedPaymentMethodId,
|
|
72
|
+
vaultedPaymentMethodAdditionalData: additionalData
|
|
73
|
+
) { err in
|
|
74
|
+
if let err = err, err.count > 0 {
|
|
75
|
+
rejecter(err.first!.rnError["errorId"]!, err.first!.rnError["description"], err.first!)
|
|
76
|
+
} else {
|
|
77
|
+
resolver(["validationErrors": []])
|
|
67
78
|
}
|
|
79
|
+
}
|
|
80
|
+
} catch {
|
|
81
|
+
rejecter(error.rnError["errorId"]!, error.rnError["description"], error)
|
|
68
82
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
@objc
|
|
86
|
+
func startPaymentFlow(
|
|
87
|
+
_ vaultedPaymentMethodId: String, resolver: @escaping RCTPromiseResolveBlock,
|
|
88
|
+
rejecter: @escaping RCTPromiseRejectBlock
|
|
89
|
+
) {
|
|
90
|
+
self.vaultedManager.startPaymentFlow(vaultedPaymentMethodId: vaultedPaymentMethodId)
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
@objc
|
|
94
|
+
func startPaymentFlowWithAdditionalData(
|
|
95
|
+
_ vaultedPaymentMethodId: String, additionalDataStr: String,
|
|
96
|
+
resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock
|
|
97
|
+
) {
|
|
98
|
+
do {
|
|
99
|
+
let additionalData = try PrimerVaultedCardAdditionalData.from(jsonString: additionalDataStr)
|
|
100
|
+
self.vaultedManager.startPaymentFlow(
|
|
101
|
+
vaultedPaymentMethodId: vaultedPaymentMethodId,
|
|
102
|
+
vaultedPaymentMethodAdditionalData: additionalData)
|
|
103
|
+
} catch {
|
|
104
|
+
rejecter(error.rnError["errorId"]!, error.rnError["description"], error)
|
|
84
105
|
}
|
|
106
|
+
}
|
|
85
107
|
}
|
|
@@ -8,56 +8,64 @@
|
|
|
8
8
|
import Foundation
|
|
9
9
|
import PrimerSDK
|
|
10
10
|
|
|
11
|
+
// swiftlint:disable type_name
|
|
11
12
|
@objc(RNTPrimerHeadlessUniversalPaymentMethodNativeUIManager)
|
|
12
13
|
class RNTPrimerHeadlessUniversalPaymentMethodNativeUIManager: RCTEventEmitter {
|
|
14
|
+
// swiftlint:enable type_name
|
|
13
15
|
|
|
14
|
-
|
|
16
|
+
var paymentMethodNativeUIManager: PrimerSDK.PrimerHeadlessUniversalCheckout.NativeUIManager!
|
|
15
17
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
override func supportedEvents() -> [String]! {
|
|
19
|
+
return []
|
|
20
|
+
}
|
|
19
21
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
override class func requiresMainQueueSetup() -> Bool {
|
|
23
|
+
return true
|
|
24
|
+
}
|
|
23
25
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
26
|
+
@objc
|
|
27
|
+
func configure(
|
|
28
|
+
_ paymentMethod: String,
|
|
29
|
+
resolver: @escaping RCTPromiseResolveBlock,
|
|
30
|
+
rejecter: @escaping RCTPromiseRejectBlock
|
|
31
|
+
) {
|
|
32
|
+
do {
|
|
33
|
+
self.paymentMethodNativeUIManager = try PrimerSDK.PrimerHeadlessUniversalCheckout
|
|
34
|
+
.NativeUIManager(paymentMethodType: paymentMethod)
|
|
35
|
+
resolver(nil)
|
|
36
|
+
} catch {
|
|
37
|
+
rejecter(error.rnError["errorId"]!, error.rnError["description"], error)
|
|
36
38
|
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@objc
|
|
42
|
+
func showPaymentMethod(
|
|
43
|
+
_ intentStr: String, resolver: @escaping RCTPromiseResolveBlock,
|
|
44
|
+
rejecter: @escaping RCTPromiseRejectBlock
|
|
45
|
+
) {
|
|
46
|
+
do {
|
|
47
|
+
guard let paymentMethodNativeUIManager = paymentMethodNativeUIManager else {
|
|
48
|
+
let err = RNTNativeError(
|
|
49
|
+
errorId: "native-ios",
|
|
50
|
+
errorDescription: "The NativeUIManager has not been initialized.",
|
|
51
|
+
recoverySuggestion:
|
|
52
|
+
"Initialize the NativeUIManager by calling the initialize function and providing a payment method type."
|
|
53
|
+
)
|
|
54
|
+
throw err
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
guard let intent = PrimerSessionIntent(rawValue: intentStr) else {
|
|
58
|
+
let err = RNTNativeError(
|
|
59
|
+
errorId: "native-ios",
|
|
60
|
+
errorDescription: "Invalid value for 'intent'.",
|
|
61
|
+
recoverySuggestion: "'intent' can be 'CHECKOUT' or 'VAULT'.")
|
|
62
|
+
throw err
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
try paymentMethodNativeUIManager.showPaymentMethod(intent: intent)
|
|
37
66
|
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
}
|
|
67
|
+
} catch {
|
|
68
|
+
rejecter(error.rnError["errorId"]!, error.rnError["description"], error)
|
|
62
69
|
}
|
|
70
|
+
}
|
|
63
71
|
}
|
|
@@ -8,192 +8,215 @@
|
|
|
8
8
|
import Foundation
|
|
9
9
|
import PrimerSDK
|
|
10
10
|
|
|
11
|
+
// swiftlint:disable type_name
|
|
11
12
|
@objc
|
|
12
13
|
enum PrimerHeadlessUniversalCheckoutRawDataManagerEvents: Int, CaseIterable {
|
|
14
|
+
// swiftlint:enable type_name
|
|
13
15
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
case onMetadataChange = 0
|
|
17
|
+
case onValidation
|
|
16
18
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
19
|
+
var stringValue: String {
|
|
20
|
+
switch self {
|
|
21
|
+
case .onMetadataChange:
|
|
22
|
+
return "onMetadataChange"
|
|
23
|
+
case .onValidation:
|
|
24
|
+
return "onValidation"
|
|
24
25
|
}
|
|
26
|
+
}
|
|
25
27
|
}
|
|
26
28
|
|
|
29
|
+
// swiftlint:disable type_name
|
|
27
30
|
@objc(RNTPrimerHeadlessUniversalCheckoutRawDataManager)
|
|
28
31
|
class RNTPrimerHeadlessUniversalCheckoutRawDataManager: RCTEventEmitter {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
32
|
+
// swiftlint:enable type_name
|
|
33
|
+
|
|
34
|
+
private var rawDataManager: PrimerHeadlessUniversalCheckout.RawDataManager!
|
|
35
|
+
private var paymentMethodType: String?
|
|
36
|
+
|
|
37
|
+
override class func requiresMainQueueSetup() -> Bool {
|
|
38
|
+
return true
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
override func supportedEvents() -> [String]! {
|
|
42
|
+
return PrimerHeadlessUniversalCheckoutRawDataManagerEvents.allCases.compactMap({
|
|
43
|
+
$0.stringValue
|
|
44
|
+
})
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// MARK: - API
|
|
48
|
+
|
|
49
|
+
@objc
|
|
50
|
+
public func configure(
|
|
51
|
+
_ paymentMethodTypeStr: String,
|
|
52
|
+
resolver: @escaping RCTPromiseResolveBlock,
|
|
53
|
+
rejecter: @escaping RCTPromiseRejectBlock
|
|
54
|
+
) {
|
|
55
|
+
self.paymentMethodType = paymentMethodTypeStr
|
|
56
|
+
|
|
57
|
+
do {
|
|
58
|
+
self.rawDataManager = try PrimerHeadlessUniversalCheckout.RawDataManager(
|
|
59
|
+
paymentMethodType: self.paymentMethodType!, delegate: self)
|
|
60
|
+
} catch {
|
|
61
|
+
rejecter(error.rnError["errorId"]!, error.rnError["description"], error)
|
|
39
62
|
}
|
|
40
63
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
resolver: @escaping RCTPromiseResolveBlock,
|
|
47
|
-
rejecter: @escaping RCTPromiseRejectBlock
|
|
48
|
-
) {
|
|
49
|
-
self.paymentMethodType = paymentMethodTypeStr
|
|
50
|
-
|
|
51
|
-
do {
|
|
52
|
-
self.rawDataManager = try PrimerHeadlessUniversalCheckout.RawDataManager(paymentMethodType: self.paymentMethodType!, delegate: self)
|
|
53
|
-
} catch {
|
|
54
|
-
rejecter(error.rnError["errorId"]!, error.rnError["description"], error)
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
self.rawDataManager!.configure { data, error in
|
|
58
|
-
do {
|
|
59
|
-
guard error == nil else {
|
|
60
|
-
rejecter(error!.rnError["errorId"]!, error!.rnError["description"], error)
|
|
61
|
-
return
|
|
62
|
-
}
|
|
63
|
-
let initializationData = try JSONEncoder().encode(data)
|
|
64
|
-
let initializationDataJson = try JSONSerialization.jsonObject(with: initializationData, options: .allowFragments)
|
|
65
|
-
resolver(["initializationData": initializationDataJson])
|
|
66
|
-
} catch {
|
|
67
|
-
rejecter(error.rnError["errorId"]!, error.rnError["description"], error)
|
|
68
|
-
}
|
|
64
|
+
self.rawDataManager!.configure { data, error in
|
|
65
|
+
do {
|
|
66
|
+
guard error == nil else {
|
|
67
|
+
rejecter(error!.rnError["errorId"]!, error!.rnError["description"], error)
|
|
68
|
+
return
|
|
69
69
|
}
|
|
70
|
+
let initializationData = try JSONEncoder().encode(data)
|
|
71
|
+
let initializationDataJson = try JSONSerialization.jsonObject(
|
|
72
|
+
with: initializationData, options: .allowFragments)
|
|
73
|
+
resolver(["initializationData": initializationDataJson])
|
|
74
|
+
} catch {
|
|
75
|
+
rejecter(error.rnError["errorId"]!, error.rnError["description"], error)
|
|
76
|
+
}
|
|
70
77
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
let inputElementTypes = rawDataManager.listRequiredInputElementTypes(for: rawDataManager.paymentMethodType).compactMap({ $0.stringValue })
|
|
87
|
-
resolver(["inputElementTypes": inputElementTypes])
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
@objc
|
|
81
|
+
public func listRequiredInputElementTypes(
|
|
82
|
+
_ resolver: RCTPromiseResolveBlock,
|
|
83
|
+
rejecter: RCTPromiseRejectBlock
|
|
84
|
+
) {
|
|
85
|
+
guard let rawDataManager = rawDataManager else {
|
|
86
|
+
let err = RNTNativeError(
|
|
87
|
+
errorId: "native-ios",
|
|
88
|
+
errorDescription: "The RawDataManager has not been initialized",
|
|
89
|
+
recoverySuggestion: "Make sure you have called initialized the `RawDataManager' first.")
|
|
90
|
+
rejecter(err.rnError["errorId"]!, err.rnError["description"], err)
|
|
91
|
+
return
|
|
88
92
|
}
|
|
89
93
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
if let rawPhoneNumberData = PrimerPhoneNumberData(phoneNumbeDatarStr: rawDataStr) {
|
|
112
|
-
rawDataManager.rawData = rawPhoneNumberData
|
|
113
|
-
resolver(nil)
|
|
114
|
-
return
|
|
115
|
-
}
|
|
94
|
+
let inputElementTypes = rawDataManager.listRequiredInputElementTypes(
|
|
95
|
+
for: rawDataManager.paymentMethodType
|
|
96
|
+
).compactMap({ $0.stringValue })
|
|
97
|
+
resolver(["inputElementTypes": inputElementTypes])
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
@objc
|
|
101
|
+
public func setRawData(
|
|
102
|
+
_ rawDataStr: String,
|
|
103
|
+
resolver: RCTPromiseResolveBlock,
|
|
104
|
+
rejecter: RCTPromiseRejectBlock
|
|
105
|
+
) {
|
|
106
|
+
guard let rawDataManager = rawDataManager else {
|
|
107
|
+
let err = RNTNativeError(
|
|
108
|
+
errorId: "native-ios",
|
|
109
|
+
errorDescription: "The RawDataManager has not been initialized",
|
|
110
|
+
recoverySuggestion: "Make sure you have called initialized the `RawDataManager' first.")
|
|
111
|
+
rejecter(err.rnError["errorId"]!, err.rnError["description"], err)
|
|
112
|
+
return
|
|
113
|
+
}
|
|
116
114
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
115
|
+
if let rawCardData = PrimerCardData(cardDataStr: rawDataStr) {
|
|
116
|
+
rawDataManager.rawData = rawCardData
|
|
117
|
+
resolver(nil)
|
|
118
|
+
return
|
|
119
|
+
}
|
|
122
120
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
121
|
+
if let rawPhoneNumberData = PrimerPhoneNumberData(phoneNumbeDatarStr: rawDataStr) {
|
|
122
|
+
rawDataManager.rawData = rawPhoneNumberData
|
|
123
|
+
resolver(nil)
|
|
124
|
+
return
|
|
125
|
+
}
|
|
128
126
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
rejecter(err.rnError["errorId"]!, err.rnError["description"], err)
|
|
127
|
+
if let rawCardRedirectData = PrimerBancontactCardData(bankcontactCardDataStr: rawDataStr) {
|
|
128
|
+
rawDataManager.rawData = rawCardRedirectData
|
|
129
|
+
resolver(nil)
|
|
130
|
+
return
|
|
134
131
|
}
|
|
135
132
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
guard let rawDataManager = rawDataManager else {
|
|
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.")
|
|
146
|
-
rejecter(err.rnError["errorId"]!, err.rnError["description"], err)
|
|
147
|
-
return
|
|
148
|
-
}
|
|
133
|
+
if let rawRetailerData = PrimerRetailerData(primerRetailerDataStr: rawDataStr) {
|
|
134
|
+
rawDataManager.rawData = rawRetailerData
|
|
135
|
+
resolver(nil)
|
|
136
|
+
return
|
|
137
|
+
}
|
|
149
138
|
|
|
150
|
-
|
|
151
|
-
|
|
139
|
+
let err = RNTNativeError(
|
|
140
|
+
errorId: "native-ios",
|
|
141
|
+
errorDescription: "Failed to decode RawData on iOS.",
|
|
142
|
+
recoverySuggestion: "Make sure you're providing a valid 'RawData' (or any inherited) object.")
|
|
143
|
+
rejecter(err.rnError["errorId"]!, err.rnError["description"], err)
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
@objc
|
|
147
|
+
public func submit(
|
|
148
|
+
_ resolver: RCTPromiseResolveBlock,
|
|
149
|
+
rejecter: RCTPromiseRejectBlock
|
|
150
|
+
) {
|
|
151
|
+
guard let rawDataManager = rawDataManager else {
|
|
152
|
+
let err = RNTNativeError(
|
|
153
|
+
errorId: "native-ios",
|
|
154
|
+
errorDescription: "The RawDataManager has not been initialized",
|
|
155
|
+
recoverySuggestion: "Make sure you have called initialized the `RawDataManager' first.")
|
|
156
|
+
rejecter(err.rnError["errorId"]!, err.rnError["description"], err)
|
|
157
|
+
return
|
|
152
158
|
}
|
|
153
159
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
rejecter: RCTPromiseRejectBlock
|
|
158
|
-
) {
|
|
160
|
+
rawDataManager.submit()
|
|
161
|
+
resolver(nil)
|
|
162
|
+
}
|
|
159
163
|
|
|
160
|
-
|
|
164
|
+
@objc
|
|
165
|
+
public func cleanUp(
|
|
166
|
+
_ resolver: RCTPromiseResolveBlock,
|
|
167
|
+
rejecter: RCTPromiseRejectBlock
|
|
168
|
+
) {
|
|
161
169
|
|
|
162
|
-
}
|
|
170
|
+
}
|
|
163
171
|
|
|
164
|
-
|
|
172
|
+
}
|
|
165
173
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
174
|
+
extension RNTPrimerHeadlessUniversalCheckoutRawDataManager:
|
|
175
|
+
PrimerHeadlessUniversalCheckoutRawDataManagerDelegate {
|
|
176
|
+
|
|
177
|
+
func primerRawDataManager(
|
|
178
|
+
_ rawDataManager: PrimerHeadlessUniversalCheckout.RawDataManager,
|
|
179
|
+
metadataDidChange metadata: [String: Any]?
|
|
180
|
+
) {
|
|
181
|
+
DispatchQueue.main.async {
|
|
182
|
+
self.sendEvent(
|
|
183
|
+
withName: PrimerHeadlessUniversalCheckoutRawDataManagerEvents.onMetadataChange.stringValue,
|
|
184
|
+
body: metadata)
|
|
170
185
|
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
func primerRawDataManager(
|
|
189
|
+
_ rawDataManager: PrimerHeadlessUniversalCheckout.RawDataManager, dataIsValid isValid: Bool,
|
|
190
|
+
errors: [Error]?
|
|
191
|
+
) {
|
|
192
|
+
DispatchQueue.main.async {
|
|
193
|
+
var body: [String: Any] = ["isValid": isValid]
|
|
194
|
+
if let errors = errors {
|
|
195
|
+
let rnErrors = errors.compactMap({ $0.rnError })
|
|
196
|
+
body["errors"] = rnErrors
|
|
197
|
+
}
|
|
198
|
+
self.sendEvent(
|
|
199
|
+
withName: PrimerHeadlessUniversalCheckoutRawDataManagerEvents.onValidation.stringValue,
|
|
200
|
+
body: body)
|
|
181
201
|
}
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
private func handleRNBridgeError(
|
|
205
|
+
_ error: Error, checkoutData: PrimerCheckoutData?, stopOnDebug: Bool
|
|
206
|
+
) {
|
|
207
|
+
DispatchQueue.main.async {
|
|
208
|
+
if stopOnDebug {
|
|
209
|
+
assertionFailure(error.localizedDescription)
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
var body: [String: Any] = ["error": error.rnError]
|
|
213
|
+
if let checkoutData = checkoutData,
|
|
214
|
+
let data = try? JSONEncoder().encode(checkoutData),
|
|
215
|
+
let json = try? JSONSerialization.jsonObject(with: data) {
|
|
216
|
+
body["checkoutData"] = json
|
|
217
|
+
}
|
|
218
|
+
print(body)
|
|
219
|
+
self.sendEvent(withName: PrimerEvents.onError.stringValue, body: body)
|
|
198
220
|
}
|
|
221
|
+
}
|
|
199
222
|
}
|