@trustchex/react-native-sdk 1.360.0 → 1.362.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/TrustchexSDK.podspec +3 -1
  2. package/android/src/main/java/com/trustchex/reactnativesdk/TrustchexSDKPackage.kt +0 -13
  3. package/android/src/main/java/com/trustchex/reactnativesdk/camera/TrustchexCameraManager.kt +0 -8
  4. package/android/src/main/java/com/trustchex/reactnativesdk/camera/TrustchexCameraView.kt +59 -39
  5. package/android/src/main/java/com/trustchex/reactnativesdk/opencv/OpenCVModule.kt +94 -13
  6. package/ios/Camera/TrustchexCameraManager.m +0 -2
  7. package/ios/Camera/TrustchexCameraManager.swift +0 -7
  8. package/ios/Camera/TrustchexCameraView.swift +16 -47
  9. package/ios/OpenCV/OpenCVHelper.h +17 -0
  10. package/ios/OpenCV/OpenCVHelper.mm +128 -0
  11. package/ios/OpenCV/OpenCVModule.h +6 -0
  12. package/ios/OpenCV/OpenCVModule.mm +141 -0
  13. package/ios/TrustchexSDK-Bridging-Header.h +8 -0
  14. package/lib/module/Screens/Debug/MRZTestScreen.js +175 -0
  15. package/lib/module/Shared/Components/DebugNavigationPanel.js +4 -0
  16. package/lib/module/Shared/Components/EIDScanner.js +0 -78
  17. package/lib/module/Shared/Components/FaceCamera.js +6 -3
  18. package/lib/module/Shared/Components/IdentityDocumentCamera.js +199 -153
  19. package/lib/module/Shared/Components/QrCodeScannerCamera.js +0 -3
  20. package/lib/module/Shared/Config/camera-enhancement.config.js +11 -12
  21. package/lib/module/Shared/Libs/mrz.utils.js +265 -0
  22. package/lib/module/Trustchex.js +4 -0
  23. package/lib/module/index.js +1 -0
  24. package/lib/module/version.js +1 -1
  25. package/lib/typescript/src/Screens/Debug/MRZTestScreen.d.ts +3 -0
  26. package/lib/typescript/src/Screens/Debug/MRZTestScreen.d.ts.map +1 -0
  27. package/lib/typescript/src/Shared/Components/DebugNavigationPanel.d.ts.map +1 -1
  28. package/lib/typescript/src/Shared/Components/EIDScanner.d.ts.map +1 -1
  29. package/lib/typescript/src/Shared/Components/FaceCamera.d.ts.map +1 -1
  30. package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.d.ts +3 -1
  31. package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.d.ts.map +1 -1
  32. package/lib/typescript/src/Shared/Components/QrCodeScannerCamera.d.ts.map +1 -1
  33. package/lib/typescript/src/Shared/Components/TrustchexCamera.d.ts +0 -19
  34. package/lib/typescript/src/Shared/Components/TrustchexCamera.d.ts.map +1 -1
  35. package/lib/typescript/src/Shared/Config/camera-enhancement.config.d.ts +10 -10
  36. package/lib/typescript/src/Shared/Libs/mrz.utils.d.ts +18 -1
  37. package/lib/typescript/src/Shared/Libs/mrz.utils.d.ts.map +1 -1
  38. package/lib/typescript/src/Trustchex.d.ts.map +1 -1
  39. package/lib/typescript/src/index.d.ts +3 -0
  40. package/lib/typescript/src/index.d.ts.map +1 -1
  41. package/lib/typescript/src/version.d.ts +1 -1
  42. package/package.json +2 -1
  43. package/src/Screens/Debug/MRZTestScreen.tsx +209 -0
  44. package/src/Shared/Components/DebugNavigationPanel.tsx +5 -0
  45. package/src/Shared/Components/EIDScanner.tsx +0 -53
  46. package/src/Shared/Components/FaceCamera.tsx +6 -3
  47. package/src/Shared/Components/IdentityDocumentCamera.tsx +246 -149
  48. package/src/Shared/Components/QrCodeScannerCamera.tsx +0 -9
  49. package/src/Shared/Components/TrustchexCamera.tsx +0 -20
  50. package/src/Shared/Config/camera-enhancement.config.ts +6 -6
  51. package/src/Shared/Libs/mrz.utils.ts +289 -1
  52. package/src/Trustchex.tsx +5 -0
  53. package/src/index.tsx +3 -0
  54. package/src/version.ts +1 -1
  55. package/android/src/main/java/com/trustchex/reactnativesdk/mrz/MRZValidationModule.kt +0 -785
  56. package/android/src/main/java/com/trustchex/reactnativesdk/mrz/MRZValidator.kt +0 -419
  57. package/ios/MRZValidation.m +0 -39
  58. package/ios/MRZValidation.swift +0 -802
  59. package/ios/MRZValidator.swift +0 -466
@@ -1,5 +1,267 @@
1
1
  "use strict";
2
2
 
3
+ import { parse } from 'mrz';
4
+
5
+ /**
6
+ * MRZ Format Types according to ICAO 9303
7
+ */
8
+
9
+ /**
10
+ * MRZ Validation Result
11
+ */
12
+
13
+ /**
14
+ * Fixes raw MRZ text by removing noise and normalizing
15
+ * @param rawText Raw OCR text
16
+ * @returns Cleaned and normalized MRZ text
17
+ */
18
+ const fixMRZ = rawText => {
19
+ if (!rawText) {
20
+ return '';
21
+ }
22
+
23
+ // Ensure uppercase immediately
24
+ rawText = rawText.toUpperCase();
25
+ const fillerChar = '<';
26
+ const mrzFormats = [{
27
+ lines: 3,
28
+ length: 30
29
+ },
30
+ // TD1
31
+ {
32
+ lines: 2,
33
+ length: 36
34
+ },
35
+ // TD2
36
+ {
37
+ lines: 2,
38
+ length: 44
39
+ } // TD3
40
+ ];
41
+
42
+ // Remove « characters, spaces, and tabs (but preserve newlines for line splitting)
43
+ // OCR sometimes inserts spaces within document numbers
44
+ let cleanedText = rawText.replace(/[« \t*]/g, '');
45
+
46
+ // Critical OCR fix: "1" at start of line is always "I" in MRZ (document code)
47
+ cleanedText = cleanedText.replace(/^1</gm, 'I<');
48
+ cleanedText = cleanedText.replace(/\n1</g, '\nI<');
49
+
50
+ // Conservative OCR error corrections - only fix clear filler character errors
51
+ // Don't touch valid digit sequences!
52
+
53
+ // Pattern 1: TD1 Line 2 filler area - After TUR, convert all K to < before check digit
54
+ // Structure: ...TUR<<<<<<<<<<<<8 (11 fillers + 1 check digit)
55
+ // OCR often reads: TUR<<<KKKK<<8 or TURK<<KK<<<8
56
+ cleanedText = cleanedText.replace(/TUR[<K]+(\d)$/gm, (match, checkDigit) => {
57
+ const fillerPart = match.substring(3, match.length - 1).replace(/K/g, '<');
58
+ return 'TUR' + fillerPart + checkDigit;
59
+ });
60
+
61
+ // Pattern 2: Convert K at the very end of a line before check digit
62
+ // e.g., "<<<K8" → "<<<8" (K is misread <, 8 is check digit)
63
+ cleanedText = cleanedText.replace(/K(\d)$/gm, '<$1');
64
+
65
+ // Pattern 3: Convert K when surrounded by fillers only
66
+ // e.g., "<<K<<" → "<<<<<" (clearly a filler position)
67
+ cleanedText = cleanedText.replace(/(<+)K(<+)/g, '$1<$2');
68
+
69
+ // Pattern 4: Fix trailing filler area corruption at line end
70
+ // e.g., "TUR<<<<<KK" → "TUR<<<<<<<" (only at end after clear filler sequence)
71
+ cleanedText = cleanedText.replace(/(<{5,})[KGB]+$/gm, (match, fillers) => {
72
+ return fillers.padEnd(match.length, '<');
73
+ });
74
+
75
+ // Split into lines and filter for MRZ-like content
76
+ // MRZ lines must start with I< or contain long sequences of < and alphanumeric chars
77
+ const lines = cleanedText.split('\n').map(line => line.trim()).filter(line => {
78
+ // Must contain filler characters
79
+ if (!/<+/.test(line)) return false;
80
+
81
+ // Prioritize lines starting with I< (document code)
82
+ if (line.startsWith('I<')) return true;
83
+
84
+ // Or lines with numbers and fillers (second line of TD1: birth date, expiry, etc.)
85
+ if (/\d{5,}/.test(line) && /<{3,}/.test(line)) return true;
86
+
87
+ // Or lines that look like name fields (third line of TD1: surname, given names)
88
+ // Accept shorter lines (min 10 chars) since OCR often truncates the third line
89
+ if (line.length >= 10 && /^[A-Z<]+$/.test(line) && /<{2,}/.test(line)) return true;
90
+ return false;
91
+ });
92
+ if (lines.length === 0) {
93
+ return rawText;
94
+ }
95
+
96
+ // Detect format based on line lengths
97
+ let detectedFormat = null;
98
+ for (const format of mrzFormats) {
99
+ const expectedLen = format.length;
100
+ // Check if all lines are within acceptable length
101
+ if (lines.every(line => line.length <= expectedLen + 5)) {
102
+ detectedFormat = format;
103
+ break;
104
+ }
105
+ }
106
+ if (!detectedFormat) {
107
+ return rawText;
108
+ }
109
+ const expectedLen = detectedFormat.length;
110
+ const expectedLines = detectedFormat.lines;
111
+
112
+ // Pad lines to expected length
113
+ const mrzLines = [];
114
+ for (let line of lines) {
115
+ if (line.includes('<')) {
116
+ if (line.length < expectedLen) {
117
+ // Pad to expected length
118
+ line = line.padEnd(expectedLen, fillerChar);
119
+ } else if (line.length > expectedLen) {
120
+ // Truncate to expected length
121
+ line = line.substring(0, expectedLen);
122
+ }
123
+ mrzLines.push(line);
124
+
125
+ // Stop when we have the expected number of lines
126
+ if (mrzLines.length >= expectedLines) break;
127
+ }
128
+ }
129
+ if (mrzLines.length < 2) {
130
+ return rawText;
131
+ }
132
+ const fixedMRZ = mrzLines.join('\n');
133
+ return fixedMRZ;
134
+ };
135
+ const AMBIGUOUS_CHAR_MAP = {
136
+ '0': ['O', 'Q', 'D'],
137
+ O: ['0', 'Q', 'D'],
138
+ Q: ['0', 'O', 'D'],
139
+ D: ['0', 'O', 'Q'],
140
+ '1': ['I', 'L'],
141
+ I: ['1', 'L'],
142
+ L: ['1', 'I'],
143
+ '2': ['Z'],
144
+ Z: ['2'],
145
+ '5': ['S'],
146
+ S: ['5'],
147
+ '6': ['G'],
148
+ G: ['6'],
149
+ '8': ['B'],
150
+ B: ['8']
151
+ };
152
+ const generateAmbiguousVariants = (text, maxChanges = 2, maxVariants = 64) => {
153
+ const entries = [{
154
+ text,
155
+ changes: 0
156
+ }];
157
+ const seen = new Set([text]);
158
+ for (let i = 0; i < text.length; i++) {
159
+ const initialReplacements = AMBIGUOUS_CHAR_MAP[text[i]];
160
+ if (!initialReplacements) continue;
161
+ const currentLen = entries.length;
162
+ for (let j = 0; j < currentLen; j++) {
163
+ const entry = entries[j];
164
+ if (entry.changes >= maxChanges) continue;
165
+ const entryChar = entry.text[i];
166
+ const replacements = AMBIGUOUS_CHAR_MAP[entryChar];
167
+ if (!replacements) continue;
168
+ for (const replacement of replacements) {
169
+ if (replacement === entryChar) continue;
170
+ if (entries.length >= maxVariants) return entries.map(e => e.text);
171
+ const newText = entry.text.slice(0, i) + replacement + entry.text.slice(i + 1);
172
+ if (!seen.has(newText)) {
173
+ seen.add(newText);
174
+ entries.push({
175
+ text: newText,
176
+ changes: entry.changes + 1
177
+ });
178
+ }
179
+ }
180
+ }
181
+ }
182
+ return entries.map(e => e.text);
183
+ };
184
+
185
+ /**
186
+ * Validates MRZ text using the mrz npm package
187
+ * @param mrzText Raw or cleaned MRZ text
188
+ * @param autocorrect Enable autocorrection
189
+ * @returns Validation result with parsed fields
190
+ */
191
+ const validateMRZ = (mrzText, autocorrect = true) => {
192
+ try {
193
+ const fixedText = fixMRZ(mrzText);
194
+ let result = parse(fixedText, {
195
+ autocorrect
196
+ });
197
+ if (!result || !result.valid) {
198
+ const variants = generateAmbiguousVariants(fixedText);
199
+ for (const variant of variants) {
200
+ if (variant === fixedText) continue;
201
+ const candidate = parse(variant, {
202
+ autocorrect
203
+ });
204
+ if (candidate && candidate.valid) {
205
+ result = candidate;
206
+ break;
207
+ }
208
+ }
209
+ }
210
+ if (!result || !result.valid) {
211
+ return {
212
+ valid: false,
213
+ format: 'UNKNOWN',
214
+ error: 'Invalid MRZ format or checksum'
215
+ };
216
+ }
217
+
218
+ // Map mrz package format to our format
219
+ let format = 'UNKNOWN';
220
+ if (result.format === 'TD1') format = 'TD1';else if (result.format === 'TD2') format = 'TD2';else if (result.format === 'TD3') format = 'TD3';
221
+
222
+ // Map mrz package fields to our MRZFields type
223
+ const fields = {
224
+ documentCode: result.fields.documentCode || null,
225
+ issuingState: result.fields.issuingState || null,
226
+ documentNumber: result.fields.documentNumber || null,
227
+ documentNumberCheckDigit: result.fields.documentNumberCheckDigit || null,
228
+ nationality: result.fields.nationality || null,
229
+ lastName: result.fields.lastName || null,
230
+ firstName: result.fields.firstName || null,
231
+ sex: result.fields.sex || null,
232
+ birthDate: result.fields.birthDate || null,
233
+ birthDateCheckDigit: result.fields.birthDateCheckDigit || null,
234
+ expirationDate: result.fields.expirationDate || null,
235
+ expirationDateCheckDigit: result.fields.expirationDateCheckDigit || null,
236
+ personalNumber: result.fields.personalNumber || null,
237
+ personalNumberCheckDigit: result.fields.personalNumberCheckDigit || null,
238
+ compositeCheckDigit: result.fields.compositeCheckDigit || null,
239
+ optional1: result.fields.optional1 || null,
240
+ optional2: result.fields.optional2 || null
241
+ };
242
+ return {
243
+ valid: true,
244
+ format,
245
+ fields
246
+ };
247
+ } catch (error) {
248
+ return {
249
+ valid: false,
250
+ format: 'UNKNOWN',
251
+ error: error instanceof Error ? error.message : 'Unknown error'
252
+ };
253
+ }
254
+ };
255
+
256
+ /**
257
+ * Validates MRZ with corrections (uses autocorrect from mrz package)
258
+ * @param mrzText Raw OCR text
259
+ * @returns Validation result with parsed fields
260
+ */
261
+ const validateMRZWithCorrections = mrzText => {
262
+ return validateMRZ(mrzText, true);
263
+ };
264
+
3
265
  /**
4
266
  * Converts an MRZ date string to an ISO date string.
5
267
  * @param mrzDate The MRZ date string to convert (YYMMDD format)
@@ -17,5 +279,8 @@ const convertMRZDateToISODate = mrzDate => {
17
279
  return date.toISOString();
18
280
  };
19
281
  export default {
282
+ fixMRZ,
283
+ validateMRZ,
284
+ validateMRZWithCorrections,
20
285
  convertMRZDateToISODate
21
286
  };
@@ -16,6 +16,7 @@ import ContractAcceptanceScreen from "./Screens/Dynamic/ContractAcceptanceScreen
16
16
  import VerificationSessionCheckScreen from "./Screens/Static/VerificationSessionCheckScreen.js";
17
17
  import QrCodeScanningScreen from "./Screens/Static/QrCodeScanningScreen.js";
18
18
  import OTPVerificationScreen from "./Screens/Static/OTPVerificationScreen.js";
19
+ import MRZTestScreen from "./Screens/Debug/MRZTestScreen.js";
19
20
  import AppContext from "./Shared/Contexts/AppContext.js";
20
21
  import DebugNavigationPanel from "./Shared/Components/DebugNavigationPanel.js";
21
22
  import i18n from "./Translation/index.js";
@@ -165,6 +166,9 @@ const Trustchex = ({
165
166
  }), /*#__PURE__*/_jsx(Stack.Screen, {
166
167
  name: "QrCodeScanningScreen",
167
168
  component: QrCodeScanningScreen
169
+ }), /*#__PURE__*/_jsx(Stack.Screen, {
170
+ name: "MRZTestScreen",
171
+ component: MRZTestScreen
168
172
  })]
169
173
  }), /*#__PURE__*/_jsx(DebugNavigationPanel, {})]
170
174
  })
@@ -6,4 +6,5 @@ export { analyticsService } from "./Shared/Services/AnalyticsService.js";
6
6
  export { LogLevel, setDebugMode, setLogLevel, isDebugEnabled, getLogLevel, traceLog, debugLog, infoLog, debugWarn, debugError, logError, logWarn } from "./Shared/Libs/debug.utils.js";
7
7
  export { trackScreenView, trackScreenExit, trackButtonClick, trackError, trackErrorWithDetails, trackApiCall, trackVerificationStart, trackVerificationComplete, trackConsentGiven, trackSessionStart, trackSessionEnd, trackNFCScanStart, trackNFCScanComplete, trackNFCScanFailed, trackFunnelStep, trackStepAbandoned, trackStepSkipped, useScreenTracking } from "./Shared/Libs/analytics.utils.js";
8
8
  export { AnalyticsEventCategory, AnalyticsEventName, ErrorCategory } from "./Shared/Types/analytics.types.js";
9
+ export { default as mrzUtils } from "./Shared/Libs/mrz.utils.js";
9
10
  export default Trustchex;
@@ -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.360.0';
5
+ export const SDK_VERSION = '1.362.0';
@@ -0,0 +1,3 @@
1
+ declare const MRZTestScreen: () => import("react/jsx-runtime").JSX.Element;
2
+ export default MRZTestScreen;
3
+ //# sourceMappingURL=MRZTestScreen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MRZTestScreen.d.ts","sourceRoot":"","sources":["../../../../../src/Screens/Debug/MRZTestScreen.tsx"],"names":[],"mappings":"AAkBA,QAAA,MAAM,aAAa,+CAiIlB,CAAC;AA6DF,eAAe,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DebugNavigationPanel.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/DebugNavigationPanel.tsx"],"names":[],"mappings":"AAqCA,QAAA,MAAM,oBAAoB,+CA2UzB,CAAC;AAqJF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"DebugNavigationPanel.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/DebugNavigationPanel.tsx"],"names":[],"mappings":"AAqCA,QAAA,MAAM,oBAAoB,+CAgVzB,CAAC;AAqJF,eAAe,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"EIDScanner.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/EIDScanner.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAcpD,UAAU,eAAe;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CACd,OAAO,EAAE,SAAS,EAClB,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,MAAM,KACtB,IAAI,CAAC;IACV,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/C;AAED,QAAA,MAAM,UAAU,GAAI,6FAOjB,eAAe,4CA0nBjB,CAAC;AA+HF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"EIDScanner.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/EIDScanner.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAapD,UAAU,eAAe;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CACd,OAAO,EAAE,SAAS,EAClB,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,MAAM,KACtB,IAAI,CAAC;IACV,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/C;AAED,QAAA,MAAM,UAAU,GAAI,6FAOjB,eAAe,4CAskBjB,CAAC;AA+HF,eAAe,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"FaceCamera.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/FaceCamera.tsx"],"names":[],"mappings":"AAeA,OAAO,EAEL,KAAK,qBAAqB,EAE3B,MAAM,mBAAmB,CAAC;AAa3B,MAAM,MAAM,IAAI,GAAG;IACjB,MAAM,EAAE;QACN,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,uBAAuB,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,eAAe,EAAE,CACf,KAAK,EAAE,IAAI,EAAE,EACb,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,OAAO,EACtB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,KAChB,IAAI,CAAC;IACV,mBAAmB,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC7D,WAAW,CAAC,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAAC;AAEF,QAAA,MAAM,UAAU,GAAI,wDAIjB,eAAe,4CAwSjB,CAAC;AA6BF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"FaceCamera.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/FaceCamera.tsx"],"names":[],"mappings":"AAeA,OAAO,EAEL,KAAK,qBAAqB,EAE3B,MAAM,mBAAmB,CAAC;AAa3B,MAAM,MAAM,IAAI,GAAG;IACjB,MAAM,EAAE;QACN,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,uBAAuB,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,eAAe,EAAE,CACf,KAAK,EAAE,IAAI,EAAE,EACb,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,OAAO,EACtB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,KAChB,IAAI,CAAC;IACV,mBAAmB,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC7D,WAAW,CAAC,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAAC;AAEF,QAAA,MAAM,UAAU,GAAI,wDAIjB,eAAe,4CA2SjB,CAAC;AA6BF,eAAe,UAAU,CAAC"}
@@ -12,6 +12,7 @@ export type DocumentScannedData = {
12
12
  export type BlockText = {
13
13
  blocks: BlocksData[];
14
14
  resultText: string;
15
+ mrzOnlyText?: string;
15
16
  };
16
17
  type BlocksData = {
17
18
  blockFrame: FrameType;
@@ -51,7 +52,8 @@ export type PhotoOptions = {
51
52
  export interface IdentityDocumentCameraProps {
52
53
  onlyMRZScan: boolean;
53
54
  onIdentityDocumentScanned: (scannedData: DocumentScannedData) => void;
55
+ testMode?: boolean;
54
56
  }
55
- declare const IdentityDocumentCamera: ({ onlyMRZScan, onIdentityDocumentScanned, }: IdentityDocumentCameraProps) => import("react/jsx-runtime").JSX.Element;
57
+ declare const IdentityDocumentCamera: ({ onlyMRZScan, onIdentityDocumentScanned, testMode, }: IdentityDocumentCameraProps) => import("react/jsx-runtime").JSX.Element;
56
58
  export default IdentityDocumentCamera;
57
59
  //# sourceMappingURL=IdentityDocumentCamera.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IdentityDocumentCamera.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/IdentityDocumentCamera.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAcpD,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,UAAU,EAAE,SAAS,CAAC;IACtB,iBAAiB,EAAE,gBAAgB,CAAC;IACpC,KAAK,EAAE,SAAS,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,gBAAgB,GAAG,CAAC;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEnD,KAAK,SAAS,GAAG;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,gBAAgB,EAAE,gBAAgB;IAClC,QAAQ,EAAE,YAAY;IACtB,SAAS,EAAE,SAAS;IACpB,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE;IAC5B,QAAQ,EAAE,MAAM;CACjB,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,mBAAmB,EAAE,gBAAgB;IACrC,YAAY,EAAE,SAAS;IACvB,WAAW,EAAE,MAAM;CACpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EACR,gBAAgB,GAChB,UAAU,GACV,oBAAoB,GACpB,eAAe,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE,OAAO,CAAC;IACrB,yBAAyB,EAAE,CAAC,WAAW,EAAE,mBAAmB,KAAK,IAAI,CAAC;CACvE;AA4BD,QAAA,MAAM,sBAAsB,GAAI,6CAG7B,2BAA2B,4CAm0G7B,CAAC;AA0LF,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"IdentityDocumentCamera.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/IdentityDocumentCamera.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAepD,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,UAAU,EAAE,SAAS,CAAC;IACtB,iBAAiB,EAAE,gBAAgB,CAAC;IACpC,KAAK,EAAE,SAAS,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,gBAAgB,GAAG,CAAC;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEnD,KAAK,SAAS,GAAG;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,gBAAgB,EAAE,gBAAgB;IAClC,QAAQ,EAAE,YAAY;IACtB,SAAS,EAAE,SAAS;IACpB,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE;IAC5B,QAAQ,EAAE,MAAM;CACjB,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,mBAAmB,EAAE,gBAAgB;IACrC,YAAY,EAAE,SAAS;IACvB,WAAW,EAAE,MAAM;CACpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EACR,gBAAgB,GAChB,UAAU,GACV,oBAAoB,GACpB,eAAe,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE,OAAO,CAAC;IACrB,yBAAyB,EAAE,CAAC,WAAW,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACtE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA4BD,QAAA,MAAM,sBAAsB,GAAI,uDAI7B,2BAA2B,4CAy6G7B,CAAC;AAgLF,eAAe,sBAAsB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"QrCodeScannerCamera.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/QrCodeScannerCamera.tsx"],"names":[],"mappings":"AA2BA,MAAM,WAAW,wBAAwB;IACvC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,QAAA,MAAM,mBAAmB,GAAI,+BAG1B,wBAAwB,4CA6L1B,CAAC;AAwGF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"QrCodeScannerCamera.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/QrCodeScannerCamera.tsx"],"names":[],"mappings":"AA2BA,MAAM,WAAW,wBAAwB;IACvC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,QAAA,MAAM,mBAAmB,GAAI,+BAG1B,wBAAwB,4CAoL1B,CAAC;AAwGF,eAAe,mBAAmB,CAAC"}
@@ -11,7 +11,6 @@ export interface Frame {
11
11
  textBlocks?: NativeTextBlock[];
12
12
  resultText?: string;
13
13
  barcodes?: NativeBarcode[];
14
- mrzResult?: NativeMRZResult;
15
14
  }
16
15
  export interface NativeFace {
17
16
  bounds: {
@@ -57,23 +56,6 @@ export interface NativeBarcode {
57
56
  y: number;
58
57
  }>;
59
58
  }
60
- export interface NativeMRZResult {
61
- valid: boolean;
62
- format: string;
63
- error?: string;
64
- documentCode?: string;
65
- issuingState?: string;
66
- documentNumber?: string;
67
- lastName?: string;
68
- firstName?: string;
69
- birthDate?: string;
70
- sex?: string;
71
- expirationDate?: string;
72
- nationality?: string;
73
- optional1?: string;
74
- optional2?: string;
75
- rawLines?: string;
76
- }
77
59
  interface TrustchexCameraProps {
78
60
  style?: StyleProp<ViewStyle>;
79
61
  cameraType?: 'front' | 'back';
@@ -83,7 +65,6 @@ interface TrustchexCameraProps {
83
65
  enableFaceDetection?: boolean;
84
66
  enableTextRecognition?: boolean;
85
67
  enableBarcodeScanning?: boolean;
86
- enableMrzValidation?: boolean;
87
68
  includeBase64?: boolean;
88
69
  onFrameAvailable?: (event: NativeSyntheticEvent<{
89
70
  frame: Frame;
@@ -1 +1 @@
1
- {"version":3,"file":"TrustchexCamera.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/TrustchexCamera.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TrustchexCamera.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Components/TrustchexCamera.tsx"],"names":[],"mappings":"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"}
@@ -11,19 +11,19 @@ export declare const ENHANCEMENT_CONFIG: {
11
11
  readonly brightness: {
12
12
  readonly thresholds: {
13
13
  readonly general: {
14
- readonly low: 40;
15
- readonly high: 120;
16
- readonly target: 80;
14
+ readonly low: 60;
15
+ readonly high: 140;
16
+ readonly target: 100;
17
17
  };
18
18
  readonly faceDetection: {
19
- readonly low: 50;
20
- readonly high: 110;
21
- readonly target: 85;
19
+ readonly low: 70;
20
+ readonly high: 140;
21
+ readonly target: 105;
22
22
  };
23
23
  readonly mrzScanning: {
24
- readonly low: 45;
25
- readonly high: 130;
26
- readonly target: 80;
24
+ readonly low: 65;
25
+ readonly high: 150;
26
+ readonly target: 100;
27
27
  };
28
28
  };
29
29
  readonly adaptiveStep: true;
@@ -33,7 +33,7 @@ export declare const ENHANCEMENT_CONFIG: {
33
33
  readonly contrast: {
34
34
  readonly enabled: true;
35
35
  readonly clahe: {
36
- readonly clipLimit: 2;
36
+ readonly clipLimit: 1.5;
37
37
  readonly tileGridSize: [number, number];
38
38
  };
39
39
  readonly applyWhen: {
@@ -1,5 +1,22 @@
1
+ import type { MRZFields } from '../Types/mrzFields';
2
+ /**
3
+ * MRZ Format Types according to ICAO 9303
4
+ */
5
+ export type MRZFormat = 'TD1' | 'TD2' | 'TD3' | 'UNKNOWN';
6
+ /**
7
+ * MRZ Validation Result
8
+ */
9
+ export interface MRZValidationResult {
10
+ valid: boolean;
11
+ format: MRZFormat;
12
+ fields?: MRZFields;
13
+ error?: string;
14
+ }
1
15
  declare const _default: {
2
- convertMRZDateToISODate: (mrzDate?: string | null) => string;
16
+ fixMRZ: (rawText: string) => string;
17
+ validateMRZ: (mrzText: string, autocorrect?: boolean) => MRZValidationResult;
18
+ validateMRZWithCorrections: (mrzText: string) => MRZValidationResult;
19
+ convertMRZDateToISODate: (mrzDate?: string | null) => string | null;
3
20
  };
4
21
  export default _default;
5
22
  //# sourceMappingURL=mrz.utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mrz.utils.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Libs/mrz.utils.ts"],"names":[],"mappings":";wCAK2C,MAAM,GAAG,IAAI;;AAgBxD,wBAEE"}
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,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;;sBAOwB,MAAM,KAAG,MAAM;2BAuL7B,MAAM,gBACF,OAAO,KACnB,mBAAmB;0CAwEX,MAAM,KACd,mBAAmB;wCASqB,MAAM,GAAG,IAAI,KAAG,MAAM,GAAG,IAAI;;AAgBxE,wBAKE"}
@@ -1 +1 @@
1
- {"version":3,"file":"Trustchex.d.ts","sourceRoot":"","sources":["../../../src/Trustchex.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAK5D,OAAO,gCAAgC,CAAC;AAwBxC,UAAU,iBAAiB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;CACrE;AASD,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAqLvC,CAAC;AAWF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"Trustchex.d.ts","sourceRoot":"","sources":["../../../src/Trustchex.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAK5D,OAAO,gCAAgC,CAAC;AAyBxC,UAAU,iBAAiB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;CACrE;AASD,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAyLvC,CAAC;AAWF,eAAe,SAAS,CAAC"}
@@ -5,5 +5,8 @@ export { LogLevel, setDebugMode, setLogLevel, isDebugEnabled, getLogLevel, trace
5
5
  export { trackScreenView, trackScreenExit, trackButtonClick, trackError, trackErrorWithDetails, trackApiCall, trackVerificationStart, trackVerificationComplete, trackConsentGiven, trackSessionStart, trackSessionEnd, trackNFCScanStart, trackNFCScanComplete, trackNFCScanFailed, trackFunnelStep, trackStepAbandoned, trackStepSkipped, useScreenTracking, } from './Shared/Libs/analytics.utils';
6
6
  export { AnalyticsEventCategory, AnalyticsEventName, ErrorCategory, } from './Shared/Types/analytics.types';
7
7
  export type { AnalyticsConfig, AnalyticsEvent, ErrorSeverity, ErrorContext, ErrorEventMetadata, } from './Shared/Types/analytics.types';
8
+ export { default as mrzUtils } from './Shared/Libs/mrz.utils';
9
+ export type { MRZFormat, MRZValidationResult } from './Shared/Libs/mrz.utils';
10
+ export type { MRZFields, MRZFieldName } from './Shared/Types/mrzFields';
8
11
  export default Trustchex;
9
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,cAAc,EACd,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,SAAS,EACT,UAAU,EACV,QAAQ,EACR,OAAO,GACR,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,qBAAqB,EACrB,YAAY,EACZ,sBAAsB,EACtB,yBAAyB,EACzB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,GACd,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACb,YAAY,EACZ,kBAAkB,GACnB,MAAM,gCAAgC,CAAC;AAExC,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,cAAc,EACd,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,SAAS,EACT,UAAU,EACV,QAAQ,EACR,OAAO,GACR,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,qBAAqB,EACrB,YAAY,EACZ,sBAAsB,EACtB,yBAAyB,EACzB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,GACd,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACb,YAAY,EACZ,kBAAkB,GACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC9D,YAAY,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExE,eAAe,SAAS,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const SDK_VERSION = "1.360.0";
1
+ export declare const SDK_VERSION = "1.362.0";
2
2
  //# sourceMappingURL=version.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trustchex/react-native-sdk",
3
- "version": "1.360.0",
3
+ "version": "1.362.0",
4
4
  "description": "Trustchex mobile app react native SDK for android or ios devices",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -118,6 +118,7 @@
118
118
  "buffer": "^6.0.3",
119
119
  "crypto-js": "^4.2.0",
120
120
  "i18next": "^25.3.2",
121
+ "mrz": "^5.0.1",
121
122
  "react-i18next": "^15.6.0",
122
123
  "uuid": "^11.0.3"
123
124
  },