Skip to content

Commit bf9a0b0

Browse files
committed
Update types
1 parent fb3a95f commit bf9a0b0

5 files changed

Lines changed: 37 additions & 33 deletions

File tree

example/src/App.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@ export default function App() {
3232
</View>
3333
<View style={styles.row}>
3434
<Text style={styles.label}>ID Number: </Text>
35-
<Text style={styles.text}>{mrzResults.idNumber}</Text>
35+
<Text style={styles.text}>{mrzResults.passportNumber}</Text>
3636
</View>
3737
<View style={styles.row}>
3838
<Text style={styles.label}>Doc Expiration: </Text>
39-
<Text style={styles.text}>{mrzResults.docExpirationDate}</Text>
39+
<Text style={styles.text}>{mrzResults.expiryDate}</Text>
4040
</View>
4141
<View style={styles.row}>
4242
<Text style={styles.label}>Last Name: </Text>
@@ -52,7 +52,7 @@ export default function App() {
5252
</View>
5353
<View style={styles.row}>
5454
<Text style={styles.label}>Date Of Birth: </Text>
55-
<Text style={styles.text}>{mrzResults.dob}</Text>
55+
<Text style={styles.text}>{mrzResults.birthDate}</Text>
5656
</View>
5757
</View>
5858
<Button

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@op-engineering/op-ocr",
3-
"version": "1.0.0",
3+
"version": "1.0.1",
44
"description": "VisionCamera Frame Processor Plugin to detect and read MRZ data from passports using MLKit Text Recognition.",
55
"main": "./lib/module/index.js",
66
"types": "./lib/typescript/index.d.ts",

src/components/MRZScanner.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,15 @@ const MRZScanner: FC<PropsWithChildren<MRZScannerProps>> = ({
5050
return true;
5151
}
5252

53-
if (mrzResults.idNumber && idList.length < numQAChecks) {
54-
mrzQACheck(idList, mrzResults.idNumber);
53+
if (mrzResults.passportNumber && idList.length < numQAChecks) {
54+
mrzQACheck(idList, mrzResults.passportNumber);
5555
}
5656

57-
if (mrzResults.dob && dobList.length < numQAChecks) {
58-
mrzQACheck(dobList, mrzResults.dob);
57+
if (mrzResults.birthDate && dobList.length < numQAChecks) {
58+
mrzQACheck(dobList, mrzResults.birthDate);
5959
}
60-
if (mrzResults.docExpirationDate && expiryList.length < numQAChecks) {
61-
mrzQACheck(expiryList, mrzResults.docExpirationDate);
60+
if (mrzResults.expiryDate && expiryList.length < numQAChecks) {
61+
mrzQACheck(expiryList, mrzResults.expiryDate);
6262
}
6363

6464
return false;

src/types/mrzProperties.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ export type MRZProperties = {
3636
issuingCountry?: string;
3737
givenNames?: string;
3838
lastNames?: string;
39-
idNumber?: string;
39+
passportNumber?: string;
4040
nationality?: string;
41-
dob?: string;
41+
birthDate?: string;
4242
gender?: string;
43-
docExpirationDate?: string;
43+
expiryDate?: string;
4444
additionalInformation?: string;
4545
};

src/util/mrzParser.ts

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
// logging import and setup
2+
import type { MRZProperties } from '../types/mrzProperties';
23
import { ListItemData } from '../constants/listItemData';
34

45
const countryIsoJson = require('../constants/CountryIsoCodes.json');
@@ -40,7 +41,7 @@ export const checkSum = (text: string) => {
4041
return value;
4142
};
4243

43-
export const parseMRZ = (initialLines: string[]) => {
44+
export const parseMRZ = (initialLines: string[]): MRZProperties | undefined => {
4445
let lines: string[] = [];
4546

4647
let secondLine = initialLines[initialLines.length - 1];
@@ -96,6 +97,7 @@ export const parseMRZ = (initialLines: string[]) => {
9697
}
9798
}
9899
} // end (lines.length >= 3)
100+
99101
return undefined;
100102
};
101103

@@ -113,16 +115,19 @@ export const parseMRZ = (initialLines: string[]) => {
113115
* idNumber: idNumber,
114116
* nationality
115117
*/
116-
const parse2LineMRZ = (firstRow: string, secondRow: string) => {
118+
const parse2LineMRZ = (
119+
firstRow: string,
120+
secondRow: string
121+
): MRZProperties | undefined => {
117122
let docType = extractDocType(firstRow);
118123
let namesFromLine: { givenNames: string[]; lastNames: string[] } =
119124
extractNamesFromLine(5, firstRow);
120125
let givenNames: string[] = namesFromLine.givenNames;
121126
let lastNames: string[] = namesFromLine.lastNames;
122127

123128
// Extract idNumber
124-
let idNumber = extractIdNumber(secondRow, 0, 9);
125-
if (!idNumber) {
129+
let passportNumber = extractIdNumber(secondRow, 0, 9);
130+
if (!passportNumber) {
126131
return undefined;
127132
}
128133

@@ -133,28 +138,27 @@ const parse2LineMRZ = (firstRow: string, secondRow: string) => {
133138
let nationality = extractCountry(secondRow, 10, 13);
134139

135140
// extract dateOfBirth
136-
let dob = extractDateOfBirthFromLine(13, secondRow);
141+
let birthDate = extractDateOfBirthFromLine(13, secondRow);
137142

138143
// Extract gender
139144
// let gender = extractGender(secondRow.charAt(20), issuingCountry, docType);
140145
let gender = extractGender(secondRow.charAt(20));
141146
// let gender = secondRow.charAt(20);
142147

143148
// Extract expiration date then assign the YYYY-MM-DD string format to docExpirationDate
144-
let docExpirationDate = extractDateOfExpirationFromLine(21, secondRow);
149+
let expiryDate = extractDateOfExpirationFromLine(21, secondRow);
145150

146151
return {
147152
docMRZ: `${firstRow}\n${secondRow}`,
148153
docType: docType,
149154
issuingCountry: issuingCountry,
150155
givenNames: givenNames.join(' ').trim(),
151156
lastNames: lastNames.join(' ').trim(),
152-
idNumber: idNumber,
157+
passportNumber,
153158
nationality: nationality,
154-
dob: dob,
155-
gender: gender,
156-
docExpirationDate: docExpirationDate,
157-
additionalInformation: undefined, // TODO remove? (The logic for extracting additional information was deleted since we're not using it)
159+
birthDate,
160+
gender,
161+
expiryDate,
158162
};
159163
};
160164

@@ -182,29 +186,29 @@ const parse3LineMRZ = (
182186
firstRow: string,
183187
secondRow: string,
184188
thirdRow: string
185-
) => {
189+
): MRZProperties | undefined => {
186190
let docType = extractDocType(firstRow);
187191
let namesFromLine: { givenNames: string[]; lastNames: string[] } =
188192
extractNamesFromLine(0, thirdRow);
189193
let givenNames: string[] = namesFromLine.givenNames;
190194
let lastNames: string[] = namesFromLine.lastNames;
191195

192196
// Extract idNumber
193-
let idNumber = extractIdNumber(firstRow, 5, 14);
194-
if (!idNumber) {
197+
let passportNumber = extractIdNumber(firstRow, 5, 14);
198+
if (!passportNumber) {
195199
return undefined;
196200
}
197201
// Extract issuingCountry
198202
let issuingCountry = extractCountry(firstRow, 2, 5);
199203
// Extract nationality
200204
let nationality = extractCountry(secondRow, 15, 18);
201205
// Extract date of birth
202-
let dob = extractDateOfBirthFromLine(0, secondRow);
206+
let birthDate = extractDateOfBirthFromLine(0, secondRow);
203207
// Extract gender
204208
let gender = extractGender(secondRow.charAt(7));
205209

206210
// Extract expiration date then store that date as a string in docExpirationDate
207-
let docExpirationDate = extractDateOfExpirationFromLine(8, secondRow);
211+
let expiryDate = extractDateOfExpirationFromLine(8, secondRow);
208212
// extract additional information from first and second row
209213
let additionalInformation = '';
210214
additionalInformation =
@@ -220,11 +224,11 @@ const parse3LineMRZ = (
220224
issuingCountry: issuingCountry,
221225
givenNames: givenNames.join(' ').trim(),
222226
lastNames: lastNames.join(' ').trim(),
223-
idNumber: idNumber,
227+
passportNumber,
224228
nationality: nationality,
225-
dob: dob,
226-
gender: gender,
227-
docExpirationDate: docExpirationDate,
229+
birthDate,
230+
gender,
231+
expiryDate,
228232
additionalInformation: additionalInformation,
229233
};
230234
};

0 commit comments

Comments
 (0)