@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
package/android/.project CHANGED
@@ -16,12 +16,12 @@
16
16
  </natures>
17
17
  <filteredResources>
18
18
  <filter>
19
- <id>1659508366811</id>
19
+ <id>1666872274961</id>
20
20
  <name></name>
21
21
  <type>30</type>
22
22
  <matcher>
23
23
  <id>org.eclipse.core.resources.regexFilterMatcher</id>
24
- <arguments>node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
24
+ <arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
25
25
  </matcher>
26
26
  </filter>
27
27
  </filteredResources>
@@ -4,8 +4,8 @@ buildscript {
4
4
 
5
5
  repositories {
6
6
  google()
7
+ mavenCentral()
7
8
  mavenLocal()
8
- jcenter()
9
9
  }
10
10
 
11
11
  dependencies {
@@ -61,7 +61,6 @@ android {
61
61
  repositories {
62
62
  mavenLocal()
63
63
  mavenCentral()
64
- jcenter()
65
64
  google()
66
65
 
67
66
  def found = false
@@ -137,5 +136,5 @@ dependencies {
137
136
  api 'com.facebook.react:react-native:+'
138
137
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
139
138
  implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.3"
140
- implementation 'io.primer:android:2.16.4'
139
+ implementation 'io.primer:android:2.17.0-RC2'
141
140
  }
@@ -1,4 +1,4 @@
1
- ReactNative_kotlinVersion=1.6.21
1
+ ReactNative_kotlinVersion=1.7.10
2
2
  ReactNative_compileSdkVersion=31
3
3
  ReactNative_buildToolsVersion=29.0.2
4
4
  ReactNative_targetSdkVersion=31
@@ -1,22 +1,7 @@
1
1
  package com.primerioreactnative
2
2
 
3
- import android.content.res.ColorStateList
4
- import android.graphics.Color
5
- import android.graphics.drawable.ColorDrawable
6
- import android.graphics.drawable.GradientDrawable
7
- import android.view.ViewGroup
8
- import android.widget.EditText
9
- import android.widget.LinearLayout
10
- import android.widget.TextView
11
- import com.facebook.drawee.backends.pipeline.Fresco
12
- import com.facebook.react.bridge.ReactApplicationContext
13
3
  import com.facebook.react.uimanager.SimpleViewManager
14
4
  import com.facebook.react.uimanager.ThemedReactContext
15
- import com.facebook.react.uimanager.ViewProps
16
- import com.facebook.react.uimanager.annotations.ReactProp
17
- import com.facebook.react.views.image.ReactImageView
18
- import io.primer.android.components.manager.PrimerCardManager
19
- import io.primer.android.components.manager.PrimerUniversalCheckoutCardManagerInterface
20
5
  import io.primer.android.components.ui.widgets.*
21
6
 
22
7
  val listOfTextInputs = mutableListOf<PrimerEditText>()
@@ -8,14 +8,13 @@ import com.primerioreactnative.utils.PrimerImplementedRNCallbacks
8
8
  import com.primerioreactnative.utils.convertJsonToMap
9
9
  import com.primerioreactnative.utils.errorTo
10
10
  import io.primer.android.Primer
11
- import io.primer.android.PrimerSessionIntent
12
11
  import io.primer.android.data.settings.PrimerSettings
13
12
  import kotlinx.serialization.decodeFromString
14
13
  import kotlinx.serialization.encodeToString
15
14
  import kotlinx.serialization.json.Json
16
15
  import org.json.JSONObject
17
16
 
18
- class PrimerRN(private val reactContext: ReactApplicationContext, private val json: Json) :
17
+ class PrimerRN(reactContext: ReactApplicationContext, private val json: Json) :
19
18
  ReactContextBaseJavaModule(reactContext) {
20
19
  private var mListener = PrimerRNEventListener()
21
20
 
@@ -24,6 +23,7 @@ class PrimerRN(private val reactContext: ReactApplicationContext, private val js
24
23
  mListener.sendError = { paramsJson -> onError(paramsJson) }
25
24
  mListener.sendErrorWithCheckoutData =
26
25
  { paramsJson, checkoutData -> onError(paramsJson, checkoutData) }
26
+ mListener.onDismissedEvent = { Primer.instance.dismiss(true) }
27
27
  }
28
28
 
29
29
  override fun getName(): String = "NativePrimer"
@@ -76,41 +76,14 @@ class PrimerRN(private val reactContext: ReactApplicationContext, private val js
76
76
  }
77
77
 
78
78
  @ReactMethod
79
- fun showPaymentMethod(
80
- paymentMethodTypeStr: String,
81
- intentStr: String,
82
- clientToken: String,
83
- promise: Promise
84
- ) {
85
- val intent: PrimerSessionIntent
86
- try {
87
- intent = PrimerSessionIntent.valueOf(intentStr.uppercase())
88
- } catch (e: Exception) {
89
- val exception = ErrorTypeRN.NativeBridgeFailed errorTo "Intent $intentStr is not valid."
90
- onError(exception)
91
- promise.reject(exception.errorId, exception.description, e)
92
- return
93
- }
94
-
95
- try {
96
- Primer.instance.showPaymentMethod(
97
- reactApplicationContext.applicationContext,
98
- clientToken,
99
- paymentMethodTypeStr,
100
- intent
101
- )
102
- promise.resolve(null)
103
- } catch (e: Exception) {
104
- val exception = ErrorTypeRN.NativeBridgeFailed errorTo
105
- "Primer SDK failed: ${e.message}"
106
- onError(exception)
107
- promise.reject(exception.errorId, exception.description, e)
108
- }
79
+ fun dismiss(promise: Promise) {
80
+ Primer.instance.dismiss(true)
81
+ promise.resolve(null)
109
82
  }
110
83
 
111
84
  @ReactMethod
112
- fun dismiss(promise: Promise) {
113
- Primer.instance.dismiss()
85
+ fun cleanUp(promise: Promise) {
86
+ Primer.instance.dismiss(true)
114
87
  promise.resolve(null)
115
88
  }
116
89
 
@@ -192,6 +165,12 @@ class PrimerRN(private val reactContext: ReactApplicationContext, private val js
192
165
  }
193
166
  }
194
167
 
168
+ @ReactMethod
169
+ fun addListener(eventName: String?) = Unit
170
+
171
+ @ReactMethod
172
+ fun removeListeners(count: Int?) = Unit
173
+
195
174
  private fun startSdk(settings: PrimerSettings) {
196
175
  Primer.instance.configure(settings, mListener)
197
176
  }
@@ -37,6 +37,7 @@ class PrimerRNEventListener : PrimerCheckoutListener {
37
37
  var sendError: ((error: PrimerErrorRN) -> Unit)? = null
38
38
  var sendErrorWithCheckoutData: ((error: PrimerErrorRN, checkoutData: PrimerCheckoutDataRN?) -> Unit)? =
39
39
  null
40
+ var onDismissedEvent: (() -> Unit)? = null
40
41
 
41
42
  override fun onCheckoutCompleted(checkoutData: PrimerCheckoutData) {
42
43
  if (implementedRNCallbacks?.isOnCheckoutCompleteImplemented == true) {
@@ -91,7 +92,12 @@ class PrimerRNEventListener : PrimerCheckoutListener {
91
92
  if (implementedRNCallbacks?.isOnClientSessionUpdateImplemented == true) {
92
93
  sendEvent?.invoke(
93
94
  PrimerEvents.ON_CLIENT_SESSION_UPDATE.eventName,
94
- JSONObject(Json.encodeToString(clientSession.toPrimerClientSessionRN()))
95
+ JSONObject().apply {
96
+ put(
97
+ "clientSession",
98
+ JSONObject(Json.encodeToString(clientSession.toPrimerClientSessionRN()))
99
+ )
100
+ }
95
101
  )
96
102
  } else {
97
103
  super.onClientSessionUpdated(clientSession)
@@ -125,7 +131,7 @@ class PrimerRNEventListener : PrimerCheckoutListener {
125
131
  resumeToken: String,
126
132
  decisionHandler: PrimerResumeDecisionHandler
127
133
  ) {
128
- if (implementedRNCallbacks?.isOnResumeSuccessImplemented == true) {
134
+ if (implementedRNCallbacks?.isOnCheckoutResumeImplemented == true) {
129
135
  resumeSuccessDecisionHandler = { newClientToken, err ->
130
136
  when {
131
137
  err != null -> decisionHandler.handleFailure(err.ifBlank { null })
@@ -134,10 +140,9 @@ class PrimerRNEventListener : PrimerCheckoutListener {
134
140
  }
135
141
  }
136
142
 
137
- val resumeToken = mapOf(Keys.RESUME_TOKEN to resumeToken)
138
143
  sendEvent?.invoke(
139
144
  PrimerEvents.ON_RESUME_SUCCESS.eventName,
140
- JSONObject(Json.encodeToString(resumeToken))
145
+ JSONObject(Json.encodeToString(mapOf(Keys.RESUME_TOKEN to resumeToken)))
141
146
  )
142
147
  } else {
143
148
  sendError?.invoke(
@@ -147,8 +152,8 @@ class PrimerRNEventListener : PrimerCheckoutListener {
147
152
  }
148
153
  }
149
154
 
150
- override fun onResumePending(additionalInfo: PrimerCheckoutAdditionalInfo?) {
151
- if (implementedRNCallbacks?.isOnResumePendingImplemented == true) {
155
+ override fun onResumePending(additionalInfo: PrimerCheckoutAdditionalInfo) {
156
+ if (implementedRNCallbacks?.isOnCheckoutPendingImplemented == true) {
152
157
  if (additionalInfo is MultibancoCheckoutAdditionalInfo) {
153
158
  sendEvent?.invoke(
154
159
  PrimerEvents.ON_RESUME_PENDING.eventName,
@@ -166,7 +171,7 @@ class PrimerRNEventListener : PrimerCheckoutListener {
166
171
  }
167
172
 
168
173
  override fun onAdditionalInfoReceived(additionalInfo: PrimerCheckoutAdditionalInfo) {
169
- if (implementedRNCallbacks?.isOnCheckoutReceivedAdditionalInfo == true) {
174
+ if (implementedRNCallbacks?.isOnCheckoutAdditionalInfoImplemented == true) {
170
175
  if (additionalInfo is PromptPayCheckoutAdditionalInfo) {
171
176
  sendEvent?.invoke(
172
177
  PrimerEvents.ON_CHECKOUT_RECEIVED_ADDITIONAL_INFO.eventName,
@@ -190,6 +195,8 @@ class PrimerRNEventListener : PrimerCheckoutListener {
190
195
  null
191
196
  )
192
197
  }
198
+
199
+ onDismissedEvent?.invoke()
193
200
  removeCallbacksAndHandlers()
194
201
  }
195
202
 
@@ -206,6 +213,7 @@ class PrimerRNEventListener : PrimerCheckoutListener {
206
213
  PrimerErrorRN(
207
214
  error.errorId,
208
215
  error.description,
216
+ error.diagnosticsId,
209
217
  error.recoverySuggestion
210
218
  ), checkoutData?.toPrimerCheckoutDataRN()
211
219
  )
@@ -219,7 +227,14 @@ class PrimerRNEventListener : PrimerCheckoutListener {
219
227
  primerErrorDecisionHandler = { errorMessage: String? ->
220
228
  errorHandler?.showErrorMessage(errorMessage)
221
229
  }
222
- sendError?.invoke(PrimerErrorRN(error.errorId, error.description, error.recoverySuggestion))
230
+ sendError?.invoke(
231
+ PrimerErrorRN(
232
+ error.errorId,
233
+ error.description,
234
+ error.diagnosticsId,
235
+ error.recoverySuggestion
236
+ )
237
+ )
223
238
  } else {
224
239
  super.onFailed(error, errorHandler)
225
240
  }
@@ -1,21 +1,15 @@
1
1
  package com.primerioreactnative
2
2
 
3
3
  import android.util.Log
4
- import androidx.core.content.ContextCompat
5
4
  import com.facebook.react.bridge.*
6
5
  import com.facebook.react.modules.core.DeviceEventManagerModule
7
6
  import com.primerioreactnative.datamodels.*
8
- import com.primerioreactnative.huc.assets.AssetsManager
9
- import com.primerioreactnative.huc.assets.AssetsManager.drawableToBitmap
10
- import com.primerioreactnative.huc.assets.AssetsManager.getFile
11
- import com.primerioreactnative.huc.events.PrimerHeadlessUniversalCheckoutEvent
7
+ import com.primerioreactnative.components.events.PrimerHeadlessUniversalCheckoutEvent
12
8
  import com.primerioreactnative.utils.PrimerHeadlessUniversalCheckoutImplementedRNCallbacks
13
9
  import com.primerioreactnative.utils.convertJsonToMap
14
10
  import com.primerioreactnative.utils.errorTo
15
11
  import io.primer.android.ExperimentalPrimerApi
16
12
  import io.primer.android.components.PrimerHeadlessUniversalCheckout
17
- import io.primer.android.components.ui.assets.ImageType
18
- import io.primer.android.ui.CardNetwork
19
13
  import kotlinx.serialization.decodeFromString
20
14
  import kotlinx.serialization.encodeToString
21
15
  import kotlinx.serialization.json.Json
@@ -44,10 +38,9 @@ class PrimerRNHeadlessUniversalCheckout(
44
38
  fun startWithClientToken(
45
39
  clientToken: String,
46
40
  settingsStr: String?,
47
- errorCallback: Callback,
48
- successCallback: Callback
41
+ promise: Promise
49
42
  ) {
50
- listener.successCallback = successCallback
43
+ listener.successCallback = promise
51
44
  try {
52
45
  val settings =
53
46
  if (settingsStr.isNullOrBlank()) PrimerSettingsRN() else json.decodeFromString(
@@ -57,108 +50,22 @@ class PrimerRNHeadlessUniversalCheckout(
57
50
  reactContext,
58
51
  clientToken,
59
52
  settings.toPrimerSettings(),
53
+ listener,
60
54
  listener
61
55
  )
62
56
  } catch (e: Exception) {
63
- errorCallback.invoke(
64
- json.encodeToString(
65
- ErrorTypeRN.NativeBridgeFailed errorTo
66
- "failed to initialise PrimerHeadlessUniversalCheckout SDK, error: $e",
67
- )
57
+ promise.reject(
58
+ ErrorTypeRN.NativeBridgeFailed.errorId,
59
+ "failed to initialise PrimerHeadlessUniversalCheckout SDK, error: $e",
68
60
  )
69
61
  }
70
62
  }
71
63
 
72
64
  @ReactMethod
73
- fun showPaymentMethod(paymentMethodTypeStr: String, promise: Promise) {
74
- PrimerHeadlessUniversalCheckout.current.showPaymentMethod(
75
- reactContext,
76
- paymentMethodTypeStr
77
- )
78
- promise.resolve(null)
79
- }
80
-
81
- @ReactMethod
82
- fun disposePrimerHeadlessUniversalCheckout() {
65
+ fun cleanUp(promise: Promise) {
83
66
  PrimerHeadlessUniversalCheckout.current.cleanup()
84
67
  listener.removeCallbacksAndHandlers()
85
- }
86
-
87
- @ReactMethod
88
- fun getAssetForPaymentMethodType(
89
- paymentMethodType: String,
90
- assetType: String,
91
- errorCallback: Callback,
92
- successCallback: Callback
93
- ) {
94
-
95
- val type = ImageType.values().find { it.name.equals(assetType, ignoreCase = true) }
96
- when {
97
- type == null -> {
98
- errorCallback.invoke(
99
- json.encodeToString(
100
- ErrorTypeRN.AssetMismatch errorTo
101
- "You have provided assetType=$assetType, but variable assetType can be 'LOGO' or 'ICON'."
102
- )
103
- )
104
- }
105
- else -> {
106
- PrimerHeadlessUniversalCheckout.getAsset(paymentMethodType, type)?.let { resourceId ->
107
- val file = getFile(reactContext, paymentMethodType)
108
- AssetsManager.saveBitmapToFile(
109
- file,
110
- drawableToBitmap(ContextCompat.getDrawable(reactContext, resourceId)!!),
111
- )
112
- successCallback.invoke("file://${file.absolutePath}")
113
- } ?: run {
114
- errorCallback.invoke(
115
- json.encodeToString(
116
- ErrorTypeRN.AssetMissing errorTo
117
- "Failed to find $assetType for $paymentMethodType"
118
- )
119
- )
120
- }
121
- }
122
- }
123
- }
124
-
125
- @ReactMethod
126
- fun getAssetForCardNetwork(
127
- cardNetworkStr: String,
128
- assetType: String,
129
- errorCallback: Callback,
130
- successCallback: Callback
131
- ) {
132
- val cardNetwork = CardNetwork.Type.values().find { it.name.equals(cardNetworkStr, ignoreCase = true) }
133
- val type = ImageType.values().find { it.name.equals(assetType, ignoreCase = true) }
134
- when {
135
- cardNetwork == null -> {
136
- errorCallback.invoke(
137
- json.encodeToString(
138
- ErrorTypeRN.InvalidCardNetwork errorTo
139
- "Card network for $cardNetworkStr does not exist, make sure you don't have any typos."
140
- )
141
- )
142
- }
143
- type == null -> {
144
- errorCallback.invoke(
145
- json.encodeToString(
146
- ErrorTypeRN.AssetMismatch errorTo
147
- "You have provided assetType=$assetType, but variable assetType can be 'LOGO' or 'ICON'."
148
- )
149
- )
150
- }
151
- else -> {
152
- PrimerHeadlessUniversalCheckout.getAsset(cardNetwork).let { resourceId ->
153
- val file = getFile(reactContext, cardNetworkStr)
154
- AssetsManager.saveBitmapToFile(
155
- file,
156
- drawableToBitmap(ContextCompat.getDrawable(reactContext, resourceId)!!),
157
- )
158
- successCallback.invoke("file://${file.absolutePath}")
159
- }
160
- }
161
- }
68
+ promise.resolve(null)
162
69
  }
163
70
 
164
71
  // region tokenization handlers
@@ -167,16 +74,6 @@ class PrimerRNHeadlessUniversalCheckout(
167
74
  listener.handleTokenizationNewClientToken(newClientToken)
168
75
  promise.resolve(null)
169
76
  }
170
-
171
- @ReactMethod
172
- fun handleTokenizationSuccess(promise: Promise) {
173
- listener.handleTokenizationSuccess(promise)
174
- }
175
-
176
- @ReactMethod
177
- fun handleTokenizationFailure(errorMessage: String?, promise: Promise) {
178
- listener.handleTokenizationFailure(errorMessage.orEmpty(), promise)
179
- }
180
77
  // endregion
181
78
 
182
79
  // region resume handlers
@@ -185,17 +82,14 @@ class PrimerRNHeadlessUniversalCheckout(
185
82
  listener.handleResumeNewClientToken(newClientToken)
186
83
  promise.resolve(null)
187
84
  }
85
+ // endregion
188
86
 
87
+ // region complete handlers
189
88
  @ReactMethod
190
- fun handleResumeSuccess(promise: Promise) {
191
- listener.handleResumeSuccess(promise)
192
- }
193
-
194
- @ReactMethod
195
- fun handleResumeFailure(errorMessage: String?, promise: Promise) {
196
- listener.handleResumeFailure(errorMessage.orEmpty(), promise)
89
+ fun handleCompleteFlow(promise: Promise) {
90
+ promise.resolve(null)
197
91
  }
198
- // endregion
92
+ // endregion complete handlers
199
93
 
200
94
  // region payment handlers
201
95
  @ReactMethod
@@ -229,6 +123,12 @@ class PrimerRNHeadlessUniversalCheckout(
229
123
  }
230
124
  }
231
125
 
126
+ @ReactMethod
127
+ fun addListener(eventName: String?) = Unit
128
+
129
+ @ReactMethod
130
+ fun removeListeners(count: Int?) = Unit
131
+
232
132
  private fun onError(exception: PrimerErrorRN, checkoutDataRN: PrimerCheckoutDataRN? = null) {
233
133
  val params = Arguments.createMap()
234
134
  val errorJson = JSONObject(Json.encodeToString(exception))