@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
@@ -9,59 +9,65 @@ import Foundation
9
9
  import PrimerSDK
10
10
 
11
11
  struct RNTPrimerPaymentMethodAsset: Codable {
12
-
13
- let paymentMethodType: String
14
- let paymentMethodName: String
15
- let paymentMethodLogo: RNTPrimerPaymentMethodLogo
16
- let paymentMethodBackgroundColor: RNTPrimerPaymentMethodBackgroundColor
17
-
18
- init(primerPaymentMethodAsset: PrimerPaymentMethodAsset) {
19
- self.paymentMethodType = primerPaymentMethodAsset.paymentMethodType
20
- self.paymentMethodName = primerPaymentMethodAsset.paymentMethodName
21
- self.paymentMethodLogo = RNTPrimerPaymentMethodLogo(
22
- paymentMethodType: primerPaymentMethodAsset.paymentMethodType,
23
- primerPaymentMethodLogo: primerPaymentMethodAsset.paymentMethodLogo)
24
- self.paymentMethodBackgroundColor = RNTPrimerPaymentMethodBackgroundColor(
25
- primerPaymentMethodBackgroundColor: primerPaymentMethodAsset.paymentMethodBackgroundColor)
26
- }
12
+
13
+ let paymentMethodType: String
14
+ let paymentMethodName: String
15
+ let paymentMethodLogo: RNTPrimerPaymentMethodLogo
16
+ let paymentMethodBackgroundColor: RNTPrimerPaymentMethodBackgroundColor
17
+
18
+ init(primerPaymentMethodAsset: PrimerPaymentMethodAsset) {
19
+ self.paymentMethodType = primerPaymentMethodAsset.paymentMethodType
20
+ self.paymentMethodName = primerPaymentMethodAsset.paymentMethodName
21
+ self.paymentMethodLogo = RNTPrimerPaymentMethodLogo(
22
+ paymentMethodType: primerPaymentMethodAsset.paymentMethodType,
23
+ primerPaymentMethodLogo: primerPaymentMethodAsset.paymentMethodLogo)
24
+ self.paymentMethodBackgroundColor = RNTPrimerPaymentMethodBackgroundColor(
25
+ primerPaymentMethodBackgroundColor: primerPaymentMethodAsset.paymentMethodBackgroundColor)
26
+ }
27
27
  }
28
28
 
29
29
  struct RNTPrimerPaymentMethodLogo: Codable {
30
-
31
- let colored: String?
32
- let dark: String?
33
- let light: String?
34
-
35
- init(paymentMethodType: String, primerPaymentMethodLogo: PrimerAsset) {
36
- self.colored = (try? primerPaymentMethodLogo.colored?.store(withName: "\(paymentMethodType)-colored").absoluteString) ?? nil
37
- self.dark = (try? primerPaymentMethodLogo.dark?.store(withName: "\(paymentMethodType)-dark").absoluteString) ?? nil
38
- self.light = (try? primerPaymentMethodLogo.light?.store(withName: "\(paymentMethodType)-light").absoluteString) ?? nil
39
- }
30
+
31
+ let colored: String?
32
+ let dark: String?
33
+ let light: String?
34
+
35
+ init(paymentMethodType: String, primerPaymentMethodLogo: PrimerAsset) {
36
+ self.colored =
37
+ (try? primerPaymentMethodLogo.colored?.store(withName: "\(paymentMethodType)-colored")
38
+ .absoluteString) ?? nil
39
+ self.dark =
40
+ (try? primerPaymentMethodLogo.dark?.store(withName: "\(paymentMethodType)-dark")
41
+ .absoluteString) ?? nil
42
+ self.light =
43
+ (try? primerPaymentMethodLogo.light?.store(withName: "\(paymentMethodType)-light")
44
+ .absoluteString) ?? nil
45
+ }
40
46
  }
41
47
 
42
48
  struct RNTPrimerPaymentMethodBackgroundColor: Codable {
43
-
44
- let colored: String?
45
- let dark: String?
46
- let light: String?
47
-
48
- init(primerPaymentMethodBackgroundColor: PrimerPaymentMethodBackgroundColor) {
49
- if let bgColoredHex = primerPaymentMethodBackgroundColor.colored?.toHex() {
50
- self.colored = "#\(bgColoredHex)"
51
- } else {
52
- self.colored = nil
53
- }
54
-
55
- if let darkColoredHex = primerPaymentMethodBackgroundColor.dark?.toHex() {
56
- self.dark = "#\(darkColoredHex)"
57
- } else {
58
- self.dark = nil
59
- }
60
-
61
- if let lightColoredHex = primerPaymentMethodBackgroundColor.light?.toHex() {
62
- self.light = "#\(lightColoredHex)"
63
- } else {
64
- self.light = nil
65
- }
49
+
50
+ let colored: String?
51
+ let dark: String?
52
+ let light: String?
53
+
54
+ init(primerPaymentMethodBackgroundColor: PrimerPaymentMethodBackgroundColor) {
55
+ if let bgColoredHex = primerPaymentMethodBackgroundColor.colored?.toHex() {
56
+ self.colored = "#\(bgColoredHex)"
57
+ } else {
58
+ self.colored = nil
59
+ }
60
+
61
+ if let darkColoredHex = primerPaymentMethodBackgroundColor.dark?.toHex() {
62
+ self.dark = "#\(darkColoredHex)"
63
+ } else {
64
+ self.dark = nil
65
+ }
66
+
67
+ if let lightColoredHex = primerPaymentMethodBackgroundColor.light?.toHex() {
68
+ self.light = "#\(lightColoredHex)"
69
+ } else {
70
+ self.light = nil
66
71
  }
72
+ }
67
73
  }
@@ -6,228 +6,251 @@
6
6
  //
7
7
 
8
8
  import Foundation
9
- import UIKit
10
9
  import PrimerSDK
10
+ import UIKit
11
11
 
12
+ // swiftlint:disable type_name
12
13
  @objc(RNTPrimerHeadlessUniversalCheckoutStripeAchUserDetailsComponent)
13
14
  class RNTPrimerHeadlessUniversalCheckoutStripeAchUserDetailsComponent: RCTEventEmitter {
14
-
15
- #if canImport(PrimerStripeSDK)
16
- private var achManager: PrimerHeadlessUniversalCheckout.AchManager = PrimerHeadlessUniversalCheckout.AchManager()
17
- #endif
18
- var stripeAchUserDetailsComponent: (any StripeAchUserDetailsComponent)?
19
- var clientToken: String?
20
-
21
- override class func requiresMainQueueSetup() -> Bool {
22
- return true
23
- }
24
-
25
- override init() {
26
- super.init()
15
+ // swiftlint:enable type_name
16
+
17
+ #if canImport(PrimerStripeSDK)
18
+ private var achManager: PrimerHeadlessUniversalCheckout.AchManager =
19
+ PrimerHeadlessUniversalCheckout.AchManager()
20
+ #endif
21
+ var stripeAchUserDetailsComponent: (any StripeAchUserDetailsComponent)?
22
+ var clientToken: String?
23
+
24
+ override class func requiresMainQueueSetup() -> Bool {
25
+ return true
26
+ }
27
+
28
+ override init() {
29
+ super.init()
30
+ }
31
+
32
+ override func supportedEvents() -> [String] {
33
+ return PrimerHeadlessUniversalCheckoutComponentEvent.allCases.compactMap({ $0.stringValue })
34
+ }
35
+
36
+ // MARK: - API
37
+
38
+ @objc
39
+ public func configure(
40
+ _ resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock
41
+ ) {
42
+ print("configure")
43
+
44
+ do {
45
+ #if canImport(PrimerStripeSDK)
46
+ guard
47
+ let stripeAchUserDetailsComponent: any StripeAchUserDetailsComponent =
48
+ try? achManager.provide(paymentMethodType: "STRIPE_ACH")
49
+ else {
50
+ let err = RNTNativeError(
51
+ errorId: "native-ios",
52
+ errorDescription: "Failed to find asset of STRIPE_ACH for this session",
53
+ recoverySuggestion: nil)
54
+ throw err
55
+ }
56
+ self.stripeAchUserDetailsComponent = stripeAchUserDetailsComponent
57
+ RNTAchMandateManager.mandateDelegate = achManager.mandateDelegate
58
+ stripeAchUserDetailsComponent.stepDelegate = self
59
+ stripeAchUserDetailsComponent.errorDelegate = self
60
+ stripeAchUserDetailsComponent.validationDelegate = self
61
+ #else
62
+ let err = RNTNativeError(
63
+ errorId: "native-ios",
64
+ errorDescription: "PrimerStripeSDK missing",
65
+ recoverySuggestion: "Check if PrimerStripeSDK is included in your Podfile")
66
+
67
+ throw err
68
+ #endif
69
+
70
+ resolver(nil)
71
+ } catch {
72
+ rejecter(error.rnError["errorId"]!, error.rnError["description"], error)
27
73
  }
28
-
29
- override func supportedEvents() -> [String] {
30
- return PrimerHeadlessUniversalCheckoutComponentEvent.allCases.compactMap({ $0.stringValue })
74
+ }
75
+
76
+ @objc
77
+ public func cleanUp(
78
+ _ resolver: RCTPromiseResolveBlock,
79
+ rejecter: RCTPromiseRejectBlock
80
+ ) {
81
+ RNTAchMandateManager.mandateDelegate = nil
82
+ stripeAchUserDetailsComponent = nil
83
+ resolver(nil)
84
+ }
85
+
86
+ @objc
87
+ public func start(
88
+ _ resolver: RCTPromiseResolveBlock,
89
+ rejecter: RCTPromiseRejectBlock
90
+ ) {
91
+ print("Start Stripe ACH process")
92
+
93
+ guard let stripeAchUserDetailsComponent = self.stripeAchUserDetailsComponent else {
94
+ rejecter("UNINITIALIZED_ERROR", "Stripe ACH user details component is uninitialized", nil)
95
+ return
31
96
  }
32
-
33
- // MARK: - API
34
-
35
- @objc
36
- public func configure(_ resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
37
- print("configure")
38
-
39
- do {
40
- #if canImport(PrimerStripeSDK)
41
- guard let stripeAchUserDetailsComponent: any StripeAchUserDetailsComponent = try? achManager.provide(paymentMethodType: "STRIPE_ACH") else {
42
- let err = RNTNativeError(
43
- errorId: "native-ios",
44
- errorDescription: "Failed to find asset of STRIPE_ACH for this session",
45
- recoverySuggestion: nil)
46
- throw err
47
- }
48
- self.stripeAchUserDetailsComponent = stripeAchUserDetailsComponent
49
- RNTAchMandateManager.mandateDelegate = achManager.mandateDelegate
50
- stripeAchUserDetailsComponent.stepDelegate = self
51
- stripeAchUserDetailsComponent.errorDelegate = self
52
- stripeAchUserDetailsComponent.validationDelegate = self
53
- #else
54
- let err = RNTNativeError(
55
- errorId: "native-ios",
56
- errorDescription: "PrimerStripeSDK missing",
57
- recoverySuggestion: "Check if PrimerStripeSDK is included in your Podfile")
58
-
59
- throw err
60
- #endif
61
-
62
- resolver(nil)
63
- } catch {
64
- rejecter(error.rnError["errorId"]!, error.rnError["description"], error)
65
- }
97
+
98
+ stripeAchUserDetailsComponent.start()
99
+ resolver(nil)
100
+ }
101
+
102
+ @objc
103
+ public func submit(
104
+ _ resolver: RCTPromiseResolveBlock,
105
+ rejecter: RCTPromiseRejectBlock
106
+ ) {
107
+ guard let stripeAchUserDetailsComponent = self.stripeAchUserDetailsComponent else {
108
+ rejecter("UNINITIALIZED_ERROR", "Stripe ACH user details component is uninitialized", nil)
109
+ return
66
110
  }
67
111
 
68
- @objc
69
- public func cleanUp(
70
- _ resolver: RCTPromiseResolveBlock,
71
- rejecter: RCTPromiseRejectBlock
72
- ) {
73
- RNTAchMandateManager.mandateDelegate = nil
74
- stripeAchUserDetailsComponent = nil
75
- resolver(nil)
112
+ stripeAchUserDetailsComponent.submit()
113
+ resolver(nil)
114
+ }
115
+
116
+ @objc
117
+ public func onSetFirstName(
118
+ _ firstName: String,
119
+ resolver: RCTPromiseResolveBlock,
120
+ rejecter: RCTPromiseRejectBlock
121
+ ) {
122
+ guard let stripeAchUserDetailsComponent = self.stripeAchUserDetailsComponent else {
123
+ rejecter("UNINITIALIZED_ERROR", "Stripe ACH user details component is uninitialized", nil)
124
+ return
76
125
  }
77
-
78
- @objc
79
- public func start(
80
- _ resolver: RCTPromiseResolveBlock,
81
- rejecter: RCTPromiseRejectBlock
82
- ) {
83
- print("Start Stripe ACH process")
84
-
85
- guard let stripeAchUserDetailsComponent = self.stripeAchUserDetailsComponent else {
86
- rejecter("UNINITIALIZED_ERROR", "Stripe ACH user details component is uninitialized", nil)
87
- return
88
- }
89
-
90
- stripeAchUserDetailsComponent.start()
91
- resolver(nil)
126
+
127
+ DispatchQueue.main.async {
128
+ stripeAchUserDetailsComponent.updateCollectedData(
129
+ collectableData: ACHUserDetailsCollectableData.firstName(firstName))
92
130
  }
93
-
94
- @objc
95
- public func submit(
96
- _ resolver: RCTPromiseResolveBlock,
97
- rejecter: RCTPromiseRejectBlock
98
- ) {
99
- guard let stripeAchUserDetailsComponent = self.stripeAchUserDetailsComponent else {
100
- rejecter("UNINITIALIZED_ERROR", "Stripe ACH user details component is uninitialized", nil)
101
- return
102
- }
103
-
104
- stripeAchUserDetailsComponent.submit()
105
- resolver(nil)
131
+
132
+ resolver(nil)
133
+ }
134
+
135
+ @objc
136
+ public func onSetLastName(
137
+ _ lastName: String,
138
+ resolver: RCTPromiseResolveBlock,
139
+ rejecter: RCTPromiseRejectBlock
140
+ ) {
141
+ guard let stripeAchUserDetailsComponent = self.stripeAchUserDetailsComponent else {
142
+ rejecter("UNINITIALIZED_ERROR", "Stripe ACH user details component is uninitialized", nil)
143
+ return
106
144
  }
107
-
108
- @objc
109
- public func onSetFirstName(
110
- _ firstName: String,
111
- resolver: RCTPromiseResolveBlock,
112
- rejecter: RCTPromiseRejectBlock
113
- ) {
114
- guard let stripeAchUserDetailsComponent = self.stripeAchUserDetailsComponent else {
115
- rejecter("UNINITIALIZED_ERROR", "Stripe ACH user details component is uninitialized", nil)
116
- return
117
- }
118
-
119
- DispatchQueue.main.async {
120
- stripeAchUserDetailsComponent.updateCollectedData(collectableData: ACHUserDetailsCollectableData.firstName(firstName))
121
- }
122
-
123
- resolver(nil)
145
+
146
+ DispatchQueue.main.async {
147
+ stripeAchUserDetailsComponent.updateCollectedData(
148
+ collectableData: ACHUserDetailsCollectableData.lastName(lastName))
124
149
  }
125
-
126
- @objc
127
- public func onSetLastName(
128
- _ lastName: String,
129
- resolver: RCTPromiseResolveBlock,
130
- rejecter: RCTPromiseRejectBlock
131
- ) {
132
- guard let stripeAchUserDetailsComponent = self.stripeAchUserDetailsComponent else {
133
- rejecter("UNINITIALIZED_ERROR", "Stripe ACH user details component is uninitialized", nil)
134
- return
135
- }
136
-
137
- DispatchQueue.main.async {
138
- stripeAchUserDetailsComponent.updateCollectedData(collectableData: ACHUserDetailsCollectableData.lastName(lastName))
139
- }
140
-
141
- resolver(nil)
150
+
151
+ resolver(nil)
152
+ }
153
+
154
+ @objc
155
+ public func onSetEmailAddress(
156
+ _ emailAddress: String,
157
+ resolver: RCTPromiseResolveBlock,
158
+ rejecter: RCTPromiseRejectBlock
159
+ ) {
160
+ guard let stripeAchUserDetailsComponent = self.stripeAchUserDetailsComponent else {
161
+ rejecter("UNINITIALIZED_ERROR", "Stripe ACH user details component is uninitialized", nil)
162
+ return
142
163
  }
143
-
144
- @objc
145
- public func onSetEmailAddress(
146
- _ emailAddress: String,
147
- resolver: RCTPromiseResolveBlock,
148
- rejecter: RCTPromiseRejectBlock
149
- ) {
150
- guard let stripeAchUserDetailsComponent = self.stripeAchUserDetailsComponent else {
151
- rejecter("UNINITIALIZED_ERROR", "Stripe ACH user details component is uninitialized", nil)
152
- return
153
- }
154
-
155
- DispatchQueue.main.async {
156
- stripeAchUserDetailsComponent.updateCollectedData(collectableData: ACHUserDetailsCollectableData.emailAddress(emailAddress))
157
- }
158
-
159
- resolver(nil)
164
+
165
+ DispatchQueue.main.async {
166
+ stripeAchUserDetailsComponent.updateCollectedData(
167
+ collectableData: ACHUserDetailsCollectableData.emailAddress(emailAddress))
160
168
  }
169
+
170
+ resolver(nil)
171
+ }
161
172
  }
162
173
 
163
- extension RNTPrimerHeadlessUniversalCheckoutStripeAchUserDetailsComponent: PrimerHeadlessSteppableDelegate {
164
- func didReceiveStep(step: PrimerSDK.PrimerHeadlessStep) {
165
- guard let step = step as? ACHUserDetailsStep else { return }
166
-
167
- switch step {
168
- case .retrievedUserDetails(let details):
169
- let json = try? step.toUserDetailsRetrievedRN(firstName: details.firstName, lastName: details.lastName, emailAddress: details.emailAddress).toJsonObject()
170
-
171
- sendEvent(
172
- withName: PrimerHeadlessUniversalCheckoutComponentEvent.onStep.stringValue,
173
- body: json
174
- )
175
-
176
- case .didCollectUserDetails:
177
- let json = try? step.toUserDetailsCollectedRN().toJsonObject()
178
-
179
- sendEvent(
180
- withName: PrimerHeadlessUniversalCheckoutComponentEvent.onStep.stringValue,
181
- body: json
182
- )
183
-
184
- default:
185
- break
186
- }
174
+ extension RNTPrimerHeadlessUniversalCheckoutStripeAchUserDetailsComponent:
175
+ PrimerHeadlessSteppableDelegate {
176
+ func didReceiveStep(step: PrimerSDK.PrimerHeadlessStep) {
177
+ guard let step = step as? ACHUserDetailsStep else { return }
178
+
179
+ switch step {
180
+ case .retrievedUserDetails(let details):
181
+ let json = try? step.toUserDetailsRetrievedRN(
182
+ firstName: details.firstName,
183
+ lastName: details.lastName,
184
+ emailAddress: details.emailAddress
185
+ ).toJsonObject()
186
+
187
+ sendEvent(
188
+ withName: PrimerHeadlessUniversalCheckoutComponentEvent.onStep.stringValue,
189
+ body: json
190
+ )
191
+
192
+ case .didCollectUserDetails:
193
+ let json = try? step.toUserDetailsCollectedRN().toJsonObject()
194
+
195
+ sendEvent(
196
+ withName: PrimerHeadlessUniversalCheckoutComponentEvent.onStep.stringValue,
197
+ body: json
198
+ )
199
+
200
+ default:
201
+ break
187
202
  }
203
+ }
188
204
  }
189
205
 
190
- extension RNTPrimerHeadlessUniversalCheckoutStripeAchUserDetailsComponent: PrimerHeadlessValidatableDelegate {
191
- func didUpdate(validationStatus: PrimerSDK.PrimerValidationStatus, for data: PrimerSDK.PrimerCollectableData?) {
192
- guard let data = data as? ACHUserDetailsCollectableData else { return }
193
-
194
- var errorJsonObject: Any?
195
- let eventName: String
196
-
197
- switch validationStatus {
198
- case .valid:
199
- eventName = PrimerHeadlessUniversalCheckoutComponentEvent.onValid.stringValue
200
- case .validating:
201
- eventName = PrimerHeadlessUniversalCheckoutComponentEvent.onValidating.stringValue
202
- case .invalid(let errors):
203
- errorJsonObject = try? ["errors": errors.map { $0.toPrimerValidationErrorRN() }].toJsonObject()
204
- eventName = PrimerHeadlessUniversalCheckoutComponentEvent.onInvalid.stringValue
205
- case .error(let error):
206
- errorJsonObject = try? ["errors": [error.toPrimerErrorRN()]].toJsonObject()
207
- eventName = PrimerHeadlessUniversalCheckoutComponentEvent.onValidationError.stringValue
208
- }
209
-
210
- var dataJsonObject: Any?
211
- switch data {
212
- case .firstName(let value):
213
- dataJsonObject = try? ["data": data.toFirstNameRN(value: value)].toJsonObject()
214
- case .lastName(let value):
215
- dataJsonObject = try? ["data": data.toLastNameRN(value: value)].toJsonObject()
216
- case .emailAddress(let value):
217
- dataJsonObject = try? ["data": data.toEmailAddressRN(value: value)].toJsonObject()
218
- }
219
- let allData = ((dataJsonObject as? [String: Any]) ?? [:]).merging((errorJsonObject as? [String: Any]) ?? [:]) { (_, new) in new }
220
- sendEvent(withName: eventName, body: allData)
206
+ extension RNTPrimerHeadlessUniversalCheckoutStripeAchUserDetailsComponent:
207
+ PrimerHeadlessValidatableDelegate {
208
+ func didUpdate(
209
+ validationStatus: PrimerSDK.PrimerValidationStatus, for data: PrimerSDK.PrimerCollectableData?
210
+ ) {
211
+ guard let data = data as? ACHUserDetailsCollectableData else { return }
212
+
213
+ var errorJsonObject: Any?
214
+ let eventName: String
215
+
216
+ switch validationStatus {
217
+ case .valid:
218
+ eventName = PrimerHeadlessUniversalCheckoutComponentEvent.onValid.stringValue
219
+ case .validating:
220
+ eventName = PrimerHeadlessUniversalCheckoutComponentEvent.onValidating.stringValue
221
+ case .invalid(let errors):
222
+ errorJsonObject = try? ["errors": errors.map { $0.toPrimerValidationErrorRN() }]
223
+ .toJsonObject()
224
+ eventName = PrimerHeadlessUniversalCheckoutComponentEvent.onInvalid.stringValue
225
+ case .error(let error):
226
+ errorJsonObject = try? ["errors": [error.toPrimerErrorRN()]].toJsonObject()
227
+ eventName = PrimerHeadlessUniversalCheckoutComponentEvent.onValidationError.stringValue
221
228
  }
222
- }
223
229
 
224
- extension RNTPrimerHeadlessUniversalCheckoutStripeAchUserDetailsComponent: PrimerHeadlessErrorableDelegate {
225
- func didReceiveError(error: PrimerSDK.PrimerError) {
226
- let rnError = error.toPrimerErrorRN()
227
- let serializedData = try? ["errors": [rnError]].toJsonObject()
228
-
229
- self.sendEvent(
230
- withName: PrimerHeadlessUniversalCheckoutComponentEvent.onError.stringValue,
231
- body: serializedData)
230
+ var dataJsonObject: Any?
231
+ switch data {
232
+ case .firstName(let value):
233
+ dataJsonObject = try? ["data": data.toFirstNameRN(value: value)].toJsonObject()
234
+ case .lastName(let value):
235
+ dataJsonObject = try? ["data": data.toLastNameRN(value: value)].toJsonObject()
236
+ case .emailAddress(let value):
237
+ dataJsonObject = try? ["data": data.toEmailAddressRN(value: value)].toJsonObject()
232
238
  }
239
+ let allData = ((dataJsonObject as? [String: Any]) ?? [:]).merging(
240
+ (errorJsonObject as? [String: Any]) ?? [:]
241
+ ) { (_, new) in new }
242
+ sendEvent(withName: eventName, body: allData)
243
+ }
244
+ }
245
+
246
+ extension RNTPrimerHeadlessUniversalCheckoutStripeAchUserDetailsComponent:
247
+ PrimerHeadlessErrorableDelegate {
248
+ func didReceiveError(error: PrimerSDK.PrimerError) {
249
+ let rnError = error.toPrimerErrorRN()
250
+ let serializedData = try? ["errors": [rnError]].toJsonObject()
251
+
252
+ self.sendEvent(
253
+ withName: PrimerHeadlessUniversalCheckoutComponentEvent.onError.stringValue,
254
+ body: serializedData)
255
+ }
233
256
  }
@@ -12,20 +12,20 @@ import PrimerSDK
12
12
  @objc(RNTAchMandateManager)
13
13
  class RNTAchMandateManager: NSObject, RCTBridgeModule {
14
14
  private let errorMessage = "Mandate delegate is not defined"
15
-
15
+
16
16
  static func moduleName() -> String! {
17
17
  return "RNTAchMandateManager"
18
18
  }
19
-
19
+
20
20
  func methodQueue() -> DispatchQueue {
21
21
  return DispatchQueue.main
22
22
  }
23
-
23
+
24
24
  @objc static func requiresMainQueueSetup() -> Bool {
25
25
  return true
26
26
  }
27
-
28
- static var mandateDelegate: ACHMandateDelegate? = nil
27
+
28
+ static var mandateDelegate: ACHMandateDelegate?
29
29
 
30
30
  @objc
31
31
  func acceptMandate(
@@ -38,7 +38,7 @@ class RNTAchMandateManager: NSObject, RCTBridgeModule {
38
38
  rejecter("native-ios", errorMessage, nil)
39
39
  }
40
40
  }
41
-
41
+
42
42
  @objc
43
43
  func declineMandate(
44
44
  _ resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock