@expensify/react-native-wallet 0.1.11 → 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 +6 -2
- package/android/src/main/java/com/expensify/wallet/WalletModule.kt +69 -1
- package/android/src/paper/java/com/expensify/wallet/NativeWalletSpec.java +12 -0
- package/lib/commonjs/NativeWallet.js.map +1 -1
- package/lib/commonjs/index.js +29 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/NativeWallet.js.map +1 -1
- package/lib/module/index.js +28 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/NativeWallet.d.ts +14 -1
- package/lib/typescript/src/NativeWallet.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +5 -3
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/NativeWallet.ts +29 -1
- package/src/index.tsx +46 -2
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
|
|
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
|
|
|
@@ -240,7 +244,7 @@ Additionally, when submitting your app to the App Store, you must include:
|
|
|
240
244
|
|
|
241
245
|
# Compatibility
|
|
242
246
|
|
|
243
|
-
`@expensify/react-native-wallet`
|
|
247
|
+
`@expensify/react-native-wallet` is compatible with the five latest minor releases of React Native (≥0.76.0) and works exclusively with the new architecture.
|
|
244
248
|
|
|
245
249
|
|
|
246
250
|
# Contributing
|
|
@@ -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(
|
|
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;
|
|
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":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -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":"
|
|
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;
|
|
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":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -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
|
package/lib/module/index.js.map
CHANGED
|
@@ -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":"AAAA;AACA,SAAQA,kBAAkB,EAAEC,QAAQ,QAAO,cAAc;AAEzD,OAAOC,MAAM,IAAGC,YAAY,QAAO,gBAAgB;
|
|
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":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AAG9C,KAAK,iBAAiB,GAAG;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,KAAK,UAAU,GAAG,WAAW,GAAG,mBAAmB,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,aAAa,CAAC;AAEzG,KAAK,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC;AAElC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,QAAQ,GAAG,UAAU,CAAC;CACrC,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,KAAK,kBAAkB,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,6BAA6B,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,mBAAmB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAClD,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5D,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5E,qBAAqB,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAClE,4BAA4B,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACpF,+BAA+B,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;IACnG,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAED,QAAA,MAAM,YAAY,mCAAmC,CAAC;AAItD,QAAA,IAAI,MAAM,EAAE,IAAI,GAAG,SAAS,CAAC;AAS7B,eAAe,MAAM,CAAC;AACtB,OAAO,EAAC,YAAY,EAAC,CAAC;AACtB,YAAY,
|
|
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,
|
|
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.
|
|
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",
|
package/src/NativeWallet.ts
CHANGED
|
@@ -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 {
|
|
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 {
|
|
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,
|