@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
@@ -0,0 +1,166 @@
1
+ import type { RawData } from '@primer-io/react-native';
2
+ import { NativeEventEmitter, NativeModules, EmitterSubscription } from 'react-native';
3
+ import type { PrimerInitializationData } from 'src/models/PrimerInitializationData';
4
+ import { PrimerError } from '../../../models/PrimerError';
5
+ import type { PrimerInputElementType } from '../../../models/PrimerInputElementType';
6
+
7
+ const { RNTPrimerHeadlessUniversalCheckoutRawDataManager } = NativeModules;
8
+ const eventEmitter = new NativeEventEmitter(RNTPrimerHeadlessUniversalCheckoutRawDataManager);
9
+
10
+ type EventType =
11
+ | 'onMetadataChange'
12
+ | 'onValidation';
13
+
14
+ const eventTypes: EventType[] = [
15
+ 'onMetadataChange',
16
+ 'onValidation'
17
+ ];
18
+
19
+ export interface RawDataManagerProps {
20
+ paymentMethodType: string;
21
+ onMetadataChange?: (metadata: any) => void;
22
+ onValidation?: (isValid: boolean, errors: PrimerError[] | undefined) => void;
23
+ }
24
+
25
+ class PrimerHeadlessUniversalCheckoutRawDataManager {
26
+
27
+ options?: RawDataManagerProps
28
+
29
+ ///////////////////////////////////////////
30
+ // Init
31
+ ///////////////////////////////////////////
32
+ constructor() { }
33
+
34
+ ///////////////////////////////////////////
35
+ // API
36
+ ///////////////////////////////////////////
37
+
38
+ async configure(options: RawDataManagerProps): Promise<{ initializationData: PrimerInitializationData } | void> {
39
+ return new Promise(async (resolve, reject) => {
40
+ try {
41
+ this.options = options;
42
+ await this.configureListeners();
43
+ const data = await RNTPrimerHeadlessUniversalCheckoutRawDataManager.configure(options.paymentMethodType);
44
+ if (data) {
45
+ resolve(data);
46
+ } else {
47
+ resolve();
48
+ }
49
+ } catch (err) {
50
+ reject(err);
51
+ }
52
+ });
53
+ }
54
+
55
+ async configureListeners(): Promise<void> {
56
+ //@ts-ignore
57
+ return new Promise(async (resolve, reject) => {
58
+ if (this.options?.onMetadataChange) {
59
+ this.addListener("onMetadataChange", (data) => {
60
+ if (this.options?.onMetadataChange) {
61
+ this.options.onMetadataChange(data);
62
+ }
63
+ });
64
+ }
65
+
66
+ if (this.options?.onValidation) {
67
+ this.addListener("onValidation", (data) => {
68
+ if (this.options?.onValidation) {
69
+ this.options.onValidation(data.isValid, data.errors);
70
+ }
71
+ });
72
+ }
73
+
74
+ resolve();
75
+ });
76
+ }
77
+
78
+ async getRequiredInputElementTypes(): Promise<PrimerInputElementType[]> {
79
+ return new Promise(async (resolve, reject) => {
80
+ if (this.options?.paymentMethodType) {
81
+ try {
82
+ const data = await RNTPrimerHeadlessUniversalCheckoutRawDataManager.listRequiredInputElementTypes();
83
+ const inputElementTypes: PrimerInputElementType[] = data.inputElementTypes;
84
+ resolve(inputElementTypes);
85
+ } catch (err) {
86
+ reject(err);
87
+ }
88
+ } else {
89
+ const err = new PrimerError("manager-not-configured", "HeadlessUniversalCheckoutRawDataManager has not been configured", "Call HeadlessUniversalCheckoutRawDataManager.configure before calling this function.", undefined);
90
+ reject(err);
91
+ }
92
+ });
93
+ }
94
+
95
+ setRawData(rawData: RawData): Promise<void> {
96
+ return new Promise(async (resolve, reject) => {
97
+ if (this.options?.paymentMethodType) {
98
+ try {
99
+ await RNTPrimerHeadlessUniversalCheckoutRawDataManager.setRawData(JSON.stringify(rawData));
100
+ resolve();
101
+ } catch (err) {
102
+ reject(err);
103
+ }
104
+ } else {
105
+ const err = new PrimerError("manager-not-configured", "HeadlessUniversalCheckoutRawDataManager has not been configured", "Call HeadlessUniversalCheckoutRawDataManager.configure before calling this function.", undefined);
106
+ reject(err);
107
+ }
108
+ });
109
+ }
110
+
111
+ submit(): Promise<void> {
112
+ return new Promise(async (resolve, reject) => {
113
+ if (this.options?.paymentMethodType) {
114
+ try {
115
+ await RNTPrimerHeadlessUniversalCheckoutRawDataManager.submit();
116
+ resolve();
117
+ } catch (err) {
118
+ reject(err);
119
+ }
120
+ } else {
121
+ const err = new PrimerError("manager-not-configured", "HeadlessUniversalCheckoutRawDataManager has not been configured", "Call HeadlessUniversalCheckoutRawDataManager.configure before calling this function.", undefined);
122
+ reject(err);
123
+ }
124
+ });
125
+ }
126
+
127
+ cleanUp(): Promise<void> {
128
+ return new Promise(async (resolve, reject) => {
129
+ if (this.options?.paymentMethodType) {
130
+ try {
131
+ await RNTPrimerHeadlessUniversalCheckoutRawDataManager.cleanUp();
132
+ resolve();
133
+ } catch (err) {
134
+ reject(err);
135
+ }
136
+ } else {
137
+ const err = new PrimerError("manager-not-configured", "HeadlessUniversalCheckoutRawDataManager has not been configured", "Call HeadlessUniversalCheckoutRawDataManager.configure before calling this function.", undefined);
138
+ reject(err);
139
+ }
140
+ });
141
+ }
142
+
143
+
144
+
145
+ ///////////////////////////////////////////
146
+ // HELPERS
147
+ ///////////////////////////////////////////
148
+
149
+ async addListener(eventType: EventType, listener: (...args: any[]) => any): Promise<EmitterSubscription> {
150
+ return eventEmitter.addListener(eventType, listener);
151
+ }
152
+
153
+ removeListener(eventType: EventType, listener: (...args: any[]) => any): void {
154
+ return eventEmitter.removeListener(eventType, listener);
155
+ }
156
+
157
+ removeAllListenersForEvent(eventType: EventType) {
158
+ eventEmitter.removeAllListeners(eventType);
159
+ }
160
+
161
+ removeAllListeners() {
162
+ eventTypes.forEach((eventType) => this.removeAllListenersForEvent(eventType));
163
+ }
164
+ }
165
+
166
+ export default PrimerHeadlessUniversalCheckoutRawDataManager;
@@ -0,0 +1,333 @@
1
+ import RNPrimerHeadlessUniversalCheckout from './RNPrimerHeadlessUniversalCheckout';
2
+ import type { PrimerCheckoutData } from '../models/PrimerCheckoutData';
3
+ import type { PrimerCheckoutAdditionalInfo } from '../models/PrimerCheckoutAdditionalInfo';
4
+ import type { PrimerCheckoutPaymentMethodData } from '../models/PrimerCheckoutPaymentMethodData';
5
+ import type { PrimerSettings } from '../models/PrimerSettings';
6
+ import type { PrimerClientSession } from '../models/PrimerClientSession';
7
+ import { PrimerError } from '../models/PrimerError';
8
+ import type { PrimerPaymentMethodTokenData } from '../models/PrimerPaymentMethodTokenData';
9
+ import type { PrimerImplementedRNCallbacks } from 'src/models/PrimerImplementedRNCallbacks';
10
+ import type { IPrimerHeadlessUniversalCheckoutPaymentMethod } from '../models/PrimerHeadlessUniversalCheckoutPaymentMethod';
11
+ import type { PrimerHeadlessUniversalCheckoutResumeHandler, PrimerPaymentCreationHandler } from 'src/models/PrimerHandlers';
12
+
13
+ ///////////////////////////////////////////
14
+ // DECISION HANDLERS
15
+ ///////////////////////////////////////////
16
+
17
+ // Tokenization Handler
18
+
19
+ const tokenizationHandler: PrimerHeadlessUniversalCheckoutResumeHandler = {
20
+ continueWithNewClientToken: async (newClientToken: string) => {
21
+ try {
22
+ RNPrimerHeadlessUniversalCheckout.handleTokenizationNewClientToken(newClientToken);
23
+ } catch (err) {
24
+ console.error(err);
25
+ }
26
+ },
27
+
28
+ complete: () => {
29
+ RNPrimerHeadlessUniversalCheckout.handleCompleteFlow();
30
+ }
31
+ }
32
+
33
+ // Resume Handler
34
+
35
+ const resumeHandler: PrimerHeadlessUniversalCheckoutResumeHandler = {
36
+ continueWithNewClientToken: async (newClientToken: string) => {
37
+ try {
38
+ RNPrimerHeadlessUniversalCheckout.handleResumeWithNewClientToken(newClientToken);
39
+ } catch (err) {
40
+ console.error(err);
41
+ }
42
+ },
43
+
44
+ complete: () => {
45
+ RNPrimerHeadlessUniversalCheckout.handleCompleteFlow();
46
+ }
47
+ }
48
+
49
+ // Payment Creation Handler
50
+
51
+ const paymentCreationHandler: PrimerPaymentCreationHandler = {
52
+ abortPaymentCreation: async (errorMessage: string) => {
53
+ try {
54
+ RNPrimerHeadlessUniversalCheckout.handlePaymentCreationAbort(errorMessage);
55
+ } catch (err) {
56
+ console.error(err);
57
+ }
58
+ },
59
+
60
+ continuePaymentCreation: async () => {
61
+ try {
62
+ RNPrimerHeadlessUniversalCheckout.handlePaymentCreationContinue();
63
+ } catch (err) {
64
+ console.error(err);
65
+ }
66
+ }
67
+ }
68
+
69
+ export let primerSettings: PrimerSettings | undefined = undefined;
70
+
71
+ async function configureListeners(): Promise<void> {
72
+ return new Promise(async (resolve, reject) => {
73
+ try {
74
+ RNPrimerHeadlessUniversalCheckout.removeAllListeners();
75
+
76
+ let implementedRNCallbacks: PrimerImplementedRNCallbacks = {
77
+ onAvailablePaymentMethodsLoad: (primerSettings?.headlessUniversalCheckoutCallbacks?.onAvailablePaymentMethodsLoad !== undefined) || false,
78
+ onTokenizationStart: (primerSettings?.headlessUniversalCheckoutCallbacks?.onTokenizationStart !== undefined) || false,
79
+ onTokenizationSuccess: (primerSettings?.headlessUniversalCheckoutCallbacks?.onTokenizationSuccess !== undefined) || false,
80
+
81
+ onCheckoutResume: (primerSettings?.headlessUniversalCheckoutCallbacks?.onCheckoutResume !== undefined) || false,
82
+ onCheckoutPending: (primerSettings?.headlessUniversalCheckoutCallbacks?.onCheckoutPending !== undefined) || false,
83
+ onCheckoutAdditionalInfo: (primerSettings?.headlessUniversalCheckoutCallbacks?.onCheckoutAdditionalInfo !== undefined) || false,
84
+
85
+ onError: (primerSettings?.headlessUniversalCheckoutCallbacks?.onError !== undefined) || false,
86
+ onCheckoutComplete: (primerSettings?.headlessUniversalCheckoutCallbacks?.onCheckoutComplete !== undefined) || false,
87
+ onBeforeClientSessionUpdate: (primerSettings?.headlessUniversalCheckoutCallbacks?.onBeforeClientSessionUpdate !== undefined) || false,
88
+
89
+ onClientSessionUpdate: (primerSettings?.headlessUniversalCheckoutCallbacks?.onClientSessionUpdate !== undefined) || false,
90
+ onBeforePaymentCreate: (primerSettings?.headlessUniversalCheckoutCallbacks?.onBeforePaymentCreate !== undefined) || false,
91
+ onPreparationStart: (primerSettings?.headlessUniversalCheckoutCallbacks?.onPreparationStart !== undefined) || false,
92
+
93
+ onPaymentMethodShow: (primerSettings?.headlessUniversalCheckoutCallbacks?.onPaymentMethodShow !== undefined) || false,
94
+ onDismiss: false
95
+ };
96
+
97
+ await RNPrimerHeadlessUniversalCheckout.setImplementedRNCallbacks(implementedRNCallbacks);
98
+
99
+ if (implementedRNCallbacks.onAvailablePaymentMethodsLoad) {
100
+ RNPrimerHeadlessUniversalCheckout.addListener(
101
+ 'onAvailablePaymentMethodsLoad',
102
+ (data) => {
103
+ if (primerSettings?.headlessUniversalCheckoutCallbacks?.onAvailablePaymentMethodsLoad) {
104
+ const availablePaymentMethods: IPrimerHeadlessUniversalCheckoutPaymentMethod[] = data.availablePaymentMethods || [];
105
+ primerSettings.headlessUniversalCheckoutCallbacks.onAvailablePaymentMethodsLoad(availablePaymentMethods);
106
+ } else {
107
+ // Ignore!
108
+ }
109
+ }
110
+ );
111
+ }
112
+
113
+ if (implementedRNCallbacks.onPreparationStart) {
114
+ RNPrimerHeadlessUniversalCheckout.addListener(
115
+ 'onPreparationStart',
116
+ (data) => {
117
+ if (primerSettings?.headlessUniversalCheckoutCallbacks?.onPreparationStart) {
118
+ primerSettings.headlessUniversalCheckoutCallbacks.onPreparationStart(data.paymentMethodType);
119
+ } else {
120
+ // Ignore!
121
+ }
122
+ }
123
+ );
124
+ }
125
+
126
+ if (implementedRNCallbacks.onBeforeClientSessionUpdate) {
127
+ RNPrimerHeadlessUniversalCheckout.addListener(
128
+ 'onBeforeClientSessionUpdate',
129
+ () => {
130
+ if (primerSettings?.headlessUniversalCheckoutCallbacks?.onBeforeClientSessionUpdate) {
131
+ primerSettings.headlessUniversalCheckoutCallbacks.onBeforeClientSessionUpdate();
132
+ } else {
133
+ // Ignore!
134
+ }
135
+ }
136
+ );
137
+ }
138
+
139
+ if (implementedRNCallbacks.onClientSessionUpdate) {
140
+ RNPrimerHeadlessUniversalCheckout.addListener(
141
+ 'onClientSessionUpdate',
142
+ (data) => {
143
+ if (primerSettings?.headlessUniversalCheckoutCallbacks?.onClientSessionUpdate) {
144
+ const clientSession: PrimerClientSession = data.clientSession;
145
+ primerSettings.headlessUniversalCheckoutCallbacks.onClientSessionUpdate(clientSession);
146
+ } else {
147
+ // Ignore!
148
+ }
149
+ }
150
+ );
151
+ }
152
+
153
+ if (implementedRNCallbacks.onBeforePaymentCreate) {
154
+ RNPrimerHeadlessUniversalCheckout.addListener(
155
+ 'onBeforePaymentCreate',
156
+ (data) => {
157
+ if (primerSettings?.headlessUniversalCheckoutCallbacks?.onBeforePaymentCreate) {
158
+ const checkoutPaymentMethodData: PrimerCheckoutPaymentMethodData = data;
159
+ primerSettings.headlessUniversalCheckoutCallbacks.onBeforePaymentCreate(checkoutPaymentMethodData, paymentCreationHandler);
160
+ } else {
161
+ // Ignore!
162
+ }
163
+ }
164
+ );
165
+ }
166
+
167
+ if (implementedRNCallbacks.onTokenizationStart) {
168
+ RNPrimerHeadlessUniversalCheckout.addListener(
169
+ 'onTokenizationStart',
170
+ (data) => {
171
+ if (primerSettings?.headlessUniversalCheckoutCallbacks?.onTokenizationStart) {
172
+ primerSettings.headlessUniversalCheckoutCallbacks.onTokenizationStart(data.paymentMethodType);
173
+ } else {
174
+ // Ignore!
175
+ }
176
+ }
177
+ );
178
+ }
179
+
180
+ if (implementedRNCallbacks.onPaymentMethodShow) {
181
+ RNPrimerHeadlessUniversalCheckout.addListener(
182
+ 'onPaymentMethodShow',
183
+ (data) => {
184
+ if (primerSettings?.headlessUniversalCheckoutCallbacks?.onPaymentMethodShow) {
185
+ primerSettings.headlessUniversalCheckoutCallbacks.onPaymentMethodShow(data.paymentMethodType);
186
+ } else {
187
+ // Ignore!
188
+ }
189
+ }
190
+ );
191
+ }
192
+
193
+ if (implementedRNCallbacks.onTokenizationSuccess) {
194
+ RNPrimerHeadlessUniversalCheckout.addListener(
195
+ 'onTokenizationSuccess',
196
+ (data) => {
197
+ if (primerSettings?.headlessUniversalCheckoutCallbacks?.onTokenizationSuccess) {
198
+ const paymentMethodTokenData: PrimerPaymentMethodTokenData = data.paymentMethodTokenData;
199
+ primerSettings.headlessUniversalCheckoutCallbacks.onTokenizationSuccess(paymentMethodTokenData, tokenizationHandler);
200
+ } else {
201
+ // Ignore!
202
+ }
203
+ }
204
+ );
205
+ }
206
+
207
+ if (implementedRNCallbacks.onCheckoutResume) {
208
+ RNPrimerHeadlessUniversalCheckout.addListener(
209
+ 'onCheckoutResume',
210
+ (data) => {
211
+ if (primerSettings?.headlessUniversalCheckoutCallbacks?.onCheckoutResume) {
212
+ primerSettings.headlessUniversalCheckoutCallbacks.onCheckoutResume(data.resumeToken, resumeHandler);
213
+ } else {
214
+ // Ignore!
215
+ }
216
+ }
217
+ );
218
+ }
219
+
220
+ if (implementedRNCallbacks.onCheckoutPending) {
221
+ RNPrimerHeadlessUniversalCheckout.addListener(
222
+ 'onCheckoutPending',
223
+ (data) => {
224
+ if (primerSettings?.headlessUniversalCheckoutCallbacks?.onCheckoutPending) {
225
+ const checkoutAdditionalInfo: PrimerCheckoutAdditionalInfo = data;
226
+ primerSettings.headlessUniversalCheckoutCallbacks.onCheckoutPending(checkoutAdditionalInfo);
227
+ } else {
228
+ // Ignore!
229
+ }
230
+ }
231
+ );
232
+ }
233
+
234
+ if (implementedRNCallbacks.onCheckoutAdditionalInfo) {
235
+ RNPrimerHeadlessUniversalCheckout.addListener(
236
+ 'onCheckoutAdditionalInfo',
237
+ (data) => {
238
+ if (primerSettings?.headlessUniversalCheckoutCallbacks?.onCheckoutAdditionalInfo) {
239
+ const checkoutAdditionalInfo: PrimerCheckoutAdditionalInfo = data;
240
+ primerSettings.headlessUniversalCheckoutCallbacks.onCheckoutAdditionalInfo(checkoutAdditionalInfo);
241
+ } else {
242
+ // Ignore!
243
+ }
244
+ }
245
+ );
246
+ }
247
+
248
+ if (implementedRNCallbacks.onCheckoutComplete) {
249
+ RNPrimerHeadlessUniversalCheckout.addListener(
250
+ 'onCheckoutComplete',
251
+ (data) => {
252
+ if (primerSettings?.headlessUniversalCheckoutCallbacks?.onCheckoutComplete) {
253
+ const checkoutData: PrimerCheckoutData = data;
254
+ primerSettings.headlessUniversalCheckoutCallbacks.onCheckoutComplete(checkoutData);
255
+ } else {
256
+ // Ignore!
257
+ }
258
+ }
259
+ );
260
+ }
261
+
262
+ if (implementedRNCallbacks.onError) {
263
+ RNPrimerHeadlessUniversalCheckout.addListener(
264
+ 'onError',
265
+ (data) => {
266
+ if (primerSettings?.headlessUniversalCheckoutCallbacks?.onError) {
267
+ if (data && data.error && data.error.errorId && primerSettings) {
268
+ const errorId: string = data.error.errorId;
269
+ const description: string | undefined = data.error.description;
270
+ const recoverySuggestion: string | undefined = data.error.recoverySuggestion;
271
+ const diagnosticsId: string | undefined = data.error.diagnosticsId;
272
+ const primerError = new PrimerError(errorId, description || 'Unknown error', recoverySuggestion, diagnosticsId);
273
+
274
+ const checkoutData: PrimerCheckoutData = data.checkoutData;
275
+ primerSettings.headlessUniversalCheckoutCallbacks.onError(primerError, checkoutData);
276
+ }
277
+ } else {
278
+ // Ignore!
279
+ }
280
+ }
281
+ );
282
+ }
283
+
284
+ resolve();
285
+
286
+ } catch (err) {
287
+ reject(err);
288
+ }
289
+ });
290
+ }
291
+
292
+ class PrimerHeadlessUniversalCheckoutClass {
293
+
294
+ ///////////////////////////////////////////
295
+ // Init
296
+ ///////////////////////////////////////////
297
+ constructor() {
298
+
299
+ }
300
+
301
+ ///////////////////////////////////////////
302
+ // API
303
+ ///////////////////////////////////////////
304
+ startWithClientToken(
305
+ clientToken: string,
306
+ settings: PrimerSettings
307
+ ): Promise<IPrimerHeadlessUniversalCheckoutPaymentMethod[]> {
308
+ primerSettings = settings;
309
+
310
+ return new Promise(async (resolve, reject) => {
311
+ try {
312
+ await configureListeners();
313
+ const res = await RNPrimerHeadlessUniversalCheckout.startWithClientToken(clientToken, settings);
314
+
315
+ if (res["availablePaymentMethods"]) {
316
+ const availablePaymentMethods: IPrimerHeadlessUniversalCheckoutPaymentMethod[] = res["availablePaymentMethods"];
317
+ resolve(availablePaymentMethods);
318
+ } else {
319
+ const err = new PrimerError("primer-rn-sdk", "Failed to find availablePaymentMethods", "Create another client session", undefined);
320
+ reject(err);
321
+ }
322
+ } catch (err) {
323
+ reject(err);
324
+ }
325
+ });
326
+ }
327
+
328
+ cleanUp(): Promise<void> {
329
+ return RNPrimerHeadlessUniversalCheckout.cleanUp();
330
+ }
331
+ }
332
+
333
+ export const PrimerHeadlessUniversalCheckout = new PrimerHeadlessUniversalCheckoutClass();