@mleonard9/vin-scanner 1.2.5 → 1.3.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.
- package/README.md +169 -15
- package/android/src/main/java/com/visioncamerabarcodescanner/VisionCameraBarcodeScannerModule.kt +50 -6
- package/android/src/main/java/com/visioncameratextrecognition/VisionCameraTextRecognitionModule.kt +69 -26
- package/ios/VisionCameraBarcodeScanner.m +60 -6
- package/ios/VisionCameraTextRecognition.m +67 -13
- package/lib/commonjs/VinScannerOverlay.js +60 -0
- package/lib/commonjs/VinScannerOverlay.js.map +1 -0
- package/lib/commonjs/index.js +17 -7
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/scanBarcodes.js +14 -3
- package/lib/commonjs/scanBarcodes.js.map +1 -1
- package/lib/commonjs/scanText.js +14 -3
- package/lib/commonjs/scanText.js.map +1 -1
- package/lib/commonjs/useVinScanner.js +45 -31
- package/lib/commonjs/useVinScanner.js.map +1 -1
- package/lib/commonjs/vinUtils.js +148 -32
- package/lib/commonjs/vinUtils.js.map +1 -1
- package/lib/module/VinScannerOverlay.js +53 -0
- package/lib/module/VinScannerOverlay.js.map +1 -0
- package/lib/module/index.js +11 -7
- package/lib/module/index.js.map +1 -1
- package/lib/module/scanBarcodes.js +14 -3
- package/lib/module/scanBarcodes.js.map +1 -1
- package/lib/module/scanText.js +14 -3
- package/lib/module/scanText.js.map +1 -1
- package/lib/module/useVinScanner.js +45 -31
- package/lib/module/useVinScanner.js.map +1 -1
- package/lib/module/vinUtils.js +148 -32
- package/lib/module/vinUtils.js.map +1 -1
- package/lib/typescript/src/VinScannerOverlay.d.ts +14 -0
- package/lib/typescript/src/VinScannerOverlay.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +2 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/scanBarcodes.d.ts.map +1 -1
- package/lib/typescript/src/scanText.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +97 -7
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/useVinScanner.d.ts.map +1 -1
- package/lib/typescript/src/vinUtils.d.ts +6 -2
- package/lib/typescript/src/vinUtils.d.ts.map +1 -1
- package/package.json +4 -2
- package/src/VinScannerOverlay.tsx +55 -0
- package/src/index.tsx +14 -8
- package/src/scanBarcodes.ts +16 -4
- package/src/scanText.ts +16 -4
- package/src/types.ts +101 -11
- package/src/useVinScanner.ts +46 -33
- package/src/vinUtils.ts +191 -72
|
@@ -8,6 +8,8 @@ export function useVinScanner(options) {
|
|
|
8
8
|
const resolvedOptions = useMemo(() => resolveOptions(options), [options]);
|
|
9
9
|
const lastFrameTimestampRef = useRef(0);
|
|
10
10
|
const frameCounterRef = useRef(0);
|
|
11
|
+
const lastEmittedVin = useRef(null);
|
|
12
|
+
const lastEmitTimestamp = useRef(0);
|
|
11
13
|
const barcodeScanner = useMemo(() => {
|
|
12
14
|
if (!resolvedOptions.barcode.enabled) {
|
|
13
15
|
return null;
|
|
@@ -20,9 +22,6 @@ export function useVinScanner(options) {
|
|
|
20
22
|
}
|
|
21
23
|
return createTextRecognitionPlugin({
|
|
22
24
|
language: resolvedOptions.text.language,
|
|
23
|
-
// We can use a broad validation pattern here to help the native side
|
|
24
|
-
// filter obvious non-VIN text, improving bridge performance.
|
|
25
|
-
// VINs are 17 chars alphanumeric.
|
|
26
25
|
validationPattern: '[A-HJ-NPR-Z0-9]{10,}'
|
|
27
26
|
});
|
|
28
27
|
}, [resolvedOptions.text]);
|
|
@@ -44,55 +43,70 @@ export function useVinScanner(options) {
|
|
|
44
43
|
lastFrameTimestampRef.current = now;
|
|
45
44
|
}
|
|
46
45
|
const orientationOverride = resolvedOptions.detection.forceOrientation ?? null;
|
|
47
|
-
const
|
|
48
|
-
|
|
46
|
+
const regionOverride = resolvedOptions.detection.scanRegion ?? null;
|
|
47
|
+
const barcodeArgs = orientationOverride || regionOverride ? {
|
|
48
|
+
...(orientationOverride && {
|
|
49
|
+
orientation: orientationOverride
|
|
50
|
+
}),
|
|
51
|
+
...(regionOverride && {
|
|
52
|
+
scanRegion: regionOverride
|
|
53
|
+
})
|
|
49
54
|
} : undefined;
|
|
50
|
-
const barcodes = barcodeScanner ? barcodeScanner.scanBarcodes(frame, barcodeArgs) : [];
|
|
51
55
|
|
|
52
|
-
//
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
hasBarcodeVin = true;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
const textArgs = orientationOverride ? {
|
|
67
|
-
orientation: orientationOverride
|
|
56
|
+
// Start performance tracking
|
|
57
|
+
const t0 = Date.now();
|
|
58
|
+
const barcodes = barcodeScanner ? barcodeScanner.scanBarcodes(frame, barcodeArgs) : [];
|
|
59
|
+
const t1 = Date.now();
|
|
60
|
+
const textArgs = orientationOverride || regionOverride ? {
|
|
61
|
+
...(orientationOverride && {
|
|
62
|
+
orientation: orientationOverride
|
|
63
|
+
}),
|
|
64
|
+
...(regionOverride && {
|
|
65
|
+
scanRegion: regionOverride
|
|
66
|
+
})
|
|
68
67
|
} : undefined;
|
|
69
68
|
frameCounterRef.current += 1;
|
|
70
69
|
const frameIndex = frameCounterRef.current;
|
|
71
70
|
const textScanInterval = resolvedOptions.detection.textScanInterval;
|
|
72
|
-
const shouldRunText =
|
|
73
|
-
// Skip if we already have a VIN from barcode
|
|
74
|
-
textScanner && (textScanInterval <= 1 || frameIndex % textScanInterval === 0);
|
|
71
|
+
const shouldRunText = textScanner && (textScanInterval <= 1 || frameIndex % textScanInterval === 0);
|
|
75
72
|
const textBlocks = shouldRunText && textScanner ? textScanner.scanText(frame, textArgs) : [];
|
|
73
|
+
const t2 = Date.now();
|
|
76
74
|
const payload = {
|
|
77
75
|
barcodes: barcodes ?? [],
|
|
78
76
|
textBlocks: textBlocks ?? [],
|
|
79
77
|
timestamp: now
|
|
80
78
|
};
|
|
81
79
|
const candidates = buildVinCandidates(payload, resolvedOptions);
|
|
82
|
-
const
|
|
83
|
-
const
|
|
84
|
-
const
|
|
80
|
+
const firstCandidate = pickFirstCandidate(candidates, resolvedOptions);
|
|
81
|
+
const t3 = Date.now();
|
|
82
|
+
const duration = Date.now() - now;
|
|
85
83
|
const event = {
|
|
86
|
-
mode,
|
|
87
84
|
timestamp: payload.timestamp,
|
|
85
|
+
duration,
|
|
88
86
|
candidates,
|
|
89
|
-
|
|
87
|
+
firstCandidate,
|
|
90
88
|
raw: {
|
|
91
89
|
barcodes: payload.barcodes,
|
|
92
90
|
textBlocks: payload.textBlocks
|
|
91
|
+
},
|
|
92
|
+
performance: {
|
|
93
|
+
barcodeMs: t1 - t0,
|
|
94
|
+
textMs: t2 - t1,
|
|
95
|
+
validationMs: t3 - t2,
|
|
96
|
+
totalMs: t3 - t0
|
|
93
97
|
}
|
|
94
98
|
};
|
|
95
|
-
|
|
99
|
+
|
|
100
|
+
// Smart duplicate filtering with time-based debouncing
|
|
101
|
+
if (firstCandidate) {
|
|
102
|
+
const debounceMs = resolvedOptions.duplicateDebounceMs ?? 1500;
|
|
103
|
+
const isDuplicate = firstCandidate.value === lastEmittedVin.current && now - lastEmitTimestamp.current < debounceMs;
|
|
104
|
+
if (!isDuplicate) {
|
|
105
|
+
lastEmittedVin.current = firstCandidate.value;
|
|
106
|
+
lastEmitTimestamp.current = now;
|
|
107
|
+
emitResult(candidates, event);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
96
110
|
}, [barcodeScanner, textScanner, emitResult, resolvedOptions]);
|
|
97
111
|
return {
|
|
98
112
|
frameProcessor
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","useRef","useFrameProcessor","useRunOnJS","createBarcodeScannerPlugin","createTextRecognitionPlugin","buildVinCandidates","pickFirstCandidate","resolveOptions","useVinScanner","options","resolvedOptions","lastFrameTimestampRef","frameCounterRef","barcodeScanner","barcode","enabled","formats","textScanner","text","language","validationPattern","emitResult","result","event","onResult","frameProcessor","frame","now","timestamp","Date","maxFps","detection","maxFrameRate","minInterval","current","orientationOverride","forceOrientation","
|
|
1
|
+
{"version":3,"names":["useMemo","useRef","useFrameProcessor","useRunOnJS","createBarcodeScannerPlugin","createTextRecognitionPlugin","buildVinCandidates","pickFirstCandidate","resolveOptions","useVinScanner","options","resolvedOptions","lastFrameTimestampRef","frameCounterRef","lastEmittedVin","lastEmitTimestamp","barcodeScanner","barcode","enabled","formats","textScanner","text","language","validationPattern","emitResult","result","event","onResult","frameProcessor","frame","now","timestamp","Date","maxFps","detection","maxFrameRate","minInterval","current","orientationOverride","forceOrientation","regionOverride","scanRegion","barcodeArgs","orientation","undefined","t0","barcodes","scanBarcodes","t1","textArgs","frameIndex","textScanInterval","shouldRunText","textBlocks","scanText","t2","payload","candidates","firstCandidate","t3","duration","raw","performance","barcodeMs","textMs","validationMs","totalMs","debounceMs","duplicateDebounceMs","isDuplicate","value"],"sourceRoot":"../../src","sources":["useVinScanner.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/vinUtils.js
CHANGED
|
@@ -25,18 +25,30 @@ const DEFAULT_RESOLVED_OPTIONS = {
|
|
|
25
25
|
language: 'latin'
|
|
26
26
|
},
|
|
27
27
|
detection: {
|
|
28
|
-
|
|
29
|
-
textScanInterval: 1,
|
|
28
|
+
textScanInterval: 3,
|
|
30
29
|
maxFrameRate: 30,
|
|
31
|
-
forceOrientation: null
|
|
32
|
-
|
|
30
|
+
forceOrientation: null,
|
|
31
|
+
scanRegion: {
|
|
32
|
+
x: 0.15,
|
|
33
|
+
y: 0.15,
|
|
34
|
+
width: 0.7,
|
|
35
|
+
height: 0.7
|
|
36
|
+
},
|
|
37
|
+
enableFrameQualityCheck: true
|
|
38
|
+
},
|
|
39
|
+
showOverlay: false,
|
|
40
|
+
overlayColors: {
|
|
41
|
+
high: "#00FF00",
|
|
42
|
+
medium: "#FFFF00",
|
|
43
|
+
low: "#FF0000"
|
|
44
|
+
},
|
|
45
|
+
duplicateDebounceMs: 1500
|
|
33
46
|
};
|
|
34
47
|
export const resolveOptions = options => {
|
|
35
48
|
'worklet';
|
|
36
49
|
|
|
37
|
-
var _options$detection, _options$
|
|
38
|
-
const
|
|
39
|
-
const textScanInterval = Math.max(1, (options === null || options === void 0 || (_options$detection2 = options.detection) === null || _options$detection2 === void 0 ? void 0 : _options$detection2.textScanInterval) ?? DEFAULT_RESOLVED_OPTIONS.detection.textScanInterval);
|
|
50
|
+
var _options$detection, _options$barcode, _options$barcode2, _options$text, _options$text2, _options$detection2, _options$detection3, _options$detection4, _options$detection5;
|
|
51
|
+
const textScanInterval = Math.max(1, (options === null || options === void 0 || (_options$detection = options.detection) === null || _options$detection === void 0 ? void 0 : _options$detection.textScanInterval) ?? DEFAULT_RESOLVED_OPTIONS.detection.textScanInterval);
|
|
40
52
|
return {
|
|
41
53
|
barcode: {
|
|
42
54
|
enabled: (options === null || options === void 0 || (_options$barcode = options.barcode) === null || _options$barcode === void 0 ? void 0 : _options$barcode.enabled) ?? DEFAULT_RESOLVED_OPTIONS.barcode.enabled,
|
|
@@ -47,11 +59,18 @@ export const resolveOptions = options => {
|
|
|
47
59
|
language: (options === null || options === void 0 || (_options$text2 = options.text) === null || _options$text2 === void 0 ? void 0 : _options$text2.language) ?? DEFAULT_RESOLVED_OPTIONS.text.language
|
|
48
60
|
},
|
|
49
61
|
detection: {
|
|
50
|
-
resultMode,
|
|
51
62
|
textScanInterval,
|
|
52
|
-
maxFrameRate: (options === null || options === void 0 || (_options$
|
|
53
|
-
forceOrientation: (options === null || options === void 0 || (_options$
|
|
54
|
-
|
|
63
|
+
maxFrameRate: (options === null || options === void 0 || (_options$detection2 = options.detection) === null || _options$detection2 === void 0 ? void 0 : _options$detection2.maxFrameRate) ?? DEFAULT_RESOLVED_OPTIONS.detection.maxFrameRate,
|
|
64
|
+
forceOrientation: (options === null || options === void 0 || (_options$detection3 = options.detection) === null || _options$detection3 === void 0 ? void 0 : _options$detection3.forceOrientation) ?? DEFAULT_RESOLVED_OPTIONS.detection.forceOrientation,
|
|
65
|
+
scanRegion: (options === null || options === void 0 || (_options$detection4 = options.detection) === null || _options$detection4 === void 0 ? void 0 : _options$detection4.scanRegion) ?? DEFAULT_RESOLVED_OPTIONS.detection.scanRegion,
|
|
66
|
+
enableFrameQualityCheck: (options === null || options === void 0 || (_options$detection5 = options.detection) === null || _options$detection5 === void 0 ? void 0 : _options$detection5.enableFrameQualityCheck) ?? true
|
|
67
|
+
},
|
|
68
|
+
showOverlay: (options === null || options === void 0 ? void 0 : options.showOverlay) ?? false,
|
|
69
|
+
overlayColors: {
|
|
70
|
+
...DEFAULT_RESOLVED_OPTIONS.overlayColors,
|
|
71
|
+
...(options === null || options === void 0 ? void 0 : options.overlayColors)
|
|
72
|
+
},
|
|
73
|
+
duplicateDebounceMs: (options === null || options === void 0 ? void 0 : options.duplicateDebounceMs) ?? 1500
|
|
55
74
|
};
|
|
56
75
|
};
|
|
57
76
|
const transliteration = {
|
|
@@ -187,6 +206,107 @@ const extractWithContext = text => {
|
|
|
187
206
|
return Array.from(matches);
|
|
188
207
|
};
|
|
189
208
|
|
|
209
|
+
/**
|
|
210
|
+
* Calculate confidence score for a VIN candidate based on multiple factors.
|
|
211
|
+
* Returns a score from 0.0 (lowest confidence) to 1.0 (highest confidence).
|
|
212
|
+
*/
|
|
213
|
+
const calculateConfidence = (value, source, origin, rawPayload) => {
|
|
214
|
+
'worklet';
|
|
215
|
+
|
|
216
|
+
let score = 0.5; // Base confidence
|
|
217
|
+
|
|
218
|
+
// Analyze VIN value characteristics
|
|
219
|
+
// Known manufacturer WMI prefixes (first 3 characters) increase confidence
|
|
220
|
+
const wmi = value.slice(0, 3);
|
|
221
|
+
const knownManufacturers = ['1G1', '1G2', '1G3', '1G4', '1G6',
|
|
222
|
+
// GM
|
|
223
|
+
'1FA', '1FB', '1FC', '1FD', '1FM', '1FT',
|
|
224
|
+
// Ford
|
|
225
|
+
'1HG', '1HC',
|
|
226
|
+
// Honda
|
|
227
|
+
'1N4', '1N6',
|
|
228
|
+
// Nissan
|
|
229
|
+
'2C3', '2C4',
|
|
230
|
+
// Chrysler
|
|
231
|
+
'2HG', '2HM',
|
|
232
|
+
// Honda
|
|
233
|
+
'2T1', '2T2', '2T3',
|
|
234
|
+
// Toyota
|
|
235
|
+
'3FA', '3FE',
|
|
236
|
+
// Ford Mexico
|
|
237
|
+
'4T1', '4T3',
|
|
238
|
+
// Toyota
|
|
239
|
+
'5FN', '5FY',
|
|
240
|
+
// Honda
|
|
241
|
+
'5TD', '5TF', '5TJ',
|
|
242
|
+
// Toyota
|
|
243
|
+
'JHM', 'JHL',
|
|
244
|
+
// Honda Japan
|
|
245
|
+
'JT2', 'JT3', 'JTD',
|
|
246
|
+
// Toyota Japan
|
|
247
|
+
'KM8', 'KNA', 'KND',
|
|
248
|
+
// Hyundai/Kia
|
|
249
|
+
'WBA', 'WBS', 'WBY',
|
|
250
|
+
// BMW
|
|
251
|
+
'WDB', 'WDC', 'WDD',
|
|
252
|
+
// Mercedes
|
|
253
|
+
'WAU', 'WA1',
|
|
254
|
+
// Audi
|
|
255
|
+
'WVW', 'WV1', 'WV2' // VW
|
|
256
|
+
];
|
|
257
|
+
if (knownManufacturers.includes(wmi)) {
|
|
258
|
+
score += 0.15;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
// Check character distribution - VINs with too many repeated characters are suspicious
|
|
262
|
+
const charCounts = new Map();
|
|
263
|
+
for (let i = 0; i < value.length; i += 1) {
|
|
264
|
+
const char = value[i];
|
|
265
|
+
if (char) {
|
|
266
|
+
charCounts.set(char, (charCounts.get(char) ?? 0) + 1);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
const maxRepeat = Math.max(...Array.from(charCounts.values()));
|
|
270
|
+
if (maxRepeat > 5) {
|
|
271
|
+
// Too many repeated characters (e.g., "11111111111111111")
|
|
272
|
+
score -= 0.2;
|
|
273
|
+
} else if (maxRepeat <= 2) {
|
|
274
|
+
// Good character diversity
|
|
275
|
+
score += 0.1;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
// Barcodes are generally more reliable than OCR
|
|
279
|
+
if (source === 'barcode') {
|
|
280
|
+
score += 0.3;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
// Text from element-level is more precise than block
|
|
284
|
+
if (origin === 'element') {
|
|
285
|
+
score += 0.2;
|
|
286
|
+
} else if (origin === 'line') {
|
|
287
|
+
score += 0.1;
|
|
288
|
+
} else if (origin === 'rawValue' || origin === 'displayValue') {
|
|
289
|
+
// Barcode origins get slight boost
|
|
290
|
+
score += 0.15;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
// Context-aware detection (VIN prefix found) increases confidence
|
|
294
|
+
const resultText = rawPayload === null || rawPayload === void 0 ? void 0 : rawPayload.resultText;
|
|
295
|
+
if (resultText && typeof resultText === 'string') {
|
|
296
|
+
const lowerText = resultText.toLowerCase();
|
|
297
|
+
if (lowerText.includes('vin') || lowerText.includes('serial') || lowerText.includes('chassis')) {
|
|
298
|
+
score += 0.2;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
// Valid checksum confirmed (already validated by isValidVin)
|
|
303
|
+
// All candidates here have passed validation, so add bonus
|
|
304
|
+
score += 0.2;
|
|
305
|
+
|
|
306
|
+
// Clamp to valid range
|
|
307
|
+
return Math.min(1.0, Math.max(0.0, score));
|
|
308
|
+
};
|
|
309
|
+
|
|
190
310
|
/**
|
|
191
311
|
* Tokenize and extract VIN candidates from raw text
|
|
192
312
|
* Includes OCR error correction and context-aware extraction
|
|
@@ -253,12 +373,9 @@ const isValidWmi = value => {
|
|
|
253
373
|
return false;
|
|
254
374
|
}
|
|
255
375
|
const firstChar = value[0];
|
|
256
|
-
|
|
257
|
-
//
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
// Checking against common valid WMI first characters
|
|
261
|
-
return typeof firstChar === 'string' && /^[1-9JWZ]/.test(firstChar);
|
|
376
|
+
// North America: 1, 2 (Canada), 3, 4, 5 (United States)
|
|
377
|
+
// Japan : 'J' Germany : 'W'
|
|
378
|
+
return firstChar === '1' || firstChar === '2' || firstChar === '3' || firstChar === '4' || firstChar === '5' || firstChar === 'J' || firstChar === 'W';
|
|
262
379
|
};
|
|
263
380
|
|
|
264
381
|
/**
|
|
@@ -356,13 +473,17 @@ const candidateFromBarcode = detection => {
|
|
|
356
473
|
tokenizeCandidate(detection.rawValue ?? '').forEach(value => values.add(value));
|
|
357
474
|
tokenizeCandidate(detection.displayValue ?? '').forEach(value => values.add(value));
|
|
358
475
|
const boundingBox = toBoundingBox(detection, 'barcode');
|
|
359
|
-
return Array.from(values).filter(value => isValidVin(value)).map(value =>
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
476
|
+
return Array.from(values).filter(value => isValidVin(value)).map(value => {
|
|
477
|
+
const origin = detection.displayValue ? 'displayValue' : 'rawValue';
|
|
478
|
+
return {
|
|
479
|
+
value,
|
|
480
|
+
source: 'barcode',
|
|
481
|
+
confidence: calculateConfidence(value, 'barcode', origin, detection),
|
|
482
|
+
boundingBox,
|
|
483
|
+
origin,
|
|
484
|
+
rawPayload: detection
|
|
485
|
+
};
|
|
486
|
+
});
|
|
366
487
|
};
|
|
367
488
|
const candidateFromText = detection => {
|
|
368
489
|
'worklet';
|
|
@@ -405,6 +526,7 @@ const candidateFromText = detection => {
|
|
|
405
526
|
return {
|
|
406
527
|
value,
|
|
407
528
|
source: 'text',
|
|
529
|
+
confidence: calculateConfidence(value, 'text', origin, detection),
|
|
408
530
|
boundingBox,
|
|
409
531
|
origin,
|
|
410
532
|
rawPayload: detection
|
|
@@ -428,7 +550,6 @@ export const buildVinCandidates = (payload, options) => {
|
|
|
428
550
|
'worklet';
|
|
429
551
|
|
|
430
552
|
const list = [];
|
|
431
|
-
const prefersBarcodeFirst = options.detection.resultMode === 'first';
|
|
432
553
|
const addBarcodeCandidates = () => {
|
|
433
554
|
if (!options.barcode.enabled) {
|
|
434
555
|
return;
|
|
@@ -445,13 +566,8 @@ export const buildVinCandidates = (payload, options) => {
|
|
|
445
566
|
list.push(...candidateFromText(textBlock));
|
|
446
567
|
});
|
|
447
568
|
};
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
addTextCandidates();
|
|
451
|
-
} else {
|
|
452
|
-
addTextCandidates();
|
|
453
|
-
addBarcodeCandidates();
|
|
454
|
-
}
|
|
569
|
+
addBarcodeCandidates();
|
|
570
|
+
addTextCandidates();
|
|
455
571
|
return dedupeCandidates(list);
|
|
456
572
|
};
|
|
457
573
|
export const pickFirstCandidate = (candidates, options) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DEFAULT_RESOLVED_OPTIONS","barcode","enabled","formats","text","language","detection","resultMode","textScanInterval","maxFrameRate","forceOrientation","resolveOptions","options","_options$detection","_options$detection2","_options$barcode","_options$barcode2","_options$text","_options$text2","_options$detection3","_options$detection4","Math","max","length","transliteration","A","B","C","D","E","F","G","H","J","K","L","M","N","P","R","S","T","U","V","W","X","Y","Z","weights","OCR_SUBSTITUTIONS","generateSubstitutionCandidates","value","maxSubstitutions","candidates","Set","positions","i","char","push","positionsToTry","slice","generate","current","posIndex","substitutionCount","add","pos","undefined","replacements","forEach","replacement","newValue","Array","from","extractWithContext","matches","VIN_PATTERN","patterns","pattern","match","exec","captured","replace","candidate","toUpperCase","test","tokenizeCandidate","normalized","vin","cleaned","tokens","split","filter","token","hasSubstitutableChars","substitutions","sub","isValidWmi","firstChar","isValidVin","chars","sum","numeric","Number","parseInt","weight","remainder","expected","toString","checkDigit","toBoundingBox","preferred","maybe","top","bottom","left","right","width","height","block","blockBox","blockFrameTop","blockFrameBottom","blockFrameLeft","blockFrameRight","lineBox","lineFrameTop","lineFrameBottom","lineFrameLeft","lineFrameRight","elementBox","elementFrameTop","elementFrameBottom","elementFrameLeft","elementFrameRight","candidateFromBarcode","values","rawValue","displayValue","boundingBox","map","source","origin","rawPayload","candidateFromText","valueMap","Map","elementText","order","lineText","blockText","resultText","v","_valueMap$get","has","get","set","rawText","entries","_detection$elementTex","_detection$lineText","includes","dedupeCandidates","_candidate$boundingBo","_candidate$boundingBo2","key","join","buildVinCandidates","payload","list","prefersBarcodeFirst","addBarcodeCandidates","barcodes","addTextCandidates","textBlocks","textBlock","pickFirstCandidate"],"sourceRoot":"../../src","sources":["vinUtils.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["DEFAULT_RESOLVED_OPTIONS","barcode","enabled","formats","text","language","detection","textScanInterval","maxFrameRate","forceOrientation","scanRegion","x","y","width","height","enableFrameQualityCheck","showOverlay","overlayColors","high","medium","low","duplicateDebounceMs","resolveOptions","options","_options$detection","_options$barcode","_options$barcode2","_options$text","_options$text2","_options$detection2","_options$detection3","_options$detection4","_options$detection5","Math","max","length","transliteration","A","B","C","D","E","F","G","H","J","K","L","M","N","P","R","S","T","U","V","W","X","Y","Z","weights","OCR_SUBSTITUTIONS","generateSubstitutionCandidates","value","maxSubstitutions","candidates","Set","positions","i","char","push","positionsToTry","slice","generate","current","posIndex","substitutionCount","add","pos","undefined","replacements","forEach","replacement","newValue","Array","from","extractWithContext","matches","VIN_PATTERN","patterns","pattern","match","exec","captured","replace","candidate","toUpperCase","test","calculateConfidence","source","origin","rawPayload","score","wmi","knownManufacturers","includes","charCounts","Map","set","get","maxRepeat","values","resultText","lowerText","toLowerCase","min","tokenizeCandidate","normalized","vin","cleaned","tokens","split","filter","token","hasSubstitutableChars","substitutions","sub","isValidWmi","firstChar","isValidVin","chars","sum","numeric","Number","parseInt","weight","remainder","expected","toString","checkDigit","toBoundingBox","preferred","maybe","top","bottom","left","right","block","blockBox","blockFrameTop","blockFrameBottom","blockFrameLeft","blockFrameRight","lineBox","lineFrameTop","lineFrameBottom","lineFrameLeft","lineFrameRight","elementBox","elementFrameTop","elementFrameBottom","elementFrameLeft","elementFrameRight","candidateFromBarcode","rawValue","displayValue","boundingBox","map","confidence","candidateFromText","valueMap","elementText","order","lineText","blockText","v","_valueMap$get","has","rawText","entries","_detection$elementTex","_detection$lineText","dedupeCandidates","_candidate$boundingBo","_candidate$boundingBo2","key","join","buildVinCandidates","payload","list","addBarcodeCandidates","barcodes","addTextCandidates","textBlocks","textBlock","pickFirstCandidate"],"sourceRoot":"../../src","sources":["vinUtils.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { VinCandidate, OverlayColors } from './types';
|
|
3
|
+
export type VinScannerOverlayProps = {
|
|
4
|
+
candidates: VinCandidate[];
|
|
5
|
+
colors?: Partial<OverlayColors>;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* AR overlay component that renders bounding boxes around detected VINs.
|
|
9
|
+
* Color-coded by confidence score: green (>0.8), yellow (0.5-0.8), red (<0.5).
|
|
10
|
+
*
|
|
11
|
+
* Requires @shopify/react-native-skia peer dependency.
|
|
12
|
+
*/
|
|
13
|
+
export declare function VinScannerOverlay({ candidates, colors }: VinScannerOverlayProps): React.JSX.Element;
|
|
14
|
+
//# sourceMappingURL=VinScannerOverlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VinScannerOverlay.d.ts","sourceRoot":"","sources":["../../../src/VinScannerOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE3D,MAAM,MAAM,sBAAsB,GAAG;IACjC,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CACnC,CAAC;AAQF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,sBAAsB,qBAgC/E"}
|
|
@@ -3,7 +3,8 @@ export declare const Camera: React.ForwardRefExoticComponent<{
|
|
|
3
3
|
callback: (event: import("./types").VinScannerEvent) => void;
|
|
4
4
|
options?: import("./types").VinScannerOptions;
|
|
5
5
|
} & import("react-native-vision-camera").CameraProps & React.RefAttributes<any>>;
|
|
6
|
-
export type { BarcodeDetection, BarcodeFormat, BarcodeScannerOptions, CameraTypes, DetectionOptions, TextDetection, TextRecognitionOptions, TextScannerOptions, VinCandidate,
|
|
6
|
+
export type { BarcodeDetection, BarcodeFormat, BarcodeScannerOptions, BoundingBox, CameraSettings, CameraTypes, DetectionOptions, OverlayColors, TextDetection, TextRecognitionOptions, TextScannerOptions, VinCandidate, VinCandidateSource, VinScannerEvent, VinScannerOptions, VinTextOrigin, } from './types';
|
|
7
7
|
export { useVinScanner } from './useVinScanner';
|
|
8
|
+
export { VinScannerOverlay } from './VinScannerOverlay';
|
|
8
9
|
export { isValidVin } from './vinUtils';
|
|
9
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAuBnD,eAAO,MAAM,MAAM;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAuBnD,eAAO,MAAM,MAAM;;;gFAoEjB,CAAC;AA0BH,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,WAAW,EACX,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,aAAa,GACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanBarcodes.d.ts","sourceRoot":"","sources":["../../../src/scanBarcodes.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAGV,oBAAoB,EAIpB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"scanBarcodes.d.ts","sourceRoot":"","sources":["../../../src/scanBarcodes.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAGV,oBAAoB,EAIpB,kBAAkB,EAEnB,MAAM,SAAS,CAAC;AAiIjB,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,kBAAkB,GAC1B,oBAAoB,CAwBtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanText.d.ts","sourceRoot":"","sources":["../../../src/scanText.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"scanText.d.ts","sourceRoot":"","sources":["../../../src/scanText.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAKV,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAuGjB,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,sBAAsB,GAC9B,qBAAqB,CAyBvB"}
|