react-native-okhi 1.2.32-beta.6 → 2.0.1
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 +156 -16
- package/ReactNativeOkhi.podspec +1 -1
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/okhi/OkhiModule.kt +0 -4
- package/ios/OkHiWrapper.swift +1 -5
- package/ios/Okhi.mm +0 -4
- package/lib/commonjs/NativeOkhi.js.map +1 -1
- package/lib/commonjs/index.js +290 -34
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/types.js +390 -0
- package/lib/commonjs/types.js.map +1 -1
- package/lib/module/NativeOkhi.js.map +1 -1
- package/lib/module/index.js +261 -33
- package/lib/module/index.js.map +1 -1
- package/lib/module/types.js +385 -0
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/commonjs/src/NativeOkhi.d.ts +0 -1
- package/lib/typescript/commonjs/src/NativeOkhi.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/index.d.ts +248 -2
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/types.d.ts +540 -4
- package/lib/typescript/commonjs/src/types.d.ts.map +1 -1
- package/lib/typescript/module/src/NativeOkhi.d.ts +0 -1
- package/lib/typescript/module/src/NativeOkhi.d.ts.map +1 -1
- package/lib/typescript/module/src/index.d.ts +248 -2
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/types.d.ts +540 -4
- package/lib/typescript/module/src/types.d.ts.map +1 -1
- package/package.json +4 -2
- package/src/NativeOkhi.ts +0 -1
- package/src/index.tsx +271 -33
- package/src/types.ts +655 -5
package/lib/module/index.js
CHANGED
|
@@ -1,10 +1,83 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
* React Native OkHi SDK
|
|
6
|
+
*
|
|
7
|
+
* A comprehensive React Native library for address verification using OkHi's
|
|
8
|
+
* digital and physical verification methods.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import * as OkHi from 'react-native-okhi';
|
|
13
|
+
*
|
|
14
|
+
* // 1. Login
|
|
15
|
+
* await OkHi.login({
|
|
16
|
+
* auth: { branchId: 'xxx', clientKey: 'xxx' },
|
|
17
|
+
* user: { firstName: 'John', lastName: 'Doe', phone: '+254...', email: '...' },
|
|
18
|
+
* });
|
|
19
|
+
*
|
|
20
|
+
* // 2. Start verification
|
|
21
|
+
* const result = await OkHi.startDigitalAddressVerification();
|
|
22
|
+
* console.log('Verified address:', result.location.formattedAddress);
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
|
|
3
26
|
import { Platform } from 'react-native';
|
|
4
27
|
import Okhi from "./NativeOkhi.js";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
28
|
+
import { OkHiException } from "./types.js";
|
|
29
|
+
export * from "./types.js";
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Authenticates a user with the OkHi platform.
|
|
33
|
+
*
|
|
34
|
+
* @remarks
|
|
35
|
+
* This must be called before any verification functions. It establishes
|
|
36
|
+
* the user session and validates your API credentials.
|
|
37
|
+
*
|
|
38
|
+
* **When to call login:** The login function should be called once you have
|
|
39
|
+
* an authenticated user in your app. A common place to call login is immediately
|
|
40
|
+
* after the app dashboard is rendered, for example in a banking app after a user
|
|
41
|
+
* successfully signs in.
|
|
42
|
+
*
|
|
43
|
+
* It initializes OkHi and enables your users to resume verification if they
|
|
44
|
+
* switch devices, as well as enables re-verification of previously unknown addresses.
|
|
45
|
+
*
|
|
46
|
+
* The login persists for the duration of the app session.
|
|
47
|
+
*
|
|
48
|
+
* @param credentials - The login configuration containing auth credentials and user info
|
|
49
|
+
* @returns A promise that resolves with an array of permission strings that were granted,
|
|
50
|
+
* or `null` if `withPermissionsRequest` was not enabled
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* import * as OkHi from 'react-native-okhi';
|
|
55
|
+
* import type { OkHiLogin } from 'react-native-okhi';
|
|
56
|
+
*
|
|
57
|
+
* const credentials: OkHiLogin = {
|
|
58
|
+
* auth: {
|
|
59
|
+
* branchId: 'your_branch_id',
|
|
60
|
+
* clientKey: 'your_client_key',
|
|
61
|
+
* },
|
|
62
|
+
* user: {
|
|
63
|
+
* firstName: 'John',
|
|
64
|
+
* lastName: 'Doe',
|
|
65
|
+
* phone: '+254712345678',
|
|
66
|
+
* email: 'john.doe@example.com',
|
|
67
|
+
* },
|
|
68
|
+
* };
|
|
69
|
+
*
|
|
70
|
+
* try {
|
|
71
|
+
* await OkHi.login(credentials);
|
|
72
|
+
* console.log('Login successful');
|
|
73
|
+
* } catch (error) {
|
|
74
|
+
* console.error('Login failed:', error);
|
|
75
|
+
* }
|
|
76
|
+
* ```
|
|
77
|
+
*
|
|
78
|
+
* @see {@link OkHiLogin} - Configuration type
|
|
79
|
+
* @see {@link startDigitalAddressVerification} - Call after login to verify addresses
|
|
80
|
+
*/
|
|
8
81
|
export function login(credentials) {
|
|
9
82
|
return new Promise(resolve => {
|
|
10
83
|
Okhi.login(credentials, results => {
|
|
@@ -41,23 +114,70 @@ function processVerificationResponse(response, error, resolve, reject) {
|
|
|
41
114
|
});
|
|
42
115
|
} else if (error != null) {
|
|
43
116
|
const err = error;
|
|
44
|
-
reject(
|
|
45
|
-
code: err.code,
|
|
46
|
-
message: err.message
|
|
47
|
-
});
|
|
117
|
+
reject(OkHiException.fromNativeError(err));
|
|
48
118
|
} else {
|
|
49
|
-
reject(
|
|
50
|
-
code: 'unknown',
|
|
51
|
-
message: 'unable to complete operation - unknown response'
|
|
52
|
-
});
|
|
119
|
+
reject(new OkHiException(OkHiException.UNKNOWN, 'An unknown error occurred'));
|
|
53
120
|
}
|
|
54
121
|
} catch {
|
|
55
|
-
reject(
|
|
56
|
-
code: 'unknown',
|
|
57
|
-
message: 'unable to complete operation - unknown error'
|
|
58
|
-
});
|
|
122
|
+
reject(new OkHiException(OkHiException.UNKNOWN, 'An unknown error occurred'));
|
|
59
123
|
}
|
|
60
124
|
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* @remarks
|
|
128
|
+
* Starts the digital address verification flow.
|
|
129
|
+
*
|
|
130
|
+
* **Prerequisites:**
|
|
131
|
+
* - Must call {@link login} first
|
|
132
|
+
*
|
|
133
|
+
* @param okcollect - Optional configuration for styling and behavior
|
|
134
|
+
* @returns A promise that resolves with the user and location data
|
|
135
|
+
*
|
|
136
|
+
* @example
|
|
137
|
+
* ```typescript
|
|
138
|
+
* import * as OkHi from 'react-native-okhi';
|
|
139
|
+
*
|
|
140
|
+
* // Basic usage with defaults
|
|
141
|
+
* const result = await OkHi.startDigitalAddressVerification();
|
|
142
|
+
* console.log('Address:', result.location.formattedAddress);
|
|
143
|
+
* console.log('Location ID:', result.location.id);
|
|
144
|
+
* ```
|
|
145
|
+
*
|
|
146
|
+
* @example
|
|
147
|
+
* ```typescript
|
|
148
|
+
* import * as OkHi from 'react-native-okhi';
|
|
149
|
+
* import type { OkCollect } from 'react-native-okhi';
|
|
150
|
+
*
|
|
151
|
+
* // With custom styling
|
|
152
|
+
* const config: OkCollect = {
|
|
153
|
+
* style: {
|
|
154
|
+
* color: '#FF5722',
|
|
155
|
+
* logo: 'https://example.com/logo.png',
|
|
156
|
+
* },
|
|
157
|
+
* configuration: {
|
|
158
|
+
* streetView: true,
|
|
159
|
+
* },
|
|
160
|
+
* };
|
|
161
|
+
*
|
|
162
|
+
* const result = await OkHi.startDigitalAddressVerification(config);
|
|
163
|
+
* ```
|
|
164
|
+
*
|
|
165
|
+
* @example
|
|
166
|
+
* ```typescript
|
|
167
|
+
* import * as OkHi from 'react-native-okhi';
|
|
168
|
+
*
|
|
169
|
+
* // Start verification on previously created address
|
|
170
|
+
* const locationId: string = await fetchLocationIDFromMyDB()
|
|
171
|
+
* const result = await OkHi.startDigitalAddressVerification({
|
|
172
|
+
* locationId: locationId,
|
|
173
|
+
* });
|
|
174
|
+
* ```
|
|
175
|
+
*
|
|
176
|
+
* @see {@link OkCollect} - Configuration options
|
|
177
|
+
* @see {@link OkHiSuccessResponse} - Return type
|
|
178
|
+
* @see {@link startPhysicalAddressVerification} - For physical verification
|
|
179
|
+
* @see {@link startDigitalAndPhysicalAddressVerification} - For combined verification
|
|
180
|
+
*/
|
|
61
181
|
export function startDigitalAddressVerification(okcollect) {
|
|
62
182
|
const config = buildConfig(okcollect);
|
|
63
183
|
return new Promise((resolve, reject) => {
|
|
@@ -66,6 +186,44 @@ export function startDigitalAddressVerification(okcollect) {
|
|
|
66
186
|
});
|
|
67
187
|
});
|
|
68
188
|
}
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* Starts the physical address verification flow.
|
|
192
|
+
*
|
|
193
|
+
* @remarks
|
|
194
|
+
* Physical verification requires an agent to visit the user's location
|
|
195
|
+
* in person.
|
|
196
|
+
*
|
|
197
|
+
* **Prerequisites:**
|
|
198
|
+
* - Must call {@link login} first
|
|
199
|
+
*
|
|
200
|
+
* @param okcollect - Optional configuration for styling and behavior
|
|
201
|
+
* @returns A promise that resolves with the user and location data
|
|
202
|
+
*
|
|
203
|
+
* @example
|
|
204
|
+
* ```typescript
|
|
205
|
+
* import * as OkHi from 'react-native-okhi';
|
|
206
|
+
*
|
|
207
|
+
* const result = await OkHi.startPhysicalAddressVerification();
|
|
208
|
+
* console.log('Verification requested for:', result.location.formattedAddress);
|
|
209
|
+
* console.log('Location ID for tracking:', result.location.id);
|
|
210
|
+
* ```
|
|
211
|
+
*
|
|
212
|
+
* @example
|
|
213
|
+
* ```typescript
|
|
214
|
+
* import * as OkHi from 'react-native-okhi';
|
|
215
|
+
*
|
|
216
|
+
* // With custom configuration
|
|
217
|
+
* const result = await OkHi.startPhysicalAddressVerification({
|
|
218
|
+
* style: { color: '#2196F3' },
|
|
219
|
+
* });
|
|
220
|
+
* ```
|
|
221
|
+
*
|
|
222
|
+
* @see {@link OkCollect} - Configuration options
|
|
223
|
+
* @see {@link OkHiSuccessResponse} - Return type
|
|
224
|
+
* @see {@link startDigitalAddressVerification} - For instant digital verification
|
|
225
|
+
* @see {@link startDigitalAndPhysicalAddressVerification} - For combined verification
|
|
226
|
+
*/
|
|
69
227
|
export function startPhysicalAddressVerification(okcollect) {
|
|
70
228
|
const config = buildConfig(okcollect);
|
|
71
229
|
return new Promise((resolve, reject) => {
|
|
@@ -74,6 +232,48 @@ export function startPhysicalAddressVerification(okcollect) {
|
|
|
74
232
|
});
|
|
75
233
|
});
|
|
76
234
|
}
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* Starts both digital and physical address verification flows.
|
|
238
|
+
*
|
|
239
|
+
* @remarks
|
|
240
|
+
* This combines both verification methods for maximum confidence.
|
|
241
|
+
*
|
|
242
|
+
* **Prerequisites:**
|
|
243
|
+
* - Must call {@link login} first
|
|
244
|
+
*
|
|
245
|
+
* @param okcollect - Optional configuration for styling and behavior
|
|
246
|
+
* @returns A promise that resolves with the user and location data
|
|
247
|
+
*
|
|
248
|
+
* @example
|
|
249
|
+
* ```typescript
|
|
250
|
+
* import * as OkHi from 'react-native-okhi';
|
|
251
|
+
*
|
|
252
|
+
* const result = await OkHi.startDigitalAndPhysicalAddressVerification();
|
|
253
|
+
* console.log('Physical + Digital Verification started for:', result.location.id);
|
|
254
|
+
* ```
|
|
255
|
+
*
|
|
256
|
+
* @example
|
|
257
|
+
* ```typescript
|
|
258
|
+
* import * as OkHi from 'react-native-okhi';
|
|
259
|
+
*
|
|
260
|
+
* // With full customization
|
|
261
|
+
* const result = await OkHi.startDigitalAndPhysicalAddressVerification({
|
|
262
|
+
* style: {
|
|
263
|
+
* color: '#4CAF50',
|
|
264
|
+
* logo: 'https://example.com/logo.png',
|
|
265
|
+
* },
|
|
266
|
+
* configuration: {
|
|
267
|
+
* streetView: true,
|
|
268
|
+
* },
|
|
269
|
+
* });
|
|
270
|
+
* ```
|
|
271
|
+
*
|
|
272
|
+
* @see {@link OkCollect} - Configuration options
|
|
273
|
+
* @see {@link OkHiSuccessResponse} - Return type
|
|
274
|
+
* @see {@link startDigitalAddressVerification} - For digital-only verification
|
|
275
|
+
* @see {@link startPhysicalAddressVerification} - For physical-only verification
|
|
276
|
+
*/
|
|
77
277
|
export function startDigitalAndPhysicalAddressVerification(okcollect) {
|
|
78
278
|
const config = buildConfig(okcollect);
|
|
79
279
|
return new Promise((resolve, reject) => {
|
|
@@ -82,6 +282,49 @@ export function startDigitalAndPhysicalAddressVerification(okcollect) {
|
|
|
82
282
|
});
|
|
83
283
|
});
|
|
84
284
|
}
|
|
285
|
+
|
|
286
|
+
/**
|
|
287
|
+
* Creates an address without starting verification.
|
|
288
|
+
*
|
|
289
|
+
* @remarks
|
|
290
|
+
* Use this when you want to collect and store an address but defer
|
|
291
|
+
* verification to a later time. The address can
|
|
292
|
+
* be verified later using the returned `locationId`.
|
|
293
|
+
*
|
|
294
|
+
* **Prerequisites:**
|
|
295
|
+
* - Must call {@link login} first
|
|
296
|
+
*
|
|
297
|
+
* @param okcollect - Optional configuration for styling and behavior
|
|
298
|
+
* @returns A promise that resolves with the user and location data
|
|
299
|
+
*
|
|
300
|
+
* @example
|
|
301
|
+
* ```typescript
|
|
302
|
+
* import * as OkHi from 'react-native-okhi';
|
|
303
|
+
*
|
|
304
|
+
* // Create address without verification
|
|
305
|
+
* const result = await OkHi.createAddress();
|
|
306
|
+
* console.log('Address created:', result.location.id);
|
|
307
|
+
*
|
|
308
|
+
* // Save the location ID to verify later
|
|
309
|
+
* const locationId = result.location.id;
|
|
310
|
+
* await saveToDatabase({ locationId: locationId });
|
|
311
|
+
* ```
|
|
312
|
+
*
|
|
313
|
+
* @example
|
|
314
|
+
* ```typescript
|
|
315
|
+
* import * as OkHi from 'react-native-okhi';
|
|
316
|
+
*
|
|
317
|
+
* // Later, verify the saved address
|
|
318
|
+
* const savedLocationId = await fetchLocationIdFromMyDB();
|
|
319
|
+
* const result = await OkHi.startDigitalAddressVerification({
|
|
320
|
+
* locationId: savedLocationId,
|
|
321
|
+
* });
|
|
322
|
+
* ```
|
|
323
|
+
*
|
|
324
|
+
* @see {@link OkCollect} - Configuration options
|
|
325
|
+
* @see {@link OkHiSuccessResponse} - Return type
|
|
326
|
+
* @see {@link startDigitalAddressVerification} - To verify an address
|
|
327
|
+
*/
|
|
85
328
|
export function createAddress(okcollect) {
|
|
86
329
|
const config = buildConfig(okcollect);
|
|
87
330
|
return new Promise((resolve, reject) => {
|
|
@@ -95,10 +338,7 @@ export function createAddress(okcollect) {
|
|
|
95
338
|
function processBooleanResponse(result, error, resolve, reject) {
|
|
96
339
|
if (error != null) {
|
|
97
340
|
const err = error;
|
|
98
|
-
reject(
|
|
99
|
-
code: err.code,
|
|
100
|
-
message: err.message
|
|
101
|
-
});
|
|
341
|
+
reject(OkHiException.fromNativeError(err));
|
|
102
342
|
} else {
|
|
103
343
|
resolve(result);
|
|
104
344
|
}
|
|
@@ -108,17 +348,11 @@ function processBooleanResponse(result, error, resolve, reject) {
|
|
|
108
348
|
function processStringResponse(result, error, resolve, reject) {
|
|
109
349
|
if (error != null) {
|
|
110
350
|
const err = error;
|
|
111
|
-
reject(
|
|
112
|
-
code: err.code,
|
|
113
|
-
message: err.message
|
|
114
|
-
});
|
|
351
|
+
reject(OkHiException.fromNativeError(err));
|
|
115
352
|
} else {
|
|
116
353
|
resolve(result);
|
|
117
354
|
}
|
|
118
355
|
}
|
|
119
|
-
|
|
120
|
-
// MARK: - Check Helpers
|
|
121
|
-
|
|
122
356
|
export function isLocationServicesEnabled() {
|
|
123
357
|
return new Promise((resolve, reject) => {
|
|
124
358
|
Okhi.isLocationServicesEnabled((result, error) => {
|
|
@@ -181,9 +415,6 @@ export function openProtectedApps() {
|
|
|
181
415
|
resolve();
|
|
182
416
|
});
|
|
183
417
|
}
|
|
184
|
-
|
|
185
|
-
// MARK: - Request Helpers
|
|
186
|
-
|
|
187
418
|
export function requestLocationPermission() {
|
|
188
419
|
return new Promise((resolve, reject) => {
|
|
189
420
|
Okhi.requestLocationPermission((result, error) => {
|
|
@@ -208,10 +439,7 @@ export function requestEnableLocationServices() {
|
|
|
208
439
|
export function requestPostNotificationPermissions() {
|
|
209
440
|
return new Promise((resolve, reject) => {
|
|
210
441
|
if (Platform.OS === 'ios') {
|
|
211
|
-
reject(
|
|
212
|
-
code: 'unsupported_platform',
|
|
213
|
-
message: 'operation not supported'
|
|
214
|
-
});
|
|
442
|
+
reject(new OkHiException(OkHiException.UNSUPPORTED_DEVICE, 'Notification permission request is not supported on iOS. Use iOS-specific notification APIs.'));
|
|
215
443
|
} else {
|
|
216
444
|
Okhi.requestPostNotificationPermissions((result, error) => {
|
|
217
445
|
processBooleanResponse(result, error, resolve, reject);
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","Okhi","
|
|
1
|
+
{"version":3,"names":["Platform","Okhi","OkHiException","login","credentials","Promise","resolve","results","buildConfig","okcollect","style","color","logo","configuration","withAppBar","streetView","withHomeAddressType","withWorkAddressType","locationId","processVerificationResponse","response","error","reject","res","user","JSON","parse","location","err","fromNativeError","UNKNOWN","startDigitalAddressVerification","config","startPhysicalAddressVerification","startDigitalAndPhysicalAddressVerification","createAddress","processBooleanResponse","result","processStringResponse","isLocationServicesEnabled","canOpenProtectedApps","getLocationAccuracyLevel","toLowerCase","isBackgroundLocationPermissionGranted","isCoarseLocationPermissionGranted","isFineLocationPermissionGranted","isPlayServicesAvailable","isPostNotificationPermissionGranted","openProtectedApps","requestLocationPermission","requestBackgroundLocationPermission","requestEnableLocationServices","requestPostNotificationPermissions","OS","UNSUPPORTED_DEVICE"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASW,gCAAgCA,CAC9CxB,SAAqB,EACS;EAC9B,MAAMuB,MAAM,GAAGxB,WAAW,CAACC,SAAS,CAAC;EACrC,OAAO,IAAIJ,OAAO,CAAC,CAACC,OAAO,EAAEgB,MAAM,KAAK;IACtCrB,IAAI,CAACgC,gCAAgC,CAACD,MAAM,EAAE,CAACZ,QAAQ,EAAEC,KAAK,KAAK;MACjEF,2BAA2B,CAACC,QAAQ,EAAEC,KAAK,EAAEf,OAAO,EAAEgB,MAAM,CAAC;IAC/D,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASY,0CAA0CA,CACxDzB,SAAqB,EACS;EAC9B,MAAMuB,MAAM,GAAGxB,WAAW,CAACC,SAAS,CAAC;EACrC,OAAO,IAAIJ,OAAO,CAAC,CAACC,OAAO,EAAEgB,MAAM,KAAK;IACtCrB,IAAI,CAACiC,0CAA0C,CAC7CF,MAAM,EACN,CAACZ,QAAQ,EAAEC,KAAK,KAAK;MACnBF,2BAA2B,CAACC,QAAQ,EAAEC,KAAK,EAAEf,OAAO,EAAEgB,MAAM,CAAC;IAC/D,CACF,CAAC;EACH,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASa,aAAaA,CAC3B1B,SAAqB,EACS;EAC9B,MAAMu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","ignoreList":[]}
|