@mleonard9/vin-scanner 1.2.4 → 1.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/com/visioncamerabarcodescanner/VisionCameraBarcodeScannerModule.kt +2 -52
- package/android/src/main/java/com/visioncameratextrecognition/VisionCameraTextRecognitionModule.kt +0 -31
- package/ios/VisionCameraBarcodeScanner.m +2 -34
- package/ios/VisionCameraTextRecognition.m +0 -26
- package/lib/commonjs/scanBarcodes.js +4 -16
- package/lib/commonjs/scanBarcodes.js.map +1 -1
- package/lib/commonjs/scanText.js +4 -16
- package/lib/commonjs/scanText.js.map +1 -1
- package/lib/commonjs/useVinScanner.js +6 -9
- package/lib/commonjs/useVinScanner.js.map +1 -1
- package/lib/commonjs/vinUtils.js +7 -18
- package/lib/commonjs/vinUtils.js.map +1 -1
- package/lib/module/scanBarcodes.js +4 -16
- package/lib/module/scanBarcodes.js.map +1 -1
- package/lib/module/scanText.js +4 -16
- package/lib/module/scanText.js.map +1 -1
- package/lib/module/useVinScanner.js +6 -9
- package/lib/module/useVinScanner.js.map +1 -1
- package/lib/module/vinUtils.js +7 -18
- package/lib/module/vinUtils.js.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 +0 -17
- 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 +1 -2
- package/lib/typescript/src/vinUtils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/scanBarcodes.ts +6 -29
- package/src/scanText.ts +6 -24
- package/src/types.ts +0 -18
- package/src/useVinScanner.ts +6 -9
- package/src/vinUtils.ts +11 -13
package/android/src/main/java/com/visioncamerabarcodescanner/VisionCameraBarcodeScannerModule.kt
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
package com.visioncamerabarcodescanner
|
|
2
2
|
|
|
3
|
-
import android.graphics.Rect
|
|
4
3
|
import android.media.Image
|
|
5
4
|
import com.google.android.gms.tasks.Task
|
|
6
5
|
import com.google.android.gms.tasks.Tasks
|
|
@@ -79,14 +78,6 @@ class VisionCameraBarcodeScannerModule(
|
|
|
79
78
|
}
|
|
80
79
|
}
|
|
81
80
|
|
|
82
|
-
private fun isInRegion(rect: Rect, roi: Rect?): Boolean {
|
|
83
|
-
if (roi == null) return true
|
|
84
|
-
// Check if the detection center is within the ROI
|
|
85
|
-
val centerX = rect.centerX()
|
|
86
|
-
val centerY = rect.centerY()
|
|
87
|
-
return roi.contains(centerX, centerY)
|
|
88
|
-
}
|
|
89
|
-
|
|
90
81
|
override fun callback(frame: Frame, arguments: Map<String, Any>?): Any {
|
|
91
82
|
return try {
|
|
92
83
|
val options = mergedOptions(arguments)
|
|
@@ -98,56 +89,15 @@ class VisionCameraBarcodeScannerModule(
|
|
|
98
89
|
val task: Task<List<Barcode>> = scanner.process(image)
|
|
99
90
|
val barcodes: List<Barcode> = Tasks.await(task)
|
|
100
91
|
|
|
101
|
-
// Region of Interest processing
|
|
102
|
-
// ROI is passed as fractional coordinates (0.0-1.0) relative to the image size
|
|
103
|
-
var roiRect: Rect? = null
|
|
104
|
-
val roiMap = options["regionOfInterest"] as? Map<*, *>
|
|
105
|
-
if (roiMap != null) {
|
|
106
|
-
val top = (roiMap["top"] as? Double ?: 0.0)
|
|
107
|
-
val left = (roiMap["left"] as? Double ?: 0.0)
|
|
108
|
-
val width = (roiMap["width"] as? Double ?: 1.0)
|
|
109
|
-
val height = (roiMap["height"] as? Double ?: 1.0)
|
|
110
|
-
|
|
111
|
-
// The input image dimensions (rotated)
|
|
112
|
-
// MLKit coordinates match the InputImage dimensions.
|
|
113
|
-
// If we have rotation, we need to be careful.
|
|
114
|
-
// However, for simplicity in V1, let's assume ROI is relative to the *displayed* frame
|
|
115
|
-
// which matches MLKit's coordinate system after rotation usually?
|
|
116
|
-
// Actually, MLKit reports coordinates in the image's coordinate system.
|
|
117
|
-
// If rotation is 90, width/height swap.
|
|
118
|
-
// Let's use the dimensions from MLKit's InputImage if accessible, or Frame.
|
|
119
|
-
// VisionCamera Frame width/height are oriented.
|
|
120
|
-
|
|
121
|
-
val imgWidth = image.width
|
|
122
|
-
val imgHeight = image.height
|
|
123
|
-
|
|
124
|
-
val rLeft = (left * imgWidth).toInt()
|
|
125
|
-
val rTop = (top * imgHeight).toInt()
|
|
126
|
-
val rRight = rLeft + (width * imgWidth).toInt()
|
|
127
|
-
val rBottom = rTop + (height * imgHeight).toInt()
|
|
128
|
-
|
|
129
|
-
roiRect = Rect(rLeft, rTop, rRight, rBottom)
|
|
130
|
-
}
|
|
131
|
-
|
|
132
92
|
val detections = ArrayList<Map<String, Any?>>()
|
|
133
|
-
// We can't predict exact size if we filter by ROI, but allocating max size is safe for SharedArray
|
|
134
|
-
// Ideally we would compact it, but SharedArray is fixed size.
|
|
135
|
-
// We'll filter in the loop and just leave unused slots at the end (or compact indices).
|
|
136
|
-
// Actually, simpler to just build the list and then write to SharedArray.
|
|
137
|
-
|
|
138
|
-
val filteredBarcodes = barcodes.filter { barcode ->
|
|
139
|
-
val box = barcode.boundingBox
|
|
140
|
-
box == null || isInRegion(box, roiRect)
|
|
141
|
-
}
|
|
142
|
-
|
|
143
93
|
val sharedArray =
|
|
144
|
-
if (
|
|
94
|
+
if (barcodes.isNotEmpty()) SharedArray(proxy, barcodes.size * BOX_STRIDE * java.lang.Float.BYTES)
|
|
145
95
|
else null
|
|
146
96
|
val floatBuffer = sharedArray?.byteBuffer
|
|
147
97
|
?.order(ByteOrder.nativeOrder())
|
|
148
98
|
?.asFloatBuffer()
|
|
149
99
|
|
|
150
|
-
|
|
100
|
+
barcodes.forEachIndexed { index, barcode ->
|
|
151
101
|
val detection = HashMap<String, Any?>()
|
|
152
102
|
detection["rawValue"] = barcode.rawValue
|
|
153
103
|
detection["displayValue"] = barcode.displayValue
|
package/android/src/main/java/com/visioncameratextrecognition/VisionCameraTextRecognitionModule.kt
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
package com.visioncameratextrecognition
|
|
2
2
|
|
|
3
|
-
import android.graphics.Rect
|
|
4
3
|
import android.media.Image
|
|
5
4
|
import com.google.android.gms.tasks.Task
|
|
6
5
|
import com.google.android.gms.tasks.Tasks
|
|
@@ -54,12 +53,6 @@ class VisionCameraTextRecognitionModule(
|
|
|
54
53
|
}
|
|
55
54
|
}
|
|
56
55
|
|
|
57
|
-
private fun isInRegion(rect: Rect?, roi: Rect?): Boolean {
|
|
58
|
-
if (roi == null || rect == null) return true
|
|
59
|
-
// Check if overlap or contained. For VIN scanning, contained center is usually best
|
|
60
|
-
return roi.contains(rect.centerX(), rect.centerY())
|
|
61
|
-
}
|
|
62
|
-
|
|
63
56
|
override fun callback(frame: Frame, arguments: Map<String, Any>?): Any {
|
|
64
57
|
try {
|
|
65
58
|
val mediaImage: Image = frame.image
|
|
@@ -78,32 +71,10 @@ class VisionCameraTextRecognitionModule(
|
|
|
78
71
|
val detections = ArrayList<Map<String, Any?>>()
|
|
79
72
|
val boxValues = ArrayList<FloatArray>()
|
|
80
73
|
|
|
81
|
-
// Calculate ROI if present
|
|
82
|
-
var roiRect: Rect? = null
|
|
83
|
-
val roiMap = arguments?.get("regionOfInterest") as? Map<*, *>
|
|
84
|
-
if (roiMap != null) {
|
|
85
|
-
val top = (roiMap["top"] as? Double ?: 0.0)
|
|
86
|
-
val left = (roiMap["left"] as? Double ?: 0.0)
|
|
87
|
-
val width = (roiMap["width"] as? Double ?: 1.0)
|
|
88
|
-
val height = (roiMap["height"] as? Double ?: 1.0)
|
|
89
|
-
|
|
90
|
-
val imgWidth = image.width
|
|
91
|
-
val imgHeight = image.height
|
|
92
|
-
|
|
93
|
-
val rLeft = (left * imgWidth).toInt()
|
|
94
|
-
val rTop = (top * imgHeight).toInt()
|
|
95
|
-
val rRight = rLeft + (width * imgWidth).toInt()
|
|
96
|
-
val rBottom = rTop + (height * imgHeight).toInt()
|
|
97
|
-
|
|
98
|
-
roiRect = Rect(rLeft, rTop, rRight, rBottom)
|
|
99
|
-
}
|
|
100
|
-
|
|
101
74
|
// Compile regex if pattern provided
|
|
102
75
|
val pattern = if (validationPattern != null) Pattern.compile(validationPattern) else null
|
|
103
76
|
|
|
104
77
|
result?.textBlocks?.forEach { block ->
|
|
105
|
-
if (!isInRegion(block.boundingBox, roiRect)) return@forEach
|
|
106
|
-
|
|
107
78
|
// Native filtering optimization:
|
|
108
79
|
// If a validation pattern is provided, we check if the block text matches it.
|
|
109
80
|
// If not, we skip it. This significantly reduces bridge traffic.
|
|
@@ -136,8 +107,6 @@ class VisionCameraTextRecognitionModule(
|
|
|
136
107
|
)
|
|
137
108
|
}
|
|
138
109
|
block.lines.forEach { line ->
|
|
139
|
-
// Optional: we could also check line bounding box against ROI, but block check is usually sufficient and faster
|
|
140
|
-
|
|
141
110
|
if (line.elements.isEmpty()) {
|
|
142
111
|
val detection = HashMap<String, Any?>()
|
|
143
112
|
detection["resultText"] = resultText
|
|
@@ -37,12 +37,6 @@
|
|
|
37
37
|
return self;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
- (BOOL)isRect:(CGRect)rect withinROI:(CGRect)roi {
|
|
41
|
-
// Check if the center of the rect is within the ROI
|
|
42
|
-
CGPoint center = CGPointMake(CGRectGetMidX(rect), CGRectGetMidY(rect));
|
|
43
|
-
return CGRectContainsPoint(roi, center);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
40
|
- (id _Nullable)callback:(Frame* _Nonnull)frame
|
|
47
41
|
withArguments:(NSDictionary* _Nullable)arguments {
|
|
48
42
|
NSMutableDictionary *config = [self.configuration mutableCopy] ?: [NSMutableDictionary dictionary];
|
|
@@ -91,21 +85,6 @@
|
|
|
91
85
|
NSMutableArray *detections = [NSMutableArray array];
|
|
92
86
|
__block NSDictionary *resultPayload = @{};
|
|
93
87
|
|
|
94
|
-
// Region of Interest
|
|
95
|
-
NSDictionary *roiConfig = config[@"regionOfInterest"];
|
|
96
|
-
CGRect roiRect = CGRectNull;
|
|
97
|
-
if (roiConfig) {
|
|
98
|
-
CGFloat top = [roiConfig[@"top"] doubleValue];
|
|
99
|
-
CGFloat left = [roiConfig[@"left"] doubleValue];
|
|
100
|
-
CGFloat width = [roiConfig[@"width"] doubleValue];
|
|
101
|
-
CGFloat height = [roiConfig[@"height"] doubleValue];
|
|
102
|
-
|
|
103
|
-
CGFloat imgWidth = CVPixelBufferGetWidth(CMSampleBufferGetImageBuffer(buffer));
|
|
104
|
-
CGFloat imgHeight = CVPixelBufferGetHeight(CMSampleBufferGetImageBuffer(buffer));
|
|
105
|
-
|
|
106
|
-
roiRect = CGRectMake(left * imgWidth, top * imgHeight, width * imgWidth, height * imgHeight);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
88
|
dispatch_group_t dispatchGroup = dispatch_group_create();
|
|
110
89
|
dispatch_group_enter(dispatchGroup);
|
|
111
90
|
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
|
|
@@ -116,26 +95,15 @@
|
|
|
116
95
|
dispatch_group_leave(dispatchGroup);
|
|
117
96
|
return;
|
|
118
97
|
}
|
|
119
|
-
|
|
120
|
-
// Filter barcodes by ROI
|
|
121
|
-
NSMutableArray<MLKBarcode *> *filteredBarcodes = [NSMutableArray array];
|
|
122
|
-
if (barcodes.count > 0) {
|
|
123
|
-
for (MLKBarcode *barcode in barcodes) {
|
|
124
|
-
if (CGRectIsNull(roiRect) || [self isRect:barcode.frame withinROI:roiRect]) {
|
|
125
|
-
[filteredBarcodes addObject:barcode];
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
|
|
130
98
|
SharedArray *sharedBoxes = nil;
|
|
131
99
|
float *boxData = nil;
|
|
132
|
-
const NSUInteger count =
|
|
100
|
+
const NSUInteger count = barcodes.count;
|
|
133
101
|
if (count > 0 && self.proxyHolder != nil) {
|
|
134
102
|
sharedBoxes = [[SharedArray alloc] initWithProxy:self.proxyHolder
|
|
135
103
|
allocateWithSize:count * sizeof(float) * 6];
|
|
136
104
|
boxData = (float *)sharedBoxes.data;
|
|
137
105
|
}
|
|
138
|
-
[
|
|
106
|
+
[barcodes enumerateObjectsUsingBlock:^(MLKBarcode * _Nonnull barcode, NSUInteger idx, BOOL * _Nonnull stop) {
|
|
139
107
|
NSMutableDictionary *obj = [[NSMutableDictionary alloc] init];
|
|
140
108
|
obj[@"displayValue"] = barcode.displayValue ?: (id)kCFNull;
|
|
141
109
|
obj[@"rawValue"] = barcode.rawValue ?: (id)kCFNull;
|
|
@@ -78,12 +78,6 @@
|
|
|
78
78
|
return fallback;
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
-
- (BOOL)isRect:(CGRect)rect withinROI:(CGRect)roi {
|
|
82
|
-
// Check if the center of the rect is within the ROI
|
|
83
|
-
CGPoint center = CGPointMake(CGRectGetMidX(rect), CGRectGetMidY(rect));
|
|
84
|
-
return CGRectContainsPoint(roi, center);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
81
|
- (id _Nullable)callback:(Frame* _Nonnull)frame
|
|
88
82
|
withArguments:(NSDictionary* _Nullable)arguments {
|
|
89
83
|
CMSampleBufferRef buffer = frame.buffer;
|
|
@@ -120,21 +114,6 @@
|
|
|
120
114
|
NSString *language = arguments[@"language"] ?: self.preferredLanguage ?: @"latin";
|
|
121
115
|
NSString *validationPattern = arguments[@"validationPattern"];
|
|
122
116
|
|
|
123
|
-
// Region of Interest
|
|
124
|
-
NSDictionary *roiConfig = arguments[@"regionOfInterest"];
|
|
125
|
-
CGRect roiRect = CGRectNull;
|
|
126
|
-
if (roiConfig) {
|
|
127
|
-
CGFloat top = [roiConfig[@"top"] doubleValue];
|
|
128
|
-
CGFloat left = [roiConfig[@"left"] doubleValue];
|
|
129
|
-
CGFloat width = [roiConfig[@"width"] doubleValue];
|
|
130
|
-
CGFloat height = [roiConfig[@"height"] doubleValue];
|
|
131
|
-
|
|
132
|
-
CGFloat imgWidth = CVPixelBufferGetWidth(CMSampleBufferGetImageBuffer(buffer));
|
|
133
|
-
CGFloat imgHeight = CVPixelBufferGetHeight(CMSampleBufferGetImageBuffer(buffer));
|
|
134
|
-
|
|
135
|
-
roiRect = CGRectMake(left * imgWidth, top * imgHeight, width * imgWidth, height * imgHeight);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
117
|
NSRegularExpression *regex = nil;
|
|
139
118
|
if (validationPattern.length > 0) {
|
|
140
119
|
NSError *regexError = nil;
|
|
@@ -158,11 +137,6 @@
|
|
|
158
137
|
}
|
|
159
138
|
NSString *resultText = result.text;
|
|
160
139
|
for (MLKTextBlock *block in result.blocks) {
|
|
161
|
-
// Filter by ROI
|
|
162
|
-
if (!CGRectIsNull(roiRect) && ![self isRect:block.frame withinROI:roiRect]) {
|
|
163
|
-
continue;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
140
|
// Filter by Regex
|
|
167
141
|
if (regex != nil) {
|
|
168
142
|
NSRange range = NSMakeRange(0, block.text.length);
|
|
@@ -70,7 +70,7 @@ const normalizeBarcodeDetections = payload => {
|
|
|
70
70
|
return output;
|
|
71
71
|
});
|
|
72
72
|
};
|
|
73
|
-
const mergeArgs = (baseArgs, overrides, orientation
|
|
73
|
+
const mergeArgs = (baseArgs, overrides, orientation) => {
|
|
74
74
|
'worklet';
|
|
75
75
|
|
|
76
76
|
const merged = {
|
|
@@ -79,7 +79,6 @@ const mergeArgs = (baseArgs, overrides, orientation, regionOfInterest) => {
|
|
|
79
79
|
if (overrides) {
|
|
80
80
|
const {
|
|
81
81
|
orientation: overrideOrientation,
|
|
82
|
-
regionOfInterest: overrideRoi,
|
|
83
82
|
...formatMap
|
|
84
83
|
} = overrides;
|
|
85
84
|
Object.entries(formatMap).forEach(([key, value]) => {
|
|
@@ -90,18 +89,8 @@ const mergeArgs = (baseArgs, overrides, orientation, regionOfInterest) => {
|
|
|
90
89
|
} else if (orientation) {
|
|
91
90
|
merged.orientation = orientation;
|
|
92
91
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
} else if (regionOfInterest) {
|
|
96
|
-
merged.regionOfInterest = regionOfInterest;
|
|
97
|
-
}
|
|
98
|
-
} else {
|
|
99
|
-
if (orientation) {
|
|
100
|
-
merged.orientation = orientation;
|
|
101
|
-
}
|
|
102
|
-
if (regionOfInterest) {
|
|
103
|
-
merged.regionOfInterest = regionOfInterest;
|
|
104
|
-
}
|
|
92
|
+
} else if (orientation) {
|
|
93
|
+
merged.orientation = orientation;
|
|
105
94
|
}
|
|
106
95
|
return merged;
|
|
107
96
|
};
|
|
@@ -118,8 +107,7 @@ function createBarcodeScannerPlugin(formats) {
|
|
|
118
107
|
'worklet';
|
|
119
108
|
|
|
120
109
|
const orientation = overrides === null || overrides === void 0 ? void 0 : overrides.orientation;
|
|
121
|
-
const
|
|
122
|
-
const args = overrides || orientation || regionOfInterest ? mergeArgs(baseOptions, overrides, orientation ?? null, regionOfInterest ?? null) : baseOptions;
|
|
110
|
+
const args = overrides || orientation ? mergeArgs(baseOptions, overrides, orientation ?? null) : baseOptions;
|
|
123
111
|
const result = plugin.call(frame, args);
|
|
124
112
|
return normalizeBarcodeDetections(result);
|
|
125
113
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_reactNativeVisionCamera","LINKING_ERROR","Platform","select","ios","default","DEFAULT_FORMATS","KNOWN_FORMATS","toNativeBarcodeOptions","formats","sanitized","length","includes","all","reduce","acc","format","BOX_STRIDE","toFloat32Array","input","Float32Array","undefined","normalizeBarcodeDetections","payload","Array","isArray","record","detections","buffer","boxes","map","detection","index","output","boxIndex","offset","top","bottom","left","right","width","height","mergeArgs","baseArgs","overrides","orientation","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_reactNativeVisionCamera","LINKING_ERROR","Platform","select","ios","default","DEFAULT_FORMATS","KNOWN_FORMATS","toNativeBarcodeOptions","formats","sanitized","length","includes","all","reduce","acc","format","BOX_STRIDE","toFloat32Array","input","Float32Array","undefined","normalizeBarcodeDetections","payload","Array","isArray","record","detections","buffer","boxes","map","detection","index","output","boxIndex","offset","top","bottom","left","right","width","height","mergeArgs","baseArgs","overrides","orientation","merged","overrideOrientation","formatMap","Object","entries","forEach","key","value","createBarcodeScannerPlugin","baseOptions","plugin","VisionCameraProxy","initFrameProcessorPlugin","Error","scanBarcodes","frame","args","result","call"],"sourceRoot":"../../src","sources":["scanBarcodes.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/scanText.js
CHANGED
|
@@ -60,7 +60,7 @@ const normalizeTextDetections = payload => {
|
|
|
60
60
|
return output;
|
|
61
61
|
});
|
|
62
62
|
};
|
|
63
|
-
const mergeTextArgs = (base, overrides, orientation
|
|
63
|
+
const mergeTextArgs = (base, overrides, orientation) => {
|
|
64
64
|
'worklet';
|
|
65
65
|
|
|
66
66
|
const merged = {
|
|
@@ -69,7 +69,6 @@ const mergeTextArgs = (base, overrides, orientation, regionOfInterest) => {
|
|
|
69
69
|
if (overrides) {
|
|
70
70
|
const {
|
|
71
71
|
orientation: overrideOrientation,
|
|
72
|
-
regionOfInterest: overrideRoi,
|
|
73
72
|
...rest
|
|
74
73
|
} = overrides;
|
|
75
74
|
Object.assign(merged, rest);
|
|
@@ -78,18 +77,8 @@ const mergeTextArgs = (base, overrides, orientation, regionOfInterest) => {
|
|
|
78
77
|
} else if (orientation) {
|
|
79
78
|
merged.orientation = orientation;
|
|
80
79
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
} else if (regionOfInterest) {
|
|
84
|
-
merged.regionOfInterest = regionOfInterest;
|
|
85
|
-
}
|
|
86
|
-
} else {
|
|
87
|
-
if (orientation) {
|
|
88
|
-
merged.orientation = orientation;
|
|
89
|
-
}
|
|
90
|
-
if (regionOfInterest) {
|
|
91
|
-
merged.regionOfInterest = regionOfInterest;
|
|
92
|
-
}
|
|
80
|
+
} else if (orientation) {
|
|
81
|
+
merged.orientation = orientation;
|
|
93
82
|
}
|
|
94
83
|
return merged;
|
|
95
84
|
};
|
|
@@ -105,8 +94,7 @@ function createTextRecognitionPlugin(options) {
|
|
|
105
94
|
'worklet';
|
|
106
95
|
|
|
107
96
|
const orientation = overrides === null || overrides === void 0 ? void 0 : overrides.orientation;
|
|
108
|
-
const
|
|
109
|
-
const args = overrides || orientation || regionOfInterest ? mergeTextArgs(options, overrides, orientation ?? null, regionOfInterest ?? null) : options;
|
|
97
|
+
const args = overrides || orientation ? mergeTextArgs(options, overrides, orientation ?? null) : options;
|
|
110
98
|
const result = plugin.call(frame, args);
|
|
111
99
|
return normalizeTextDetections(result);
|
|
112
100
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_reactNativeVisionCamera","LINKING_ERROR","Platform","select","ios","default","TEXT_BOX_STRIDE","toFloat32Array","input","Float32Array","undefined","normalizeTextDetections","payload","Array","isArray","record","detections","buffer","boxes","map","detection","index","output","boxIndex","offset","length","blockFrameTop","blockFrameBottom","blockFrameLeft","blockFrameRight","lineFrameTop","lineFrameBottom","lineFrameLeft","lineFrameRight","elementFrameTop","elementFrameBottom","elementFrameLeft","elementFrameRight","mergeTextArgs","base","overrides","orientation","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_reactNativeVisionCamera","LINKING_ERROR","Platform","select","ios","default","TEXT_BOX_STRIDE","toFloat32Array","input","Float32Array","undefined","normalizeTextDetections","payload","Array","isArray","record","detections","buffer","boxes","map","detection","index","output","boxIndex","offset","length","blockFrameTop","blockFrameBottom","blockFrameLeft","blockFrameRight","lineFrameTop","lineFrameBottom","lineFrameLeft","lineFrameRight","elementFrameTop","elementFrameBottom","elementFrameLeft","elementFrameRight","mergeTextArgs","base","overrides","orientation","merged","overrideOrientation","rest","Object","assign","createTextRecognitionPlugin","options","plugin","VisionCameraProxy","initFrameProcessorPlugin","Error","scanText","frame","args","result","call"],"sourceRoot":"../../src","sources":["scanText.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -50,11 +50,9 @@ function useVinScanner(options) {
|
|
|
50
50
|
lastFrameTimestampRef.current = now;
|
|
51
51
|
}
|
|
52
52
|
const orientationOverride = resolvedOptions.detection.forceOrientation ?? null;
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
regionOfInterest
|
|
57
|
-
};
|
|
53
|
+
const barcodeArgs = orientationOverride ? {
|
|
54
|
+
orientation: orientationOverride
|
|
55
|
+
} : undefined;
|
|
58
56
|
const barcodes = barcodeScanner ? barcodeScanner.scanBarcodes(frame, barcodeArgs) : [];
|
|
59
57
|
|
|
60
58
|
// Performance Optimization:
|
|
@@ -71,10 +69,9 @@ function useVinScanner(options) {
|
|
|
71
69
|
hasBarcodeVin = true;
|
|
72
70
|
}
|
|
73
71
|
}
|
|
74
|
-
const textArgs = {
|
|
75
|
-
orientation: orientationOverride
|
|
76
|
-
|
|
77
|
-
};
|
|
72
|
+
const textArgs = orientationOverride ? {
|
|
73
|
+
orientation: orientationOverride
|
|
74
|
+
} : undefined;
|
|
78
75
|
frameCounterRef.current += 1;
|
|
79
76
|
const frameIndex = frameCounterRef.current;
|
|
80
77
|
const textScanInterval = resolvedOptions.detection.textScanInterval;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNativeVisionCamera","_reactNativeWorkletsCore","_scanBarcodes","_scanText","_vinUtils","useVinScanner","options","resolvedOptions","useMemo","resolveOptions","lastFrameTimestampRef","useRef","frameCounterRef","barcodeScanner","barcode","enabled","createBarcodeScannerPlugin","formats","textScanner","text","createTextRecognitionPlugin","language","validationPattern","emitResult","useRunOnJS","result","event","onResult","frameProcessor","useFrameProcessor","frame","now","timestamp","Date","maxFps","detection","maxFrameRate","minInterval","current","orientationOverride","forceOrientation","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNativeVisionCamera","_reactNativeWorkletsCore","_scanBarcodes","_scanText","_vinUtils","useVinScanner","options","resolvedOptions","useMemo","resolveOptions","lastFrameTimestampRef","useRef","frameCounterRef","barcodeScanner","barcode","enabled","createBarcodeScannerPlugin","formats","textScanner","text","createTextRecognitionPlugin","language","validationPattern","emitResult","useRunOnJS","result","event","onResult","frameProcessor","useFrameProcessor","frame","now","timestamp","Date","maxFps","detection","maxFrameRate","minInterval","current","orientationOverride","forceOrientation","barcodeArgs","orientation","undefined","barcodes","scanBarcodes","hasBarcodeVin","length","tempCandidates","buildVinCandidates","textBlocks","textArgs","frameIndex","textScanInterval","shouldRunText","scanText","payload","candidates","best","pickFirstCandidate","mode","resultMode","normalizedResult","raw"],"sourceRoot":"../../src","sources":["useVinScanner.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,wBAAA,GAAAD,OAAA;AACA,IAAAE,wBAAA,GAAAF,OAAA;AAGA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,SAAA,GAAAL,OAAA;AAMO,SAASM,aAAaA,CAACC,OAA2B,EAAE;EACzD,MAAMC,eAAe,GAAG,IAAAC,cAAO,EAAC,MAAM,IAAAC,wBAAc,EAACH,OAAO,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EACzE,MAAMI,qBAAqB,GAAG,IAAAC,aAAM,EAAC,CAAC,CAAC;EACvC,MAAMC,eAAe,GAAG,IAAAD,aAAM,EAAC,CAAC,CAAC;EAEjC,MAAME,cAAc,GAAG,IAAAL,cAAO,EAAC,MAAM;IACnC,IAAI,CAACD,eAAe,CAACO,OAAO,CAACC,OAAO,EAAE;MACpC,OAAO,IAAI;IACb;IACA,OAAO,IAAAC,wCAA0B,EAACT,eAAe,CAACO,OAAO,CAACG,OAAO,CAAC;EACpE,CAAC,EAAE,CAACV,eAAe,CAACO,OAAO,CAAC,CAAC;EAE7B,MAAMI,WAAW,GAAG,IAAAV,cAAO,EAAC,MAAM;IAChC,IAAI,CAACD,eAAe,CAACY,IAAI,CAACJ,OAAO,EAAE;MACjC,OAAO,IAAI;IACb;IACA,OAAO,IAAAK,qCAA2B,EAAC;MACjCC,QAAQ,EAAEd,eAAe,CAACY,IAAI,CAACE,QAAQ;MACvC;MACA;MACA;MACAC,iBAAiB,EAAE;IACrB,CAAC,CAAC;EACJ,CAAC,EAAE,CAACf,eAAe,CAACY,IAAI,CAAC,CAAC;EAE1B,MAAMI,UAAU,GAAG,IAAAC,mCAAU,EAC3B,CAACC,MAA4C,EAAEC,KAAsB,KAAK;IACxE,IAAI,QAAOpB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEqB,QAAQ,MAAK,UAAU,EAAE;MAC3CrB,OAAO,CAACqB,QAAQ,CAACF,MAAM,EAAEC,KAAK,CAAC;IACjC;EACF,CAAC,EACD,CAACpB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEqB,QAAQ,CACpB,CAAC;EAED,MAAMC,cAAc,GAAG,IAAAC,0CAAiB,EACrCC,KAAY,IAAK;IAChB,SAAS;;IACT,MAAMC,GAAG,GACP,QAAOD,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEE,SAAS,MAAK,QAAQ,GAAGF,KAAK,CAACE,SAAS,GAAGC,IAAI,CAACF,GAAG,CAAC,CAAC;IACrE,MAAMG,MAAM,GAAG3B,eAAe,CAAC4B,SAAS,CAACC,YAAY;IACrD,IAAIF,MAAM,GAAG,CAAC,EAAE;MACd,MAAMG,WAAW,GAAG,IAAI,GAAGH,MAAM;MACjC,IACExB,qBAAqB,CAAC4B,OAAO,GAAG,CAAC,IACjCP,GAAG,GAAGrB,qBAAqB,CAAC4B,OAAO,GAAGD,WAAW,EACjD;QACA;MACF;MACA3B,qBAAqB,CAAC4B,OAAO,GAAGP,GAAG;IACrC;IAEA,MAAMQ,mBAAmB,GACvBhC,eAAe,CAAC4B,SAAS,CAACK,gBAAgB,IAAI,IAAI;IAEpD,MAAMC,WAAW,GAAGF,mBAAmB,GACnC;MAAEG,WAAW,EAAEH;IAAoB,CAAC,GACpCI,SAAS;IAEb,MAAMC,QAAQ,GAAG/B,cAAc,GAC3BA,cAAc,CAACgC,YAAY,CAACf,KAAK,EAAEW,WAAW,CAAC,GAC/C,EAAE;;IAEN;IACA;IACA;IACA,IAAIK,aAAa,GAAG,KAAK;IACzB,IAAIF,QAAQ,IAAIA,QAAQ,CAACG,MAAM,GAAG,CAAC,EAAE;MACnC,MAAMC,cAAc,GAAG,IAAAC,4BAAkB,EACvC;QAAEL,QAAQ;QAAEM,UAAU,EAAE,EAAE;QAAElB,SAAS,EAAED;MAAI,CAAC,EAC5CxB,eACF,CAAC;MACD,IAAIyC,cAAc,CAACD,MAAM,GAAG,CAAC,EAAE;QAC7BD,aAAa,GAAG,IAAI;MACtB;IACF;IAEA,MAAMK,QAAQ,GAAGZ,mBAAmB,GAChC;MAAEG,WAAW,EAAEH;IAAoB,CAAC,GACpCI,SAAS;IAEb/B,eAAe,CAAC0B,OAAO,IAAI,CAAC;IAC5B,MAAMc,UAAU,GAAGxC,eAAe,CAAC0B,OAAO;IAC1C,MAAMe,gBAAgB,GAAG9C,eAAe,CAAC4B,SAAS,CAACkB,gBAAgB;IAEnE,MAAMC,aAAa,GACjB,CAACR,aAAa;IAAI;IAClB5B,WAAW,KACVmC,gBAAgB,IAAI,CAAC,IAAID,UAAU,GAAGC,gBAAgB,KAAK,CAAC,CAAC;IAEhE,MAAMH,UAAU,GACdI,aAAa,IAAIpC,WAAW,GACxBA,WAAW,CAACqC,QAAQ,CAACzB,KAAK,EAAEqB,QAAQ,CAAC,GACrC,EAAE;IAER,MAAMK,OAAO,GAAG;MACdZ,QAAQ,EAAEA,QAAQ,IAAI,EAAE;MACxBM,UAAU,EAAEA,UAAU,IAAI,EAAE;MAC5BlB,SAAS,EAAED;IACb,CAAC;IAED,MAAM0B,UAAU,GAAG,IAAAR,4BAAkB,EAACO,OAAO,EAAEjD,eAAe,CAAC;IAC/D,MAAMmD,IAAI,GAAG,IAAAC,4BAAkB,EAACF,UAAU,EAAElD,eAAe,CAAC;IAC5D,MAAMqD,IAAI,GAAGrD,eAAe,CAAC4B,SAAS,CAAC0B,UAAU;IACjD,MAAMC,gBAAgB,GACpBF,IAAI,KAAK,KAAK,GACVH,UAAU,CAACV,MAAM,GAAG,CAAC,GACnBU,UAAU,GACV,IAAI,GACLC,IAAI,IAAI,IAAK;IAEpB,MAAMhC,KAAsB,GAAG;MAC7BkC,IAAI;MACJ5B,SAAS,EAAEwB,OAAO,CAACxB,SAAS;MAC5ByB,UAAU;MACVC,IAAI;MACJK,GAAG,EAAE;QACHnB,QAAQ,EAAEY,OAAO,CAACZ,QAAQ;QAC1BM,UAAU,EAAEM,OAAO,CAACN;MACtB;IACF,CAAC;IAED3B,UAAU,CAACuC,gBAAgB,EAAEpC,KAAK,CAAC;EACrC,CAAC,EACD,CAACb,cAAc,EAAEK,WAAW,EAAEK,UAAU,EAAEhB,eAAe,CAC3D,CAAC;EAED,OAAO;IAAEqB;EAAe,CAAC;AAC3B","ignoreList":[]}
|
package/lib/commonjs/vinUtils.js
CHANGED
|
@@ -34,22 +34,15 @@ const DEFAULT_RESOLVED_OPTIONS = {
|
|
|
34
34
|
resultMode: 'first',
|
|
35
35
|
textScanInterval: 1,
|
|
36
36
|
maxFrameRate: 30,
|
|
37
|
-
forceOrientation: null
|
|
38
|
-
regionOfInterest: {
|
|
39
|
-
top: 0,
|
|
40
|
-
left: 0,
|
|
41
|
-
width: 1,
|
|
42
|
-
height: 1
|
|
43
|
-
}
|
|
37
|
+
forceOrientation: null
|
|
44
38
|
}
|
|
45
39
|
};
|
|
46
40
|
const resolveOptions = options => {
|
|
47
41
|
'worklet';
|
|
48
42
|
|
|
49
|
-
var _options$detection, _options$detection2, _options$
|
|
43
|
+
var _options$detection, _options$detection2, _options$barcode, _options$barcode2, _options$text, _options$text2, _options$detection3, _options$detection4;
|
|
50
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;
|
|
51
45
|
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);
|
|
52
|
-
const regionOfInterest = (options === null || options === void 0 || (_options$detection3 = options.detection) === null || _options$detection3 === void 0 ? void 0 : _options$detection3.regionOfInterest) ?? DEFAULT_RESOLVED_OPTIONS.detection.regionOfInterest;
|
|
53
46
|
return {
|
|
54
47
|
barcode: {
|
|
55
48
|
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,
|
|
@@ -62,9 +55,8 @@ const resolveOptions = options => {
|
|
|
62
55
|
detection: {
|
|
63
56
|
resultMode,
|
|
64
57
|
textScanInterval,
|
|
65
|
-
maxFrameRate: (options === null || options === void 0 || (_options$
|
|
66
|
-
forceOrientation: (options === null || options === void 0 || (_options$
|
|
67
|
-
regionOfInterest
|
|
58
|
+
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,
|
|
59
|
+
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
|
|
68
60
|
}
|
|
69
61
|
};
|
|
70
62
|
};
|
|
@@ -268,12 +260,9 @@ const isValidWmi = value => {
|
|
|
268
260
|
return false;
|
|
269
261
|
}
|
|
270
262
|
const firstChar = value[0];
|
|
271
|
-
|
|
272
|
-
//
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
// Checking against common valid WMI first characters
|
|
276
|
-
return typeof firstChar === 'string' && /^[1-9JWZ]/.test(firstChar);
|
|
263
|
+
// North America: 1, 2 (Canada), 3, 4, 5 (United States)
|
|
264
|
+
// Japan : 'J' Germany : 'W'
|
|
265
|
+
return firstChar === '1' || firstChar === '2' || firstChar === '3' || firstChar === '4' || firstChar === '5' || firstChar === 'J' || firstChar === 'W';
|
|
277
266
|
};
|
|
278
267
|
|
|
279
268
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DEFAULT_RESOLVED_OPTIONS","barcode","enabled","formats","text","language","detection","resultMode","textScanInterval","maxFrameRate","forceOrientation","regionOfInterest","top","left","width","height","resolveOptions","options","_options$detection","_options$detection2","_options$detection3","_options$barcode","_options$barcode2","_options$text","_options$text2","_options$detection4","_options$detection5","Math","max","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","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","bottom","right","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","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","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","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":[]}
|