@primer-io/react-native 2.16.7 → 2.17.0-rc.10

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 +15 -2
  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 +106 -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 +13 -9
  30. package/android/src/main/java/com/primerioreactnative/extensions/PrimerPaymentMethodOptionsRN.kt +3 -3
  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 +94 -0
  42. package/ios/Sources/DataModels/RNTNativeError.swift +22 -0
  43. package/ios/Sources/DataModels/RNTPrimerPaymentMethodAsset.swift +67 -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 +86 -0
  57. package/ios/{RNTPrimer.swift → Sources/RNTPrimer.swift} +37 -28
  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 +24 -23
  71. package/lib/commonjs/Primer.js.map +1 -1
  72. package/lib/commonjs/PrimerInput.js.map +1 -1
  73. package/lib/commonjs/RNPrimer.js +4 -4
  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 +24 -23
  120. package/lib/module/Primer.js.map +1 -1
  121. package/lib/module/PrimerInput.js.map +1 -1
  122. package/lib/module/RNPrimer.js +4 -4
  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 +4 -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 +15 -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 +3 -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 +28 -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 +32 -31
  231. package/src/RNPrimer.ts +4 -9
  232. package/src/index.tsx +43 -29
  233. package/src/models/PrimerAsset.ts +14 -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 +2 -28
  240. package/src/models/PrimerPaymentMethodManagerCategory.ts +5 -0
  241. package/src/models/PrimerRawData.ts +6 -10
  242. package/src/models/PrimerSettings.ts +42 -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
@@ -1,11 +1,11 @@
1
1
  import Foundation
2
2
  import PrimerSDK
3
3
 
4
- extension PrimerBancontactCardRedirectData {
4
+ extension PrimerBancontactCardData {
5
5
 
6
- convenience init?(cardRedirectDataStr: String) {
6
+ convenience init?(bankcontactCardDataStr: String) {
7
7
  do {
8
- guard let data = cardRedirectDataStr.data(using: .utf8) else {
8
+ guard let data = bankcontactCardDataStr.data(using: .utf8) else {
9
9
  return nil
10
10
  }
11
11
 
@@ -16,14 +16,12 @@ extension PrimerBancontactCardRedirectData {
16
16
  }
17
17
 
18
18
  if let cardNumber = dict["cardNumber"],
19
- let expiryMonth = dict["expiryMonth"],
20
- let expiryYear = dict["expiryYear"],
19
+ let expiryDate = dict["expiryDate"],
21
20
  let cardholderName = dict["cardholderName"]
22
21
  {
23
22
  self.init(
24
23
  cardNumber: cardNumber,
25
- expiryMonth: expiryMonth,
26
- expiryYear: expiryYear,
24
+ expiryDate: expiryDate,
27
25
  cardholderName: cardholderName)
28
26
  } else {
29
27
  return nil
@@ -33,5 +31,4 @@ extension PrimerBancontactCardRedirectData {
33
31
  return nil
34
32
  }
35
33
  }
36
-
37
34
  }
@@ -24,14 +24,12 @@ extension PrimerCardData {
24
24
 
25
25
  if let cardNumber = dict["cardNumber"],
26
26
  let cvv = dict["cvv"],
27
- let expiryMonth = dict["expiryMonth"],
28
- let expiryYear = dict["expiryYear"]
27
+ let expiryDate = dict["expiryDate"]
29
28
  {
30
29
  let cardholderName = dict["cardholderName"]
31
30
  self.init(
32
31
  cardNumber: cardNumber,
33
- expiryMonth: expiryMonth,
34
- expiryYear: expiryYear,
32
+ expiryDate: expiryDate,
35
33
  cvv: cvv,
36
34
  cardholderName: cardholderName)
37
35
  } else {
@@ -42,5 +40,4 @@ extension PrimerCardData {
42
40
  return nil
43
41
  }
44
42
  }
45
-
46
43
  }
@@ -0,0 +1,20 @@
1
+ //
2
+ // PrimerHeadlessUniversalCheckout_PaymentMethod.swift
3
+ // primer-io-react-native
4
+ //
5
+ // Created by Evangelos on 7/10/22.
6
+ //
7
+
8
+ import Foundation
9
+ import PrimerSDK
10
+
11
+ extension PrimerHeadlessUniversalCheckout.PaymentMethod {
12
+
13
+ func toJsonObject() -> [String: Any] {
14
+ return [
15
+ "paymentMethodType": paymentMethodType,
16
+ "supportedPrimerSessionIntents": self.supportedPrimerSessionIntents.compactMap({ $0.rawValue }),
17
+ "paymentMethodManagerCategories": self.paymentMethodManagerCategories.compactMap({ $0.rawValue }).filter({ $0 != "CARD_COMPONENTS" })
18
+ ]
19
+ }
20
+ }
@@ -8,11 +8,11 @@
8
8
  import Foundation
9
9
  import PrimerSDK
10
10
 
11
- extension PrimerRawRetailerData {
11
+ extension PrimerRetailerData {
12
12
 
13
- convenience init?(primerRawRetailerDataStr: String) {
13
+ convenience init?(primerRetailerDataStr: String) {
14
14
  do {
15
- guard let data = primerRawRetailerDataStr.data(using: .utf8) else {
15
+ guard let data = primerRetailerDataStr.data(using: .utf8) else {
16
16
  return nil
17
17
  }
18
18
 
@@ -34,5 +34,4 @@ extension PrimerRawRetailerData {
34
34
  return nil
35
35
  }
36
36
  }
37
-
38
37
  }
@@ -0,0 +1,94 @@
1
+ import PrimerSDK
2
+
3
+ extension PrimerSettings {
4
+
5
+ convenience init(settingsStr: String?) throws {
6
+ if settingsStr == nil {
7
+ self.init()
8
+ } else {
9
+ guard let settingsData = settingsStr!.data(using: .utf8) else {
10
+ let err = RNTNativeError(errorId: "native-ios", errorDescription: "The value of the 'settings' object is invalid.", recoverySuggestion: "Provide a valid 'settings' object")
11
+ throw err
12
+ }
13
+
14
+ let settingsJson = try JSONSerialization.jsonObject(with: settingsData)
15
+
16
+ guard let settingsJson = settingsJson as? [String: Any] else {
17
+ let err = RNTNativeError(errorId: "native-ios", errorDescription: "The 'settings' object is not a valid JSON", recoverySuggestion: "Provide a valid 'settings' object")
18
+ throw err
19
+ }
20
+
21
+ var paymentHandling: PrimerPaymentHandling = .auto
22
+ if let rnPaymentHandling = settingsJson["paymentHandling"] as? String,
23
+ rnPaymentHandling == "MANUAL" {
24
+ paymentHandling = .manual
25
+ }
26
+
27
+ let rnLocaleDataLanguageCode = (settingsJson["localeData"] as? [String: Any])?["languageCode"] as? String
28
+ let rnLocaleDataLocaleCode = (settingsJson["localeData"] as? [String: Any])?["localeCode"] as? String
29
+ let localeData = PrimerLocaleData(
30
+ languageCode: rnLocaleDataLanguageCode,
31
+ regionCode: rnLocaleDataLocaleCode)
32
+
33
+ let rnUrlScheme = ((settingsJson["paymentMethodOptions"] as? [String: Any])?["iOS"] as? [String: Any])?["urlScheme"] as? String
34
+
35
+ var applePayOptions: PrimerApplePayOptions?
36
+ if let rnApplePayOptions = ((settingsJson["paymentMethodOptions"] as? [String: Any])?["applePayOptions"] as? [String: Any]),
37
+ let rnApplePayMerchantIdentifier = rnApplePayOptions["merchantIdentifier"] as? String,
38
+ let rnApplePayMerchantName = rnApplePayOptions["merchantName"] as? String
39
+ {
40
+ let rnApplePayIsCaptureBillingAddressEnabled = (rnApplePayOptions["isCaptureBillingAddressEnabled"] as? Bool) ?? false
41
+
42
+ applePayOptions = PrimerApplePayOptions(
43
+ merchantIdentifier: rnApplePayMerchantIdentifier,
44
+ merchantName: rnApplePayMerchantName,
45
+ isCaptureBillingAddressEnabled: rnApplePayIsCaptureBillingAddressEnabled )
46
+ }
47
+
48
+ var klarnaOptions: PrimerKlarnaOptions?
49
+ if let rnKlarnaRecurringPaymentDescription = ((settingsJson["paymentMethodOptions"] as? [String: Any])?["klarnaOptions"] as? [String: Any])?["recurringPaymentDescription"] as? String {
50
+ klarnaOptions = PrimerKlarnaOptions(recurringPaymentDescription: rnKlarnaRecurringPaymentDescription)
51
+ }
52
+
53
+ var uiOptions: PrimerUIOptions?
54
+ if let rnUIOptions = settingsJson["uiOptions"] as? [String: Any] {
55
+
56
+ var theme: PrimerTheme?
57
+ if let rnTheme = rnUIOptions["theme"] as? [String: Any] {
58
+ let rnThemeData = (try JSONSerialization.data(withJSONObject: rnTheme))
59
+ let rnTheme = try JSONDecoder().decode(PrimerThemeRN.self, from: rnThemeData)
60
+ theme = rnTheme.asPrimerTheme()
61
+ }
62
+
63
+ uiOptions = PrimerUIOptions(
64
+ isInitScreenEnabled: rnUIOptions["isInitScreenEnabled"] as? Bool,
65
+ isSuccessScreenEnabled: rnUIOptions["isSuccessScreenEnabled"] as? Bool,
66
+ isErrorScreenEnabled: rnUIOptions["isErrorScreenEnabled"] as? Bool,
67
+ theme: theme)
68
+ }
69
+
70
+ var debugOptions: PrimerDebugOptions?
71
+ if let rnIs3DSSanityCheckEnabled = (settingsJson["debugOptions"] as? [String: Any])?["is3DSSanityCheckEnabled"] as? Bool {
72
+ debugOptions = PrimerDebugOptions(is3DSSanityCheckEnabled: rnIs3DSSanityCheckEnabled)
73
+ }
74
+
75
+ var threeDsOptions: PrimerThreeDsOptions?
76
+ if let rnThreeDsAppRequestorUrlStr = (((settingsJson["paymentMethodOptions"] as? [String: Any])?["threeDsOptions"] as? [String: Any])?["iOS"] as? [String: Any])?["threeDsAppRequestorUrl"] as? String {
77
+ threeDsOptions = PrimerThreeDsOptions(threeDsAppRequestorUrl: rnThreeDsAppRequestorUrlStr)
78
+ }
79
+
80
+ let paymentMethodOptions = PrimerPaymentMethodOptions(
81
+ urlScheme: rnUrlScheme,
82
+ applePayOptions: applePayOptions,
83
+ klarnaOptions: klarnaOptions,
84
+ threeDsOptions: threeDsOptions)
85
+
86
+ self.init(
87
+ paymentHandling: paymentHandling,
88
+ localeData: localeData,
89
+ paymentMethodOptions: paymentMethodOptions,
90
+ uiOptions: uiOptions,
91
+ debugOptions: debugOptions)
92
+ }
93
+ }
94
+ }
@@ -0,0 +1,22 @@
1
+
2
+ import Foundation
3
+
4
+ struct RNTNativeError: CustomNSError, LocalizedError, Codable {
5
+
6
+ let errorId: String
7
+ let errorDescription: String?
8
+ let recoverySuggestion: String?
9
+
10
+ var rnError: [String: String] {
11
+ var json: [String: String] = [
12
+ "errorId": errorId,
13
+ "description": errorDescription ?? "Something went wrong"
14
+ ]
15
+
16
+ if let recoverySuggestion = recoverySuggestion {
17
+ json["recoverySuggestion"] = recoverySuggestion
18
+ }
19
+
20
+ return json
21
+ }
22
+ }
@@ -0,0 +1,67 @@
1
+ //
2
+ // RNTPrimerPaymentMethodAsset.swift
3
+ // primer-io-react-native
4
+ //
5
+ // Created by Evangelos on 6/10/22.
6
+ //
7
+
8
+ import Foundation
9
+ import PrimerSDK
10
+
11
+ struct RNTPrimerPaymentMethodAsset: Codable {
12
+
13
+ let paymentMethodType: String
14
+ let paymentMethodName: String
15
+ let paymentMethodLogo: RNTPrimerPaymentMethodLogo
16
+ let paymentMethodBackgroundColor: RNTPrimerPaymentMethodBackgroundColor
17
+
18
+ init(primerPaymentMethodAsset: PrimerPaymentMethodAsset) {
19
+ self.paymentMethodType = primerPaymentMethodAsset.paymentMethodType
20
+ self.paymentMethodName = primerPaymentMethodAsset.paymentMethodName
21
+ self.paymentMethodLogo = RNTPrimerPaymentMethodLogo(
22
+ paymentMethodType: primerPaymentMethodAsset.paymentMethodType,
23
+ primerPaymentMethodLogo: primerPaymentMethodAsset.paymentMethodLogo)
24
+ self.paymentMethodBackgroundColor = RNTPrimerPaymentMethodBackgroundColor(
25
+ primerPaymentMethodBackgroundColor: primerPaymentMethodAsset.paymentMethodBackgroundColor)
26
+ }
27
+ }
28
+
29
+ struct RNTPrimerPaymentMethodLogo: Codable {
30
+
31
+ let colored: String?
32
+ let dark: String?
33
+ let light: String?
34
+
35
+ init(paymentMethodType: String, primerPaymentMethodLogo: PrimerPaymentMethodLogo) {
36
+ self.colored = (try? primerPaymentMethodLogo.colored?.store(withName: "\(paymentMethodType)-colored").absoluteString) ?? nil
37
+ self.dark = (try? primerPaymentMethodLogo.dark?.store(withName: "\(paymentMethodType)-dark").absoluteString) ?? nil
38
+ self.light = (try? primerPaymentMethodLogo.light?.store(withName: "\(paymentMethodType)-light").absoluteString) ?? nil
39
+ }
40
+ }
41
+
42
+ struct RNTPrimerPaymentMethodBackgroundColor: Codable {
43
+
44
+ let colored: String?
45
+ let dark: String?
46
+ let light: String?
47
+
48
+ init(primerPaymentMethodBackgroundColor: PrimerPaymentMethodBackgroundColor) {
49
+ if let bgColoredHex = primerPaymentMethodBackgroundColor.colored?.toHex() {
50
+ self.colored = "#\(bgColoredHex)"
51
+ } else {
52
+ self.colored = nil
53
+ }
54
+
55
+ if let darkColoredHex = primerPaymentMethodBackgroundColor.dark?.toHex() {
56
+ self.dark = "#\(darkColoredHex)"
57
+ } else {
58
+ self.dark = nil
59
+ }
60
+
61
+ if let lightColoredHex = primerPaymentMethodBackgroundColor.light?.toHex() {
62
+ self.light = "#\(lightColoredHex)"
63
+ } else {
64
+ self.light = nil
65
+ }
66
+ }
67
+ }
@@ -0,0 +1,19 @@
1
+ //
2
+ // NativeUIManager.m
3
+ // primer-io-react-native
4
+ //
5
+ // Created by Evangelos on 7/10/22.
6
+ //
7
+
8
+ #import <React/RCTBridgeModule.h>
9
+ #import <React/RCTEventEmitter.h>
10
+
11
+ @interface RCT_EXTERN_MODULE(RNTPrimerHeadlessUniversalPaymentMethodNativeUIManager, RCTEventEmitter)
12
+
13
+ // MARK: - API
14
+
15
+ RCT_EXTERN_METHOD(configure: (NSString *)paymentMethod resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
16
+
17
+ RCT_EXTERN_METHOD(showPaymentMethod:(NSString *)intentStr resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
18
+
19
+ @end
@@ -0,0 +1,63 @@
1
+ //
2
+ // NativeUIManager.swift
3
+ // primer-io-react-native
4
+ //
5
+ // Created by Evangelos on 6/10/22.
6
+ //
7
+
8
+ import Foundation
9
+ import PrimerSDK
10
+
11
+ @objc(RNTPrimerHeadlessUniversalPaymentMethodNativeUIManager)
12
+ class RNTPrimerHeadlessUniversalPaymentMethodNativeUIManager: RCTEventEmitter {
13
+
14
+ var paymentMethodNativeUIManager: PrimerSDK.PrimerHeadlessUniversalCheckout.NativeUIManager!
15
+
16
+ override func supportedEvents() -> [String]! {
17
+ return []
18
+ }
19
+
20
+ override class func requiresMainQueueSetup() -> Bool {
21
+ return true
22
+ }
23
+
24
+ @objc
25
+ func configure(
26
+ _ paymentMethod: String,
27
+ resolver: @escaping RCTPromiseResolveBlock,
28
+ rejecter: @escaping RCTPromiseRejectBlock
29
+ ) {
30
+ do {
31
+ self.paymentMethodNativeUIManager = try PrimerSDK.PrimerHeadlessUniversalCheckout.NativeUIManager(paymentMethodType: paymentMethod)
32
+ resolver(nil)
33
+ } catch {
34
+ rejecter(error.rnError["errorId"]!, error.rnError["description"], error)
35
+ }
36
+ }
37
+
38
+ @objc
39
+ func showPaymentMethod(_ intentStr: String, resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
40
+ do {
41
+ guard let paymentMethodNativeUIManager = paymentMethodNativeUIManager else {
42
+ let err = RNTNativeError(
43
+ errorId: "native-ios",
44
+ errorDescription: "The NativeUIManager has not been initialized.",
45
+ recoverySuggestion: "Initialize the NativeUIManager by calling the initialize function and providing a payment method type.")
46
+ throw err
47
+ }
48
+
49
+ guard let intent = PrimerSessionIntent(rawValue: intentStr) else {
50
+ let err = RNTNativeError(
51
+ errorId: "native-ios",
52
+ errorDescription: "Invalid value for 'intent'.",
53
+ recoverySuggestion: "'intent' can be 'CHECKOUT' or 'VAULT'.")
54
+ throw err
55
+ }
56
+
57
+ try paymentMethodNativeUIManager.showPaymentMethod(intent: intent)
58
+
59
+ } catch {
60
+ rejecter(error.rnError["errorId"]!, error.rnError["description"], error)
61
+ }
62
+ }
63
+ }
@@ -0,0 +1,23 @@
1
+ //
2
+ // RNTPrimerHeadlessUniversalCheckoutRawDataManager.m
3
+ // primer-io-react-native
4
+ //
5
+ // Created by Evangelos on 3/8/22.
6
+ //
7
+
8
+ #import <React/RCTBridgeModule.h>
9
+ #import <React/RCTEventEmitter.h>
10
+
11
+ @interface RCT_EXTERN_MODULE(RNTPrimerHeadlessUniversalCheckoutRawDataManager, RCTEventEmitter)
12
+
13
+ RCT_EXTERN_METHOD(configure:(NSString *)paymentMethodTypeStr resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
14
+
15
+ RCT_EXTERN_METHOD(listRequiredInputElementTypes:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
16
+
17
+ RCT_EXTERN_METHOD(setRawData:(NSString *)rawDataStr resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
18
+
19
+ RCT_EXTERN_METHOD(submit:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
20
+
21
+ RCT_EXTERN_METHOD(cleanUp:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
22
+
23
+ @end
@@ -13,7 +13,6 @@ enum PrimerHeadlessUniversalCheckoutRawDataManagerEvents: Int, CaseIterable {
13
13
 
14
14
  case onMetadataChange = 0
15
15
  case onValidation
16
- case onNativeError
17
16
 
18
17
  var stringValue: String {
19
18
  switch self {
@@ -21,13 +20,11 @@ enum PrimerHeadlessUniversalCheckoutRawDataManagerEvents: Int, CaseIterable {
21
20
  return "onMetadataChange"
22
21
  case .onValidation:
23
22
  return "onValidation"
24
- case .onNativeError:
25
- return "onNativeError"
26
23
  }
27
24
  }
28
25
  }
29
26
 
30
- @objc(PrimerHeadlessUniversalCheckoutRawDataManager)
27
+ @objc(RNTPrimerHeadlessUniversalCheckoutRawDataManager)
31
28
  class RNTPrimerHeadlessUniversalCheckoutRawDataManager: RCTEventEmitter {
32
29
 
33
30
  private var rawDataManager: PrimerHeadlessUniversalCheckout.RawDataManager!
@@ -44,32 +41,20 @@ class RNTPrimerHeadlessUniversalCheckoutRawDataManager: RCTEventEmitter {
44
41
  // MARK: - API
45
42
 
46
43
  @objc
47
- public func initialize(
44
+ public func configure(
48
45
  _ paymentMethodTypeStr: String,
49
- resolver: RCTPromiseResolveBlock,
50
- rejecter: RCTPromiseRejectBlock
46
+ resolver: @escaping RCTPromiseResolveBlock,
47
+ rejecter: @escaping RCTPromiseRejectBlock
51
48
  ) {
52
49
  self.paymentMethodType = paymentMethodTypeStr
53
50
 
54
51
  do {
55
- self.rawDataManager = try PrimerHeadlessUniversalCheckout.RawDataManager(paymentMethodType: self.paymentMethodType!)
56
- self.rawDataManager.delegate = self
57
- resolver(nil)
52
+ self.rawDataManager = try PrimerHeadlessUniversalCheckout.RawDataManager(paymentMethodType: self.paymentMethodType!, delegate: self)
58
53
  } catch {
59
54
  rejecter(error.rnError["errorId"]!, error.rnError["description"], error)
60
55
  }
61
- }
62
-
63
- @objc
64
- public func configure(_ resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
65
-
66
- guard let rawDataManager = rawDataManager else {
67
- let err = NSError(domain: "native-bridge", code: 1, userInfo: [NSLocalizedDescriptionKey: "The PrimerHeadlessUniversalCheckoutRawDataManager has not been initialized. Make sure you have called the PrimerHeadlessUniversalCheckoutRawDataManager.initialize function first."])
68
- rejecter(err.rnError["errorId"]!, err.rnError["description"], err)
69
- return
70
- }
71
56
 
72
- rawDataManager.configure { data, error in
57
+ self.rawDataManager!.configure { data, error in
73
58
  do {
74
59
  guard error == nil else {
75
60
  rejecter(error!.rnError["errorId"]!, error!.rnError["description"], error)
@@ -85,13 +70,15 @@ class RNTPrimerHeadlessUniversalCheckoutRawDataManager: RCTEventEmitter {
85
70
  }
86
71
 
87
72
  @objc
88
- public func listRequiredInputElementTypesForPaymentMethodType(
89
- _ paymentMethodTypeStr: String,
90
- resolver: RCTPromiseResolveBlock,
73
+ public func listRequiredInputElementTypes(
74
+ _ resolver: RCTPromiseResolveBlock,
91
75
  rejecter: RCTPromiseRejectBlock
92
76
  ) {
93
77
  guard let rawDataManager = rawDataManager else {
94
- let err = NSError(domain: "native-bridge", code: 1, userInfo: [NSLocalizedDescriptionKey: "The PrimerHeadlessUniversalCheckoutRawDataManager has not been initialized. Make sure you have called the PrimerHeadlessUniversalCheckoutRawDataManager.configure function first."])
78
+ let err = RNTNativeError(
79
+ errorId: "native-ios",
80
+ errorDescription: "The RawDataManager has not been initialized",
81
+ recoverySuggestion: "Make sure you have called initialized the `RawDataManager' first.")
95
82
  rejecter(err.rnError["errorId"]!, err.rnError["description"], err)
96
83
  return
97
84
  }
@@ -107,7 +94,10 @@ class RNTPrimerHeadlessUniversalCheckoutRawDataManager: RCTEventEmitter {
107
94
  rejecter: RCTPromiseRejectBlock
108
95
  ) {
109
96
  guard let rawDataManager = rawDataManager else {
110
- let err = NSError(domain: "native-bridge", code: 1, userInfo: [NSLocalizedDescriptionKey: "The PrimerHeadlessUniversalCheckoutRawDataManager has not been initialized. Make sure you have called the PrimerHeadlessUniversalCheckoutRawDataManager.configure function first."])
97
+ let err = RNTNativeError(
98
+ errorId: "native-ios",
99
+ errorDescription: "The RawDataManager has not been initialized",
100
+ recoverySuggestion: "Make sure you have called initialized the `RawDataManager' first.")
111
101
  rejecter(err.rnError["errorId"]!, err.rnError["description"], err)
112
102
  return
113
103
  }
@@ -124,19 +114,22 @@ class RNTPrimerHeadlessUniversalCheckoutRawDataManager: RCTEventEmitter {
124
114
  return
125
115
  }
126
116
 
127
- if let rawCardRedirectData = PrimerBancontactCardRedirectData(cardRedirectDataStr: rawDataStr) {
117
+ if let rawCardRedirectData = PrimerBancontactCardData(bankcontactCardDataStr: rawDataStr) {
128
118
  rawDataManager.rawData = rawCardRedirectData
129
119
  resolver(nil)
130
120
  return
131
121
  }
132
122
 
133
- if let rawRetailerData = PrimerRawRetailerData(primerRawRetailerDataStr: rawDataStr) {
123
+ if let rawRetailerData = PrimerRetailerData(primerRetailerDataStr: rawDataStr) {
134
124
  rawDataManager.rawData = rawRetailerData
135
125
  resolver(nil)
136
126
  return
137
127
  }
138
128
 
139
- let err = NSError(domain: "native-bridge", code: 1, userInfo: [NSLocalizedDescriptionKey: "Failed to decode RawData on iOS. Make sure you're providing a valid 'PrimerRawData' (or any inherited) object"])
129
+ let err = RNTNativeError(
130
+ errorId: "native-ios",
131
+ errorDescription: "Failed to decode RawData on iOS.",
132
+ recoverySuggestion: "Make sure you're providing a valid 'RawData' (or any inherited) object.")
140
133
  rejecter(err.rnError["errorId"]!, err.rnError["description"], err)
141
134
  }
142
135
 
@@ -146,7 +139,10 @@ class RNTPrimerHeadlessUniversalCheckoutRawDataManager: RCTEventEmitter {
146
139
  rejecter: RCTPromiseRejectBlock
147
140
  ) {
148
141
  guard let rawDataManager = rawDataManager else {
149
- let err = NSError(domain: "native-bridge", code: 1, userInfo: [NSLocalizedDescriptionKey: "The PrimerHeadlessUniversalCheckoutRawDataManager has not been initialized. Make sure you have called the PrimerHeadlessUniversalCheckoutRawDataManager.configure function first."])
142
+ let err = RNTNativeError(
143
+ errorId: "native-ios",
144
+ errorDescription: "The RawDataManager has not been initialized",
145
+ recoverySuggestion: "Make sure you have called initialized the `RawDataManager' first.")
150
146
  rejecter(err.rnError["errorId"]!, err.rnError["description"], err)
151
147
  return
152
148
  }
@@ -154,9 +150,18 @@ class RNTPrimerHeadlessUniversalCheckoutRawDataManager: RCTEventEmitter {
154
150
  rawDataManager.submit()
155
151
  resolver(nil)
156
152
  }
153
+
154
+ @objc
155
+ public func cleanUp(
156
+ _ resolver: RCTPromiseResolveBlock,
157
+ rejecter: RCTPromiseRejectBlock
158
+ ) {
159
+
160
+ }
161
+
157
162
  }
158
163
 
159
- extension RNTPrimerHeadlessUniversalCheckoutRawDataManager: PrimerRawDataManagerDelegate {
164
+ extension RNTPrimerHeadlessUniversalCheckoutRawDataManager: PrimerHeadlessUniversalCheckoutRawDataManagerDelegate {
160
165
 
161
166
  func primerRawDataManager(_ rawDataManager: PrimerHeadlessUniversalCheckout.RawDataManager, metadataDidChange metadata: [String : Any]?) {
162
167
  DispatchQueue.main.async {
@@ -0,0 +1,24 @@
1
+ //
2
+ // RNTAssetsManager.m
3
+ // primer-io-react-native
4
+ //
5
+ // Created by Evangelos on 6/10/22.
6
+ //
7
+
8
+ #import <React/RCTBridgeModule.h>
9
+ #import <React/RCTEventEmitter.h>
10
+
11
+ @interface RCT_EXTERN_MODULE(RNTPrimerHeadlessUniversalCheckoutAssetsManager, RCTEventEmitter)
12
+
13
+ RCT_EXTERN_METHOD(getCardNetworkImage:(NSString *)cardNetworkStr
14
+ resolver:(RCTPromiseResolveBlock)resolver
15
+ rejecter:(RCTPromiseRejectBlock)rejecter)
16
+
17
+ RCT_EXTERN_METHOD(getPaymentMethodAsset:(NSString *)paymentMethodType
18
+ resolver:(RCTPromiseResolveBlock)resolver
19
+ rejecter:(RCTPromiseRejectBlock)rejecter)
20
+
21
+ RCT_EXTERN_METHOD(getPaymentMethodAssets:(RCTPromiseResolveBlock)resolver
22
+ rejecter:(RCTPromiseRejectBlock)rejecter)
23
+
24
+ @end