@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
@@ -7,160 +7,176 @@ import type { PrimerInputElementType } from '../../../models/PrimerInputElementT
7
7
  const { RNTPrimerHeadlessUniversalCheckoutRawDataManager } = NativeModules;
8
8
  const eventEmitter = new NativeEventEmitter(RNTPrimerHeadlessUniversalCheckoutRawDataManager);
9
9
 
10
- type EventType =
11
- | 'onMetadataChange'
12
- | 'onValidation';
10
+ type EventType = 'onMetadataChange' | 'onValidation';
13
11
 
14
- const eventTypes: EventType[] = [
15
- 'onMetadataChange',
16
- 'onValidation'
17
- ];
12
+ const eventTypes: EventType[] = ['onMetadataChange', 'onValidation'];
18
13
 
19
14
  export interface RawDataManagerProps {
20
- paymentMethodType: string;
21
- onMetadataChange?: (metadata: any) => void;
22
- onValidation?: (isValid: boolean, errors: PrimerError[] | undefined) => void;
15
+ paymentMethodType: string;
16
+ onMetadataChange?: (metadata: any) => void;
17
+ onValidation?: (isValid: boolean, errors: PrimerError[] | undefined) => void;
23
18
  }
24
19
 
25
20
  class PrimerHeadlessUniversalCheckoutRawDataManager {
26
-
27
- options?: RawDataManagerProps
28
-
29
- subscriptions: EventSubscription[] = []
30
-
31
- ///////////////////////////////////////////
32
- // Init
33
- ///////////////////////////////////////////
34
- constructor() { }
35
-
36
- ///////////////////////////////////////////
37
- // API
38
- ///////////////////////////////////////////
39
-
40
- async configure(options: RawDataManagerProps): Promise<{ initializationData: PrimerInitializationData } | void> {
41
- return new Promise(async (resolve, reject) => {
42
- try {
43
- this.options = options;
44
- await this.configureListeners();
45
- const data = await RNTPrimerHeadlessUniversalCheckoutRawDataManager.configure(options.paymentMethodType);
46
- if (data) {
47
- resolve(data);
48
- } else {
49
- resolve();
50
- }
51
- } catch (err) {
52
- reject(err);
53
- }
54
- });
55
- }
56
-
57
- async configureListeners(): Promise<void> {
58
- //@ts-ignore
21
+ options?: RawDataManagerProps;
22
+
23
+ subscriptions: EventSubscription[] = [];
24
+
25
+ ///////////////////////////////////////////
26
+ // Init
27
+ ///////////////////////////////////////////
28
+ constructor() {}
29
+
30
+ ///////////////////////////////////////////
31
+ // API
32
+ ///////////////////////////////////////////
33
+
34
+ async configure(options: RawDataManagerProps): Promise<{ initializationData: PrimerInitializationData } | void> {
35
+ return new Promise(async (resolve, reject) => {
36
+ try {
37
+ this.options = options;
38
+ await this.configureListeners();
39
+ const data = await RNTPrimerHeadlessUniversalCheckoutRawDataManager.configure(options.paymentMethodType);
40
+ if (data) {
41
+ resolve(data);
42
+ } else {
43
+ resolve();
44
+ }
45
+ } catch (err) {
46
+ reject(err);
47
+ }
48
+ });
49
+ }
50
+
51
+ async configureListeners(): Promise<void> {
52
+ //@ts-ignore
53
+ if (this.options?.onMetadataChange) {
54
+ const sub = await this.addListener('onMetadataChange', (data) => {
59
55
  if (this.options?.onMetadataChange) {
60
- const sub = await this.addListener("onMetadataChange", (data) => {
61
- if (this.options?.onMetadataChange) {
62
- this.options.onMetadataChange(data);
63
- }
64
- });
65
- this.subscriptions.push(sub);
56
+ this.options.onMetadataChange(data);
66
57
  }
58
+ });
59
+ this.subscriptions.push(sub);
60
+ }
67
61
 
62
+ if (this.options?.onValidation) {
63
+ const sub = await this.addListener('onValidation', (data) => {
68
64
  if (this.options?.onValidation) {
69
- const sub = await this.addListener("onValidation", (data) => {
70
- if (this.options?.onValidation) {
71
- this.options.onValidation(data.isValid, data.errors);
72
- }
73
- });
74
- this.subscriptions.push(sub);
65
+ this.options.onValidation(data.isValid, data.errors);
75
66
  }
67
+ });
68
+ this.subscriptions.push(sub);
76
69
  }
77
-
78
- async getRequiredInputElementTypes(): Promise<PrimerInputElementType[]> {
79
- return new Promise(async (resolve, reject) => {
80
- if (this.options?.paymentMethodType) {
81
- try {
82
- const data = await RNTPrimerHeadlessUniversalCheckoutRawDataManager.listRequiredInputElementTypes();
83
- const inputElementTypes: PrimerInputElementType[] = data.inputElementTypes;
84
- resolve(inputElementTypes);
85
- } catch (err) {
86
- reject(err);
87
- }
88
- } else {
89
- const err = new PrimerError("manager-not-configured", undefined, "HeadlessUniversalCheckoutRawDataManager has not been configured", "Call HeadlessUniversalCheckoutRawDataManager.configure before calling this function.", undefined);
90
- reject(err);
91
- }
92
- });
93
- }
94
-
95
- setRawData(rawData: RawData): Promise<void> {
96
- return new Promise(async (resolve, reject) => {
97
- if (this.options?.paymentMethodType) {
98
- try {
99
- await RNTPrimerHeadlessUniversalCheckoutRawDataManager.setRawData(JSON.stringify(rawData));
100
- resolve();
101
- } catch (err) {
102
- reject(err);
103
- }
104
- } else {
105
- const err = new PrimerError("manager-not-configured", undefined, "HeadlessUniversalCheckoutRawDataManager has not been configured", "Call HeadlessUniversalCheckoutRawDataManager.configure before calling this function.", undefined);
106
- reject(err);
107
- }
108
- });
109
- }
110
-
111
- submit(): Promise<void> {
112
- return new Promise(async (resolve, reject) => {
113
- if (this.options?.paymentMethodType) {
114
- try {
115
- await RNTPrimerHeadlessUniversalCheckoutRawDataManager.submit();
116
- resolve();
117
- } catch (err) {
118
- reject(err);
119
- }
120
- } else {
121
- const err = new PrimerError("manager-not-configured", undefined, "HeadlessUniversalCheckoutRawDataManager has not been configured", "Call HeadlessUniversalCheckoutRawDataManager.configure before calling this function.", undefined);
122
- reject(err);
123
- }
124
- });
125
- }
126
-
127
- cleanUp(): Promise<void> {
128
- return new Promise(async (resolve, reject) => {
129
- if (this.options?.paymentMethodType) {
130
- try {
131
- await RNTPrimerHeadlessUniversalCheckoutRawDataManager.cleanUp();
132
- resolve();
133
- } catch (err) {
134
- reject(err);
135
- }
136
- } else {
137
- const err = new PrimerError("manager-not-configured", undefined, "HeadlessUniversalCheckoutRawDataManager has not been configured", "Call HeadlessUniversalCheckoutRawDataManager.configure before calling this function.", undefined);
138
- reject(err);
139
- }
140
- });
141
- }
142
-
143
-
144
-
145
- ///////////////////////////////////////////
146
- // HELPERS
147
- ///////////////////////////////////////////
148
-
149
- async addListener(eventType: EventType, listener: (...args: any[]) => any): Promise<EmitterSubscription> {
150
- return eventEmitter.addListener(eventType, listener);
151
- }
152
-
153
- removeListener(subscription: EmitterSubscription): void {
154
- return subscription.remove();
155
- }
156
-
157
- removeAllListenersForEvent(eventType: EventType) {
158
- eventEmitter.removeAllListeners(eventType);
159
- }
160
-
161
- removeAllListeners() {
162
- eventTypes.forEach((eventType) => this.removeAllListenersForEvent(eventType));
163
- }
70
+ }
71
+
72
+ async getRequiredInputElementTypes(): Promise<PrimerInputElementType[]> {
73
+ return new Promise(async (resolve, reject) => {
74
+ if (this.options?.paymentMethodType) {
75
+ try {
76
+ const data = await RNTPrimerHeadlessUniversalCheckoutRawDataManager.listRequiredInputElementTypes();
77
+ const inputElementTypes: PrimerInputElementType[] = data.inputElementTypes;
78
+ resolve(inputElementTypes);
79
+ } catch (err) {
80
+ reject(err);
81
+ }
82
+ } else {
83
+ const err = new PrimerError(
84
+ 'manager-not-configured',
85
+ undefined,
86
+ 'HeadlessUniversalCheckoutRawDataManager has not been configured',
87
+ 'Call HeadlessUniversalCheckoutRawDataManager.configure before calling this function.',
88
+ undefined
89
+ );
90
+ reject(err);
91
+ }
92
+ });
93
+ }
94
+
95
+ setRawData(rawData: RawData): Promise<void> {
96
+ return new Promise(async (resolve, reject) => {
97
+ if (this.options?.paymentMethodType) {
98
+ try {
99
+ await RNTPrimerHeadlessUniversalCheckoutRawDataManager.setRawData(JSON.stringify(rawData));
100
+ resolve();
101
+ } catch (err) {
102
+ reject(err);
103
+ }
104
+ } else {
105
+ const err = new PrimerError(
106
+ 'manager-not-configured',
107
+ undefined,
108
+ 'HeadlessUniversalCheckoutRawDataManager has not been configured',
109
+ 'Call HeadlessUniversalCheckoutRawDataManager.configure before calling this function.',
110
+ undefined
111
+ );
112
+ reject(err);
113
+ }
114
+ });
115
+ }
116
+
117
+ submit(): Promise<void> {
118
+ return new Promise(async (resolve, reject) => {
119
+ if (this.options?.paymentMethodType) {
120
+ try {
121
+ await RNTPrimerHeadlessUniversalCheckoutRawDataManager.submit();
122
+ resolve();
123
+ } catch (err) {
124
+ reject(err);
125
+ }
126
+ } else {
127
+ const err = new PrimerError(
128
+ 'manager-not-configured',
129
+ undefined,
130
+ 'HeadlessUniversalCheckoutRawDataManager has not been configured',
131
+ 'Call HeadlessUniversalCheckoutRawDataManager.configure before calling this function.',
132
+ undefined
133
+ );
134
+ reject(err);
135
+ }
136
+ });
137
+ }
138
+
139
+ cleanUp(): Promise<void> {
140
+ return new Promise(async (resolve, reject) => {
141
+ if (this.options?.paymentMethodType) {
142
+ try {
143
+ await RNTPrimerHeadlessUniversalCheckoutRawDataManager.cleanUp();
144
+ resolve();
145
+ } catch (err) {
146
+ reject(err);
147
+ }
148
+ } else {
149
+ const err = new PrimerError(
150
+ 'manager-not-configured',
151
+ undefined,
152
+ 'HeadlessUniversalCheckoutRawDataManager has not been configured',
153
+ 'Call HeadlessUniversalCheckoutRawDataManager.configure before calling this function.',
154
+ undefined
155
+ );
156
+ reject(err);
157
+ }
158
+ });
159
+ }
160
+
161
+ ///////////////////////////////////////////
162
+ // HELPERS
163
+ ///////////////////////////////////////////
164
+
165
+ async addListener(eventType: EventType, listener: (...args: any[]) => any): Promise<EmitterSubscription> {
166
+ return eventEmitter.addListener(eventType, listener);
167
+ }
168
+
169
+ removeListener(subscription: EmitterSubscription): void {
170
+ return subscription.remove();
171
+ }
172
+
173
+ removeAllListenersForEvent(eventType: EventType) {
174
+ eventEmitter.removeAllListeners(eventType);
175
+ }
176
+
177
+ removeAllListeners() {
178
+ eventTypes.forEach((eventType) => this.removeAllListenersForEvent(eventType));
179
+ }
164
180
  }
165
181
 
166
182
  export default PrimerHeadlessUniversalCheckoutRawDataManager;
@@ -1,10 +1,10 @@
1
1
  export type EventType = 'onStep' | 'onError' | 'onInvalid' | 'onValid' | 'onValidating' | 'onValidationError';
2
2
 
3
3
  export const eventTypes: EventType[] = [
4
- 'onStep',
5
- 'onError',
6
- 'onInvalid',
7
- 'onValid',
8
- 'onValidating',
9
- 'onValidationError'
10
- ];
4
+ 'onStep',
5
+ 'onError',
6
+ 'onInvalid',
7
+ 'onValid',
8
+ 'onValidating',
9
+ 'onValidationError',
10
+ ];
@@ -8,104 +8,113 @@ import { PrimerValidationErrorResult } from 'src/models/PrimerValidationErrorRes
8
8
  const { RNPrimerHeadlessUniversalCheckoutVaultManager } = NativeModules;
9
9
 
10
10
  class PrimerHeadlessUniversalCheckoutVaultManager {
11
+ ///////////////////////////////////////////
12
+ // Init
13
+ ///////////////////////////////////////////
14
+ constructor() {}
11
15
 
12
- ///////////////////////////////////////////
13
- // Init
14
- ///////////////////////////////////////////
15
- constructor() { }
16
+ ///////////////////////////////////////////
17
+ // Native API
18
+ ///////////////////////////////////////////
16
19
 
17
- ///////////////////////////////////////////
18
- // Native API
19
- ///////////////////////////////////////////
20
-
21
- async configure(): Promise<void> {
22
- return new Promise(async (resolve, reject) => {
23
- try {
24
- await RNPrimerHeadlessUniversalCheckoutVaultManager.configure();
25
- resolve();
26
- } catch (err) {
27
- console.error(err);
28
- reject(err);
29
- }
30
- });
31
- }
20
+ async configure(): Promise<void> {
21
+ return new Promise(async (resolve, reject) => {
22
+ try {
23
+ await RNPrimerHeadlessUniversalCheckoutVaultManager.configure();
24
+ resolve();
25
+ } catch (err) {
26
+ console.error(err);
27
+ reject(err);
28
+ }
29
+ });
30
+ }
32
31
 
33
- async fetchVaultedPaymentMethods(): Promise<VaultedPaymentMethod[]> {
34
- return new Promise(async (resolve, reject) => {
35
- try {
36
- const data: PrimerVaultedPaymentMethodResult =
37
- await RNPrimerHeadlessUniversalCheckoutVaultManager.fetchVaultedPaymentMethods();
38
- const paymentMethods: VaultedPaymentMethod[] = data.paymentMethods;
39
- const mappedPaymentMethods = sanitizePaymentMethods(paymentMethods);
40
- resolve(mappedPaymentMethods);
41
- } catch (err) {
42
- console.error(err);
43
- reject(err);
44
- }
45
- });
46
- }
32
+ async fetchVaultedPaymentMethods(): Promise<VaultedPaymentMethod[]> {
33
+ return new Promise(async (resolve, reject) => {
34
+ try {
35
+ const data: PrimerVaultedPaymentMethodResult =
36
+ await RNPrimerHeadlessUniversalCheckoutVaultManager.fetchVaultedPaymentMethods();
37
+ const paymentMethods: VaultedPaymentMethod[] = data.paymentMethods;
38
+ const mappedPaymentMethods = sanitizePaymentMethods(paymentMethods);
39
+ resolve(mappedPaymentMethods);
40
+ } catch (err) {
41
+ console.error(err);
42
+ reject(err);
43
+ }
44
+ });
45
+ }
47
46
 
48
- async deleteVaultedPaymentMethod(vaultedPaymentMethodId: string): Promise<void> {
49
- return new Promise(async (resolve, reject) => {
50
- try {
51
- await RNPrimerHeadlessUniversalCheckoutVaultManager.deleteVaultedPaymentMethod(vaultedPaymentMethodId);
52
- resolve();
53
- } catch (err) {
54
- console.error(err);
55
- reject(err);
56
- }
57
- });
58
- }
47
+ async deleteVaultedPaymentMethod(vaultedPaymentMethodId: string): Promise<void> {
48
+ return new Promise(async (resolve, reject) => {
49
+ try {
50
+ await RNPrimerHeadlessUniversalCheckoutVaultManager.deleteVaultedPaymentMethod(vaultedPaymentMethodId);
51
+ resolve();
52
+ } catch (err) {
53
+ console.error(err);
54
+ reject(err);
55
+ }
56
+ });
57
+ }
59
58
 
60
- async validate(vaultedPaymentMethodId: string, additionalData: VaultedPaymentMethodAdditionalData): Promise<ValidationError[]> {
61
- return new Promise(async (resolve, reject) => {
62
- try {
63
- const data: PrimerValidationErrorResult =
64
- await RNPrimerHeadlessUniversalCheckoutVaultManager.validate(vaultedPaymentMethodId, JSON.stringify(additionalData));
65
- const errors: ValidationError[] = data.validationErrors;
66
- resolve(errors);
67
- } catch (err) {
68
- console.error(err);
69
- reject(err);
70
- }
71
- });
72
- }
59
+ async validate(
60
+ vaultedPaymentMethodId: string,
61
+ additionalData: VaultedPaymentMethodAdditionalData
62
+ ): Promise<ValidationError[]> {
63
+ return new Promise(async (resolve, reject) => {
64
+ try {
65
+ const data: PrimerValidationErrorResult = await RNPrimerHeadlessUniversalCheckoutVaultManager.validate(
66
+ vaultedPaymentMethodId,
67
+ JSON.stringify(additionalData)
68
+ );
69
+ const errors: ValidationError[] = data.validationErrors;
70
+ resolve(errors);
71
+ } catch (err) {
72
+ console.error(err);
73
+ reject(err);
74
+ }
75
+ });
76
+ }
73
77
 
74
- async startPaymentFlow(vaultedPaymentMethodId: string, additionalData?: VaultedPaymentMethodAdditionalData): Promise<void> {
75
- return new Promise(async (resolve, reject) => {
76
- try {
77
- if(additionalData) {
78
- await RNPrimerHeadlessUniversalCheckoutVaultManager.startPaymentFlowWithAdditionalData(vaultedPaymentMethodId, JSON.stringify(additionalData));
79
- } else {
80
- await RNPrimerHeadlessUniversalCheckoutVaultManager.startPaymentFlow(vaultedPaymentMethodId);
81
- }
82
- resolve();
83
- } catch (err) {
84
- console.error(err);
85
- reject(err);
86
- }
87
- });
88
- }
78
+ async startPaymentFlow(
79
+ vaultedPaymentMethodId: string,
80
+ additionalData?: VaultedPaymentMethodAdditionalData
81
+ ): Promise<void> {
82
+ return new Promise(async (resolve, reject) => {
83
+ try {
84
+ if (additionalData) {
85
+ await RNPrimerHeadlessUniversalCheckoutVaultManager.startPaymentFlowWithAdditionalData(
86
+ vaultedPaymentMethodId,
87
+ JSON.stringify(additionalData)
88
+ );
89
+ } else {
90
+ await RNPrimerHeadlessUniversalCheckoutVaultManager.startPaymentFlow(vaultedPaymentMethodId);
91
+ }
92
+ resolve();
93
+ } catch (err) {
94
+ console.error(err);
95
+ reject(err);
96
+ }
97
+ });
98
+ }
89
99
  }
90
100
 
91
101
  // Convert accountNumberLastFourDigits to accountNumberLast4Digits when present
92
102
  // Overcomes an iOS limitation of toJsonObject()
93
103
  function sanitizePaymentMethods(paymentMethods: VaultedPaymentMethod[]): VaultedPaymentMethod[] {
94
- return paymentMethods.map(method => {
95
- const unwrappedInstrumentData = method.paymentInstrumentData as any;
96
- if (unwrappedInstrumentData?.accountNumberLastFourDigits !== undefined) {
97
- const { accountNumberLastFourDigits, ...rest } = unwrappedInstrumentData;
98
- return {
99
- ...method,
100
- paymentInstrumentData: {
101
- ...rest,
102
- accountNumberLast4Digits: accountNumberLastFourDigits
103
- }
104
- };
105
- }
106
- return method;
107
- });
104
+ return paymentMethods.map((method) => {
105
+ const unwrappedInstrumentData = method.paymentInstrumentData as any;
106
+ if (unwrappedInstrumentData?.accountNumberLastFourDigits !== undefined) {
107
+ const { accountNumberLastFourDigits, ...rest } = unwrappedInstrumentData;
108
+ return {
109
+ ...method,
110
+ paymentInstrumentData: {
111
+ ...rest,
112
+ accountNumberLast4Digits: accountNumberLastFourDigits,
113
+ },
114
+ };
115
+ }
116
+ return method;
117
+ });
108
118
  }
109
119
 
110
-
111
120
  export default PrimerHeadlessUniversalCheckoutVaultManager;