@primer-io/react-native 2.30.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 (308) 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 -119
  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 +91 -50
  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/lib/commonjs/HeadlessUniversalCheckout/Components/NativeResourceView.js.map +1 -1
  119. package/lib/commonjs/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js.map +1 -1
  120. package/lib/commonjs/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.js.map +1 -1
  121. package/lib/commonjs/HeadlessUniversalCheckout/Managers/AssetsManager.js +4 -4
  122. package/lib/commonjs/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +1 -1
  123. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.js +1 -1
  124. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.js.map +1 -1
  125. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.js +2 -2
  126. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.js.map +1 -1
  127. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js +1 -1
  128. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js.map +1 -1
  129. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js.map +1 -1
  130. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js.map +1 -1
  131. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js +6 -6
  132. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js.map +1 -1
  133. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/Utils/EventType.js.map +1 -1
  134. package/lib/commonjs/HeadlessUniversalCheckout/Managers/VaultManager.js.map +1 -1
  135. package/lib/commonjs/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js +4 -4
  136. package/lib/commonjs/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js.map +1 -1
  137. package/lib/commonjs/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js +1 -1
  138. package/lib/commonjs/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js.map +1 -1
  139. package/lib/commonjs/HeadlessUniversalCheckout/types.js +5 -5
  140. package/lib/commonjs/Primer.js +2 -2
  141. package/lib/commonjs/Primer.js.map +1 -1
  142. package/lib/commonjs/RNPrimer.js +5 -5
  143. package/lib/commonjs/RNPrimer.js.map +1 -1
  144. package/lib/commonjs/index.js.map +1 -1
  145. package/lib/commonjs/models/PrimerError.js.map +1 -1
  146. package/lib/module/HeadlessUniversalCheckout/Components/NativeResourceView.js +3 -3
  147. package/lib/module/HeadlessUniversalCheckout/Components/NativeResourceView.js.map +1 -1
  148. package/lib/module/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js +1 -1
  149. package/lib/module/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.js.map +1 -1
  150. package/lib/module/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.js +1 -1
  151. package/lib/module/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.js.map +1 -1
  152. package/lib/module/HeadlessUniversalCheckout/Managers/AssetsManager.js +4 -4
  153. package/lib/module/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +1 -1
  154. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.js +1 -1
  155. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.js.map +1 -1
  156. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.js +2 -2
  157. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.js.map +1 -1
  158. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js +1 -1
  159. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js.map +1 -1
  160. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js.map +1 -1
  161. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js.map +1 -1
  162. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js +6 -6
  163. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js.map +1 -1
  164. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/Utils/EventType.js.map +1 -1
  165. package/lib/module/HeadlessUniversalCheckout/Managers/VaultManager.js.map +1 -1
  166. package/lib/module/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js +4 -4
  167. package/lib/module/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js.map +1 -1
  168. package/lib/module/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js +1 -1
  169. package/lib/module/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js.map +1 -1
  170. package/lib/module/HeadlessUniversalCheckout/types.js +5 -5
  171. package/lib/module/Primer.js +2 -2
  172. package/lib/module/Primer.js.map +1 -1
  173. package/lib/module/RNPrimer.js +5 -5
  174. package/lib/module/RNPrimer.js.map +1 -1
  175. package/lib/module/index.js.map +1 -1
  176. package/lib/module/models/PrimerError.js.map +1 -1
  177. package/lib/typescript/HeadlessUniversalCheckout/Components/NativeResourceView.d.ts +2 -2
  178. package/lib/typescript/HeadlessUniversalCheckout/Components/NativeResourceView.d.ts.map +1 -1
  179. package/lib/typescript/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.d.ts +1 -1
  180. package/lib/typescript/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.d.ts.map +1 -1
  181. package/lib/typescript/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.d.ts.map +1 -1
  182. package/lib/typescript/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts +4 -4
  183. package/lib/typescript/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts.map +1 -1
  184. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.d.ts.map +1 -1
  185. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.d.ts.map +1 -1
  186. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.d.ts.map +1 -1
  187. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.d.ts.map +1 -1
  188. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.d.ts.map +1 -1
  189. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.d.ts.map +1 -1
  190. package/lib/typescript/HeadlessUniversalCheckout/Managers/VaultManager.d.ts.map +1 -1
  191. package/lib/typescript/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.d.ts.map +1 -1
  192. package/lib/typescript/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.d.ts.map +1 -1
  193. package/lib/typescript/Primer.d.ts.map +1 -1
  194. package/lib/typescript/RNPrimer.d.ts.map +1 -1
  195. package/lib/typescript/index.d.ts +4 -4
  196. package/lib/typescript/index.d.ts.map +1 -1
  197. package/lib/typescript/models/IssuingBank.d.ts.map +1 -1
  198. package/lib/typescript/models/NamedComponentStep.d.ts.map +1 -1
  199. package/lib/typescript/models/NamedComponentValidatableData.d.ts.map +1 -1
  200. package/lib/typescript/models/PrimerCheckoutAdditionalInfo.d.ts +4 -4
  201. package/lib/typescript/models/PrimerCheckoutAdditionalInfo.d.ts.map +1 -1
  202. package/lib/typescript/models/PrimerCheckoutData.d.ts +1 -1
  203. package/lib/typescript/models/PrimerCheckoutData.d.ts.map +1 -1
  204. package/lib/typescript/models/PrimerCheckoutPaymentMethodData.d.ts.map +1 -1
  205. package/lib/typescript/models/PrimerClientSession.d.ts.map +1 -1
  206. package/lib/typescript/models/PrimerComponentDataValidation.d.ts +5 -5
  207. package/lib/typescript/models/PrimerComponentDataValidation.d.ts.map +1 -1
  208. package/lib/typescript/models/PrimerCountryCode.d.ts +1 -1
  209. package/lib/typescript/models/PrimerCountryCode.d.ts.map +1 -1
  210. package/lib/typescript/models/PrimerCurrencyCode.d.ts +1 -1
  211. package/lib/typescript/models/PrimerCurrencyCode.d.ts.map +1 -1
  212. package/lib/typescript/models/PrimerError.d.ts.map +1 -1
  213. package/lib/typescript/models/PrimerHandlers.d.ts.map +1 -1
  214. package/lib/typescript/models/PrimerHeadlessUniversalCheckoutPaymentMethod.d.ts +2 -2
  215. package/lib/typescript/models/PrimerHeadlessUniversalCheckoutPaymentMethod.d.ts.map +1 -1
  216. package/lib/typescript/models/PrimerImplementedRNCallbacks.d.ts.map +1 -1
  217. package/lib/typescript/models/PrimerInitializationData.d.ts +1 -1
  218. package/lib/typescript/models/PrimerInitializationData.d.ts.map +1 -1
  219. package/lib/typescript/models/PrimerInputElementType.d.ts.map +1 -1
  220. package/lib/typescript/models/PrimerInterfaces.d.ts +1 -1
  221. package/lib/typescript/models/PrimerPaymentMethodManagerCategory.d.ts.map +1 -1
  222. package/lib/typescript/models/PrimerPaymentMethodResource.d.ts.map +1 -1
  223. package/lib/typescript/models/PrimerRawData.d.ts.map +1 -1
  224. package/lib/typescript/models/PrimerSettings.d.ts +10 -10
  225. package/lib/typescript/models/PrimerSettings.d.ts.map +1 -1
  226. package/lib/typescript/models/PrimerValidationError.d.ts.map +1 -1
  227. package/lib/typescript/models/PrimerValidationErrorResult.d.ts +1 -1
  228. package/lib/typescript/models/PrimerValidationErrorResult.d.ts.map +1 -1
  229. package/lib/typescript/models/PrimerVaultedPaymentMethod.d.ts +1 -1
  230. package/lib/typescript/models/PrimerVaultedPaymentMethod.d.ts.map +1 -1
  231. package/lib/typescript/models/PrimerVaultedPaymentMethodAdditionalData.d.ts.map +1 -1
  232. package/lib/typescript/models/PrimerVaultedPaymentMethodResult.d.ts +1 -1
  233. package/lib/typescript/models/PrimerVaultedPaymentMethodResult.d.ts.map +1 -1
  234. package/lib/typescript/models/RetailOutletsRetail.d.ts.map +1 -1
  235. package/lib/typescript/models/ach/AchCollectableData.d.ts +4 -4
  236. package/lib/typescript/models/ach/AchCollectableData.d.ts.map +1 -1
  237. package/lib/typescript/models/ach/AchSteps.d.ts +3 -3
  238. package/lib/typescript/models/ach/AchSteps.d.ts.map +1 -1
  239. package/lib/typescript/models/banks/BanksCollectableData.d.ts +3 -3
  240. package/lib/typescript/models/banks/BanksCollectableData.d.ts.map +1 -1
  241. package/lib/typescript/models/banks/BanksSteps.d.ts +6 -6
  242. package/lib/typescript/models/banks/BanksSteps.d.ts.map +1 -1
  243. package/lib/typescript/models/klarna/KlarnaPaymentCategory.d.ts +2 -2
  244. package/lib/typescript/models/klarna/KlarnaPaymentCategory.d.ts.map +1 -1
  245. package/lib/typescript/models/klarna/KlarnaPaymentCollectableData.d.ts +4 -4
  246. package/lib/typescript/models/klarna/KlarnaPaymentCollectableData.d.ts.map +1 -1
  247. package/lib/typescript/models/klarna/KlarnaPaymentSteps.d.ts +6 -6
  248. package/lib/typescript/models/klarna/KlarnaPaymentSteps.d.ts.map +1 -1
  249. package/lib/typescript/utils/index.d.ts +1 -1
  250. package/package.json +5 -4
  251. package/primer-io-react-native.podspec +1 -1
  252. package/src/HeadlessUniversalCheckout/Components/NativeResourceView.tsx +17 -21
  253. package/src/HeadlessUniversalCheckout/Components/PrimerGooglePayButton.tsx +3 -6
  254. package/src/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.tsx +2 -4
  255. package/src/HeadlessUniversalCheckout/Managers/AssetsManager.ts +68 -69
  256. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchManager.ts +127 -131
  257. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/AchMandateManager.ts +23 -25
  258. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.ts +21 -30
  259. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.ts +137 -141
  260. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.ts +17 -18
  261. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.ts +158 -142
  262. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/Utils/EventType.ts +7 -7
  263. package/src/HeadlessUniversalCheckout/Managers/VaultManager.ts +96 -87
  264. package/src/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.ts +159 -170
  265. package/src/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.ts +2 -6
  266. package/src/HeadlessUniversalCheckout/types.ts +5 -5
  267. package/src/Primer.ts +60 -57
  268. package/src/RNPrimer.ts +53 -54
  269. package/src/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.tsx +1 -1
  270. package/src/index.tsx +73 -36
  271. package/src/models/IssuingBank.ts +5 -5
  272. package/src/models/NamedComponentStep.ts +5 -5
  273. package/src/models/NamedComponentValidatableData.ts +5 -5
  274. package/src/models/PrimerCheckoutAdditionalInfo.ts +18 -23
  275. package/src/models/PrimerCheckoutData.ts +8 -8
  276. package/src/models/PrimerCheckoutPaymentMethodData.ts +6 -6
  277. package/src/models/PrimerClientSession.ts +34 -34
  278. package/src/models/PrimerComponentDataValidation.ts +33 -33
  279. package/src/models/PrimerCountryCode.ts +1 -1
  280. package/src/models/PrimerCurrencyCode.ts +1 -1
  281. package/src/models/PrimerError.ts +7 -1
  282. package/src/models/PrimerHandlers.ts +24 -24
  283. package/src/models/PrimerHeadlessUniversalCheckoutPaymentMethod.ts +4 -4
  284. package/src/models/PrimerImplementedRNCallbacks.ts +15 -15
  285. package/src/models/PrimerInitializationData.ts +3 -3
  286. package/src/models/PrimerInputElementType.ts +9 -9
  287. package/src/models/PrimerInterfaces.ts +1 -1
  288. package/src/models/PrimerPaymentMethodManagerCategory.ts +4 -4
  289. package/src/models/PrimerPaymentMethodResource.ts +11 -11
  290. package/src/models/PrimerRawData.ts +9 -9
  291. package/src/models/PrimerSessionIntent.ts +1 -1
  292. package/src/models/PrimerSettings.ts +37 -21
  293. package/src/models/PrimerValidationError.ts +3 -3
  294. package/src/models/PrimerValidationErrorResult.ts +2 -2
  295. package/src/models/PrimerVaultedPaymentMethod.ts +7 -7
  296. package/src/models/PrimerVaultedPaymentMethodAdditionalData.ts +1 -1
  297. package/src/models/PrimerVaultedPaymentMethodResult.ts +3 -3
  298. package/src/models/RetailOutletsRetail.ts +5 -5
  299. package/src/models/ach/AchCollectableData.ts +12 -12
  300. package/src/models/ach/AchSteps.ts +18 -18
  301. package/src/models/banks/BanksCollectableData.ts +14 -14
  302. package/src/models/banks/BanksSteps.ts +13 -13
  303. package/src/models/klarna/KlarnaPaymentCategory.ts +16 -16
  304. package/src/models/klarna/KlarnaPaymentCollectableData.ts +16 -15
  305. package/src/models/klarna/KlarnaPaymentSteps.ts +21 -17
  306. package/src/utils/index.ts +1 -1
  307. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/cardRedirect/PrimerRNCardRedirectData.kt +0 -19
  308. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/resource/Resources.kt +0 -138
@@ -1,18 +1,23 @@
1
1
  package com.primerioreactnative
2
2
 
3
+ import androidx.activity.ComponentActivity
3
4
  import com.facebook.react.bridge.Promise
4
5
  import com.facebook.react.bridge.ReactContext
5
6
  import com.primerioreactnative.components.datamodels.core.PrimerRNAvailablePaymentMethods
6
7
  import com.primerioreactnative.components.datamodels.core.toPrimerRNHeadlessUniversalCheckoutPaymentMethod
7
8
  import com.primerioreactnative.components.events.PrimerHeadlessUniversalCheckoutEvent
8
- import com.primerioreactnative.components.manager.ach.PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent
9
9
  import com.primerioreactnative.components.manager.ach.PrimerRNAchMandateManager
10
- import com.primerioreactnative.datamodels.*
10
+ import com.primerioreactnative.components.manager.ach.PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent
11
+ import com.primerioreactnative.datamodels.ErrorTypeRN
12
+ import com.primerioreactnative.datamodels.PrimerCheckoutDataRN
13
+ import com.primerioreactnative.datamodels.PrimerErrorRN
14
+ import com.primerioreactnative.datamodels.PrimerPaymentInstrumentTokenRN
15
+ import com.primerioreactnative.datamodels.PrimerPaymentMethodDataRN
16
+ import com.primerioreactnative.extensions.removeType
11
17
  import com.primerioreactnative.extensions.toCheckoutAdditionalInfoRN
12
18
  import com.primerioreactnative.extensions.toPrimerCheckoutDataRN
13
19
  import com.primerioreactnative.extensions.toPrimerClientSessionRN
14
20
  import com.primerioreactnative.extensions.toPrimerPaymentMethodDataRN
15
- import com.primerioreactnative.extensions.removeType
16
21
  import com.primerioreactnative.utils.PrimerHeadlessUniversalCheckoutImplementedRNCallbacks
17
22
  import com.primerioreactnative.utils.errorTo
18
23
  import com.primerioreactnative.utils.toWritableMap
@@ -24,348 +29,350 @@ import io.primer.android.components.domain.core.models.PrimerHeadlessUniversalCh
24
29
  import io.primer.android.domain.PrimerCheckoutData
25
30
  import io.primer.android.domain.action.models.PrimerClientSession
26
31
  import io.primer.android.domain.error.models.PrimerError
27
- import io.primer.android.vouchers.multibanco.MultibancoCheckoutAdditionalInfo
32
+ import io.primer.android.domain.tokenization.models.PrimerPaymentMethodData
33
+ import io.primer.android.domain.tokenization.models.PrimerPaymentMethodTokenData
28
34
  import io.primer.android.payments.core.additionalInfo.PrimerCheckoutAdditionalInfo
29
35
  import io.primer.android.qrcode.QrCodeCheckoutAdditionalInfo
30
36
  import io.primer.android.stripe.ach.api.additionalInfo.AchAdditionalInfo
31
- import io.primer.android.domain.tokenization.models.PrimerPaymentMethodData
32
- import io.primer.android.domain.tokenization.models.PrimerPaymentMethodTokenData
33
- import io.primer.android.Primer
37
+ import io.primer.android.vouchers.multibanco.MultibancoCheckoutAdditionalInfo
34
38
  import kotlinx.serialization.encodeToString
35
39
  import kotlinx.serialization.json.Json
36
40
  import org.json.JSONObject
37
- import androidx.activity.ComponentActivity
38
41
 
42
+ @Suppress("TooManyFunctions")
39
43
  class PrimerRNHeadlessUniversalCheckoutListener(
40
- private val reactContext: ReactContext
44
+ private val reactContext: ReactContext,
41
45
  ) : PrimerHeadlessUniversalCheckoutListener,
42
- PrimerHeadlessUniversalCheckoutUiListener {
43
- private var paymentCreationDecisionHandler: ((errorMessage: String?) -> Unit)? = null
44
- private var tokenizeSuccessDecisionHandler: ((resumeToken: String?, errorMessage: String?) -> Unit)? =
45
- null
46
- private var resumeSuccessDecisionHandler: ((resumeToken: String?, errorMessage: String?) -> Unit)? =
47
- null
48
- private var implementedRNCallbacks: PrimerHeadlessUniversalCheckoutImplementedRNCallbacks? = null
49
-
50
- var sendEvent: ((eventName: String, paramsJson: JSONObject?) -> Unit)? = null
46
+ PrimerHeadlessUniversalCheckoutUiListener {
47
+ private var paymentCreationDecisionHandler: ((errorMessage: String?) -> Unit)? = null
48
+ private var tokenizeSuccessDecisionHandler: ((resumeToken: String?, errorMessage: String?) -> Unit)? =
49
+ null
50
+ private var resumeSuccessDecisionHandler: ((resumeToken: String?, errorMessage: String?) -> Unit)? =
51
+ null
52
+ private var implementedRNCallbacks: PrimerHeadlessUniversalCheckoutImplementedRNCallbacks? = null
51
53
 
52
- var sendError: ((error: PrimerErrorRN) -> Unit)? = null
53
- var sendErrorWithCheckoutData: ((error: PrimerErrorRN, checkoutData: PrimerCheckoutDataRN?) -> Unit)? =
54
- null
54
+ var sendEvent: ((eventName: String, paramsJson: JSONObject?) -> Unit)? = null
55
55
 
56
- var successCallback: Promise? = null
56
+ var sendError: ((error: PrimerErrorRN) -> Unit)? = null
57
+ var sendErrorWithCheckoutData: ((error: PrimerErrorRN, checkoutData: PrimerCheckoutDataRN?) -> Unit)? =
58
+ null
57
59
 
58
- override fun onAvailablePaymentMethodsLoaded(paymentMethods: List<PrimerHeadlessUniversalCheckoutPaymentMethod>) {
59
- val availablePaymentMethods =
60
- JSONObject(
61
- Json.encodeToString(
62
- PrimerRNAvailablePaymentMethods(
63
- paymentMethods.map { it.toPrimerRNHeadlessUniversalCheckoutPaymentMethod() }
64
- )
65
- )
66
- )
60
+ var successCallback: Promise? = null
67
61
 
68
- sendEvent?.invoke(
69
- PrimerHeadlessUniversalCheckoutEvent.ON_AVAILABLE_PAYMENT_METHODS_LOAD.eventName,
70
- availablePaymentMethods
71
- )
72
- successCallback?.resolve(
73
- availablePaymentMethods.toWritableMap()
74
- )
75
- }
62
+ override fun onAvailablePaymentMethodsLoaded(paymentMethods: List<PrimerHeadlessUniversalCheckoutPaymentMethod>) {
63
+ val availablePaymentMethods =
64
+ JSONObject(
65
+ Json.encodeToString(
66
+ PrimerRNAvailablePaymentMethods(
67
+ paymentMethods.map { it.toPrimerRNHeadlessUniversalCheckoutPaymentMethod() },
68
+ ),
69
+ ),
70
+ )
76
71
 
77
- override fun onPreparationStarted(paymentMethodType: String) {
78
- sendEvent?.invoke(
79
- PrimerHeadlessUniversalCheckoutEvent.ON_PREPARE_START.eventName,
80
- JSONObject(
81
- Json.encodeToString(
82
- PrimerPaymentMethodDataRN(
83
- paymentMethodType = paymentMethodType,
84
- paymentMethod = paymentMethodType
85
- )
86
- )
87
- )
88
- )
89
- }
72
+ sendEvent?.invoke(
73
+ PrimerHeadlessUniversalCheckoutEvent.ON_AVAILABLE_PAYMENT_METHODS_LOAD.eventName,
74
+ availablePaymentMethods,
75
+ )
76
+ successCallback?.resolve(
77
+ availablePaymentMethods.toWritableMap(),
78
+ )
79
+ }
90
80
 
91
- override fun onPaymentMethodShowed(paymentMethodType: String) {
92
- sendEvent?.invoke(
93
- PrimerHeadlessUniversalCheckoutEvent.ON_PAYMENT_METHOD_SHOW.eventName,
94
- JSONObject(
95
- Json.encodeToString(
96
- PrimerPaymentMethodDataRN(
97
- paymentMethodType = paymentMethodType,
98
- paymentMethod = paymentMethodType
99
- )
100
- )
101
- )
102
- )
103
- }
81
+ override fun onPreparationStarted(paymentMethodType: String) {
82
+ sendEvent?.invoke(
83
+ PrimerHeadlessUniversalCheckoutEvent.ON_PREPARE_START.eventName,
84
+ JSONObject(
85
+ Json.encodeToString(
86
+ PrimerPaymentMethodDataRN(
87
+ paymentMethodType = paymentMethodType,
88
+ paymentMethod = paymentMethodType,
89
+ ),
90
+ ),
91
+ ),
92
+ )
93
+ }
104
94
 
105
- override fun onTokenizationStarted(paymentMethodType: String) {
106
- sendEvent?.invoke(
107
- PrimerHeadlessUniversalCheckoutEvent.ON_TOKENIZE_START.eventName,
108
- JSONObject(
109
- Json.encodeToString(
110
- PrimerPaymentMethodDataRN(
111
- paymentMethodType = paymentMethodType,
112
- paymentMethod = paymentMethodType
113
- )
114
- )
115
- )
116
- )
117
- }
95
+ override fun onPaymentMethodShowed(paymentMethodType: String) {
96
+ sendEvent?.invoke(
97
+ PrimerHeadlessUniversalCheckoutEvent.ON_PAYMENT_METHOD_SHOW.eventName,
98
+ JSONObject(
99
+ Json.encodeToString(
100
+ PrimerPaymentMethodDataRN(
101
+ paymentMethodType = paymentMethodType,
102
+ paymentMethod = paymentMethodType,
103
+ ),
104
+ ),
105
+ ),
106
+ )
107
+ }
118
108
 
119
- override fun onCheckoutCompleted(checkoutData: PrimerCheckoutData) {
120
- if (implementedRNCallbacks?.isOnCheckoutCompleteImplemented == true) {
121
- sendEvent?.invoke(
122
- PrimerHeadlessUniversalCheckoutEvent.ON_CHECKOUT_COMPLETE.eventName,
123
- JSONObject(Json.encodeToString(checkoutData.toPrimerCheckoutDataRN())).apply {
124
- val additionalInfoJson = optJSONObject(Keys.ADDITIONAL_INFO)
125
- additionalInfoJson?.removeType()
126
- putOpt(Keys.ADDITIONAL_INFO, additionalInfoJson)
127
- }
128
- )
129
- } else {
130
- sendError?.invoke(
131
- ErrorTypeRN.NativeBridgeFailed
132
- errorTo "Callback [onCheckoutComplete] should be implemented."
133
- )
109
+ override fun onTokenizationStarted(paymentMethodType: String) {
110
+ sendEvent?.invoke(
111
+ PrimerHeadlessUniversalCheckoutEvent.ON_TOKENIZE_START.eventName,
112
+ JSONObject(
113
+ Json.encodeToString(
114
+ PrimerPaymentMethodDataRN(
115
+ paymentMethodType = paymentMethodType,
116
+ paymentMethod = paymentMethodType,
117
+ ),
118
+ ),
119
+ ),
120
+ )
134
121
  }
135
- }
136
122
 
137
- override fun onBeforePaymentCreated(
138
- paymentMethodData: PrimerPaymentMethodData,
139
- createPaymentHandler: PrimerPaymentCreationDecisionHandler
140
- ) {
141
- if (implementedRNCallbacks?.isOnBeforePaymentCreateImplemented == true) {
142
- paymentCreationDecisionHandler = { errorMessage ->
143
- when {
144
- errorMessage != null -> createPaymentHandler.abortPaymentCreation(errorMessage.ifBlank { null })
145
- else -> createPaymentHandler.continuePaymentCreation()
123
+ override fun onCheckoutCompleted(checkoutData: PrimerCheckoutData) {
124
+ if (implementedRNCallbacks?.isOnCheckoutCompleteImplemented == true) {
125
+ sendEvent?.invoke(
126
+ PrimerHeadlessUniversalCheckoutEvent.ON_CHECKOUT_COMPLETE.eventName,
127
+ JSONObject(Json.encodeToString(checkoutData.toPrimerCheckoutDataRN())).apply {
128
+ val additionalInfoJson = optJSONObject(Keys.ADDITIONAL_INFO)
129
+ additionalInfoJson?.removeType()
130
+ putOpt(Keys.ADDITIONAL_INFO, additionalInfoJson)
131
+ },
132
+ )
133
+ } else {
134
+ sendError?.invoke(
135
+ ErrorTypeRN.NativeBridgeFailed
136
+ errorTo "Callback [onCheckoutComplete] should be implemented.",
137
+ )
146
138
  }
147
- }
148
- sendEvent?.invoke(
149
- PrimerHeadlessUniversalCheckoutEvent.ON_BEFORE_PAYMENT_CREATE.eventName,
150
- JSONObject(Json.encodeToString(paymentMethodData.toPrimerPaymentMethodDataRN()))
151
- )
152
- } else {
153
- super.onBeforePaymentCreated(paymentMethodData, createPaymentHandler)
154
139
  }
155
- }
156
140
 
157
- override fun onBeforeClientSessionUpdated() {
158
- if (implementedRNCallbacks?.isOnBeforeClientSessionUpdateImplemented == true) {
159
- sendEvent?.invoke(
160
- PrimerHeadlessUniversalCheckoutEvent.ON_BEFORE_CLIENT_SESSION_UPDATE.eventName,
161
- null
162
- )
163
- } else {
164
- super.onBeforeClientSessionUpdated()
141
+ override fun onBeforePaymentCreated(
142
+ paymentMethodData: PrimerPaymentMethodData,
143
+ createPaymentHandler: PrimerPaymentCreationDecisionHandler,
144
+ ) {
145
+ if (implementedRNCallbacks?.isOnBeforePaymentCreateImplemented == true) {
146
+ paymentCreationDecisionHandler = { errorMessage ->
147
+ when {
148
+ errorMessage != null -> createPaymentHandler.abortPaymentCreation(errorMessage.ifBlank { null })
149
+ else -> createPaymentHandler.continuePaymentCreation()
150
+ }
151
+ }
152
+ sendEvent?.invoke(
153
+ PrimerHeadlessUniversalCheckoutEvent.ON_BEFORE_PAYMENT_CREATE.eventName,
154
+ JSONObject(Json.encodeToString(paymentMethodData.toPrimerPaymentMethodDataRN())),
155
+ )
156
+ } else {
157
+ super.onBeforePaymentCreated(paymentMethodData, createPaymentHandler)
158
+ }
165
159
  }
166
- }
167
160
 
168
- override fun onClientSessionUpdated(clientSession: PrimerClientSession) {
169
- if (implementedRNCallbacks?.isOnClientSessionUpdateImplemented == true) {
170
- sendEvent?.invoke(
171
- PrimerHeadlessUniversalCheckoutEvent.ON_CLIENT_SESSION_UPDATE.eventName,
172
- JSONObject().apply {
173
- put(
174
- "clientSession",
175
- JSONObject(Json.encodeToString(clientSession.toPrimerClientSessionRN()))
176
- )
161
+ override fun onBeforeClientSessionUpdated() {
162
+ if (implementedRNCallbacks?.isOnBeforeClientSessionUpdateImplemented == true) {
163
+ sendEvent?.invoke(
164
+ PrimerHeadlessUniversalCheckoutEvent.ON_BEFORE_CLIENT_SESSION_UPDATE.eventName,
165
+ null,
166
+ )
167
+ } else {
168
+ super.onBeforeClientSessionUpdated()
177
169
  }
178
- )
179
- } else {
180
- super.onClientSessionUpdated(clientSession)
181
170
  }
182
- }
183
171
 
184
- override fun onTokenizeSuccess(
185
- paymentMethodTokenData: PrimerPaymentMethodTokenData,
186
- decisionHandler: PrimerHeadlessUniversalCheckoutResumeDecisionHandler
187
- ) {
188
- if (implementedRNCallbacks?.isOnTokenizeSuccessImplemented == true) {
189
- val token = PrimerPaymentInstrumentTokenRN.fromPaymentMethodToken(paymentMethodTokenData)
190
- val request = JSONObject().apply {
191
- put("paymentMethodTokenData", JSONObject(Json.encodeToString(token)))
192
- }
193
- tokenizeSuccessDecisionHandler = { newClientToken, _ ->
194
- when {
195
- newClientToken != null -> decisionHandler.continueWithNewClientToken(newClientToken)
172
+ override fun onClientSessionUpdated(clientSession: PrimerClientSession) {
173
+ if (implementedRNCallbacks?.isOnClientSessionUpdateImplemented == true) {
174
+ sendEvent?.invoke(
175
+ PrimerHeadlessUniversalCheckoutEvent.ON_CLIENT_SESSION_UPDATE.eventName,
176
+ JSONObject().apply {
177
+ put(
178
+ "clientSession",
179
+ JSONObject(Json.encodeToString(clientSession.toPrimerClientSessionRN())),
180
+ )
181
+ },
182
+ )
183
+ } else {
184
+ super.onClientSessionUpdated(clientSession)
196
185
  }
197
- }
198
- sendEvent?.invoke(PrimerHeadlessUniversalCheckoutEvent.ON_TOKENIZE_SUCCESS.eventName, request)
199
- } else {
200
- sendError?.invoke(
201
- ErrorTypeRN.NativeBridgeFailed
202
- errorTo "Callback [onTokenizeSuccess] should be implemented."
203
- )
204
186
  }
205
- }
206
187
 
207
- override fun onCheckoutResume(
208
- resumeToken: String,
209
- decisionHandler: PrimerHeadlessUniversalCheckoutResumeDecisionHandler
210
- ) {
211
- if (implementedRNCallbacks?.isOnCheckoutResumeImplemented == true) {
212
- resumeSuccessDecisionHandler = { newClientToken, _ ->
213
- when {
214
- newClientToken != null -> decisionHandler.continueWithNewClientToken(newClientToken)
188
+ override fun onTokenizeSuccess(
189
+ paymentMethodTokenData: PrimerPaymentMethodTokenData,
190
+ decisionHandler: PrimerHeadlessUniversalCheckoutResumeDecisionHandler,
191
+ ) {
192
+ if (implementedRNCallbacks?.isOnTokenizeSuccessImplemented == true) {
193
+ val token = PrimerPaymentInstrumentTokenRN.fromPaymentMethodToken(paymentMethodTokenData)
194
+ val request =
195
+ JSONObject().apply {
196
+ put("paymentMethodTokenData", JSONObject(Json.encodeToString(token)))
197
+ }
198
+ tokenizeSuccessDecisionHandler = { newClientToken, _ ->
199
+ when {
200
+ newClientToken != null -> decisionHandler.continueWithNewClientToken(newClientToken)
201
+ }
202
+ }
203
+ sendEvent?.invoke(PrimerHeadlessUniversalCheckoutEvent.ON_TOKENIZE_SUCCESS.eventName, request)
204
+ } else {
205
+ sendError?.invoke(
206
+ ErrorTypeRN.NativeBridgeFailed
207
+ errorTo "Callback [onTokenizeSuccess] should be implemented.",
208
+ )
215
209
  }
216
- }
217
-
218
- val resumeToken = mapOf(Keys.RESUME_TOKEN to resumeToken)
219
- sendEvent?.invoke(
220
- PrimerHeadlessUniversalCheckoutEvent.ON_CHECKOUT_SUCCESS.eventName,
221
- JSONObject(Json.encodeToString(resumeToken))
222
- )
223
- } else {
224
- sendError?.invoke(
225
- ErrorTypeRN.NativeBridgeFailed
226
- errorTo "Callback ${PrimerHeadlessUniversalCheckoutEvent.ON_CHECKOUT_SUCCESS.eventName} should be implemented."
227
- )
228
210
  }
229
- }
230
211
 
231
- override fun onResumePending(additionalInfo: PrimerCheckoutAdditionalInfo) {
232
- if (implementedRNCallbacks?.isOnCheckoutPendingImplemented == true) {
233
- if (additionalInfo is MultibancoCheckoutAdditionalInfo) {
234
- sendEvent?.invoke(
235
- PrimerHeadlessUniversalCheckoutEvent.ON_CHECKOUT_PENDING.eventName,
236
- JSONObject(Json.encodeToString(additionalInfo.toCheckoutAdditionalInfoRN())).apply {
237
- removeType()
238
- }
239
- )
240
- }
241
- } else {
242
- sendError?.invoke(
243
- ErrorTypeRN.NativeBridgeFailed
244
- errorTo "Callback [${PrimerHeadlessUniversalCheckoutEvent.ON_CHECKOUT_PENDING.eventName}] " +
245
- "should be implemented."
246
- )
247
- }
248
- }
212
+ override fun onCheckoutResume(
213
+ resumeToken: String,
214
+ decisionHandler: PrimerHeadlessUniversalCheckoutResumeDecisionHandler,
215
+ ) {
216
+ if (implementedRNCallbacks?.isOnCheckoutResumeImplemented == true) {
217
+ resumeSuccessDecisionHandler = { newClientToken, _ ->
218
+ when {
219
+ newClientToken != null -> decisionHandler.continueWithNewClientToken(newClientToken)
220
+ }
221
+ }
249
222
 
250
- override fun onCheckoutAdditionalInfoReceived(additionalInfo: PrimerCheckoutAdditionalInfo) {
251
- if (implementedRNCallbacks?.isOnCheckoutAdditionalInfoImplemented == true) {
252
- when (additionalInfo) {
253
- is QrCodeCheckoutAdditionalInfo -> {
223
+ val resumeToken = mapOf(Keys.RESUME_TOKEN to resumeToken)
254
224
  sendEvent?.invoke(
255
- PrimerHeadlessUniversalCheckoutEvent.ON_CHECKOUT_ADDITIONAL_INFO.eventName,
256
- JSONObject(json.encodeToString(additionalInfo.toCheckoutAdditionalInfoRN())).apply {
257
- removeType()
258
- }
225
+ PrimerHeadlessUniversalCheckoutEvent.ON_CHECKOUT_SUCCESS.eventName,
226
+ JSONObject(Json.encodeToString(resumeToken)),
227
+ )
228
+ } else {
229
+ sendError?.invoke(
230
+ ErrorTypeRN.NativeBridgeFailed
231
+ errorTo "Callback " +
232
+ "${PrimerHeadlessUniversalCheckoutEvent.ON_CHECKOUT_SUCCESS.eventName} should be implemented.",
259
233
  )
260
234
  }
261
- is AchAdditionalInfo.ProvideActivityResultRegistry -> {
262
- val activityResultRegistry = (reactContext.currentActivity as? ComponentActivity)?.activityResultRegistry
263
- if (activityResultRegistry == null) {
235
+ }
236
+
237
+ override fun onResumePending(additionalInfo: PrimerCheckoutAdditionalInfo) {
238
+ if (implementedRNCallbacks?.isOnCheckoutPendingImplemented == true) {
239
+ if (additionalInfo is MultibancoCheckoutAdditionalInfo) {
240
+ sendEvent?.invoke(
241
+ PrimerHeadlessUniversalCheckoutEvent.ON_CHECKOUT_PENDING.eventName,
242
+ JSONObject(Json.encodeToString(additionalInfo.toCheckoutAdditionalInfoRN())).apply {
243
+ removeType()
244
+ },
245
+ )
246
+ }
247
+ } else {
264
248
  sendError?.invoke(
265
- ErrorTypeRN.NativeBridgeFailed
266
- errorTo PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent.UNSUPPORTED_ACTIVITY_ERROR
249
+ ErrorTypeRN.NativeBridgeFailed
250
+ errorTo "Callback [${PrimerHeadlessUniversalCheckoutEvent.ON_CHECKOUT_PENDING.eventName}] " +
251
+ "should be implemented.",
267
252
  )
268
- } else {
269
- additionalInfo.provide(activityResultRegistry)
270
- }
271
253
  }
254
+ }
272
255
 
273
- is AchAdditionalInfo.DisplayMandate -> {
274
- PrimerRNAchMandateManager.acceptMandate = additionalInfo.onAcceptMandate
275
- PrimerRNAchMandateManager.declineMandate = additionalInfo.onDeclineMandate
276
- sendEvent?.invoke(
277
- PrimerHeadlessUniversalCheckoutEvent.ON_CHECKOUT_ADDITIONAL_INFO.eventName,
278
- JSONObject(json.encodeToString(additionalInfo.toCheckoutAdditionalInfoRN())).apply {
279
- removeType()
256
+ override fun onCheckoutAdditionalInfoReceived(additionalInfo: PrimerCheckoutAdditionalInfo) {
257
+ if (implementedRNCallbacks?.isOnCheckoutAdditionalInfoImplemented == true) {
258
+ when (additionalInfo) {
259
+ is QrCodeCheckoutAdditionalInfo -> {
260
+ sendEvent?.invoke(
261
+ PrimerHeadlessUniversalCheckoutEvent.ON_CHECKOUT_ADDITIONAL_INFO.eventName,
262
+ JSONObject(json.encodeToString(additionalInfo.toCheckoutAdditionalInfoRN())).apply {
263
+ removeType()
264
+ },
265
+ )
266
+ }
267
+
268
+ is AchAdditionalInfo.ProvideActivityResultRegistry -> {
269
+ val activityResultRegistry =
270
+ (reactContext.currentActivity as? ComponentActivity)?.activityResultRegistry
271
+ if (activityResultRegistry == null) {
272
+ @Suppress("MaxLineLength")
273
+ sendError?.invoke(
274
+ ErrorTypeRN.NativeBridgeFailed
275
+ errorTo PrimerRNHeadlessUniversalCheckoutStripeAchUserDetailsComponent.UNSUPPORTED_ACTIVITY_ERROR,
276
+ )
277
+ } else {
278
+ additionalInfo.provide(activityResultRegistry)
279
+ }
280
+ }
281
+
282
+ is AchAdditionalInfo.DisplayMandate -> {
283
+ PrimerRNAchMandateManager.acceptMandate = additionalInfo.onAcceptMandate
284
+ PrimerRNAchMandateManager.declineMandate = additionalInfo.onDeclineMandate
285
+ sendEvent?.invoke(
286
+ PrimerHeadlessUniversalCheckoutEvent.ON_CHECKOUT_ADDITIONAL_INFO.eventName,
287
+ JSONObject(json.encodeToString(additionalInfo.toCheckoutAdditionalInfoRN())).apply {
288
+ removeType()
289
+ },
290
+ )
280
291
  }
292
+ }
293
+ } else {
294
+ sendError?.invoke(
295
+ ErrorTypeRN.NativeBridgeFailed
296
+ errorTo "Callback [${PrimerHeadlessUniversalCheckoutEvent.ON_CHECKOUT_ADDITIONAL_INFO.eventName}]" +
297
+ " should be implemented.",
281
298
  )
282
299
  }
283
- }
284
- } else {
285
- sendError?.invoke(
286
- ErrorTypeRN.NativeBridgeFailed
287
- errorTo "Callback [${PrimerHeadlessUniversalCheckoutEvent.ON_CHECKOUT_ADDITIONAL_INFO.eventName}]" +
288
- " should be implemented."
289
- )
290
300
  }
291
- }
292
301
 
293
- override fun onFailed(
294
- error: PrimerError,
295
- checkoutData: PrimerCheckoutData?,
296
- ) {
297
- if (implementedRNCallbacks?.isOnErrorImplemented == true) {
298
- sendErrorWithCheckoutData?.invoke(
299
- PrimerErrorRN(
300
- errorId = error.errorId,
301
- errorCode = error.errorCode,
302
- description = error.description,
303
- diagnosticsId = error.diagnosticsId,
304
- recoverySuggestion = error.recoverySuggestion
305
- ), checkoutData?.toPrimerCheckoutDataRN()
306
- )
307
- } else {
308
- super.onFailed(error, checkoutData)
302
+ override fun onFailed(
303
+ error: PrimerError,
304
+ checkoutData: PrimerCheckoutData?,
305
+ ) {
306
+ if (implementedRNCallbacks?.isOnErrorImplemented == true) {
307
+ sendErrorWithCheckoutData?.invoke(
308
+ PrimerErrorRN(
309
+ errorId = error.errorId,
310
+ errorCode = error.errorCode,
311
+ description = error.description,
312
+ diagnosticsId = error.diagnosticsId,
313
+ recoverySuggestion = error.recoverySuggestion,
314
+ ),
315
+ checkoutData?.toPrimerCheckoutDataRN(),
316
+ )
317
+ } else {
318
+ super.onFailed(error, checkoutData)
319
+ }
309
320
  }
310
- }
311
321
 
312
- override fun onFailed(error: PrimerError) {
313
- if (implementedRNCallbacks?.isOnErrorImplemented == true) {
314
- sendError?.invoke(
315
- PrimerErrorRN(
316
- errorId = error.errorId,
317
- errorCode = error.errorCode,
318
- description = error.description,
319
- diagnosticsId = error.diagnosticsId,
320
- recoverySuggestion = error.recoverySuggestion
321
- )
322
- )
323
- } else {
324
- super.onFailed(error)
322
+ override fun onFailed(error: PrimerError) {
323
+ if (implementedRNCallbacks?.isOnErrorImplemented == true) {
324
+ sendError?.invoke(
325
+ PrimerErrorRN(
326
+ errorId = error.errorId,
327
+ errorCode = error.errorCode,
328
+ description = error.description,
329
+ diagnosticsId = error.diagnosticsId,
330
+ recoverySuggestion = error.recoverySuggestion,
331
+ ),
332
+ )
333
+ } else {
334
+ super.onFailed(error)
335
+ }
325
336
  }
326
- }
327
337
 
328
- // region tokenization handlers
329
- fun handleTokenizationNewClientToken(newClientToken: String) {
330
- tokenizeSuccessDecisionHandler?.invoke(newClientToken, null)
331
- tokenizeSuccessDecisionHandler = null
332
- }
333
- // endregion
338
+ // region tokenization handlers
339
+ fun handleTokenizationNewClientToken(newClientToken: String) {
340
+ tokenizeSuccessDecisionHandler?.invoke(newClientToken, null)
341
+ tokenizeSuccessDecisionHandler = null
342
+ }
343
+ // endregion
334
344
 
335
- // region resume handlers
336
- fun handleResumeNewClientToken(newClientToken: String) {
337
- resumeSuccessDecisionHandler?.invoke(newClientToken, null)
338
- resumeSuccessDecisionHandler = null
339
- }
340
- // endregion
345
+ // region resume handlers
346
+ fun handleResumeNewClientToken(newClientToken: String) {
347
+ resumeSuccessDecisionHandler?.invoke(newClientToken, null)
348
+ resumeSuccessDecisionHandler = null
349
+ }
350
+ // endregion
341
351
 
342
- // region payment create handlers
343
- fun handlePaymentCreationContinue() {
344
- paymentCreationDecisionHandler?.invoke(null)
345
- paymentCreationDecisionHandler = null
346
- }
352
+ // region payment create handlers
353
+ fun handlePaymentCreationContinue() {
354
+ paymentCreationDecisionHandler?.invoke(null)
355
+ paymentCreationDecisionHandler = null
356
+ }
347
357
 
348
- fun handlePaymentCreationAbort(errorMessage: String) {
349
- paymentCreationDecisionHandler?.invoke(errorMessage)
350
- paymentCreationDecisionHandler = null
351
- }
352
- // endregion
358
+ fun handlePaymentCreationAbort(errorMessage: String) {
359
+ paymentCreationDecisionHandler?.invoke(errorMessage)
360
+ paymentCreationDecisionHandler = null
361
+ }
362
+ // endregion
353
363
 
354
- fun setImplementedCallbacks(
355
- implementedRNCallbacks:
356
- PrimerHeadlessUniversalCheckoutImplementedRNCallbacks
357
- ) {
358
- this.implementedRNCallbacks = implementedRNCallbacks
359
- }
364
+ fun setImplementedCallbacks(implementedRNCallbacks: PrimerHeadlessUniversalCheckoutImplementedRNCallbacks) {
365
+ this.implementedRNCallbacks = implementedRNCallbacks
366
+ }
360
367
 
361
- fun removeCallbacksAndHandlers() {
362
- paymentCreationDecisionHandler = null
363
- tokenizeSuccessDecisionHandler = null
364
- resumeSuccessDecisionHandler = null
365
- implementedRNCallbacks = null
366
- }
368
+ fun removeCallbacksAndHandlers() {
369
+ paymentCreationDecisionHandler = null
370
+ tokenizeSuccessDecisionHandler = null
371
+ resumeSuccessDecisionHandler = null
372
+ implementedRNCallbacks = null
373
+ }
367
374
 
368
- private companion object {
369
- val json = Json { encodeDefaults = true }
370
- }
375
+ private companion object {
376
+ val json = Json { encodeDefaults = true }
377
+ }
371
378
  }