@stripe/stripe-react-native 0.57.0 → 0.57.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 (324) hide show
  1. package/README.md +0 -8
  2. package/android/.idea/AndroidProjectSystem.xml +6 -0
  3. package/android/.idea/caches/deviceStreaming.xml +1029 -0
  4. package/android/.idea/compiler.xml +6 -0
  5. package/android/.idea/gradle.xml +19 -0
  6. package/android/.idea/migrations.xml +10 -0
  7. package/android/.idea/misc.xml +10 -0
  8. package/android/.idea/runConfigurations.xml +17 -0
  9. package/android/.idea/vcs.xml +6 -0
  10. package/android/build.gradle +76 -118
  11. package/android/gradle.properties +1 -1
  12. package/android/local.properties +8 -0
  13. package/android/settings.gradle +2 -0
  14. package/android/spotless.gradle +1 -1
  15. package/android/src/main/java/com/reactnativestripesdk/AuBECSDebitFormView.kt +20 -17
  16. package/android/src/main/java/com/reactnativestripesdk/CardFieldView.kt +13 -11
  17. package/android/src/main/java/com/reactnativestripesdk/CardFormView.kt +17 -21
  18. package/android/src/main/java/com/reactnativestripesdk/CollectBankAccountLauncherManager.kt +2 -0
  19. package/android/src/main/java/com/reactnativestripesdk/CustomPaymentMethodActivity.kt +2 -0
  20. package/android/src/main/java/com/reactnativestripesdk/EmbeddedPaymentElementView.kt +53 -11
  21. package/android/src/main/java/com/reactnativestripesdk/EmbeddedPaymentElementViewManager.kt +105 -117
  22. package/android/src/main/java/com/reactnativestripesdk/EventEmitterCompat.kt +4 -8
  23. package/android/src/main/java/com/reactnativestripesdk/FakeOnrampSdkModule.kt +154 -0
  24. package/android/src/main/java/com/reactnativestripesdk/FinancialConnectionsSheetManager.kt +13 -15
  25. package/android/src/main/java/com/reactnativestripesdk/GooglePayButtonView.kt +1 -1
  26. package/android/src/main/java/com/reactnativestripesdk/GooglePayLauncherManager.kt +1 -1
  27. package/android/src/main/java/com/reactnativestripesdk/GooglePayRequestHelper.kt +7 -5
  28. package/android/src/main/java/com/reactnativestripesdk/NavigationBarManager.kt +31 -0
  29. package/android/src/main/java/com/reactnativestripesdk/NavigationBarView.kt +120 -0
  30. package/android/src/main/java/com/reactnativestripesdk/PaymentElementConfig.kt +228 -0
  31. package/android/src/main/java/com/reactnativestripesdk/PaymentLauncherManager.kt +1 -0
  32. package/android/src/main/java/com/reactnativestripesdk/PaymentMethodCreateParamsFactory.kt +3 -0
  33. package/android/src/main/java/com/reactnativestripesdk/PaymentOptionDisplayDataMapper.kt +4 -6
  34. package/android/src/main/java/com/reactnativestripesdk/PaymentSheetAppearance.kt +73 -30
  35. package/android/src/main/java/com/reactnativestripesdk/PaymentSheetManager.kt +19 -245
  36. package/android/src/main/java/com/reactnativestripesdk/StripeAbstractComposeView.kt +53 -17
  37. package/android/src/main/java/com/reactnativestripesdk/StripeSdkModule.kt +52 -14
  38. package/android/src/main/java/com/reactnativestripesdk/StripeSdkPackage.kt +21 -2
  39. package/android/src/main/java/com/reactnativestripesdk/addresssheet/AddressSheetView.kt +4 -4
  40. package/android/src/main/java/com/reactnativestripesdk/addresssheet/AddressSheetViewManager.kt +2 -2
  41. package/android/src/main/java/com/reactnativestripesdk/customersheet/CustomerSheetManager.kt +15 -35
  42. package/android/src/main/java/com/reactnativestripesdk/customersheet/ReactNativeCustomerSessionProvider.kt +2 -1
  43. package/android/src/main/java/com/reactnativestripesdk/pushprovisioning/AddToWalletButtonManager.kt +5 -10
  44. package/android/src/main/java/com/reactnativestripesdk/pushprovisioning/AddToWalletButtonView.kt +90 -77
  45. package/android/src/main/java/com/reactnativestripesdk/pushprovisioning/TapAndPayProxy.kt +6 -4
  46. package/android/src/main/java/com/reactnativestripesdk/utils/Errors.kt +13 -3
  47. package/android/src/main/java/com/reactnativestripesdk/utils/Extensions.kt +41 -0
  48. package/android/src/main/java/com/reactnativestripesdk/utils/KeepJsAwakeTask.kt +1 -1
  49. package/android/src/main/java/com/reactnativestripesdk/utils/Mappers.kt +92 -44
  50. package/android/src/oldarch/java/com/facebook/react/viewmanagers/EmbeddedPaymentElementViewManagerDelegate.java +3 -0
  51. package/android/src/oldarch/java/com/facebook/react/viewmanagers/EmbeddedPaymentElementViewManagerInterface.java +2 -0
  52. package/android/src/oldarch/java/com/reactnativestripesdk/NativeOnrampSdkModuleSpec.java +118 -0
  53. package/android/src/oldarch/java/com/reactnativestripesdk/NativeStripeSdkModuleSpec.java +4 -0
  54. package/android/src/onramp/java/com/reactnativestripesdk/OnrampSdkModule.kt +922 -0
  55. package/android/src/test/java/com/facebook/testutils/shadows/ShadowArguments.kt +29 -0
  56. package/android/src/test/java/com/reactnativestripesdk/EmbeddedPaymentElementViewManagerTest.kt +163 -0
  57. package/android/src/test/java/com/reactnativestripesdk/PaymentElementConfigTest.kt +976 -0
  58. package/android/src/test/java/com/reactnativestripesdk/PaymentSheetAppearanceTest.kt +801 -0
  59. package/android/src/test/java/com/reactnativestripesdk/PaymentSheetManagerTest.kt +523 -0
  60. package/android/src/test/java/com/reactnativestripesdk/addresssheet/AddressSheetViewTest.kt +551 -0
  61. package/android/src/test/java/com/reactnativestripesdk/mappers/MappersTest.kt +567 -0
  62. package/android/src/test/java/com/reactnativestripesdk/mappers/PaymentOptionDisplayDataMapperTest.kt +456 -0
  63. package/android/src/test/java/com/reactnativestripesdk/pushprovisioning/PushProvisioningProxyTest.kt +43 -0
  64. package/android/src/test/resources/robolectric.properties +2 -0
  65. package/ios/AddressSheet/AddressSheetUtils.swift +3 -3
  66. package/ios/AddressSheet/AddressSheetView.swift +25 -25
  67. package/ios/AddressSheet/AddressSheetViewManager.swift +2 -2
  68. package/ios/ApplePayButtonManager.swift +1 -1
  69. package/ios/ApplePayButtonView.swift +9 -10
  70. package/ios/ApplePayUtils.swift +51 -51
  71. package/ios/ApplePayViewController.swift +25 -29
  72. package/ios/AuBECSDebitFormManager.swift +1 -1
  73. package/ios/AuBECSDebitFormView.swift +13 -15
  74. package/ios/CardFieldManager.swift +4 -4
  75. package/ios/CardFieldView.swift +9 -9
  76. package/ios/CardFormManager.swift +3 -3
  77. package/ios/CardFormView.swift +28 -28
  78. package/ios/ConnectAccountOnboarding/ConnectAccountOnboardingView.swift +97 -0
  79. package/ios/ConnectAccountOnboarding/ConnectAccountOnboardingViewController.swift +133 -0
  80. package/ios/ConnectAccountOnboarding/ConnectAccountOnboardingViewManager.m +16 -0
  81. package/ios/ConnectAccountOnboarding/ConnectAccountOnboardingViewManager.swift +17 -0
  82. package/ios/CustomerSheet/CustomerSheetUtils.swift +15 -16
  83. package/ios/CustomerSheet/ReactNativeCustomerAdapter.swift +19 -19
  84. package/ios/EmbeddedPaymentElementView.swift +2 -2
  85. package/ios/Errors.swift +22 -23
  86. package/ios/FinancialConnections.swift +37 -37
  87. package/ios/Mappers.swift +210 -71
  88. package/ios/NavigationBarManager.m +13 -0
  89. package/ios/NavigationBarManager.swift +17 -0
  90. package/ios/NavigationBarView.swift +65 -0
  91. package/ios/NewArch/NavigationBarComponentView.h +10 -0
  92. package/ios/NewArch/NavigationBarComponentView.mm +86 -0
  93. package/ios/OldArch/StripeSdkEventEmitterCompat.h +1 -0
  94. package/ios/OldArch/StripeSdkEventEmitterCompat.m +7 -1
  95. package/ios/PaymentMethodFactory.swift +24 -24
  96. package/ios/PaymentOptionDisplayData+ReactNative.swift +4 -4
  97. package/ios/PaymentPassFinder.swift +9 -10
  98. package/ios/PaymentSheetAppearance.swift +137 -138
  99. package/ios/PushProvisioning/AddToWalletButtonManager.swift +2 -2
  100. package/ios/PushProvisioning/AddToWalletButtonView.swift +15 -17
  101. package/ios/PushProvisioning/PushProvisioningUtils.swift +11 -11
  102. package/ios/StripeContainerManager.swift +1 -1
  103. package/ios/StripeContainerView.swift +3 -3
  104. package/ios/StripeOnrampSdk.h +17 -0
  105. package/ios/StripeOnrampSdk.mm +158 -0
  106. package/ios/StripeSdk.mm +8 -0
  107. package/ios/StripeSdk.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  108. package/ios/StripeSdk.xcodeproj/project.xcworkspace/xcuserdata/tianzhao.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  109. package/ios/StripeSdk.xcodeproj/xcuserdata/tianzhao.xcuserdatad/xcschemes/xcschememanagement.plist +19 -0
  110. package/ios/StripeSdkEmitter.swift +4 -0
  111. package/ios/StripeSdkImpl+CustomerSheet.swift +30 -25
  112. package/ios/StripeSdkImpl+Embedded.swift +11 -9
  113. package/ios/StripeSdkImpl+PaymentSheet.swift +36 -34
  114. package/ios/StripeSdkImpl.swift +913 -185
  115. package/ios/UIColorExtension.swift +72 -0
  116. package/lib/commonjs/components/AddToWalletButton.js +1 -1
  117. package/lib/commonjs/components/AddToWalletButton.js.map +1 -1
  118. package/lib/commonjs/components/AddressSheet.js +1 -1
  119. package/lib/commonjs/components/AddressSheet.js.map +1 -1
  120. package/lib/commonjs/components/AuBECSDebitForm.js +1 -1
  121. package/lib/commonjs/components/AuBECSDebitForm.js.map +1 -1
  122. package/lib/commonjs/components/CardField.js +1 -1
  123. package/lib/commonjs/components/CardField.js.map +1 -1
  124. package/lib/commonjs/components/CardForm.js +1 -1
  125. package/lib/commonjs/components/CardForm.js.map +1 -1
  126. package/lib/commonjs/components/PlatformPayButton.js +1 -1
  127. package/lib/commonjs/components/PlatformPayButton.js.map +1 -1
  128. package/lib/commonjs/components/StripeContainer.js +1 -1
  129. package/lib/commonjs/components/StripeContainer.js.map +1 -1
  130. package/lib/commonjs/components/StripeProvider.js +1 -1
  131. package/lib/commonjs/components/StripeProvider.js.map +1 -1
  132. package/lib/commonjs/connect/Components.js +2 -0
  133. package/lib/commonjs/connect/Components.js.map +1 -0
  134. package/lib/commonjs/connect/ConnectComponentsProvider.js +2 -0
  135. package/lib/commonjs/connect/ConnectComponentsProvider.js.map +1 -0
  136. package/lib/commonjs/connect/EmbeddedComponent.js +19 -0
  137. package/lib/commonjs/connect/EmbeddedComponent.js.map +1 -0
  138. package/lib/commonjs/connect/ModalCloseButton.js +2 -0
  139. package/lib/commonjs/connect/ModalCloseButton.js.map +1 -0
  140. package/lib/commonjs/connect/NavigationBar.js +2 -0
  141. package/lib/commonjs/connect/NavigationBar.js.map +1 -0
  142. package/lib/commonjs/connect/connectTypes.js +2 -0
  143. package/lib/commonjs/connect/connectTypes.js.map +1 -0
  144. package/lib/commonjs/events.js +1 -1
  145. package/lib/commonjs/events.js.map +1 -1
  146. package/lib/commonjs/helpers.js +1 -1
  147. package/lib/commonjs/helpers.js.map +1 -1
  148. package/lib/commonjs/hooks/useOnramp.js +2 -0
  149. package/lib/commonjs/hooks/useOnramp.js.map +1 -0
  150. package/lib/commonjs/index.js +1 -1
  151. package/lib/commonjs/index.js.map +1 -1
  152. package/lib/commonjs/plugin/withStripe.js +1 -1
  153. package/lib/commonjs/plugin/withStripe.js.map +1 -1
  154. package/lib/commonjs/specs/NativeAddToWalletButton.js +1 -1
  155. package/lib/commonjs/specs/NativeAddToWalletButton.js.map +1 -1
  156. package/lib/commonjs/specs/NativeAddressSheet.js +1 -1
  157. package/lib/commonjs/specs/NativeAddressSheet.js.map +1 -1
  158. package/lib/commonjs/specs/NativeApplePayButton.js +1 -1
  159. package/lib/commonjs/specs/NativeApplePayButton.js.map +1 -1
  160. package/lib/commonjs/specs/NativeAuBECSDebitForm.js +1 -1
  161. package/lib/commonjs/specs/NativeAuBECSDebitForm.js.map +1 -1
  162. package/lib/commonjs/specs/NativeCardField.js +1 -1
  163. package/lib/commonjs/specs/NativeCardField.js.map +1 -1
  164. package/lib/commonjs/specs/NativeCardForm.js +1 -1
  165. package/lib/commonjs/specs/NativeCardForm.js.map +1 -1
  166. package/lib/commonjs/specs/NativeConnectAccountOnboardingView.js +2 -0
  167. package/lib/commonjs/specs/NativeConnectAccountOnboardingView.js.map +1 -0
  168. package/lib/commonjs/specs/NativeEmbeddedPaymentElement.js +1 -1
  169. package/lib/commonjs/specs/NativeEmbeddedPaymentElement.js.map +1 -1
  170. package/lib/commonjs/specs/NativeGooglePayButton.js +1 -1
  171. package/lib/commonjs/specs/NativeGooglePayButton.js.map +1 -1
  172. package/lib/commonjs/specs/NativeNavigationBar.js +2 -0
  173. package/lib/commonjs/specs/NativeNavigationBar.js.map +1 -0
  174. package/lib/commonjs/specs/NativeOnrampSdkModule.js +2 -0
  175. package/lib/commonjs/specs/NativeOnrampSdkModule.js.map +1 -0
  176. package/lib/commonjs/specs/NativeStripeContainer.js +1 -1
  177. package/lib/commonjs/specs/NativeStripeContainer.js.map +1 -1
  178. package/lib/commonjs/specs/NativeStripeSdkModule.js.map +1 -1
  179. package/lib/commonjs/types/EmbeddedPaymentElement.js +1 -1
  180. package/lib/commonjs/types/EmbeddedPaymentElement.js.map +1 -1
  181. package/lib/commonjs/types/Errors.js +1 -1
  182. package/lib/commonjs/types/Errors.js.map +1 -1
  183. package/lib/commonjs/types/Onramp.js +2 -0
  184. package/lib/commonjs/types/Onramp.js.map +1 -0
  185. package/lib/commonjs/types/PaymentSheet.js.map +1 -1
  186. package/lib/commonjs/types/index.js +1 -1
  187. package/lib/commonjs/types/index.js.map +1 -1
  188. package/lib/module/components/AddToWalletButton.js +1 -1
  189. package/lib/module/components/AddToWalletButton.js.map +1 -1
  190. package/lib/module/components/AddressSheet.js +1 -1
  191. package/lib/module/components/AddressSheet.js.map +1 -1
  192. package/lib/module/components/AuBECSDebitForm.js +1 -1
  193. package/lib/module/components/AuBECSDebitForm.js.map +1 -1
  194. package/lib/module/components/CardField.js +1 -1
  195. package/lib/module/components/CardField.js.map +1 -1
  196. package/lib/module/components/CardForm.js +1 -1
  197. package/lib/module/components/CardForm.js.map +1 -1
  198. package/lib/module/components/PlatformPayButton.js +1 -1
  199. package/lib/module/components/PlatformPayButton.js.map +1 -1
  200. package/lib/module/components/StripeContainer.js +1 -1
  201. package/lib/module/components/StripeContainer.js.map +1 -1
  202. package/lib/module/components/StripeProvider.js +1 -1
  203. package/lib/module/components/StripeProvider.js.map +1 -1
  204. package/lib/module/connect/Components.js +2 -0
  205. package/lib/module/connect/Components.js.map +1 -0
  206. package/lib/module/connect/ConnectComponentsProvider.js +2 -0
  207. package/lib/module/connect/ConnectComponentsProvider.js.map +1 -0
  208. package/lib/module/connect/EmbeddedComponent.js +19 -0
  209. package/lib/module/connect/EmbeddedComponent.js.map +1 -0
  210. package/lib/module/connect/ModalCloseButton.js +2 -0
  211. package/lib/module/connect/ModalCloseButton.js.map +1 -0
  212. package/lib/module/connect/NavigationBar.js +2 -0
  213. package/lib/module/connect/NavigationBar.js.map +1 -0
  214. package/lib/module/connect/connectTypes.js +2 -0
  215. package/lib/module/connect/connectTypes.js.map +1 -0
  216. package/lib/module/events.js +1 -1
  217. package/lib/module/events.js.map +1 -1
  218. package/lib/module/helpers.js +1 -1
  219. package/lib/module/helpers.js.map +1 -1
  220. package/lib/module/hooks/useOnramp.js +2 -0
  221. package/lib/module/hooks/useOnramp.js.map +1 -0
  222. package/lib/module/index.js +1 -1
  223. package/lib/module/index.js.map +1 -1
  224. package/lib/module/plugin/withStripe.js +1 -1
  225. package/lib/module/plugin/withStripe.js.map +1 -1
  226. package/lib/module/specs/NativeAddToWalletButton.js +1 -1
  227. package/lib/module/specs/NativeAddToWalletButton.js.map +1 -1
  228. package/lib/module/specs/NativeAddressSheet.js +1 -1
  229. package/lib/module/specs/NativeAddressSheet.js.map +1 -1
  230. package/lib/module/specs/NativeApplePayButton.js +1 -1
  231. package/lib/module/specs/NativeApplePayButton.js.map +1 -1
  232. package/lib/module/specs/NativeAuBECSDebitForm.js +1 -1
  233. package/lib/module/specs/NativeAuBECSDebitForm.js.map +1 -1
  234. package/lib/module/specs/NativeCardField.js +1 -1
  235. package/lib/module/specs/NativeCardField.js.map +1 -1
  236. package/lib/module/specs/NativeCardForm.js +1 -1
  237. package/lib/module/specs/NativeCardForm.js.map +1 -1
  238. package/lib/module/specs/NativeConnectAccountOnboardingView.js +2 -0
  239. package/lib/module/specs/NativeConnectAccountOnboardingView.js.map +1 -0
  240. package/lib/module/specs/NativeEmbeddedPaymentElement.js +1 -1
  241. package/lib/module/specs/NativeEmbeddedPaymentElement.js.map +1 -1
  242. package/lib/module/specs/NativeGooglePayButton.js +1 -1
  243. package/lib/module/specs/NativeGooglePayButton.js.map +1 -1
  244. package/lib/module/specs/NativeNavigationBar.js +2 -0
  245. package/lib/module/specs/NativeNavigationBar.js.map +1 -0
  246. package/lib/module/specs/NativeOnrampSdkModule.js +2 -0
  247. package/lib/module/specs/NativeOnrampSdkModule.js.map +1 -0
  248. package/lib/module/specs/NativeStripeContainer.js +1 -1
  249. package/lib/module/specs/NativeStripeContainer.js.map +1 -1
  250. package/lib/module/specs/NativeStripeSdkModule.js.map +1 -1
  251. package/lib/module/types/EmbeddedPaymentElement.js +1 -1
  252. package/lib/module/types/EmbeddedPaymentElement.js.map +1 -1
  253. package/lib/module/types/Errors.js +1 -1
  254. package/lib/module/types/Errors.js.map +1 -1
  255. package/lib/module/types/Onramp.js +2 -0
  256. package/lib/module/types/Onramp.js.map +1 -0
  257. package/lib/module/types/PaymentSheet.js.map +1 -1
  258. package/lib/module/types/index.js +1 -1
  259. package/lib/module/types/index.js.map +1 -1
  260. package/lib/typescript/src/components/StripeProvider.d.ts.map +1 -1
  261. package/lib/typescript/src/connect/Components.d.ts +23 -0
  262. package/lib/typescript/src/connect/Components.d.ts.map +1 -0
  263. package/lib/typescript/src/connect/ConnectComponentsProvider.d.ts +22 -0
  264. package/lib/typescript/src/connect/ConnectComponentsProvider.d.ts.map +1 -0
  265. package/lib/typescript/src/connect/EmbeddedComponent.d.ts +18 -0
  266. package/lib/typescript/src/connect/EmbeddedComponent.d.ts.map +1 -0
  267. package/lib/typescript/src/connect/ModalCloseButton.d.ts +7 -0
  268. package/lib/typescript/src/connect/ModalCloseButton.d.ts.map +1 -0
  269. package/lib/typescript/src/connect/NavigationBar.d.ts +8 -0
  270. package/lib/typescript/src/connect/NavigationBar.d.ts.map +1 -0
  271. package/lib/typescript/src/connect/connectTypes.d.ts +464 -0
  272. package/lib/typescript/src/connect/connectTypes.d.ts.map +1 -0
  273. package/lib/typescript/src/events.d.ts +4 -0
  274. package/lib/typescript/src/events.d.ts.map +1 -1
  275. package/lib/typescript/src/functions.d.ts.map +1 -1
  276. package/lib/typescript/src/helpers.d.ts.map +1 -1
  277. package/lib/typescript/src/hooks/useOnramp.d.ts +158 -0
  278. package/lib/typescript/src/hooks/useOnramp.d.ts.map +1 -0
  279. package/lib/typescript/src/index.d.ts +4 -0
  280. package/lib/typescript/src/index.d.ts.map +1 -1
  281. package/lib/typescript/src/plugin/withStripe.d.ts +15 -0
  282. package/lib/typescript/src/plugin/withStripe.d.ts.map +1 -1
  283. package/lib/typescript/src/specs/NativeConnectAccountOnboardingView.d.ts +14 -0
  284. package/lib/typescript/src/specs/NativeConnectAccountOnboardingView.d.ts.map +1 -0
  285. package/lib/typescript/src/specs/NativeEmbeddedPaymentElement.d.ts +1 -0
  286. package/lib/typescript/src/specs/NativeEmbeddedPaymentElement.d.ts.map +1 -1
  287. package/lib/typescript/src/specs/NativeNavigationBar.d.ts +11 -0
  288. package/lib/typescript/src/specs/NativeNavigationBar.d.ts.map +1 -0
  289. package/lib/typescript/src/specs/NativeOnrampSdkModule.d.ts +28 -0
  290. package/lib/typescript/src/specs/NativeOnrampSdkModule.d.ts.map +1 -0
  291. package/lib/typescript/src/specs/NativeStripeSdkModule.d.ts +3 -0
  292. package/lib/typescript/src/specs/NativeStripeSdkModule.d.ts.map +1 -1
  293. package/lib/typescript/src/types/EmbeddedPaymentElement.d.ts.map +1 -1
  294. package/lib/typescript/src/types/Errors.d.ts +5 -0
  295. package/lib/typescript/src/types/Errors.d.ts.map +1 -1
  296. package/lib/typescript/src/types/Onramp.d.ts +275 -0
  297. package/lib/typescript/src/types/Onramp.d.ts.map +1 -0
  298. package/lib/typescript/src/types/PaymentSheet.d.ts +7 -0
  299. package/lib/typescript/src/types/PaymentSheet.d.ts.map +1 -1
  300. package/lib/typescript/src/types/index.d.ts +7 -1
  301. package/lib/typescript/src/types/index.d.ts.map +1 -1
  302. package/package.json +25 -14
  303. package/src/components/StripeProvider.tsx +5 -0
  304. package/src/connect/Components.tsx +279 -0
  305. package/src/connect/ConnectComponentsProvider.tsx +93 -0
  306. package/src/connect/EmbeddedComponent.tsx +407 -0
  307. package/src/connect/ModalCloseButton.tsx +44 -0
  308. package/src/connect/NavigationBar.tsx +29 -0
  309. package/src/connect/connectTypes.ts +626 -0
  310. package/src/events.ts +23 -0
  311. package/src/hooks/useOnramp.tsx +334 -0
  312. package/src/index.tsx +13 -0
  313. package/src/plugin/withStripe.ts +104 -7
  314. package/src/specs/NativeConnectAccountOnboardingView.ts +19 -0
  315. package/src/specs/NativeEmbeddedPaymentElement.ts +5 -1
  316. package/src/specs/NativeNavigationBar.ts +16 -0
  317. package/src/specs/NativeOnrampSdkModule.ts +47 -0
  318. package/src/specs/NativeStripeSdkModule.ts +5 -0
  319. package/src/types/EmbeddedPaymentElement.tsx +24 -3
  320. package/src/types/Errors.ts +6 -0
  321. package/src/types/Onramp.ts +317 -0
  322. package/src/types/PaymentSheet.ts +7 -0
  323. package/src/types/index.ts +8 -0
  324. package/stripe-react-native.podspec +20 -7
@@ -16,7 +16,7 @@ class ReactNativeCustomerAdapter: StripeCustomerAdapter {
16
16
  var overridesFetchSelectedPaymentOption: Bool
17
17
  var overridesSetupIntentClientSecretForCustomerAttach: Bool
18
18
  var stripeSdk: StripeSdkImpl
19
-
19
+
20
20
  init(
21
21
  fetchPaymentMethods: Bool,
22
22
  attachPaymentMethod: Bool,
@@ -36,7 +36,7 @@ class ReactNativeCustomerAdapter: StripeCustomerAdapter {
36
36
  self.overridesFetchSelectedPaymentOption = fetchSelectedPaymentOption
37
37
  self.overridesSetupIntentClientSecretForCustomerAttach = setupIntentClientSecretForCustomerAttach
38
38
  self.stripeSdk = stripeSdk
39
-
39
+
40
40
  if let setupIntentClientSecret = setupIntentClientSecret {
41
41
  super.init(
42
42
  customerEphemeralKeyProvider: {
@@ -54,9 +54,9 @@ class ReactNativeCustomerAdapter: StripeCustomerAdapter {
54
54
  )
55
55
  }
56
56
  }
57
-
57
+
58
58
  override func fetchPaymentMethods() async throws -> [STPPaymentMethod] {
59
- if (self.overridesFetchPaymentMethods) {
59
+ if self.overridesFetchPaymentMethods {
60
60
  return await withCheckedContinuation({ continuation in
61
61
  fetchPaymentMethods { paymentMethods in
62
62
  continuation.resume(returning: paymentMethods)
@@ -66,9 +66,9 @@ class ReactNativeCustomerAdapter: StripeCustomerAdapter {
66
66
  return try await super.fetchPaymentMethods()
67
67
  }
68
68
  }
69
-
69
+
70
70
  override func attachPaymentMethod(_ paymentMethodId: String) async throws {
71
- if (self.overridesAttachPaymentMethod) {
71
+ if self.overridesAttachPaymentMethod {
72
72
  return await withCheckedContinuation({ continuation in
73
73
  attachPaymentMethod(paymentMethodId) {
74
74
  continuation.resume(returning: ())
@@ -78,9 +78,9 @@ class ReactNativeCustomerAdapter: StripeCustomerAdapter {
78
78
  return try await super.attachPaymentMethod(paymentMethodId)
79
79
  }
80
80
  }
81
-
81
+
82
82
  override func detachPaymentMethod(paymentMethodId: String) async throws {
83
- if (self.overridesDetachPaymentMethod) {
83
+ if self.overridesDetachPaymentMethod {
84
84
  return await withCheckedContinuation({ continuation in
85
85
  detachPaymentMethod(paymentMethodId) {
86
86
  continuation.resume(returning: ())
@@ -90,9 +90,9 @@ class ReactNativeCustomerAdapter: StripeCustomerAdapter {
90
90
  return try await super.detachPaymentMethod(paymentMethodId: paymentMethodId)
91
91
  }
92
92
  }
93
-
93
+
94
94
  override func setSelectedPaymentOption(paymentOption: CustomerPaymentOption?) async throws {
95
- if (self.overridesSetSelectedPaymentOption) {
95
+ if self.overridesSetSelectedPaymentOption {
96
96
  return await withCheckedContinuation({ continuation in
97
97
  setSelectedPaymentOption(paymentOption) {
98
98
  continuation.resume(returning: ())
@@ -102,9 +102,9 @@ class ReactNativeCustomerAdapter: StripeCustomerAdapter {
102
102
  return try await super.setSelectedPaymentOption(paymentOption: paymentOption)
103
103
  }
104
104
  }
105
-
105
+
106
106
  override func fetchSelectedPaymentOption() async throws -> CustomerPaymentOption? {
107
- if (self.overridesFetchSelectedPaymentOption) {
107
+ if self.overridesFetchSelectedPaymentOption {
108
108
  return await withCheckedContinuation({ continuation in
109
109
  fetchSelectedPaymentOption { paymentOption in
110
110
  continuation.resume(returning: paymentOption)
@@ -114,9 +114,9 @@ class ReactNativeCustomerAdapter: StripeCustomerAdapter {
114
114
  return try await super.fetchSelectedPaymentOption()
115
115
  }
116
116
  }
117
-
117
+
118
118
  override func setupIntentClientSecretForCustomerAttach() async throws -> String {
119
- if (self.overridesSetupIntentClientSecretForCustomerAttach) {
119
+ if self.overridesSetupIntentClientSecretForCustomerAttach {
120
120
  return await withCheckedContinuation({ continuation in
121
121
  setupIntentClientSecretForCustomerAttach { clientSecret in
122
122
  continuation.resume(returning: clientSecret)
@@ -135,35 +135,35 @@ extension ReactNativeCustomerAdapter {
135
135
  self.stripeSdk.emitter?.emitOnCustomerAdapterFetchPaymentMethodsCallback()
136
136
  }
137
137
  }
138
-
138
+
139
139
  func attachPaymentMethod(_ paymentMethodId: String, completion: @escaping () -> Void) {
140
140
  DispatchQueue.main.async {
141
141
  self.stripeSdk.attachPaymentMethodCallback = completion
142
142
  self.stripeSdk.emitter?.emitOnCustomerAdapterAttachPaymentMethodCallback(["paymentMethodId": paymentMethodId])
143
143
  }
144
144
  }
145
-
145
+
146
146
  func detachPaymentMethod(_ paymentMethodId: String, completion: @escaping () -> Void) {
147
147
  DispatchQueue.main.async {
148
148
  self.stripeSdk.detachPaymentMethodCallback = completion
149
149
  self.stripeSdk.emitter?.emitOnCustomerAdapterDetachPaymentMethodCallback(["paymentMethodId": paymentMethodId])
150
150
  }
151
151
  }
152
-
152
+
153
153
  func setSelectedPaymentOption(_ paymentOption: CustomerPaymentOption?, completion: @escaping () -> Void) {
154
154
  DispatchQueue.main.async {
155
155
  self.stripeSdk.setSelectedPaymentOptionCallback = completion
156
156
  self.stripeSdk.emitter?.emitOnCustomerAdapterSetSelectedPaymentOptionCallback(["paymentOption": paymentOption?.value])
157
157
  }
158
158
  }
159
-
159
+
160
160
  func fetchSelectedPaymentOption(completion: @escaping (CustomerPaymentOption?) -> Void) {
161
161
  DispatchQueue.main.async {
162
162
  self.stripeSdk.fetchSelectedPaymentOptionCallback = completion
163
163
  self.stripeSdk.emitter?.emitOnCustomerAdapterFetchSelectedPaymentOptionCallback()
164
164
  }
165
165
  }
166
-
166
+
167
167
  func setupIntentClientSecretForCustomerAttach(completion: @escaping (String) -> Void) {
168
168
  DispatchQueue.main.async {
169
169
  self.stripeSdk.setupIntentClientSecretForCustomerAttachCallback = completion
@@ -6,12 +6,12 @@
6
6
  //
7
7
 
8
8
  import Foundation
9
- import UIKit
10
9
  @_spi(EmbeddedPaymentElementPrivateBeta) import StripePaymentSheet
10
+ import UIKit
11
11
 
12
12
  @objc(EmbeddedPaymentElementView)
13
13
  class EmbeddedPaymentElementView: RCTViewManager {
14
-
14
+
15
15
  override static func requiresMainQueueSetup() -> Bool {
16
16
  return true
17
17
  }
package/ios/Errors.swift CHANGED
@@ -21,21 +21,21 @@ class Errors {
21
21
 
22
22
  class func isPIClientSecretValid(clientSecret: String) -> Bool {
23
23
  return (Errors.isPIClientSecretValidRegex?.numberOfMatches(
24
- in: clientSecret,
25
- options: .anchored,
26
- range: NSRange(location: 0, length: clientSecret.count))) == 1
24
+ in: clientSecret,
25
+ options: .anchored,
26
+ range: NSRange(location: 0, length: clientSecret.count))) == 1
27
27
  }
28
28
  class func isSetiClientSecretValid(clientSecret: String) -> Bool {
29
29
  return (Errors.isSetiClientSecretValidRegex?.numberOfMatches(
30
- in: clientSecret,
31
- options: .anchored,
32
- range: NSRange(location: 0, length: clientSecret.count))) == 1
30
+ in: clientSecret,
31
+ options: .anchored,
32
+ range: NSRange(location: 0, length: clientSecret.count))) == 1
33
33
  }
34
34
  class func isEKClientSecretValid(clientSecret: String) -> Bool {
35
35
  return (Errors.isEKClientSecretValidRegex?.numberOfMatches(
36
- in: clientSecret,
37
- options: .anchored,
38
- range: NSRange(location: 0, length: clientSecret.count))) == 1
36
+ in: clientSecret,
37
+ options: .anchored,
38
+ range: NSRange(location: 0, length: clientSecret.count))) == 1
39
39
  }
40
40
 
41
41
  class func createError (_ code: String, _ message: String?) -> NSDictionary {
@@ -45,12 +45,12 @@ class Errors {
45
45
  "localizedMessage": message ?? NSNull(),
46
46
  "declineCode": NSNull(),
47
47
  "stripeErrorCode": NSNull(),
48
- "type": NSNull()
48
+ "type": NSNull(),
49
49
  ]
50
-
50
+
51
51
  return ["error": value]
52
52
  }
53
-
53
+
54
54
  class func createError (_ code: String, _ error: NSError?) -> NSDictionary {
55
55
  let rootError = getRootError(error)
56
56
 
@@ -62,7 +62,7 @@ class Errors {
62
62
  "stripeErrorCode": rootError?.userInfo[STPError.stripeErrorCodeKey] ?? NSNull(),
63
63
  "type": rootError?.userInfo[STPError.stripeErrorTypeKey] ?? NSNull(),
64
64
  ]
65
-
65
+
66
66
  return ["error": value]
67
67
  }
68
68
  class func createError (_ code: String, _ error: STPSetupIntentLastSetupError?) -> NSDictionary {
@@ -72,12 +72,12 @@ class Errors {
72
72
  "localizedMessage": error?.message ?? NSNull(),
73
73
  "declineCode": error?.declineCode ?? NSNull(),
74
74
  "stripeErrorCode": error?.code ?? NSNull(),
75
- "type": Mappers.mapFromSetupIntentLastPaymentErrorType(error?.type) ?? NSNull()
75
+ "type": Mappers.mapFromSetupIntentLastPaymentErrorType(error?.type) ?? NSNull(),
76
76
  ]
77
-
77
+
78
78
  return ["error": value]
79
79
  }
80
-
80
+
81
81
  class func createError (_ code: String, _ error: STPPaymentIntentLastPaymentError?) -> NSDictionary {
82
82
  let value: NSDictionary = [
83
83
  "code": code,
@@ -85,20 +85,20 @@ class Errors {
85
85
  "localizedMessage": error?.message ?? NSNull(),
86
86
  "declineCode": error?.declineCode ?? NSNull(),
87
87
  "stripeErrorCode": error?.code ?? NSNull(),
88
- "type": Mappers.mapFromPaymentIntentLastPaymentErrorType(error?.type) ?? NSNull()
88
+ "type": Mappers.mapFromPaymentIntentLastPaymentErrorType(error?.type) ?? NSNull(),
89
89
  ]
90
-
90
+
91
91
  return ["error": value]
92
92
  }
93
-
93
+
94
94
  class func createError(_ code: String, _ error: Error) -> NSDictionary {
95
95
  if let stripeError = error as? StripeError {
96
96
  return createError(code, NSError.stp_error(from: stripeError))
97
97
  }
98
-
98
+
99
99
  return createError(code, error as NSError?)
100
100
  }
101
-
101
+
102
102
  class func getRootError(_ error: NSError?) -> NSError? {
103
103
  // Dig and find the underlying error, otherwise we'll throw errors like "Try again"
104
104
  if let underlyingError = error?.userInfo[NSUnderlyingErrorKey] as? NSError {
@@ -106,7 +106,6 @@ class Errors {
106
106
  }
107
107
  return error
108
108
  }
109
-
109
+
110
110
  static let MISSING_INIT_ERROR = Errors.createError(ErrorType.Failed, "Stripe has not been initialized. Initialize Stripe in your app with the StripeProvider component or the initStripe method.")
111
111
  }
112
-
@@ -6,8 +6,8 @@
6
6
  //
7
7
 
8
8
  import Foundation
9
- import StripeFinancialConnections
10
9
  import Stripe
10
+ import StripeFinancialConnections
11
11
 
12
12
  class FinancialConnections {
13
13
 
@@ -17,26 +17,26 @@ class FinancialConnections {
17
17
  configuration: FinancialConnectionsSheet.Configuration? = nil,
18
18
  onEvent: ((FinancialConnectionsEvent) -> Void)? = nil,
19
19
  resolve: @escaping RCTPromiseResolveBlock
20
- ) -> Void {
20
+ ) {
21
21
  DispatchQueue.main.async {
22
22
  let financialConnectionsSheet = FinancialConnectionsSheet(
23
- financialConnectionsSessionClientSecret: withClientSecret,
24
- returnURL: returnURL,
25
- configuration: configuration ?? .init()
23
+ financialConnectionsSessionClientSecret: withClientSecret,
24
+ returnURL: returnURL,
25
+ configuration: configuration ?? .init()
26
26
  )
27
27
  financialConnectionsSheet.onEvent = onEvent
28
28
  financialConnectionsSheet.present(
29
- from: findViewControllerPresenter(from: RCTKeyWindow()?.rootViewController ?? UIViewController()),
30
- completion: { result in
31
- switch result {
32
- case .completed(session: let session):
33
- resolve([ "session": mapFromSessionResult(session) ])
34
- case .canceled:
35
- resolve(Errors.createError(ErrorType.Canceled, "The flow has been canceled."))
36
- case .failed(let error):
37
- resolve(Errors.createError(ErrorType.Failed, error))
38
- }
39
- })
29
+ from: findViewControllerPresenter(from: RCTKeyWindow()?.rootViewController ?? UIViewController()),
30
+ completion: { result in
31
+ switch result {
32
+ case .completed(session: let session):
33
+ resolve([ "session": mapFromSessionResult(session) ])
34
+ case .canceled:
35
+ resolve(Errors.createError(ErrorType.Canceled, "The flow has been canceled."))
36
+ case .failed(let error):
37
+ resolve(Errors.createError(ErrorType.Failed, error))
38
+ }
39
+ })
40
40
  }
41
41
  }
42
42
 
@@ -46,31 +46,31 @@ class FinancialConnections {
46
46
  configuration: FinancialConnectionsSheet.Configuration? = nil,
47
47
  onEvent: ((FinancialConnectionsEvent) -> Void)? = nil,
48
48
  resolve: @escaping RCTPromiseResolveBlock
49
- ) -> Void {
49
+ ) {
50
50
  DispatchQueue.main.async {
51
51
  let financialConnectionsSheet = FinancialConnectionsSheet(
52
- financialConnectionsSessionClientSecret: withClientSecret,
53
- returnURL: returnURL,
54
- configuration: configuration ?? .init()
52
+ financialConnectionsSessionClientSecret: withClientSecret,
53
+ returnURL: returnURL,
54
+ configuration: configuration ?? .init()
55
55
  )
56
56
  financialConnectionsSheet.onEvent = onEvent
57
57
  financialConnectionsSheet.presentForToken(
58
- from: findViewControllerPresenter(from: RCTKeyWindow()?.rootViewController ?? UIViewController()),
59
- completion: { result in
60
- switch result {
61
- case .completed(result: let result):
62
- resolve(
63
- [
64
- "session": mapFromSessionResult(result.session),
65
- "token" : mapFromTokenResult(result.token)
66
- ]
67
- )
68
- case .canceled:
69
- resolve(Errors.createError(ErrorType.Canceled, "The flow has been canceled."))
70
- case .failed(let error):
71
- resolve(Errors.createError(ErrorType.Failed, error))
72
- }
73
- })
58
+ from: findViewControllerPresenter(from: RCTKeyWindow()?.rootViewController ?? UIViewController()),
59
+ completion: { result in
60
+ switch result {
61
+ case .completed(result: let result):
62
+ resolve(
63
+ [
64
+ "session": mapFromSessionResult(result.session),
65
+ "token": mapFromTokenResult(result.token),
66
+ ]
67
+ )
68
+ case .canceled:
69
+ resolve(Errors.createError(ErrorType.Canceled, "The flow has been canceled."))
70
+ case .failed(let error):
71
+ resolve(Errors.createError(ErrorType.Failed, error))
72
+ }
73
+ })
74
74
  }
75
75
  }
76
76
 
@@ -81,7 +81,7 @@ class FinancialConnections {
81
81
  "id": session.id,
82
82
  "clientSecret": session.clientSecret,
83
83
  "livemode": session.livemode,
84
- "accounts": mapFromAccountsList(accounts: session.accounts)
84
+ "accounts": mapFromAccountsList(accounts: session.accounts),
85
85
  ]
86
86
  }
87
87