@exodus/react-native-wallet 0.1.16

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 (211) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +268 -0
  3. package/android/build.gradle +103 -0
  4. package/android/gradle.properties +5 -0
  5. package/android/src/main/AndroidManifestNew.xml +2 -0
  6. package/android/src/main/java/com/expensify/wallet/Utils.kt +148 -0
  7. package/android/src/main/java/com/expensify/wallet/WalletModule.kt +380 -0
  8. package/android/src/main/java/com/expensify/wallet/WalletPackage.kt +48 -0
  9. package/android/src/main/java/com/expensify/wallet/components/RNAddToWalletButtonManager.kt +19 -0
  10. package/android/src/main/java/com/expensify/wallet/components/RNAddToWalletButtonView.kt +42 -0
  11. package/android/src/main/java/com/expensify/wallet/error/InvalidNetworkError.kt +6 -0
  12. package/android/src/main/java/com/expensify/wallet/event/OnCardActivatedEvent.kt +18 -0
  13. package/android/src/main/java/com/expensify/wallet/model/CardData.kt +12 -0
  14. package/android/src/main/java/com/expensify/wallet/model/CardStatus.kt +15 -0
  15. package/android/src/main/java/com/expensify/wallet/model/TokenizationStatus.kt +7 -0
  16. package/android/src/main/java/com/expensify/wallet/model/WalletData.kt +7 -0
  17. package/android/src/main/res/drawable/add_to_googlewallet_button_content.xml +7 -0
  18. package/android/src/main/res/drawable/badge_add_to_googlewallet_button_content.xml +7 -0
  19. package/android/src/main/res/drawable/googlewallet_button_background.xml +5 -0
  20. package/android/src/main/res/drawable/googlewallet_button_overlay.xml +11 -0
  21. package/android/src/main/res/drawable-af/add_to_googlewallet_button_content.xml +31 -0
  22. package/android/src/main/res/drawable-af/badge_add_to_googlewallet_button_content.xml +31 -0
  23. package/android/src/main/res/drawable-am/add_to_googlewallet_button_content.xml +34 -0
  24. package/android/src/main/res/drawable-am/badge_add_to_googlewallet_button_content.xml +34 -0
  25. package/android/src/main/res/drawable-ar/add_to_googlewallet_button_content.xml +7 -0
  26. package/android/src/main/res/drawable-ar/badge_add_to_googlewallet_button_content.xml +7 -0
  27. package/android/src/main/res/drawable-az/add_to_googlewallet_button_content.xml +7 -0
  28. package/android/src/main/res/drawable-az/badge_add_to_googlewallet_button_content.xml +7 -0
  29. package/android/src/main/res/drawable-bg/add_to_googlewallet_button_content.xml +7 -0
  30. package/android/src/main/res/drawable-bg/badge_add_to_googlewallet_button_content.xml +7 -0
  31. package/android/src/main/res/drawable-bn/add_to_googlewallet_button_content.xml +31 -0
  32. package/android/src/main/res/drawable-bn/badge_add_to_googlewallet_button_content.xml +31 -0
  33. package/android/src/main/res/drawable-br/add_to_googlewallet_button_content.xml +7 -0
  34. package/android/src/main/res/drawable-br/badge_add_to_googlewallet_button_content.xml +7 -0
  35. package/android/src/main/res/drawable-bs/add_to_googlewallet_button_content.xml +7 -0
  36. package/android/src/main/res/drawable-bs/badge_add_to_googlewallet_button_content.xml +7 -0
  37. package/android/src/main/res/drawable-by/add_to_googlewallet_button_content.xml +7 -0
  38. package/android/src/main/res/drawable-by/badge_add_to_googlewallet_button_content.xml +7 -0
  39. package/android/src/main/res/drawable-ca/add_to_googlewallet_button_content.xml +7 -0
  40. package/android/src/main/res/drawable-ca/badge_add_to_googlewallet_button_content.xml +7 -0
  41. package/android/src/main/res/drawable-cz/add_to_googlewallet_button_content.xml +7 -0
  42. package/android/src/main/res/drawable-cz/badge_add_to_googlewallet_button_content.xml +7 -0
  43. package/android/src/main/res/drawable-de/add_to_googlewallet_button_content.xml +7 -0
  44. package/android/src/main/res/drawable-de/badge_add_to_googlewallet_button_content.xml +7 -0
  45. package/android/src/main/res/drawable-dk/add_to_googlewallet_button_content.xml +7 -0
  46. package/android/src/main/res/drawable-dk/badge_add_to_googlewallet_button_content.xml +7 -0
  47. package/android/src/main/res/drawable-en-rau/add_to_googlewallet_button_content.xml +7 -0
  48. package/android/src/main/res/drawable-en-rau/badge_add_to_googlewallet_button_content.xml +7 -0
  49. package/android/src/main/res/drawable-en-rca/add_to_googlewallet_button_content.xml +7 -0
  50. package/android/src/main/res/drawable-en-rca/badge_add_to_googlewallet_button_content.xml +7 -0
  51. package/android/src/main/res/drawable-en-rgb/add_to_googlewallet_button_content.xml +7 -0
  52. package/android/src/main/res/drawable-en-rgb/badge_add_to_googlewallet_button_content.xml +7 -0
  53. package/android/src/main/res/drawable-en-rin/add_to_googlewallet_button_content.xml +7 -0
  54. package/android/src/main/res/drawable-en-rin/badge_add_to_googlewallet_button_content.xml +7 -0
  55. package/android/src/main/res/drawable-en-rsg/add_to_googlewallet_button_content.xml +7 -0
  56. package/android/src/main/res/drawable-en-rsg/badge_add_to_googlewallet_button_content.xml +7 -0
  57. package/android/src/main/res/drawable-en-rus/add_to_googlewallet_button_content.xml +7 -0
  58. package/android/src/main/res/drawable-en-rus/badge_add_to_googlewallet_button_content.xml +7 -0
  59. package/android/src/main/res/drawable-en-rza/add_to_googlewallet_button_content.xml +7 -0
  60. package/android/src/main/res/drawable-en-rza/badge_add_to_googlewallet_button_content.xml +7 -0
  61. package/android/src/main/res/drawable-es-res/add_to_googlewallet_button_content.xml +7 -0
  62. package/android/src/main/res/drawable-es-res/badge_add_to_googlewallet_button_content.xml +7 -0
  63. package/android/src/main/res/drawable-es-rus/add_to_googlewallet_button_content.xml +7 -0
  64. package/android/src/main/res/drawable-es-rus/badge_add_to_googlewallet_button_content.xml +7 -0
  65. package/android/src/main/res/drawable-et/add_to_googlewallet_button_content.xml +7 -0
  66. package/android/src/main/res/drawable-et/badge_add_to_googlewallet_button_content.xml +7 -0
  67. package/android/src/main/res/drawable-fa/add_to_googlewallet_button_content.xml +31 -0
  68. package/android/src/main/res/drawable-fa/badge_add_to_googlewallet_button_content.xml +34 -0
  69. package/android/src/main/res/drawable-fl/add_to_googlewallet_button_content.xml +7 -0
  70. package/android/src/main/res/drawable-fl/badge_add_to_googlewallet_button_content.xml +7 -0
  71. package/android/src/main/res/drawable-fp/add_to_googlewallet_button_content.xml +7 -0
  72. package/android/src/main/res/drawable-fp/badge_add_to_googlewallet_button_content.xml +7 -0
  73. package/android/src/main/res/drawable-fr-rca/add_to_googlewallet_button_content.xml +7 -0
  74. package/android/src/main/res/drawable-fr-rca/badge_add_to_googlewallet_button_content.xml +7 -0
  75. package/android/src/main/res/drawable-fr-rfr/add_to_googlewallet_button_content.xml +7 -0
  76. package/android/src/main/res/drawable-fr-rfr/badge_add_to_googlewallet_button_content.xml +7 -0
  77. package/android/src/main/res/drawable-gr/add_to_googlewallet_button_content.xml +7 -0
  78. package/android/src/main/res/drawable-gr/badge_add_to_googlewallet_button_content.xml +7 -0
  79. package/android/src/main/res/drawable-hdpi/googlepay_button_background_image.9.png +0 -0
  80. package/android/src/main/res/drawable-he/add_to_googlewallet_button_content.xml +7 -0
  81. package/android/src/main/res/drawable-he/badge_add_to_googlewallet_button_content.xml +7 -0
  82. package/android/src/main/res/drawable-hr/add_to_googlewallet_button_content.xml +7 -0
  83. package/android/src/main/res/drawable-hr/badge_add_to_googlewallet_button_content.xml +7 -0
  84. package/android/src/main/res/drawable-hu/add_to_googlewallet_button_content.xml +7 -0
  85. package/android/src/main/res/drawable-hu/badge_add_to_googlewallet_button_content.xml +7 -0
  86. package/android/src/main/res/drawable-hy/add_to_googlewallet_button_content.xml +7 -0
  87. package/android/src/main/res/drawable-hy/badge_add_to_googlewallet_button_content.xml +7 -0
  88. package/android/src/main/res/drawable-id/add_to_googlewallet_button_content.xml +7 -0
  89. package/android/src/main/res/drawable-id/badge_add_to_googlewallet_button_content.xml +7 -0
  90. package/android/src/main/res/drawable-is/add_to_googlewallet_button_content.xml +7 -0
  91. package/android/src/main/res/drawable-is/badge_add_to_googlewallet_button_content.xml +7 -0
  92. package/android/src/main/res/drawable-it/add_to_googlewallet_button_content.xml +7 -0
  93. package/android/src/main/res/drawable-it/badge_add_to_googlewallet_button_content.xml +7 -0
  94. package/android/src/main/res/drawable-jp/add_to_googlewallet_button_content.xml +7 -0
  95. package/android/src/main/res/drawable-jp/badge_add_to_googlewallet_button_content.xml +7 -0
  96. package/android/src/main/res/drawable-ka/add_to_googlewallet_button_content.xml +7 -0
  97. package/android/src/main/res/drawable-ka/badge_add_to_googlewallet_button_content.xml +7 -0
  98. package/android/src/main/res/drawable-kh/add_to_googlewallet_button_content.xml +33 -0
  99. package/android/src/main/res/drawable-kh/badge_add_to_googlewallet_button_content.xml +33 -0
  100. package/android/src/main/res/drawable-kk/add_to_googlewallet_button_content.xml +7 -0
  101. package/android/src/main/res/drawable-kk/badge_add_to_googlewallet_button_content.xml +7 -0
  102. package/android/src/main/res/drawable-ky/add_to_googlewallet_button_content.xml +7 -0
  103. package/android/src/main/res/drawable-ky/badge_add_to_googlewallet_button_content.xml +7 -0
  104. package/android/src/main/res/drawable-lo/add_to_googlewallet_button_content.xml +31 -0
  105. package/android/src/main/res/drawable-lo/badge_add_to_googlewallet_button_content.xml +31 -0
  106. package/android/src/main/res/drawable-lt/add_to_googlewallet_button_content.xml +7 -0
  107. package/android/src/main/res/drawable-lt/badge_add_to_googlewallet_button_content.xml +7 -0
  108. package/android/src/main/res/drawable-lv/add_to_googlewallet_button_content.xml +7 -0
  109. package/android/src/main/res/drawable-lv/badge_add_to_googlewallet_button_content.xml +7 -0
  110. package/android/src/main/res/drawable-mdpi/googlepay_button_background_image.9.png +0 -0
  111. package/android/src/main/res/drawable-mk/add_to_googlewallet_button_content.xml +7 -0
  112. package/android/src/main/res/drawable-mk/badge_add_to_googlewallet_button_content.xml +7 -0
  113. package/android/src/main/res/drawable-mn/add_to_googlewallet_button_content.xml +31 -0
  114. package/android/src/main/res/drawable-mn/badge_add_to_googlewallet_button_content.xml +31 -0
  115. package/android/src/main/res/drawable-my/add_to_googlewallet_button_content.xml +31 -0
  116. package/android/src/main/res/drawable-my/badge_add_to_googlewallet_button_content.xml +31 -0
  117. package/android/src/main/res/drawable-ne/add_to_googlewallet_button_content.xml +28 -0
  118. package/android/src/main/res/drawable-ne/badge_add_to_googlewallet_button_content.xml +31 -0
  119. package/android/src/main/res/drawable-nl/add_to_googlewallet_button_content.xml +7 -0
  120. package/android/src/main/res/drawable-nl/badge_add_to_googlewallet_button_content.xml +7 -0
  121. package/android/src/main/res/drawable-no/add_to_googlewallet_button_content.xml +7 -0
  122. package/android/src/main/res/drawable-no/badge_add_to_googlewallet_button_content.xml +7 -0
  123. package/android/src/main/res/drawable-pl/add_to_googlewallet_button_content.xml +7 -0
  124. package/android/src/main/res/drawable-pl/badge_add_to_googlewallet_button_content.xml +7 -0
  125. package/android/src/main/res/drawable-pt/add_to_googlewallet_button_content.xml +7 -0
  126. package/android/src/main/res/drawable-pt/badge_add_to_googlewallet_button_content.xml +7 -0
  127. package/android/src/main/res/drawable-ro/add_to_googlewallet_button_content.xml +7 -0
  128. package/android/src/main/res/drawable-ro/badge_add_to_googlewallet_button_content.xml +7 -0
  129. package/android/src/main/res/drawable-ru/add_to_googlewallet_button_content.xml +7 -0
  130. package/android/src/main/res/drawable-ru/badge_add_to_googlewallet_button_content.xml +7 -0
  131. package/android/src/main/res/drawable-se/add_to_googlewallet_button_content.xml +7 -0
  132. package/android/src/main/res/drawable-se/badge_add_to_googlewallet_button_content.xml +7 -0
  133. package/android/src/main/res/drawable-si/add_to_googlewallet_button_content.xml +31 -0
  134. package/android/src/main/res/drawable-si/badge_add_to_googlewallet_button_content.xml +31 -0
  135. package/android/src/main/res/drawable-sk/add_to_googlewallet_button_content.xml +7 -0
  136. package/android/src/main/res/drawable-sk/badge_add_to_googlewallet_button_content.xml +7 -0
  137. package/android/src/main/res/drawable-sl/add_to_googlewallet_button_content.xml +7 -0
  138. package/android/src/main/res/drawable-sl/badge_add_to_googlewallet_button_content.xml +7 -0
  139. package/android/src/main/res/drawable-sq/add_to_googlewallet_button_content.xml +7 -0
  140. package/android/src/main/res/drawable-sq/badge_add_to_googlewallet_button_content.xml +7 -0
  141. package/android/src/main/res/drawable-sr/add_to_googlewallet_button_content.xml +7 -0
  142. package/android/src/main/res/drawable-sr/badge_add_to_googlewallet_button_content.xml +7 -0
  143. package/android/src/main/res/drawable-sw/add_to_googlewallet_button_content.xml +31 -0
  144. package/android/src/main/res/drawable-sw/badge_add_to_googlewallet_button_content.xml +31 -0
  145. package/android/src/main/res/drawable-th/add_to_googlewallet_button_content.xml +7 -0
  146. package/android/src/main/res/drawable-th/badge_add_to_googlewallet_button_content.xml +7 -0
  147. package/android/src/main/res/drawable-tr/add_to_googlewallet_button_content.xml +7 -0
  148. package/android/src/main/res/drawable-tr/badge_add_to_googlewallet_button_content.xml +7 -0
  149. package/android/src/main/res/drawable-uk/add_to_googlewallet_button_content.xml +7 -0
  150. package/android/src/main/res/drawable-uk/badge_add_to_googlewallet_button_content.xml +7 -0
  151. package/android/src/main/res/drawable-ur/add_to_googlewallet_button_content.xml +34 -0
  152. package/android/src/main/res/drawable-ur/badge_add_to_googlewallet_button_content.xml +34 -0
  153. package/android/src/main/res/drawable-uz/add_to_googlewallet_button_content.xml +7 -0
  154. package/android/src/main/res/drawable-uz/badge_add_to_googlewallet_button_content.xml +7 -0
  155. package/android/src/main/res/drawable-vi/add_to_googlewallet_button_content.xml +7 -0
  156. package/android/src/main/res/drawable-vi/badge_add_to_googlewallet_button_content.xml +7 -0
  157. package/android/src/main/res/drawable-xhdpi/googlepay_button_background_image.9.png +0 -0
  158. package/android/src/main/res/drawable-xxhdpi/googlepay_button_background_image.9.png +0 -0
  159. package/android/src/main/res/drawable-xxxhdpi/googlepay_button_background_image.9.png +0 -0
  160. package/android/src/main/res/drawable-zh-rhk/add_to_googlewallet_button_content.xml +7 -0
  161. package/android/src/main/res/drawable-zh-rhk/badge_add_to_googlewallet_button_content.xml +7 -0
  162. package/android/src/main/res/drawable-zh-rtw/add_to_googlewallet_button_content.xml +7 -0
  163. package/android/src/main/res/drawable-zh-rtw/badge_add_to_googlewallet_button_content.xml +7 -0
  164. package/android/src/main/res/layout/add_to_googlewallet_badge.xml +35 -0
  165. package/android/src/main/res/layout/add_to_googlewallet_button.xml +34 -0
  166. package/android/src/main/res/values/googlewallet_strings.xml +7 -0
  167. package/android/src/paper/java/com/expensify/wallet/NativeWalletSpec.java +83 -0
  168. package/assets/buttons/android_button.svg +16 -0
  169. package/assets/buttons/ios_button.svg +259 -0
  170. package/assets/hero-image.png +0 -0
  171. package/assets/signature-dark.png +0 -0
  172. package/assets/signature-light.png +0 -0
  173. package/ios/RNAddToWalletButtonBridge.m +8 -0
  174. package/ios/RNWallet.h +13 -0
  175. package/ios/RNWallet.mm +153 -0
  176. package/ios/WalletManager.swift +297 -0
  177. package/ios/components/RNAddToWalletButtonManager.swift +13 -0
  178. package/ios/components/RNAddToWalletButtonView.swift +67 -0
  179. package/ios/stucts/AddPassResponse.swift +36 -0
  180. package/ios/stucts/CardInfo.swift +37 -0
  181. package/ios/stucts/WalletEncryptedPayload.swift +27 -0
  182. package/lib/commonjs/AddToWalletButton.js +83 -0
  183. package/lib/commonjs/AddToWalletButton.js.map +1 -0
  184. package/lib/commonjs/NativeWallet.js +22 -0
  185. package/lib/commonjs/NativeWallet.js.map +1 -0
  186. package/lib/commonjs/index.js +156 -0
  187. package/lib/commonjs/index.js.map +1 -0
  188. package/lib/commonjs/utils.js +38 -0
  189. package/lib/commonjs/utils.js.map +1 -0
  190. package/lib/module/AddToWalletButton.js +76 -0
  191. package/lib/module/AddToWalletButton.js.map +1 -0
  192. package/lib/module/NativeWallet.js +17 -0
  193. package/lib/module/NativeWallet.js.map +1 -0
  194. package/lib/module/index.js +132 -0
  195. package/lib/module/index.js.map +1 -0
  196. package/lib/module/utils.js +32 -0
  197. package/lib/module/utils.js.map +1 -0
  198. package/lib/typescript/src/AddToWalletButton.d.ts +16 -0
  199. package/lib/typescript/src/AddToWalletButton.d.ts.map +1 -0
  200. package/lib/typescript/src/NativeWallet.d.ts +77 -0
  201. package/lib/typescript/src/NativeWallet.d.ts.map +1 -0
  202. package/lib/typescript/src/index.d.ts +22 -0
  203. package/lib/typescript/src/index.d.ts.map +1 -0
  204. package/lib/typescript/src/utils.d.ts +5 -0
  205. package/lib/typescript/src/utils.d.ts.map +1 -0
  206. package/package.json +157 -0
  207. package/react-native-wallet.podspec +36 -0
  208. package/src/AddToWalletButton.tsx +78 -0
  209. package/src/NativeWallet.ts +115 -0
  210. package/src/index.tsx +184 -0
  211. package/src/utils.ts +35 -0
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "AddToWalletButton", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _AddToWalletButton.default;
10
+ }
11
+ });
12
+ exports.addCardToAppleWallet = addCardToAppleWallet;
13
+ exports.addCardToGoogleWallet = addCardToGoogleWallet;
14
+ exports.addListener = addListener;
15
+ exports.checkWalletAvailability = checkWalletAvailability;
16
+ exports.getCardStatusByIdentifier = getCardStatusByIdentifier;
17
+ exports.getCardStatusBySuffix = getCardStatusBySuffix;
18
+ exports.getSecureWalletInfo = getSecureWalletInfo;
19
+ exports.listTokens = listTokens;
20
+ exports.removeListener = removeListener;
21
+ exports.resumeAddCardToGoogleWallet = resumeAddCardToGoogleWallet;
22
+ var _reactNative = require("react-native");
23
+ var _NativeWallet = _interopRequireWildcard(require("./NativeWallet"));
24
+ var _utils = require("./utils");
25
+ var _AddToWalletButton = _interopRequireDefault(require("./AddToWalletButton"));
26
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
27
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
28
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
29
+ /* eslint-disable @lwc/lwc/no-async-await */
30
+
31
+ function getModuleLinkingRejection() {
32
+ return Promise.reject(new Error(`Failed to load Wallet module, make sure to link ${_NativeWallet.PACKAGE_NAME} correctly`));
33
+ }
34
+ let eventEmitter = null;
35
+ function getEventEmitter() {
36
+ if (!_NativeWallet.default) {
37
+ throw new Error(`Failed to load Wallet module, make sure to link ${_NativeWallet.PACKAGE_NAME} correctly`);
38
+ }
39
+ if (!eventEmitter) {
40
+ eventEmitter = new _reactNative.NativeEventEmitter(_NativeWallet.default);
41
+ }
42
+ return eventEmitter;
43
+ }
44
+ function addListener(event, callback) {
45
+ return getEventEmitter().addListener(event, callback);
46
+ }
47
+ function removeListener(subscription) {
48
+ subscription.remove();
49
+ }
50
+ function checkWalletAvailability() {
51
+ if (!_NativeWallet.default) {
52
+ return getModuleLinkingRejection();
53
+ }
54
+ return _NativeWallet.default.checkWalletAvailability();
55
+ }
56
+ async function getSecureWalletInfo() {
57
+ if (_reactNative.Platform.OS === 'ios') {
58
+ throw new Error('getSecureWalletInfo is not available on iOS');
59
+ }
60
+ if (!_NativeWallet.default) {
61
+ return getModuleLinkingRejection();
62
+ }
63
+ const isWalletInitialized = await _NativeWallet.default.ensureGoogleWalletInitialized();
64
+ if (!isWalletInitialized) {
65
+ throw new Error('Wallet could not be initialized');
66
+ }
67
+ return _NativeWallet.default.getSecureWalletInfo();
68
+ }
69
+ async function getCardStatusBySuffix(last4Digits) {
70
+ if (!_NativeWallet.default) {
71
+ return getModuleLinkingRejection();
72
+ }
73
+ const cardState = await _NativeWallet.default.getCardStatusBySuffix(last4Digits);
74
+ return (0, _utils.getCardState)(cardState);
75
+ }
76
+
77
+ /**
78
+ * Returns the state of a card based on a platform-specific identifier.
79
+ * @param identifier - The card identifier. On Android, it's `Token Reference ID` and on iOS, it's `Primary Account Identifier`
80
+ * @param tsp - The Token Service Provider, e.g. `VISA`, `MASTERCARD`
81
+ * @returns CardStatus - The card status
82
+ */
83
+ async function getCardStatusByIdentifier(identifier, tsp) {
84
+ if (!_NativeWallet.default) {
85
+ return getModuleLinkingRejection();
86
+ }
87
+ const tokenState = await _NativeWallet.default.getCardStatusByIdentifier(identifier, tsp.toUpperCase());
88
+ return (0, _utils.getCardState)(tokenState);
89
+ }
90
+ async function addCardToGoogleWallet(cardData) {
91
+ if (_reactNative.Platform.OS === 'ios') {
92
+ throw new Error('addCardToGoogleWallet is not available on iOS');
93
+ }
94
+ if (!_NativeWallet.default) {
95
+ return getModuleLinkingRejection();
96
+ }
97
+ const isWalletInitialized = await _NativeWallet.default.ensureGoogleWalletInitialized();
98
+ if (!isWalletInitialized) {
99
+ throw new Error('Wallet could not be initialized');
100
+ }
101
+ const tokenizationStatus = await _NativeWallet.default.addCardToGoogleWallet(cardData);
102
+ return (0, _utils.getTokenizationStatus)(tokenizationStatus);
103
+ }
104
+ async function resumeAddCardToGoogleWallet(cardData) {
105
+ if (_reactNative.Platform.OS === 'ios') {
106
+ throw new Error('resumeAddCardToGoogleWallet is not available on iOS');
107
+ }
108
+ if (!_NativeWallet.default) {
109
+ return getModuleLinkingRejection();
110
+ }
111
+ const isWalletInitialized = await _NativeWallet.default.ensureGoogleWalletInitialized();
112
+ if (!isWalletInitialized) {
113
+ throw new Error('Wallet could not be initialized');
114
+ }
115
+ const tokenizationStatus = await _NativeWallet.default.resumeAddCardToGoogleWallet(cardData);
116
+ return (0, _utils.getTokenizationStatus)(tokenizationStatus);
117
+ }
118
+ async function listTokens() {
119
+ if (_reactNative.Platform.OS === 'ios') {
120
+ return Promise.resolve([]);
121
+ }
122
+ if (!_NativeWallet.default) {
123
+ return getModuleLinkingRejection();
124
+ }
125
+ const isWalletInitialized = await _NativeWallet.default.ensureGoogleWalletInitialized();
126
+ if (!isWalletInitialized) {
127
+ throw new Error('Wallet could not be initialized');
128
+ }
129
+ return _NativeWallet.default.listTokens();
130
+ }
131
+ async function addCardToAppleWallet(cardData, issuerEncryptPayloadCallback) {
132
+ if (_reactNative.Platform.OS === 'android') {
133
+ throw new Error('addCardToAppleWallet is not available on Android');
134
+ }
135
+ if (!_NativeWallet.default) {
136
+ return getModuleLinkingRejection();
137
+ }
138
+ const wallet = _NativeWallet.default;
139
+ const passData = await wallet.IOSPresentAddPaymentPassView(cardData);
140
+ if (!passData || passData.status !== 0) {
141
+ return (0, _utils.getTokenizationStatus)((passData === null || passData === void 0 ? void 0 : passData.status) || -1);
142
+ }
143
+ async function addPaymentPassToWallet(paymentPassData) {
144
+ const responseData = await issuerEncryptPayloadCallback(paymentPassData.nonce, paymentPassData.nonceSignature, paymentPassData.certificates);
145
+ const response = await wallet.IOSHandleAddPaymentPassResponse(responseData);
146
+ // Response is null when a pass is successfully added to the wallet or the user cancels the process
147
+ // In case the user presses the `Try again` option, new pass data is returned, and it should reenter the function
148
+ if (response) {
149
+ return addPaymentPassToWallet(response);
150
+ }
151
+ return 0;
152
+ }
153
+ const status = await addPaymentPassToWallet(passData);
154
+ return (0, _utils.getTokenizationStatus)(status);
155
+ }
156
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_NativeWallet","_interopRequireWildcard","_utils","_AddToWalletButton","_interopRequireDefault","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","getModuleLinkingRejection","Promise","reject","Error","PACKAGE_NAME","eventEmitter","getEventEmitter","Wallet","NativeEventEmitter","addListener","event","callback","removeListener","subscription","remove","checkWalletAvailability","getSecureWalletInfo","Platform","OS","isWalletInitialized","ensureGoogleWalletInitialized","getCardStatusBySuffix","last4Digits","cardState","getCardState","getCardStatusByIdentifier","identifier","tsp","tokenState","toUpperCase","addCardToGoogleWallet","cardData","tokenizationStatus","getTokenizationStatus","resumeAddCardToGoogleWallet","listTokens","resolve","addCardToAppleWallet","issuerEncryptPayloadCallback","wallet","passData","IOSPresentAddPaymentPassView","status","addPaymentPassToWallet","paymentPassData","responseData","nonce","nonceSignature","certificates","response","IOSHandleAddPaymentPassResponse"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getCardState = getCardState;
7
+ exports.getTokenizationStatus = getTokenizationStatus;
8
+ function getCardState(stateId) {
9
+ switch (stateId) {
10
+ case -1:
11
+ return 'not found';
12
+ case 0:
13
+ return 'active';
14
+ case 1:
15
+ return 'requireActivation';
16
+ case 2:
17
+ return 'pending';
18
+ case 3:
19
+ return 'suspended';
20
+ case 4:
21
+ return 'deactivated';
22
+ default:
23
+ throw new Error(`Unknown card state: ${stateId}`);
24
+ }
25
+ }
26
+ function getTokenizationStatus(stateId) {
27
+ switch (stateId) {
28
+ case -1:
29
+ return 'error';
30
+ case 0:
31
+ return 'success';
32
+ case 1:
33
+ return 'canceled';
34
+ default:
35
+ throw new Error(`Unknown tokenization status: ${stateId}`);
36
+ }
37
+ }
38
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getCardState","stateId","Error","getTokenizationStatus"],"sourceRoot":"../../src","sources":["utils.ts"],"mappings":";;;;;;;AAEA,SAASA,YAAYA,CAACC,OAAe,EAAc;EACjD,QAAQA,OAAO;IACb,KAAK,CAAC,CAAC;MACL,OAAO,WAAW;IACpB,KAAK,CAAC;MACJ,OAAO,QAAQ;IACjB,KAAK,CAAC;MACJ,OAAO,mBAAmB;IAC5B,KAAK,CAAC;MACJ,OAAO,SAAS;IAClB,KAAK,CAAC;MACJ,OAAO,WAAW;IACpB,KAAK,CAAC;MACJ,OAAO,aAAa;IACtB;MACE,MAAM,IAAIC,KAAK,CAAC,uBAAuBD,OAAO,EAAE,CAAC;EACrD;AACF;AAEA,SAASE,qBAAqBA,CAACF,OAAe,EAAsB;EAClE,QAAQA,OAAO;IACb,KAAK,CAAC,CAAC;MACL,OAAO,OAAO;IAChB,KAAK,CAAC;MACJ,OAAO,SAAS;IAClB,KAAK,CAAC;MACJ,OAAO,UAAU;IACnB;MACE,MAAM,IAAIC,KAAK,CAAC,gCAAgCD,OAAO,EAAE,CAAC;EAC9D;AACF","ignoreList":[]}
@@ -0,0 +1,76 @@
1
+ import React from 'react';
2
+ import { Platform, requireNativeComponent, StyleSheet, TouchableOpacity } from 'react-native';
3
+ const NativeWalletButton = requireNativeComponent('RNAddToWalletButton');
4
+ const BUTTON_TYPE_BREAKPOINT = 236;
5
+ const BUTTON_DIMENSIONS = {
6
+ basic: {
7
+ ios: {
8
+ width: 300,
9
+ height: 40
10
+ },
11
+ android: {
12
+ width: 300,
13
+ height: 48
14
+ }
15
+ },
16
+ badge: {
17
+ ios: {
18
+ width: 120,
19
+ height: 40
20
+ },
21
+ android: {
22
+ width: 200,
23
+ height: 56
24
+ }
25
+ }
26
+ };
27
+ function AddToWalletButton({
28
+ style,
29
+ buttonStyle = 'black',
30
+ buttonType = 'basic',
31
+ borderRadius = 4,
32
+ onPress
33
+ }) {
34
+ const flattenedStyle = StyleSheet.flatten(style) || {};
35
+ const safeButtonType = buttonType === 'badge' ? 'badge' : 'basic';
36
+ const currentDimensions = BUTTON_DIMENSIONS[safeButtonType][Platform.OS];
37
+ const {
38
+ width = currentDimensions.width,
39
+ height = currentDimensions.height,
40
+ ...rest
41
+ } = flattenedStyle;
42
+ return /*#__PURE__*/React.createElement(TouchableOpacity, {
43
+ onPress: onPress,
44
+ activeOpacity: 0.8,
45
+ style: [rest,
46
+ // Android allows us to define the type of the button, however on iOS type depends on the width.
47
+ // Adding this limits to ensure consistent behavior across platforms.
48
+ buttonType === 'badge' ? {
49
+ maxWidth: BUTTON_TYPE_BREAKPOINT - 1
50
+ } : {
51
+ minWidth: BUTTON_TYPE_BREAKPOINT
52
+ }, {
53
+ width,
54
+ height
55
+ }, styles.touchable]
56
+ }, /*#__PURE__*/React.createElement(NativeWalletButton, {
57
+ style: styles.fill,
58
+ buttonStyle: buttonStyle,
59
+ borderRadius: borderRadius,
60
+ buttonType: safeButtonType
61
+ }));
62
+ }
63
+ const styles = StyleSheet.create({
64
+ touchable: {
65
+ justifyContent: 'center',
66
+ alignItems: 'center',
67
+ margin: 10
68
+ },
69
+ fill: {
70
+ flex: 1,
71
+ width: '100%',
72
+ height: '100%'
73
+ }
74
+ });
75
+ export default AddToWalletButton;
76
+ //# sourceMappingURL=AddToWalletButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Platform","requireNativeComponent","StyleSheet","TouchableOpacity","NativeWalletButton","BUTTON_TYPE_BREAKPOINT","BUTTON_DIMENSIONS","basic","ios","width","height","android","badge","AddToWalletButton","style","buttonStyle","buttonType","borderRadius","onPress","flattenedStyle","flatten","safeButtonType","currentDimensions","OS","rest","createElement","activeOpacity","maxWidth","minWidth","styles","touchable","fill","create","justifyContent","alignItems","margin","flex"],"sourceRoot":"../../src","sources":["AddToWalletButton.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAAQC,QAAQ,EAAEC,sBAAsB,EAAEC,UAAU,EAAEC,gBAAgB,QAAO,cAAc;AAgB3F,MAAMC,kBAA0D,GAAGH,sBAAsB,CAAC,qBAAqB,CAAC;AAEhH,MAAMI,sBAAsB,GAAG,GAAG;AAClC,MAAMC,iBAAiB,GAAG;EACxBC,KAAK,EAAE;IACLC,GAAG,EAAE;MAACC,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE;IAAE,CAAC;IAC7BC,OAAO,EAAE;MAACF,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE;IAAE;EAClC,CAAC;EACDE,KAAK,EAAE;IACLJ,GAAG,EAAE;MAACC,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE;IAAE,CAAC;IAC7BC,OAAO,EAAE;MAACF,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE;IAAE;EAClC;AACF,CAAC;AAED,SAASG,iBAAiBA,CAAC;EAACC,KAAK;EAAEC,WAAW,GAAG,OAAO;EAAEC,UAAU,GAAG,OAAO;EAAEC,YAAY,GAAG,CAAC;EAAEC;AAAc,CAAC,EAAE;EACjH,MAAMC,cAAc,GAAGjB,UAAU,CAACkB,OAAO,CAACN,KAAK,CAAC,IAAI,CAAC,CAAC;EACtD,MAAMO,cAA0B,GAAGL,UAAU,KAAK,OAAO,GAAG,OAAO,GAAG,OAAO;EAC7E,MAAMM,iBAAiB,GAAGhB,iBAAiB,CAACe,cAAc,CAAC,CAACrB,QAAQ,CAACuB,EAAE,CAAsB;EAC7F,MAAM;IAACd,KAAK,GAAGa,iBAAiB,CAACb,KAAK;IAAEC,MAAM,GAAGY,iBAAiB,CAACZ,MAAM;IAAE,GAAGc;EAAI,CAAC,GAAGL,cAAc;EAEpG,oBACEpB,KAAA,CAAA0B,aAAA,CAACtB,gBAAgB;IACfe,OAAO,EAAEA,OAAQ;IACjBQ,aAAa,EAAE,GAAI;IACnBZ,KAAK,EAAE,CACLU,IAAI;IACJ;IACA;IACAR,UAAU,KAAK,OAAO,GAAG;MAACW,QAAQ,EAAEtB,sBAAsB,GAAG;IAAC,CAAC,GAAG;MAACuB,QAAQ,EAAEvB;IAAsB,CAAC,EACpG;MACEI,KAAK;MACLC;IACF,CAAC,EACDmB,MAAM,CAACC,SAAS;EAChB,gBAEF/B,KAAA,CAAA0B,aAAA,CAACrB,kBAAkB;IACjBU,KAAK,EAAEe,MAAM,CAACE,IAAK;IACnBhB,WAAW,EAAEA,WAAY;IACzBE,YAAY,EAAEA,YAAa;IAC3BD,UAAU,EAAEK;EAAe,CAC5B,CACe,CAAC;AAEvB;AAEA,MAAMQ,MAAM,GAAG3B,UAAU,CAAC8B,MAAM,CAAC;EAC/BF,SAAS,EAAE;IACTG,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,MAAM,EAAE;EACV,CAAC;EACDJ,IAAI,EAAE;IACJK,IAAI,EAAE,CAAC;IACP3B,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE;EACV;AACF,CAAC,CAAC;AAEF,eAAeG,iBAAiB","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ import { TurboModuleRegistry } from 'react-native';
2
+ const PACKAGE_NAME = '@expensify/react-native-wallet';
3
+ // Try catch block to prevent crashing in case the module is not linked.
4
+ // Especialy useful for builds where Google SDK is not available
5
+ // eslint-disable-next-line import/no-mutable-exports
6
+ let Wallet;
7
+ try {
8
+ Wallet = TurboModuleRegistry.getEnforcing('RNWallet');
9
+ } catch (error) {
10
+ if (error instanceof Error) {
11
+ // eslint-disable-next-line no-console
12
+ console.warn(`[${PACKAGE_NAME}] Failed to load Wallet module, ${error.message}`);
13
+ }
14
+ }
15
+ export default Wallet;
16
+ export { PACKAGE_NAME };
17
+ //# sourceMappingURL=NativeWallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TurboModuleRegistry","PACKAGE_NAME","Wallet","getEnforcing","error","Error","console","warn","message"],"sourceRoot":"../../src","sources":["NativeWallet.ts"],"mappings":"AACA,SAAQA,mBAAmB,QAAO,cAAc;AAqFhD,MAAMC,YAAY,GAAG,gCAAgC;AACrD;AACA;AACA;AACA,IAAIC,MAAwB;AAC5B,IAAI;EACFA,MAAM,GAAGF,mBAAmB,CAACG,YAAY,CAAO,UAAU,CAAC;AAC7D,CAAC,CAAC,OAAOC,KAAK,EAAE;EACd,IAAIA,KAAK,YAAYC,KAAK,EAAE;IAC1B;IACAC,OAAO,CAACC,IAAI,CAAC,IAAIN,YAAY,mCAAmCG,KAAK,CAACI,OAAO,EAAE,CAAC;EAClF;AACF;AACA,eAAeN,MAAM;AACrB,SAAQD,YAAY","ignoreList":[]}
@@ -0,0 +1,132 @@
1
+ /* eslint-disable @lwc/lwc/no-async-await */
2
+ import { NativeEventEmitter, Platform } from 'react-native';
3
+ import Wallet, { PACKAGE_NAME } from './NativeWallet';
4
+ import { getCardState, getTokenizationStatus } from './utils';
5
+ import AddToWalletButton from './AddToWalletButton';
6
+ function getModuleLinkingRejection() {
7
+ return Promise.reject(new Error(`Failed to load Wallet module, make sure to link ${PACKAGE_NAME} correctly`));
8
+ }
9
+ let eventEmitter = null;
10
+ function getEventEmitter() {
11
+ if (!Wallet) {
12
+ throw new Error(`Failed to load Wallet module, make sure to link ${PACKAGE_NAME} correctly`);
13
+ }
14
+ if (!eventEmitter) {
15
+ eventEmitter = new NativeEventEmitter(Wallet);
16
+ }
17
+ return eventEmitter;
18
+ }
19
+ function addListener(event, callback) {
20
+ return getEventEmitter().addListener(event, callback);
21
+ }
22
+ function removeListener(subscription) {
23
+ subscription.remove();
24
+ }
25
+ function checkWalletAvailability() {
26
+ if (!Wallet) {
27
+ return getModuleLinkingRejection();
28
+ }
29
+ return Wallet.checkWalletAvailability();
30
+ }
31
+ async function getSecureWalletInfo() {
32
+ if (Platform.OS === 'ios') {
33
+ throw new Error('getSecureWalletInfo is not available on iOS');
34
+ }
35
+ if (!Wallet) {
36
+ return getModuleLinkingRejection();
37
+ }
38
+ const isWalletInitialized = await Wallet.ensureGoogleWalletInitialized();
39
+ if (!isWalletInitialized) {
40
+ throw new Error('Wallet could not be initialized');
41
+ }
42
+ return Wallet.getSecureWalletInfo();
43
+ }
44
+ async function getCardStatusBySuffix(last4Digits) {
45
+ if (!Wallet) {
46
+ return getModuleLinkingRejection();
47
+ }
48
+ const cardState = await Wallet.getCardStatusBySuffix(last4Digits);
49
+ return getCardState(cardState);
50
+ }
51
+
52
+ /**
53
+ * Returns the state of a card based on a platform-specific identifier.
54
+ * @param identifier - The card identifier. On Android, it's `Token Reference ID` and on iOS, it's `Primary Account Identifier`
55
+ * @param tsp - The Token Service Provider, e.g. `VISA`, `MASTERCARD`
56
+ * @returns CardStatus - The card status
57
+ */
58
+ async function getCardStatusByIdentifier(identifier, tsp) {
59
+ if (!Wallet) {
60
+ return getModuleLinkingRejection();
61
+ }
62
+ const tokenState = await Wallet.getCardStatusByIdentifier(identifier, tsp.toUpperCase());
63
+ return getCardState(tokenState);
64
+ }
65
+ async function addCardToGoogleWallet(cardData) {
66
+ if (Platform.OS === 'ios') {
67
+ throw new Error('addCardToGoogleWallet is not available on iOS');
68
+ }
69
+ if (!Wallet) {
70
+ return getModuleLinkingRejection();
71
+ }
72
+ const isWalletInitialized = await Wallet.ensureGoogleWalletInitialized();
73
+ if (!isWalletInitialized) {
74
+ throw new Error('Wallet could not be initialized');
75
+ }
76
+ const tokenizationStatus = await Wallet.addCardToGoogleWallet(cardData);
77
+ return getTokenizationStatus(tokenizationStatus);
78
+ }
79
+ async function resumeAddCardToGoogleWallet(cardData) {
80
+ if (Platform.OS === 'ios') {
81
+ throw new Error('resumeAddCardToGoogleWallet is not available on iOS');
82
+ }
83
+ if (!Wallet) {
84
+ return getModuleLinkingRejection();
85
+ }
86
+ const isWalletInitialized = await Wallet.ensureGoogleWalletInitialized();
87
+ if (!isWalletInitialized) {
88
+ throw new Error('Wallet could not be initialized');
89
+ }
90
+ const tokenizationStatus = await Wallet.resumeAddCardToGoogleWallet(cardData);
91
+ return getTokenizationStatus(tokenizationStatus);
92
+ }
93
+ async function listTokens() {
94
+ if (Platform.OS === 'ios') {
95
+ return Promise.resolve([]);
96
+ }
97
+ if (!Wallet) {
98
+ return getModuleLinkingRejection();
99
+ }
100
+ const isWalletInitialized = await Wallet.ensureGoogleWalletInitialized();
101
+ if (!isWalletInitialized) {
102
+ throw new Error('Wallet could not be initialized');
103
+ }
104
+ return Wallet.listTokens();
105
+ }
106
+ async function addCardToAppleWallet(cardData, issuerEncryptPayloadCallback) {
107
+ if (Platform.OS === 'android') {
108
+ throw new Error('addCardToAppleWallet is not available on Android');
109
+ }
110
+ if (!Wallet) {
111
+ return getModuleLinkingRejection();
112
+ }
113
+ const wallet = Wallet;
114
+ const passData = await wallet.IOSPresentAddPaymentPassView(cardData);
115
+ if (!passData || passData.status !== 0) {
116
+ return getTokenizationStatus((passData === null || passData === void 0 ? void 0 : passData.status) || -1);
117
+ }
118
+ async function addPaymentPassToWallet(paymentPassData) {
119
+ const responseData = await issuerEncryptPayloadCallback(paymentPassData.nonce, paymentPassData.nonceSignature, paymentPassData.certificates);
120
+ const response = await wallet.IOSHandleAddPaymentPassResponse(responseData);
121
+ // Response is null when a pass is successfully added to the wallet or the user cancels the process
122
+ // In case the user presses the `Try again` option, new pass data is returned, and it should reenter the function
123
+ if (response) {
124
+ return addPaymentPassToWallet(response);
125
+ }
126
+ return 0;
127
+ }
128
+ const status = await addPaymentPassToWallet(passData);
129
+ return getTokenizationStatus(status);
130
+ }
131
+ export { AddToWalletButton, checkWalletAvailability, getSecureWalletInfo, getCardStatusBySuffix, getCardStatusByIdentifier, addCardToGoogleWallet, resumeAddCardToGoogleWallet, listTokens, addCardToAppleWallet, addListener, removeListener };
132
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeEventEmitter","Platform","Wallet","PACKAGE_NAME","getCardState","getTokenizationStatus","AddToWalletButton","getModuleLinkingRejection","Promise","reject","Error","eventEmitter","getEventEmitter","addListener","event","callback","removeListener","subscription","remove","checkWalletAvailability","getSecureWalletInfo","OS","isWalletInitialized","ensureGoogleWalletInitialized","getCardStatusBySuffix","last4Digits","cardState","getCardStatusByIdentifier","identifier","tsp","tokenState","toUpperCase","addCardToGoogleWallet","cardData","tokenizationStatus","resumeAddCardToGoogleWallet","listTokens","resolve","addCardToAppleWallet","issuerEncryptPayloadCallback","wallet","passData","IOSPresentAddPaymentPassView","status","addPaymentPassToWallet","paymentPassData","responseData","nonce","nonceSignature","certificates","response","IOSHandleAddPaymentPassResponse"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,32 @@
1
+ function getCardState(stateId) {
2
+ switch (stateId) {
3
+ case -1:
4
+ return 'not found';
5
+ case 0:
6
+ return 'active';
7
+ case 1:
8
+ return 'requireActivation';
9
+ case 2:
10
+ return 'pending';
11
+ case 3:
12
+ return 'suspended';
13
+ case 4:
14
+ return 'deactivated';
15
+ default:
16
+ throw new Error(`Unknown card state: ${stateId}`);
17
+ }
18
+ }
19
+ function getTokenizationStatus(stateId) {
20
+ switch (stateId) {
21
+ case -1:
22
+ return 'error';
23
+ case 0:
24
+ return 'success';
25
+ case 1:
26
+ return 'canceled';
27
+ default:
28
+ throw new Error(`Unknown tokenization status: ${stateId}`);
29
+ }
30
+ }
31
+ export { getCardState, getTokenizationStatus };
32
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getCardState","stateId","Error","getTokenizationStatus"],"sourceRoot":"../../src","sources":["utils.ts"],"mappings":"AAEA,SAASA,YAAYA,CAACC,OAAe,EAAc;EACjD,QAAQA,OAAO;IACb,KAAK,CAAC,CAAC;MACL,OAAO,WAAW;IACpB,KAAK,CAAC;MACJ,OAAO,QAAQ;IACjB,KAAK,CAAC;MACJ,OAAO,mBAAmB;IAC5B,KAAK,CAAC;MACJ,OAAO,SAAS;IAClB,KAAK,CAAC;MACJ,OAAO,WAAW;IACpB,KAAK,CAAC;MACJ,OAAO,aAAa;IACtB;MACE,MAAM,IAAIC,KAAK,CAAC,uBAAuBD,OAAO,EAAE,CAAC;EACrD;AACF;AAEA,SAASE,qBAAqBA,CAACF,OAAe,EAAsB;EAClE,QAAQA,OAAO;IACb,KAAK,CAAC,CAAC;MACL,OAAO,OAAO;IAChB,KAAK,CAAC;MACJ,OAAO,SAAS;IAClB,KAAK,CAAC;MACJ,OAAO,UAAU;IACnB;MACE,MAAM,IAAIC,KAAK,CAAC,gCAAgCD,OAAO,EAAE,CAAC;EAC9D;AACF;AAEA,SAAQD,YAAY,EAAEG,qBAAqB","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import type { ViewStyle, GestureResponderEvent, StyleProp } from 'react-native';
3
+ type ButtonStyle = 'black' | 'blackOutline';
4
+ type ButtonType = 'basic' | 'badge';
5
+ interface NativeWalletButtonProps {
6
+ style?: StyleProp<ViewStyle>;
7
+ buttonStyle?: ButtonStyle;
8
+ buttonType?: ButtonType;
9
+ borderRadius?: number;
10
+ }
11
+ type Props = NativeWalletButtonProps & {
12
+ onPress?: (e: GestureResponderEvent) => void;
13
+ };
14
+ declare function AddToWalletButton({ style, buttonStyle, buttonType, borderRadius, onPress }: Props): React.JSX.Element;
15
+ export default AddToWalletButton;
16
+ //# sourceMappingURL=AddToWalletButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddToWalletButton.d.ts","sourceRoot":"","sources":["../../../src/AddToWalletButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAC,SAAS,EAAE,qBAAqB,EAAiB,SAAS,EAAC,MAAM,cAAc,CAAC;AAG7F,KAAK,WAAW,GAAG,OAAO,GAAG,cAAc,CAAC;AAC5C,KAAK,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;AAEpC,UAAU,uBAAuB;IAC/B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,KAAK,KAAK,GAAG,uBAAuB,GAAG;IACrC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC;CAC9C,CAAC;AAgBF,iBAAS,iBAAiB,CAAC,EAAC,KAAK,EAAE,WAAqB,EAAE,UAAoB,EAAE,YAAgB,EAAE,OAAO,EAAC,EAAE,KAAK,qBA8BhH;AAeD,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,77 @@
1
+ import type { TurboModule } from 'react-native';
2
+ type AndroidWalletData = {
3
+ deviceID: string;
4
+ walletAccountID: string;
5
+ };
6
+ type CardStatus = 'not found' | 'requireActivation' | 'pending' | 'active' | 'suspended' | 'deactivated';
7
+ type Platform = 'android' | 'ios';
8
+ type UserAddress = {
9
+ name: string;
10
+ addressOne: string;
11
+ addressTwo?: string;
12
+ administrativeArea: string;
13
+ locality: string;
14
+ countryCode: string;
15
+ postalCode: string;
16
+ phoneNumber: string;
17
+ };
18
+ type AndroidCardData = {
19
+ network: string;
20
+ opaquePaymentCard: string;
21
+ cardHolderName: string;
22
+ lastDigits: string;
23
+ userAddress: UserAddress;
24
+ };
25
+ type AndroidResumeCardData = {
26
+ network: string;
27
+ tokenReferenceID: string;
28
+ cardHolderName?: string;
29
+ lastDigits?: string;
30
+ };
31
+ type IOSCardData = {
32
+ network: string;
33
+ cardHolderName: string;
34
+ lastDigits: string;
35
+ cardDescription: string;
36
+ };
37
+ type onCardActivatedPayload = {
38
+ tokenId: string;
39
+ actionStatus: 'active' | 'canceled';
40
+ };
41
+ type IOSAddPaymentPassData = {
42
+ status: number;
43
+ nonce: string;
44
+ nonceSignature: string;
45
+ certificates: string[];
46
+ };
47
+ type IOSEncryptPayload = {
48
+ encryptedPassData: string;
49
+ activationData: string;
50
+ ephemeralPublicKey: string;
51
+ };
52
+ type TokenizationStatus = 'canceled' | 'success' | 'error';
53
+ type TokenInfo = {
54
+ identifier: string;
55
+ lastDigits: string;
56
+ tokenState: number;
57
+ };
58
+ export interface Spec extends TurboModule {
59
+ checkWalletAvailability(): Promise<boolean>;
60
+ ensureGoogleWalletInitialized(): Promise<boolean>;
61
+ getSecureWalletInfo(): Promise<AndroidWalletData>;
62
+ getCardStatusBySuffix(last4Digits: string): Promise<number>;
63
+ getCardStatusByIdentifier(identifier: string, tsp: string): Promise<number>;
64
+ addCardToGoogleWallet(cardData: AndroidCardData): Promise<number>;
65
+ resumeAddCardToGoogleWallet(cardData: AndroidResumeCardData): Promise<number>;
66
+ listTokens(): Promise<TokenInfo[]>;
67
+ IOSPresentAddPaymentPassView(cardData: IOSCardData): Promise<IOSAddPaymentPassData>;
68
+ IOSHandleAddPaymentPassResponse(payload: IOSEncryptPayload): Promise<IOSAddPaymentPassData | null>;
69
+ addListener: (eventType: string) => void;
70
+ removeListeners: (count: number) => void;
71
+ }
72
+ declare const PACKAGE_NAME = "@expensify/react-native-wallet";
73
+ declare let Wallet: Spec | undefined;
74
+ export default Wallet;
75
+ export { PACKAGE_NAME };
76
+ export type { AndroidCardData, AndroidResumeCardData, IOSCardData, AndroidWalletData, CardStatus, UserAddress, onCardActivatedPayload, Platform, IOSAddPaymentPassData, IOSEncryptPayload, TokenizationStatus, TokenInfo, };
77
+ //# sourceMappingURL=NativeWallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeWallet.d.ts","sourceRoot":"","sources":["../../../src/NativeWallet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { EmitterSubscription } from 'react-native';
2
+ import type { TokenizationStatus, AndroidCardData, AndroidResumeCardData, CardStatus, IOSCardData, IOSEncryptPayload, AndroidWalletData, onCardActivatedPayload, IOSAddPaymentPassData, TokenInfo } from './NativeWallet';
3
+ import AddToWalletButton from './AddToWalletButton';
4
+ declare function addListener(event: string, callback: (data: onCardActivatedPayload) => void): EmitterSubscription;
5
+ declare function removeListener(subscription: EmitterSubscription): void;
6
+ declare function checkWalletAvailability(): Promise<boolean>;
7
+ declare function getSecureWalletInfo(): Promise<AndroidWalletData>;
8
+ declare function getCardStatusBySuffix(last4Digits: string): Promise<CardStatus>;
9
+ /**
10
+ * Returns the state of a card based on a platform-specific identifier.
11
+ * @param identifier - The card identifier. On Android, it's `Token Reference ID` and on iOS, it's `Primary Account Identifier`
12
+ * @param tsp - The Token Service Provider, e.g. `VISA`, `MASTERCARD`
13
+ * @returns CardStatus - The card status
14
+ */
15
+ declare function getCardStatusByIdentifier(identifier: string, tsp: string): Promise<CardStatus>;
16
+ declare function addCardToGoogleWallet(cardData: AndroidCardData): Promise<TokenizationStatus>;
17
+ declare function resumeAddCardToGoogleWallet(cardData: AndroidResumeCardData): Promise<TokenizationStatus>;
18
+ declare function listTokens(): Promise<TokenInfo[]>;
19
+ declare function addCardToAppleWallet(cardData: IOSCardData, issuerEncryptPayloadCallback: (nonce: string, nonceSignature: string, certificate: string[]) => Promise<IOSEncryptPayload>): Promise<TokenizationStatus>;
20
+ export type { AndroidCardData, AndroidWalletData, CardStatus, IOSEncryptPayload, IOSCardData, IOSAddPaymentPassData, onCardActivatedPayload, TokenizationStatus, TokenInfo };
21
+ export { AddToWalletButton, checkWalletAvailability, getSecureWalletInfo, getCardStatusBySuffix, getCardStatusByIdentifier, addCardToGoogleWallet, resumeAddCardToGoogleWallet, listTokens, addCardToAppleWallet, addListener, removeListener, };
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAC;AAEtD,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,SAAS,EACV,MAAM,gBAAgB,CAAC;AAExB,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAkBpD,iBAAS,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,sBAAsB,KAAK,IAAI,GAAG,mBAAmB,CAEzG;AAED,iBAAS,cAAc,CAAC,YAAY,EAAE,mBAAmB,GAAG,IAAI,CAE/D;AAED,iBAAS,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC,CAKnD;AAED,iBAAe,mBAAmB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAc/D;AAED,iBAAe,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAO7E;AAED;;;;;GAKG;AACH,iBAAe,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAO7F;AAED,iBAAe,qBAAqB,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAc3F;AAED,iBAAe,2BAA2B,CAAC,QAAQ,EAAE,qBAAqB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAcvG;AAED,iBAAe,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAahD;AAED,iBAAe,oBAAoB,CACjC,QAAQ,EAAE,WAAW,EACrB,4BAA4B,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,iBAAiB,CAAC,GACzH,OAAO,CAAC,kBAAkB,CAAC,CA4B7B;AAED,YAAY,EAAC,eAAe,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,SAAS,EAAC,CAAC;AAC3K,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACrB,2BAA2B,EAC3B,UAAU,EACV,oBAAoB,EACpB,WAAW,EACX,cAAc,GACf,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { CardStatus, TokenizationStatus } from './NativeWallet';
2
+ declare function getCardState(stateId: number): CardStatus;
3
+ declare function getTokenizationStatus(stateId: number): TokenizationStatus;
4
+ export { getCardState, getTokenizationStatus };
5
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAE,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AAEnE,iBAAS,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAiBjD;AAED,iBAAS,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,CAWlE;AAED,OAAO,EAAC,YAAY,EAAE,qBAAqB,EAAC,CAAC"}