@trustchex/react-native-sdk 1.475.1 → 1.478.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/android/src/main/java/com/trustchex/reactnativesdk/camera/TrustchexCameraView.kt +19 -21
  2. package/android/src/main/java/com/trustchex/reactnativesdk/mlkit/MLKitModule.kt +1 -0
  3. package/lib/module/Screens/Dynamic/LivenessDetectionScreen.js +3 -2
  4. package/lib/module/Screens/Static/QrCodeScanningScreen.js +12 -2
  5. package/lib/module/Screens/Static/ResultScreen.js +103 -107
  6. package/lib/module/Shared/Components/DebugOverlay.js +5 -2
  7. package/lib/module/Shared/Components/IdentityDocumentCamera.js +53 -22
  8. package/lib/module/Shared/Components/IdentityDocumentCamera.utils.js +8 -1
  9. package/lib/module/Shared/EIDReader/eidReader.js +15 -14
  10. package/lib/module/Shared/Libs/MRZ_KNOWN_ISSUES.md +34 -0
  11. package/lib/module/Shared/Libs/SignalingClient.js +6 -5
  12. package/lib/module/Shared/Libs/crypto.utils.js +25 -3
  13. package/lib/module/Shared/Libs/deeplink.utils.js +37 -7
  14. package/lib/module/Shared/Libs/http-client.js +19 -6
  15. package/lib/module/Shared/Libs/mrz.utils.js +193 -33
  16. package/lib/module/Shared/Libs/mrzFrameAggregator.js +45 -1
  17. package/lib/module/Shared/Libs/promise.utils.js +4 -3
  18. package/lib/module/Shared/Libs/shuffle.utils.js +17 -0
  19. package/lib/module/Shared/Services/AnalyticsService.js +8 -2
  20. package/lib/module/Shared/Services/DataUploadService.js +114 -127
  21. package/lib/module/Shared/Services/VideoSessionService.js +4 -3
  22. package/lib/module/Translation/Resources/en.js +1 -0
  23. package/lib/module/Translation/Resources/tr.js +1 -0
  24. package/lib/module/version.js +1 -1
  25. package/lib/typescript/src/Screens/Dynamic/LivenessDetectionScreen.d.ts.map +1 -1
  26. package/lib/typescript/src/Screens/Static/QrCodeScanningScreen.d.ts.map +1 -1
  27. package/lib/typescript/src/Screens/Static/ResultScreen.d.ts.map +1 -1
  28. package/lib/typescript/src/Shared/Components/DebugOverlay.d.ts.map +1 -1
  29. package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.d.ts.map +1 -1
  30. package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.utils.d.ts +1 -1
  31. package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.utils.d.ts.map +1 -1
  32. package/lib/typescript/src/Shared/EIDReader/eidReader.d.ts.map +1 -1
  33. package/lib/typescript/src/Shared/Libs/SignalingClient.d.ts.map +1 -1
  34. package/lib/typescript/src/Shared/Libs/crypto.utils.d.ts.map +1 -1
  35. package/lib/typescript/src/Shared/Libs/deeplink.utils.d.ts +1 -0
  36. package/lib/typescript/src/Shared/Libs/deeplink.utils.d.ts.map +1 -1
  37. package/lib/typescript/src/Shared/Libs/http-client.d.ts +2 -0
  38. package/lib/typescript/src/Shared/Libs/http-client.d.ts.map +1 -1
  39. package/lib/typescript/src/Shared/Libs/mrz.utils.d.ts.map +1 -1
  40. package/lib/typescript/src/Shared/Libs/mrzFrameAggregator.d.ts +22 -0
  41. package/lib/typescript/src/Shared/Libs/mrzFrameAggregator.d.ts.map +1 -1
  42. package/lib/typescript/src/Shared/Libs/promise.utils.d.ts.map +1 -1
  43. package/lib/typescript/src/Shared/Libs/shuffle.utils.d.ts +3 -0
  44. package/lib/typescript/src/Shared/Libs/shuffle.utils.d.ts.map +1 -0
  45. package/lib/typescript/src/Shared/Services/AnalyticsService.d.ts.map +1 -1
  46. package/lib/typescript/src/Shared/Services/DataUploadService.d.ts.map +1 -1
  47. package/lib/typescript/src/Shared/Services/VideoSessionService.d.ts.map +1 -1
  48. package/lib/typescript/src/Translation/Resources/en.d.ts +1 -0
  49. package/lib/typescript/src/Translation/Resources/en.d.ts.map +1 -1
  50. package/lib/typescript/src/Translation/Resources/tr.d.ts +1 -0
  51. package/lib/typescript/src/Translation/Resources/tr.d.ts.map +1 -1
  52. package/lib/typescript/src/version.d.ts +1 -1
  53. package/package.json +13 -3
  54. package/src/Screens/Dynamic/LivenessDetectionScreen.tsx +4 -3
  55. package/src/Screens/Static/QrCodeScanningScreen.tsx +19 -2
  56. package/src/Screens/Static/ResultScreen.tsx +126 -161
  57. package/src/Shared/Components/DebugOverlay.tsx +5 -2
  58. package/src/Shared/Components/IdentityDocumentCamera.tsx +55 -22
  59. package/src/Shared/Components/IdentityDocumentCamera.utils.ts +9 -1
  60. package/src/Shared/EIDReader/eidReader.ts +23 -14
  61. package/src/Shared/Libs/MRZ_KNOWN_ISSUES.md +34 -0
  62. package/src/Shared/Libs/SignalingClient.ts +10 -5
  63. package/src/Shared/Libs/crypto.utils.ts +41 -4
  64. package/src/Shared/Libs/deeplink.utils.ts +39 -7
  65. package/src/Shared/Libs/http-client.ts +24 -8
  66. package/src/Shared/Libs/mrz.utils.ts +200 -34
  67. package/src/Shared/Libs/mrzFrameAggregator.ts +53 -1
  68. package/src/Shared/Libs/promise.utils.ts +11 -5
  69. package/src/Shared/Libs/shuffle.utils.ts +15 -0
  70. package/src/Shared/Services/AnalyticsService.ts +17 -1
  71. package/src/Shared/Services/DataUploadService.ts +155 -166
  72. package/src/Shared/Services/VideoSessionService.ts +15 -3
  73. package/src/Translation/Resources/en.ts +1 -0
  74. package/src/Translation/Resources/tr.ts +1 -0
  75. package/src/version.ts +1 -1
@@ -4,9 +4,10 @@ import RNFS from 'react-native-fs';
4
4
  import { Platform } from 'react-native';
5
5
  import { getSessionKey, encryptWithAes } from "../Libs/crypto.utils.js";
6
6
  import mrzUtils from "../Libs/mrz.utils.js";
7
- import httpClient from "../Libs/http-client.js";
7
+ import httpClient, { getSessionToken } from "../Libs/http-client.js";
8
8
  import { NotFoundError } from "../Libs/http-client.js";
9
9
  import { runWithRetry } from "../Libs/promise.utils.js";
10
+ import { debugLog, debugWarn, logError, logWarn } from "../Libs/debug.utils.js";
10
11
 
11
12
  /**
12
13
  * Service to upload collected identification data to the backend.
@@ -18,9 +19,9 @@ export class DataUploadService {
18
19
  this.apiUrl = `${baseUrl}/api/app/mobile`;
19
20
  }
20
21
  async ensureIdentificationExists(identificationId) {
21
- console.log('[DataUploadService] POST', `${this.apiUrl}/identifications/${identificationId}`);
22
+ debugLog('DataUploadService', 'POST', `${this.apiUrl}/identifications/${identificationId}`);
22
23
  await httpClient.post(`${this.apiUrl}/identifications/${identificationId}`, {});
23
- console.log('[DataUploadService] ✓ Identification created/verified');
24
+ debugLog('DataUploadService', '✓ Identification created/verified');
24
25
  }
25
26
 
26
27
  /**
@@ -28,12 +29,12 @@ export class DataUploadService {
28
29
  */
29
30
  async submitDocumentData(identificationId, scannedDocument, sessionKey) {
30
31
  if (!scannedDocument || scannedDocument.documentType === 'UNKNOWN') {
31
- console.log('[DataUploadService] No document data to submit');
32
+ debugLog('DataUploadService', 'No document data to submit');
32
33
  return;
33
34
  }
34
35
  const mrzFields = scannedDocument.mrzFields;
35
36
  if (!mrzFields) {
36
- console.log('[DataUploadService] No MRZ fields to submit');
37
+ debugLog('DataUploadService', 'No MRZ fields to submit');
37
38
  return;
38
39
  }
39
40
  const identificationDocument = {
@@ -50,28 +51,32 @@ export class DataUploadService {
50
51
  dataSource: scannedDocument.dataSource,
51
52
  mrzText: scannedDocument.mrzText
52
53
  };
53
- console.log('[DataUploadService] Submitting document data:', identificationDocument.type, identificationDocument.number);
54
+ debugLog('DataUploadService', 'Submitting document data:', identificationDocument.type);
54
55
  const {
55
56
  encryptedData,
56
57
  nonce
57
58
  } = encryptWithAes(JSON.stringify(identificationDocument), sessionKey);
58
- console.log('[DataUploadService] POST', `${this.apiUrl}/identifications/${identificationId}/documents`);
59
+ debugLog('DataUploadService', 'POST', `${this.apiUrl}/identifications/${identificationId}/documents`);
59
60
  await runWithRetry(() => httpClient.post(`${this.apiUrl}/identifications/${identificationId}/documents`, {
60
61
  encryptedData,
61
62
  nonce
62
63
  }));
63
- console.log('[DataUploadService] ✓ Document data submitted');
64
+ debugLog('DataUploadService', '✓ Document data submitted');
64
65
  }
65
66
 
66
67
  /**
67
68
  * Upload media files (document images, selfies, etc.)
68
69
  */
69
70
  async uploadMedia(identificationId, scannedDocument, livenessDetection, onProgress) {
71
+ const sessionToken = getSessionToken();
70
72
  const uploadFileOptions = {
71
73
  toUrl: `${this.apiUrl}/identifications/${identificationId}/media`,
72
74
  method: 'POST',
73
75
  headers: {
74
- Accept: 'application/json'
76
+ Accept: 'application/json',
77
+ ...(sessionToken ? {
78
+ 'X-Session-Token': sessionToken
79
+ } : {})
75
80
  },
76
81
  files: [],
77
82
  progress: res => {
@@ -80,127 +85,109 @@ export class DataUploadService {
80
85
  }
81
86
  };
82
87
 
83
- // Add document front image
84
- const frontImage = scannedDocument?.frontImage;
85
- if (frontImage && frontImage !== '') {
86
- const filePath = `${RNFS.TemporaryDirectoryPath}/DOCUMENT_FRONT_IMAGE.jpg`;
87
- await RNFS.writeFile(decodeURIComponent(filePath), frontImage, 'base64');
88
+ // Plaintext identity images/video staged on disk for the multipart upload;
89
+ // every entry is deleted in the finally below, whether the upload succeeds
90
+ // or not.
91
+ const tempPaths = [];
92
+ const writeTempImage = async (fileName, base64Data) => {
93
+ const filePath = decodeURIComponent(`${RNFS.TemporaryDirectoryPath}/${fileName}`);
94
+ await RNFS.writeFile(filePath, base64Data, 'base64');
95
+ tempPaths.push(filePath);
88
96
  uploadFileOptions.files.push({
89
97
  name: 'files',
90
- filename: 'DOCUMENT_FRONT_IMAGE.jpg',
91
- filepath: decodeURIComponent(filePath),
98
+ filename: fileName,
99
+ filepath: filePath,
92
100
  filetype: 'image/jpeg'
93
101
  });
94
- }
102
+ return filePath;
103
+ };
104
+ try {
105
+ // Add document front image
106
+ const frontImage = scannedDocument?.frontImage;
107
+ if (frontImage && frontImage !== '') {
108
+ await writeTempImage('DOCUMENT_FRONT_IMAGE.jpg', frontImage);
109
+ }
95
110
 
96
- // Add document back image
97
- const backImage = scannedDocument?.backImage;
98
- if (backImage && backImage !== '') {
99
- const filePath = `${RNFS.TemporaryDirectoryPath}/DOCUMENT_BACK_IMAGE.jpg`;
100
- await RNFS.writeFile(decodeURIComponent(filePath), backImage, 'base64');
101
- uploadFileOptions.files.push({
102
- name: 'files',
103
- filename: 'DOCUMENT_BACK_IMAGE.jpg',
104
- filepath: decodeURIComponent(filePath),
105
- filetype: 'image/jpeg'
106
- });
107
- }
111
+ // Add document back image
112
+ const backImage = scannedDocument?.backImage;
113
+ if (backImage && backImage !== '') {
114
+ await writeTempImage('DOCUMENT_BACK_IMAGE.jpg', backImage);
115
+ }
108
116
 
109
- // Add face image from document
110
- const faceImage = scannedDocument?.faceImage;
111
- if (faceImage && faceImage !== '') {
112
- const filePath = `${RNFS.TemporaryDirectoryPath}/FACE_IMAGE.jpg`;
113
- await RNFS.writeFile(decodeURIComponent(filePath), faceImage, 'base64');
114
- uploadFileOptions.files.push({
115
- name: 'files',
116
- filename: 'FACE_IMAGE.jpg',
117
- filepath: decodeURIComponent(filePath),
118
- filetype: 'image/jpeg'
119
- });
120
- }
117
+ // Add face image from document
118
+ const faceImage = scannedDocument?.faceImage;
119
+ if (faceImage && faceImage !== '') {
120
+ await writeTempImage('FACE_IMAGE.jpg', faceImage);
121
+ }
121
122
 
122
- // Add secondary face image from document (optional)
123
- const secondaryFaceImage = scannedDocument?.secondaryFaceImage;
124
- if (secondaryFaceImage && secondaryFaceImage !== '') {
125
- const filePath = `${RNFS.TemporaryDirectoryPath}/DOCUMENT_SECONDARY_FACE_IMAGE.jpg`;
126
- await RNFS.writeFile(decodeURIComponent(filePath), secondaryFaceImage, 'base64');
127
- uploadFileOptions.files.push({
128
- name: 'files',
129
- filename: 'DOCUMENT_SECONDARY_FACE_IMAGE.jpg',
130
- filepath: decodeURIComponent(filePath),
131
- filetype: 'image/jpeg'
132
- });
133
- }
123
+ // Add secondary face image from document (optional)
124
+ const secondaryFaceImage = scannedDocument?.secondaryFaceImage;
125
+ if (secondaryFaceImage && secondaryFaceImage !== '') {
126
+ await writeTempImage('DOCUMENT_SECONDARY_FACE_IMAGE.jpg', secondaryFaceImage);
127
+ }
134
128
 
135
- // Add hologram image from document (optional)
136
- const hologramImage = scannedDocument?.hologramImage;
137
- if (hologramImage && hologramImage !== '') {
138
- const filePath = `${RNFS.TemporaryDirectoryPath}/DOCUMENT_HOLOGRAM_IMAGE.jpg`;
139
- await RNFS.writeFile(decodeURIComponent(filePath), hologramImage, 'base64');
140
- uploadFileOptions.files.push({
141
- name: 'files',
142
- filename: 'DOCUMENT_HOLOGRAM_IMAGE.jpg',
143
- filepath: decodeURIComponent(filePath),
144
- filetype: 'image/jpeg'
145
- });
146
- }
129
+ // Add hologram image from document (optional)
130
+ const hologramImage = scannedDocument?.hologramImage;
131
+ if (hologramImage && hologramImage !== '') {
132
+ await writeTempImage('DOCUMENT_HOLOGRAM_IMAGE.jpg', hologramImage);
133
+ }
147
134
 
148
- // Add liveness images and selfie from liveness detection
149
- if (livenessDetection?.instructions) {
150
- for (const instruction of livenessDetection.instructions) {
151
- if (instruction?.photo) {
152
- const filePath = `${RNFS.TemporaryDirectoryPath}/LIVENESS_${instruction.instruction}_IMAGE.jpg`;
153
- await RNFS.writeFile(decodeURIComponent(filePath), instruction.photo, 'base64');
154
- uploadFileOptions.files.push({
155
- name: 'files',
156
- filename: `LIVENESS_${instruction.instruction}_IMAGE.jpg`,
157
- filepath: decodeURIComponent(filePath),
158
- filetype: 'image/jpeg'
159
- });
160
- if (instruction.instruction === 'LOOK_STRAIGHT_AND_BLINK') {
161
- uploadFileOptions.files.push({
162
- name: 'files',
163
- filename: 'SELFIE_IMAGE.jpg',
164
- filepath: decodeURIComponent(filePath),
165
- filetype: 'image/jpeg'
166
- });
135
+ // Add liveness images and selfie from liveness detection
136
+ if (livenessDetection?.instructions) {
137
+ for (const instruction of livenessDetection.instructions) {
138
+ if (instruction?.photo) {
139
+ const filePath = await writeTempImage(`LIVENESS_${instruction.instruction}_IMAGE.jpg`, instruction.photo);
140
+ if (instruction.instruction === 'LOOK_STRAIGHT_AND_BLINK') {
141
+ uploadFileOptions.files.push({
142
+ name: 'files',
143
+ filename: 'SELFIE_IMAGE.jpg',
144
+ filepath: filePath,
145
+ filetype: 'image/jpeg'
146
+ });
147
+ }
167
148
  }
168
149
  }
169
150
  }
170
- }
171
151
 
172
- // Add liveness video (optional)
173
- if (livenessDetection?.videoPath) {
174
- let videoFilePath;
175
- if (Platform.OS === 'ios') {
176
- const tempDir = `${RNFS.TemporaryDirectoryPath}/${new Date().getTime()}`;
177
- await RNFS.mkdir(tempDir);
178
- videoFilePath = `${tempDir}/LIVENESS_VIDEO.mp4`;
179
- } else {
180
- videoFilePath = `${RNFS.TemporaryDirectoryPath}/LIVENESS_VIDEO.mp4`;
152
+ // Add liveness video (optional). Only the staged copy is cleaned up here;
153
+ // livenessDetection.videoPath stays available for later submissions.
154
+ if (livenessDetection?.videoPath) {
155
+ let videoFilePath;
156
+ if (Platform.OS === 'ios') {
157
+ const tempDir = `${RNFS.TemporaryDirectoryPath}/${new Date().getTime()}`;
158
+ await RNFS.mkdir(tempDir);
159
+ tempPaths.push(tempDir);
160
+ videoFilePath = `${tempDir}/LIVENESS_VIDEO.mp4`;
161
+ } else {
162
+ videoFilePath = decodeURIComponent(`${RNFS.TemporaryDirectoryPath}/LIVENESS_VIDEO.mp4`);
163
+ tempPaths.push(videoFilePath);
164
+ }
165
+ await RNFS.copyFile(livenessDetection.videoPath, videoFilePath);
166
+ uploadFileOptions.files.push({
167
+ name: 'files',
168
+ filename: 'LIVENESS_VIDEO.mp4',
169
+ filepath: decodeURIComponent(videoFilePath),
170
+ filetype: 'video/mp4'
171
+ });
181
172
  }
182
- await RNFS.copyFile(livenessDetection.videoPath, videoFilePath);
183
- uploadFileOptions.files.push({
184
- name: 'files',
185
- filename: 'LIVENESS_VIDEO.mp4',
186
- filepath: decodeURIComponent(videoFilePath),
187
- filetype: 'video/mp4'
188
- });
189
- }
190
173
 
191
- // Skip upload if no files
192
- if (uploadFileOptions.files.length === 0) {
193
- console.log('[DataUploadService] No media files to upload');
194
- return;
195
- }
196
- console.log('[DataUploadService] Uploading', uploadFileOptions.files.length, 'media files to', uploadFileOptions.toUrl);
197
- const response = await runWithRetry(() => RNFS.uploadFiles(uploadFileOptions).promise);
198
- console.log('[DataUploadService] Upload response status:', response.statusCode);
199
- if (![200, 201, 204].includes(response.statusCode)) {
200
- console.error('[DataUploadService] Media upload failed:', response.statusCode, response.body);
201
- throw new Error(`Media upload failed: ${response.statusCode}`);
174
+ // Skip upload if no files
175
+ if (uploadFileOptions.files.length === 0) {
176
+ debugLog('DataUploadService', 'No media files to upload');
177
+ return;
178
+ }
179
+ debugLog('DataUploadService', `Uploading ${uploadFileOptions.files.length} media files to`, uploadFileOptions.toUrl);
180
+ const response = await runWithRetry(() => RNFS.uploadFiles(uploadFileOptions).promise);
181
+ debugLog('DataUploadService', 'Upload response status:', response.statusCode);
182
+ if (![200, 201, 204].includes(response.statusCode)) {
183
+ logError('DataUploadService', `Media upload failed: ${response.statusCode}`);
184
+ debugLog('DataUploadService', 'Failed upload response:', response.body);
185
+ throw new Error(`Media upload failed: ${response.statusCode}`);
186
+ }
187
+ debugLog('DataUploadService', '✓ Media uploaded successfully');
188
+ } finally {
189
+ await Promise.all(tempPaths.map(path => RNFS.unlink(path).catch(() => {})));
202
190
  }
203
- console.log('[DataUploadService] ✓ Media uploaded successfully');
204
191
  }
205
192
 
206
193
  /**
@@ -217,27 +204,27 @@ export class DataUploadService {
217
204
  authToken
218
205
  } = identificationInfo;
219
206
  if (!identificationId) {
220
- console.log('[DataUploadService] No identification ID, skipping upload');
207
+ debugLog('DataUploadService', 'No identification ID, skipping upload');
221
208
  return false;
222
209
  }
223
- console.log('[DataUploadService] ========== UPLOADING COLLECTED DATA ==========');
224
- console.log('[DataUploadService] Identification ID:', identificationId);
225
- console.log('[DataUploadService] Has document:', !!scannedDocument);
226
- console.log('[DataUploadService] Has liveness:', !!livenessDetection);
227
- console.log('[DataUploadService] Has auth token:', !!authToken);
210
+ debugLog('DataUploadService', '========== UPLOADING COLLECTED DATA ==========');
211
+ debugLog('DataUploadService', 'Identification ID:', identificationId);
212
+ debugLog('DataUploadService', 'Has document:', !!scannedDocument);
213
+ debugLog('DataUploadService', 'Has liveness:', !!livenessDetection);
214
+ debugLog('DataUploadService', 'Has auth token:', !!authToken);
228
215
  try {
229
216
  await runWithRetry(() => this.ensureIdentificationExists(identificationId));
230
217
 
231
218
  // Always refresh session key for current session (required for encrypted submission)
232
219
  if (sessionId) {
233
220
  const existingAuthToken = authToken;
234
- console.log('[DataUploadService] Getting session key...');
221
+ debugLog('DataUploadService', 'Getting session key...');
235
222
  try {
236
223
  authToken = await runWithRetry(() => getSessionKey(this.apiUrl, sessionId));
237
- console.log('[DataUploadService] ✓ Session key obtained');
224
+ debugLog('DataUploadService', '✓ Session key obtained');
238
225
  } catch (error) {
239
226
  if (existingAuthToken) {
240
- console.warn('[DataUploadService] Session key refresh failed, using existing token');
227
+ debugWarn('DataUploadService', 'Session key refresh failed, using existing token');
241
228
  authToken = existingAuthToken;
242
229
  } else {
243
230
  throw error;
@@ -245,7 +232,7 @@ export class DataUploadService {
245
232
  }
246
233
  }
247
234
  if (!authToken) {
248
- console.log('[DataUploadService] No session key available, skipping upload');
235
+ debugLog('DataUploadService', 'No session key available, skipping upload');
249
236
  return false;
250
237
  }
251
238
 
@@ -262,7 +249,7 @@ export class DataUploadService {
262
249
  onProgress?.(0.4 + p * 0.5);
263
250
  }));
264
251
  onProgress?.(1.0);
265
- console.log('[DataUploadService] ✓ All collected data uploaded');
252
+ debugLog('DataUploadService', '✓ All collected data uploaded');
266
253
 
267
254
  // Mark media as uploaded during video call
268
255
  identificationInfo.mediaUploadedDuringVideoCall = true;
@@ -272,10 +259,10 @@ export class DataUploadService {
272
259
  return true;
273
260
  } catch (error) {
274
261
  if (error instanceof NotFoundError) {
275
- console.warn('[DataUploadService] Upload skipped: identification is not active anymore');
262
+ logWarn('DataUploadService', 'Upload skipped: identification is not active anymore');
276
263
  return false;
277
264
  }
278
- console.error('[DataUploadService] Failed to upload collected data:', error);
265
+ logError('DataUploadService', 'Failed to upload collected data:', error);
279
266
  return false;
280
267
  }
281
268
  }
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ import { debugLog } from "../Libs/debug.utils.js";
3
4
  export class VideoSessionService {
4
5
  constructor(baseUrl, identificationId) {
5
6
  this.baseUrl = baseUrl;
@@ -102,11 +103,11 @@ export class VideoSessionService {
102
103
  // Use react-native-sse for real SSE support
103
104
  const EventSource = require('react-native-sse').default;
104
105
  const url = `${this.baseUrl}/api/app/mobile/video-sessions/${sessionId}/queue-status?identificationId=${this.identificationId}`;
105
- console.log('[VideoSessionService] Creating SSE connection to:', url);
106
+ debugLog('VideoSessionService', '[VideoSessionService] Creating SSE connection to:', url);
106
107
  const es = new EventSource(url);
107
108
  let heartbeatInterval = null;
108
109
  es.addEventListener('open', () => {
109
- console.log('[VideoSessionService] Queue SSE connected');
110
+ debugLog('VideoSessionService', '[VideoSessionService] Queue SSE connected');
110
111
  // Send initial heartbeat
111
112
  this.sendHeartbeat(sessionId).catch(() => {});
112
113
  // Set up periodic heartbeat (every 20s to stay under 30s watchdog)
@@ -121,7 +122,7 @@ export class VideoSessionService {
121
122
  es.addEventListener('message', event => {
122
123
  try {
123
124
  const data = JSON.parse(event.data);
124
- console.log('[VideoSessionService] Queue update:', data);
125
+ debugLog('VideoSessionService', '[VideoSessionService] Queue update:', data);
125
126
  if (data.queuePosition !== undefined) {
126
127
  onUpdate(data.queuePosition);
127
128
  }
@@ -112,6 +112,7 @@ export default {
112
112
  'identityDocumentCamera.alignIDFrontSide': 'Align the front side of your ID card',
113
113
  'identityDocumentCamera.alignIDBackSide': 'Align the back side of your ID card',
114
114
  'identityDocumentCamera.scanCompleted': 'Scan completed!',
115
+ 'identityDocumentCamera.mrzDetected': 'MRZ detected — hold steady',
115
116
  'identityDocumentCamera.searchingDocument': 'Position document within the frame',
116
117
  'identityDocumentCamera.faceDetected': 'Keep device steady...',
117
118
  'identityDocumentCamera.readingDocument': 'Reading document...',
@@ -112,6 +112,7 @@ export default {
112
112
  'identityDocumentCamera.alignIDFrontSide': 'Kimlik kartınızın ön yüzünü hizalayın',
113
113
  'identityDocumentCamera.alignIDBackSide': 'Kimlik kartınızın arka yüzünü hizalayın',
114
114
  'identityDocumentCamera.scanCompleted': 'Tarama tamamlandı!',
115
+ 'identityDocumentCamera.mrzDetected': 'MRZ algılandı — sabit tutun',
115
116
  'identityDocumentCamera.searchingDocument': 'Belgeyi çerçeve içine yerleştirin',
116
117
  'identityDocumentCamera.faceDetected': 'Cihazı sabit tutun...',
117
118
  'identityDocumentCamera.readingDocument': 'Belge okunuyor...',
@@ -2,4 +2,4 @@
2
2
 
3
3
  // This file is auto-generated. Do not edit manually.
4
4
  // Version is synced from package.json during build.
5
- export const SDK_VERSION = '1.475.1';
5
+ export const SDK_VERSION = '1.478.7';
@@ -1 +1 @@
1
- {"version":3,"file":"LivenessDetectionScreen.d.ts","sourceRoot":"","sources":["../../../../../src/Screens/Dynamic/LivenessDetectionScreen.tsx"],"names":[],"mappings":"AA2FA,QAAA,MAAM,uBAAuB,+CAy9B5B,CAAC;AA+GF,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"LivenessDetectionScreen.d.ts","sourceRoot":"","sources":["../../../../../src/Screens/Dynamic/LivenessDetectionScreen.tsx"],"names":[],"mappings":"AA4FA,QAAA,MAAM,uBAAuB,+CAy9B5B,CAAC;AA+GF,eAAe,uBAAuB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"QrCodeScanningScreen.d.ts","sourceRoot":"","sources":["../../../../../src/Screens/Static/QrCodeScanningScreen.tsx"],"names":[],"mappings":"AAUA,QAAA,MAAM,oBAAoB,+CAwCzB,CAAC;AASF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"QrCodeScanningScreen.d.ts","sourceRoot":"","sources":["../../../../../src/Screens/Static/QrCodeScanningScreen.tsx"],"names":[],"mappings":"AAWA,QAAA,MAAM,oBAAoB,+CAwDzB,CAAC;AASF,eAAe,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ResultScreen.d.ts","sourceRoot":"","sources":["../../../../../src/Screens/Static/ResultScreen.tsx"],"names":[],"mappings":"AAqDA,QAAA,MAAM,YAAY,+CAqiCjB,CAAC;AAqIF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"ResultScreen.d.ts","sourceRoot":"","sources":["../../../../../src/Screens/Static/ResultScreen.tsx"],"names":[],"mappings":"AAqDA,QAAA,MAAM,YAAY,+CAkgCjB,CAAC;AAqIF,eAAe,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DebugOverlay.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/DebugOverlay.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,eAAe,EAChB,MAAM,gCAAgC,CAAC;AA2PxC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,oBAAoB,EAAE,YAAY,CAAC;IACnC,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,mBAAmB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC/C,mBAAmB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC/C,aAAa,EAAE,eAAe,GAAG,IAAI,CAAC;IACtC,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;IAClC,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,uBAAuB,EAAE,MAAM,EAAE,CAAC;CACnC;AAED,QAAA,MAAM,YAAY,+CAyThB,CAAC;AAIH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,aAAa,gDAiDxB,CAAC;AAEH,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"DebugOverlay.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/DebugOverlay.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,eAAe,EAChB,MAAM,gCAAgC,CAAC;AA2PxC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,oBAAoB,EAAE,YAAY,CAAC;IACnC,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,mBAAmB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC/C,mBAAmB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC/C,aAAa,EAAE,eAAe,GAAG,IAAI,CAAC;IACtC,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;IAClC,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,uBAAuB,EAAE,MAAM,EAAE,CAAC;CACnC;AAED,QAAA,MAAM,YAAY,+CAyThB,CAAC;AAIH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,aAAa,gDAoDxB,CAAC;AAEH,eAAe,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"IdentityDocumentCamera.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/IdentityDocumentCamera.tsx"],"names":[],"mappings":"AAwEA,OAAO,KAAK,EACV,mBAAmB,EACnB,SAAS,EACT,2BAA2B,EAK5B,MAAM,gCAAgC,CAAC;AAGxC,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,2BAA2B,EAAE,CAAC;AAC5E,YAAY,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAMnE,QAAA,MAAM,sBAAsB,GAAI,uDAI7B,2BAA2B,4CA04E7B,CAAC;AAiIF,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"IdentityDocumentCamera.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/IdentityDocumentCamera.tsx"],"names":[],"mappings":"AAwEA,OAAO,KAAK,EACV,mBAAmB,EACnB,SAAS,EACT,2BAA2B,EAK5B,MAAM,gCAAgC,CAAC;AAGxC,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,2BAA2B,EAAE,CAAC;AAC5E,YAAY,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAMnE,QAAA,MAAM,sBAAsB,GAAI,uDAI7B,2BAA2B,4CA26E7B,CAAC;AAiIF,eAAe,sBAAsB,CAAC"}
@@ -42,7 +42,7 @@ export declare function transformBoundsToScreen(bounds: {
42
42
  * Unified status message logic used by both voice guidance and render text.
43
43
  * Returns the appropriate i18n key arguments for the current scan state.
44
44
  */
45
- export declare function getStatusMessage(nextStep: ScanStep, status: ScanStatus, detectedDocumentType: DocumentType, isBrightnessLow: boolean, isFrameBlurry: boolean, allElementsDetected: boolean, elementsOutsideScanArea: string[], t: (key: string, params?: Record<string, unknown>) => string): string;
45
+ export declare function getStatusMessage(nextStep: ScanStep, status: ScanStatus, detectedDocumentType: DocumentType, isBrightnessLow: boolean, isFrameBlurry: boolean, allElementsDetected: boolean, elementsOutsideScanArea: string[], t: (key: string, params?: Record<string, unknown>) => string, mrzReliable?: boolean): string;
46
46
  /**
47
47
  * Calculate angle from two points in degrees
48
48
  */
@@ -1 +1 @@
1
- {"version":3,"file":"IdentityDocumentCamera.utils.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/IdentityDocumentCamera.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IdentityDocumentCamera.utils.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/IdentityDocumentCamera.utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"eidReader.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/EIDReader/eidReader.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAwR7C,QAAA,MAAM,SAAS,GACb,gBAAgB,MAAM,EACtB,aAAa,MAAM,EACnB,cAAc,MAAM,EACpB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,KAC5C,OAAO,CACR;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CA0MnE,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"eidReader.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/EIDReader/eidReader.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AA2R7C,QAAA,MAAM,SAAS,GACb,gBAAgB,MAAM,EACtB,aAAa,MAAM,EACnB,cAAc,MAAM,EACpB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,KAC5C,OAAO,CACR;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAgNnE,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SignalingClient.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Libs/SignalingClient.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,oBAAoB,GAC5B,OAAO,GACP,QAAQ,GACR,eAAe,GACf,SAAS,CAAC;AAEd,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,oBAAoB,CAAC;IAC3B,OAAO,EAAE,GAAG,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;AACxE,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AAE1D,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,cAAc,CAAC,CAAa;IACpC,OAAO,CAAC,cAAc,CAAC,CAAsB;IAC7C,OAAO,CAAC,gBAAgB,CAAC,CAAS;gBAGhC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,qBAAqB,EAChC,gBAAgB,CAAC,EAAE,MAAM,EACzB,cAAc,CAAC,EAAE,mBAAmB;IAS/B,OAAO,IAAI,IAAI;IA0GT,IAAI,CAAC,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCnE,UAAU,IAAI,IAAI;CAQ1B"}
1
+ {"version":3,"file":"SignalingClient.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Libs/SignalingClient.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,oBAAoB,GAC5B,OAAO,GACP,QAAQ,GACR,eAAe,GACf,SAAS,CAAC;AAEd,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,oBAAoB,CAAC;IAC3B,OAAO,EAAE,GAAG,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;AACxE,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AAE1D,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,cAAc,CAAC,CAAa;IACpC,OAAO,CAAC,cAAc,CAAC,CAAsB;IAC7C,OAAO,CAAC,gBAAgB,CAAC,CAAS;gBAGhC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,qBAAqB,EAChC,gBAAgB,CAAC,EAAE,MAAM,EACzB,cAAc,CAAC,EAAE,mBAAmB;IAS/B,OAAO,IAAI,IAAI;IA8GT,IAAI,CAAC,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCnE,UAAU,IAAI,IAAI;CAQ1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.utils.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Libs/crypto.utils.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,CAAC;AAOxC,QAAA,MAAM,aAAa,GAAU,QAAQ,MAAM,EAAE,WAAW,MAAM,oBAmB7D,CAAC;AAEF,QAAA,MAAM,cAAc,GAAI,MAAM,MAAM,EAAE,KAAK,MAAM;;;CAShD,CAAC;AAEF,QAAA,MAAM,cAAc,GAAI,MAAM,MAAM,EAAE,KAAK,MAAM,EAAE,OAAO,MAAM,WAK/D,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"crypto.utils.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Libs/crypto.utils.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,CAAC;AAoBxC,QAAA,MAAM,aAAa,GAAU,QAAQ,MAAM,EAAE,WAAW,MAAM,oBAyC7D,CAAC;AAEF,QAAA,MAAM,cAAc,GAAI,MAAM,MAAM,EAAE,KAAK,MAAM;;;CAWhD,CAAC;AAEF,QAAA,MAAM,cAAc,GAAI,MAAM,MAAM,EAAE,KAAK,MAAM,EAAE,OAAO,MAAM,WAK/D,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC"}
@@ -1,3 +1,4 @@
1
+ export declare const getUrlHost: (url: string) => string;
1
2
  declare const handleDeepLink: ({ url }: {
2
3
  url: string;
3
4
  }) => string[];
@@ -1 +1 @@
1
- {"version":3,"file":"deeplink.utils.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Libs/deeplink.utils.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,cAAc,GAAI,SAAS;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,aAgC/C,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"deeplink.utils.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Libs/deeplink.utils.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,KAAG,MAGxC,CAAC;AAEF,QAAA,MAAM,cAAc,GAAI,SAAS;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,aA4C/C,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -19,6 +19,8 @@ export declare class TooManyRequestsError extends HttpClientError {
19
19
  export declare class InternalServerError extends HttpClientError {
20
20
  constructor(message?: string);
21
21
  }
22
+ export declare const setSessionToken: (token: string | null) => void;
23
+ export declare const getSessionToken: () => string;
22
24
  declare const _default: {
23
25
  get: <TResponse>(url: string, simulatedResponse?: TResponse) => Promise<TResponse>;
24
26
  post: <TResponse, TBody>(url: string, body?: TBody, simulatedResponse?: TResponse) => Promise<TResponse>;
@@ -1 +1 @@
1
- {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Libs/http-client.ts"],"names":[],"mappings":"AAMA,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,CAAC,EAAE,MAAM;CAG7B;AAED,qBAAa,iBAAkB,SAAQ,eAAe;gBACxC,OAAO,CAAC,EAAE,MAAM;CAG7B;AAED,qBAAa,cAAe,SAAQ,eAAe;gBACrC,OAAO,CAAC,EAAE,MAAM;CAG7B;AAED,qBAAa,aAAc,SAAQ,eAAe;gBACpC,OAAO,CAAC,EAAE,MAAM;CAG7B;AAED,qBAAa,eAAgB,SAAQ,eAAe;gBACtC,OAAO,CAAC,EAAE,MAAM;CAG7B;AAED,qBAAa,oBAAqB,SAAQ,eAAe;gBAC3C,OAAO,CAAC,EAAE,MAAM;CAG7B;AAED,qBAAa,mBAAoB,SAAQ,eAAe;gBAC1C,OAAO,CAAC,EAAE,MAAM;CAG7B;;UA+JY,SAAS,OAAO,MAAM,sBAAsB,SAAS;WASpD,SAAS,EAAE,KAAK,OACvB,MAAM,SACJ,KAAK,sBACQ,SAAS;UAKlB,SAAS,EAAE,KAAK,OACtB,MAAM,SACJ,KAAK,sBACQ,SAAS;UAKlB,SAAS,OAAO,MAAM,sBAAsB,SAAS;kBASvC,MAAM,QAAQ,IAAI;;AAe7C,wBAA+C"}
1
+ {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Libs/http-client.ts"],"names":[],"mappings":"AAOA,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,CAAC,EAAE,MAAM;CAG7B;AAED,qBAAa,iBAAkB,SAAQ,eAAe;gBACxC,OAAO,CAAC,EAAE,MAAM;CAG7B;AAED,qBAAa,cAAe,SAAQ,eAAe;gBACrC,OAAO,CAAC,EAAE,MAAM;CAG7B;AAED,qBAAa,aAAc,SAAQ,eAAe;gBACpC,OAAO,CAAC,EAAE,MAAM;CAG7B;AAED,qBAAa,eAAgB,SAAQ,eAAe;gBACtC,OAAO,CAAC,EAAE,MAAM;CAG7B;AAED,qBAAa,oBAAqB,SAAQ,eAAe;gBAC3C,OAAO,CAAC,EAAE,MAAM;CAG7B;AAED,qBAAa,mBAAoB,SAAQ,eAAe;gBAC1C,OAAO,CAAC,EAAE,MAAM;CAG7B;AAOD,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,GAAG,IAAI,SAEnD,CAAC;AAEF,eAAO,MAAM,eAAe,cAAqB,CAAC;;UAmKrC,SAAS,OAAO,MAAM,sBAAsB,SAAS;WASpD,SAAS,EAAE,KAAK,OACvB,MAAM,SACJ,KAAK,sBACQ,SAAS;UAKlB,SAAS,EAAE,KAAK,OACtB,MAAM,SACJ,KAAK,sBACQ,SAAS;UAKlB,SAAS,OAAO,MAAM,sBAAsB,SAAS;kBASvC,MAAM,QAAQ,IAAI;;AAe7C,wBAA+C"}
@@ -1 +1 @@
1
- {"version":3,"file":"mrz.utils.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Libs/mrz.utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAepD;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;;sBAOwB,MAAM,KAAG,MAAM;2BAk5B7B,MAAM,gBACF,OAAO,KACnB,mBAAmB;0CA6JuB,MAAM,KAAG,mBAAmB;wCA52B9B,MAAM,KAAG,MAAM,EAAE,EAAE;wCAs3BnB,MAAM,KAAG,MAAM;gCAmDvB,MAAM;;;;;+BAvtBP,MAAM,KAAG,OAAO;iCA4Bd,MAAM,KAAG,MAAM;wCAysBR,MAAM,GAAG,IAAI,KAAG,MAAM,GAAG,IAAI;;AAgBxE,wBAUE"}
1
+ {"version":3,"file":"mrz.utils.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Libs/mrz.utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AA2CpD;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;;sBAOwB,MAAM,KAAG,MAAM;2BA8gC7B,MAAM,gBACF,OAAO,KACnB,mBAAmB;0CA2KuB,MAAM,KAAG,mBAAmB;wCAt/B9B,MAAM,KAAG,MAAM,EAAE,EAAE;wCAggCnB,MAAM,KAAG,MAAM;gCAmDvB,MAAM;;;;;+BA91BP,MAAM,KAAG,OAAO;iCA4Bd,MAAM,KAAG,MAAM;wCAg1BR,MAAM,GAAG,IAAI,KAAG,MAAM,GAAG,IAAI;;AAgBxE,wBAUE"}
@@ -31,6 +31,12 @@ export interface MRZFrameAggregatorOptions {
31
31
  stabilityTarget?: number;
32
32
  /** Drop the running tallies after this many frames to bound memory. Default 60. */
33
33
  maxFrames?: number;
34
+ /**
35
+ * Minimum winning vote margin a contested cell needs before the consensus can
36
+ * be considered stable. Higher = more frames required to resolve a look-alike
37
+ * ambiguity (A↔4, S↔5) before accepting. Default 2.
38
+ */
39
+ minMargin?: number;
34
40
  }
35
41
  /**
36
42
  * Stateful aggregator. Feed it one frame's OCR text at a time via `addFrame`;
@@ -40,6 +46,7 @@ export interface MRZFrameAggregatorOptions {
40
46
  export declare class MRZFrameAggregator {
41
47
  private readonly stabilityTarget;
42
48
  private readonly maxFrames;
49
+ private readonly minMargin;
43
50
  private tallies;
44
51
  private frameCount;
45
52
  private lastConsensusMrz;
@@ -67,6 +74,21 @@ export declare class MRZFrameAggregator {
67
74
  addFrame(input: MRZFrameInput): MRZConsensus;
68
75
  /** Halve all tallies to bound memory while preserving relative vote ratios. */
69
76
  private decay;
77
+ /**
78
+ * Is every CONTESTED cell of this format decided by a clear margin?
79
+ *
80
+ * A cell is contested when more than one distinct character has received votes
81
+ * (e.g. position 5 of a Turkish doc number gets both "A" and the look-alike
82
+ * "4"). Per-character voting alone reports the consensus "stable" the instant an
83
+ * early misread takes a 1-vote lead and stays unchanged — so a transient
84
+ * "A"→"4" confusion locks in before the correct glyph accumulates enough votes.
85
+ *
86
+ * Requiring the winner to lead the runner-up by `minMargin` weight on every
87
+ * contested cell defers stability until the vote has genuinely settled: a 2-vs-1
88
+ * early lead is NOT confident; a 4-vs-1 (or clean uncontested) reading is. This
89
+ * is what turns "looks valid this frame" into "the camera agrees across frames".
90
+ */
91
+ private consensusIsConfident;
70
92
  /** Read out the winning character per cell for a format. */
71
93
  private consensusLines;
72
94
  /** Best consensus across all formats seen, validated with check digits. */
@@ -1 +1 @@
1
- {"version":3,"file":"mrzFrameAggregator.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Libs/mrzFrameAggregator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAkCvD,MAAM,WAAW,aAAa;IAC5B,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,kFAAkF;IAClF,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,+EAA+E;IAC/E,UAAU,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACvC,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACxC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAkFD;;;;GAIG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,YAAY,CAAK;IAEzB,OAAO,CAAC,cAAc,CAAK;gBAEf,OAAO,GAAE,yBAA8B;IAKnD,KAAK,IAAI,IAAI;IAQb;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IA0B5B,iCAAiC;IACjC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,OAAO,CAAC,WAAW;IAUnB;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,YAAY;IAuC5C,+EAA+E;IAC/E,OAAO,CAAC,KAAK;IAab,4DAA4D;IAC5D,OAAO,CAAC,cAAc;IA8BtB,2EAA2E;IAC3E,gBAAgB,IAAI,YAAY;CAgDjC;AAED,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"mrzFrameAggregator.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Libs/mrzFrameAggregator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAkCvD,MAAM,WAAW,aAAa;IAC5B,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,kFAAkF;IAClF,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,+EAA+E;IAC/E,UAAU,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACvC,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACxC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAkFD;;;;GAIG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAInC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,YAAY,CAAK;IAEzB,OAAO,CAAC,cAAc,CAAK;gBAEf,OAAO,GAAE,yBAA8B;IAMnD,KAAK,IAAI,IAAI;IAQb;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IA0B5B,iCAAiC;IACjC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,OAAO,CAAC,WAAW;IAUnB;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,YAAY;IAuC5C,+EAA+E;IAC/E,OAAO,CAAC,KAAK;IAab;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,oBAAoB;IAe5B,4DAA4D;IAC5D,OAAO,CAAC,cAAc;IA8BtB,2EAA2E;IAC3E,gBAAgB,IAAI,YAAY;CA4DjC;AAED,eAAe,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"promise.utils.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Libs/promise.utils.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,YAAY,GAAU,CAAC,EAC3B,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,aAAY,MAAU,EACtB,QAAO,MAAa,KACnB,OAAO,CAAC,CAAC,CA2BX,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"promise.utils.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Libs/promise.utils.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,YAAY,GAAU,CAAC,EAC3B,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,aAAY,MAAU,EACtB,QAAO,MAAa,KACnB,OAAO,CAAC,CAAC,CAgCX,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import 'react-native-get-random-values';
2
+ export declare const secureShuffle: <T>(items: T[]) => T[];
3
+ //# sourceMappingURL=shuffle.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shuffle.utils.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Libs/shuffle.utils.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,CAAC;AAKxC,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,OAAO,CAAC,EAAE,KAAG,CAAC,EAS9C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AnalyticsService.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Services/AnalyticsService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,gCAAgC,CAAC;AAGxC,OAAO,EACL,sBAAsB,EAEvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EACV,eAAe,EAEf,sBAAsB,EAEtB,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAElC,cAAM,gBAAiB,YAAW,iBAAiB;IACjD,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,aAAa,CAAkB;IAGvC,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAM;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAO;IACtC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgE;IAChG,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,oBAAoB,CAAuC;IAGnE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAI9B;IAEF;;OAEG;IACH,cAAc,CAAC,aAAa,EAAE,OAAO,GAAG,IAAI;IAI5C;;;OAGG;IACG,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAsCxD;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAS5B;;OAEG;YACW,kBAAkB;IAuBhC;;OAEG;YACW,YAAY;IAkB1B;;OAEG;IACG,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,sBAAsB,EAChC,QAAQ,CAAC,EAAE,sBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;IAyDhB;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAOtB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA2C5B;;OAEG;YACW,kBAAkB;IA4DhC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB5B;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;YACW,iBAAiB;IAiC/B;;OAEG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMtC;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAsFzB;AAGD,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
1
+ {"version":3,"file":"AnalyticsService.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Services/AnalyticsService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,gCAAgC,CAAC;AAGxC,OAAO,EACL,sBAAsB,EAEvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EACV,eAAe,EAEf,sBAAsB,EAEtB,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAElC,cAAM,gBAAiB,YAAW,iBAAiB;IACjD,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,aAAa,CAAkB;IAGvC,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAM;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAO;IACtC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgE;IAChG,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,oBAAoB,CAAuC;IAGnE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAI9B;IAEF;;OAEG;IACH,cAAc,CAAC,aAAa,EAAE,OAAO,GAAG,IAAI;IAI5C;;;OAGG;IACG,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAsCxD;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAS5B;;OAEG;YACW,kBAAkB;IAuBhC;;OAEG;YACW,YAAY;IAkB1B;;OAEG;IACG,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,sBAAsB,EAChC,QAAQ,CAAC,EAAE,sBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;IAyDhB;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAOtB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA2C5B;;OAEG;YACW,kBAAkB;IAkEhC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB5B;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;YACW,iBAAiB;IAiC/B;;OAEG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMtC;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAgGzB;AAGD,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DataUploadService.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Services/DataUploadService.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AAOrC;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,EAAE,MAAM;YAKb,0BAA0B;IAcxC;;OAEG;IACG,kBAAkB,CACtB,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,uBAAuB,EACxC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;IAuDhB;;OAEG;IACG,WAAW,CACf,gBAAgB,EAAE,MAAM,EACxB,eAAe,CAAC,EAAE,uBAAuB,EACzC,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GACtC,OAAO,CAAC,IAAI,CAAC;IAyKhB;;OAEG;IACG,mBAAmB,CACvB,kBAAkB,EAAE,kBAAkB,EACtC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GACtC,OAAO,CAAC,OAAO,CAAC;IAiGnB,OAAO,CAAC,iBAAiB;CAY1B"}
1
+ {"version":3,"file":"DataUploadService.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Services/DataUploadService.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AAQrC;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,EAAE,MAAM;YAKb,0BAA0B;IAexC;;OAEG;IACG,kBAAkB,CACtB,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,uBAAuB,EACxC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;IAwDhB;;OAEG;IACG,WAAW,CACf,gBAAgB,EAAE,MAAM,EACxB,eAAe,CAAC,EAAE,uBAAuB,EACzC,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GACtC,OAAO,CAAC,IAAI,CAAC;IA0JhB;;OAEG;IACG,mBAAmB,CACvB,kBAAkB,EAAE,kBAAkB,EACtC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GACtC,OAAO,CAAC,OAAO,CAAC;IAkGnB,OAAO,CAAC,iBAAiB;CAY1B"}