@trustchex/react-native-sdk 1.495.10 → 1.495.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/build.gradle +10 -0
- package/android/libs/jj2000-5.2.jar +0 -0
- package/android/src/main/java/com/trustchex/reactnativesdk/ImageDecoderModule.kt +88 -0
- package/android/src/main/java/com/trustchex/reactnativesdk/Jp2PgxDecoder.kt +135 -0
- package/android/src/main/java/com/trustchex/reactnativesdk/TrustchexSDKPackage.kt +12 -0
- package/android/src/test/java/com/trustchex/reactnativesdk/Jp2PgxDecoderTest.kt +143 -0
- package/android/src/test/resources/jp2/gray.jp2 +0 -0
- package/android/src/test/resources/jp2/solid_color.j2k +0 -0
- package/android/src/test/resources/jp2/solid_color.jp2 +0 -0
- package/lib/module/Shared/Components/EIDScanner.js +8 -5
- package/lib/module/Shared/Components/IdentityDocumentCamera.flows.js +19 -16
- package/lib/module/Shared/Components/IdentityDocumentCamera.js +43 -4
- package/lib/module/Shared/Components/IdentityDocumentCamera.utils.js +22 -0
- package/lib/module/Shared/EIDReader/eidReader.js +11 -9
- package/lib/module/Shared/Libs/jp2Decode.js +12 -11
- package/lib/module/Shared/Services/DataUploadService.js +16 -4
- package/lib/module/version.js +1 -1
- package/lib/typescript/src/Shared/Components/EIDScanner.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.flows.d.ts +1 -1
- package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.flows.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.types.d.ts +21 -0
- package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.types.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.utils.d.ts +15 -0
- package/lib/typescript/src/Shared/Components/IdentityDocumentCamera.utils.d.ts.map +1 -1
- package/lib/typescript/src/Shared/EIDReader/eidReader.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Libs/jp2Decode.d.ts +4 -3
- package/lib/typescript/src/Shared/Libs/jp2Decode.d.ts.map +1 -1
- package/lib/typescript/src/Shared/Services/DataUploadService.d.ts.map +1 -1
- package/lib/typescript/src/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/Shared/Components/EIDScanner.tsx +7 -5
- package/src/Shared/Components/IdentityDocumentCamera.flows.ts +29 -18
- package/src/Shared/Components/IdentityDocumentCamera.tsx +48 -3
- package/src/Shared/Components/IdentityDocumentCamera.types.ts +21 -0
- package/src/Shared/Components/IdentityDocumentCamera.utils.ts +24 -0
- package/src/Shared/EIDReader/eidReader.ts +11 -9
- package/src/Shared/Libs/jp2Decode.ts +15 -11
- package/src/Shared/Services/DataUploadService.ts +41 -8
- package/src/version.ts +1 -1
|
@@ -65,9 +65,12 @@ export class DataUploadService {
|
|
|
65
65
|
type: mrzFields.documentCode,
|
|
66
66
|
name: mrzFields.firstName,
|
|
67
67
|
surname: mrzFields.lastName,
|
|
68
|
-
displayName:
|
|
69
|
-
|
|
70
|
-
|
|
68
|
+
displayName:
|
|
69
|
+
documentName?.source === 'dg11' ? documentName.displayFirst : undefined,
|
|
70
|
+
displaySurname:
|
|
71
|
+
documentName?.source === 'dg11' ? documentName.displayLast : undefined,
|
|
72
|
+
nameSource:
|
|
73
|
+
documentName?.source === 'dg11' ? documentName.source : undefined,
|
|
71
74
|
gender: this.getGenderEnumType(mrzFields.sex),
|
|
72
75
|
number: mrzFields.documentNumber,
|
|
73
76
|
country: mrzFields.issuingState,
|
|
@@ -137,7 +140,11 @@ export class DataUploadService {
|
|
|
137
140
|
// or not.
|
|
138
141
|
const tempPaths: string[] = [];
|
|
139
142
|
|
|
140
|
-
const writeTempImage = async (
|
|
143
|
+
const writeTempImage = async (
|
|
144
|
+
fileName: string,
|
|
145
|
+
base64Data: string,
|
|
146
|
+
mimeType: string = 'image/jpeg'
|
|
147
|
+
) => {
|
|
141
148
|
const filePath = decodeURIComponent(
|
|
142
149
|
`${RNFS.TemporaryDirectoryPath}/${fileName}`
|
|
143
150
|
);
|
|
@@ -147,11 +154,25 @@ export class DataUploadService {
|
|
|
147
154
|
name: 'files',
|
|
148
155
|
filename: fileName,
|
|
149
156
|
filepath: filePath,
|
|
150
|
-
filetype
|
|
157
|
+
// The filename extension AND this filetype must reflect the REAL format.
|
|
158
|
+
// The backend keys its jp2→jpeg conversion off the .jp2 extension, so a
|
|
159
|
+
// raw JP2 mislabeled as .jpg/image/jpeg reaches face-verification as a
|
|
160
|
+
// corrupt JPEG and is rejected. Pass the actual mimeType for anything
|
|
161
|
+
// that isn't already JPEG (the chip portrait can be jp2/png).
|
|
162
|
+
filetype: mimeType,
|
|
151
163
|
});
|
|
152
164
|
return filePath;
|
|
153
165
|
};
|
|
154
166
|
|
|
167
|
+
// Pick a file extension that matches the image's real mime type so the
|
|
168
|
+
// backend handles it correctly (it converts .jp2 → jpeg on receipt).
|
|
169
|
+
const extensionForMime = (mimeType?: string) =>
|
|
170
|
+
mimeType === 'image/jp2'
|
|
171
|
+
? 'jp2'
|
|
172
|
+
: mimeType === 'image/png'
|
|
173
|
+
? 'png'
|
|
174
|
+
: 'jpg';
|
|
175
|
+
|
|
155
176
|
try {
|
|
156
177
|
// Add document front image
|
|
157
178
|
const frontImage = scannedDocument?.frontImage;
|
|
@@ -165,10 +186,17 @@ export class DataUploadService {
|
|
|
165
186
|
await writeTempImage('DOCUMENT_BACK_IMAGE.jpg', backImage);
|
|
166
187
|
}
|
|
167
188
|
|
|
168
|
-
// Add face image from document
|
|
189
|
+
// Add face image from document. The NFC chip portrait (DG2) can be JPEG,
|
|
190
|
+
// PNG (JS-decoded), or — when native JP2 decode was unavailable — raw JP2,
|
|
191
|
+
// so the extension/filetype must track the real mime type, not assume JPEG.
|
|
169
192
|
const faceImage = scannedDocument?.faceImage;
|
|
170
193
|
if (faceImage && faceImage !== '') {
|
|
171
|
-
|
|
194
|
+
const faceMime = scannedDocument?.faceImageMimeType || 'image/jpeg';
|
|
195
|
+
await writeTempImage(
|
|
196
|
+
`FACE_IMAGE.${extensionForMime(faceMime)}`,
|
|
197
|
+
faceImage,
|
|
198
|
+
faceMime
|
|
199
|
+
);
|
|
172
200
|
}
|
|
173
201
|
|
|
174
202
|
// Add secondary face image from document (optional)
|
|
@@ -335,7 +363,12 @@ export class DataUploadService {
|
|
|
335
363
|
if (scannedDocument) {
|
|
336
364
|
onProgress?.(0.1);
|
|
337
365
|
await runWithRetry(() =>
|
|
338
|
-
this.submitDocumentData(
|
|
366
|
+
this.submitDocumentData(
|
|
367
|
+
identificationId,
|
|
368
|
+
scannedDocument,
|
|
369
|
+
authToken,
|
|
370
|
+
documentName
|
|
371
|
+
)
|
|
339
372
|
);
|
|
340
373
|
onProgress?.(0.3);
|
|
341
374
|
}
|
package/src/version.ts
CHANGED