@primer-io/react-native 2.16.4 → 2.17.0-rc.2

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 (283) hide show
  1. package/android/.project +2 -2
  2. package/android/build.gradle +2 -3
  3. package/android/gradle.properties +1 -1
  4. package/android/src/main/java/com/primerioreactnative/PrimerCardNumberEditTextManager.kt +0 -15
  5. package/android/src/main/java/com/primerioreactnative/PrimerRN.kt +13 -34
  6. package/android/src/main/java/com/primerioreactnative/PrimerRNEventListener.kt +23 -8
  7. package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckout.kt +20 -120
  8. package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckoutListener.kt +61 -69
  9. package/android/src/main/java/com/primerioreactnative/ReactNativePackage.kt +6 -2
  10. package/android/src/main/java/com/primerioreactnative/{huc → components}/assets/AssetsManager.kt +5 -14
  11. package/android/src/main/java/com/primerioreactnative/components/assets/CardNetworkImageFileProvider.kt +23 -0
  12. package/android/src/main/java/com/primerioreactnative/components/assets/PaymentMethodAssetFileProvider.kt +24 -0
  13. package/android/src/main/java/com/primerioreactnative/components/datamodels/core/PrimerRNHeadlessUniversalCheckoutPaymentMethod.kt +25 -0
  14. package/android/src/main/java/com/primerioreactnative/components/datamodels/core/PrimerRawPaymentMethodType.kt +9 -0
  15. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/asset/PrimerRNAsset.kt +104 -0
  16. package/android/src/main/java/com/primerioreactnative/{huc/datamodels/manager/raw/card/PrimerRNRawCardData.kt → components/datamodels/manager/raw/card/PrimerRNCardData.kt} +6 -8
  17. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/cardRedirect/PrimerRNCardRedirectData.kt +19 -0
  18. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/phoneNumber/PrimerRNPhoneNumberData.kt +14 -0
  19. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/raw/retailOutlets/PrimerRNRetailOutletData.kt +12 -0
  20. package/android/src/main/java/com/primerioreactnative/{huc → components}/datamodels/manager/raw/retailOutlets/RNRetailOutletsList.kt +1 -1
  21. package/android/src/main/java/com/primerioreactnative/components/events/PrimerHeadlessUniversalCheckoutEvent.kt +17 -0
  22. package/android/src/main/java/com/primerioreactnative/{huc → components}/events/PrimerHeadlessUniversalCheckoutRawDataManagerEvent.kt +1 -2
  23. package/android/src/main/java/com/primerioreactnative/components/manager/asset/PrimerRNHeadlessUniversalCheckoutAssetManager.kt +131 -0
  24. package/android/src/main/java/com/primerioreactnative/components/manager/nativeUi/PrimerRNHeadlessUniversalCheckoutNativeUiManager.kt +87 -0
  25. package/android/src/main/java/com/primerioreactnative/{huc → components}/manager/raw/PrimerRNHeadlessUniversalCheckoutRawManager.kt +72 -68
  26. package/android/src/main/java/com/primerioreactnative/{huc → components}/manager/raw/PrimerRNHeadlessUniversalCheckoutRawManagerListener.kt +13 -5
  27. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerErrorRN.kt +5 -4
  28. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerInputValidationErrorRN.kt +11 -0
  29. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerSettingsRN.kt +0 -8
  30. package/android/src/main/java/com/primerioreactnative/extensions/PrimerPaymentMethodOptionsRN.kt +0 -4
  31. package/android/src/main/java/com/primerioreactnative/utils/PrimerHeadlessUniversalCheckoutImplementedRNCallbacks.kt +15 -15
  32. package/android/src/main/java/com/primerioreactnative/utils/PrimerImplementedRNCallbacks.kt +7 -7
  33. package/ios/Podfile.lock +1 -1
  34. package/ios/ReactNative.xcodeproj/project.pbxproj +20 -20
  35. package/ios/Sources/DataModels/ImplementedRNCallbacks.swift +75 -0
  36. package/ios/{DataModels/RNTPrimerCardRedirectData.swift → Sources/DataModels/PrimerBancontactCardRedirectData+Extension.swift} +5 -8
  37. package/ios/{DataModels/RNTPrimerCardData.swift → Sources/DataModels/PrimerCardData+Extension.swift} +2 -5
  38. package/ios/Sources/DataModels/PrimerHeadlessUniversalCheckout_PaymentMethod.swift +20 -0
  39. package/ios/{DataModels/RNTPrimerPhoneNumberData.swift → Sources/DataModels/PrimerPhoneNumberData+Extension.swift} +0 -1
  40. package/ios/{DataModels/RNTPrimerRetailerData.swift → Sources/DataModels/PrimerRawRetailerData+Extension.swift} +3 -4
  41. package/ios/Sources/DataModels/PrimerSettings+Extensions.swift +88 -0
  42. package/ios/Sources/DataModels/RNTNativeError.swift +22 -0
  43. package/ios/Sources/DataModels/RNTPrimerPaymentMethodAsset.swift +65 -0
  44. package/ios/Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNTNativeUIManager.m +19 -0
  45. package/ios/Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNTNativeUIManager.swift +63 -0
  46. package/ios/Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNTRawDataManager.m +23 -0
  47. package/ios/{Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckoutRawDataManager.swift → Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNTRawDataManager.swift } +36 -31
  48. package/ios/Sources/Headless Universal Checkout/Managers/RNTAssetsManager.m +24 -0
  49. package/ios/Sources/Headless Universal Checkout/Managers/RNTAssetsManager.swift +107 -0
  50. package/ios/Sources/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.m +41 -0
  51. package/ios/Sources/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.swift +498 -0
  52. package/ios/Sources/Helpers/Encodable+Extension.swift +17 -0
  53. package/ios/Sources/Helpers/Error+Extensions.swift +39 -0
  54. package/ios/Sources/Helpers/UIColor+Extensions.swift +32 -0
  55. package/ios/Sources/Helpers/UIImage+Extensions.swift +32 -0
  56. package/ios/Sources/RNTPrimer.m +80 -0
  57. package/ios/{RNTPrimer.swift → Sources/RNTPrimer.swift} +20 -34
  58. package/lib/commonjs/HeadlessUniversalCheckout/Managers/AssetsManager.js +59 -0
  59. package/lib/commonjs/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +1 -0
  60. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js +35 -0
  61. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js.map +1 -0
  62. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js +151 -0
  63. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js.map +1 -0
  64. package/lib/commonjs/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js +270 -0
  65. package/lib/commonjs/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js.map +1 -0
  66. package/lib/commonjs/{headless_checkout → HeadlessUniversalCheckout}/RNPrimerHeadlessUniversalCheckout.js +7 -81
  67. package/lib/commonjs/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js.map +1 -0
  68. package/lib/commonjs/HeadlessUniversalCheckout/types.js +34 -0
  69. package/lib/commonjs/HeadlessUniversalCheckout/types.js.map +1 -0
  70. package/lib/commonjs/Primer.js +22 -32
  71. package/lib/commonjs/Primer.js.map +1 -1
  72. package/lib/commonjs/PrimerInput.js.map +1 -1
  73. package/lib/commonjs/RNPrimer.js +2 -12
  74. package/lib/commonjs/RNPrimer.js.map +1 -1
  75. package/lib/commonjs/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js.map +1 -1
  76. package/lib/commonjs/index.js +63 -71
  77. package/lib/commonjs/index.js.map +1 -1
  78. package/lib/commonjs/models/PrimerAsset.js +2 -0
  79. package/lib/commonjs/models/PrimerAsset.js.map +1 -0
  80. package/lib/commonjs/models/PrimerCheckoutAdditionalInfo.js.map +1 -1
  81. package/lib/commonjs/models/PrimerCheckoutData.js.map +1 -1
  82. package/lib/commonjs/models/PrimerCheckoutPaymentMethodData.js.map +1 -1
  83. package/lib/commonjs/models/PrimerClientSession.js.map +1 -1
  84. package/lib/commonjs/models/PrimerCountryCode.js.map +1 -1
  85. package/lib/commonjs/models/PrimerCurrencyCode.js.map +1 -1
  86. package/lib/commonjs/models/PrimerError.js +4 -4
  87. package/lib/commonjs/models/PrimerError.js.map +1 -1
  88. package/lib/commonjs/models/PrimerHandlers.js +2 -0
  89. package/lib/commonjs/models/PrimerHandlers.js.map +1 -0
  90. package/lib/commonjs/models/PrimerHeadlessUniversalCheckoutPaymentMethod.js +2 -0
  91. package/lib/commonjs/models/PrimerHeadlessUniversalCheckoutPaymentMethod.js.map +1 -0
  92. package/lib/commonjs/models/PrimerImplementedRNCallbacks.js +2 -0
  93. package/lib/commonjs/models/PrimerImplementedRNCallbacks.js.map +1 -0
  94. package/lib/commonjs/models/PrimerInitializationData.js.map +1 -1
  95. package/lib/commonjs/models/PrimerInputElementType.js +20 -0
  96. package/lib/commonjs/models/PrimerInputElementType.js.map +1 -0
  97. package/lib/commonjs/models/PrimerInterfaces.js.map +1 -1
  98. package/lib/commonjs/models/PrimerPaymentMethodManagerCategory.js +14 -0
  99. package/lib/commonjs/models/PrimerPaymentMethodManagerCategory.js.map +1 -0
  100. package/lib/commonjs/models/PrimerPaymentMethodTokenData.js.map +1 -1
  101. package/lib/commonjs/models/PrimerRawData.js.map +1 -1
  102. package/lib/commonjs/models/PrimerSessionIntent.js.map +1 -1
  103. package/lib/commonjs/models/PrimerSettings.js.map +1 -1
  104. package/lib/commonjs/models/PrimerTheme.js.map +1 -1
  105. package/lib/commonjs/models/RetailOutletsRetail.js.map +1 -1
  106. package/lib/commonjs/utils/index.js.map +1 -1
  107. package/lib/module/HeadlessUniversalCheckout/Managers/AssetsManager.js +52 -0
  108. package/lib/module/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +1 -0
  109. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js +28 -0
  110. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js.map +1 -0
  111. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js +144 -0
  112. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js.map +1 -0
  113. package/lib/module/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js +261 -0
  114. package/lib/module/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js.map +1 -0
  115. package/lib/module/{headless_checkout → HeadlessUniversalCheckout}/RNPrimerHeadlessUniversalCheckout.js +7 -81
  116. package/lib/module/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js.map +1 -0
  117. package/lib/module/HeadlessUniversalCheckout/types.js +33 -0
  118. package/lib/module/HeadlessUniversalCheckout/types.js.map +1 -0
  119. package/lib/module/Primer.js +22 -32
  120. package/lib/module/Primer.js.map +1 -1
  121. package/lib/module/PrimerInput.js.map +1 -1
  122. package/lib/module/RNPrimer.js +2 -12
  123. package/lib/module/RNPrimer.js.map +1 -1
  124. package/lib/module/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js.map +1 -1
  125. package/lib/module/index.js +15 -9
  126. package/lib/module/index.js.map +1 -1
  127. package/lib/module/models/PrimerAsset.js +2 -0
  128. package/lib/module/models/PrimerAsset.js.map +1 -0
  129. package/lib/module/models/PrimerCheckoutAdditionalInfo.js.map +1 -1
  130. package/lib/module/models/PrimerCheckoutData.js.map +1 -1
  131. package/lib/module/models/PrimerCheckoutPaymentMethodData.js.map +1 -1
  132. package/lib/module/models/PrimerClientSession.js.map +1 -1
  133. package/lib/module/models/PrimerCountryCode.js.map +1 -1
  134. package/lib/module/models/PrimerCurrencyCode.js.map +1 -1
  135. package/lib/module/models/PrimerError.js +4 -4
  136. package/lib/module/models/PrimerError.js.map +1 -1
  137. package/lib/module/models/PrimerHandlers.js +2 -0
  138. package/lib/module/models/PrimerHandlers.js.map +1 -0
  139. package/lib/module/models/PrimerHeadlessUniversalCheckoutPaymentMethod.js +2 -0
  140. package/lib/module/models/PrimerHeadlessUniversalCheckoutPaymentMethod.js.map +1 -0
  141. package/lib/module/models/PrimerImplementedRNCallbacks.js +2 -0
  142. package/lib/module/models/PrimerImplementedRNCallbacks.js.map +1 -0
  143. package/lib/module/models/PrimerInitializationData.js.map +1 -1
  144. package/lib/module/models/PrimerInputElementType.js +13 -0
  145. package/lib/module/models/PrimerInputElementType.js.map +1 -0
  146. package/lib/module/models/PrimerInterfaces.js.map +1 -1
  147. package/lib/module/models/PrimerPaymentMethodManagerCategory.js +7 -0
  148. package/lib/module/models/PrimerPaymentMethodManagerCategory.js.map +1 -0
  149. package/lib/module/models/PrimerPaymentMethodTokenData.js.map +1 -1
  150. package/lib/module/models/PrimerRawData.js.map +1 -1
  151. package/lib/module/models/PrimerSessionIntent.js.map +1 -1
  152. package/lib/module/models/PrimerSettings.js.map +1 -1
  153. package/lib/module/models/PrimerTheme.js.map +1 -1
  154. package/lib/module/models/RetailOutletsRetail.js.map +1 -1
  155. package/lib/module/utils/index.js.map +1 -1
  156. package/lib/typescript/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts +9 -0
  157. package/lib/typescript/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts.map +1 -0
  158. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.d.ts +8 -0
  159. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.d.ts.map +1 -0
  160. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.d.ts +29 -0
  161. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.d.ts.map +1 -0
  162. package/lib/typescript/{headless_checkout → HeadlessUniversalCheckout}/PrimerHeadlessUniversalCheckout.d.ts +4 -5
  163. package/lib/typescript/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.d.ts.map +1 -0
  164. package/lib/typescript/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.d.ts +18 -0
  165. package/lib/typescript/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.d.ts.map +1 -0
  166. package/lib/typescript/HeadlessUniversalCheckout/types.d.ts +1 -0
  167. package/lib/typescript/HeadlessUniversalCheckout/types.d.ts.map +1 -0
  168. package/lib/typescript/Primer.d.ts +1 -0
  169. package/lib/typescript/Primer.d.ts.map +1 -0
  170. package/lib/typescript/PrimerInput.d.ts +5 -4
  171. package/lib/typescript/PrimerInput.d.ts.map +1 -0
  172. package/lib/typescript/RNPrimer.d.ts +3 -4
  173. package/lib/typescript/RNPrimer.d.ts.map +1 -0
  174. package/lib/typescript/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.d.ts +1 -0
  175. package/lib/typescript/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.d.ts.map +1 -0
  176. package/lib/typescript/index.d.ts +18 -9
  177. package/lib/typescript/index.d.ts.map +1 -0
  178. package/lib/typescript/models/PrimerAsset.d.ts +14 -0
  179. package/lib/typescript/models/PrimerAsset.d.ts.map +1 -0
  180. package/lib/typescript/models/PrimerCheckoutAdditionalInfo.d.ts +7 -6
  181. package/lib/typescript/models/PrimerCheckoutAdditionalInfo.d.ts.map +1 -0
  182. package/lib/typescript/models/PrimerCheckoutData.d.ts +3 -2
  183. package/lib/typescript/models/PrimerCheckoutData.d.ts.map +1 -0
  184. package/lib/typescript/models/PrimerCheckoutPaymentMethodData.d.ts +2 -1
  185. package/lib/typescript/models/PrimerCheckoutPaymentMethodData.d.ts.map +1 -0
  186. package/lib/typescript/models/PrimerClientSession.d.ts +6 -5
  187. package/lib/typescript/models/PrimerClientSession.d.ts.map +1 -0
  188. package/lib/typescript/models/PrimerCountryCode.d.ts +2 -1
  189. package/lib/typescript/models/PrimerCountryCode.d.ts.map +1 -0
  190. package/lib/typescript/models/PrimerCurrencyCode.d.ts +2 -1
  191. package/lib/typescript/models/PrimerCurrencyCode.d.ts.map +1 -0
  192. package/lib/typescript/models/PrimerError.d.ts +3 -1
  193. package/lib/typescript/models/PrimerError.d.ts.map +1 -0
  194. package/lib/typescript/models/PrimerHandlers.d.ts +22 -0
  195. package/lib/typescript/models/PrimerHandlers.d.ts.map +1 -0
  196. package/lib/typescript/models/PrimerHeadlessUniversalCheckoutPaymentMethod.d.ts +6 -0
  197. package/lib/typescript/models/PrimerHeadlessUniversalCheckoutPaymentMethod.d.ts.map +1 -0
  198. package/lib/typescript/models/PrimerImplementedRNCallbacks.d.ts +17 -0
  199. package/lib/typescript/models/PrimerImplementedRNCallbacks.d.ts.map +1 -0
  200. package/lib/typescript/models/PrimerInitializationData.d.ts +3 -2
  201. package/lib/typescript/models/PrimerInitializationData.d.ts.map +1 -0
  202. package/lib/typescript/models/PrimerInputElementType.d.ts +12 -0
  203. package/lib/typescript/models/PrimerInputElementType.d.ts.map +1 -0
  204. package/lib/typescript/models/PrimerInterfaces.d.ts +2 -20
  205. package/lib/typescript/models/PrimerInterfaces.d.ts.map +1 -0
  206. package/lib/typescript/models/PrimerPaymentMethodManagerCategory.d.ts +6 -0
  207. package/lib/typescript/models/PrimerPaymentMethodManagerCategory.d.ts.map +1 -0
  208. package/lib/typescript/models/PrimerPaymentMethodTokenData.d.ts +2 -1
  209. package/lib/typescript/models/PrimerPaymentMethodTokenData.d.ts.map +1 -0
  210. package/lib/typescript/models/PrimerRawData.d.ts +7 -10
  211. package/lib/typescript/models/PrimerRawData.d.ts.map +1 -0
  212. package/lib/typescript/models/PrimerSessionIntent.d.ts +1 -0
  213. package/lib/typescript/models/PrimerSessionIntent.d.ts.map +1 -0
  214. package/lib/typescript/models/PrimerSettings.d.ts +18 -6
  215. package/lib/typescript/models/PrimerSettings.d.ts.map +1 -0
  216. package/lib/typescript/models/PrimerTheme.d.ts +3 -2
  217. package/lib/typescript/models/PrimerTheme.d.ts.map +1 -0
  218. package/lib/typescript/models/RetailOutletsRetail.d.ts +2 -1
  219. package/lib/typescript/models/RetailOutletsRetail.d.ts.map +1 -0
  220. package/lib/typescript/utils/index.d.ts +1 -0
  221. package/lib/typescript/utils/index.d.ts.map +1 -0
  222. package/package.json +8 -7
  223. package/primer-io-react-native.podspec +1 -2
  224. package/src/HeadlessUniversalCheckout/Managers/AssetsManager.ts +56 -0
  225. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.ts +31 -0
  226. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.ts +166 -0
  227. package/src/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.ts +333 -0
  228. package/src/{headless_checkout → HeadlessUniversalCheckout}/RNPrimerHeadlessUniversalCheckout.ts +37 -128
  229. package/src/HeadlessUniversalCheckout/types.ts +32 -0
  230. package/src/Primer.ts +30 -41
  231. package/src/RNPrimer.ts +2 -18
  232. package/src/index.tsx +43 -29
  233. package/src/models/PrimerAsset.ts +13 -0
  234. package/src/models/PrimerError.ts +3 -1
  235. package/src/models/PrimerHandlers.ts +25 -0
  236. package/src/models/PrimerHeadlessUniversalCheckoutPaymentMethod.ts +5 -0
  237. package/src/models/PrimerImplementedRNCallbacks.ts +20 -0
  238. package/src/models/PrimerInputElementType.ts +11 -0
  239. package/src/models/PrimerInterfaces.ts +1 -28
  240. package/src/models/PrimerPaymentMethodManagerCategory.ts +5 -0
  241. package/src/models/PrimerRawData.ts +6 -10
  242. package/src/models/PrimerSettings.ts +29 -16
  243. package/android/src/main/java/com/primerioreactnative/huc/datamodels/manager/raw/cardRedirect/PrimerRNPRawCardRedirectData.kt +0 -20
  244. package/android/src/main/java/com/primerioreactnative/huc/datamodels/manager/raw/phoneNumber/PrimerRNRawPhoneNumberData.kt +0 -14
  245. package/android/src/main/java/com/primerioreactnative/huc/datamodels/manager/raw/retailOutlets/PrimerRNRawRetailOutletData.kt +0 -12
  246. package/android/src/main/java/com/primerioreactnative/huc/events/PrimerHeadlessUniversalCheckoutEvent.kt +0 -15
  247. package/ios/DataModels/ImplementedRNCallbacks.swift +0 -62
  248. package/ios/DataModels/PrimerErrorRN.swift +0 -35
  249. package/ios/DataModels/PrimerSettingsRN.swift +0 -84
  250. package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.m +0 -62
  251. package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.swift +0 -501
  252. package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.m +0 -14
  253. package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.swift +0 -117
  254. package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckoutRawDataManager.m +0 -23
  255. package/ios/RNTPrimer.m +0 -59
  256. package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckout.js +0 -288
  257. package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckout.js.map +0 -1
  258. package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckoutRawDataManager.js +0 -91
  259. package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckoutRawDataManager.js.map +0 -1
  260. package/lib/commonjs/headless_checkout/RNPrimerHeadlessUniversalCheckout.js.map +0 -1
  261. package/lib/commonjs/headless_checkout/RNPrimerHeadlessUniversalCheckoutRawDataManager.js +0 -91
  262. package/lib/commonjs/headless_checkout/RNPrimerHeadlessUniversalCheckoutRawDataManager.js.map +0 -1
  263. package/lib/commonjs/headless_checkout/types.js +0 -6
  264. package/lib/commonjs/headless_checkout/types.js.map +0 -1
  265. package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckout.js +0 -279
  266. package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckout.js.map +0 -1
  267. package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckoutRawDataManager.js +0 -83
  268. package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckoutRawDataManager.js.map +0 -1
  269. package/lib/module/headless_checkout/RNPrimerHeadlessUniversalCheckout.js.map +0 -1
  270. package/lib/module/headless_checkout/RNPrimerHeadlessUniversalCheckoutRawDataManager.js +0 -84
  271. package/lib/module/headless_checkout/RNPrimerHeadlessUniversalCheckoutRawDataManager.js.map +0 -1
  272. package/lib/module/headless_checkout/types.js +0 -2
  273. package/lib/module/headless_checkout/types.js.map +0 -1
  274. package/lib/typescript/headless_checkout/PrimerHeadlessUniversalCheckoutRawDataManager.d.ts +0 -18
  275. package/lib/typescript/headless_checkout/RNPrimerHeadlessUniversalCheckout.d.ts +0 -22
  276. package/lib/typescript/headless_checkout/RNPrimerHeadlessUniversalCheckoutRawDataManager.d.ts +0 -14
  277. package/lib/typescript/headless_checkout/types.d.ts +0 -22
  278. package/src/headless_checkout/PrimerHeadlessUniversalCheckout.ts +0 -358
  279. package/src/headless_checkout/PrimerHeadlessUniversalCheckoutRawDataManager.ts +0 -109
  280. package/src/headless_checkout/RNPrimerHeadlessUniversalCheckoutRawDataManager.ts +0 -104
  281. package/src/headless_checkout/types.ts +0 -32
  282. /package/ios/{DataModels → Sources/DataModels}/PrimerThemeRN.swift +0 -0
  283. /package/ios/{Headless Universal Checkout → Sources/Headless Universal Checkout/Managers/Payment Method Managers}/RNTPrimerCardNumberInputElementManager.m +0 -0
@@ -0,0 +1,131 @@
1
+ package com.primerioreactnative.components.manager.asset
2
+
3
+ import androidx.core.content.ContextCompat
4
+ import com.facebook.react.bridge.Promise
5
+ import com.facebook.react.bridge.ReactApplicationContext
6
+ import com.facebook.react.bridge.ReactContextBaseJavaModule
7
+ import com.facebook.react.bridge.ReactMethod
8
+ import com.primerioreactnative.components.assets.AssetsManager
9
+ import com.primerioreactnative.components.assets.AssetsManager.drawableToBitmap
10
+ import com.primerioreactnative.components.assets.CardNetworkImageFileProvider.getFileForCardNetworkAsset
11
+ import com.primerioreactnative.components.datamodels.manager.asset.PrimerCardNetworkAsset
12
+ import com.primerioreactnative.components.datamodels.manager.asset.PrimerRNPaymentMethodAssetWrapper
13
+ import com.primerioreactnative.components.datamodels.manager.asset.PrimerRNPaymentMethodAssets
14
+ import com.primerioreactnative.components.datamodels.manager.asset.toPrimerRNPaymentMethodLogo
15
+ import com.primerioreactnative.datamodels.ErrorTypeRN
16
+ import com.primerioreactnative.utils.convertJsonToMap
17
+ import com.primerioreactnative.utils.errorTo
18
+ import io.primer.android.ExperimentalPrimerApi
19
+ import io.primer.android.components.SdkUninitializedException
20
+ import io.primer.android.components.ui.assets.PrimerHeadlessUniversalCheckoutAssetsManager
21
+ import io.primer.android.ui.CardNetwork
22
+ import kotlinx.serialization.encodeToString
23
+ import kotlinx.serialization.json.Json
24
+ import org.json.JSONObject
25
+
26
+ @ExperimentalPrimerApi
27
+ internal class PrimerRNHeadlessUniversalCheckoutAssetManager(
28
+ private val reactContext: ReactApplicationContext,
29
+ ) : ReactContextBaseJavaModule(reactContext) {
30
+
31
+ override fun getName() = "RNTPrimerHeadlessUniversalCheckoutAssetsManager"
32
+
33
+ @ReactMethod
34
+ fun getCardNetworkImage(
35
+ cardNetworkStr: String,
36
+ promise: Promise,
37
+ ) {
38
+ val cardNetwork =
39
+ CardNetwork.Type.values().find { it.name.equals(cardNetworkStr, ignoreCase = true) }
40
+ when (cardNetwork) {
41
+ null -> {
42
+ val exception =
43
+ ErrorTypeRN.NativeBridgeFailed errorTo "Failed to find asset of $cardNetworkStr."
44
+ promise.reject(exception.errorId, exception.description)
45
+ }
46
+ else -> try {
47
+ PrimerHeadlessUniversalCheckoutAssetsManager.getCardNetworkImage(cardNetwork)
48
+ .let { resourceId ->
49
+ val file = getFileForCardNetworkAsset(reactContext, cardNetworkStr)
50
+ AssetsManager.saveBitmapToFile(
51
+ file,
52
+ drawableToBitmap(ContextCompat.getDrawable(reactContext, resourceId)!!),
53
+ )
54
+ promise.resolve(
55
+ convertJsonToMap(
56
+ JSONObject(
57
+ Json.encodeToString(
58
+ PrimerCardNetworkAsset("file://${file.absolutePath}")
59
+ )
60
+ )
61
+ )
62
+ )
63
+ }
64
+ } catch (e: SdkUninitializedException) {
65
+ promise.reject(ErrorTypeRN.UnitializedSdkSession.errorId, e.message, e)
66
+ } catch (e: Exception) {
67
+ promise.reject(ErrorTypeRN.NativeBridgeFailed.errorId, e.message, e)
68
+ }
69
+ }
70
+ }
71
+
72
+ @ReactMethod
73
+ fun getPaymentMethodAsset(paymentMethodTypeStr: String, promise: Promise) {
74
+ try {
75
+ val paymentMethodAsset =
76
+ PrimerHeadlessUniversalCheckoutAssetsManager.getPaymentMethodAsset(
77
+ reactContext,
78
+ paymentMethodTypeStr
79
+ )
80
+ promise.resolve(
81
+ convertJsonToMap(
82
+ JSONObject(
83
+ Json.encodeToString(
84
+ PrimerRNPaymentMethodAssetWrapper(
85
+ paymentMethodAsset.toPrimerRNPaymentMethodLogo(
86
+ reactContext,
87
+ paymentMethodTypeStr
88
+ )
89
+ )
90
+ )
91
+ )
92
+ )
93
+ )
94
+ } catch (e: SdkUninitializedException) {
95
+ promise.reject(ErrorTypeRN.UnitializedSdkSession.errorId, e.message, e)
96
+ } catch (e: Exception) {
97
+ val exception =
98
+ ErrorTypeRN.NativeBridgeFailed errorTo "Failed to find asset of $paymentMethodTypeStr for this session."
99
+ promise.reject(exception.errorId, exception.description)
100
+ }
101
+ }
102
+
103
+ @ReactMethod
104
+ fun getPaymentMethodAssets(promise: Promise) {
105
+ try {
106
+ val paymentMethodAssets =
107
+ PrimerHeadlessUniversalCheckoutAssetsManager.getPaymentMethodAssets(reactContext)
108
+ if (paymentMethodAssets.isEmpty()) {
109
+ val exception =
110
+ ErrorTypeRN.NativeBridgeFailed errorTo "Failed to find assets for this session"
111
+ promise.reject(exception.errorId, exception.description)
112
+ }
113
+ promise.resolve(
114
+ convertJsonToMap(
115
+ JSONObject(
116
+ Json.encodeToString(
117
+ PrimerRNPaymentMethodAssets(paymentMethodAssets.map {
118
+ it.toPrimerRNPaymentMethodLogo(
119
+ reactContext,
120
+ it.paymentMethodType
121
+ )
122
+ })
123
+ )
124
+ )
125
+ )
126
+ )
127
+ } catch (e: SdkUninitializedException) {
128
+ promise.reject(ErrorTypeRN.UnitializedSdkSession.errorId, e.message, e)
129
+ }
130
+ }
131
+ }
@@ -0,0 +1,87 @@
1
+ package com.primerioreactnative.components.manager.nativeUi
2
+
3
+ import com.facebook.react.bridge.Promise
4
+ import com.facebook.react.bridge.ReactApplicationContext
5
+ import com.facebook.react.bridge.ReactContextBaseJavaModule
6
+ import com.facebook.react.bridge.ReactMethod
7
+ import com.primerioreactnative.datamodels.ErrorTypeRN
8
+ import com.primerioreactnative.datamodels.PrimerErrorRN
9
+ import com.primerioreactnative.utils.errorTo
10
+ import io.primer.android.ExperimentalPrimerApi
11
+ import io.primer.android.PrimerSessionIntent
12
+ import io.primer.android.components.SdkUninitializedException
13
+ import io.primer.android.components.domain.exception.UnsupportedPaymentMethodManagerException
14
+ import io.primer.android.components.manager.native.PrimerHeadlessUniversalCheckoutNativeUiManager
15
+ import io.primer.android.components.manager.native.PrimerHeadlessUniversalCheckoutNativeUiManagerInterface
16
+ import io.primer.android.domain.exception.UnsupportedPaymentIntentException
17
+
18
+ @ExperimentalPrimerApi
19
+ internal class PrimerRNHeadlessUniversalCheckoutNativeUiManager(
20
+ private val reactContext: ReactApplicationContext,
21
+ ) : ReactContextBaseJavaModule(reactContext) {
22
+
23
+ private lateinit var nativeUiManager: PrimerHeadlessUniversalCheckoutNativeUiManagerInterface
24
+ private var paymentMethodTypeStr: String? = null
25
+
26
+ override fun getName() = "RNTPrimerHeadlessUniversalPaymentMethodNativeUIManager"
27
+
28
+ @ReactMethod
29
+ fun configure(paymentMethodTypeStr: String, promise: Promise) {
30
+ try {
31
+ nativeUiManager = PrimerHeadlessUniversalCheckoutNativeUiManager.newInstance(
32
+ paymentMethodTypeStr
33
+ )
34
+ this.paymentMethodTypeStr = paymentMethodTypeStr
35
+ promise.resolve(null)
36
+ } catch (e: SdkUninitializedException) {
37
+ promise.reject(ErrorTypeRN.UnitializedSdkSession.errorId, e.message, e)
38
+ } catch (e: UnsupportedPaymentMethodManagerException) {
39
+ promise.reject(ErrorTypeRN.UnsupportedPaymentMethod.errorId, e.message, e)
40
+ } catch (e: Exception) {
41
+ val exception =
42
+ ErrorTypeRN.NativeBridgeFailed errorTo e.message.orEmpty()
43
+ promise.reject(exception.errorId, exception.description, e)
44
+ }
45
+ }
46
+
47
+ @ReactMethod
48
+ fun showPaymentMethod(
49
+ intentStr: String,
50
+ promise: Promise
51
+ ) {
52
+
53
+ if (::nativeUiManager.isInitialized.not()) {
54
+ val exception = PrimerErrorRN(
55
+ ErrorTypeRN.NativeBridgeFailed.errorId,
56
+ "The NativeUIManager has not been initialized.",
57
+ null,
58
+ "Initialize the NativeUIManager by calling the configure function" +
59
+ " and providing a payment method type."
60
+ )
61
+ promise.reject(exception.errorId, exception.description)
62
+ } else if (PrimerSessionIntent.values()
63
+ .firstOrNull { intentStr.equals(it.name, true) } == null
64
+ ) {
65
+ val exception = PrimerErrorRN(
66
+ ErrorTypeRN.NativeBridgeFailed.errorId,
67
+ "Invalid value for 'intent'.",
68
+ null,
69
+ "'intent' can be 'CHECKOUT' or 'VAULT'."
70
+ )
71
+ promise.reject(exception.errorId, exception.description)
72
+ } else {
73
+ try {
74
+ nativeUiManager.showPaymentMethod(
75
+ reactContext,
76
+ PrimerSessionIntent.valueOf(intentStr.uppercase())
77
+ )
78
+ } catch (e: UnsupportedPaymentIntentException) {
79
+ promise.reject(ErrorTypeRN.UnsupportedPaymentIntent.errorId, e.message, e)
80
+ } catch (e: Exception) {
81
+ val exception =
82
+ ErrorTypeRN.NativeBridgeFailed errorTo e.message.orEmpty()
83
+ promise.reject(exception.errorId, exception.description, e)
84
+ }
85
+ }
86
+ }
87
+ }
@@ -1,19 +1,22 @@
1
- package com.primerioreactnative.huc.manager.raw
1
+ package com.primerioreactnative.components.manager.raw
2
2
 
3
3
  import com.facebook.react.bridge.*
4
4
  import com.facebook.react.modules.core.DeviceEventManagerModule
5
5
  import com.primerioreactnative.Keys
6
+ import com.primerioreactnative.components.datamodels.core.PrimerRawPaymentMethodType
7
+ import com.primerioreactnative.components.datamodels.manager.raw.card.PrimerRNCardData
8
+ import com.primerioreactnative.components.datamodels.manager.raw.cardRedirect.PrimerRNBancontactCardData
9
+ import com.primerioreactnative.components.datamodels.manager.raw.phoneNumber.PrimerRNPhoneNumberData
10
+ import com.primerioreactnative.components.datamodels.manager.raw.retailOutlets.PrimerRNRetailOutletData
11
+ import com.primerioreactnative.components.datamodels.manager.raw.retailOutlets.toRNRetailOutletsList
12
+ import com.primerioreactnative.components.events.PrimerHeadlessUniversalCheckoutEvent
6
13
  import com.primerioreactnative.datamodels.ErrorTypeRN
7
14
  import com.primerioreactnative.datamodels.PrimerErrorRN
8
- import com.primerioreactnative.huc.datamodels.manager.raw.card.PrimerRNRawCardData
9
- import com.primerioreactnative.huc.datamodels.manager.raw.cardRedirect.PrimerRNRawBancontactCardData
10
- import com.primerioreactnative.huc.datamodels.manager.raw.phoneNumber.PrimerRNRawPhoneNumberData
11
- import com.primerioreactnative.huc.datamodels.manager.raw.retailOutlets.PrimerRNRawRetailOutletData
12
- import com.primerioreactnative.huc.datamodels.manager.raw.retailOutlets.toRNRetailOutletsList
13
- import com.primerioreactnative.huc.events.PrimerHeadlessUniversalCheckoutEvent
14
15
  import com.primerioreactnative.utils.convertJsonToMap
15
16
  import com.primerioreactnative.utils.errorTo
16
17
  import io.primer.android.ExperimentalPrimerApi
18
+ import io.primer.android.components.SdkUninitializedException
19
+ import io.primer.android.components.domain.exception.UnsupportedPaymentMethodManagerException
17
20
  import io.primer.android.components.manager.raw.PrimerHeadlessUniversalCheckoutRawDataManager
18
21
  import io.primer.android.components.manager.raw.PrimerHeadlessUniversalCheckoutRawDataManagerInterface
19
22
  import io.primer.android.data.payments.configure.retailOutlets.RetailOutletsList
@@ -23,6 +26,7 @@ import kotlinx.serialization.json.Json
23
26
  import org.json.JSONArray
24
27
  import org.json.JSONObject
25
28
 
29
+
26
30
  @ExperimentalPrimerApi
27
31
  internal class PrimerRNHeadlessUniversalCheckoutRawManager(
28
32
  reactContext: ReactApplicationContext,
@@ -37,34 +41,56 @@ internal class PrimerRNHeadlessUniversalCheckoutRawManager(
37
41
  listener.sendEvent = { eventName, paramsJson -> sendEvent(eventName, paramsJson) }
38
42
  }
39
43
 
40
- override fun getName() = "PrimerHeadlessUniversalCheckoutRawDataManager"
44
+ override fun getName() = "RNTPrimerHeadlessUniversalCheckoutRawDataManager"
41
45
 
42
46
  @ReactMethod
43
- fun initialize(paymentMethodTypeStr: String, promise: Promise) {
47
+ fun configure(paymentMethodTypeStr: String, promise: Promise) {
44
48
  try {
45
49
  rawManager = PrimerHeadlessUniversalCheckoutRawDataManager.newInstance(
46
50
  paymentMethodTypeStr
47
51
  )
48
52
  this.paymentMethodTypeStr = paymentMethodTypeStr
49
- rawManager.setManagerListener(listener)
50
- promise.resolve(null)
53
+ rawManager.setListener(listener)
54
+ rawManager.configure { primerInitializationData, error ->
55
+ if (error == null) {
56
+ when (primerInitializationData) {
57
+ is RetailOutletsList -> {
58
+ promise.resolve(
59
+ prepareData(
60
+ JSONObject().apply {
61
+ put(
62
+ "initializationData", JSONObject(
63
+ Json.encodeToString(
64
+ primerInitializationData.toRNRetailOutletsList()
65
+ )
66
+ )
67
+ )
68
+ }
69
+ )
70
+ )
71
+ }
72
+ else -> promise.resolve(null)
73
+ }
74
+ } else promise.reject(error.errorId, error.description)
75
+ }
76
+ } catch (e: SdkUninitializedException) {
77
+ promise.reject(ErrorTypeRN.UnitializedSdkSession.errorId, e.message, e)
78
+ } catch (e: UnsupportedPaymentMethodManagerException) {
79
+ promise.reject(ErrorTypeRN.UnsupportedPaymentMethod.errorId, e.message, e)
51
80
  } catch (e: Exception) {
52
81
  val exception =
53
82
  ErrorTypeRN.NativeBridgeFailed errorTo e.message.orEmpty()
54
- promise.reject(exception.errorId, exception.description)
83
+ promise.reject(exception.errorId, exception.description, e)
55
84
  }
56
85
  }
57
86
 
58
87
  @ReactMethod
59
- fun listRequiredInputElementTypesForPaymentMethodType(
60
- paymentMethodTypeStr: String,
88
+ fun listRequiredInputElementTypes(
61
89
  promise: Promise
62
90
  ) {
63
91
  if (::rawManager.isInitialized.not()) {
64
92
  val exception =
65
- ErrorTypeRN.NativeBridgeFailed errorTo "The PrimerHeadlessUniversalCheckoutRawDataManager" +
66
- " has not been initialized. Make sure you have called the" +
67
- " HeadlessUniversalCheckoutRawDataManager.configure function first."
93
+ ErrorTypeRN.NativeBridgeFailed errorTo UNINITIALIZED_ERROR
68
94
  promise.reject(exception.errorId, exception.description)
69
95
  } else {
70
96
  promise.resolve(
@@ -84,33 +110,31 @@ internal class PrimerRNHeadlessUniversalCheckoutRawManager(
84
110
  fun setRawData(rawDataStr: String, promise: Promise) {
85
111
  if (::rawManager.isInitialized.not()) {
86
112
  val exception =
87
- ErrorTypeRN.NativeBridgeFailed errorTo "The PrimerHeadlessUniversalCheckoutRawDataManager" +
88
- " has not been initialized. Make sure you have called the" +
89
- " HeadlessUniversalCheckoutRawDataManager.configure function first."
113
+ ErrorTypeRN.NativeBridgeFailed errorTo UNINITIALIZED_ERROR
90
114
  promise.reject(exception.errorId, exception.description)
91
115
  } else {
92
116
  try {
93
- val rawData = when (paymentMethodTypeStr) {
94
- "PAYMENT_CARD" -> json.decodeFromString<PrimerRNRawCardData>(
117
+ val rawData = when (PrimerRawPaymentMethodType.valueOf(paymentMethodTypeStr.toString())) {
118
+ PrimerRawPaymentMethodType.PAYMENT_CARD -> json.decodeFromString<PrimerRNCardData>(
95
119
  rawDataStr
96
120
  ).toPrimerCardData()
97
- "XENDIT_OVO" -> json.decodeFromString<PrimerRNRawPhoneNumberData>(
98
- rawDataStr
99
- ).toPrimerRawPhoneNumberData()
100
- "ADYEN_BANCONTACT_CARD" -> json.decodeFromString<PrimerRNRawBancontactCardData>(
101
- rawDataStr
102
- ).toPrimerRawBancontactCardData()
103
- "XENDIT_RETAIL_OUTLETS" -> json.decodeFromString<PrimerRNRawRetailOutletData>(
104
- rawDataStr
105
- ).toPrimerRawRetailOutletData()
106
- else -> throw IllegalArgumentException("")
121
+ PrimerRawPaymentMethodType.XENDIT_OVO,
122
+ PrimerRawPaymentMethodType.ADYEN_MBWAY ->
123
+ json.decodeFromString<PrimerRNPhoneNumberData>(rawDataStr)
124
+ .toPrimerPhoneNumberData()
125
+ PrimerRawPaymentMethodType.ADYEN_BANCONTACT_CARD ->
126
+ json.decodeFromString<PrimerRNBancontactCardData>(rawDataStr)
127
+ .toPrimerBancontactCardData()
128
+ PrimerRawPaymentMethodType.XENDIT_RETAIL_OUTLETS ->
129
+ json.decodeFromString<PrimerRNRetailOutletData>(rawDataStr)
130
+ .toPrimerRetailOutletData()
107
131
  }
108
132
  rawManager.setRawData(rawData)
109
133
  promise.resolve(null)
110
134
  } catch (e: Exception) {
111
135
  val exception =
112
136
  ErrorTypeRN.NativeBridgeFailed errorTo "Failed to decode $rawDataStr on Android." +
113
- " Make sure you're providing a valid object"
137
+ " Make sure you're providing a valid 'RawData' (or any inherited) object."
114
138
  onError(exception)
115
139
  promise.reject(exception.errorId, exception.description, e)
116
140
  }
@@ -121,9 +145,7 @@ internal class PrimerRNHeadlessUniversalCheckoutRawManager(
121
145
  fun submit(promise: Promise) {
122
146
  if (::rawManager.isInitialized.not()) {
123
147
  val exception =
124
- ErrorTypeRN.NativeBridgeFailed errorTo "The PrimerHeadlessUniversalCheckoutRawDataManager" +
125
- " has not been initialized. Make sure you have called the" +
126
- " HeadlessUniversalCheckoutRawDataManager.configure function first."
148
+ ErrorTypeRN.NativeBridgeFailed errorTo UNINITIALIZED_ERROR
127
149
  promise.reject(exception.errorId, exception.description)
128
150
  } else {
129
151
  rawManager.submit()
@@ -132,12 +154,10 @@ internal class PrimerRNHeadlessUniversalCheckoutRawManager(
132
154
  }
133
155
 
134
156
  @ReactMethod
135
- fun disposeRawDataManager(promise: Promise) {
157
+ fun cleanUp(promise: Promise) {
136
158
  if (::rawManager.isInitialized.not()) {
137
159
  val exception =
138
- ErrorTypeRN.NativeBridgeFailed errorTo "The PrimerHeadlessUniversalCheckoutRawDataManager" +
139
- " has not been initialized. Make sure you have called the" +
140
- " HeadlessUniversalCheckoutRawDataManager.configure function first."
160
+ ErrorTypeRN.NativeBridgeFailed errorTo UNINITIALIZED_ERROR
141
161
  promise.reject(exception.errorId, exception.description)
142
162
  } else {
143
163
  rawManager.cleanup()
@@ -146,34 +166,10 @@ internal class PrimerRNHeadlessUniversalCheckoutRawManager(
146
166
  }
147
167
 
148
168
  @ReactMethod
149
- fun configure(promise: Promise) {
150
- if (::rawManager.isInitialized.not()) {
151
- val exception =
152
- ErrorTypeRN.NativeBridgeFailed errorTo "The PrimerHeadlessUniversalCheckoutRawDataManager" +
153
- " has not been initialized. Make sure you have called the" +
154
- " HeadlessUniversalCheckoutRawDataManager.configure function first."
155
- promise.reject(exception.errorId, exception.description)
156
- } else {
157
- rawManager.configure { primerInitializationData, error ->
158
- if (error == null) {
159
- when (primerInitializationData) {
160
- is RetailOutletsList -> {
161
- promise.resolve(
162
- prepareData(
163
- JSONObject(
164
- Json.encodeToString(
165
- primerInitializationData.toRNRetailOutletsList()
166
- )
167
- )
168
- )
169
- )
170
- }
171
- else -> promise.resolve(null)
172
- }
173
- } else promise.reject(error.errorId, error.description)
174
- }
175
- }
176
- }
169
+ fun addListener(eventName: String?) = Unit
170
+
171
+ @ReactMethod
172
+ fun removeListeners(count: Int?) = Unit
177
173
 
178
174
  private fun sendEvent(name: String, params: WritableMap) {
179
175
  reactApplicationContext.getJSModule(
@@ -199,4 +195,12 @@ internal class PrimerRNHeadlessUniversalCheckoutRawManager(
199
195
  params.putMap(Keys.ERROR, errorData)
200
196
  sendEvent(PrimerHeadlessUniversalCheckoutEvent.ON_ERROR.eventName, params)
201
197
  }
198
+
199
+ private companion object {
200
+ const val UNINITIALIZED_ERROR =
201
+ """
202
+ The RawDataManager has not been initialized.
203
+ Make sure you have initialized the `RawDataManager' first.
204
+ """
205
+ }
202
206
  }
@@ -1,12 +1,11 @@
1
- package com.primerioreactnative.huc.manager.raw
1
+ package com.primerioreactnative.components.manager.raw
2
2
 
3
- import com.primerioreactnative.datamodels.PrimerErrorRN
4
- import com.primerioreactnative.huc.events.PrimerHeadlessUniversalCheckoutRawDataManagerEvent
3
+ import com.primerioreactnative.components.events.PrimerHeadlessUniversalCheckoutRawDataManagerEvent
4
+ import com.primerioreactnative.datamodels.PrimerInputValidationErrorRN
5
5
  import io.primer.android.ExperimentalPrimerApi
6
6
  import io.primer.android.components.domain.core.models.card.PrimerCardMetadata
7
7
  import io.primer.android.components.domain.core.models.metadata.PrimerPaymentMethodMetadata
8
8
  import io.primer.android.components.domain.error.PrimerInputValidationError
9
- import io.primer.android.components.manager.raw.PrimerHeadlessUniversalCheckoutRawDataManager
10
9
  import io.primer.android.components.manager.raw.PrimerHeadlessUniversalCheckoutRawDataManagerListener
11
10
  import kotlinx.serialization.encodeToString
12
11
  import kotlinx.serialization.json.Json
@@ -28,7 +27,16 @@ internal class PrimerRNHeadlessUniversalCheckoutRawManagerListener :
28
27
  "errors",
29
28
  JSONArray(
30
29
  errors.map {
31
- JSONObject(Json.encodeToString(PrimerErrorRN(it.errorId, it.description)))
30
+ JSONObject(
31
+ Json.encodeToString(
32
+ PrimerInputValidationErrorRN(
33
+ it.errorId,
34
+ it.description,
35
+ it.inputElementType.name,
36
+ it.diagnosticsId
37
+ )
38
+ )
39
+ )
32
40
  }
33
41
  )
34
42
  )
@@ -6,13 +6,14 @@ import kotlinx.serialization.Serializable
6
6
  data class PrimerErrorRN(
7
7
  val errorId: String? = null,
8
8
  val description: String? = null,
9
+ val diagnosticsId: String? = null,
9
10
  val recoverySuggestion: String? = null
10
11
  )
11
12
 
12
13
  @Serializable
13
14
  enum class ErrorTypeRN(val errorId: String) {
14
- NativeBridgeFailed("native-bridge"),
15
- AssetMissing("missing-asset"),
16
- AssetMismatch("mismatch-asset"),
17
- InvalidCardNetwork("invalid-card-network")
15
+ NativeBridgeFailed("native-android"),
16
+ UnitializedSdkSession("uninitialized-sdk-session"),
17
+ UnsupportedPaymentMethod("unsupported-payment-method-type"),
18
+ UnsupportedPaymentIntent("unsupported-session-intent")
18
19
  }
@@ -0,0 +1,11 @@
1
+ package com.primerioreactnative.datamodels
2
+
3
+ import kotlinx.serialization.Serializable
4
+
5
+ @Serializable
6
+ data class PrimerInputValidationErrorRN(
7
+ val errorId: String? = null,
8
+ val description: String? = null,
9
+ val inputElementType: String? = null,
10
+ val diagnosticsId: String? = null
11
+ )
@@ -33,7 +33,6 @@ data class PrimerPaymentMethodOptionsRN(
33
33
  var googlePayOptions: PrimerGooglePayOptionsRN = PrimerGooglePayOptionsRN(),
34
34
  var klarnaOptions: PrimerKlarnaOptionsRN = PrimerKlarnaOptionsRN(),
35
35
  var apayaOptions: PrimerApayaOptionsRN = PrimerApayaOptionsRN(),
36
- var goCardlessOptions: PrimerGoCardlessOptionsRN = PrimerGoCardlessOptionsRN()
37
36
  )
38
37
 
39
38
  @Serializable
@@ -81,13 +80,6 @@ data class PrimerApayaOptionsRN(
81
80
  var webViewTitle: String? = null,
82
81
  )
83
82
 
84
- @Serializable
85
- @Deprecated("This class is deprecated and will be removed in future release.")
86
- data class PrimerGoCardlessOptionsRN(
87
- var businessName: String? = null,
88
- var businessAddress: String? = null,
89
- )
90
-
91
83
  fun PrimerSettingsRN.toPrimerSettings() = PrimerSettings(
92
84
  paymentHandling,
93
85
  localeData.toLocale(),
@@ -8,7 +8,6 @@ fun PrimerPaymentMethodOptionsRN.toPrimerPaymentMethodOptions() = PrimerPaymentM
8
8
  googlePayOptions.toPrimerGooglePayOptions(),
9
9
  klarnaOptions.toPrimerKlarnaOptions(),
10
10
  apayaOptions.toPrimerApayaOptions(),
11
- goCardlessOptions.toPrimerGoCardlessOptions()
12
11
  )
13
12
 
14
13
  fun PrimerGooglePayOptionsRN.toPrimerGooglePayOptions() =
@@ -18,6 +17,3 @@ fun PrimerKlarnaOptionsRN.toPrimerKlarnaOptions() =
18
17
  PrimerKlarnaOptions(recurringPaymentDescription, webViewTitle)
19
18
 
20
19
  fun PrimerApayaOptionsRN.toPrimerApayaOptions() = PrimerApayaOptions(webViewTitle)
21
-
22
- fun PrimerGoCardlessOptionsRN.toPrimerGoCardlessOptions() =
23
- PrimerGoCardlessOptions(businessName, businessAddress)
@@ -15,20 +15,20 @@ data class PrimerHeadlessUniversalCheckoutImplementedRNCallbacks(
15
15
  val isOnBeforePaymentCreateImplemented: Boolean? = null,
16
16
  @SerialName("onError")
17
17
  val isOnErrorImplemented: Boolean? = null,
18
- @SerialName("onTokenizeSuccess")
18
+ @SerialName("onTokenizationSuccess")
19
19
  val isOnTokenizeSuccessImplemented: Boolean? = null,
20
- @SerialName("onResumeSuccess")
21
- val isOnResumeSuccessImplemented: Boolean? = null,
22
- @SerialName("onResumePending")
23
- val isOnResumePendingImplemented: Boolean? = null,
24
- @SerialName("onCheckoutReceivedAdditionalInfo")
25
- val isOnCheckoutReceivedAdditionalInfo: Boolean? = null,
26
- @SerialName("onHUCTokenizeStart")
27
- val isOnHUCTokenizeStartsImplemented: Boolean? = null,
28
- @SerialName("onHUCPrepareStart")
29
- val isOnHUCPrepareStartImplemented: Boolean? = null,
30
- @SerialName("onHUCAvailablePaymentMethodsLoaded")
31
- val isOnHUCAvailablePaymentMethodsLoadedImplemented: Boolean? = null,
32
- @SerialName("onHUCPaymentMethodShow")
33
- val isOnHUCPaymentMethodShowImplemented: Boolean? = null,
20
+ @SerialName("onCheckoutResume")
21
+ val isOnCheckoutResumeImplemented: Boolean? = null,
22
+ @SerialName("onCheckoutPending")
23
+ val isOnCheckoutPendingImplemented: Boolean? = null,
24
+ @SerialName("onCheckoutAdditionalInfo")
25
+ val isOnCheckoutAdditionalInfoImplemented: Boolean? = null,
26
+ @SerialName("onTokenizationStart")
27
+ val isOnTokenizationStartImplemented: Boolean? = null,
28
+ @SerialName("onPreparationStart")
29
+ val isOnPreparationStartImplemented: Boolean? = null,
30
+ @SerialName("onAvailablePaymentMethodsLoad")
31
+ val isOnAvailablePaymentMethodsLoadImplemented: Boolean? = null,
32
+ @SerialName("onPaymentMethodShow")
33
+ val isOnPaymentMethodShowImplemented: Boolean? = null,
34
34
  )
@@ -17,12 +17,12 @@ data class PrimerImplementedRNCallbacks(
17
17
  val isOnErrorImplemented: Boolean? = null,
18
18
  @SerialName("onDismiss")
19
19
  val isOnDismissImplemented: Boolean? = null,
20
- @SerialName("onTokenizeSuccess")
20
+ @SerialName("onTokenizationSuccess")
21
21
  val isOnTokenizeSuccessImplemented: Boolean? = null,
22
- @SerialName("onResumeSuccess")
23
- val isOnResumeSuccessImplemented: Boolean? = null,
24
- @SerialName("onResumePending")
25
- val isOnResumePendingImplemented: Boolean? = null,
26
- @SerialName("onCheckoutReceivedAdditionalInfo")
27
- val isOnCheckoutReceivedAdditionalInfo: Boolean? = null
22
+ @SerialName("onCheckoutResume")
23
+ val isOnCheckoutResumeImplemented: Boolean? = null,
24
+ @SerialName("onCheckoutPending")
25
+ val isOnCheckoutPendingImplemented: Boolean? = null,
26
+ @SerialName("onCheckoutAdditionalInfo")
27
+ val isOnCheckoutAdditionalInfoImplemented: Boolean? = null,
28
28
  )
package/ios/Podfile.lock CHANGED
@@ -1,3 +1,3 @@
1
1
  PODFILE CHECKSUM: 0984f720d2439f86374726bfdebe32d895fdcf46
2
2
 
3
- COCOAPODS: 1.11.2
3
+ COCOAPODS: 1.11.3