@stripe/stripe-react-native 0.44.0 → 0.46.0

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 (334) hide show
  1. package/.clang-format +90 -0
  2. package/.editorconfig +3 -0
  3. package/CHANGELOG.md +13 -1
  4. package/README.md +0 -3
  5. package/android/.gradle/8.11.1/checksums/checksums.lock +0 -0
  6. package/android/.gradle/8.11.1/checksums/md5-checksums.bin +0 -0
  7. package/android/.gradle/8.11.1/checksums/sha1-checksums.bin +0 -0
  8. package/android/.gradle/8.11.1/executionHistory/executionHistory.bin +0 -0
  9. package/android/.gradle/8.11.1/executionHistory/executionHistory.lock +0 -0
  10. package/android/.gradle/8.11.1/fileHashes/fileHashes.bin +0 -0
  11. package/android/.gradle/8.11.1/fileHashes/fileHashes.lock +0 -0
  12. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  13. package/android/.gradle/buildOutputCleanup/cache.properties +1 -1
  14. package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  15. package/android/.gradle/config.properties +2 -0
  16. package/android/.gradle/file-system.probe +0 -0
  17. package/android/.idea/caches/deviceStreaming.xml +619 -0
  18. package/android/.idea/compiler.xml +6 -0
  19. package/android/.idea/gradle.xml +19 -0
  20. package/android/.idea/migrations.xml +10 -0
  21. package/android/.idea/misc.xml +10 -0
  22. package/android/.idea/runConfigurations.xml +17 -0
  23. package/android/.idea/vcs.xml +6 -0
  24. package/android/build.gradle +90 -18
  25. package/android/gradle.properties +1 -1
  26. package/android/local.properties +8 -0
  27. package/android/src/main/java/com/reactnativestripesdk/AuBECSDebitFormViewManager.kt +15 -6
  28. package/android/src/main/java/com/reactnativestripesdk/CardChangeEvent.kt +56 -0
  29. package/android/src/main/java/com/reactnativestripesdk/CardFieldView.kt +4 -4
  30. package/android/src/main/java/com/reactnativestripesdk/CardFieldViewManager.kt +55 -45
  31. package/android/src/main/java/com/reactnativestripesdk/{CardFocusEvent.kt → CardFocusChangeEvent.kt} +2 -2
  32. package/android/src/main/java/com/reactnativestripesdk/CardFormCompleteEvent.kt +17 -16
  33. package/android/src/main/java/com/reactnativestripesdk/CardFormView.kt +5 -5
  34. package/android/src/main/java/com/reactnativestripesdk/CardFormViewManager.kt +39 -33
  35. package/android/src/main/java/com/reactnativestripesdk/CollectBankAccountLauncherFragment.kt +35 -36
  36. package/android/src/main/java/com/reactnativestripesdk/EmbeddedPaymentElementView.kt +224 -0
  37. package/android/src/main/java/com/reactnativestripesdk/EmbeddedPaymentElementViewManager.kt +238 -0
  38. package/android/src/main/java/com/reactnativestripesdk/FinancialConnectionsSheetFragment.kt +11 -26
  39. package/android/src/main/java/com/reactnativestripesdk/GooglePayButtonManager.kt +14 -6
  40. package/android/src/main/java/com/reactnativestripesdk/GooglePayLauncherFragment.kt +3 -17
  41. package/android/src/main/java/com/reactnativestripesdk/GooglePayPaymentMethodLauncherFragment.kt +20 -6
  42. package/android/src/main/java/com/reactnativestripesdk/PaymentLauncherFragment.kt +63 -44
  43. package/android/src/main/java/com/reactnativestripesdk/PaymentMethodCreateParamsFactory.kt +3 -1
  44. package/android/src/main/java/com/reactnativestripesdk/PaymentOptionDisplayDataMapper.kt +17 -0
  45. package/android/src/main/java/com/reactnativestripesdk/PaymentSheetAppearance.kt +266 -0
  46. package/android/src/main/java/com/reactnativestripesdk/PaymentSheetFragment.kt +25 -33
  47. package/android/src/main/java/com/reactnativestripesdk/StripeAbstractComposeView.kt +113 -0
  48. package/android/src/main/java/com/reactnativestripesdk/StripeContainerManager.kt +11 -3
  49. package/android/src/main/java/com/reactnativestripesdk/StripeSdkModule.kt +180 -65
  50. package/android/src/main/java/com/reactnativestripesdk/StripeSdkPackage.kt +34 -4
  51. package/android/src/main/java/com/reactnativestripesdk/addresssheet/AddressLauncherFragment.kt +3 -17
  52. package/android/src/main/java/com/reactnativestripesdk/addresssheet/AddressSheetView.kt +33 -27
  53. package/android/src/main/java/com/reactnativestripesdk/addresssheet/AddressSheetViewManager.kt +49 -24
  54. package/android/src/main/java/com/reactnativestripesdk/customersheet/CustomerSheetFragment.kt +19 -24
  55. package/android/src/main/java/com/reactnativestripesdk/customersheet/ReactNativeCustomerAdapter.kt +11 -29
  56. package/android/src/main/java/com/reactnativestripesdk/pushprovisioning/AddToWalletButtonManager.kt +36 -12
  57. package/android/src/main/java/com/reactnativestripesdk/pushprovisioning/AddToWalletButtonView.kt +5 -3
  58. package/android/src/main/java/com/reactnativestripesdk/utils/Extensions.kt +4 -0
  59. package/android/src/main/java/com/reactnativestripesdk/utils/KeepJsAwakeTask.kt +2 -2
  60. package/android/src/main/java/com/reactnativestripesdk/utils/Mappers.kt +21 -0
  61. package/android/src/main/java/com/reactnativestripesdk/utils/StripeFragment.kt +52 -0
  62. package/android/src/oldarch/java/com/facebook/react/viewmanagers/AddToWalletButtonManagerDelegate.java +49 -0
  63. package/android/src/oldarch/java/com/facebook/react/viewmanagers/AddToWalletButtonManagerInterface.java +25 -0
  64. package/android/src/oldarch/java/com/facebook/react/viewmanagers/AddressSheetViewManagerDelegate.java +64 -0
  65. package/android/src/oldarch/java/com/facebook/react/viewmanagers/AddressSheetViewManagerInterface.java +30 -0
  66. package/android/src/oldarch/java/com/facebook/react/viewmanagers/ApplePayButtonManagerDelegate.java +41 -0
  67. package/android/src/oldarch/java/com/facebook/react/viewmanagers/ApplePayButtonManagerInterface.java +20 -0
  68. package/android/src/oldarch/java/com/facebook/react/viewmanagers/AuBECSDebitFormManagerDelegate.java +36 -0
  69. package/android/src/oldarch/java/com/facebook/react/viewmanagers/AuBECSDebitFormManagerInterface.java +20 -0
  70. package/android/src/oldarch/java/com/facebook/react/viewmanagers/CardFieldManagerDelegate.java +73 -0
  71. package/android/src/oldarch/java/com/facebook/react/viewmanagers/CardFieldManagerInterface.java +31 -0
  72. package/android/src/oldarch/java/com/facebook/react/viewmanagers/CardFormManagerDelegate.java +67 -0
  73. package/android/src/oldarch/java/com/facebook/react/viewmanagers/CardFormManagerInterface.java +29 -0
  74. package/android/src/oldarch/java/com/facebook/react/viewmanagers/EmbeddedPaymentElementViewManagerDelegate.java +49 -0
  75. package/android/src/oldarch/java/com/facebook/react/viewmanagers/EmbeddedPaymentElementViewManagerInterface.java +21 -0
  76. package/android/src/oldarch/java/com/facebook/react/viewmanagers/GooglePayButtonManagerDelegate.java +38 -0
  77. package/android/src/oldarch/java/com/facebook/react/viewmanagers/GooglePayButtonManagerInterface.java +19 -0
  78. package/android/src/oldarch/java/com/facebook/react/viewmanagers/StripeContainerManagerDelegate.java +32 -0
  79. package/android/src/oldarch/java/com/facebook/react/viewmanagers/StripeContainerManagerInterface.java +17 -0
  80. package/android/src/oldarch/java/com/reactnativestripesdk/NativeStripeSdkModuleSpec.java +310 -0
  81. package/ios/AddressSheet/AddressSheetUtils.swift +21 -19
  82. package/ios/AddressSheet/AddressSheetView.swift +23 -17
  83. package/ios/ApplePayButtonManager.m +0 -1
  84. package/ios/ApplePayButtonManager.swift +1 -3
  85. package/ios/ApplePayButtonView.swift +25 -20
  86. package/ios/ApplePayViewController.swift +22 -22
  87. package/ios/AuBECSDebitFormView.swift +14 -8
  88. package/ios/CardFieldManager.swift +1 -4
  89. package/ios/CardFieldView.swift +28 -25
  90. package/ios/CardFormManager.swift +1 -4
  91. package/ios/CardFormView.swift +25 -16
  92. package/ios/CustomerSheet/CustomerSheetUtils.swift +12 -16
  93. package/ios/CustomerSheet/ReactNativeCustomerAdapter.swift +8 -8
  94. package/ios/EmbeddedPaymentElementManager.m +6 -0
  95. package/ios/EmbeddedPaymentElementView.swift +49 -0
  96. package/ios/NewArch/AddToWalletButtonComponentView.h +10 -0
  97. package/ios/NewArch/AddToWalletButtonComponentView.mm +93 -0
  98. package/ios/NewArch/AddressSheetViewComponentView.h +10 -0
  99. package/ios/NewArch/AddressSheetViewComponentView.mm +109 -0
  100. package/ios/NewArch/ApplePayButtonComponentView.h +10 -0
  101. package/ios/NewArch/ApplePayButtonComponentView.mm +124 -0
  102. package/ios/NewArch/AuBECSDebitFormComponentView.h +10 -0
  103. package/ios/NewArch/AuBECSDebitFormComponentView.mm +95 -0
  104. package/ios/NewArch/CardFieldComponentView.h +10 -0
  105. package/ios/NewArch/CardFieldComponentView.mm +125 -0
  106. package/ios/NewArch/CardFormComponentView.h +10 -0
  107. package/ios/NewArch/CardFormComponentView.mm +108 -0
  108. package/ios/NewArch/EmbeddedPaymentElementViewComponentView.h +10 -0
  109. package/ios/NewArch/EmbeddedPaymentElementViewComponentView.mm +81 -0
  110. package/ios/NewArch/StripeContainerComponentView.h +10 -0
  111. package/ios/NewArch/StripeContainerComponentView.mm +74 -0
  112. package/ios/NewArch/StripeNewArchConversions.h +20 -0
  113. package/ios/NewArch/StripeNewArchConversions.mm +47 -0
  114. package/ios/OldArch/StripeSdkEventEmitterCompat.h +27 -0
  115. package/ios/OldArch/StripeSdkEventEmitterCompat.m +105 -0
  116. package/ios/PaymentOptionDisplayData+ReactNative.swift +55 -0
  117. package/ios/PaymentSheetAppearance.swift +194 -1
  118. package/ios/PushProvisioning/AddToWalletButtonView.swift +19 -13
  119. package/ios/StripeContainerView.swift +5 -3
  120. package/ios/StripeSdk.h +21 -0
  121. package/ios/StripeSdk.mm +415 -0
  122. package/ios/StripeSdkEmitter.swift +19 -0
  123. package/ios/{StripeSdk+CustomerSheet.swift → StripeSdkImpl+CustomerSheet.swift} +24 -25
  124. package/ios/StripeSdkImpl+Embedded.swift +327 -0
  125. package/ios/{StripeSdk+PaymentSheet.swift → StripeSdkImpl+PaymentSheet.swift} +18 -29
  126. package/ios/{StripeSdk.swift → StripeSdkImpl.swift} +50 -72
  127. package/ios/StripeSwiftInterop.h +25 -0
  128. package/ios/stripe_react_native.h +2 -0
  129. package/lib/commonjs/components/AddToWalletButton.js +1 -1
  130. package/lib/commonjs/components/AddToWalletButton.js.map +1 -1
  131. package/lib/commonjs/components/AddressSheet.js +1 -1
  132. package/lib/commonjs/components/AddressSheet.js.map +1 -1
  133. package/lib/commonjs/components/AuBECSDebitForm.js +1 -1
  134. package/lib/commonjs/components/AuBECSDebitForm.js.map +1 -1
  135. package/lib/commonjs/components/CardField.js +1 -1
  136. package/lib/commonjs/components/CardField.js.map +1 -1
  137. package/lib/commonjs/components/CardForm.js +1 -1
  138. package/lib/commonjs/components/CardForm.js.map +1 -1
  139. package/lib/commonjs/components/CustomerSheet.js +1 -1
  140. package/lib/commonjs/components/CustomerSheet.js.map +1 -1
  141. package/lib/commonjs/components/PlatformPayButton.js +1 -1
  142. package/lib/commonjs/components/PlatformPayButton.js.map +1 -1
  143. package/lib/commonjs/components/StripeContainer.js +1 -1
  144. package/lib/commonjs/components/StripeContainer.js.map +1 -1
  145. package/lib/commonjs/components/StripeProvider.js +1 -1
  146. package/lib/commonjs/components/StripeProvider.js.map +1 -1
  147. package/lib/commonjs/events.js +2 -0
  148. package/lib/commonjs/events.js.map +1 -0
  149. package/lib/commonjs/functions.js +1 -1
  150. package/lib/commonjs/functions.js.map +1 -1
  151. package/lib/commonjs/index.js +1 -1
  152. package/lib/commonjs/index.js.map +1 -1
  153. package/lib/commonjs/specs/NativeAddToWalletButton.js +2 -0
  154. package/lib/commonjs/specs/NativeAddToWalletButton.js.map +1 -0
  155. package/lib/commonjs/specs/NativeAddressSheet.js +2 -0
  156. package/lib/commonjs/specs/NativeAddressSheet.js.map +1 -0
  157. package/lib/commonjs/specs/NativeApplePayButton.js +2 -0
  158. package/lib/commonjs/specs/NativeApplePayButton.js.map +1 -0
  159. package/lib/commonjs/specs/NativeAuBECSDebitForm.js +2 -0
  160. package/lib/commonjs/specs/NativeAuBECSDebitForm.js.map +1 -0
  161. package/lib/commonjs/specs/NativeCardField.js +2 -0
  162. package/lib/commonjs/specs/NativeCardField.js.map +1 -0
  163. package/lib/commonjs/specs/NativeCardForm.js +2 -0
  164. package/lib/commonjs/specs/NativeCardForm.js.map +1 -0
  165. package/lib/commonjs/specs/NativeEmbeddedPaymentElement.js +2 -0
  166. package/lib/commonjs/specs/NativeEmbeddedPaymentElement.js.map +1 -0
  167. package/lib/commonjs/specs/NativeGooglePayButton.js +2 -0
  168. package/lib/commonjs/specs/NativeGooglePayButton.js.map +1 -0
  169. package/lib/commonjs/specs/NativeStripeContainer.js +2 -0
  170. package/lib/commonjs/specs/NativeStripeContainer.js.map +1 -0
  171. package/lib/commonjs/specs/NativeStripeSdkModule.js +2 -0
  172. package/lib/commonjs/specs/NativeStripeSdkModule.js.map +1 -0
  173. package/lib/commonjs/specs/utils.js +2 -0
  174. package/lib/commonjs/specs/utils.js.map +1 -0
  175. package/lib/commonjs/types/EmbeddedPaymentElement.js +2 -0
  176. package/lib/commonjs/types/EmbeddedPaymentElement.js.map +1 -0
  177. package/lib/commonjs/types/PaymentSheet.js +1 -1
  178. package/lib/commonjs/types/PaymentSheet.js.map +1 -1
  179. package/lib/module/components/AddToWalletButton.js +1 -1
  180. package/lib/module/components/AddToWalletButton.js.map +1 -1
  181. package/lib/module/components/AddressSheet.js +1 -1
  182. package/lib/module/components/AddressSheet.js.map +1 -1
  183. package/lib/module/components/AuBECSDebitForm.js +1 -1
  184. package/lib/module/components/AuBECSDebitForm.js.map +1 -1
  185. package/lib/module/components/CardField.js +1 -1
  186. package/lib/module/components/CardField.js.map +1 -1
  187. package/lib/module/components/CardForm.js +1 -1
  188. package/lib/module/components/CardForm.js.map +1 -1
  189. package/lib/module/components/CustomerSheet.js +1 -1
  190. package/lib/module/components/CustomerSheet.js.map +1 -1
  191. package/lib/module/components/PlatformPayButton.js +1 -1
  192. package/lib/module/components/PlatformPayButton.js.map +1 -1
  193. package/lib/module/components/StripeContainer.js +1 -1
  194. package/lib/module/components/StripeContainer.js.map +1 -1
  195. package/lib/module/components/StripeProvider.js +1 -1
  196. package/lib/module/components/StripeProvider.js.map +1 -1
  197. package/lib/module/events.js +2 -0
  198. package/lib/module/events.js.map +1 -0
  199. package/lib/module/functions.js +1 -1
  200. package/lib/module/functions.js.map +1 -1
  201. package/lib/module/index.js +1 -1
  202. package/lib/module/index.js.map +1 -1
  203. package/lib/module/specs/NativeAddToWalletButton.js +2 -0
  204. package/lib/module/specs/NativeAddToWalletButton.js.map +1 -0
  205. package/lib/module/specs/NativeAddressSheet.js +2 -0
  206. package/lib/module/specs/NativeAddressSheet.js.map +1 -0
  207. package/lib/module/specs/NativeApplePayButton.js +2 -0
  208. package/lib/module/specs/NativeApplePayButton.js.map +1 -0
  209. package/lib/module/specs/NativeAuBECSDebitForm.js +2 -0
  210. package/lib/module/specs/NativeAuBECSDebitForm.js.map +1 -0
  211. package/lib/module/specs/NativeCardField.js +2 -0
  212. package/lib/module/specs/NativeCardField.js.map +1 -0
  213. package/lib/module/specs/NativeCardForm.js +2 -0
  214. package/lib/module/specs/NativeCardForm.js.map +1 -0
  215. package/lib/module/specs/NativeEmbeddedPaymentElement.js +2 -0
  216. package/lib/module/specs/NativeEmbeddedPaymentElement.js.map +1 -0
  217. package/lib/module/specs/NativeGooglePayButton.js +2 -0
  218. package/lib/module/specs/NativeGooglePayButton.js.map +1 -0
  219. package/lib/module/specs/NativeStripeContainer.js +2 -0
  220. package/lib/module/specs/NativeStripeContainer.js.map +1 -0
  221. package/lib/module/specs/NativeStripeSdkModule.js +2 -0
  222. package/lib/module/specs/NativeStripeSdkModule.js.map +1 -0
  223. package/lib/module/specs/utils.js +2 -0
  224. package/lib/module/specs/utils.js.map +1 -0
  225. package/lib/module/types/EmbeddedPaymentElement.js +2 -0
  226. package/lib/module/types/EmbeddedPaymentElement.js.map +1 -0
  227. package/lib/module/types/PaymentSheet.js +1 -1
  228. package/lib/module/types/PaymentSheet.js.map +1 -1
  229. package/lib/typescript/src/components/AddToWalletButton.d.ts.map +1 -1
  230. package/lib/typescript/src/components/AddressSheet.d.ts.map +1 -1
  231. package/lib/typescript/src/components/AuBECSDebitForm.d.ts.map +1 -1
  232. package/lib/typescript/src/components/CardField.d.ts +1 -1
  233. package/lib/typescript/src/components/CardField.d.ts.map +1 -1
  234. package/lib/typescript/src/components/CardForm.d.ts +1 -1
  235. package/lib/typescript/src/components/CardForm.d.ts.map +1 -1
  236. package/lib/typescript/src/components/CustomerSheet.d.ts +1 -1
  237. package/lib/typescript/src/components/CustomerSheet.d.ts.map +1 -1
  238. package/lib/typescript/src/components/StripeContainer.d.ts.map +1 -1
  239. package/lib/typescript/src/events.d.ts +13 -0
  240. package/lib/typescript/src/events.d.ts.map +1 -0
  241. package/lib/typescript/src/functions.d.ts.map +1 -1
  242. package/lib/typescript/src/hooks/useFinancialConnectionsSheet.d.ts +4 -4
  243. package/lib/typescript/src/hooks/useFinancialConnectionsSheet.d.ts.map +1 -1
  244. package/lib/typescript/src/hooks/useStripe.d.ts +2 -2
  245. package/lib/typescript/src/hooks/useStripe.d.ts.map +1 -1
  246. package/lib/typescript/src/index.d.ts +2 -0
  247. package/lib/typescript/src/index.d.ts.map +1 -1
  248. package/lib/typescript/src/specs/NativeAddToWalletButton.d.ts +27 -0
  249. package/lib/typescript/src/specs/NativeAddToWalletButton.d.ts.map +1 -0
  250. package/lib/typescript/src/specs/NativeAddressSheet.d.ts +34 -0
  251. package/lib/typescript/src/specs/NativeAddressSheet.d.ts.map +1 -0
  252. package/lib/typescript/src/specs/NativeApplePayButton.d.ts +28 -0
  253. package/lib/typescript/src/specs/NativeApplePayButton.d.ts.map +1 -0
  254. package/lib/typescript/src/specs/NativeAuBECSDebitForm.d.ts +19 -0
  255. package/lib/typescript/src/specs/NativeAuBECSDebitForm.d.ts.map +1 -0
  256. package/lib/typescript/src/specs/NativeCardField.d.ts +33 -0
  257. package/lib/typescript/src/specs/NativeCardField.d.ts.map +1 -0
  258. package/lib/typescript/src/specs/NativeCardForm.d.ts +31 -0
  259. package/lib/typescript/src/specs/NativeCardForm.d.ts.map +1 -0
  260. package/lib/typescript/src/specs/NativeEmbeddedPaymentElement.d.ts +17 -0
  261. package/lib/typescript/src/specs/NativeEmbeddedPaymentElement.d.ts.map +1 -0
  262. package/lib/typescript/src/specs/NativeGooglePayButton.d.ts +11 -0
  263. package/lib/typescript/src/specs/NativeGooglePayButton.d.ts.map +1 -0
  264. package/lib/typescript/src/specs/NativeStripeContainer.d.ts +8 -0
  265. package/lib/typescript/src/specs/NativeStripeContainer.d.ts.map +1 -0
  266. package/lib/typescript/src/specs/NativeStripeSdkModule.d.ts +93 -0
  267. package/lib/typescript/src/specs/NativeStripeSdkModule.d.ts.map +1 -0
  268. package/lib/typescript/src/specs/utils.d.ts +20 -0
  269. package/lib/typescript/src/specs/utils.d.ts.map +1 -0
  270. package/lib/typescript/src/types/CustomerSheet.d.ts +1 -5
  271. package/lib/typescript/src/types/CustomerSheet.d.ts.map +1 -1
  272. package/lib/typescript/src/types/EmbeddedPaymentElement.d.ts +161 -0
  273. package/lib/typescript/src/types/EmbeddedPaymentElement.d.ts.map +1 -0
  274. package/lib/typescript/src/types/PaymentSheet.d.ts +97 -4
  275. package/lib/typescript/src/types/PaymentSheet.d.ts.map +1 -1
  276. package/lib/typescript/src/types/components/CardFieldInput.d.ts +3 -2
  277. package/lib/typescript/src/types/components/CardFieldInput.d.ts.map +1 -1
  278. package/lib/typescript/src/types/components/CardFormView.d.ts +3 -1
  279. package/lib/typescript/src/types/components/CardFormView.d.ts.map +1 -1
  280. package/package.json +22 -2
  281. package/src/components/AddToWalletButton.tsx +2 -5
  282. package/src/components/AddressSheet.tsx +5 -16
  283. package/src/components/AuBECSDebitForm.tsx +3 -12
  284. package/src/components/CardField.tsx +20 -30
  285. package/src/components/CardForm.tsx +14 -29
  286. package/src/components/CustomerSheet.tsx +23 -25
  287. package/src/components/PlatformPayButton.tsx +6 -6
  288. package/src/components/StripeContainer.tsx +5 -12
  289. package/src/components/StripeProvider.tsx +1 -1
  290. package/src/events.ts +49 -0
  291. package/src/functions.ts +13 -24
  292. package/src/hooks/useFinancialConnectionsSheet.tsx +2 -2
  293. package/src/hooks/useStripe.tsx +2 -2
  294. package/src/index.tsx +3 -0
  295. package/src/specs/NativeAddToWalletButton.ts +40 -0
  296. package/src/specs/NativeAddressSheet.ts +50 -0
  297. package/src/specs/NativeApplePayButton.ts +40 -0
  298. package/src/specs/NativeAuBECSDebitForm.ts +24 -0
  299. package/src/specs/NativeCardField.ts +51 -0
  300. package/src/specs/NativeCardForm.ts +43 -0
  301. package/src/specs/NativeEmbeddedPaymentElement.ts +28 -0
  302. package/src/specs/NativeGooglePayButton.ts +20 -0
  303. package/src/specs/NativeStripeContainer.ts +12 -0
  304. package/src/specs/NativeStripeSdkModule.ts +219 -0
  305. package/src/specs/utils.ts +22 -0
  306. package/src/types/CustomerSheet.ts +1 -5
  307. package/src/types/EmbeddedPaymentElement.tsx +467 -0
  308. package/src/types/PaymentSheet.ts +114 -4
  309. package/src/types/components/CardFieldInput.ts +1 -2
  310. package/src/types/components/CardFormView.ts +1 -1
  311. package/stripe-react-native.podspec +27 -2
  312. package/android/src/main/java/com/reactnativestripesdk/CardChangedEvent.kt +0 -54
  313. package/ios/StripeSdk.m +0 -244
  314. package/lib/commonjs/NativeStripeSdk.js +0 -2
  315. package/lib/commonjs/NativeStripeSdk.js.map +0 -1
  316. package/lib/commonjs/components/ApplePayButtonNative.js +0 -2
  317. package/lib/commonjs/components/ApplePayButtonNative.js.map +0 -1
  318. package/lib/commonjs/components/GooglePayButtonNative.js +0 -2
  319. package/lib/commonjs/components/GooglePayButtonNative.js.map +0 -1
  320. package/lib/module/NativeStripeSdk.js +0 -2
  321. package/lib/module/NativeStripeSdk.js.map +0 -1
  322. package/lib/module/components/ApplePayButtonNative.js +0 -2
  323. package/lib/module/components/ApplePayButtonNative.js.map +0 -1
  324. package/lib/module/components/GooglePayButtonNative.js +0 -2
  325. package/lib/module/components/GooglePayButtonNative.js.map +0 -1
  326. package/lib/typescript/src/NativeStripeSdk.d.ts +0 -58
  327. package/lib/typescript/src/NativeStripeSdk.d.ts.map +0 -1
  328. package/lib/typescript/src/components/ApplePayButtonNative.d.ts +0 -4
  329. package/lib/typescript/src/components/ApplePayButtonNative.d.ts.map +0 -1
  330. package/lib/typescript/src/components/GooglePayButtonNative.d.ts +0 -4
  331. package/lib/typescript/src/components/GooglePayButtonNative.d.ts.map +0 -1
  332. package/src/NativeStripeSdk.tsx +0 -159
  333. package/src/components/ApplePayButtonNative.tsx +0 -5
  334. package/src/components/GooglePayButtonNative.tsx +0 -7
@@ -0,0 +1,108 @@
1
+ #import "CardFormComponentView.h"
2
+
3
+ #import <react/renderer/components/rnstripe/ComponentDescriptors.h>
4
+ #import <react/renderer/components/rnstripe/EventEmitters.h>
5
+ #import <react/renderer/components/rnstripe/Props.h>
6
+ #import <react/renderer/components/rnstripe/RCTComponentViewHelpers.h>
7
+
8
+ #import <React/RCTConversions.h>
9
+ #import <React/RCTFabricComponentsPlugins.h>
10
+ #import "RCTFollyConvert.h"
11
+ #import "StripeNewArchConversions.h"
12
+ #import "StripeSwiftInterop.h"
13
+
14
+ using namespace facebook::react;
15
+ using namespace stripe::react;
16
+
17
+ @interface CardFormComponentView () <RCTCardFormViewProtocol>
18
+ @end
19
+
20
+ @implementation CardFormComponentView {
21
+ CardFormView *_view;
22
+ }
23
+
24
+ // Needed because of this: https://github.com/facebook/react-native/pull/37274
25
+ + (void)load
26
+ {
27
+ [super load];
28
+ }
29
+
30
+ - (instancetype)initWithFrame:(CGRect)frame
31
+ {
32
+ if (self = [super initWithFrame:frame]) {
33
+ static const auto defaultProps = std::make_shared<const CardFormProps>();
34
+ _props = defaultProps;
35
+ [self prepareView];
36
+ }
37
+
38
+ return self;
39
+ }
40
+
41
+ - (void)prepareView
42
+ {
43
+ _view = [[CardFormView alloc] initWithFrame:self.frame];
44
+ self.contentView = _view;
45
+
46
+ __weak __typeof(self) weakSelf = self;
47
+
48
+ _view.onFormComplete = ^(NSDictionary *event) {
49
+ __typeof(self) strongSelf = weakSelf;
50
+ if (!strongSelf || !strongSelf->_eventEmitter) {
51
+ return;
52
+ }
53
+ CardFormEventEmitter::OnFormComplete emitterEvent = {.card = convertIdToFollyDynamic(event[@"card"])};
54
+ std::static_pointer_cast<const CardFormEventEmitter>(strongSelf->_eventEmitter)
55
+ ->onFormComplete(std::move(emitterEvent));
56
+ };
57
+ }
58
+
59
+ - (void)updateProps:(const facebook::react::Props::Shared &)props
60
+ oldProps:(const facebook::react::Props::Shared &)oldProps
61
+ {
62
+ const auto &newViewProps = *std::static_pointer_cast<const CardFormProps>(props);
63
+
64
+ _view.autofocus = newViewProps.autofocus;
65
+ _view.cardStyle = convertFollyDynamicToNSDictionary(newViewProps.cardStyle);
66
+ _view.dangerouslyGetFullCardDetails = newViewProps.dangerouslyGetFullCardDetails;
67
+ _view.disabled = newViewProps.disabled;
68
+ _view.preferredNetworks = convertIntVectorToNSArray(newViewProps.preferredNetworks);
69
+
70
+ [super updateProps:props oldProps:oldProps];
71
+
72
+ [_view didSetProps];
73
+ }
74
+
75
+ #pragma mark - RCTComponentViewProtocol
76
+
77
+ + (ComponentDescriptorProvider)componentDescriptorProvider
78
+ {
79
+ return concreteComponentDescriptorProvider<CardFormComponentDescriptor>();
80
+ }
81
+
82
+ - (void)prepareForRecycle
83
+ {
84
+ [super prepareForRecycle];
85
+ [self prepareView];
86
+ }
87
+
88
+ - (void)handleCommand:(const NSString *)commandName args:(const NSArray *)args
89
+ {
90
+ RCTCardFormHandleCommand(self, commandName, args);
91
+ }
92
+
93
+ - (void)blur
94
+ {
95
+ [_view blur];
96
+ }
97
+
98
+ - (void)focus
99
+ {
100
+ [_view focus];
101
+ }
102
+
103
+ @end
104
+
105
+ Class<RCTComponentViewProtocol> CardFormCls(void)
106
+ {
107
+ return CardFormComponentView.class;
108
+ }
@@ -0,0 +1,10 @@
1
+ #import <UIKit/UIKit.h>
2
+ #import <React/RCTViewComponentView.h>
3
+
4
+ NS_ASSUME_NONNULL_BEGIN
5
+
6
+ @interface EmbeddedPaymentElementViewComponentView : RCTViewComponentView
7
+
8
+ @end
9
+
10
+ NS_ASSUME_NONNULL_END
@@ -0,0 +1,81 @@
1
+ #import "EmbeddedPaymentElementViewComponentView.h"
2
+
3
+ #import <react/renderer/components/rnstripe/ComponentDescriptors.h>
4
+ #import <react/renderer/components/rnstripe/EventEmitters.h>
5
+ #import <react/renderer/components/rnstripe/Props.h>
6
+ #import <react/renderer/components/rnstripe/RCTComponentViewHelpers.h>
7
+
8
+ #import <React/RCTConversions.h>
9
+ #import <React/RCTFabricComponentsPlugins.h>
10
+
11
+ #import "RCTFollyConvert.h"
12
+ #import "StripeSwiftInterop.h"
13
+
14
+ using namespace facebook::react;
15
+
16
+ @interface EmbeddedPaymentElementViewComponentView () <RCTEmbeddedPaymentElementViewViewProtocol>
17
+ @end
18
+
19
+ @implementation EmbeddedPaymentElementViewComponentView {
20
+ EmbeddedPaymentElementContainerView *_view;
21
+ }
22
+
23
+ // Needed because of this: https://github.com/facebook/react-native/pull/37274
24
+ + (void)load
25
+ {
26
+ [super load];
27
+ }
28
+
29
+ - (instancetype)initWithFrame:(CGRect)frame
30
+ {
31
+ if (self = [super initWithFrame:frame]) {
32
+ static const auto defaultProps = std::make_shared<const EmbeddedPaymentElementViewProps>();
33
+ _props = defaultProps;
34
+ [self prepareView];
35
+ }
36
+
37
+ return self;
38
+ }
39
+
40
+ - (void)prepareView
41
+ {
42
+ _view = [EmbeddedPaymentElementContainerView new];
43
+ self.contentView = _view;
44
+ }
45
+
46
+ - (void)handleCommand:(const NSString *)commandName args:(const NSArray *)args
47
+ {
48
+ RCTEmbeddedPaymentElementViewHandleCommand(self, commandName, args);
49
+ }
50
+
51
+ - (void)clearPaymentOption
52
+ {
53
+ // Android only.
54
+ }
55
+
56
+ - (void)confirm
57
+ {
58
+ // Android only.
59
+ }
60
+
61
+ #pragma mark - RCTComponentViewProtocol
62
+
63
+ + (ComponentDescriptorProvider)componentDescriptorProvider
64
+ {
65
+ return concreteComponentDescriptorProvider<EmbeddedPaymentElementViewComponentDescriptor>();
66
+ }
67
+
68
+ - (void)prepareForRecycle
69
+ {
70
+ [super prepareForRecycle];
71
+ [self prepareView];
72
+ }
73
+
74
+
75
+
76
+ @end
77
+
78
+ Class<RCTComponentViewProtocol> EmbeddedPaymentElementViewCls(void)
79
+ {
80
+ return EmbeddedPaymentElementViewComponentView.class;
81
+ }
@@ -0,0 +1,10 @@
1
+ #import <UIKit/UIKit.h>
2
+ #import <React/RCTViewComponentView.h>
3
+
4
+ NS_ASSUME_NONNULL_BEGIN
5
+
6
+ @interface StripeContainerComponentView : RCTViewComponentView
7
+
8
+ @end
9
+
10
+ NS_ASSUME_NONNULL_END
@@ -0,0 +1,74 @@
1
+ #import "StripeContainerComponentView.h"
2
+
3
+ #import <react/renderer/components/rnstripe/ComponentDescriptors.h>
4
+ #import <react/renderer/components/rnstripe/EventEmitters.h>
5
+ #import <react/renderer/components/rnstripe/Props.h>
6
+ #import <react/renderer/components/rnstripe/RCTComponentViewHelpers.h>
7
+
8
+ #import <React/RCTConversions.h>
9
+ #import <React/RCTFabricComponentsPlugins.h>
10
+
11
+ #import "RCTFollyConvert.h"
12
+ #import "StripeSwiftInterop.h"
13
+
14
+ using namespace facebook::react;
15
+
16
+ @interface StripeContainerComponentView () <RCTStripeContainerViewProtocol>
17
+ @end
18
+
19
+ @implementation StripeContainerComponentView {
20
+ StripeContainerView *_view;
21
+ }
22
+
23
+ // Needed because of this: https://github.com/facebook/react-native/pull/37274
24
+ + (void)load
25
+ {
26
+ [super load];
27
+ }
28
+
29
+ - (instancetype)initWithFrame:(CGRect)frame
30
+ {
31
+ if (self = [super initWithFrame:frame]) {
32
+ static const auto defaultProps = std::make_shared<const StripeContainerProps>();
33
+ _props = defaultProps;
34
+ [self prepareView];
35
+ }
36
+
37
+ return self;
38
+ }
39
+
40
+ - (void)prepareView
41
+ {
42
+ _view = [[StripeContainerView alloc] initWithFrame:self.frame];
43
+ self.contentView = _view;
44
+ }
45
+
46
+ - (void)updateProps:(const facebook::react::Props::Shared &)props
47
+ oldProps:(const facebook::react::Props::Shared &)oldProps
48
+ {
49
+ const auto &newViewProps = *std::static_pointer_cast<const StripeContainerProps>(props);
50
+
51
+ _view.keyboardShouldPersistTaps = newViewProps.keyboardShouldPersistTaps;
52
+
53
+ [super updateProps:props oldProps:oldProps];
54
+ }
55
+
56
+ #pragma mark - RCTComponentViewProtocol
57
+
58
+ + (ComponentDescriptorProvider)componentDescriptorProvider
59
+ {
60
+ return concreteComponentDescriptorProvider<StripeContainerComponentDescriptor>();
61
+ }
62
+
63
+ - (void)prepareForRecycle
64
+ {
65
+ [super prepareForRecycle];
66
+ [self prepareView];
67
+ }
68
+
69
+ @end
70
+
71
+ Class<RCTComponentViewProtocol> StripeContainerCls(void)
72
+ {
73
+ return StripeContainerComponentView.class;
74
+ }
@@ -0,0 +1,20 @@
1
+ #import <Foundation/Foundation.h>
2
+
3
+ #include <folly/dynamic.h>
4
+ #include <vector>
5
+
6
+ NS_ASSUME_NONNULL_BEGIN
7
+
8
+ namespace stripe::react {
9
+
10
+ NSArray<NSString *> * convertStringVectorToNSArray(const std::vector<std::string> &);
11
+
12
+ NSArray<NSNumber *> * convertIntVectorToNSArray(const std::vector<int> &);
13
+
14
+ NSDictionary * _Nullable convertFollyDynamicToNSDictionaryOrNil(const folly::dynamic &dyn);
15
+
16
+ NSDictionary * convertFollyDynamicToNSDictionary(const folly::dynamic &dyn);
17
+
18
+ }
19
+
20
+ NS_ASSUME_NONNULL_END
@@ -0,0 +1,47 @@
1
+ #import <Foundation/Foundation.h>
2
+ #import <React/RCTConversions.h>
3
+ #import "RCTFollyConvert.h"
4
+
5
+ namespace stripe::react {
6
+
7
+ NSArray<NSString *> * convertStringVectorToNSArray(const std::vector<std::string> &values) {
8
+ NSMutableArray<NSString *> *result = [[NSMutableArray alloc] initWithCapacity:values.size()];
9
+ for (const auto &value : values) {
10
+ [result addObject:RCTNSStringFromString(value)];
11
+ }
12
+ return result;
13
+ }
14
+
15
+ NSArray<NSNumber *> * convertIntVectorToNSArray(const std::vector<int> &values) {
16
+ NSMutableArray<NSNumber *> *result = [[NSMutableArray alloc] initWithCapacity:values.size()];
17
+ for (int value : values) {
18
+ [result addObject:@(value)];
19
+ }
20
+ return result;
21
+ }
22
+
23
+ NSDictionary * _Nullable convertFollyDynamicToNSDictionaryOrNil(const folly::dynamic &dyn)
24
+ {
25
+ switch (dyn.type()) {
26
+ case folly::dynamic::OBJECT: {
27
+ NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithCapacity:dyn.size()];
28
+ for (const auto &elem : dyn.items()) {
29
+ id key = facebook::react::convertFollyDynamicToId(elem.first);
30
+ id value = facebook::react::convertFollyDynamicToId(elem.second);
31
+ if (key && value) {
32
+ dict[key] = value;
33
+ }
34
+ }
35
+ return dict;
36
+ }
37
+ default:
38
+ return nil;
39
+ }
40
+ }
41
+
42
+ NSDictionary * convertFollyDynamicToNSDictionary(const folly::dynamic &dyn)
43
+ {
44
+ return convertFollyDynamicToNSDictionaryOrNil(dyn) ?: [NSDictionary new];
45
+ }
46
+
47
+ }
@@ -0,0 +1,27 @@
1
+ // This is a compat layer for NativeStripeSdkModuleSpecBase which is generated with codegen
2
+ // for the new arch. This implements the same methods, but using old arch apis.
3
+
4
+ #ifndef RCT_NEW_ARCH_ENABLED
5
+
6
+ #import <React/RCTEventEmitter.h>
7
+
8
+ @interface StripeSdkEventEmitterCompat : RCTEventEmitter
9
+ - (void)emitOnConfirmHandlerCallback:(NSDictionary *)value;
10
+ - (void)emitOnFinancialConnectionsEvent:(NSDictionary *)value;
11
+ - (void)emitOnOrderTrackingCallback;
12
+ - (void)emitOnCustomerAdapterFetchPaymentMethodsCallback;
13
+ - (void)emitOnCustomerAdapterAttachPaymentMethodCallback:(NSDictionary *)value;
14
+ - (void)emitOnCustomerAdapterDetachPaymentMethodCallback:(NSDictionary *)value;
15
+ - (void)emitOnCustomerAdapterSetSelectedPaymentOptionCallback:(NSDictionary *)value;
16
+ - (void)emitOnCustomerAdapterFetchSelectedPaymentOptionCallback;
17
+ - (void)emitOnCustomerAdapterSetupIntentClientSecretForCustomerAttachCallback;
18
+ - (void)emitEmbeddedPaymentElementDidUpdateHeight:(NSDictionary *)value;
19
+ - (void)emitEmbeddedPaymentElementWillPresent;
20
+ - (void)emitEmbeddedPaymentElementDidUpdatePaymentOption:(NSDictionary *)value;
21
+ - (void)emitEmbeddedPaymentElementFormSheetConfirmComplete:(NSDictionary *)value;
22
+ - (void)emitEmbeddedPaymentElementRowSelectionImmediateAction;
23
+ - (void)emitEmbeddedPaymentElementLoadingFailed:(NSDictionary *)value;
24
+
25
+ @end
26
+
27
+ #endif
@@ -0,0 +1,105 @@
1
+ #ifndef RCT_NEW_ARCH_ENABLED
2
+
3
+ #import "StripeSdkEventEmitterCompat.h"
4
+
5
+ @implementation StripeSdkEventEmitterCompat
6
+
7
+ - (NSArray<NSString *> *)supportedEvents
8
+ {
9
+ return @[
10
+ @"onOrderTrackingCallback",
11
+ @"onConfirmHandlerCallback",
12
+ @"onCustomerAdapterFetchPaymentMethodsCallback",
13
+ @"onCustomerAdapterAttachPaymentMethodCallback",
14
+ @"onCustomerAdapterDetachPaymentMethodCallback",
15
+ @"onCustomerAdapterSetSelectedPaymentOptionCallback",
16
+ @"onCustomerAdapterFetchSelectedPaymentOptionCallback",
17
+ @"onCustomerAdapterSetupIntentClientSecretForCustomerAttachCallback",
18
+ @"onFinancialConnectionsEvent",
19
+ @"embeddedPaymentElementDidUpdateHeight",
20
+ @"embeddedPaymentElementWillPresent",
21
+ @"embeddedPaymentElementDidUpdatePaymentOption",
22
+ @"embeddedPaymentElementFormSheetConfirmComplete",
23
+ @"embeddedPaymentElementRowSelectionImmediateAction",
24
+ @"embeddedPaymentElementLoadingFailed"
25
+ ];
26
+ }
27
+
28
+ - (void)emitOnConfirmHandlerCallback:(NSDictionary *)value
29
+ {
30
+ [self sendEventWithName:@"onConfirmHandlerCallback" body:value];
31
+ }
32
+
33
+ - (void)emitOnFinancialConnectionsEvent:(NSDictionary *)value
34
+ {
35
+ [self sendEventWithName:@"onFinancialConnectionsEvent" body:value];
36
+ }
37
+
38
+ - (void)emitOnOrderTrackingCallback
39
+ {
40
+ [self sendEventWithName:@"onOrderTrackingCallback" body:@{}];
41
+ }
42
+
43
+ - (void)emitOnCustomerAdapterFetchPaymentMethodsCallback
44
+ {
45
+ [self sendEventWithName:@"onCustomerAdapterFetchPaymentMethodsCallback" body:@{}];
46
+ }
47
+
48
+ - (void)emitOnCustomerAdapterAttachPaymentMethodCallback:(NSDictionary *)value
49
+ {
50
+ [self sendEventWithName:@"onCustomerAdapterAttachPaymentMethodCallback" body:value];
51
+ }
52
+
53
+ - (void)emitOnCustomerAdapterDetachPaymentMethodCallback:(NSDictionary *)value
54
+ {
55
+ [self sendEventWithName:@"onCustomerAdapterDetachPaymentMethodCallback" body:value];
56
+ }
57
+
58
+ - (void)emitOnCustomerAdapterSetSelectedPaymentOptionCallback:(NSDictionary *)value
59
+ {
60
+ [self sendEventWithName:@"onCustomerAdapterSetSelectedPaymentOptionCallback" body:value];
61
+ }
62
+
63
+ - (void)emitOnCustomerAdapterFetchSelectedPaymentOptionCallback
64
+ {
65
+ [self sendEventWithName:@"onCustomerAdapterFetchSelectedPaymentOptionCallback" body:@{}];
66
+ }
67
+
68
+ - (void)emitOnCustomerAdapterSetupIntentClientSecretForCustomerAttachCallback
69
+ {
70
+ [self sendEventWithName:@"onCustomerAdapterSetupIntentClientSecretForCustomerAttachCallback" body:@{}];
71
+ }
72
+
73
+ - (void)emitEmbeddedPaymentElementDidUpdateHeight:(NSDictionary *)value
74
+ {
75
+ [self sendEventWithName:@"embeddedPaymentElementDidUpdateHeight" body:value];
76
+ }
77
+
78
+ - (void)emitEmbeddedPaymentElementWillPresent
79
+ {
80
+ [self sendEventWithName:@"embeddedPaymentElementWillPresent" body:@{}];
81
+ }
82
+
83
+ - (void)emitEmbeddedPaymentElementDidUpdatePaymentOption:(NSDictionary *)value
84
+ {
85
+ [self sendEventWithName:@"embeddedPaymentElementDidUpdatePaymentOption" body:value];
86
+ }
87
+
88
+ - (void)emitEmbeddedPaymentElementFormSheetConfirmComplete:(NSDictionary *)value
89
+ {
90
+ [self sendEventWithName:@"embeddedPaymentElementFormSheetConfirmComplete" body:value];
91
+ }
92
+
93
+ - (void)emitEmbeddedPaymentElementRowSelectionImmediateAction
94
+ {
95
+ [self sendEventWithName:@"embeddedPaymentElementRowSelectionImmediateAction" body:@{}];
96
+ }
97
+
98
+ - (void)emitEmbeddedPaymentElementLoadingFailed:(NSDictionary *)value
99
+ {
100
+ [self sendEventWithName:@"embeddedPaymentElementLoadingFailed" body:value];
101
+ }
102
+
103
+ @end
104
+
105
+ #endif
@@ -0,0 +1,55 @@
1
+ //
2
+ // PaymentOptionDisplayData+ReactNative.swift
3
+ // stripe-react-native
4
+ //
5
+ // Created by Nick Porter on 4/16/25.
6
+ //
7
+
8
+ import Foundation
9
+ @_spi(EmbeddedPaymentElementPrivateBeta) import StripePaymentSheet
10
+
11
+ extension EmbeddedPaymentElement.PaymentOptionDisplayData {
12
+ /// Convert `PaymentOptionDisplayData` into a dictionary compatible with React Native bridge.
13
+ func toDictionary() -> [String: Any] {
14
+ // Convert UIImage to Base64
15
+ let imageBase64: String = {
16
+ guard let data = image.pngData() else { return "" }
17
+ return data.base64EncodedString()
18
+ }()
19
+
20
+ // Convert BillingDetails to a dictionary
21
+ let billingDetailsDict: [String: Any] = {
22
+ guard let billing = billingDetails else {
23
+ return [:]
24
+ }
25
+
26
+ // Extract address
27
+ let addressDict: [String: Any] = {
28
+ let addr = billing.address
29
+ return [
30
+ "city": addr.city ?? "",
31
+ "country": addr.country ?? "",
32
+ "line1": addr.line1 ?? "",
33
+ "line2": addr.line2 ?? "",
34
+ "postalCode": addr.postalCode ?? "",
35
+ "state": addr.state ?? ""
36
+ ]
37
+ }()
38
+
39
+ return [
40
+ "name": billing.name ?? "",
41
+ "email": billing.email ?? "",
42
+ "phone": billing.phone ?? "",
43
+ "address": addressDict
44
+ ]
45
+ }()
46
+
47
+ // Return as a dictionary
48
+ return [
49
+ "image": imageBase64,
50
+ "label": label,
51
+ "billingDetails": billingDetailsDict,
52
+ "paymentMethodType": paymentMethodType
53
+ ]
54
+ }
55
+ }