@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.
Files changed (48) hide show
  1. package/README.md +169 -15
  2. package/android/src/main/java/com/visioncamerabarcodescanner/VisionCameraBarcodeScannerModule.kt +50 -6
  3. package/android/src/main/java/com/visioncameratextrecognition/VisionCameraTextRecognitionModule.kt +69 -26
  4. package/ios/VisionCameraBarcodeScanner.m +60 -6
  5. package/ios/VisionCameraTextRecognition.m +67 -13
  6. package/lib/commonjs/VinScannerOverlay.js +60 -0
  7. package/lib/commonjs/VinScannerOverlay.js.map +1 -0
  8. package/lib/commonjs/index.js +17 -7
  9. package/lib/commonjs/index.js.map +1 -1
  10. package/lib/commonjs/scanBarcodes.js +14 -3
  11. package/lib/commonjs/scanBarcodes.js.map +1 -1
  12. package/lib/commonjs/scanText.js +14 -3
  13. package/lib/commonjs/scanText.js.map +1 -1
  14. package/lib/commonjs/useVinScanner.js +45 -31
  15. package/lib/commonjs/useVinScanner.js.map +1 -1
  16. package/lib/commonjs/vinUtils.js +148 -32
  17. package/lib/commonjs/vinUtils.js.map +1 -1
  18. package/lib/module/VinScannerOverlay.js +53 -0
  19. package/lib/module/VinScannerOverlay.js.map +1 -0
  20. package/lib/module/index.js +11 -7
  21. package/lib/module/index.js.map +1 -1
  22. package/lib/module/scanBarcodes.js +14 -3
  23. package/lib/module/scanBarcodes.js.map +1 -1
  24. package/lib/module/scanText.js +14 -3
  25. package/lib/module/scanText.js.map +1 -1
  26. package/lib/module/useVinScanner.js +45 -31
  27. package/lib/module/useVinScanner.js.map +1 -1
  28. package/lib/module/vinUtils.js +148 -32
  29. package/lib/module/vinUtils.js.map +1 -1
  30. package/lib/typescript/src/VinScannerOverlay.d.ts +14 -0
  31. package/lib/typescript/src/VinScannerOverlay.d.ts.map +1 -0
  32. package/lib/typescript/src/index.d.ts +2 -1
  33. package/lib/typescript/src/index.d.ts.map +1 -1
  34. package/lib/typescript/src/scanBarcodes.d.ts.map +1 -1
  35. package/lib/typescript/src/scanText.d.ts.map +1 -1
  36. package/lib/typescript/src/types.d.ts +97 -7
  37. package/lib/typescript/src/types.d.ts.map +1 -1
  38. package/lib/typescript/src/useVinScanner.d.ts.map +1 -1
  39. package/lib/typescript/src/vinUtils.d.ts +6 -2
  40. package/lib/typescript/src/vinUtils.d.ts.map +1 -1
  41. package/package.json +4 -2
  42. package/src/VinScannerOverlay.tsx +55 -0
  43. package/src/index.tsx +14 -8
  44. package/src/scanBarcodes.ts +16 -4
  45. package/src/scanText.ts +16 -4
  46. package/src/types.ts +101 -11
  47. package/src/useVinScanner.ts +46 -33
  48. 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 barcodeArgs = orientationOverride ? {
48
- orientation: orientationOverride
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
- // Performance Optimization:
53
- // If we found a valid VIN in the barcode, and we only need the "first" result,
54
- // skip the expensive text recognition step entirely.
55
- let hasBarcodeVin = false;
56
- if (barcodes && barcodes.length > 0) {
57
- const tempCandidates = buildVinCandidates({
58
- barcodes,
59
- textBlocks: [],
60
- timestamp: now
61
- }, resolvedOptions);
62
- if (tempCandidates.length > 0) {
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 = !hasBarcodeVin &&
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 best = pickFirstCandidate(candidates, resolvedOptions);
83
- const mode = resolvedOptions.detection.resultMode;
84
- const normalizedResult = mode === 'all' ? candidates.length > 0 ? candidates : null : best ?? null;
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
- best,
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
- emitResult(normalizedResult, event);
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","barcodeArgs","orientation","undefined","barcodes","scanBarcodes","hasBarcodeVin","length","tempCandidates","textBlocks","textArgs","frameIndex","textScanInterval","shouldRunText","scanText","payload","candidates","best","mode","resultMode","normalizedResult","raw"],"sourceRoot":"../../src","sources":["useVinScanner.ts"],"mappings":"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","ignoreList":[]}
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":[]}
@@ -25,18 +25,30 @@ const DEFAULT_RESOLVED_OPTIONS = {
25
25
  language: 'latin'
26
26
  },
27
27
  detection: {
28
- resultMode: 'first',
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$detection2, _options$barcode, _options$barcode2, _options$text, _options$text2, _options$detection3, _options$detection4;
38
- const resultMode = (options === null || options === void 0 || (_options$detection = options.detection) === null || _options$detection === void 0 ? void 0 : _options$detection.resultMode) ?? DEFAULT_RESOLVED_OPTIONS.detection.resultMode;
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$detection3 = options.detection) === null || _options$detection3 === void 0 ? void 0 : _options$detection3.maxFrameRate) ?? DEFAULT_RESOLVED_OPTIONS.detection.maxFrameRate,
53
- forceOrientation: (options === null || options === void 0 || (_options$detection4 = options.detection) === null || _options$detection4 === void 0 ? void 0 : _options$detection4.forceOrientation) ?? DEFAULT_RESOLVED_OPTIONS.detection.forceOrientation
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
- // 1-5: North America
258
- // WZJ: Europe (W: Germany, Z: Italy, J: Japan)
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
- value,
361
- source: 'barcode',
362
- boundingBox,
363
- origin: detection.displayValue ? 'displayValue' : 'rawValue',
364
- rawPayload: detection
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
- if (prefersBarcodeFirst) {
449
- addBarcodeCandidates();
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, VinResultMode, VinScannerEvent, VinScannerOptions, } from './types';
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;;;gFAmEjB,CAAC;AA0BH,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,iBAAiB,GAClB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
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,EACnB,MAAM,SAAS,CAAC;AAsHjB,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,kBAAkB,GAC1B,oBAAoB,CAwBtB"}
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,EAIV,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AA4FjB,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,sBAAsB,GAC9B,qBAAqB,CAyBvB"}
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"}