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