@mleonard9/vin-scanner 0.2.0 → 0.2.2

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.
@@ -4,6 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.Camera = void 0;
7
+ Object.defineProperty(exports, "isValidVin", {
8
+ enumerable: true,
9
+ get: function () {
10
+ return _vinUtils.isValidVin;
11
+ }
12
+ });
7
13
  Object.defineProperty(exports, "useVinScanner", {
8
14
  enumerable: true,
9
15
  get: function () {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNativeVisionCamera","_reactNativeWorkletsCore","_scanBarcodes","_scanText","_vinUtils","_useVinScanner","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","Camera","exports","forwardRef","props","ref","device","callback","options","rest","resolvedOptions","useMemo","resolveOptions","barcodeScanner","useBarcodeScanner","barcode","textScanner","useTextScanner","text","lastEmissionRef","useRef","undefined","handleDetections","useRunOnJS","payload","candidates","buildVinCandidates","best","pickBestCandidate","mode","detection","resultMode","filteredCandidates","fingerprint","map","candidate","value","join","emitDuplicates","current","timestamp","raw","barcodes","textBlocks","scanBarcodes","scanText","frameProcessor","useFrameProcessor","frame","Date","now","createElement","Fragment","pixelFormat","enabled","createBarcodeScannerPlugin","formats","createTextRecognitionPlugin","language"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNativeVisionCamera","_reactNativeWorkletsCore","_scanBarcodes","_scanText","_vinUtils","_useVinScanner","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","Camera","exports","forwardRef","props","ref","device","callback","options","rest","resolvedOptions","useMemo","resolveOptions","barcodeScanner","useBarcodeScanner","barcode","textScanner","useTextScanner","text","lastEmissionRef","useRef","undefined","handleDetections","useRunOnJS","payload","candidates","buildVinCandidates","best","pickBestCandidate","mode","detection","resultMode","filteredCandidates","fingerprint","map","candidate","value","join","emitDuplicates","current","timestamp","raw","barcodes","textBlocks","scanBarcodes","scanText","frameProcessor","useFrameProcessor","frame","Date","now","createElement","Fragment","pixelFormat","enabled","createBarcodeScannerPlugin","formats","createTextRecognitionPlugin","language"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,wBAAA,GAAAD,OAAA;AAKA,IAAAE,wBAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AAQA,IAAAK,SAAA,GAAAL,OAAA;AAmIA,IAAAM,cAAA,GAAAN,OAAA;AAAgD,SAAAD,wBAAAQ,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAV,uBAAA,YAAAA,CAAAQ,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAkB,SAAA,WAAAA,QAAA,GAAAH,MAAA,CAAAI,MAAA,GAAAJ,MAAA,CAAAI,MAAA,CAAAC,IAAA,eAAAjB,CAAA,aAAAJ,CAAA,MAAAA,CAAA,GAAAsB,SAAA,CAAAC,MAAA,EAAAvB,CAAA,UAAAC,CAAA,GAAAqB,SAAA,CAAAtB,CAAA,YAAAG,CAAA,IAAAF,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAd,CAAA,EAAAE,CAAA,MAAAC,CAAA,CAAAD,CAAA,IAAAF,CAAA,CAAAE,CAAA,aAAAC,CAAA,KAAAe,QAAA,CAAAK,KAAA,OAAAF,SAAA;AA5HzC,MAAMG,MAAM,GAAAC,OAAA,CAAAD,MAAA,gBAAG,IAAAE,iBAAU,EAAC,SAASF,MAAMA,CAC9CG,KAAkB,EAClBC,GAAsB,EACtB;EACA,MAAM;IAAEC,MAAM;IAAEC,QAAQ;IAAEC,OAAO;IAAE,GAAGC;EAAK,CAAC,GAAGL,KAAK;EAEpD,MAAMM,eAAe,GAAG,IAAAC,cAAO,EAC7B,MAAM,IAAAC,wBAAc,EAACJ,OAAO,CAAC,EAC7B,CAACA,OAAO,CACV,CAAC;EAED,MAAMK,cAAc,GAAGC,iBAAiB,CAACJ,eAAe,CAACK,OAAO,CAAC;EACjE,MAAMC,WAAW,GAAGC,cAAc,CAACP,eAAe,CAACQ,IAAI,CAAC;EACxD,MAAMC,eAAe,GAAG,IAAAC,aAAM,EAA4BC,SAAS,CAAC;EAEpE,MAAMC,gBAAgB,GAAG,IAAAC,mCAAU,EAChCC,OAAuB,IAAK;IAC3B,MAAMC,UAAU,GAAG,IAAAC,4BAAkB,EAACF,OAAO,EAAEd,eAAe,CAAC;IAC/D,MAAMiB,IAAI,GAAG,IAAAC,2BAAiB,EAACH,UAAU,EAAEf,eAAe,CAAC;IAC3D,MAAMmB,IAAI,GAAGnB,eAAe,CAACoB,SAAS,CAACC,UAAU;IACjD,MAAMC,kBAAkB,GACtBH,IAAI,KAAK,KAAK,GAAGJ,UAAU,GAAGE,IAAI,GAAG,CAACA,IAAI,CAAC,GAAG,EAAE;IAClD,MAAMM,WAAW,GACfJ,IAAI,KAAK,KAAK,GACVG,kBAAkB,CAACE,GAAG,CAAEC,SAAS,IAAKA,SAAS,CAACC,KAAK,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC,IAChE,IAAI,GACH,CAAAV,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAES,KAAK,KAAI,IAAK;IAE3B,IAAI,CAAC1B,eAAe,CAACoB,SAAS,CAACQ,cAAc,EAAE;MAC7C,IACEnB,eAAe,CAACoB,OAAO,KAAKlB,SAAS,IACrCY,WAAW,KAAKd,eAAe,CAACoB,OAAO,EACvC;QACA;MACF;MACApB,eAAe,CAACoB,OAAO,GAAGN,WAAW;IACvC;IAEA1B,QAAQ,CAAC;MACPsB,IAAI;MACJW,SAAS,EAAEhB,OAAO,CAACgB,SAAS;MAC5Bf,UAAU,EAAEO,kBAAkB;MAC9BL,IAAI,EAAEA,IAAI,IAAI,IAAI;MAClBc,GAAG,EAAE;QACHC,QAAQ,EAAElB,OAAO,CAACkB,QAAQ,IAAI,EAAE;QAChCC,UAAU,EAAEnB,OAAO,CAACmB,UAAU,IAAI;MACpC;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAACpC,QAAQ,EAAEG,eAAe,CAC5B,CAAC;EAED,MAAMkC,YAAY,GAAG/B,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAE+B,YAAY;EACjD,MAAMC,QAAQ,GAAG7B,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAE6B,QAAQ;EAEtC,MAAMC,cAAsC,GAAG,IAAAC,0CAAiB,EAC7DC,KAAK,IAAK;IACT,SAAS;;IACT,MAAMN,QAAQ,GAAGE,YAAY,GAAGA,YAAY,CAACI,KAAK,CAAC,GAAG,EAAE;IACxD,MAAML,UAAU,GAAGE,QAAQ,GAAGA,QAAQ,CAACG,KAAK,CAAC,GAAG,EAAE;IAClD1B,gBAAgB,CAAC;MACfoB,QAAQ,EAAEA,QAAQ,IAAI,EAAE;MACxBC,UAAU,EAAEA,UAAU,IAAI,EAAE;MAC5BH,SAAS,EACP,QAAOQ,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAER,SAAS,MAAK,QAAQ,GAAGQ,KAAK,CAACR,SAAS,GAAGS,IAAI,CAACC,GAAG,CAAC;IACtE,CAAC,CAAC;EACJ,CAAC,EACD,CAACN,YAAY,EAAEC,QAAQ,EAAEvB,gBAAgB,CAC3C,CAAC;EAED,oBACEvD,MAAA,CAAAmB,OAAA,CAAAiE,aAAA,CAAApF,MAAA,CAAAmB,OAAA,CAAAkE,QAAA,QACG,CAAC,CAAC9C,MAAM,iBACPvC,MAAA,CAAAmB,OAAA,CAAAiE,aAAA,CAACjF,wBAAA,CAAA+B,MAAY,EAAAN,QAAA;IACX0D,WAAW,EAAC,KAAK;IACjBhD,GAAG,EAAEA,GAAI;IACTyC,cAAc,EAAEA,cAAe;IAC/BxC,MAAM,EAAEA;EAAO,GACXG,IAAI,CACT,CAEH,CAAC;AAEP,CAAC,CAAC;AAEF,SAASK,iBAAiBA,CACxBN,OAA6C,EAChB;EAC7B,OAAO,IAAAG,cAAO,EAAC,MAAM;IACnB,IAAI,CAACH,OAAO,CAAC8C,OAAO,EAAE;MACpB,OAAO,IAAI;IACb;IACA,OAAO,IAAAC,wCAA0B,EAAC/C,OAAO,CAACgD,OAAO,CAAC;EACpD,CAAC,EAAE,CAAChD,OAAO,CAAC8C,OAAO,EAAE9C,OAAO,CAACgD,OAAO,CAAC,CAAC;AACxC;AAEA,SAASvC,cAAcA,CACrBT,OAA0C,EACZ;EAC9B,OAAO,IAAAG,cAAO,EAAC,MAAM;IACnB,IAAI,CAACH,OAAO,CAAC8C,OAAO,EAAE;MACpB,OAAO,IAAI;IACb;IACA,OAAO,IAAAG,qCAA2B,EAAC;MACjCC,QAAQ,EAAElD,OAAO,CAACkD;IACpB,CAAC,CAAC;EACJ,CAAC,EAAE,CAAClD,OAAO,CAAC8C,OAAO,EAAE9C,OAAO,CAACkD,QAAQ,CAAC,CAAC;AACzC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNativeVisionCamera","_reactNativeWorkletsCore","_scanBarcodes","_scanText","_vinUtils","useVinScanner","options","resolvedOptions","useMemo","resolveOptions","lastFingerprintRef","useRef","undefined","barcodeScanner","barcode","enabled","createBarcodeScannerPlugin","formats","textScanner","text","createTextRecognitionPlugin","language","emitResult","useRunOnJS","result","event","onResult","frameProcessor","useFrameProcessor","frame","barcodes","scanBarcodes","textBlocks","scanText","payload","timestamp","Date","now","candidates","buildVinCandidates","best","pickBestCandidate","mode","detection","resultMode","normalizedResult","length","fingerprint","map","candidate","value","join","emitDuplicates","current","raw"],"sourceRoot":"../../src","sources":["useVinScanner.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNativeVisionCamera","_reactNativeWorkletsCore","_scanBarcodes","_scanText","_vinUtils","useVinScanner","options","resolvedOptions","useMemo","resolveOptions","lastFingerprintRef","useRef","undefined","barcodeScanner","barcode","enabled","createBarcodeScannerPlugin","formats","textScanner","text","createTextRecognitionPlugin","language","emitResult","useRunOnJS","result","event","onResult","frameProcessor","useFrameProcessor","frame","barcodes","scanBarcodes","textBlocks","scanText","payload","timestamp","Date","now","candidates","buildVinCandidates","best","pickBestCandidate","mode","detection","resultMode","normalizedResult","length","fingerprint","map","candidate","value","join","emitDuplicates","current","raw"],"sourceRoot":"../../src","sources":["useVinScanner.ts"],"mappings":"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","ignoreList":[]}
@@ -32,13 +32,15 @@ const DEFAULT_RESOLVED_OPTIONS = {
32
32
  resultMode: 'best',
33
33
  preferBarcode: true,
34
34
  validateChecksum: true,
35
- emitDuplicates: false
35
+ emitDuplicates: false,
36
+ includePartialVins: false,
37
+ minPartialLength: 13
36
38
  }
37
39
  };
38
40
  const resolveOptions = options => {
39
41
  'worklet';
40
42
 
41
- var _options$detection, _options$detection2, _options$barcode, _options$barcode2, _options$text, _options$text2, _options$detection3, _options$detection4;
43
+ var _options$detection, _options$detection2, _options$barcode, _options$barcode2, _options$text, _options$text2, _options$detection3, _options$detection4, _options$detection5, _options$detection6;
42
44
  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;
43
45
  const emitDuplicates = (options === null || options === void 0 || (_options$detection2 = options.detection) === null || _options$detection2 === void 0 ? void 0 : _options$detection2.emitDuplicates) ?? (resultMode === 'all' ? true : DEFAULT_RESOLVED_OPTIONS.detection.emitDuplicates);
44
46
  return {
@@ -54,7 +56,9 @@ const resolveOptions = options => {
54
56
  resultMode,
55
57
  preferBarcode: (options === null || options === void 0 || (_options$detection3 = options.detection) === null || _options$detection3 === void 0 ? void 0 : _options$detection3.preferBarcode) ?? DEFAULT_RESOLVED_OPTIONS.detection.preferBarcode,
56
58
  validateChecksum: (options === null || options === void 0 || (_options$detection4 = options.detection) === null || _options$detection4 === void 0 ? void 0 : _options$detection4.validateChecksum) ?? DEFAULT_RESOLVED_OPTIONS.detection.validateChecksum,
57
- emitDuplicates
59
+ emitDuplicates,
60
+ includePartialVins: (options === null || options === void 0 || (_options$detection5 = options.detection) === null || _options$detection5 === void 0 ? void 0 : _options$detection5.includePartialVins) ?? DEFAULT_RESOLVED_OPTIONS.detection.includePartialVins,
61
+ minPartialLength: (options === null || options === void 0 || (_options$detection6 = options.detection) === null || _options$detection6 === void 0 ? void 0 : _options$detection6.minPartialLength) ?? DEFAULT_RESOLVED_OPTIONS.detection.minPartialLength
58
62
  }
59
63
  };
60
64
  };
@@ -115,9 +119,6 @@ const OCR_SUBSTITUTIONS = {
115
119
  'V': ['U']
116
120
  };
117
121
 
118
- // VIN prefix patterns to detect context
119
- const VIN_PREFIX_PATTERNS = [/(?:^|[\s:])VIN[:\s]+([A-Z0-9]{17,})/i, /(?:^|[\s:])V\.?I\.?N\.?[:\s]+([A-Z0-9]{17,})/i, /Vehicle\s+(?:Identification\s+)?(?:Number|ID|Id)[:\s]+([A-Z0-9]{17,})/i, /(?:^|[\s:])Chassis\s+(?:Number|No\.?)[:\s]+([A-Z0-9]{17,})/i, /(?:^|[\s:])Serial\s+(?:Number|No\.?)[:\s]+([A-Z0-9]{17,})/i];
120
-
121
122
  /**
122
123
  * Generate character substitution candidates for OCR error correction
123
124
  * This creates variations of the input by substituting commonly misread characters
@@ -168,13 +169,17 @@ const generateSubstitutionCandidates = (value, maxSubstitutions = 3) => {
168
169
 
169
170
  /**
170
171
  * Extract VINs using context-aware patterns (looking for VIN: prefix, etc.)
172
+ * Note: Regex patterns must be defined inside worklet for proper serialization
171
173
  */
172
174
  const extractWithContext = text => {
173
175
  'worklet';
174
176
 
175
177
  const matches = new Set();
176
178
  const VIN_PATTERN = /^[A-HJ-NPR-Z0-9]{17}$/;
177
- VIN_PREFIX_PATTERNS.forEach(pattern => {
179
+
180
+ // Define patterns inside worklet to ensure they're available in the worklet context
181
+ const patterns = [/(?:^|[\s:])VIN[:\s]+([A-Z0-9]{17,})/i, /(?:^|[\s:])V\.?I\.?N\.?[:\s]+([A-Z0-9]{17,})/i, /Vehicle\s+(?:Identification\s+)?(?:Number|ID|Id)[:\s]+([A-Z0-9]{17,})/i, /(?:^|[\s:])Chassis\s+(?:Number|No\.?)[:\s]+([A-Z0-9]{17,})/i, /(?:^|[\s:])Serial\s+(?:Number|No\.?)[:\s]+([A-Z0-9]{17,})/i];
182
+ patterns.forEach(pattern => {
178
183
  const match = pattern.exec(text);
179
184
  if (match && match[1]) {
180
185
  const captured = match[1].replace(/[^A-Z0-9]/gi, '');
@@ -193,11 +198,14 @@ const extractWithContext = text => {
193
198
  /**
194
199
  * Tokenize and extract VIN candidates from raw text
195
200
  * Includes OCR error correction and context-aware extraction
201
+ * Can optionally detect partial VINs (13-16 characters)
196
202
  */
197
- const tokenizeCandidate = value => {
203
+ const tokenizeCandidate = (value, options) => {
198
204
  'worklet';
199
205
 
200
206
  const VIN_PATTERN = /^[A-HJ-NPR-Z0-9]{17}$/;
207
+ const includePartial = (options === null || options === void 0 ? void 0 : options.includePartial) ?? false;
208
+ const minPartialLength = (options === null || options === void 0 ? void 0 : options.minPartialLength) ?? 13;
201
209
  if (!value) {
202
210
  return [];
203
211
  }
@@ -211,6 +219,13 @@ const tokenizeCandidate = value => {
211
219
  const cleaned = normalized.replace(/[^A-Z0-9]/g, ' ');
212
220
  const tokens = cleaned.split(/\s+/).filter(token => token.length > 0);
213
221
  tokens.forEach(token => {
222
+ // Check for partial VINs if enabled
223
+ if (includePartial && token.length >= minPartialLength && token.length < 17) {
224
+ const PARTIAL_PATTERN = new RegExp(`^[A-HJ-NPR-Z0-9]{${token.length}}$`);
225
+ if (PARTIAL_PATTERN.test(token)) {
226
+ matches.add(token);
227
+ }
228
+ }
214
229
  if (token.length < 17) {
215
230
  return;
216
231
  }
@@ -236,6 +251,26 @@ const tokenizeCandidate = value => {
236
251
  });
237
252
  }
238
253
  }
254
+
255
+ // Also check for partial VINs at the start/end of longer strings
256
+ if (includePartial) {
257
+ for (let len = minPartialLength; len < 17 && len <= token.length; len += 1) {
258
+ // Check start of token
259
+ const startCandidate = token.slice(0, len);
260
+ const START_PATTERN = new RegExp(`^[A-HJ-NPR-Z0-9]{${len}}$`);
261
+ if (START_PATTERN.test(startCandidate)) {
262
+ matches.add(startCandidate);
263
+ }
264
+
265
+ // Check end of token
266
+ if (token.length > len) {
267
+ const endCandidate = token.slice(token.length - len);
268
+ if (START_PATTERN.test(endCandidate)) {
269
+ matches.add(endCandidate);
270
+ }
271
+ }
272
+ }
273
+ }
239
274
  });
240
275
  return Array.from(matches);
241
276
  };
@@ -334,22 +369,26 @@ const calculateBarcodeConfidence = (value, validateChecksum) => {
334
369
  }
335
370
  return confidence;
336
371
  };
337
- const candidateFromBarcode = (detection, validateChecksum) => {
372
+ const candidateFromBarcode = (detection, validateChecksum, options) => {
338
373
  'worklet';
339
374
 
340
375
  const values = new Set();
341
- tokenizeCandidate(detection.rawValue ?? '').forEach(value => values.add(value));
342
- tokenizeCandidate(detection.displayValue ?? '').forEach(value => values.add(value));
376
+ tokenizeCandidate(detection.rawValue ?? '', options).forEach(value => values.add(value));
377
+ tokenizeCandidate(detection.displayValue ?? '', options).forEach(value => values.add(value));
343
378
  const boundingBox = toBoundingBox(detection, 'barcode');
344
379
  return Array.from(values).map(value => {
380
+ const isPartial = value.length < 17;
345
381
  const confidence = calculateBarcodeConfidence(value, validateChecksum);
346
382
  return {
347
383
  value,
348
384
  source: 'barcode',
349
- confidence,
385
+ confidence: isPartial ? confidence * 0.7 : confidence,
386
+ // Lower confidence for partial
350
387
  boundingBox,
351
388
  origin: detection.displayValue ? 'displayValue' : 'rawValue',
352
- rawPayload: detection
389
+ rawPayload: detection,
390
+ isPartial,
391
+ partialLength: isPartial ? value.length : undefined
353
392
  };
354
393
  });
355
394
  };
@@ -390,7 +429,7 @@ const calculateTextConfidence = (value, rawText, origin, validateChecksum) => {
390
429
  // Cap at 0.98 (never 1.0 for text recognition)
391
430
  return Math.min(confidence, 0.98);
392
431
  };
393
- const candidateFromText = (detection, validateChecksum) => {
432
+ const candidateFromText = (detection, validateChecksum, options) => {
394
433
  'worklet';
395
434
 
396
435
  const valueMap = new Map();
@@ -413,7 +452,7 @@ const candidateFromText = (detection, validateChecksum) => {
413
452
  order
414
453
  }) => {
415
454
  if (text) {
416
- tokenizeCandidate(text).forEach(v => {
455
+ tokenizeCandidate(text, options).forEach(v => {
417
456
  var _valueMap$get;
418
457
  if (!valueMap.has(v) || (((_valueMap$get = valueMap.get(v)) === null || _valueMap$get === void 0 ? void 0 : _valueMap$get.order) ?? 999) > order) {
419
458
  valueMap.set(v, {
@@ -430,14 +469,18 @@ const candidateFromText = (detection, validateChecksum) => {
430
469
  }]) => {
431
470
  var _detection$elementTex, _detection$lineText;
432
471
  const origin = (_detection$elementTex = detection.elementText) !== null && _detection$elementTex !== void 0 && _detection$elementTex.includes(value) ? 'element' : (_detection$lineText = detection.lineText) !== null && _detection$lineText !== void 0 && _detection$lineText.includes(value) ? 'line' : 'block';
472
+ const isPartial = value.length < 17;
433
473
  const confidence = calculateTextConfidence(value, rawText, origin, validateChecksum);
434
474
  return {
435
475
  value,
436
476
  source: 'text',
437
- confidence,
477
+ confidence: isPartial ? confidence * 0.6 : confidence,
478
+ // Lower confidence for partial
438
479
  boundingBox,
439
480
  origin,
440
- rawPayload: detection
481
+ rawPayload: detection,
482
+ isPartial,
483
+ partialLength: isPartial ? value.length : undefined
441
484
  };
442
485
  });
443
486
  };
@@ -459,14 +502,18 @@ const buildVinCandidates = (payload, options) => {
459
502
  'worklet';
460
503
 
461
504
  const list = [];
505
+ const partialOptions = {
506
+ includePartial: options.detection.includePartialVins,
507
+ minPartialLength: options.detection.minPartialLength
508
+ };
462
509
  if (options.barcode.enabled) {
463
510
  (payload.barcodes ?? []).forEach(barcode => {
464
- list.push(...candidateFromBarcode(barcode, options.detection.validateChecksum));
511
+ list.push(...candidateFromBarcode(barcode, options.detection.validateChecksum, partialOptions));
465
512
  });
466
513
  }
467
514
  if (options.text.enabled) {
468
515
  (payload.textBlocks ?? []).forEach(textBlock => {
469
- list.push(...candidateFromText(textBlock, options.detection.validateChecksum));
516
+ list.push(...candidateFromText(textBlock, options.detection.validateChecksum, partialOptions));
470
517
  });
471
518
  }
472
519
  return dedupeCandidates(list);
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_RESOLVED_OPTIONS","barcode","enabled","formats","text","language","detection","resultMode","preferBarcode","validateChecksum","emitDuplicates","resolveOptions","options","_options$detection","_options$detection2","_options$barcode","_options$barcode2","_options$text","_options$text2","_options$detection3","_options$detection4","length","exports","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","VIN_PREFIX_PATTERNS","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","pattern","match","exec","captured","replace","candidate","toUpperCase","test","tokenizeCandidate","normalized","vin","cleaned","tokens","split","filter","token","hasSubstitutableChars","substitutions","sub","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","calculateBarcodeConfidence","confidence","checksumValid","candidateFromBarcode","values","rawValue","displayValue","boundingBox","map","source","origin","rawPayload","calculateTextConfidence","rawText","hasVinPrefix","Math","min","candidateFromText","valueMap","Map","elementText","order","lineText","blockText","resultText","v","_valueMap$get","has","get","set","entries","_detection$elementTex","_detection$lineText","includes","dedupeCandidates","_candidate$boundingBo","_candidate$boundingBo2","key","join","existing","buildVinCandidates","payload","list","barcodes","textBlocks","textBlock","pickBestCandidate","sorted","sort","a","b"],"sourceRoot":"../../src","sources":["vinUtils.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["DEFAULT_RESOLVED_OPTIONS","barcode","enabled","formats","text","language","detection","resultMode","preferBarcode","validateChecksum","emitDuplicates","includePartialVins","minPartialLength","resolveOptions","options","_options$detection","_options$detection2","_options$barcode","_options$barcode2","_options$text","_options$text2","_options$detection3","_options$detection4","_options$detection5","_options$detection6","length","exports","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","includePartial","normalized","vin","cleaned","tokens","split","filter","token","PARTIAL_PATTERN","RegExp","hasSubstitutableChars","substitutions","sub","len","startCandidate","START_PATTERN","endCandidate","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","calculateBarcodeConfidence","confidence","checksumValid","candidateFromBarcode","values","rawValue","displayValue","boundingBox","map","isPartial","source","origin","rawPayload","partialLength","calculateTextConfidence","rawText","hasVinPrefix","Math","min","candidateFromText","valueMap","Map","elementText","order","lineText","blockText","resultText","v","_valueMap$get","has","get","set","entries","_detection$elementTex","_detection$lineText","includes","dedupeCandidates","_candidate$boundingBo","_candidate$boundingBo2","key","join","existing","buildVinCandidates","payload","list","partialOptions","barcodes","textBlocks","textBlock","pickBestCandidate","sorted","sort","a","b"],"sourceRoot":"../../src","sources":["vinUtils.ts"],"mappings":"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","ignoreList":[]}
@@ -78,4 +78,5 @@ function useTextScanner(options) {
78
78
  }, [options.enabled, options.language]);
79
79
  }
80
80
  export { useVinScanner } from './useVinScanner';
81
+ export { isValidVin } from './vinUtils';
81
82
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","forwardRef","useMemo","useRef","Camera","VisionCamera","useFrameProcessor","useRunOnJS","createBarcodeScannerPlugin","createTextRecognitionPlugin","buildVinCandidates","pickBestCandidate","resolveOptions","props","ref","device","callback","options","rest","resolvedOptions","barcodeScanner","useBarcodeScanner","barcode","textScanner","useTextScanner","text","lastEmissionRef","undefined","handleDetections","payload","candidates","best","mode","detection","resultMode","filteredCandidates","fingerprint","map","candidate","value","join","emitDuplicates","current","timestamp","raw","barcodes","textBlocks","scanBarcodes","scanText","frameProcessor","frame","Date","now","createElement","Fragment","_extends","pixelFormat","enabled","formats","language","useVinScanner"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","forwardRef","useMemo","useRef","Camera","VisionCamera","useFrameProcessor","useRunOnJS","createBarcodeScannerPlugin","createTextRecognitionPlugin","buildVinCandidates","pickBestCandidate","resolveOptions","props","ref","device","callback","options","rest","resolvedOptions","barcodeScanner","useBarcodeScanner","barcode","textScanner","useTextScanner","text","lastEmissionRef","undefined","handleDetections","payload","candidates","best","mode","detection","resultMode","filteredCandidates","fingerprint","map","candidate","value","join","emitDuplicates","current","timestamp","raw","barcodes","textBlocks","scanBarcodes","scanText","frameProcessor","frame","Date","now","createElement","Fragment","_extends","pixelFormat","enabled","formats","language","useVinScanner","isValidVin"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","useRef","useFrameProcessor","useRunOnJS","createBarcodeScannerPlugin","createTextRecognitionPlugin","buildVinCandidates","pickBestCandidate","resolveOptions","useVinScanner","options","resolvedOptions","lastFingerprintRef","undefined","barcodeScanner","barcode","enabled","formats","textScanner","text","language","emitResult","result","event","onResult","frameProcessor","frame","barcodes","scanBarcodes","textBlocks","scanText","payload","timestamp","Date","now","candidates","best","mode","detection","resultMode","normalizedResult","length","fingerprint","map","candidate","value","join","emitDuplicates","current","raw"],"sourceRoot":"../../src","sources":["useVinScanner.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useMemo","useRef","useFrameProcessor","useRunOnJS","createBarcodeScannerPlugin","createTextRecognitionPlugin","buildVinCandidates","pickBestCandidate","resolveOptions","useVinScanner","options","resolvedOptions","lastFingerprintRef","undefined","barcodeScanner","barcode","enabled","formats","textScanner","text","language","emitResult","result","event","onResult","frameProcessor","frame","barcodes","scanBarcodes","textBlocks","scanText","payload","timestamp","Date","now","candidates","best","mode","detection","resultMode","normalizedResult","length","fingerprint","map","candidate","value","join","emitDuplicates","current","raw"],"sourceRoot":"../../src","sources":["useVinScanner.ts"],"mappings":"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","ignoreList":[]}
@@ -26,13 +26,15 @@ const DEFAULT_RESOLVED_OPTIONS = {
26
26
  resultMode: 'best',
27
27
  preferBarcode: true,
28
28
  validateChecksum: true,
29
- emitDuplicates: false
29
+ emitDuplicates: false,
30
+ includePartialVins: false,
31
+ minPartialLength: 13
30
32
  }
31
33
  };
32
34
  export const resolveOptions = options => {
33
35
  'worklet';
34
36
 
35
- var _options$detection, _options$detection2, _options$barcode, _options$barcode2, _options$text, _options$text2, _options$detection3, _options$detection4;
37
+ var _options$detection, _options$detection2, _options$barcode, _options$barcode2, _options$text, _options$text2, _options$detection3, _options$detection4, _options$detection5, _options$detection6;
36
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;
37
39
  const emitDuplicates = (options === null || options === void 0 || (_options$detection2 = options.detection) === null || _options$detection2 === void 0 ? void 0 : _options$detection2.emitDuplicates) ?? (resultMode === 'all' ? true : DEFAULT_RESOLVED_OPTIONS.detection.emitDuplicates);
38
40
  return {
@@ -48,7 +50,9 @@ export const resolveOptions = options => {
48
50
  resultMode,
49
51
  preferBarcode: (options === null || options === void 0 || (_options$detection3 = options.detection) === null || _options$detection3 === void 0 ? void 0 : _options$detection3.preferBarcode) ?? DEFAULT_RESOLVED_OPTIONS.detection.preferBarcode,
50
52
  validateChecksum: (options === null || options === void 0 || (_options$detection4 = options.detection) === null || _options$detection4 === void 0 ? void 0 : _options$detection4.validateChecksum) ?? DEFAULT_RESOLVED_OPTIONS.detection.validateChecksum,
51
- emitDuplicates
53
+ emitDuplicates,
54
+ includePartialVins: (options === null || options === void 0 || (_options$detection5 = options.detection) === null || _options$detection5 === void 0 ? void 0 : _options$detection5.includePartialVins) ?? DEFAULT_RESOLVED_OPTIONS.detection.includePartialVins,
55
+ minPartialLength: (options === null || options === void 0 || (_options$detection6 = options.detection) === null || _options$detection6 === void 0 ? void 0 : _options$detection6.minPartialLength) ?? DEFAULT_RESOLVED_OPTIONS.detection.minPartialLength
52
56
  }
53
57
  };
54
58
  };
@@ -108,9 +112,6 @@ const OCR_SUBSTITUTIONS = {
108
112
  'V': ['U']
109
113
  };
110
114
 
111
- // VIN prefix patterns to detect context
112
- const VIN_PREFIX_PATTERNS = [/(?:^|[\s:])VIN[:\s]+([A-Z0-9]{17,})/i, /(?:^|[\s:])V\.?I\.?N\.?[:\s]+([A-Z0-9]{17,})/i, /Vehicle\s+(?:Identification\s+)?(?:Number|ID|Id)[:\s]+([A-Z0-9]{17,})/i, /(?:^|[\s:])Chassis\s+(?:Number|No\.?)[:\s]+([A-Z0-9]{17,})/i, /(?:^|[\s:])Serial\s+(?:Number|No\.?)[:\s]+([A-Z0-9]{17,})/i];
113
-
114
115
  /**
115
116
  * Generate character substitution candidates for OCR error correction
116
117
  * This creates variations of the input by substituting commonly misread characters
@@ -161,13 +162,17 @@ const generateSubstitutionCandidates = (value, maxSubstitutions = 3) => {
161
162
 
162
163
  /**
163
164
  * Extract VINs using context-aware patterns (looking for VIN: prefix, etc.)
165
+ * Note: Regex patterns must be defined inside worklet for proper serialization
164
166
  */
165
167
  const extractWithContext = text => {
166
168
  'worklet';
167
169
 
168
170
  const matches = new Set();
169
171
  const VIN_PATTERN = /^[A-HJ-NPR-Z0-9]{17}$/;
170
- VIN_PREFIX_PATTERNS.forEach(pattern => {
172
+
173
+ // Define patterns inside worklet to ensure they're available in the worklet context
174
+ const patterns = [/(?:^|[\s:])VIN[:\s]+([A-Z0-9]{17,})/i, /(?:^|[\s:])V\.?I\.?N\.?[:\s]+([A-Z0-9]{17,})/i, /Vehicle\s+(?:Identification\s+)?(?:Number|ID|Id)[:\s]+([A-Z0-9]{17,})/i, /(?:^|[\s:])Chassis\s+(?:Number|No\.?)[:\s]+([A-Z0-9]{17,})/i, /(?:^|[\s:])Serial\s+(?:Number|No\.?)[:\s]+([A-Z0-9]{17,})/i];
175
+ patterns.forEach(pattern => {
171
176
  const match = pattern.exec(text);
172
177
  if (match && match[1]) {
173
178
  const captured = match[1].replace(/[^A-Z0-9]/gi, '');
@@ -186,11 +191,14 @@ const extractWithContext = text => {
186
191
  /**
187
192
  * Tokenize and extract VIN candidates from raw text
188
193
  * Includes OCR error correction and context-aware extraction
194
+ * Can optionally detect partial VINs (13-16 characters)
189
195
  */
190
- const tokenizeCandidate = value => {
196
+ const tokenizeCandidate = (value, options) => {
191
197
  'worklet';
192
198
 
193
199
  const VIN_PATTERN = /^[A-HJ-NPR-Z0-9]{17}$/;
200
+ const includePartial = (options === null || options === void 0 ? void 0 : options.includePartial) ?? false;
201
+ const minPartialLength = (options === null || options === void 0 ? void 0 : options.minPartialLength) ?? 13;
194
202
  if (!value) {
195
203
  return [];
196
204
  }
@@ -204,6 +212,13 @@ const tokenizeCandidate = value => {
204
212
  const cleaned = normalized.replace(/[^A-Z0-9]/g, ' ');
205
213
  const tokens = cleaned.split(/\s+/).filter(token => token.length > 0);
206
214
  tokens.forEach(token => {
215
+ // Check for partial VINs if enabled
216
+ if (includePartial && token.length >= minPartialLength && token.length < 17) {
217
+ const PARTIAL_PATTERN = new RegExp(`^[A-HJ-NPR-Z0-9]{${token.length}}$`);
218
+ if (PARTIAL_PATTERN.test(token)) {
219
+ matches.add(token);
220
+ }
221
+ }
207
222
  if (token.length < 17) {
208
223
  return;
209
224
  }
@@ -229,6 +244,26 @@ const tokenizeCandidate = value => {
229
244
  });
230
245
  }
231
246
  }
247
+
248
+ // Also check for partial VINs at the start/end of longer strings
249
+ if (includePartial) {
250
+ for (let len = minPartialLength; len < 17 && len <= token.length; len += 1) {
251
+ // Check start of token
252
+ const startCandidate = token.slice(0, len);
253
+ const START_PATTERN = new RegExp(`^[A-HJ-NPR-Z0-9]{${len}}$`);
254
+ if (START_PATTERN.test(startCandidate)) {
255
+ matches.add(startCandidate);
256
+ }
257
+
258
+ // Check end of token
259
+ if (token.length > len) {
260
+ const endCandidate = token.slice(token.length - len);
261
+ if (START_PATTERN.test(endCandidate)) {
262
+ matches.add(endCandidate);
263
+ }
264
+ }
265
+ }
266
+ }
232
267
  });
233
268
  return Array.from(matches);
234
269
  };
@@ -326,22 +361,26 @@ const calculateBarcodeConfidence = (value, validateChecksum) => {
326
361
  }
327
362
  return confidence;
328
363
  };
329
- const candidateFromBarcode = (detection, validateChecksum) => {
364
+ const candidateFromBarcode = (detection, validateChecksum, options) => {
330
365
  'worklet';
331
366
 
332
367
  const values = new Set();
333
- tokenizeCandidate(detection.rawValue ?? '').forEach(value => values.add(value));
334
- tokenizeCandidate(detection.displayValue ?? '').forEach(value => values.add(value));
368
+ tokenizeCandidate(detection.rawValue ?? '', options).forEach(value => values.add(value));
369
+ tokenizeCandidate(detection.displayValue ?? '', options).forEach(value => values.add(value));
335
370
  const boundingBox = toBoundingBox(detection, 'barcode');
336
371
  return Array.from(values).map(value => {
372
+ const isPartial = value.length < 17;
337
373
  const confidence = calculateBarcodeConfidence(value, validateChecksum);
338
374
  return {
339
375
  value,
340
376
  source: 'barcode',
341
- confidence,
377
+ confidence: isPartial ? confidence * 0.7 : confidence,
378
+ // Lower confidence for partial
342
379
  boundingBox,
343
380
  origin: detection.displayValue ? 'displayValue' : 'rawValue',
344
- rawPayload: detection
381
+ rawPayload: detection,
382
+ isPartial,
383
+ partialLength: isPartial ? value.length : undefined
345
384
  };
346
385
  });
347
386
  };
@@ -382,7 +421,7 @@ const calculateTextConfidence = (value, rawText, origin, validateChecksum) => {
382
421
  // Cap at 0.98 (never 1.0 for text recognition)
383
422
  return Math.min(confidence, 0.98);
384
423
  };
385
- const candidateFromText = (detection, validateChecksum) => {
424
+ const candidateFromText = (detection, validateChecksum, options) => {
386
425
  'worklet';
387
426
 
388
427
  const valueMap = new Map();
@@ -405,7 +444,7 @@ const candidateFromText = (detection, validateChecksum) => {
405
444
  order
406
445
  }) => {
407
446
  if (text) {
408
- tokenizeCandidate(text).forEach(v => {
447
+ tokenizeCandidate(text, options).forEach(v => {
409
448
  var _valueMap$get;
410
449
  if (!valueMap.has(v) || (((_valueMap$get = valueMap.get(v)) === null || _valueMap$get === void 0 ? void 0 : _valueMap$get.order) ?? 999) > order) {
411
450
  valueMap.set(v, {
@@ -422,14 +461,18 @@ const candidateFromText = (detection, validateChecksum) => {
422
461
  }]) => {
423
462
  var _detection$elementTex, _detection$lineText;
424
463
  const origin = (_detection$elementTex = detection.elementText) !== null && _detection$elementTex !== void 0 && _detection$elementTex.includes(value) ? 'element' : (_detection$lineText = detection.lineText) !== null && _detection$lineText !== void 0 && _detection$lineText.includes(value) ? 'line' : 'block';
464
+ const isPartial = value.length < 17;
425
465
  const confidence = calculateTextConfidence(value, rawText, origin, validateChecksum);
426
466
  return {
427
467
  value,
428
468
  source: 'text',
429
- confidence,
469
+ confidence: isPartial ? confidence * 0.6 : confidence,
470
+ // Lower confidence for partial
430
471
  boundingBox,
431
472
  origin,
432
- rawPayload: detection
473
+ rawPayload: detection,
474
+ isPartial,
475
+ partialLength: isPartial ? value.length : undefined
433
476
  };
434
477
  });
435
478
  };
@@ -451,14 +494,18 @@ export const buildVinCandidates = (payload, options) => {
451
494
  'worklet';
452
495
 
453
496
  const list = [];
497
+ const partialOptions = {
498
+ includePartial: options.detection.includePartialVins,
499
+ minPartialLength: options.detection.minPartialLength
500
+ };
454
501
  if (options.barcode.enabled) {
455
502
  (payload.barcodes ?? []).forEach(barcode => {
456
- list.push(...candidateFromBarcode(barcode, options.detection.validateChecksum));
503
+ list.push(...candidateFromBarcode(barcode, options.detection.validateChecksum, partialOptions));
457
504
  });
458
505
  }
459
506
  if (options.text.enabled) {
460
507
  (payload.textBlocks ?? []).forEach(textBlock => {
461
- list.push(...candidateFromText(textBlock, options.detection.validateChecksum));
508
+ list.push(...candidateFromText(textBlock, options.detection.validateChecksum, partialOptions));
462
509
  });
463
510
  }
464
511
  return dedupeCandidates(list);
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_RESOLVED_OPTIONS","barcode","enabled","formats","text","language","detection","resultMode","preferBarcode","validateChecksum","emitDuplicates","resolveOptions","options","_options$detection","_options$detection2","_options$barcode","_options$barcode2","_options$text","_options$text2","_options$detection3","_options$detection4","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","VIN_PREFIX_PATTERNS","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","pattern","match","exec","captured","replace","candidate","toUpperCase","test","tokenizeCandidate","normalized","vin","cleaned","tokens","split","filter","token","hasSubstitutableChars","substitutions","sub","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","calculateBarcodeConfidence","confidence","checksumValid","candidateFromBarcode","values","rawValue","displayValue","boundingBox","map","source","origin","rawPayload","calculateTextConfidence","rawText","hasVinPrefix","Math","min","candidateFromText","valueMap","Map","elementText","order","lineText","blockText","resultText","v","_valueMap$get","has","get","set","entries","_detection$elementTex","_detection$lineText","includes","dedupeCandidates","_candidate$boundingBo","_candidate$boundingBo2","key","join","existing","buildVinCandidates","payload","list","barcodes","textBlocks","textBlock","pickBestCandidate","sorted","sort","a","b"],"sourceRoot":"../../src","sources":["vinUtils.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["DEFAULT_RESOLVED_OPTIONS","barcode","enabled","formats","text","language","detection","resultMode","preferBarcode","validateChecksum","emitDuplicates","includePartialVins","minPartialLength","resolveOptions","options","_options$detection","_options$detection2","_options$barcode","_options$barcode2","_options$text","_options$text2","_options$detection3","_options$detection4","_options$detection5","_options$detection6","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","includePartial","normalized","vin","cleaned","tokens","split","filter","token","PARTIAL_PATTERN","RegExp","hasSubstitutableChars","substitutions","sub","len","startCandidate","START_PATTERN","endCandidate","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","calculateBarcodeConfidence","confidence","checksumValid","candidateFromBarcode","values","rawValue","displayValue","boundingBox","map","isPartial","source","origin","rawPayload","partialLength","calculateTextConfidence","rawText","hasVinPrefix","Math","min","candidateFromText","valueMap","Map","elementText","order","lineText","blockText","resultText","v","_valueMap$get","has","get","set","entries","_detection$elementTex","_detection$lineText","includes","dedupeCandidates","_candidate$boundingBo","_candidate$boundingBo2","key","join","existing","buildVinCandidates","payload","list","partialOptions","barcodes","textBlocks","textBlock","pickBestCandidate","sorted","sort","a","b"],"sourceRoot":"../../src","sources":["vinUtils.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Partial VIN Scanner Component
3
+ *
4
+ * This component demonstrates proper handling of partial VINs:
5
+ * 1. ✓ Flags partial VINs (isPartial: true)
6
+ * 2. ✓ Prevents auto-processing of incomplete VINs
7
+ * 3. ✓ Highlights partials differently (yellow dashed border)
8
+ * 4. ✓ Allows click to manually complete
9
+ * 5. ✓ Validates completed VIN before submission
10
+ */
11
+ import React from 'react';
12
+ interface Props {
13
+ onVinComplete: (vin: string, source: 'scan' | 'manual') => void;
14
+ onClose: () => void;
15
+ autoProcessThreshold?: number;
16
+ }
17
+ export declare function PartialVinScanner({ onVinComplete, onClose, autoProcessThreshold, }: Props): React.JSX.Element;
18
+ export {};
19
+ //# sourceMappingURL=PartialVinScanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PartialVinScanner.d.ts","sourceRoot":"","sources":["../../PartialVinScanner.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAwC,MAAM,OAAO,CAAC;AAqB7D,UAAU,KAAK;IACb,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,KAAK,IAAI,CAAC;IAChE,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,wBAAgB,iBAAiB,CAAC,EAChC,aAAa,EACb,OAAO,EACP,oBAA2B,GAC5B,EAAE,KAAK,qBAkYP"}
@@ -5,4 +5,5 @@ export declare const Camera: React.ForwardRefExoticComponent<{
5
5
  } & import("react-native-vision-camera").CameraProps & React.RefAttributes<any>>;
6
6
  export type { BarcodeDetection, BarcodeFormat, BarcodeScannerOptions, CameraTypes, DetectionOptions, TextDetection, TextRecognitionOptions, TextScannerOptions, VinCandidate, VinResultMode, VinScannerEvent, VinScannerOptions, } from './types';
7
7
  export { useVinScanner } from './useVinScanner';
8
+ export { isValidVin } from './vinUtils';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAuB3D,eAAO,MAAM,MAAM;;;gFAmFjB,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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAuB3D,eAAO,MAAM,MAAM;;;gFAmFjB,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"}
@@ -56,6 +56,8 @@ export type VinCandidate = {
56
56
  boundingBox?: BoundingBox;
57
57
  origin?: 'rawValue' | 'displayValue' | 'block' | 'line' | 'element';
58
58
  rawPayload?: BarcodeDetection | TextDetection;
59
+ isPartial?: boolean;
60
+ partialLength?: number;
59
61
  };
60
62
  export type VinScannerEvent = {
61
63
  mode: VinResultMode;
@@ -80,6 +82,8 @@ export type DetectionOptions = {
80
82
  preferBarcode?: boolean;
81
83
  validateChecksum?: boolean;
82
84
  emitDuplicates?: boolean;
85
+ includePartialVins?: boolean;
86
+ minPartialLength?: number;
83
87
  };
84
88
  export type VinScannerOptions = {
85
89
  barcode?: BarcodeScannerOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useVinScanner.d.ts","sourceRoot":"","sources":["../../../src/useVinScanner.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAGV,iBAAiB,EAClB,MAAM,SAAS,CAAC;AASjB,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,iBAAiB;;EAiFxD"}
1
+ {"version":3,"file":"useVinScanner.d.ts","sourceRoot":"","sources":["../../../src/useVinScanner.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAiC,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAShF,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,iBAAiB;;EAiFxD"}
@@ -24,6 +24,8 @@ export type ResolvedVinScannerOptions = {
24
24
  };
25
25
  detection: Required<DetectionOptions> & {
26
26
  resultMode: VinResultMode;
27
+ includePartialVins: boolean;
28
+ minPartialLength: number;
27
29
  };
28
30
  };
29
31
  export declare const resolveOptions: (options?: VinScannerOptions) => ResolvedVinScannerOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"vinUtils.d.ts","sourceRoot":"","sources":["../../../src/vinUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAEV,gBAAgB,EAChB,kBAAkB,EAElB,uBAAuB,EACvB,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,cAAc,EACf,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,kBAAkB,CAAC;KAC7B,CAAC;IACF,IAAI,EAAE;QACJ,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,uBAAuB,CAAC;KACnC,CAAC;IACF,SAAS,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG;QAAE,UAAU,EAAE,aAAa,CAAA;KAAE,CAAC;CACvE,CAAC;AAmBF,eAAO,MAAM,cAAc,GACzB,UAAU,iBAAiB,KAC1B,yBAmCF,CAAC;AAmMF,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,OA6B1C,CAAC;AAgQF,eAAO,MAAM,kBAAkB,GAC7B,SAAS,cAAc,EACvB,SAAS,yBAAyB,KACjC,YAAY,EAkBd,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,YAAY,YAAY,EAAE,EAC1B,SAAS,yBAAyB,KACjC,YAAY,GAAG,IAejB,CAAC"}
1
+ {"version":3,"file":"vinUtils.d.ts","sourceRoot":"","sources":["../../../src/vinUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAEV,gBAAgB,EAChB,kBAAkB,EAElB,uBAAuB,EACvB,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,cAAc,EACf,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,kBAAkB,CAAC;KAC7B,CAAC;IACF,IAAI,EAAE;QACJ,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,uBAAuB,CAAC;KACnC,CAAC;IACF,SAAS,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG;QACtC,UAAU,EAAE,aAAa,CAAC;QAC1B,kBAAkB,EAAE,OAAO,CAAC;QAC5B,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH,CAAC;AAqBF,eAAO,MAAM,cAAc,GACzB,UAAU,iBAAiB,KAC1B,yBAyCF,CAAC;AA+OF,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,OA6B1C,CAAC;AAwQF,eAAO,MAAM,kBAAkB,GAC7B,SAAS,cAAc,EACvB,SAAS,yBAAyB,KACjC,YAAY,EA+Bd,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,YAAY,YAAY,EAAE,EAC1B,SAAS,yBAAyB,KACjC,YAAY,GAAG,IAejB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mleonard9/vin-scanner",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "High-performance VIN scanner for React Native Vision Camera powered by Google ML Kit barcode + text recognition.",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
package/src/index.tsx CHANGED
@@ -146,3 +146,4 @@ export type {
146
146
  } from './types';
147
147
 
148
148
  export { useVinScanner } from './useVinScanner';
149
+ export { isValidVin } from './vinUtils';
package/src/types.ts CHANGED
@@ -89,6 +89,8 @@ export type VinCandidate = {
89
89
  boundingBox?: BoundingBox;
90
90
  origin?: 'rawValue' | 'displayValue' | 'block' | 'line' | 'element';
91
91
  rawPayload?: BarcodeDetection | TextDetection;
92
+ isPartial?: boolean; // True if VIN is incomplete (< 17 characters)
93
+ partialLength?: number; // Length of partial VIN if isPartial is true
92
94
  };
93
95
 
94
96
  export type VinScannerEvent = {
@@ -117,13 +119,18 @@ export type DetectionOptions = {
117
119
  preferBarcode?: boolean;
118
120
  validateChecksum?: boolean;
119
121
  emitDuplicates?: boolean;
122
+ includePartialVins?: boolean; // Allow detection of incomplete VINs (13-16 chars)
123
+ minPartialLength?: number; // Minimum length for partial VINs (default: 13)
120
124
  };
121
125
 
122
126
  export type VinScannerOptions = {
123
127
  barcode?: BarcodeScannerOptions;
124
128
  text?: TextScannerOptions;
125
129
  detection?: DetectionOptions;
126
- onResult?: (result: VinCandidate | VinCandidate[] | null, event: VinScannerEvent) => void;
130
+ onResult?: (
131
+ result: VinCandidate | VinCandidate[] | null,
132
+ event: VinScannerEvent
133
+ ) => void;
127
134
  };
128
135
 
129
136
  export type CameraTypes = {
@@ -2,11 +2,7 @@ import { useMemo, useRef } from 'react';
2
2
  import { useFrameProcessor } from 'react-native-vision-camera';
3
3
  import { useRunOnJS } from 'react-native-worklets-core';
4
4
  import type { Frame } from 'react-native-vision-camera';
5
- import type {
6
- VinCandidate,
7
- VinScannerEvent,
8
- VinScannerOptions,
9
- } from './types';
5
+ import type { VinCandidate, VinScannerEvent, VinScannerOptions } from './types';
10
6
  import { createBarcodeScannerPlugin } from './scanBarcodes';
11
7
  import { createTextRecognitionPlugin } from './scanText';
12
8
  import {
@@ -62,12 +58,12 @@ export function useVinScanner(options?: VinScannerOptions) {
62
58
  ? candidates.length > 0
63
59
  ? candidates
64
60
  : null
65
- : best ?? null;
61
+ : (best ?? null);
66
62
 
67
63
  const fingerprint =
68
64
  mode === 'all'
69
65
  ? candidates.map((candidate) => candidate.value).join('|') || null
70
- : best?.value ?? null;
66
+ : (best?.value ?? null);
71
67
 
72
68
  if (!resolvedOptions.detection.emitDuplicates) {
73
69
  if (
@@ -97,4 +93,3 @@ export function useVinScanner(options?: VinScannerOptions) {
97
93
 
98
94
  return { frameProcessor };
99
95
  }
100
-
package/src/vinUtils.ts CHANGED
@@ -34,7 +34,11 @@ export type ResolvedVinScannerOptions = {
34
34
  enabled: boolean;
35
35
  language: TextRecognitionLanguage;
36
36
  };
37
- detection: Required<DetectionOptions> & { resultMode: VinResultMode };
37
+ detection: Required<DetectionOptions> & {
38
+ resultMode: VinResultMode;
39
+ includePartialVins: boolean;
40
+ minPartialLength: number;
41
+ };
38
42
  };
39
43
 
40
44
  const DEFAULT_RESOLVED_OPTIONS: ResolvedVinScannerOptions = {
@@ -51,6 +55,8 @@ const DEFAULT_RESOLVED_OPTIONS: ResolvedVinScannerOptions = {
51
55
  preferBarcode: true,
52
56
  validateChecksum: true,
53
57
  emitDuplicates: false,
58
+ includePartialVins: false,
59
+ minPartialLength: 13,
54
60
  },
55
61
  };
56
62
 
@@ -89,6 +95,12 @@ export const resolveOptions = (
89
95
  options?.detection?.validateChecksum ??
90
96
  DEFAULT_RESOLVED_OPTIONS.detection.validateChecksum,
91
97
  emitDuplicates,
98
+ includePartialVins:
99
+ options?.detection?.includePartialVins ??
100
+ DEFAULT_RESOLVED_OPTIONS.detection.includePartialVins,
101
+ minPartialLength:
102
+ options?.detection?.minPartialLength ??
103
+ DEFAULT_RESOLVED_OPTIONS.detection.minPartialLength,
92
104
  },
93
105
  };
94
106
  };
@@ -141,15 +153,6 @@ const OCR_SUBSTITUTIONS: Record<string, string[]> = {
141
153
  'V': ['U'],
142
154
  };
143
155
 
144
- // VIN prefix patterns to detect context
145
- const VIN_PREFIX_PATTERNS = [
146
- /(?:^|[\s:])VIN[:\s]+([A-Z0-9]{17,})/i,
147
- /(?:^|[\s:])V\.?I\.?N\.?[:\s]+([A-Z0-9]{17,})/i,
148
- /Vehicle\s+(?:Identification\s+)?(?:Number|ID|Id)[:\s]+([A-Z0-9]{17,})/i,
149
- /(?:^|[\s:])Chassis\s+(?:Number|No\.?)[:\s]+([A-Z0-9]{17,})/i,
150
- /(?:^|[\s:])Serial\s+(?:Number|No\.?)[:\s]+([A-Z0-9]{17,})/i,
151
- ];
152
-
153
156
  /**
154
157
  * Generate character substitution candidates for OCR error correction
155
158
  * This creates variations of the input by substituting commonly misread characters
@@ -211,13 +214,23 @@ const generateSubstitutionCandidates = (
211
214
 
212
215
  /**
213
216
  * Extract VINs using context-aware patterns (looking for VIN: prefix, etc.)
217
+ * Note: Regex patterns must be defined inside worklet for proper serialization
214
218
  */
215
219
  const extractWithContext = (text: string): string[] => {
216
220
  'worklet';
217
221
  const matches = new Set<string>();
218
222
  const VIN_PATTERN = /^[A-HJ-NPR-Z0-9]{17}$/;
219
223
 
220
- VIN_PREFIX_PATTERNS.forEach((pattern) => {
224
+ // Define patterns inside worklet to ensure they're available in the worklet context
225
+ const patterns = [
226
+ /(?:^|[\s:])VIN[:\s]+([A-Z0-9]{17,})/i,
227
+ /(?:^|[\s:])V\.?I\.?N\.?[:\s]+([A-Z0-9]{17,})/i,
228
+ /Vehicle\s+(?:Identification\s+)?(?:Number|ID|Id)[:\s]+([A-Z0-9]{17,})/i,
229
+ /(?:^|[\s:])Chassis\s+(?:Number|No\.?)[:\s]+([A-Z0-9]{17,})/i,
230
+ /(?:^|[\s:])Serial\s+(?:Number|No\.?)[:\s]+([A-Z0-9]{17,})/i,
231
+ ];
232
+
233
+ patterns.forEach((pattern) => {
221
234
  const match = pattern.exec(text);
222
235
  if (match && match[1]) {
223
236
  const captured = match[1].replace(/[^A-Z0-9]/gi, '');
@@ -237,10 +250,17 @@ const extractWithContext = (text: string): string[] => {
237
250
  /**
238
251
  * Tokenize and extract VIN candidates from raw text
239
252
  * Includes OCR error correction and context-aware extraction
253
+ * Can optionally detect partial VINs (13-16 characters)
240
254
  */
241
- const tokenizeCandidate = (value: string): string[] => {
255
+ const tokenizeCandidate = (
256
+ value: string,
257
+ options?: { includePartial?: boolean; minPartialLength?: number }
258
+ ): string[] => {
242
259
  'worklet';
243
260
  const VIN_PATTERN = /^[A-HJ-NPR-Z0-9]{17}$/;
261
+ const includePartial = options?.includePartial ?? false;
262
+ const minPartialLength = options?.minPartialLength ?? 13;
263
+
244
264
  if (!value) {
245
265
  return [];
246
266
  }
@@ -256,6 +276,18 @@ const tokenizeCandidate = (value: string): string[] => {
256
276
  const tokens = cleaned.split(/\s+/).filter((token) => token.length > 0);
257
277
 
258
278
  tokens.forEach((token) => {
279
+ // Check for partial VINs if enabled
280
+ if (
281
+ includePartial &&
282
+ token.length >= minPartialLength &&
283
+ token.length < 17
284
+ ) {
285
+ const PARTIAL_PATTERN = new RegExp(`^[A-HJ-NPR-Z0-9]{${token.length}}$`);
286
+ if (PARTIAL_PATTERN.test(token)) {
287
+ matches.add(token);
288
+ }
289
+ }
290
+
259
291
  if (token.length < 17) {
260
292
  return;
261
293
  }
@@ -281,6 +313,30 @@ const tokenizeCandidate = (value: string): string[] => {
281
313
  });
282
314
  }
283
315
  }
316
+
317
+ // Also check for partial VINs at the start/end of longer strings
318
+ if (includePartial) {
319
+ for (
320
+ let len = minPartialLength;
321
+ len < 17 && len <= token.length;
322
+ len += 1
323
+ ) {
324
+ // Check start of token
325
+ const startCandidate = token.slice(0, len);
326
+ const START_PATTERN = new RegExp(`^[A-HJ-NPR-Z0-9]{${len}}$`);
327
+ if (START_PATTERN.test(startCandidate)) {
328
+ matches.add(startCandidate);
329
+ }
330
+
331
+ // Check end of token
332
+ if (token.length > len) {
333
+ const endCandidate = token.slice(token.length - len);
334
+ if (START_PATTERN.test(endCandidate)) {
335
+ matches.add(endCandidate);
336
+ }
337
+ }
338
+ }
339
+ }
284
340
  });
285
341
 
286
342
  return Array.from(matches);
@@ -434,26 +490,30 @@ const calculateBarcodeConfidence = (
434
490
 
435
491
  const candidateFromBarcode = (
436
492
  detection: BarcodeDetection,
437
- validateChecksum: boolean
493
+ validateChecksum: boolean,
494
+ options?: { includePartial?: boolean; minPartialLength?: number }
438
495
  ): VinCandidate[] => {
439
496
  'worklet';
440
497
  const values = new Set<string>();
441
- tokenizeCandidate(detection.rawValue ?? '').forEach((value) =>
498
+ tokenizeCandidate(detection.rawValue ?? '', options).forEach((value) =>
442
499
  values.add(value)
443
500
  );
444
- tokenizeCandidate(detection.displayValue ?? '').forEach((value) =>
501
+ tokenizeCandidate(detection.displayValue ?? '', options).forEach((value) =>
445
502
  values.add(value)
446
503
  );
447
504
  const boundingBox = toBoundingBox(detection, 'barcode');
448
505
  return Array.from(values).map((value) => {
506
+ const isPartial = value.length < 17;
449
507
  const confidence = calculateBarcodeConfidence(value, validateChecksum);
450
508
  return {
451
509
  value,
452
510
  source: 'barcode' as const,
453
- confidence,
511
+ confidence: isPartial ? confidence * 0.7 : confidence, // Lower confidence for partial
454
512
  boundingBox,
455
513
  origin: detection.displayValue ? 'displayValue' : 'rawValue',
456
514
  rawPayload: detection,
515
+ isPartial,
516
+ partialLength: isPartial ? value.length : undefined,
457
517
  };
458
518
  });
459
519
  };
@@ -502,7 +562,8 @@ const calculateTextConfidence = (
502
562
 
503
563
  const candidateFromText = (
504
564
  detection: TextDetection,
505
- validateChecksum: boolean
565
+ validateChecksum: boolean,
566
+ options?: { includePartial?: boolean; minPartialLength?: number }
506
567
  ): VinCandidate[] => {
507
568
  'worklet';
508
569
  const valueMap = new Map<string, { rawText: string; order: number }>();
@@ -515,7 +576,7 @@ const candidateFromText = (
515
576
  { text: detection.resultText, order: 4 },
516
577
  ].forEach(({ text, order }) => {
517
578
  if (text) {
518
- tokenizeCandidate(text).forEach((v) => {
579
+ tokenizeCandidate(text, options).forEach((v) => {
519
580
  if (!valueMap.has(v) || (valueMap.get(v)?.order ?? 999) > order) {
520
581
  valueMap.set(v, { rawText: text, order });
521
582
  }
@@ -535,6 +596,7 @@ const candidateFromText = (
535
596
  ? 'line'
536
597
  : 'block';
537
598
 
599
+ const isPartial = value.length < 17;
538
600
  const confidence = calculateTextConfidence(
539
601
  value,
540
602
  rawText,
@@ -545,10 +607,12 @@ const candidateFromText = (
545
607
  return {
546
608
  value,
547
609
  source: 'text' as const,
548
- confidence,
610
+ confidence: isPartial ? confidence * 0.6 : confidence, // Lower confidence for partial
549
611
  boundingBox,
550
612
  origin,
551
613
  rawPayload: detection,
614
+ isPartial,
615
+ partialLength: isPartial ? value.length : undefined,
552
616
  };
553
617
  });
554
618
  };
@@ -577,17 +641,30 @@ export const buildVinCandidates = (
577
641
  ): VinCandidate[] => {
578
642
  'worklet';
579
643
  const list: VinCandidate[] = [];
644
+ const partialOptions = {
645
+ includePartial: options.detection.includePartialVins,
646
+ minPartialLength: options.detection.minPartialLength,
647
+ };
648
+
580
649
  if (options.barcode.enabled) {
581
650
  (payload.barcodes ?? []).forEach((barcode) => {
582
651
  list.push(
583
- ...candidateFromBarcode(barcode, options.detection.validateChecksum)
652
+ ...candidateFromBarcode(
653
+ barcode,
654
+ options.detection.validateChecksum,
655
+ partialOptions
656
+ )
584
657
  );
585
658
  });
586
659
  }
587
660
  if (options.text.enabled) {
588
661
  (payload.textBlocks ?? []).forEach((textBlock) => {
589
662
  list.push(
590
- ...candidateFromText(textBlock, options.detection.validateChecksum)
663
+ ...candidateFromText(
664
+ textBlock,
665
+ options.detection.validateChecksum,
666
+ partialOptions
667
+ )
591
668
  );
592
669
  });
593
670
  }