@expensify/react-native-wallet 0.1.40 → 0.2.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.
package/ios/RNWallet.mm CHANGED
@@ -135,6 +135,36 @@ RCT_REMAP_METHOD(getCardStatusByIdentifier,
135
135
  // no-op
136
136
  }
137
137
 
138
+ - (void)hasEligibleTokenizationTarget:(NSString *)last4Digits
139
+ network:(NSString *)network
140
+ issuerName:(NSString *)issuerName
141
+ resolve:(RCTPromiseResolveBlock)resolve
142
+ reject:(RCTPromiseRejectBlock)reject
143
+ {
144
+ // no-op
145
+ }
146
+
147
+ - (void)AndroidProvidePaymentCredentials:(NSString *)requestId
148
+ responseData:
149
+ #ifdef RCT_NEW_ARCH_ENABLED
150
+ (JS::NativeWallet::AndroidPaymentCredentialsResponse &)responseData
151
+ #else
152
+ (NSDictionary *)responseData
153
+ #endif
154
+ resolve:(RCTPromiseResolveBlock)resolve
155
+ reject:(RCTPromiseRejectBlock)reject
156
+ {
157
+ // no-op
158
+ }
159
+
160
+ - (void)AndroidRejectPaymentCredentials:(NSString *)requestId
161
+ errorMessage:(NSString *)errorMessage
162
+ resolve:(RCTPromiseResolveBlock)resolve
163
+ reject:(RCTPromiseRejectBlock)reject
164
+ {
165
+ // no-op
166
+ }
167
+
138
168
  - (void)getSecureWalletInfo:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
139
169
  // no-op
140
170
  }
@@ -120,16 +120,37 @@ open class WalletManager: UIViewController {
120
120
  }
121
121
 
122
122
  DispatchQueue.main.async {
123
- if self.addPassViewController == nil {
124
- self.presentAddPaymentPassCompletionHandler = completion
125
- self.addPassViewController = enrollViewController
126
- RCTPresentedViewController()?.present(enrollViewController, animated: true, completion: nil)
127
- } else {
123
+ if let enrollVC = self.addPassViewController, enrollVC.isBeingPresented || enrollVC.presentingViewController != nil {
128
124
  self.logInfo(message: "EnrollViewController is already presented.")
129
125
  completion(.error, [
130
126
  "errorMessage": "EnrollViewController is already presented."
131
127
  ])
128
+ return
129
+ }
130
+
131
+ let presentPassHandler = self.presentAddPaymentPassCompletionHandler
132
+ let addPaymentPassHandler = self.addPaymentPassCompletionHandler
133
+ self.addPassViewController = nil
134
+ self.presentAddPaymentPassCompletionHandler = nil
135
+ self.addPaymentPassCompletionHandler = nil
136
+ self.addPassHandler = nil
137
+
138
+ let errorResponse: NSDictionary = [
139
+ "errorMessage": "EnrollViewController is no longer presented."
140
+ ]
141
+ presentPassHandler?(.error, errorResponse)
142
+ addPaymentPassHandler?(.error, errorResponse)
143
+
144
+ guard let presentingViewController = RCTPresentedViewController() else {
145
+ completion(.error, [
146
+ "errorMessage": "Presenting view controller is unavailable."
147
+ ])
148
+ return
132
149
  }
150
+
151
+ self.presentAddPaymentPassCompletionHandler = completion
152
+ self.addPassViewController = enrollViewController
153
+ presentingViewController.present(enrollViewController, animated: true, completion: nil)
133
154
  }
134
155
  }
135
156
 
@@ -197,12 +218,23 @@ open class WalletManager: UIViewController {
197
218
  }
198
219
 
199
220
  private func hideModal() {
221
+ guard let enrollVC = addPassViewController else {
222
+ return
223
+ }
224
+
200
225
  DispatchQueue.main.async {
201
- if let enrollVC = self.addPassViewController, enrollVC.isBeingPresented || enrollVC.presentingViewController != nil {
226
+ guard self.addPassViewController === enrollVC else {
227
+ return
228
+ }
229
+
230
+ if enrollVC.isBeingPresented || enrollVC.presentingViewController != nil {
202
231
  enrollVC.dismiss(animated: true, completion: {
203
- self.addPassViewController = nil
232
+ if self.addPassViewController === enrollVC {
233
+ self.addPassViewController = nil
234
+ }
204
235
  })
205
236
  } else {
237
+ self.addPassViewController = nil
206
238
  self.logInfo(message: "EnrollViewController is not presented currently.")
207
239
  }
208
240
  }
@@ -220,6 +252,10 @@ extension WalletManager: PKAddPaymentPassViewControllerDelegate {
220
252
  generateRequestWithCertificateChain certificates: [Data],
221
253
  nonce: Data, nonceSignature: Data,
222
254
  completionHandler handler: @escaping (PKAddPaymentPassRequest) -> Void) {
255
+ guard controller === addPassViewController else {
256
+ return
257
+ }
258
+
223
259
  let stringNonce = nonce.base64EncodedString() as NSString
224
260
  let stringNonceSignature = nonceSignature.base64EncodedString() as NSString
225
261
  let stringCertificates = certificates.map {
@@ -230,15 +266,16 @@ extension WalletManager: PKAddPaymentPassViewControllerDelegate {
230
266
 
231
267
  // Retry the JS issuer callback if the user tries again to add a payment pass
232
268
  if let addPaymentPassHandler = addPaymentPassCompletionHandler {
233
- addPaymentPassHandler(.retry, reqestCardData.toNSDictionary())
269
+ // The callback can synchronously register the next completion.
234
270
  addPaymentPassCompletionHandler = nil
271
+ addPaymentPassHandler(.retry, reqestCardData.toNSDictionary())
235
272
  return
236
273
  }
237
274
 
238
275
  // Finish IOSPresentAddPaymentPassView function
239
276
  if let presentPassHandler = presentAddPaymentPassCompletionHandler {
240
- presentPassHandler(.completed, reqestCardData.toNSDictionary())
241
277
  presentAddPaymentPassCompletionHandler = nil
278
+ presentPassHandler(.completed, reqestCardData.toNSDictionary())
242
279
  }
243
280
  }
244
281
 
@@ -247,10 +284,16 @@ extension WalletManager: PKAddPaymentPassViewControllerDelegate {
247
284
  _ controller: PKAddPaymentPassViewController,
248
285
  didFinishAdding pass: PKPaymentPass?,
249
286
  error: Error?) {
250
- if addPassViewController == nil {
287
+ guard controller === addPassViewController else {
251
288
  return
252
289
  }
253
-
290
+
291
+ let presentPassHandler = presentAddPaymentPassCompletionHandler
292
+ let addPaymentPassHandler = addPaymentPassCompletionHandler
293
+ presentAddPaymentPassCompletionHandler = nil
294
+ addPaymentPassCompletionHandler = nil
295
+ addPassHandler = nil
296
+
254
297
  let errorMessage = error?.localizedDescription ?? ""
255
298
 
256
299
  if error != nil {
@@ -261,13 +304,13 @@ extension WalletManager: PKAddPaymentPassViewControllerDelegate {
261
304
  }
262
305
 
263
306
  // Cancel the IOSPresentAddPaymentPassView function when the user cancelled the modal
264
- if let handler = presentAddPaymentPassCompletionHandler {
307
+ if let handler = presentPassHandler {
265
308
  let response = AddPassResponse(status: .canceled, nonce: nil, nonceSignature: nil, certificates: nil)
266
309
  handler(.canceled, response.toNSDictionary())
267
310
  }
268
311
 
269
312
  // If the pass is returned complete the IOSHandleAddPaymentPassResponse function
270
- if let addPaymentPassHandler = addPaymentPassCompletionHandler {
313
+ if let addPaymentPassHandler = addPaymentPassHandler {
271
314
  if pass != nil {
272
315
  addPaymentPassHandler(.completed, nil)
273
316
  } else {
@@ -276,11 +319,8 @@ extension WalletManager: PKAddPaymentPassViewControllerDelegate {
276
319
  ])
277
320
  }
278
321
  }
279
-
280
- addPassHandler = nil
322
+
281
323
  hideModal()
282
- addPaymentPassCompletionHandler = nil
283
- presentAddPaymentPassCompletionHandler = nil
284
324
  }
285
325
  }
286
326
 
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","PACKAGE_NAME","exports","Wallet","TurboModuleRegistry","getEnforcing","error","Error","console","warn","message","_default","default"],"sourceRoot":"../../src","sources":["NativeWallet.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAqFA,MAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,gCAAgC;AACrD;AACA;AACA;AACA,IAAIE,MAAwB;AAC5B,IAAI;EACFA,MAAM,GAAGC,gCAAmB,CAACC,YAAY,CAAO,UAAU,CAAC;AAC7D,CAAC,CAAC,OAAOC,KAAK,EAAE;EACd,IAAIA,KAAK,YAAYC,KAAK,EAAE;IAC1B;IACAC,OAAO,CAACC,IAAI,CAAC,IAAIR,YAAY,mCAAmCK,KAAK,CAACI,OAAO,EAAE,CAAC;EAClF;AACF;AAAC,IAAAC,QAAA,GAAAT,OAAA,CAAAU,OAAA,GACcT,MAAM","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","PACKAGE_NAME","exports","Wallet","TurboModuleRegistry","getEnforcing","error","Error","console","warn","message","_default","default"],"sourceRoot":"../../src","sources":["NativeWallet.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAuGA,MAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,gCAAgC;AACrD;AACA;AACA;AACA,IAAIE,MAAwB;AAC5B,IAAI;EACFA,MAAM,GAAGC,gCAAmB,CAACC,YAAY,CAAO,UAAU,CAAC;AAC7D,CAAC,CAAC,OAAOC,KAAK,EAAE;EACd,IAAIA,KAAK,YAAYC,KAAK,EAAE;IAC1B;IACAC,OAAO,CAACC,IAAI,CAAC,IAAIR,YAAY,mCAAmCK,KAAK,CAACI,OAAO,EAAE,CAAC;EAClF;AACF;AAAC,IAAAC,QAAA,GAAAT,OAAA,CAAAU,OAAA,GACcT,MAAM","ignoreList":[]}
@@ -16,6 +16,7 @@ exports.checkWalletAvailability = checkWalletAvailability;
16
16
  exports.getCardStatusByIdentifier = getCardStatusByIdentifier;
17
17
  exports.getCardStatusBySuffix = getCardStatusBySuffix;
18
18
  exports.getSecureWalletInfo = getSecureWalletInfo;
19
+ exports.hasEligibleTokenizationTarget = hasEligibleTokenizationTarget;
19
20
  exports.listTokens = listTokens;
20
21
  exports.removeListener = removeListener;
21
22
  exports.resumeAddCardToGoogleWallet = resumeAddCardToGoogleWallet;
@@ -25,12 +26,31 @@ var _utils = require("./utils");
25
26
  var _AddToWalletButton = _interopRequireDefault(require("./AddToWalletButton"));
26
27
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
27
28
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
29
+ /* eslint-disable no-console */
28
30
  /* eslint-disable @lwc/lwc/no-async-await */
29
31
 
30
32
  function getModuleLinkingRejection() {
31
33
  return Promise.reject(new Error(`Failed to load Wallet module, make sure to link ${_NativeWallet.PACKAGE_NAME} correctly`));
32
34
  }
33
35
  let eventEmitter;
36
+ let paymentCredentialsHandler = null;
37
+ if (_reactNative.Platform.OS === 'android' && _NativeWallet.default) {
38
+ eventEmitter ??= new _reactNative.NativeEventEmitter(_NativeWallet.default);
39
+ eventEmitter.addListener('onPaymentCredentialsRequest', async data => {
40
+ if (!paymentCredentialsHandler) {
41
+ console.warn(`[${_NativeWallet.PACKAGE_NAME}] Received payment credentials request but no handler is set`);
42
+ await (_NativeWallet.default === null || _NativeWallet.default === void 0 ? void 0 : _NativeWallet.default.AndroidRejectPaymentCredentials(data.requestId, 'No payment credentials handler is set').catch(() => undefined));
43
+ return;
44
+ }
45
+ try {
46
+ const responseData = await paymentCredentialsHandler(data);
47
+ await (_NativeWallet.default === null || _NativeWallet.default === void 0 ? void 0 : _NativeWallet.default.AndroidProvidePaymentCredentials(data.requestId, responseData));
48
+ } catch (error) {
49
+ console.error(`[${_NativeWallet.PACKAGE_NAME}] Error handling payment credentials request:`, error);
50
+ await (_NativeWallet.default === null || _NativeWallet.default === void 0 ? void 0 : _NativeWallet.default.AndroidRejectPaymentCredentials(data.requestId, error instanceof Error ? error.message : String(error)).catch(() => undefined));
51
+ }
52
+ });
53
+ }
34
54
  function addListener(event, callback) {
35
55
  if (!_NativeWallet.default) {
36
56
  // eslint-disable-next-line no-console
@@ -85,7 +105,25 @@ async function getCardStatusByIdentifier(identifier, tsp) {
85
105
  const tokenState = await _NativeWallet.default.getCardStatusByIdentifier(identifier, tsp.toUpperCase());
86
106
  return (0, _utils.getCardState)(tokenState);
87
107
  }
88
- async function addCardToGoogleWallet(cardData) {
108
+
109
+ /**
110
+ * Checks whether the card can still be added to a Google Wallet target: the phone or a paired wearable.
111
+ * Use it to decide whether to show the "Add to Google Wallet" button when wearables are supported.
112
+ * @param last4Digits - The last 4 digits of the card number (FPAN, not the token)
113
+ * @param network - The card network, e.g. `VISA`, `MASTERCARD`
114
+ * @param issuerName - The issuer name used for matching, as in the token metadata (not the card display name)
115
+ * @returns `true` if at least one target can still receive the card
116
+ */
117
+ async function hasEligibleTokenizationTarget(last4Digits, network, issuerName) {
118
+ if (_reactNative.Platform.OS === 'ios') {
119
+ throw new Error('hasEligibleTokenizationTarget is not available on iOS');
120
+ }
121
+ if (!_NativeWallet.default) {
122
+ return getModuleLinkingRejection();
123
+ }
124
+ return _NativeWallet.default.hasEligibleTokenizationTarget(last4Digits, network.toUpperCase(), issuerName);
125
+ }
126
+ async function addCardToGoogleWallet(cardData, handlePaymentCredentialsGeneration) {
89
127
  if (_reactNative.Platform.OS === 'ios') {
90
128
  throw new Error('addCardToGoogleWallet is not available on iOS');
91
129
  }
@@ -96,8 +134,13 @@ async function addCardToGoogleWallet(cardData) {
96
134
  if (!isWalletInitialized) {
97
135
  throw new Error('Wallet could not be initialized');
98
136
  }
99
- const tokenizationStatus = await _NativeWallet.default.addCardToGoogleWallet(cardData);
100
- return (0, _utils.getTokenizationStatus)(tokenizationStatus);
137
+ paymentCredentialsHandler = handlePaymentCredentialsGeneration;
138
+ try {
139
+ const tokenizationStatus = await _NativeWallet.default.addCardToGoogleWallet(cardData);
140
+ return (0, _utils.getTokenizationStatus)(tokenizationStatus);
141
+ } finally {
142
+ paymentCredentialsHandler = null;
143
+ }
101
144
  }
102
145
  async function resumeAddCardToGoogleWallet(cardData) {
103
146
  if (_reactNative.Platform.OS === 'ios') {
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_NativeWallet","_interopRequireWildcard","_utils","_AddToWalletButton","_interopRequireDefault","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","getModuleLinkingRejection","Promise","reject","Error","PACKAGE_NAME","eventEmitter","addListener","event","callback","Wallet","console","warn","remove","undefined","NativeEventEmitter","removeListener","subscription","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":[]}
1
+ {"version":3,"names":["_reactNative","require","_NativeWallet","_interopRequireWildcard","_utils","_AddToWalletButton","_interopRequireDefault","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","getModuleLinkingRejection","Promise","reject","Error","PACKAGE_NAME","eventEmitter","paymentCredentialsHandler","Platform","OS","Wallet","NativeEventEmitter","addListener","data","console","warn","AndroidRejectPaymentCredentials","requestId","catch","undefined","responseData","AndroidProvidePaymentCredentials","error","message","String","event","callback","remove","removeListener","subscription","checkWalletAvailability","getSecureWalletInfo","isWalletInitialized","ensureGoogleWalletInitialized","getCardStatusBySuffix","last4Digits","cardState","getCardState","getCardStatusByIdentifier","identifier","tsp","tokenState","toUpperCase","hasEligibleTokenizationTarget","network","issuerName","addCardToGoogleWallet","cardData","handlePaymentCredentialsGeneration","tokenizationStatus","getTokenizationStatus","resumeAddCardToGoogleWallet","listTokens","resolve","addCardToAppleWallet","issuerEncryptPayloadCallback","wallet","passData","IOSPresentAddPaymentPassView","status","addPaymentPassToWallet","paymentPassData","nonce","nonceSignature","certificates","response","IOSHandleAddPaymentPassResponse"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +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":[]}
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;AAuGhD,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":[]}
@@ -1,3 +1,4 @@
1
+ /* eslint-disable no-console */
1
2
  /* eslint-disable @lwc/lwc/no-async-await */
2
3
  import { NativeEventEmitter, Platform } from 'react-native';
3
4
  import Wallet, { PACKAGE_NAME } from './NativeWallet';
@@ -7,6 +8,24 @@ function getModuleLinkingRejection() {
7
8
  return Promise.reject(new Error(`Failed to load Wallet module, make sure to link ${PACKAGE_NAME} correctly`));
8
9
  }
9
10
  let eventEmitter;
11
+ let paymentCredentialsHandler = null;
12
+ if (Platform.OS === 'android' && Wallet) {
13
+ eventEmitter ??= new NativeEventEmitter(Wallet);
14
+ eventEmitter.addListener('onPaymentCredentialsRequest', async data => {
15
+ if (!paymentCredentialsHandler) {
16
+ console.warn(`[${PACKAGE_NAME}] Received payment credentials request but no handler is set`);
17
+ await (Wallet === null || Wallet === void 0 ? void 0 : Wallet.AndroidRejectPaymentCredentials(data.requestId, 'No payment credentials handler is set').catch(() => undefined));
18
+ return;
19
+ }
20
+ try {
21
+ const responseData = await paymentCredentialsHandler(data);
22
+ await (Wallet === null || Wallet === void 0 ? void 0 : Wallet.AndroidProvidePaymentCredentials(data.requestId, responseData));
23
+ } catch (error) {
24
+ console.error(`[${PACKAGE_NAME}] Error handling payment credentials request:`, error);
25
+ await (Wallet === null || Wallet === void 0 ? void 0 : Wallet.AndroidRejectPaymentCredentials(data.requestId, error instanceof Error ? error.message : String(error)).catch(() => undefined));
26
+ }
27
+ });
28
+ }
10
29
  function addListener(event, callback) {
11
30
  if (!Wallet) {
12
31
  // eslint-disable-next-line no-console
@@ -61,7 +80,25 @@ async function getCardStatusByIdentifier(identifier, tsp) {
61
80
  const tokenState = await Wallet.getCardStatusByIdentifier(identifier, tsp.toUpperCase());
62
81
  return getCardState(tokenState);
63
82
  }
64
- async function addCardToGoogleWallet(cardData) {
83
+
84
+ /**
85
+ * Checks whether the card can still be added to a Google Wallet target: the phone or a paired wearable.
86
+ * Use it to decide whether to show the "Add to Google Wallet" button when wearables are supported.
87
+ * @param last4Digits - The last 4 digits of the card number (FPAN, not the token)
88
+ * @param network - The card network, e.g. `VISA`, `MASTERCARD`
89
+ * @param issuerName - The issuer name used for matching, as in the token metadata (not the card display name)
90
+ * @returns `true` if at least one target can still receive the card
91
+ */
92
+ async function hasEligibleTokenizationTarget(last4Digits, network, issuerName) {
93
+ if (Platform.OS === 'ios') {
94
+ throw new Error('hasEligibleTokenizationTarget is not available on iOS');
95
+ }
96
+ if (!Wallet) {
97
+ return getModuleLinkingRejection();
98
+ }
99
+ return Wallet.hasEligibleTokenizationTarget(last4Digits, network.toUpperCase(), issuerName);
100
+ }
101
+ async function addCardToGoogleWallet(cardData, handlePaymentCredentialsGeneration) {
65
102
  if (Platform.OS === 'ios') {
66
103
  throw new Error('addCardToGoogleWallet is not available on iOS');
67
104
  }
@@ -72,8 +109,13 @@ async function addCardToGoogleWallet(cardData) {
72
109
  if (!isWalletInitialized) {
73
110
  throw new Error('Wallet could not be initialized');
74
111
  }
75
- const tokenizationStatus = await Wallet.addCardToGoogleWallet(cardData);
76
- return getTokenizationStatus(tokenizationStatus);
112
+ paymentCredentialsHandler = handlePaymentCredentialsGeneration;
113
+ try {
114
+ const tokenizationStatus = await Wallet.addCardToGoogleWallet(cardData);
115
+ return getTokenizationStatus(tokenizationStatus);
116
+ } finally {
117
+ paymentCredentialsHandler = null;
118
+ }
77
119
  }
78
120
  async function resumeAddCardToGoogleWallet(cardData) {
79
121
  if (Platform.OS === 'ios') {
@@ -127,5 +169,5 @@ async function addCardToAppleWallet(cardData, issuerEncryptPayloadCallback) {
127
169
  const status = await addPaymentPassToWallet(passData);
128
170
  return getTokenizationStatus(status);
129
171
  }
130
- export { AddToWalletButton, checkWalletAvailability, getSecureWalletInfo, getCardStatusBySuffix, getCardStatusByIdentifier, addCardToGoogleWallet, resumeAddCardToGoogleWallet, listTokens, addCardToAppleWallet, addListener, removeListener };
172
+ export { AddToWalletButton, checkWalletAvailability, getSecureWalletInfo, getCardStatusBySuffix, getCardStatusByIdentifier, hasEligibleTokenizationTarget, addCardToGoogleWallet, resumeAddCardToGoogleWallet, listTokens, addCardToAppleWallet, addListener, removeListener };
131
173
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["NativeEventEmitter","Platform","Wallet","PACKAGE_NAME","getCardState","getTokenizationStatus","AddToWalletButton","getModuleLinkingRejection","Promise","reject","Error","eventEmitter","addListener","event","callback","console","warn","remove","undefined","removeListener","subscription","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":[]}
1
+ {"version":3,"names":["NativeEventEmitter","Platform","Wallet","PACKAGE_NAME","getCardState","getTokenizationStatus","AddToWalletButton","getModuleLinkingRejection","Promise","reject","Error","eventEmitter","paymentCredentialsHandler","OS","addListener","data","console","warn","AndroidRejectPaymentCredentials","requestId","catch","undefined","responseData","AndroidProvidePaymentCredentials","error","message","String","event","callback","remove","removeListener","subscription","checkWalletAvailability","getSecureWalletInfo","isWalletInitialized","ensureGoogleWalletInitialized","getCardStatusBySuffix","last4Digits","cardState","getCardStatusByIdentifier","identifier","tsp","tokenState","toUpperCase","hasEligibleTokenizationTarget","network","issuerName","addCardToGoogleWallet","cardData","handlePaymentCredentialsGeneration","tokenizationStatus","resumeAddCardToGoogleWallet","listTokens","resolve","addCardToAppleWallet","issuerEncryptPayloadCallback","wallet","passData","IOSPresentAddPaymentPassView","status","addPaymentPassToWallet","paymentPassData","nonce","nonceSignature","certificates","response","IOSHandleAddPaymentPassResponse"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -21,6 +21,8 @@ type AndroidCardData = {
21
21
  cardHolderName: string;
22
22
  lastDigits: string;
23
23
  userAddress: UserAddress;
24
+ isVirtualCard?: boolean;
25
+ isBounceProvisioned?: boolean;
24
26
  };
25
27
  type AndroidResumeCardData = {
26
28
  network: string;
@@ -35,9 +37,16 @@ type IOSCardData = {
35
37
  cardDescription: string;
36
38
  };
37
39
  type onCardActivatedPayload = {
38
- tokenId: string;
40
+ tokenId?: string | null;
39
41
  status: 'activated' | 'canceled';
40
42
  };
43
+ type onPaymentCredentialsRequestPayload = {
44
+ requestId: string;
45
+ serverSessionId: string;
46
+ walletId: string;
47
+ tokenRequestorId: string | null;
48
+ opaquePaymentCard: string;
49
+ };
41
50
  type IOSAddPaymentPassData = {
42
51
  status: number;
43
52
  nonce: string;
@@ -55,13 +64,20 @@ type TokenInfo = {
55
64
  lastDigits: string;
56
65
  tokenState: number;
57
66
  };
67
+ type AndroidPaymentCredentialsResponse = {
68
+ opaquePaymentCard: string;
69
+ googleOpaquePaymentCard: string;
70
+ };
58
71
  export interface Spec extends TurboModule {
59
72
  checkWalletAvailability(): Promise<boolean>;
60
73
  ensureGoogleWalletInitialized(): Promise<boolean>;
61
74
  getSecureWalletInfo(): Promise<AndroidWalletData>;
62
75
  getCardStatusBySuffix(last4Digits: string): Promise<number>;
63
76
  getCardStatusByIdentifier(identifier: string, tsp: string): Promise<number>;
77
+ hasEligibleTokenizationTarget(last4Digits: string, network: string, issuerName: string): Promise<boolean>;
64
78
  addCardToGoogleWallet(cardData: AndroidCardData): Promise<number>;
79
+ AndroidProvidePaymentCredentials(requestId: string, responseData: AndroidPaymentCredentialsResponse): Promise<boolean>;
80
+ AndroidRejectPaymentCredentials(requestId: string, errorMessage: string): Promise<boolean>;
65
81
  resumeAddCardToGoogleWallet(cardData: AndroidResumeCardData): Promise<number>;
66
82
  listTokens(): Promise<TokenInfo[]>;
67
83
  IOSPresentAddPaymentPassView(cardData: IOSCardData): Promise<IOSAddPaymentPassData>;
@@ -73,5 +89,5 @@ declare const PACKAGE_NAME = "@expensify/react-native-wallet";
73
89
  declare let Wallet: Spec | undefined;
74
90
  export default Wallet;
75
91
  export { PACKAGE_NAME };
76
- export type { AndroidCardData, AndroidResumeCardData, IOSCardData, AndroidWalletData, CardStatus, UserAddress, onCardActivatedPayload, Platform, IOSAddPaymentPassData, IOSEncryptPayload, TokenizationStatus, TokenInfo, };
92
+ export type { AndroidCardData, AndroidResumeCardData, IOSCardData, AndroidWalletData, CardStatus, UserAddress, onCardActivatedPayload, onPaymentCredentialsRequestPayload, Platform, IOSAddPaymentPassData, IOSEncryptPayload, TokenizationStatus, TokenInfo, AndroidPaymentCredentialsResponse, };
77
93
  //# sourceMappingURL=NativeWallet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NativeWallet.d.ts","sourceRoot":"","sources":["../../../src/NativeWallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NativeWallet.d.ts","sourceRoot":"","sources":["../../../src/NativeWallet.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { EmitterSubscription } from 'react-native';
2
- import type { TokenizationStatus, AndroidCardData, AndroidResumeCardData, CardStatus, IOSCardData, IOSEncryptPayload, AndroidWalletData, onCardActivatedPayload, IOSAddPaymentPassData, TokenInfo } from './NativeWallet';
2
+ import type { TokenizationStatus, AndroidCardData, AndroidResumeCardData, CardStatus, IOSCardData, IOSEncryptPayload, AndroidWalletData, onCardActivatedPayload, onPaymentCredentialsRequestPayload, IOSAddPaymentPassData, TokenInfo, AndroidPaymentCredentialsResponse } from './NativeWallet';
3
3
  import AddToWalletButton from './AddToWalletButton';
4
4
  declare function addListener(event: string, callback: (data: onCardActivatedPayload) => void): EmitterSubscription;
5
5
  declare function removeListener(subscription: EmitterSubscription): void;
@@ -13,10 +13,19 @@ declare function getCardStatusBySuffix(last4Digits: string): Promise<CardStatus>
13
13
  * @returns CardStatus - The card status
14
14
  */
15
15
  declare function getCardStatusByIdentifier(identifier: string, tsp: string): Promise<CardStatus>;
16
- declare function addCardToGoogleWallet(cardData: AndroidCardData): Promise<TokenizationStatus>;
16
+ /**
17
+ * Checks whether the card can still be added to a Google Wallet target: the phone or a paired wearable.
18
+ * Use it to decide whether to show the "Add to Google Wallet" button when wearables are supported.
19
+ * @param last4Digits - The last 4 digits of the card number (FPAN, not the token)
20
+ * @param network - The card network, e.g. `VISA`, `MASTERCARD`
21
+ * @param issuerName - The issuer name used for matching, as in the token metadata (not the card display name)
22
+ * @returns `true` if at least one target can still receive the card
23
+ */
24
+ declare function hasEligibleTokenizationTarget(last4Digits: string, network: string, issuerName: string): Promise<boolean>;
25
+ declare function addCardToGoogleWallet(cardData: AndroidCardData, handlePaymentCredentialsGeneration: (data: onPaymentCredentialsRequestPayload) => Promise<AndroidPaymentCredentialsResponse>): Promise<TokenizationStatus>;
17
26
  declare function resumeAddCardToGoogleWallet(cardData: AndroidResumeCardData): Promise<TokenizationStatus>;
18
27
  declare function listTokens(): Promise<TokenInfo[]>;
19
28
  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, };
29
+ export type { AndroidCardData, AndroidWalletData, CardStatus, IOSEncryptPayload, IOSCardData, IOSAddPaymentPassData, onCardActivatedPayload, onPaymentCredentialsRequestPayload, TokenizationStatus, TokenInfo, AndroidPaymentCredentialsResponse, };
30
+ export { AddToWalletButton, checkWalletAvailability, getSecureWalletInfo, getCardStatusBySuffix, getCardStatusByIdentifier, hasEligibleTokenizationTarget, addCardToGoogleWallet, resumeAddCardToGoogleWallet, listTokens, addCardToAppleWallet, addListener, removeListener, };
22
31
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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;AAQpD,iBAAS,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,sBAAsB,KAAK,IAAI,GAAG,mBAAmB,CAQzG;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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAGA,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,kCAAkC,EAClC,qBAAqB,EACrB,SAAS,EACT,iCAAiC,EAClC,MAAM,gBAAgB,CAAC;AAExB,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AA2BpD,iBAAS,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,sBAAsB,KAAK,IAAI,GAAG,mBAAmB,CAQzG;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;;;;;;;GAOG;AACH,iBAAe,6BAA6B,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAUvH;AAED,iBAAe,qBAAqB,CAClC,QAAQ,EAAE,eAAe,EACzB,kCAAkC,EAAE,CAAC,IAAI,EAAE,kCAAkC,KAAK,OAAO,CAAC,iCAAiC,CAAC,GAC3H,OAAO,CAAC,kBAAkB,CAAC,CAoB7B;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,EACV,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACtB,kCAAkC,EAClC,kBAAkB,EAClB,SAAS,EACT,iCAAiC,GAClC,CAAC;AACF,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,yBAAyB,EACzB,6BAA6B,EAC7B,qBAAqB,EACrB,2BAA2B,EAC3B,UAAU,EACV,oBAAoB,EACpB,WAAW,EACX,cAAc,GACf,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expensify/react-native-wallet",
3
- "version": "0.1.40",
3
+ "version": "0.2.0",
4
4
  "description": "A React Native module designed for seamless integration of Card Push Provisioning into Apple Wallet and Google Wallet, enabling easy and secure addition of payment cards directly from your application.",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "lib/commonjs/index",
@@ -27,6 +27,8 @@ type AndroidCardData = {
27
27
  cardHolderName: string;
28
28
  lastDigits: string;
29
29
  userAddress: UserAddress;
30
+ isVirtualCard?: boolean;
31
+ isBounceProvisioned?: boolean;
30
32
  };
31
33
 
32
34
  type AndroidResumeCardData = {
@@ -44,10 +46,18 @@ type IOSCardData = {
44
46
  };
45
47
 
46
48
  type onCardActivatedPayload = {
47
- tokenId: string;
49
+ tokenId?: string | null;
48
50
  status: 'activated' | 'canceled';
49
51
  };
50
52
 
53
+ type onPaymentCredentialsRequestPayload = {
54
+ requestId: string;
55
+ serverSessionId: string;
56
+ walletId: string;
57
+ tokenRequestorId: string | null;
58
+ opaquePaymentCard: string;
59
+ };
60
+
51
61
  type IOSAddPaymentPassData = {
52
62
  status: number;
53
63
  nonce: string;
@@ -69,13 +79,21 @@ type TokenInfo = {
69
79
  tokenState: number;
70
80
  };
71
81
 
82
+ type AndroidPaymentCredentialsResponse = {
83
+ opaquePaymentCard: string;
84
+ googleOpaquePaymentCard: string;
85
+ };
86
+
72
87
  export interface Spec extends TurboModule {
73
88
  checkWalletAvailability(): Promise<boolean>;
74
89
  ensureGoogleWalletInitialized(): Promise<boolean>;
75
90
  getSecureWalletInfo(): Promise<AndroidWalletData>;
76
91
  getCardStatusBySuffix(last4Digits: string): Promise<number>;
77
92
  getCardStatusByIdentifier(identifier: string, tsp: string): Promise<number>;
93
+ hasEligibleTokenizationTarget(last4Digits: string, network: string, issuerName: string): Promise<boolean>;
78
94
  addCardToGoogleWallet(cardData: AndroidCardData): Promise<number>;
95
+ AndroidProvidePaymentCredentials(requestId: string, responseData: AndroidPaymentCredentialsResponse): Promise<boolean>;
96
+ AndroidRejectPaymentCredentials(requestId: string, errorMessage: string): Promise<boolean>;
79
97
  resumeAddCardToGoogleWallet(cardData: AndroidResumeCardData): Promise<number>;
80
98
  listTokens(): Promise<TokenInfo[]>;
81
99
  IOSPresentAddPaymentPassView(cardData: IOSCardData): Promise<IOSAddPaymentPassData>;
@@ -107,9 +125,11 @@ export type {
107
125
  CardStatus,
108
126
  UserAddress,
109
127
  onCardActivatedPayload,
128
+ onPaymentCredentialsRequestPayload,
110
129
  Platform,
111
130
  IOSAddPaymentPassData,
112
131
  IOSEncryptPayload,
113
132
  TokenizationStatus,
114
133
  TokenInfo,
134
+ AndroidPaymentCredentialsResponse,
115
135
  };