@trustchex/react-native-sdk 1.478.7 → 1.483.4

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 (112) hide show
  1. package/android/src/main/java/com/trustchex/reactnativesdk/camera/TrustchexCameraView.kt +57 -3
  2. package/ios/Camera/TrustchexCameraView.swift +20 -15
  3. package/lib/module/Screens/Dynamic/IdentityDocumentEIDScanningScreen.js +0 -3
  4. package/lib/module/Screens/Dynamic/IdentityDocumentScanningScreen.js +21 -0
  5. package/lib/module/Screens/Dynamic/VideoCallScreen.js +1 -1
  6. package/lib/module/Screens/Static/ResultScreen.js +75 -16
  7. package/lib/module/Shared/Components/DiagnosticReportButton.js +64 -0
  8. package/lib/module/Shared/Components/EIDScanner.js +52 -19
  9. package/lib/module/Shared/Components/IdentityDocumentCamera.js +132 -8
  10. package/lib/module/Shared/Components/NavigationManager.js +7 -9
  11. package/lib/module/Shared/Contexts/AppContext.js +3 -0
  12. package/lib/module/Shared/EIDReader/eidReader.js +167 -30
  13. package/lib/module/Shared/EIDReader/lds/icao/dg11File.js +77 -0
  14. package/lib/module/Shared/Libs/MRZ_KNOWN_ISSUES.md +7 -0
  15. package/lib/module/Shared/Libs/diagnosticReport.js +133 -0
  16. package/lib/module/Shared/Libs/diagnostics.js +171 -0
  17. package/lib/module/Shared/Libs/documentDataNormalizer.js +104 -0
  18. package/lib/module/Shared/Libs/mrz.utils.js +0 -5
  19. package/lib/module/Shared/Libs/mrzFrameAggregator.js +32 -5
  20. package/lib/module/Shared/Libs/mrzTransliteration.js +80 -0
  21. package/lib/module/Shared/Libs/native-device-info.utils.js +67 -0
  22. package/lib/module/Shared/Libs/sendDiagnosticReport.js +130 -0
  23. package/lib/module/Shared/Services/DataUploadService.js +6 -3
  24. package/lib/module/Shared/Types/documentData.js +1 -0
  25. package/lib/module/Shared/Types/documentReadResult.js +3 -0
  26. package/lib/module/Translation/Resources/en.js +5 -0
  27. package/lib/module/Translation/Resources/tr.js +5 -0
  28. package/lib/module/Trustchex.js +31 -4
  29. package/lib/module/version.js +1 -1
  30. package/lib/typescript/src/Screens/Dynamic/IdentityDocumentEIDScanningScreen.d.ts.map +1 -1
  31. package/lib/typescript/src/Screens/Dynamic/IdentityDocumentScanningScreen.d.ts.map +1 -1
  32. package/lib/typescript/src/Screens/Dynamic/VideoCallScreen.d.ts.map +1 -1
  33. package/lib/typescript/src/Screens/Static/ResultScreen.d.ts.map +1 -1
  34. package/lib/typescript/src/Shared/Components/DiagnosticReportButton.d.ts +20 -0
  35. package/lib/typescript/src/Shared/Components/DiagnosticReportButton.d.ts.map +1 -0
  36. package/lib/typescript/src/Shared/Components/EIDScanner.d.ts.map +1 -1
  37. package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.d.ts.map +1 -1
  38. package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.types.d.ts +10 -0
  39. package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.types.d.ts.map +1 -1
  40. package/lib/typescript/src/Shared/Components/NavigationManager.d.ts.map +1 -1
  41. package/lib/typescript/src/Shared/Components/TrustchexCamera.d.ts +10 -0
  42. package/lib/typescript/src/Shared/Components/TrustchexCamera.d.ts.map +1 -1
  43. package/lib/typescript/src/Shared/Contexts/AppContext.d.ts +5 -0
  44. package/lib/typescript/src/Shared/Contexts/AppContext.d.ts.map +1 -1
  45. package/lib/typescript/src/Shared/EIDReader/eidReader.d.ts +2 -0
  46. package/lib/typescript/src/Shared/EIDReader/eidReader.d.ts.map +1 -1
  47. package/lib/typescript/src/Shared/EIDReader/lds/icao/dg11File.d.ts +35 -0
  48. package/lib/typescript/src/Shared/EIDReader/lds/icao/dg11File.d.ts.map +1 -0
  49. package/lib/typescript/src/Shared/Libs/diagnosticReport.d.ts +48 -0
  50. package/lib/typescript/src/Shared/Libs/diagnosticReport.d.ts.map +1 -0
  51. package/lib/typescript/src/Shared/Libs/diagnostics.d.ts +145 -0
  52. package/lib/typescript/src/Shared/Libs/diagnostics.d.ts.map +1 -0
  53. package/lib/typescript/src/Shared/Libs/documentDataNormalizer.d.ts +12 -0
  54. package/lib/typescript/src/Shared/Libs/documentDataNormalizer.d.ts.map +1 -0
  55. package/lib/typescript/src/Shared/Libs/mrz.utils.d.ts.map +1 -1
  56. package/lib/typescript/src/Shared/Libs/mrzFrameAggregator.d.ts +33 -0
  57. package/lib/typescript/src/Shared/Libs/mrzFrameAggregator.d.ts.map +1 -1
  58. package/lib/typescript/src/Shared/Libs/mrzTransliteration.d.ts +3 -0
  59. package/lib/typescript/src/Shared/Libs/mrzTransliteration.d.ts.map +1 -0
  60. package/lib/typescript/src/Shared/Libs/native-device-info.utils.d.ts +33 -0
  61. package/lib/typescript/src/Shared/Libs/native-device-info.utils.d.ts.map +1 -1
  62. package/lib/typescript/src/Shared/Libs/sendDiagnosticReport.d.ts +30 -0
  63. package/lib/typescript/src/Shared/Libs/sendDiagnosticReport.d.ts.map +1 -0
  64. package/lib/typescript/src/Shared/Services/DataUploadService.d.ts +3 -2
  65. package/lib/typescript/src/Shared/Services/DataUploadService.d.ts.map +1 -1
  66. package/lib/typescript/src/Shared/Types/documentData.d.ts +44 -0
  67. package/lib/typescript/src/Shared/Types/documentData.d.ts.map +1 -0
  68. package/lib/typescript/src/Shared/Types/documentReadResult.d.ts +44 -0
  69. package/lib/typescript/src/Shared/Types/documentReadResult.d.ts.map +1 -0
  70. package/lib/typescript/src/Shared/Types/mrzFields.d.ts +1 -1
  71. package/lib/typescript/src/Shared/Types/mrzFields.d.ts.map +1 -1
  72. package/lib/typescript/src/Translation/Resources/en.d.ts +5 -0
  73. package/lib/typescript/src/Translation/Resources/en.d.ts.map +1 -1
  74. package/lib/typescript/src/Translation/Resources/tr.d.ts +5 -0
  75. package/lib/typescript/src/Translation/Resources/tr.d.ts.map +1 -1
  76. package/lib/typescript/src/Trustchex.d.ts +9 -0
  77. package/lib/typescript/src/Trustchex.d.ts.map +1 -1
  78. package/lib/typescript/src/index.d.ts +2 -0
  79. package/lib/typescript/src/index.d.ts.map +1 -1
  80. package/lib/typescript/src/version.d.ts +1 -1
  81. package/package.json +5 -1
  82. package/src/Screens/Dynamic/IdentityDocumentEIDScanningScreen.tsx +0 -4
  83. package/src/Screens/Dynamic/IdentityDocumentScanningScreen.tsx +23 -0
  84. package/src/Screens/Dynamic/VideoCallScreen.tsx +5 -1
  85. package/src/Screens/Static/ResultScreen.tsx +85 -16
  86. package/src/Shared/Components/DiagnosticReportButton.tsx +77 -0
  87. package/src/Shared/Components/EIDScanner.tsx +67 -18
  88. package/src/Shared/Components/IdentityDocumentCamera.tsx +145 -7
  89. package/src/Shared/Components/IdentityDocumentCamera.types.ts +6 -0
  90. package/src/Shared/Components/NavigationManager.tsx +7 -7
  91. package/src/Shared/Components/TrustchexCamera.tsx +6 -0
  92. package/src/Shared/Contexts/AppContext.ts +8 -0
  93. package/src/Shared/EIDReader/eidReader.ts +193 -47
  94. package/src/Shared/EIDReader/lds/icao/dg11File.ts +94 -0
  95. package/src/Shared/Libs/MRZ_KNOWN_ISSUES.md +7 -0
  96. package/src/Shared/Libs/diagnosticReport.ts +206 -0
  97. package/src/Shared/Libs/diagnostics.ts +251 -0
  98. package/src/Shared/Libs/documentDataNormalizer.ts +108 -0
  99. package/src/Shared/Libs/mrz.utils.ts +0 -5
  100. package/src/Shared/Libs/mrzFrameAggregator.ts +61 -3
  101. package/src/Shared/Libs/mrzTransliteration.ts +131 -0
  102. package/src/Shared/Libs/native-device-info.utils.ts +116 -0
  103. package/src/Shared/Libs/sendDiagnosticReport.ts +165 -0
  104. package/src/Shared/Services/DataUploadService.ts +9 -3
  105. package/src/Shared/Types/documentData.ts +52 -0
  106. package/src/Shared/Types/documentReadResult.ts +47 -0
  107. package/src/Shared/Types/mrzFields.ts +0 -5
  108. package/src/Translation/Resources/en.ts +6 -0
  109. package/src/Translation/Resources/tr.ts +6 -0
  110. package/src/Trustchex.tsx +48 -3
  111. package/src/index.tsx +7 -0
  112. package/src/version.ts +1 -1
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Diagnostics collector for the "Report a scanning issue" feature.
3
+ *
4
+ * Accumulates a PII-light technical snapshot of a single scan session — camera
5
+ * quality, MRZ consensus, and (the highest-value, most device-specific part) a
6
+ * structured per-step NFC/eID read log. The result screen serialises this into
7
+ * the diagnostic email the user reviews and sends to support.
8
+ *
9
+ * Design notes:
10
+ * - This is a MODULE-LEVEL SINGLETON so the deep camera/EID call stack can record
11
+ * into it without threading a prop/context through every layer. Call `reset()`
12
+ * at the start of a scan flow.
13
+ * - It stores only TECHNICAL signals (counts, timings, brightness, APDU status
14
+ * words, pass/fail). It deliberately holds NO identity data, images, MRZ text,
15
+ * keys, or nonces — the scanned identity/images shown to the user come from the
16
+ * result screen's own state, not from here, and are attached separately with
17
+ * the user's explicit review in the email draft.
18
+ */
19
+ /** A single step of the NFC/eID read, with its outcome and timing. */
20
+ export interface NfcStep {
21
+ /** Step name: 'open' | 'selectMF' | 'readCardAccess' | 'paceAuth' | 'bacAuth'
22
+ * | 'selectApplet' | 'readDG1' | 'readDG2' | … */
23
+ step: string;
24
+ ok: boolean;
25
+ ms: number;
26
+ /** APDU status word (hex, e.g. "6982") when the step failed at the APDU level. */
27
+ sw?: string;
28
+ /** Coarse, non-PII error CATEGORY when the step failed (e.g. "auth_failed",
29
+ * "tag_lost", "reading_error") — never the raw error text. */
30
+ error?: string;
31
+ }
32
+ export interface NfcDiagnostics {
33
+ attempted: boolean;
34
+ chipDetected: boolean;
35
+ /** 'PACE' | 'BAC' | 'none' */
36
+ authProtocol: 'PACE' | 'BAC' | 'none';
37
+ paceFellBackToBac: boolean;
38
+ /** PACE object identifier string when PACE was attempted. */
39
+ paceOid?: string;
40
+ /** Why PACE wasn't used / fell back: 'no_card_access' | 'no_pace_info' |
41
+ * 'pace_failed'. Distinguishes device/chip-specific PACE issues. */
42
+ paceFallbackReason?: string;
43
+ steps: NfcStep[];
44
+ /** Name of the first failing step, if any. */
45
+ failureStep?: string;
46
+ /** Coarse category: 'auth_failed' | 'tag_lost' | 'timeout' | 'unsupported'
47
+ * | 'not_enabled' | 'user_cancelled' | 'reading_error' | null */
48
+ errorCategory?: string;
49
+ retryCount: number;
50
+ succeeded: boolean;
51
+ }
52
+ export interface CameraDiagnostics {
53
+ frames: number;
54
+ frameW: number;
55
+ frameH: number;
56
+ avgBrightness: number;
57
+ minBrightness: number;
58
+ maxBrightness: number;
59
+ hadLowBrightness: boolean;
60
+ hadBlurryFrames: boolean;
61
+ /**
62
+ * The thresholds the measured values were judged against, so support can read
63
+ * "117 measured vs 65 floor" rather than just a pass/fail flag. Recorded once.
64
+ */
65
+ thresholds?: {
66
+ brightnessLow?: number;
67
+ brightnessHigh?: number;
68
+ minBrightness?: number;
69
+ blur?: number;
70
+ };
71
+ }
72
+ export interface MrzDiagnostics {
73
+ framesProcessed: number;
74
+ reachedStable: boolean;
75
+ stabilityFrames: number;
76
+ /** Smallest winning vote margin across contested cells at acceptance. */
77
+ minContestedMargin: number;
78
+ /**
79
+ * Largest MRZ-band pixel height seen (max OCR'd text-block height). Compared
80
+ * to the ~16px/character ML Kit floor, this explains "scans on device A,
81
+ * fails on device B" — a smaller band falls below the OCR resolution floor.
82
+ */
83
+ maxMrzBandHeightPx?: number;
84
+ format?: string;
85
+ /** Per-field check-digit outcomes: 'pass' | 'fail' (no values, no PII). */
86
+ checkDigits?: Record<string, 'pass' | 'fail'>;
87
+ /** True when the Turkish leading-serial-letter check-digit convention was used
88
+ * to accept the document number (set at report-build time from the final MRZ). */
89
+ turkishLetterPrefixApplied: boolean;
90
+ }
91
+ export interface DiagnosticsSnapshot {
92
+ schemaVersion: number;
93
+ generatedAt: string;
94
+ documentType?: string;
95
+ dataSource?: string;
96
+ totalDurationMs: number;
97
+ camera: CameraDiagnostics;
98
+ mrz: MrzDiagnostics;
99
+ nfc: NfcDiagnostics;
100
+ /** Sanitised, non-PII error entries collected during the session. */
101
+ errors: Array<{
102
+ code?: string;
103
+ category?: string;
104
+ screen?: string;
105
+ }>;
106
+ }
107
+ /**
108
+ * Accumulates one scan session's diagnostics. A single shared instance is
109
+ * exported below; tests can construct their own.
110
+ */
111
+ export declare class DiagnosticsCollector {
112
+ private startedAtMs;
113
+ private documentType?;
114
+ private dataSource?;
115
+ private camera;
116
+ private mrz;
117
+ private nfc;
118
+ private errors;
119
+ /** Begin a fresh session — call when a scan flow starts. */
120
+ reset(nowMs: number): void;
121
+ setDocument(documentType?: string, dataSource?: string): void;
122
+ /** Merge a camera snapshot (called periodically as frames arrive). */
123
+ setCamera(c: Partial<CameraDiagnostics>): void;
124
+ /** Merge MRZ consensus metrics. `reachedStable` is STICKY (once true, stays
125
+ * true) so a later frame's flicker can't unset that the scan did stabilise;
126
+ * `maxMrzBandHeightPx` keeps the largest seen. */
127
+ setMrz(m: Partial<MrzDiagnostics>): void;
128
+ nfcAttemptStarted(): void;
129
+ nfcChipDetected(): void;
130
+ nfcSetAuth(protocol: 'PACE' | 'BAC' | 'none', oid?: string): void;
131
+ nfcPaceFellBackToBac(reason?: string): void;
132
+ /** Record one completed step. Keep messages short and free of PII. */
133
+ nfcStep(step: NfcStep): void;
134
+ nfcResult(succeeded: boolean, errorCategory?: string): void;
135
+ addError(e: {
136
+ code?: string;
137
+ category?: string;
138
+ screen?: string;
139
+ }): void;
140
+ /** Build the serialisable snapshot. */
141
+ snapshot(nowMs: number, isoNow: string): DiagnosticsSnapshot;
142
+ }
143
+ /** Shared session-scoped collector used across the scan flow. */
144
+ export declare const diagnostics: DiagnosticsCollector;
145
+ //# sourceMappingURL=diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Libs/diagnostics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { MRZFields } from '../Types/mrzFields';
2
+ import type { DocumentData } from '../Types/documentData';
3
+ import type { MRZInfo } from '../EIDReader/lds/icao/mrzInfo';
4
+ /**
5
+ * Build a DocumentData from a chip-read MRZInfo object (NFC path).
6
+ */
7
+ export declare function normalizeFromMRZInfo(mrz: MRZInfo): DocumentData;
8
+ /**
9
+ * Build a DocumentData from an MRZFields object (camera OCR path).
10
+ */
11
+ export declare function normalizeFromMRZFields(fields: MRZFields): DocumentData;
12
+ //# sourceMappingURL=documentDataNormalizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documentDataNormalizer.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Libs/documentDataNormalizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAoE7D;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAgB/D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,YAAY,CAatE"}
@@ -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;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"}
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;0CAsKuB,MAAM,KAAG,mBAAmB;wCAj/B9B,MAAM,KAAG,MAAM,EAAE,EAAE;wCA2/BnB,MAAM,KAAG,MAAM;gCAmDvB,MAAM;;;;;+BAz1BP,MAAM,KAAG,OAAO;iCA4Bd,MAAM,KAAG,MAAM;wCA20BR,MAAM,GAAG,IAAI,KAAG,MAAM,GAAG,IAAI;;AAgBxE,wBAUE"}
@@ -9,6 +9,20 @@ export interface MRZFrameInput {
9
9
  * focus-weighted voting beats unweighted.
10
10
  */
11
11
  weight?: number;
12
+ /**
13
+ * Optional OCR confidence for this frame, in [0, 1] — e.g. ML Kit's mean
14
+ * per-symbol confidence over the MRZ characters (Android bundled library only;
15
+ * iOS ML Kit exposes no symbol confidence). When present it MULTIPLIES `weight`,
16
+ * so a frame the recognizer was unsure about contributes proportionally fewer
17
+ * votes than a confident one of the same sharpness. This is the per-frame form
18
+ * of confidence-weighted voting: it can't misalign cells (unlike threading
19
+ * per-column confidence through the column-shifting line reconstruction), yet
20
+ * still lets confident frames dominate look-alike ties (A↔4, S↔5, B↔8).
21
+ *
22
+ * A confidence floor is applied so a single near-zero frame is down-weighted
23
+ * but never fully silenced (it may still hold the only vote for some cell).
24
+ */
25
+ confidence?: number;
12
26
  }
13
27
  export interface MRZConsensus {
14
28
  /** Best consensus MRZ (newline-joined fixed-width lines), or null if none yet. */
@@ -22,6 +36,18 @@ export interface MRZConsensus {
22
36
  * last `stabilityTarget` contributing frames. Callers should advance only then.
23
37
  */
24
38
  stable: boolean;
39
+ /**
40
+ * How many consecutive contributing frames the current (valid) consensus has
41
+ * stayed unchanged. Diagnostic: convergence speed across devices.
42
+ */
43
+ stableStreak: number;
44
+ /**
45
+ * Smallest winning vote margin across all CONTESTED cells of the best format
46
+ * (cells where >1 distinct char was voted). Higher = more confident reading;
47
+ * a low value at acceptance means a look-alike was barely resolved. Infinity
48
+ * when no cell is contested (a perfectly clean read). Diagnostic only.
49
+ */
50
+ minContestedMargin: number;
25
51
  }
26
52
  export interface MRZFrameAggregatorOptions {
27
53
  /**
@@ -89,6 +115,13 @@ export declare class MRZFrameAggregator {
89
115
  * is what turns "looks valid this frame" into "the camera agrees across frames".
90
116
  */
91
117
  private consensusIsConfident;
118
+ /**
119
+ * Smallest winning vote margin across all CONTESTED cells (where >1 distinct
120
+ * char was voted). Returns Infinity when no cell is contested. Used both to
121
+ * gate confidence and to surface a diagnostic of how narrowly a look-alike was
122
+ * resolved at acceptance.
123
+ */
124
+ private minContestedMargin;
92
125
  /** Read out the winning character per cell for a format. */
93
126
  private consensusLines;
94
127
  /** 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;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
+ {"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;IAChB;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AASD,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;IAChB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,kBAAkB,EAAE,MAAM,CAAC;CAC5B;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;IA+C5C,+EAA+E;IAC/E,OAAO,CAAC,KAAK;IAab;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAiB1B,4DAA4D;IAC5D,OAAO,CAAC,cAAc;IA8BtB,2EAA2E;IAC3E,gBAAgB,IAAI,YAAY;CAiEjC;AAED,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { DocumentName } from '../Types/documentReadResult';
2
+ export declare function buildDocumentName(rawFirst: string, rawLast: string, issuingState: string | null | undefined, dg11First?: string | null, dg11Last?: string | null): DocumentName;
3
+ //# sourceMappingURL=mrzTransliteration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mrzTransliteration.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Libs/mrzTransliteration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAyFhE,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACvC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,EACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GACvB,YAAY,CAmCd"}
@@ -1,3 +1,36 @@
1
+ /**
2
+ * Full, non-PII device details for the support diagnostic report. Device-
3
+ * specific scanning/NFC issues correlate with hardware, OS level, memory and
4
+ * NFC capability, so we capture a broad-but-safe set. Excludes anything that
5
+ * identifies a person (uniqueId is a per-install vendor id, not PII, and is kept
6
+ * only for correlating repeat reports from the same device).
7
+ */
8
+ export interface DeviceDetails {
9
+ platform: string;
10
+ systemName: string;
11
+ systemVersion: string;
12
+ apiLevel?: number;
13
+ brand: string;
14
+ manufacturer: string;
15
+ model: string;
16
+ deviceId: string;
17
+ deviceType: string;
18
+ isTablet: boolean;
19
+ isEmulator: boolean;
20
+ hasNotch: boolean;
21
+ totalMemoryMB?: number;
22
+ usedMemoryMB?: number;
23
+ totalDiskMB?: number;
24
+ freeDiskMB?: number;
25
+ batteryLevel?: number;
26
+ appVersion: string;
27
+ buildNumber: string;
28
+ bundleId: string;
29
+ fontScale?: number;
30
+ installerPackage?: string;
31
+ }
32
+ /** Gather the full non-PII device profile for a diagnostic report. */
33
+ export declare const gatherDeviceDetails: () => Promise<DeviceDetails>;
1
34
  export declare const NativeDeviceInfo: {
2
35
  generateHumanReadableIdentifier: () => Promise<string>;
3
36
  };
@@ -1 +1 @@
1
- {"version":3,"file":"native-device-info.utils.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Libs/native-device-info.utils.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,gBAAgB;2CACgB,OAAO,CAAC,MAAM,CAAC;CAe3D,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"native-device-info.utils.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Libs/native-device-info.utils.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AA8BD,sEAAsE;AACtE,eAAO,MAAM,mBAAmB,QAAa,OAAO,CAAC,aAAa,CAqDjE,CAAC;AAEF,eAAO,MAAM,gBAAgB;2CACgB,OAAO,CAAC,MAAM,CAAC;CAe3D,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { type ScanDataForReport } from './diagnosticReport';
2
+ /**
3
+ * Whether diagnostic sharing is available (i.e. `react-native-share` is
4
+ * installed in the host app). The result-screen button hides itself when false.
5
+ */
6
+ export declare const isDiagnosticSharingAvailable: () => boolean;
7
+ export interface DiagnosticImage {
8
+ /** Stable file name without extension, e.g. "mrz-side". */
9
+ name: string;
10
+ base64: string;
11
+ mime: 'jpg' | 'png';
12
+ }
13
+ export interface SendDiagnosticParams {
14
+ scan: ScanDataForReport;
15
+ sdkVersion: string;
16
+ sessionId?: string;
17
+ /** base64 images to attach (MRZ side / front / face / NFC chip face). */
18
+ images?: DiagnosticImage[];
19
+ }
20
+ export interface SendResult {
21
+ shared: boolean;
22
+ /** True when the user dismissed the share sheet (not an error). */
23
+ dismissed?: boolean;
24
+ }
25
+ /**
26
+ * Build the report, stage attachments, and present the share sheet. Returns
27
+ * { shared } — false on error, with `dismissed` set when the user cancelled.
28
+ */
29
+ export declare const sendDiagnosticReport: (params: SendDiagnosticParams) => Promise<SendResult>;
30
+ //# sourceMappingURL=sendDiagnosticReport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sendDiagnosticReport.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Libs/sendDiagnosticReport.ts"],"names":[],"mappings":"AAqBA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,oBAAoB,CAAC;AAyB5B;;;GAGG;AACH,eAAO,MAAM,4BAA4B,QAAO,OAA8B,CAAC;AAE/E,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,KAAK,GAAG,KAAK,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,iBAAiB,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;CAC5B;AAcD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,mEAAmE;IACnE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,oBAAoB,KAC3B,OAAO,CAAC,UAAU,CAsEpB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { IdentificationInfo, ScannedIdentityDocument, LivenessDetection } from '../Types/identificationInfo';
2
+ import type { DocumentName } from '../Types/documentReadResult';
2
3
  /**
3
4
  * Service to upload collected identification data to the backend.
4
5
  * This is used to send data before/during video call so agents can see it.
@@ -11,7 +12,7 @@ export declare class DataUploadService {
11
12
  /**
12
13
  * Submit document data to the backend (same approach as ResultScreen)
13
14
  */
14
- submitDocumentData(identificationId: string, scannedDocument: ScannedIdentityDocument, sessionKey: string): Promise<void>;
15
+ submitDocumentData(identificationId: string, scannedDocument: ScannedIdentityDocument, sessionKey: string, documentName?: DocumentName): Promise<void>;
15
16
  /**
16
17
  * Upload media files (document images, selfies, etc.)
17
18
  */
@@ -19,7 +20,7 @@ export declare class DataUploadService {
19
20
  /**
20
21
  * Upload all collected data (document + media) before video call
21
22
  */
22
- uploadCollectedData(identificationInfo: IdentificationInfo, onProgress?: (progress: number) => void): Promise<boolean>;
23
+ uploadCollectedData(identificationInfo: IdentificationInfo, onProgress?: (progress: number) => void, documentName?: DocumentName): Promise<boolean>;
23
24
  private getGenderEnumType;
24
25
  }
25
26
  //# sourceMappingURL=DataUploadService.d.ts.map
@@ -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;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"}
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;AACrC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAQhE;;;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,EAClB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,IAAI,CAAC;IA2DhB;;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,EACvC,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;IAkGnB,OAAO,CAAC,iBAAiB;CAY1B"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Unified, source-independent document data produced after a scan — whether
3
+ * the data came from an NFC chip read or camera OCR. All fields are normalized
4
+ * to consistent formats regardless of which path produced them.
5
+ */
6
+ export interface DocumentData {
7
+ /**
8
+ * Document type.
9
+ * - `"P"` — passport (TD3)
10
+ * - `"I"` — ID card (TD1 / TD2)
11
+ */
12
+ documentType: 'P' | 'I' | string;
13
+ /** 3-letter ICAO issuing country code, e.g. `"TUR"`, `"DEU"`. */
14
+ issuingCountry: string;
15
+ /** 3-letter ICAO nationality code, e.g. `"TUR"`. */
16
+ nationality: string;
17
+ /** Document serial / number exactly as encoded on the document. */
18
+ documentNumber: string;
19
+ /** National identity number where applicable (e.g. Turkish TC kimlik no). Null if not present. */
20
+ personalNumber: string | null;
21
+ /** Last name — raw MRZ ASCII (OCR-B), e.g. `"OEZTUERK"`. */
22
+ lastName: string;
23
+ /** First name(s) — raw MRZ ASCII (OCR-B), e.g. `"GOEKHAN MEHMET"`. */
24
+ firstName: string;
25
+ /**
26
+ * Sex / gender.
27
+ * - `"M"` — male
28
+ * - `"F"` — female
29
+ * - `"X"` — unspecified / non-binary
30
+ * - `"U"` — unknown (not encoded on document)
31
+ */
32
+ sex: 'M' | 'F' | 'X' | 'U';
33
+ /**
34
+ * Date of birth in `YYYY-MM-DD` format, e.g. `"1985-01-15"`.
35
+ * Null if the document does not encode it.
36
+ */
37
+ dateOfBirth: string | null;
38
+ /**
39
+ * Document expiry date in `YYYY-MM-DD` format, e.g. `"2030-12-31"`.
40
+ * Null if the document does not encode it.
41
+ */
42
+ dateOfExpiry: string | null;
43
+ }
44
+ //# sourceMappingURL=documentData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documentData.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Types/documentData.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,YAAY,EAAE,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC;IAEjC,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAC;IAEvB,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IAEpB,mEAAmE;IACnE,cAAc,EAAE,MAAM,CAAC;IAEvB,kGAAkG;IAClG,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IAEjB,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;IAElB;;;;;;OAMG;IACH,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAE3B;;;OAGG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;OAGG;IACH,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B"}
@@ -0,0 +1,44 @@
1
+ import type { DocumentData } from './documentData';
2
+ /**
3
+ * How the display name was derived from the raw MRZ ASCII name.
4
+ *
5
+ * - `dg11` — read from the chip's DG11 supplemental data file (exact printed name)
6
+ * - `reverse_table` — reconstructed via country-aware ICAO 9303 reverse transliteration table
7
+ * - `raw` — no conversion applied; display equals the raw MRZ value
8
+ */
9
+ export type DocumentNameSource = 'dg11' | 'reverse_table' | 'raw';
10
+ export interface DocumentName {
11
+ /** First name exactly as stored in the MRZ (ASCII, OCR-B, e.g. "GOEKHAN"). */
12
+ rawFirst: string;
13
+ /** Last name exactly as stored in the MRZ (ASCII, OCR-B, e.g. "OEZTUERK"). */
14
+ rawLast: string;
15
+ /** First name in best available Unicode form (e.g. "GÖKHAN"). */
16
+ displayFirst: string;
17
+ /** Last name in best available Unicode form (e.g. "ÖZTÜRK"). */
18
+ displayLast: string;
19
+ /** How displayFirst / displayLast were derived. */
20
+ source: DocumentNameSource;
21
+ }
22
+ export interface DocumentFaceImage {
23
+ /** Base64-encoded image data (no data-URI prefix). */
24
+ data: string;
25
+ /** MIME type, e.g. "image/jpeg" or "image/png". */
26
+ mimeType: string;
27
+ }
28
+ export interface DocumentReadResult {
29
+ /** Normalized document data — consistent shape regardless of NFC or OCR source. */
30
+ document: DocumentData;
31
+ /**
32
+ * Name in both raw MRZ ASCII form and best-available Unicode display form.
33
+ * rawFirst / rawLast mirror document.firstName / document.lastName.
34
+ * displayFirst / displayLast are the Unicode-converted equivalents.
35
+ */
36
+ name: DocumentName;
37
+ /**
38
+ * Face image — from the chip's DG2 file on the NFC path, or extracted from
39
+ * the document photo on the camera OCR path. Optional: only present when a
40
+ * face image was successfully obtained.
41
+ */
42
+ face?: DocumentFaceImage;
43
+ }
44
+ //# sourceMappingURL=documentReadResult.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documentReadResult.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Types/documentReadResult.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,eAAe,GAAG,KAAK,CAAC;AAElE,MAAM,WAAW,YAAY;IAC3B,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,YAAY,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,mFAAmF;IACnF,QAAQ,EAAE,YAAY,CAAC;IACvB;;;;OAIG;IACH,IAAI,EAAE,YAAY,CAAC;IACnB;;;;OAIG;IACH,IAAI,CAAC,EAAE,iBAAiB,CAAC;CAC1B"}
@@ -2,7 +2,7 @@
2
2
  * MRZ Field Names - ICAO 9303 Standard Machine Readable Zone Fields
3
3
  * Local type definitions to replace dependency on 'mrz' package
4
4
  */
5
- export type MRZFieldName = 'documentCode' | 'issuingState' | 'documentNumber' | 'documentNumberCheckDigit' | 'nationality' | 'lastName' | 'firstName' | 'sex' | 'birthDate' | 'birthDateCheckDigit' | 'expirationDate' | 'expirationDateCheckDigit' | 'personalNumber' | 'personalNumberCheckDigit' | 'compositeCheckDigit' | 'optional1' | 'optional2';
5
+ export type MRZFieldName = 'documentCode' | 'issuingState' | 'documentNumber' | 'nationality' | 'lastName' | 'firstName' | 'sex' | 'birthDate' | 'expirationDate' | 'personalNumber' | 'optional1' | 'optional2';
6
6
  /**
7
7
  * MRZ Fields - Parsed data from Machine Readable Zone
8
8
  * Compatible with native module output
@@ -1 +1 @@
1
- {"version":3,"file":"mrzFields.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Types/mrzFields.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,YAAY,GACpB,cAAc,GACd,cAAc,GACd,gBAAgB,GAChB,0BAA0B,GAC1B,aAAa,GACb,UAAU,GACV,WAAW,GACX,KAAK,GACL,WAAW,GACX,qBAAqB,GACrB,gBAAgB,GAChB,0BAA0B,GAC1B,gBAAgB,GAChB,0BAA0B,GAC1B,qBAAqB,GACrB,WAAW,GACX,WAAW,CAAC;AAEhB;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"mrzFields.d.ts","sourceRoot":"","sources":["../../../../../src/Shared/Types/mrzFields.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,YAAY,GACpB,cAAc,GACd,cAAc,GACd,gBAAgB,GAChB,aAAa,GACb,UAAU,GACV,WAAW,GACX,KAAK,GACL,WAAW,GACX,gBAAgB,GAChB,gBAAgB,GAChB,WAAW,GACX,WAAW,CAAC;AAEhB;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC"}
@@ -43,6 +43,11 @@ declare const _default: {
43
43
  'resultScreen.demoVerbalConsentTitle': string;
44
44
  'resultScreen.demoVerbalConsentText': string;
45
45
  'resultScreen.demoStartOver': string;
46
+ 'diagnosticReport.button': string;
47
+ 'diagnosticReport.noticeTitle': string;
48
+ 'diagnosticReport.noticeBody': string;
49
+ 'diagnosticReport.continue': string;
50
+ 'diagnosticReport.cancel': string;
46
51
  'livenessDetectionScreen.guideHeader': string;
47
52
  'livenessDetectionScreen.guideText': string;
48
53
  'livenessDetectionScreen.guidePoint1': string;
@@ -1 +1 @@
1
- {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../../../src/Translation/Resources/en.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBA0PE"}
1
+ {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../../../src/Translation/Resources/en.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBAgQE"}
@@ -43,6 +43,11 @@ declare const _default: {
43
43
  'resultScreen.demoVerbalConsentTitle': string;
44
44
  'resultScreen.demoVerbalConsentText': string;
45
45
  'resultScreen.demoStartOver': string;
46
+ 'diagnosticReport.button': string;
47
+ 'diagnosticReport.noticeTitle': string;
48
+ 'diagnosticReport.noticeBody': string;
49
+ 'diagnosticReport.continue': string;
50
+ 'diagnosticReport.cancel': string;
46
51
  'livenessDetectionScreen.guideHeader': string;
47
52
  'livenessDetectionScreen.guideText': string;
48
53
  'livenessDetectionScreen.guidePoint1': string;
@@ -1 +1 @@
1
- {"version":3,"file":"tr.d.ts","sourceRoot":"","sources":["../../../../../src/Translation/Resources/tr.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBA6PE"}
1
+ {"version":3,"file":"tr.d.ts","sourceRoot":"","sources":["../../../../../src/Translation/Resources/tr.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBAmQE"}
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import 'react-native-get-random-values';
3
+ import type { DocumentReadResult } from './Shared/Types/documentReadResult';
3
4
  interface TrustchexBranding {
4
5
  logoUrl?: string;
5
6
  primaryColor: string;
@@ -13,6 +14,14 @@ interface TrustchexProps {
13
14
  locale?: 'en' | 'tr';
14
15
  onCompleted?: () => void;
15
16
  onError?: (error: string) => void;
17
+ /**
18
+ * Called as soon as document data is available — immediately after a
19
+ * successful NFC chip read (before the user taps "Approve and Continue")
20
+ * or after a successful camera OCR scan. Receives MRZ fields (raw,
21
+ * untouched ASCII), a name object with both raw and best-available Unicode
22
+ * display form, and optionally the face image.
23
+ */
24
+ onDocumentRead?: (result: DocumentReadResult) => void;
16
25
  enableAnalytics?: boolean;
17
26
  debug?: boolean;
18
27
  logLevel?: 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'silent';
@@ -1 +1 @@
1
- {"version":3,"file":"Trustchex.d.ts","sourceRoot":"","sources":["../../../src/Trustchex.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAKpE,OAAO,gCAAgC,CAAC;AAgCxC,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,CAgOvC,CAAC;AAWF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"Trustchex.d.ts","sourceRoot":"","sources":["../../../src/Trustchex.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AAKf,OAAO,gCAAgC,CAAC;AAmBxC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAc5E,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;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACtD,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,CA8PvC,CAAC;AAWF,eAAe,SAAS,CAAC"}
@@ -8,5 +8,7 @@ export type { AnalyticsConfig, AnalyticsEvent, ErrorSeverity, ErrorContext, Erro
8
8
  export { default as mrzUtils } from './Shared/Libs/mrz.utils';
9
9
  export type { MRZFormat, MRZValidationResult } from './Shared/Libs/mrz.utils';
10
10
  export type { MRZFields, MRZFieldName } from './Shared/Types/mrzFields';
11
+ export type { DocumentData } from './Shared/Types/documentData';
12
+ export type { DocumentReadResult, DocumentName, DocumentNameSource, DocumentFaceImage, } from './Shared/Types/documentReadResult';
11
13
  export default Trustchex;
12
14
  //# 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;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
+ {"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;AACxE,YAAY,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,YAAY,EACV,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,mCAAmC,CAAC;AAE3C,eAAe,SAAS,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const SDK_VERSION = "1.478.7";
1
+ export declare const SDK_VERSION = "1.483.4";
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.478.7",
3
+ "version": "1.483.4",
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",
@@ -169,6 +169,7 @@
169
169
  "react-native-nfc-manager": ">=3.16.2",
170
170
  "react-native-safe-area-context": ">=5.5.2",
171
171
  "react-native-screens": ">=4.18.0",
172
+ "react-native-share": ">=12.0.0",
172
173
  "react-native-sse": ">=1.1.0",
173
174
  "react-native-svg": ">=15.12.0",
174
175
  "react-native-tts": ">=4.1.1",
@@ -216,6 +217,9 @@
216
217
  "react-native-screens": {
217
218
  "optional": false
218
219
  },
220
+ "react-native-share": {
221
+ "optional": true
222
+ },
219
223
  "react-native-sse": {
220
224
  "optional": false
221
225
  },
@@ -96,10 +96,6 @@ const IdentityDocumentEIDScanningScreen = () => {
96
96
  );
97
97
  }, [appContext.currentWorkflowStep]);
98
98
 
99
- if (!appContext.currentWorkflowStep) {
100
- return null;
101
- }
102
-
103
99
  return (
104
100
  <SafeAreaView style={styles.safeAreaContainer}>
105
101
  {documentNumber && dateOfBirth && dateOfExpiry ? (