@expensify/react-native-wallet 0.1.12 → 0.1.13

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/README.md CHANGED
@@ -123,7 +123,7 @@ Here you can find data elements used in the library, essential to work with Goog
123
123
  - **Ephemeral Public Key** - a key used by elliptic curve cryptography (ECC) (Base 64 encoded).
124
124
 
125
125
  # API Reference
126
- The library offers five functions for seamless integration and use of the Apple Wallet and Google Wallet APIs. Additionally, it includes one listener that informs when the added card has been activated. Below, these functions are described along with the data types involved.
126
+ The library offers seven functions for seamless integration and use of the Apple Wallet and Google Wallet APIs. Additionally, it includes one listener that informs when the added card has been activated. Below, these functions are described along with the data types involved.
127
127
 
128
128
  ## Functions
129
129
 
@@ -134,6 +134,8 @@ The library offers five functions for seamless integration and use of the Apple
134
134
  | **getCardStatusBySuffix** | Retrieves the current status of a card in the wallet. | `lastDigits: string`<br>(The last few digits of the card number) | `CardStatus` | ✅ | ✅ |
135
135
  | **getCardStatusByIdentifier** | Returns the state of a card based on a platform-specific identifier. On Android, it's `Token Reference ID` and on iOS, it's `Primary Account Identifier`. | `identifier: string`,<br>`tsp: string` | `CardStatus` | ✅ | ✅ |
136
136
  | **addCardToGoogleWallet** | Initiates native Push Provisioning flow for adding a card to the Google Wallet. | `data`: `AndroidCardData` | `TokenizationStatus` | ❌ | ✅ |
137
+ | **resumeAddCardToGoogleWallet** | Resumes the Push Provisioning flow for adding a card to the Google Wallet using existing token reference ID. | `data`: `AndroidResumeCardData` | `TokenizationStatus` | ❌ | ✅ |
138
+ | **listTokens** | Lists all tokens currently stored in the Google Wallet. | None | `TokenInfo[]` | ❌ | ✅ |
137
139
  | **addCardToAppleWallet** | Initiates native Push Provisioning flow for adding a card to the Apple Wallet. | `data`: `IOSCardData`,<br>`issuerEncrypt-`<br>`PayloadCallback: IOSIssuerCallback` | `void` | ✅ | ❌ |
138
140
 
139
141
 
@@ -143,11 +145,13 @@ The library offers five functions for seamless integration and use of the Apple
143
145
  |------|-------------|--------|
144
146
  | **AndroidWalletData** | Specific information for Android devices required for wallet transactions. | `deviceID: string`,<br>`walletAccountID: string` |
145
147
  | **AndroidCardData** | Data related to a card that is to be added on Android platform wallets. | `network: string`,<br>`opaquePaymentCard: string`,<br>`cardHolderName: string`,<br>`lastDigits: string`,<br>`userAddress: UserAddress` |
148
+ | **AndroidResumeCardData** | Simplified data structure for resuming card addition to Google Wallet using existing token reference ID. | `network: string`,<br>`tokenReferenceID: string`,<br>`cardHolderName?: string`,<br>`lastDigits?: string` |
146
149
  | **UserAddress** | Structured address used for cardholder verification. | `name: string`,<br>`addressOne: string`,<br>`addressTwo: string`,<br>`city: string`,<br>`administrativeArea: string`,<br>`countryCode: string`,<br>`postalCode: string`,<br>`phoneNumber: string` |
147
150
  | **IOSCardData** | Data related to a card that is to be added on iOS platform. | `network: string`,<br>`activationData: string`,<br>`encryptedPassData: string`,<br>`ephemeralPublicKey: string`,<br>`cardHolderTitle: string`,<br>`cardHolderName: string`,<br>`lastDigits: string`,<br>`cardDescription: string`,<br>`cardDescriptionComment: string` |
148
151
  | **onCardActivatedPayload** | Data used by listener to notice when a card’s status changes. | `tokenId: string`,<br> `actionStatus: 'activated' \| 'canceled'`<br> |
149
152
  | **IOSIssuerCallback** | This callback is invoked with a nonce, its signature, and a certificate array obtained from Apple. It is expected that you will forward these details to your server or the card issuer's API to securely encrypt the payload required for adding cards to the Apple Wallet. | `(nonce: string, nonceSignature: string, certificate: string[]) => IOSEncryptPayload` |
150
153
  | **IOSEncryptPayload** | An object containing the necessary elements to complete the addition of a card to Apple Wallet. | `encryptedPassData: string`,<br>`activationData: string`,<br>`ephemeralPublicKey: string` |
154
+ | **TokenInfo** | Information about a token stored in Google Wallet. | `identifier: string`,<br>`lastDigits: string`,<br>`tokenState: number` |
151
155
 
152
156
  ## Card Status
153
157
 
@@ -188,13 +188,14 @@ class WalletModule internal constructor(context: ReactApplicationContext) :
188
188
  val cardData = data.toCardData() ?: return promise.reject(E_INVALID_DATA, "Insufficient data")
189
189
  val cardNetwork = getCardNetwork(cardData.network)
190
190
  val tokenServiceProvider = getTokenServiceProvider(cardData.network)
191
+ val displayName = getDisplayName(data, cardData.network)
191
192
  pendingPushTokenizePromise = promise
192
193
 
193
194
  val pushTokenizeRequest = PushTokenizeRequest.Builder()
194
195
  .setOpaquePaymentCard(cardData.opaquePaymentCard.toByteArray(Charset.forName("UTF-8")))
195
196
  .setNetwork(cardNetwork)
196
197
  .setTokenServiceProvider(tokenServiceProvider)
197
- .setDisplayName(cardData.cardHolderName)
198
+ .setDisplayName(displayName)
198
199
  .setLastDigits(cardData.lastDigits)
199
200
  .setUserAddress(cardData.userAddress)
200
201
  .build()
@@ -207,6 +208,59 @@ class WalletModule internal constructor(context: ReactApplicationContext) :
207
208
  }
208
209
  }
209
210
 
211
+ @ReactMethod
212
+ override fun resumeAddCardToGoogleWallet(data: ReadableMap, promise: Promise) {
213
+ try {
214
+ val tokenReferenceID = data.getString("tokenReferenceID")
215
+ ?: return promise.reject(E_INVALID_DATA, "Missing tokenReferenceID")
216
+
217
+ val network = data.getString("network")
218
+ ?: return promise.reject(E_INVALID_DATA, "Missing network")
219
+
220
+ val cardNetwork = getCardNetwork(network)
221
+ val tokenServiceProvider = getTokenServiceProvider(network)
222
+ val displayName = getDisplayName(data, network)
223
+ pendingPushTokenizePromise = promise
224
+
225
+ tapAndPayClient.tokenize(
226
+ activity,
227
+ tokenReferenceID,
228
+ tokenServiceProvider,
229
+ displayName,
230
+ cardNetwork,
231
+ REQUEST_CODE_PUSH_TOKENIZE
232
+ )
233
+ } catch (e: java.lang.Exception) {
234
+ promise.reject(e)
235
+ }
236
+ }
237
+
238
+ @ReactMethod
239
+ override fun listTokens(promise: Promise) {
240
+ tapAndPayClient.listTokens()
241
+ .addOnCompleteListener { task ->
242
+ if (!task.isSuccessful || task.result == null) {
243
+ promise.resolve(Arguments.createArray())
244
+ return@addOnCompleteListener
245
+ }
246
+
247
+ val tokensArray = Arguments.createArray()
248
+ task.result.forEach { tokenInfo ->
249
+ val tokenData = Arguments.createMap().apply {
250
+ putString("identifier", tokenInfo.issuerTokenId)
251
+ putString("lastDigits", tokenInfo.fpanLastFour)
252
+ putInt("tokenState", tokenInfo.tokenState)
253
+ }
254
+ tokensArray.pushMap(tokenData)
255
+ }
256
+
257
+ promise.resolve(tokensArray)
258
+ }
259
+ .addOnFailureListener { e ->
260
+ promise.reject(E_OPERATION_FAILED, "listTokens: ${e.localizedMessage}")
261
+ }
262
+ }
263
+
210
264
  private fun getWalletId(promise: Promise) {
211
265
  tapAndPayClient.activeWalletId.addOnCompleteListener { task ->
212
266
  if (task.isSuccessful) {
@@ -272,6 +326,20 @@ class WalletModule internal constructor(context: ReactApplicationContext) :
272
326
  getHardwareId(promise)
273
327
  }
274
328
 
329
+ private fun getDisplayName(data: ReadableMap, network: String): String {
330
+ data.getString("cardHolderName")?.let { name ->
331
+ if (name.isNotEmpty()) return name
332
+ }
333
+
334
+ data.getString("lastDigits")?.let { digits ->
335
+ if (digits.isNotEmpty()) {
336
+ return "${network.uppercase(Locale.getDefault())} Card *$digits"
337
+ }
338
+ }
339
+
340
+ return "${network.uppercase(Locale.getDefault())} Card"
341
+ }
342
+
275
343
  private fun sendEvent(reactContext: ReactContext, eventName: String, params: WritableMap?) {
276
344
  reactContext
277
345
  .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
@@ -37,6 +37,10 @@ public abstract class NativeWalletSpec extends ReactContextBaseJavaModule implem
37
37
  @DoNotStrip
38
38
  public abstract void checkWalletAvailability(Promise promise);
39
39
 
40
+ @ReactMethod
41
+ @DoNotStrip
42
+ public abstract void ensureGoogleWalletInitialized(Promise promise);
43
+
40
44
  @ReactMethod
41
45
  @DoNotStrip
42
46
  public abstract void getSecureWalletInfo(Promise promise);
@@ -53,6 +57,14 @@ public abstract class NativeWalletSpec extends ReactContextBaseJavaModule implem
53
57
  @DoNotStrip
54
58
  public abstract void addCardToGoogleWallet(ReadableMap cardData, Promise promise);
55
59
 
60
+ @ReactMethod
61
+ @DoNotStrip
62
+ public abstract void resumeAddCardToGoogleWallet(ReadableMap cardData, Promise promise);
63
+
64
+ @ReactMethod
65
+ @DoNotStrip
66
+ public abstract void listTokens(Promise promise);
67
+
56
68
  @ReactMethod
57
69
  @DoNotStrip
58
70
  public abstract void IOSPresentAddPaymentPassView(ReadableMap cardData, Promise promise);
@@ -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;AAsEA,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;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":[]}
@@ -16,7 +16,9 @@ exports.checkWalletAvailability = checkWalletAvailability;
16
16
  exports.getCardStatusByIdentifier = getCardStatusByIdentifier;
17
17
  exports.getCardStatusBySuffix = getCardStatusBySuffix;
18
18
  exports.getSecureWalletInfo = getSecureWalletInfo;
19
+ exports.listTokens = listTokens;
19
20
  exports.removeListener = removeListener;
21
+ exports.resumeAddCardToGoogleWallet = resumeAddCardToGoogleWallet;
20
22
  var _reactNative = require("react-native");
21
23
  var _NativeWallet = _interopRequireWildcard(require("./NativeWallet"));
22
24
  var _utils = require("./utils");
@@ -90,6 +92,33 @@ async function addCardToGoogleWallet(cardData) {
90
92
  const tokenizationStatus = await _NativeWallet.default.addCardToGoogleWallet(cardData);
91
93
  return (0, _utils.getTokenizationStatus)(tokenizationStatus);
92
94
  }
95
+ async function resumeAddCardToGoogleWallet(cardData) {
96
+ if (_reactNative.Platform.OS === 'ios') {
97
+ throw new Error('resumeAddCardToGoogleWallet is not available on iOS');
98
+ }
99
+ if (!_NativeWallet.default) {
100
+ return getModuleLinkingRejection();
101
+ }
102
+ const isWalletInitialized = await _NativeWallet.default.ensureGoogleWalletInitialized();
103
+ if (!isWalletInitialized) {
104
+ throw new Error('Wallet could not be initialized');
105
+ }
106
+ const tokenizationStatus = await _NativeWallet.default.resumeAddCardToGoogleWallet(cardData);
107
+ return (0, _utils.getTokenizationStatus)(tokenizationStatus);
108
+ }
109
+ async function listTokens() {
110
+ if (_reactNative.Platform.OS === 'ios') {
111
+ return Promise.resolve([]);
112
+ }
113
+ if (!_NativeWallet.default) {
114
+ return getModuleLinkingRejection();
115
+ }
116
+ const isWalletInitialized = await _NativeWallet.default.ensureGoogleWalletInitialized();
117
+ if (!isWalletInitialized) {
118
+ throw new Error('Wallet could not be initialized');
119
+ }
120
+ return _NativeWallet.default.listTokens();
121
+ }
93
122
  async function addCardToAppleWallet(cardData, issuerEncryptPayloadCallback) {
94
123
  if (_reactNative.Platform.OS === 'android') {
95
124
  throw new Error('addCardToAppleWallet is not available on Andorid');
@@ -1 +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","NativeEventEmitter","Wallet","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","addCardToAppleWallet","issuerEncryptPayloadCallback","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","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","getModuleLinkingRejection","Promise","reject","Error","PACKAGE_NAME","eventEmitter","NativeEventEmitter","Wallet","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","passData","IOSPresentAddPaymentPassView","status","addPaymentPassToWallet","paymentPassData","responseData","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;AAsEhD,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;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":[]}
@@ -67,6 +67,33 @@ async function addCardToGoogleWallet(cardData) {
67
67
  const tokenizationStatus = await Wallet.addCardToGoogleWallet(cardData);
68
68
  return getTokenizationStatus(tokenizationStatus);
69
69
  }
70
+ async function resumeAddCardToGoogleWallet(cardData) {
71
+ if (Platform.OS === 'ios') {
72
+ throw new Error('resumeAddCardToGoogleWallet is not available on iOS');
73
+ }
74
+ if (!Wallet) {
75
+ return getModuleLinkingRejection();
76
+ }
77
+ const isWalletInitialized = await Wallet.ensureGoogleWalletInitialized();
78
+ if (!isWalletInitialized) {
79
+ throw new Error('Wallet could not be initialized');
80
+ }
81
+ const tokenizationStatus = await Wallet.resumeAddCardToGoogleWallet(cardData);
82
+ return getTokenizationStatus(tokenizationStatus);
83
+ }
84
+ async function listTokens() {
85
+ if (Platform.OS === 'ios') {
86
+ return Promise.resolve([]);
87
+ }
88
+ if (!Wallet) {
89
+ return getModuleLinkingRejection();
90
+ }
91
+ const isWalletInitialized = await Wallet.ensureGoogleWalletInitialized();
92
+ if (!isWalletInitialized) {
93
+ throw new Error('Wallet could not be initialized');
94
+ }
95
+ return Wallet.listTokens();
96
+ }
70
97
  async function addCardToAppleWallet(cardData, issuerEncryptPayloadCallback) {
71
98
  if (Platform.OS === 'android') {
72
99
  throw new Error('addCardToAppleWallet is not available on Andorid');
@@ -88,5 +115,5 @@ async function addCardToAppleWallet(cardData, issuerEncryptPayloadCallback) {
88
115
  const status = await addPaymentPassToWallet(passData);
89
116
  return getTokenizationStatus(status);
90
117
  }
91
- export { AddToWalletButton, checkWalletAvailability, getSecureWalletInfo, getCardStatusBySuffix, getCardStatusByIdentifier, addCardToGoogleWallet, addCardToAppleWallet, addListener, removeListener };
118
+ export { AddToWalletButton, checkWalletAvailability, getSecureWalletInfo, getCardStatusBySuffix, getCardStatusByIdentifier, addCardToGoogleWallet, resumeAddCardToGoogleWallet, listTokens, addCardToAppleWallet, addListener, removeListener };
92
119
  //# 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","removeListener","subscription","remove","checkWalletAvailability","getSecureWalletInfo","OS","isWalletInitialized","ensureGoogleWalletInitialized","getCardStatusBySuffix","last4Digits","cardState","getCardStatusByIdentifier","identifier","tsp","tokenState","toUpperCase","addCardToGoogleWallet","cardData","tokenizationStatus","addCardToAppleWallet","issuerEncryptPayloadCallback","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","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","passData","IOSPresentAddPaymentPassView","status","addPaymentPassToWallet","paymentPassData","responseData","nonce","nonceSignature","certificates","response","IOSHandleAddPaymentPassResponse"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -22,6 +22,12 @@ type AndroidCardData = {
22
22
  lastDigits: string;
23
23
  userAddress: UserAddress;
24
24
  };
25
+ type AndroidResumeCardData = {
26
+ network: string;
27
+ tokenReferenceID: string;
28
+ cardHolderName?: string;
29
+ lastDigits?: string;
30
+ };
25
31
  type IOSCardData = {
26
32
  network: string;
27
33
  cardHolderName: string;
@@ -44,6 +50,11 @@ type IOSEncryptPayload = {
44
50
  ephemeralPublicKey: string;
45
51
  };
46
52
  type TokenizationStatus = 'canceled' | 'success' | 'error';
53
+ type TokenInfo = {
54
+ identifier: string;
55
+ lastDigits: string;
56
+ tokenState: number;
57
+ };
47
58
  export interface Spec extends TurboModule {
48
59
  checkWalletAvailability(): Promise<boolean>;
49
60
  ensureGoogleWalletInitialized(): Promise<boolean>;
@@ -51,6 +62,8 @@ export interface Spec extends TurboModule {
51
62
  getCardStatusBySuffix(last4Digits: string): Promise<number>;
52
63
  getCardStatusByIdentifier(identifier: string, tsp: string): Promise<number>;
53
64
  addCardToGoogleWallet(cardData: AndroidCardData): Promise<number>;
65
+ resumeAddCardToGoogleWallet(cardData: AndroidResumeCardData): Promise<number>;
66
+ listTokens(): Promise<TokenInfo[]>;
54
67
  IOSPresentAddPaymentPassView(cardData: IOSCardData): Promise<IOSAddPaymentPassData>;
55
68
  IOSHandleAddPaymentPassResponse(payload: IOSEncryptPayload): Promise<IOSAddPaymentPassData | null>;
56
69
  addListener: (eventType: string) => void;
@@ -60,5 +73,5 @@ declare const PACKAGE_NAME = "@expensify/react-native-wallet";
60
73
  declare let Wallet: Spec | undefined;
61
74
  export default Wallet;
62
75
  export { PACKAGE_NAME };
63
- export type { AndroidCardData, IOSCardData, AndroidWalletData, CardStatus, UserAddress, onCardActivatedPayload, Platform, IOSAddPaymentPassData, IOSEncryptPayload, TokenizationStatus };
76
+ export type { AndroidCardData, AndroidResumeCardData, IOSCardData, AndroidWalletData, CardStatus, UserAddress, onCardActivatedPayload, Platform, IOSAddPaymentPassData, IOSEncryptPayload, TokenizationStatus, TokenInfo, };
64
77
  //# 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, CardStatus, IOSCardData, IOSEncryptPayload, AndroidWalletData, onCardActivatedPayload, IOSAddPaymentPassData } from './NativeWallet';
2
+ import type { TokenizationStatus, AndroidCardData, AndroidResumeCardData, CardStatus, IOSCardData, IOSEncryptPayload, AndroidWalletData, onCardActivatedPayload, IOSAddPaymentPassData, TokenInfo } 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;
@@ -14,7 +14,9 @@ declare function getCardStatusBySuffix(last4Digits: string): Promise<CardStatus>
14
14
  */
15
15
  declare function getCardStatusByIdentifier(identifier: string, tsp: string): Promise<CardStatus>;
16
16
  declare function addCardToGoogleWallet(cardData: AndroidCardData): Promise<TokenizationStatus>;
17
+ declare function resumeAddCardToGoogleWallet(cardData: AndroidResumeCardData): Promise<TokenizationStatus>;
18
+ declare function listTokens(): Promise<TokenInfo[]>;
17
19
  declare function addCardToAppleWallet(cardData: IOSCardData, issuerEncryptPayloadCallback: (nonce: string, nonceSignature: string, certificate: string[]) => Promise<IOSEncryptPayload>): Promise<TokenizationStatus>;
18
- export type { AndroidCardData, AndroidWalletData, CardStatus, IOSEncryptPayload, IOSCardData, IOSAddPaymentPassData, onCardActivatedPayload, TokenizationStatus };
19
- export { AddToWalletButton, checkWalletAvailability, getSecureWalletInfo, getCardStatusBySuffix, getCardStatusByIdentifier, addCardToGoogleWallet, addCardToAppleWallet, addListener, removeListener, };
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, };
20
22
  //# 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,EAAC,kBAAkB,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,qBAAqB,EAAC,MAAM,gBAAgB,CAAC;AAEtL,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAQpD,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,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,CAsB7B;AAED,YAAY,EAAC,eAAe,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,kBAAkB,EAAC,CAAC;AAChK,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EACX,cAAc,GACf,CAAC"}
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,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,CAsB7B;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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expensify/react-native-wallet",
3
- "version": "0.1.12",
3
+ "version": "0.1.13",
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",
@@ -29,6 +29,13 @@ type AndroidCardData = {
29
29
  userAddress: UserAddress;
30
30
  };
31
31
 
32
+ type AndroidResumeCardData = {
33
+ network: string;
34
+ tokenReferenceID: string;
35
+ cardHolderName?: string;
36
+ lastDigits?: string;
37
+ };
38
+
32
39
  type IOSCardData = {
33
40
  network: string;
34
41
  cardHolderName: string;
@@ -56,6 +63,12 @@ type IOSEncryptPayload = {
56
63
 
57
64
  type TokenizationStatus = 'canceled' | 'success' | 'error';
58
65
 
66
+ type TokenInfo = {
67
+ identifier: string;
68
+ lastDigits: string;
69
+ tokenState: number;
70
+ };
71
+
59
72
  export interface Spec extends TurboModule {
60
73
  checkWalletAvailability(): Promise<boolean>;
61
74
  ensureGoogleWalletInitialized(): Promise<boolean>;
@@ -63,6 +76,8 @@ export interface Spec extends TurboModule {
63
76
  getCardStatusBySuffix(last4Digits: string): Promise<number>;
64
77
  getCardStatusByIdentifier(identifier: string, tsp: string): Promise<number>;
65
78
  addCardToGoogleWallet(cardData: AndroidCardData): Promise<number>;
79
+ resumeAddCardToGoogleWallet(cardData: AndroidResumeCardData): Promise<number>;
80
+ listTokens(): Promise<TokenInfo[]>;
66
81
  IOSPresentAddPaymentPassView(cardData: IOSCardData): Promise<IOSAddPaymentPassData>;
67
82
  IOSHandleAddPaymentPassResponse(payload: IOSEncryptPayload): Promise<IOSAddPaymentPassData | null>;
68
83
  addListener: (eventType: string) => void;
@@ -84,4 +99,17 @@ try {
84
99
  }
85
100
  export default Wallet;
86
101
  export {PACKAGE_NAME};
87
- export type {AndroidCardData, IOSCardData, AndroidWalletData, CardStatus, UserAddress, onCardActivatedPayload, Platform, IOSAddPaymentPassData, IOSEncryptPayload, TokenizationStatus};
102
+ export type {
103
+ AndroidCardData,
104
+ AndroidResumeCardData,
105
+ IOSCardData,
106
+ AndroidWalletData,
107
+ CardStatus,
108
+ UserAddress,
109
+ onCardActivatedPayload,
110
+ Platform,
111
+ IOSAddPaymentPassData,
112
+ IOSEncryptPayload,
113
+ TokenizationStatus,
114
+ TokenInfo,
115
+ };
package/src/index.tsx CHANGED
@@ -2,7 +2,18 @@
2
2
  import {NativeEventEmitter, Platform} from 'react-native';
3
3
  import type {EmitterSubscription} from 'react-native';
4
4
  import Wallet, {PACKAGE_NAME} from './NativeWallet';
5
- import type {TokenizationStatus, AndroidCardData, CardStatus, IOSCardData, IOSEncryptPayload, AndroidWalletData, onCardActivatedPayload, IOSAddPaymentPassData} from './NativeWallet';
5
+ import type {
6
+ TokenizationStatus,
7
+ AndroidCardData,
8
+ AndroidResumeCardData,
9
+ CardStatus,
10
+ IOSCardData,
11
+ IOSEncryptPayload,
12
+ AndroidWalletData,
13
+ onCardActivatedPayload,
14
+ IOSAddPaymentPassData,
15
+ TokenInfo,
16
+ } from './NativeWallet';
6
17
  import {getCardState, getTokenizationStatus} from './utils';
7
18
  import AddToWalletButton from './AddToWalletButton';
8
19
 
@@ -83,6 +94,37 @@ async function addCardToGoogleWallet(cardData: AndroidCardData): Promise<Tokeniz
83
94
  return getTokenizationStatus(tokenizationStatus);
84
95
  }
85
96
 
97
+ async function resumeAddCardToGoogleWallet(cardData: AndroidResumeCardData): Promise<TokenizationStatus> {
98
+ if (Platform.OS === 'ios') {
99
+ throw new Error('resumeAddCardToGoogleWallet is not available on iOS');
100
+ }
101
+
102
+ if (!Wallet) {
103
+ return getModuleLinkingRejection();
104
+ }
105
+ const isWalletInitialized = await Wallet.ensureGoogleWalletInitialized();
106
+ if (!isWalletInitialized) {
107
+ throw new Error('Wallet could not be initialized');
108
+ }
109
+ const tokenizationStatus = await Wallet.resumeAddCardToGoogleWallet(cardData);
110
+ return getTokenizationStatus(tokenizationStatus);
111
+ }
112
+
113
+ async function listTokens(): Promise<TokenInfo[]> {
114
+ if (Platform.OS === 'ios') {
115
+ return Promise.resolve([]);
116
+ }
117
+
118
+ if (!Wallet) {
119
+ return getModuleLinkingRejection();
120
+ }
121
+ const isWalletInitialized = await Wallet.ensureGoogleWalletInitialized();
122
+ if (!isWalletInitialized) {
123
+ throw new Error('Wallet could not be initialized');
124
+ }
125
+ return Wallet.listTokens();
126
+ }
127
+
86
128
  async function addCardToAppleWallet(
87
129
  cardData: IOSCardData,
88
130
  issuerEncryptPayloadCallback: (nonce: string, nonceSignature: string, certificate: string[]) => Promise<IOSEncryptPayload>,
@@ -110,7 +152,7 @@ async function addCardToAppleWallet(
110
152
  return getTokenizationStatus(status);
111
153
  }
112
154
 
113
- export type {AndroidCardData, AndroidWalletData, CardStatus, IOSEncryptPayload, IOSCardData, IOSAddPaymentPassData, onCardActivatedPayload, TokenizationStatus};
155
+ export type {AndroidCardData, AndroidWalletData, CardStatus, IOSEncryptPayload, IOSCardData, IOSAddPaymentPassData, onCardActivatedPayload, TokenizationStatus, TokenInfo};
114
156
  export {
115
157
  AddToWalletButton,
116
158
  checkWalletAvailability,
@@ -118,6 +160,8 @@ export {
118
160
  getCardStatusBySuffix,
119
161
  getCardStatusByIdentifier,
120
162
  addCardToGoogleWallet,
163
+ resumeAddCardToGoogleWallet,
164
+ listTokens,
121
165
  addCardToAppleWallet,
122
166
  addListener,
123
167
  removeListener,