@souscheflabs/ml-vision 0.1.1 → 0.1.3
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/CHANGELOG.md +54 -0
- package/LICENSE +15 -0
- package/README.md +50 -5
- package/dist/{components → cjs/components}/DetectionOverlay.js +1 -0
- package/dist/cjs/components/DetectionOverlay.js.map +1 -0
- package/dist/{components → cjs/components}/index.js +1 -0
- package/dist/cjs/components/index.js.map +1 -0
- package/dist/{core → cjs/core}/CacheManager.js +1 -0
- package/dist/cjs/core/CacheManager.js.map +1 -0
- package/dist/{core → cjs/core}/MLVisionProvider.js +4 -2
- package/dist/cjs/core/MLVisionProvider.js.map +1 -0
- package/dist/{core → cjs/core}/ServerClient.js +33 -13
- package/dist/cjs/core/ServerClient.js.map +1 -0
- package/dist/{core → cjs/core}/index.js +1 -0
- package/dist/cjs/core/index.js.map +1 -0
- package/dist/cjs/hooks/classLabels.js +178 -0
- package/dist/cjs/hooks/classLabels.js.map +1 -0
- package/dist/{hooks → cjs/hooks}/classLabelsCoco.js +1 -0
- package/dist/cjs/hooks/classLabelsCoco.js.map +1 -0
- package/dist/{hooks → cjs/hooks}/index.js +1 -0
- package/dist/cjs/hooks/index.js.map +1 -0
- package/dist/{hooks → cjs/hooks}/useMultiBarcodeScanner.js +6 -3
- package/dist/cjs/hooks/useMultiBarcodeScanner.js.map +1 -0
- package/dist/{hooks → cjs/hooks}/useProductDetector.js +168 -97
- package/dist/cjs/hooks/useProductDetector.js.map +1 -0
- package/dist/{hooks → cjs/hooks}/useReceiptScanner.js +60 -52
- package/dist/cjs/hooks/useReceiptScanner.js.map +1 -0
- package/dist/{hooks → cjs/hooks}/useVideoScanner.js +8 -5
- package/dist/cjs/hooks/useVideoScanner.js.map +1 -0
- package/dist/{index.js → cjs/index.js} +8 -4
- package/dist/cjs/index.js.map +1 -0
- package/dist/{processors → cjs/processors}/detectionProcessor.js +1 -0
- package/dist/cjs/processors/detectionProcessor.js.map +1 -0
- package/dist/{processors → cjs/processors}/index.js +1 -0
- package/dist/cjs/processors/index.js.map +1 -0
- package/dist/{processors → cjs/processors}/tfliteFrameProcessor.js +108 -25
- package/dist/cjs/processors/tfliteFrameProcessor.js.map +1 -0
- package/dist/{types → cjs/types}/barcode.js +1 -0
- package/dist/cjs/types/barcode.js.map +1 -0
- package/dist/{types → cjs/types}/detection.js +1 -0
- package/dist/cjs/types/detection.js.map +1 -0
- package/dist/{types → cjs/types}/index.js +1 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/{types → cjs/types}/ocr.js +1 -0
- package/dist/cjs/types/ocr.js.map +1 -0
- package/dist/{utils → cjs/utils}/imagePreprocessor.js +30 -25
- package/dist/cjs/utils/imagePreprocessor.js.map +1 -0
- package/dist/cjs/utils/logger.js +99 -0
- package/dist/cjs/utils/logger.js.map +1 -0
- package/dist/{utils → cjs/utils}/yoloProcessor.js +1 -0
- package/dist/cjs/utils/yoloProcessor.js.map +1 -0
- package/dist/esm/components/DetectionOverlay.js +130 -0
- package/dist/esm/components/DetectionOverlay.js.map +1 -0
- package/dist/esm/components/index.js +5 -0
- package/dist/esm/components/index.js.map +1 -0
- package/dist/esm/core/CacheManager.js +327 -0
- package/dist/esm/core/CacheManager.js.map +1 -0
- package/dist/esm/core/MLVisionProvider.js +185 -0
- package/dist/esm/core/MLVisionProvider.js.map +1 -0
- package/dist/esm/core/ServerClient.js +305 -0
- package/dist/esm/core/ServerClient.js.map +1 -0
- package/dist/esm/core/index.js +7 -0
- package/dist/esm/core/index.js.map +1 -0
- package/dist/esm/hooks/classLabels.js +174 -0
- package/dist/esm/hooks/classLabels.js.map +1 -0
- package/dist/esm/hooks/classLabelsCoco.js +98 -0
- package/dist/esm/hooks/classLabelsCoco.js.map +1 -0
- package/dist/esm/hooks/index.js +9 -0
- package/dist/esm/hooks/index.js.map +1 -0
- package/dist/esm/hooks/useMultiBarcodeScanner.js +290 -0
- package/dist/esm/hooks/useMultiBarcodeScanner.js.map +1 -0
- package/dist/esm/hooks/useProductDetector.js +714 -0
- package/dist/esm/hooks/useProductDetector.js.map +1 -0
- package/dist/esm/hooks/useReceiptScanner.js +407 -0
- package/dist/esm/hooks/useReceiptScanner.js.map +1 -0
- package/dist/esm/hooks/useVideoScanner.js +383 -0
- package/dist/esm/hooks/useVideoScanner.js.map +1 -0
- package/dist/esm/index.js +93 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/processors/detectionProcessor.js +121 -0
- package/dist/esm/processors/detectionProcessor.js.map +1 -0
- package/dist/esm/processors/index.js +7 -0
- package/dist/esm/processors/index.js.map +1 -0
- package/dist/esm/processors/tfliteFrameProcessor.js +292 -0
- package/dist/esm/processors/tfliteFrameProcessor.js.map +1 -0
- package/dist/esm/types/barcode.js +17 -0
- package/dist/esm/types/barcode.js.map +1 -0
- package/dist/esm/types/detection.js +8 -0
- package/dist/esm/types/detection.js.map +1 -0
- package/dist/esm/types/index.js +10 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/ocr.js +8 -0
- package/dist/esm/types/ocr.js.map +1 -0
- package/dist/esm/utils/imagePreprocessor.js +268 -0
- package/dist/esm/utils/imagePreprocessor.js.map +1 -0
- package/dist/esm/utils/logger.js +94 -0
- package/dist/esm/utils/logger.js.map +1 -0
- package/dist/esm/utils/yoloProcessor.js +151 -0
- package/dist/esm/utils/yoloProcessor.js.map +1 -0
- package/dist/{components → types/components}/DetectionOverlay.d.ts +1 -0
- package/dist/types/components/DetectionOverlay.d.ts.map +1 -0
- package/dist/{components → types/components}/index.d.ts +1 -0
- package/dist/types/components/index.d.ts.map +1 -0
- package/dist/{core → types/core}/CacheManager.d.ts +1 -0
- package/dist/types/core/CacheManager.d.ts.map +1 -0
- package/dist/{core → types/core}/MLVisionProvider.d.ts +1 -0
- package/dist/types/core/MLVisionProvider.d.ts.map +1 -0
- package/dist/{core → types/core}/ServerClient.d.ts +1 -0
- package/dist/types/core/ServerClient.d.ts.map +1 -0
- package/dist/{core → types/core}/index.d.ts +1 -0
- package/dist/types/core/index.d.ts.map +1 -0
- package/dist/{hooks → types/hooks}/classLabels.d.ts +5 -4
- package/dist/types/hooks/classLabels.d.ts.map +1 -0
- package/dist/{hooks → types/hooks}/classLabelsCoco.d.ts +1 -0
- package/dist/types/hooks/classLabelsCoco.d.ts.map +1 -0
- package/dist/{hooks → types/hooks}/index.d.ts +1 -0
- package/dist/types/hooks/index.d.ts.map +1 -0
- package/dist/{hooks → types/hooks}/useMultiBarcodeScanner.d.ts +1 -0
- package/dist/types/hooks/useMultiBarcodeScanner.d.ts.map +1 -0
- package/dist/{hooks → types/hooks}/useProductDetector.d.ts +1 -0
- package/dist/types/hooks/useProductDetector.d.ts.map +1 -0
- package/dist/{hooks → types/hooks}/useReceiptScanner.d.ts +2 -1
- package/dist/types/hooks/useReceiptScanner.d.ts.map +1 -0
- package/dist/{hooks → types/hooks}/useVideoScanner.d.ts +1 -0
- package/dist/types/hooks/useVideoScanner.d.ts.map +1 -0
- package/dist/types/index.d.ts +58 -124
- package/dist/types/index.d.ts.map +1 -0
- package/dist/{processors → types/processors}/detectionProcessor.d.ts +1 -0
- package/dist/types/processors/detectionProcessor.d.ts.map +1 -0
- package/dist/{processors → types/processors}/index.d.ts +1 -0
- package/dist/types/processors/index.d.ts.map +1 -0
- package/dist/{processors → types/processors}/tfliteFrameProcessor.d.ts +5 -4
- package/dist/types/processors/tfliteFrameProcessor.d.ts.map +1 -0
- package/dist/types/{barcode.d.ts → types/barcode.d.ts} +1 -0
- package/dist/types/types/barcode.d.ts.map +1 -0
- package/dist/types/{detection.d.ts → types/detection.d.ts} +1 -0
- package/dist/types/types/detection.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +127 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/{ocr.d.ts → types/ocr.d.ts} +1 -0
- package/dist/types/types/ocr.d.ts.map +1 -0
- package/dist/{utils → types/utils}/imagePreprocessor.d.ts +1 -0
- package/dist/types/utils/imagePreprocessor.d.ts.map +1 -0
- package/dist/types/utils/logger.d.ts +52 -0
- package/dist/types/utils/logger.d.ts.map +1 -0
- package/dist/{utils → types/utils}/yoloProcessor.d.ts +1 -0
- package/dist/types/utils/yoloProcessor.d.ts.map +1 -0
- package/package.json +62 -21
- package/dist/hooks/classLabels.js +0 -439
- package/dist/index.d.ts +0 -58
|
@@ -38,6 +38,7 @@ exports.useReceiptScanner = useReceiptScanner;
|
|
|
38
38
|
const react_1 = require("react");
|
|
39
39
|
const text_recognition_1 = __importDefault(require("@react-native-ml-kit/text-recognition"));
|
|
40
40
|
const MLVisionProvider_1 = require("../core/MLVisionProvider");
|
|
41
|
+
const logger_1 = require("../utils/logger");
|
|
41
42
|
// ============================================================================
|
|
42
43
|
// Receipt Parsing Patterns
|
|
43
44
|
// ============================================================================
|
|
@@ -56,15 +57,15 @@ const TIME_PATTERN = /\d{1,2}:\d{2}(?::\d{2})?\s*(?:AM|PM)?/i;
|
|
|
56
57
|
// TOTAL|GRAND TOTAL|AMOUNT DUE, SUBTOTAL, TAX
|
|
57
58
|
/** Known store patterns for detection */
|
|
58
59
|
const STORE_PATTERNS = [
|
|
59
|
-
{ pattern: /WALMART/i, store:
|
|
60
|
-
{ pattern: /TARGET/i, store:
|
|
61
|
-
{ pattern: /KROGER/i, store:
|
|
62
|
-
{ pattern: /SAFEWAY/i, store:
|
|
63
|
-
{ pattern: /COSTCO/i, store:
|
|
64
|
-
{ pattern: /TRADER\s*JOE/i, store:
|
|
65
|
-
{ pattern: /WHOLE\s*FOODS/i, store:
|
|
66
|
-
{ pattern: /PUBLIX/i, store:
|
|
67
|
-
{ pattern: /ALDI/i, store:
|
|
60
|
+
{ pattern: /WALMART/i, store: "walmart" },
|
|
61
|
+
{ pattern: /TARGET/i, store: "target" },
|
|
62
|
+
{ pattern: /KROGER/i, store: "kroger" },
|
|
63
|
+
{ pattern: /SAFEWAY/i, store: "safeway" },
|
|
64
|
+
{ pattern: /COSTCO/i, store: "costco" },
|
|
65
|
+
{ pattern: /TRADER\s*JOE/i, store: "trader_joes" },
|
|
66
|
+
{ pattern: /WHOLE\s*FOODS/i, store: "whole_foods" },
|
|
67
|
+
{ pattern: /PUBLIX/i, store: "publix" },
|
|
68
|
+
{ pattern: /ALDI/i, store: "aldi" },
|
|
68
69
|
];
|
|
69
70
|
// ============================================================================
|
|
70
71
|
// Hook Implementation
|
|
@@ -80,7 +81,7 @@ function useReceiptScanner(options = {}) {
|
|
|
80
81
|
const [isProcessing, setIsProcessing] = (0, react_1.useState)(false);
|
|
81
82
|
const [items, setItems] = (0, react_1.useState)([]);
|
|
82
83
|
const [metadata, setMetadata] = (0, react_1.useState)(null);
|
|
83
|
-
const [rawText, setRawText] = (0, react_1.useState)(
|
|
84
|
+
const [rawText, setRawText] = (0, react_1.useState)("");
|
|
84
85
|
const [confidence, setConfidence] = (0, react_1.useState)(0);
|
|
85
86
|
const [source, setSource] = (0, react_1.useState)(null);
|
|
86
87
|
const [error, setError] = (0, react_1.useState)(null);
|
|
@@ -95,14 +96,14 @@ function useReceiptScanner(options = {}) {
|
|
|
95
96
|
* Parse raw OCR text into receipt items
|
|
96
97
|
*/
|
|
97
98
|
const parseReceiptText = (0, react_1.useCallback)((text) => {
|
|
98
|
-
const lines = text.split(
|
|
99
|
+
const lines = text.split("\n").filter((line) => line.trim());
|
|
99
100
|
const parsedLines = lines.map((line, index) => classifyLine(line, index));
|
|
100
101
|
// Extract metadata
|
|
101
102
|
const extractedMetadata = {};
|
|
102
103
|
// Find store name
|
|
103
104
|
for (const { pattern, store } of STORE_PATTERNS) {
|
|
104
105
|
if (pattern.test(text)) {
|
|
105
|
-
extractedMetadata.storeName = store.toUpperCase().replace(
|
|
106
|
+
extractedMetadata.storeName = store.toUpperCase().replace("_", " ");
|
|
106
107
|
break;
|
|
107
108
|
}
|
|
108
109
|
}
|
|
@@ -127,20 +128,20 @@ function useReceiptScanner(options = {}) {
|
|
|
127
128
|
}
|
|
128
129
|
// Find totals
|
|
129
130
|
for (const parsedLine of parsedLines) {
|
|
130
|
-
if (parsedLine.type ===
|
|
131
|
+
if (parsedLine.type === "total" && parsedLine.values.price) {
|
|
131
132
|
extractedMetadata.total = parsedLine.values.price;
|
|
132
133
|
}
|
|
133
|
-
else if (parsedLine.type ===
|
|
134
|
+
else if (parsedLine.type === "subtotal" && parsedLine.values.price) {
|
|
134
135
|
extractedMetadata.subtotal = parsedLine.values.price;
|
|
135
136
|
}
|
|
136
|
-
else if (parsedLine.type ===
|
|
137
|
+
else if (parsedLine.type === "tax" && parsedLine.values.price) {
|
|
137
138
|
extractedMetadata.tax = parsedLine.values.price;
|
|
138
139
|
}
|
|
139
140
|
}
|
|
140
141
|
// Extract items
|
|
141
142
|
const extractedItems = parsedLines
|
|
142
|
-
.filter(line => line.type ===
|
|
143
|
-
.map(line => {
|
|
143
|
+
.filter((line) => line.type === "item")
|
|
144
|
+
.map((line) => {
|
|
144
145
|
const item = {
|
|
145
146
|
name: line.values.name || line.text,
|
|
146
147
|
normalizedName: normalizeItemName(line.values.name || line.text),
|
|
@@ -162,46 +163,46 @@ function useReceiptScanner(options = {}) {
|
|
|
162
163
|
*/
|
|
163
164
|
function classifyLine(text, lineNumber) {
|
|
164
165
|
const trimmed = text.trim();
|
|
165
|
-
let type =
|
|
166
|
+
let type = "unknown";
|
|
166
167
|
let lineConfidence = 0.5;
|
|
167
168
|
const values = {};
|
|
168
169
|
// Check for totals first
|
|
169
170
|
if (/^TOTAL/i.test(trimmed) || /GRAND\s*TOTAL/i.test(trimmed)) {
|
|
170
|
-
type =
|
|
171
|
+
type = "total";
|
|
171
172
|
lineConfidence = 0.95;
|
|
172
173
|
}
|
|
173
174
|
else if (/^SUBTOTAL/i.test(trimmed)) {
|
|
174
|
-
type =
|
|
175
|
+
type = "subtotal";
|
|
175
176
|
lineConfidence = 0.95;
|
|
176
177
|
}
|
|
177
178
|
else if (/^TAX/i.test(trimmed) || /SALES\s*TAX/i.test(trimmed)) {
|
|
178
|
-
type =
|
|
179
|
+
type = "tax";
|
|
179
180
|
lineConfidence = 0.95;
|
|
180
181
|
}
|
|
181
182
|
else if (/^(CASH|CREDIT|DEBIT|VISA|MASTERCARD|AMEX)/i.test(trimmed)) {
|
|
182
|
-
type =
|
|
183
|
+
type = "payment";
|
|
183
184
|
lineConfidence = 0.9;
|
|
184
185
|
}
|
|
185
|
-
else if (DATE_PATTERNS.some(p => p.test(trimmed))) {
|
|
186
|
-
type =
|
|
186
|
+
else if (DATE_PATTERNS.some((p) => p.test(trimmed))) {
|
|
187
|
+
type = "date_time";
|
|
187
188
|
lineConfidence = 0.85;
|
|
188
189
|
}
|
|
189
190
|
else if (STORE_PATTERNS.some(({ pattern }) => pattern.test(trimmed))) {
|
|
190
|
-
type =
|
|
191
|
+
type = "store_info";
|
|
191
192
|
lineConfidence = 0.9;
|
|
192
193
|
}
|
|
193
|
-
else if (/^\d{10,20}$/.test(trimmed.replace(/[\s-]/g,
|
|
194
|
-
type =
|
|
194
|
+
else if (/^\d{10,20}$/.test(trimmed.replace(/[\s-]/g, ""))) {
|
|
195
|
+
type = "transaction";
|
|
195
196
|
lineConfidence = 0.7;
|
|
196
197
|
}
|
|
197
198
|
else if (trimmed.length > 3) {
|
|
198
199
|
// Likely an item line
|
|
199
|
-
type =
|
|
200
|
+
type = "item";
|
|
200
201
|
// Extract price
|
|
201
202
|
const prices = trimmed.match(PRICE_PATTERN);
|
|
202
203
|
if (prices && prices.length > 0) {
|
|
203
204
|
const lastPrice = prices[prices.length - 1];
|
|
204
|
-
values.price = parseFloat(lastPrice.replace(
|
|
205
|
+
values.price = parseFloat(lastPrice.replace("$", ""));
|
|
205
206
|
lineConfidence = 0.8;
|
|
206
207
|
}
|
|
207
208
|
// Extract quantity
|
|
@@ -222,14 +223,20 @@ function useReceiptScanner(options = {}) {
|
|
|
222
223
|
}
|
|
223
224
|
}
|
|
224
225
|
// Extract price for non-item lines too
|
|
225
|
-
if (type !==
|
|
226
|
+
if (type !== "item" && type !== "unknown") {
|
|
226
227
|
const prices = trimmed.match(PRICE_PATTERN);
|
|
227
228
|
if (prices && prices.length > 0) {
|
|
228
229
|
const lastPrice = prices[prices.length - 1];
|
|
229
|
-
values.price = parseFloat(lastPrice.replace(
|
|
230
|
+
values.price = parseFloat(lastPrice.replace("$", ""));
|
|
230
231
|
}
|
|
231
232
|
}
|
|
232
|
-
return {
|
|
233
|
+
return {
|
|
234
|
+
text: trimmed,
|
|
235
|
+
type,
|
|
236
|
+
values,
|
|
237
|
+
lineNumber,
|
|
238
|
+
confidence: lineConfidence,
|
|
239
|
+
};
|
|
233
240
|
}
|
|
234
241
|
/**
|
|
235
242
|
* Normalize item name for matching
|
|
@@ -237,8 +244,8 @@ function useReceiptScanner(options = {}) {
|
|
|
237
244
|
function normalizeItemName(name) {
|
|
238
245
|
return name
|
|
239
246
|
.toLowerCase()
|
|
240
|
-
.replace(/[^a-z0-9\s]/g,
|
|
241
|
-
.replace(/\s+/g,
|
|
247
|
+
.replace(/[^a-z0-9\s]/g, "")
|
|
248
|
+
.replace(/\s+/g, " ")
|
|
242
249
|
.trim();
|
|
243
250
|
}
|
|
244
251
|
// ============================================================================
|
|
@@ -252,8 +259,8 @@ function useReceiptScanner(options = {}) {
|
|
|
252
259
|
setError(null);
|
|
253
260
|
const startTime = Date.now();
|
|
254
261
|
try {
|
|
255
|
-
let ocrText =
|
|
256
|
-
let processSource =
|
|
262
|
+
let ocrText = "";
|
|
263
|
+
let processSource = "on_device";
|
|
257
264
|
// Try server OCR first if available (better accuracy for receipts)
|
|
258
265
|
if (serverFallback &&
|
|
259
266
|
effectiveServerUrl &&
|
|
@@ -262,24 +269,24 @@ function useReceiptScanner(options = {}) {
|
|
|
262
269
|
try {
|
|
263
270
|
// Note: Server OCR endpoint would return text
|
|
264
271
|
// For now, simulate with placeholder
|
|
265
|
-
|
|
272
|
+
logger_1.logger.debug("[ReceiptScanner] Server OCR not yet implemented");
|
|
266
273
|
}
|
|
267
274
|
catch {
|
|
268
|
-
|
|
275
|
+
logger_1.logger.debug("[useReceiptScanner] Server OCR failed, using on-device");
|
|
269
276
|
}
|
|
270
277
|
}
|
|
271
278
|
// Use on-device OCR with MLKit
|
|
272
279
|
if (!ocrText) {
|
|
273
|
-
|
|
280
|
+
logger_1.logger.debug("[ReceiptScanner] Running MLKit text recognition...");
|
|
274
281
|
try {
|
|
275
282
|
const result = await text_recognition_1.default.recognize(uri);
|
|
276
283
|
ocrText = result.text;
|
|
277
|
-
|
|
278
|
-
processSource =
|
|
284
|
+
logger_1.logger.debug(`[useReceiptScanner] MLKit recognized ${result.blocks.length} blocks, ${ocrText.length} chars`);
|
|
285
|
+
processSource = "on_device";
|
|
279
286
|
}
|
|
280
287
|
catch (ocrErr) {
|
|
281
|
-
|
|
282
|
-
throw new Error(`OCR failed: ${ocrErr instanceof Error ? ocrErr.message :
|
|
288
|
+
logger_1.logger.error("[ReceiptScanner] MLKit OCR error:", ocrErr);
|
|
289
|
+
throw new Error(`OCR failed: ${ocrErr instanceof Error ? ocrErr.message : "Unknown error"}`);
|
|
283
290
|
}
|
|
284
291
|
}
|
|
285
292
|
// Parse the OCR text
|
|
@@ -294,13 +301,13 @@ function useReceiptScanner(options = {}) {
|
|
|
294
301
|
id: `receipt_${Date.now()}_${Math.random()
|
|
295
302
|
.toString(36)
|
|
296
303
|
.substr(2, 9)}`,
|
|
297
|
-
type:
|
|
304
|
+
type: "receipt",
|
|
298
305
|
items: parsedItems,
|
|
299
306
|
metadata: parsedMetadata,
|
|
300
307
|
rawText: ocrText,
|
|
301
308
|
textLines: [], // Would be populated by MLKit
|
|
302
309
|
confidence: overallConfidence,
|
|
303
|
-
itemsNeedingReview: parsedItems.filter(i => i.needsReview).length,
|
|
310
|
+
itemsNeedingReview: parsedItems.filter((i) => i.needsReview).length,
|
|
304
311
|
source: processSource,
|
|
305
312
|
processingTimeMs,
|
|
306
313
|
timestamp: Date.now(),
|
|
@@ -318,8 +325,8 @@ function useReceiptScanner(options = {}) {
|
|
|
318
325
|
return result;
|
|
319
326
|
}
|
|
320
327
|
catch (err) {
|
|
321
|
-
const scanError = err instanceof Error ? err : new Error(
|
|
322
|
-
|
|
328
|
+
const scanError = err instanceof Error ? err : new Error("Receipt scan failed");
|
|
329
|
+
logger_1.logger.error("[ReceiptScanner] Error:", scanError);
|
|
323
330
|
if (mountedRef.current) {
|
|
324
331
|
setError(scanError);
|
|
325
332
|
}
|
|
@@ -346,25 +353,25 @@ function useReceiptScanner(options = {}) {
|
|
|
346
353
|
const scanFrame = (0, react_1.useCallback)(async () => {
|
|
347
354
|
// This would capture current frame and scan
|
|
348
355
|
// Requires VisionCamera integration
|
|
349
|
-
throw new Error(
|
|
356
|
+
throw new Error("Frame scanning not implemented - use scanReceipt with photo URI");
|
|
350
357
|
}, []);
|
|
351
358
|
/**
|
|
352
359
|
* Confirm an item is correct
|
|
353
360
|
*/
|
|
354
361
|
const confirmItem = (0, react_1.useCallback)((item) => {
|
|
355
|
-
setItems(prev => prev.map(i => i.lineNumber === item.lineNumber ? { ...i, needsReview: false } : i));
|
|
362
|
+
setItems((prev) => prev.map((i) => i.lineNumber === item.lineNumber ? { ...i, needsReview: false } : i));
|
|
356
363
|
}, []);
|
|
357
364
|
/**
|
|
358
365
|
* Reject/remove an item
|
|
359
366
|
*/
|
|
360
367
|
const rejectItem = (0, react_1.useCallback)((item) => {
|
|
361
|
-
setItems(prev => prev.filter(i => i.lineNumber !== item.lineNumber));
|
|
368
|
+
setItems((prev) => prev.filter((i) => i.lineNumber !== item.lineNumber));
|
|
362
369
|
}, []);
|
|
363
370
|
/**
|
|
364
371
|
* Edit an item
|
|
365
372
|
*/
|
|
366
373
|
const editItem = (0, react_1.useCallback)((item, updates) => {
|
|
367
|
-
setItems(prev => prev.map(i => i.lineNumber === item.lineNumber
|
|
374
|
+
setItems((prev) => prev.map((i) => i.lineNumber === item.lineNumber
|
|
368
375
|
? { ...i, ...updates, needsReview: false }
|
|
369
376
|
: i));
|
|
370
377
|
}, []);
|
|
@@ -374,7 +381,7 @@ function useReceiptScanner(options = {}) {
|
|
|
374
381
|
const clearResults = (0, react_1.useCallback)(() => {
|
|
375
382
|
setItems([]);
|
|
376
383
|
setMetadata(null);
|
|
377
|
-
setRawText(
|
|
384
|
+
setRawText("");
|
|
378
385
|
setConfidence(0);
|
|
379
386
|
setSource(null);
|
|
380
387
|
setError(null);
|
|
@@ -403,3 +410,4 @@ function useReceiptScanner(options = {}) {
|
|
|
403
410
|
};
|
|
404
411
|
}
|
|
405
412
|
exports.default = useReceiptScanner;
|
|
413
|
+
//# sourceMappingURL=useReceiptScanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useReceiptScanner.js","sourceRoot":"","sources":["../../../src/hooks/useReceiptScanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,6 +36,7 @@ const useProductDetector_1 = require("./useProductDetector");
|
|
|
36
36
|
const useMultiBarcodeScanner_1 = require("./useMultiBarcodeScanner");
|
|
37
37
|
const tfliteFrameProcessor_1 = require("../processors/tfliteFrameProcessor");
|
|
38
38
|
const classLabelsCoco_1 = require("./classLabelsCoco");
|
|
39
|
+
const logger_1 = require("../utils/logger");
|
|
39
40
|
// ============================================================================
|
|
40
41
|
// Constants
|
|
41
42
|
// ============================================================================
|
|
@@ -73,7 +74,8 @@ function useVideoScanner(options = {}) {
|
|
|
73
74
|
const [frameNumber, setFrameNumber] = (0, react_1.useState)(0);
|
|
74
75
|
const [fps, setFps] = (0, react_1.useState)(0);
|
|
75
76
|
const [error, setError] = (0, react_1.useState)(null);
|
|
76
|
-
|
|
77
|
+
// Track inference time from TFLite frame processor
|
|
78
|
+
const inferenceTimeMsRef = (0, react_1.useRef)(0);
|
|
77
79
|
// ============================================================================
|
|
78
80
|
// TFLite Frame Processor (for real-time video detection)
|
|
79
81
|
// ============================================================================
|
|
@@ -252,7 +254,7 @@ function useVideoScanner(options = {}) {
|
|
|
252
254
|
}
|
|
253
255
|
catch (err) {
|
|
254
256
|
const frameError = err instanceof Error ? err : new Error('Frame processing failed');
|
|
255
|
-
|
|
257
|
+
logger_1.logger.error('[VideoScanner] Frame error:', frameError);
|
|
256
258
|
setError(frameError);
|
|
257
259
|
onError?.(frameError);
|
|
258
260
|
}
|
|
@@ -275,7 +277,7 @@ function useVideoScanner(options = {}) {
|
|
|
275
277
|
*/
|
|
276
278
|
const startScanning = (0, react_1.useCallback)(() => {
|
|
277
279
|
if (!isReady) {
|
|
278
|
-
|
|
280
|
+
logger_1.logger.warn('[VideoScanner] Not ready to scan');
|
|
279
281
|
return;
|
|
280
282
|
}
|
|
281
283
|
setIsScanning(true);
|
|
@@ -322,7 +324,7 @@ function useVideoScanner(options = {}) {
|
|
|
322
324
|
const captureFrame = (0, react_1.useCallback)(async () => {
|
|
323
325
|
// This would use VisionCamera's takePhoto method
|
|
324
326
|
// Requires ref to be properly typed and connected
|
|
325
|
-
|
|
327
|
+
logger_1.logger.debug('[VideoScanner] Frame capture requires VisionCamera ref');
|
|
326
328
|
return null;
|
|
327
329
|
}, []);
|
|
328
330
|
// ============================================================================
|
|
@@ -365,7 +367,7 @@ function useVideoScanner(options = {}) {
|
|
|
365
367
|
frameNumber,
|
|
366
368
|
fps,
|
|
367
369
|
error,
|
|
368
|
-
inferenceTimeMs,
|
|
370
|
+
inferenceTimeMs: inferenceTimeMsRef.current,
|
|
369
371
|
// Actions
|
|
370
372
|
startScanning,
|
|
371
373
|
stopScanning,
|
|
@@ -381,3 +383,4 @@ function useVideoScanner(options = {}) {
|
|
|
381
383
|
};
|
|
382
384
|
}
|
|
383
385
|
exports.default = useVideoScanner;
|
|
386
|
+
//# sourceMappingURL=useVideoScanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useVideoScanner.js","sourceRoot":"","sources":["../../../src/hooks/useVideoScanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
* @packageDocumentation
|
|
44
44
|
*/
|
|
45
45
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
|
-
exports.VERSION = exports.isFoodClass = exports.getCocoClassInfo = exports.FOOD_CLASS_INDICES = exports.NUM_CLASSES_COCO = exports.CLASS_LABELS_COCO = exports.COCO_CLASSES = exports.scaleDetections = exports.processYoloOutput = exports.getFrameProcessorInstructions = exports.isResizePluginAvailable = exports.isSkiaAvailable = exports.preprocessImage = exports.createTFLiteFrameProcessor = exports.useTFLiteFrameProcessor = exports.getClassLabel = exports.frameDetectionToResult = exports.createDetectionProcessor = exports.DetectionLoadingOverlay = exports.DetectionOverlay = exports.useVideoScanner = exports.useReceiptScanner = exports.useMultiBarcodeScanner = exports.CATEGORY_CLASSES = exports.getLabelsArray = exports.getClassInfo = exports.NUM_CLASSES = exports.CLASS_LABELS = exports.useProductDetector = exports.ServerError = exports.createServerClient = exports.ServerClient = exports.CACHE_TTL = exports.createCacheManager = exports.CacheManager = exports.useMLVisionReady = exports.useMLVisionContext = exports.MLVisionProvider = exports.GROCERY_BARCODE_FORMATS = void 0;
|
|
46
|
+
exports.VERSION = exports.getLogLevel = exports.setLogLevel = exports.logger = exports.isFoodClass = exports.getCocoClassInfo = exports.FOOD_CLASS_INDICES = exports.NUM_CLASSES_COCO = exports.CLASS_LABELS_COCO = exports.COCO_CLASSES = exports.scaleDetections = exports.processYoloOutput = exports.getFrameProcessorInstructions = exports.isResizePluginAvailable = exports.isSkiaAvailable = exports.preprocessImage = exports.createTFLiteFrameProcessor = exports.useTFLiteFrameProcessor = exports.getClassLabel = exports.frameDetectionToResult = exports.createDetectionProcessor = exports.DetectionLoadingOverlay = exports.DetectionOverlay = exports.useVideoScanner = exports.useReceiptScanner = exports.useMultiBarcodeScanner = exports.CATEGORY_CLASSES = exports.getLabelsArray = exports.getClassInfo = exports.NUM_CLASSES = exports.CLASS_LABELS = exports.useProductDetector = exports.ServerError = exports.createServerClient = exports.ServerClient = exports.CACHE_TTL = exports.createCacheManager = exports.CacheManager = exports.useMLVisionReady = exports.useMLVisionContext = exports.MLVisionProvider = exports.GROCERY_BARCODE_FORMATS = void 0;
|
|
47
47
|
// Re-export barcode format constants
|
|
48
48
|
var barcode_1 = require("./types/barcode");
|
|
49
49
|
Object.defineProperty(exports, "GROCERY_BARCODE_FORMATS", { enumerable: true, get: function () { return barcode_1.GROCERY_BARCODE_FORMATS; } });
|
|
@@ -104,8 +104,6 @@ Object.defineProperty(exports, "createTFLiteFrameProcessor", { enumerable: true,
|
|
|
104
104
|
// ============================================================================
|
|
105
105
|
// Utilities
|
|
106
106
|
// ============================================================================
|
|
107
|
-
// export { generateImageHash } from './utils/imageUtils';
|
|
108
|
-
// export { parseReceiptText } from './utils/receiptParser';
|
|
109
107
|
// Image preprocessing for on-device TFLite inference
|
|
110
108
|
var imagePreprocessor_1 = require("./utils/imagePreprocessor");
|
|
111
109
|
Object.defineProperty(exports, "preprocessImage", { enumerable: true, get: function () { return imagePreprocessor_1.preprocessImage; } });
|
|
@@ -124,7 +122,13 @@ Object.defineProperty(exports, "NUM_CLASSES_COCO", { enumerable: true, get: func
|
|
|
124
122
|
Object.defineProperty(exports, "FOOD_CLASS_INDICES", { enumerable: true, get: function () { return classLabelsCoco_1.FOOD_CLASS_INDICES; } });
|
|
125
123
|
Object.defineProperty(exports, "getCocoClassInfo", { enumerable: true, get: function () { return classLabelsCoco_1.getCocoClassInfo; } });
|
|
126
124
|
Object.defineProperty(exports, "isFoodClass", { enumerable: true, get: function () { return classLabelsCoco_1.isFoodClass; } });
|
|
125
|
+
// Logger utility
|
|
126
|
+
var logger_1 = require("./utils/logger");
|
|
127
|
+
Object.defineProperty(exports, "logger", { enumerable: true, get: function () { return logger_1.logger; } });
|
|
128
|
+
Object.defineProperty(exports, "setLogLevel", { enumerable: true, get: function () { return logger_1.setLogLevel; } });
|
|
129
|
+
Object.defineProperty(exports, "getLogLevel", { enumerable: true, get: function () { return logger_1.getLogLevel; } });
|
|
127
130
|
// ============================================================================
|
|
128
131
|
// Version
|
|
129
132
|
// ============================================================================
|
|
130
|
-
exports.VERSION = '0.1.
|
|
133
|
+
exports.VERSION = '0.1.1';
|
|
134
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;;;AAsDH,qCAAqC;AACrC,2CAA0D;AAAjD,kHAAA,uBAAuB,OAAA;AAEhC,+EAA+E;AAC/E,wCAAwC;AACxC,+EAA+E;AAE/E,+BAuBgB;AAtBd,WAAW;AACX,wGAAA,gBAAgB,OAAA;AAChB,0GAAA,kBAAkB,OAAA;AAClB,wGAAA,gBAAgB,OAAA;AAIhB,QAAQ;AACR,oGAAA,YAAY,OAAA;AACZ,0GAAA,kBAAkB,OAAA;AAClB,iGAAA,SAAS,OAAA;AAIT,gBAAgB;AAChB,oGAAA,YAAY,OAAA;AACZ,0GAAA,kBAAkB,OAAA;AAClB,mGAAA,WAAW,OAAA;AAOb,+EAA+E;AAC/E,QAAQ;AACR,+EAA+E;AAE/E,oCAAoC;AACpC,iEAAgE;AAAvD,wHAAA,kBAAkB,OAAA;AAC3B,mDAM6B;AAL3B,2GAAA,YAAY,OAAA;AACZ,0GAAA,WAAW,OAAA;AACX,2GAAA,YAAY,OAAA;AACZ,6GAAA,cAAc,OAAA;AACd,+GAAA,gBAAgB,OAAA;AAGlB,kCAAkC;AAClC,yEAAwE;AAA/D,gIAAA,sBAAsB,OAAA;AAE/B,uBAAuB;AACvB,+DAA8D;AAArD,sHAAA,iBAAiB,OAAA;AAE1B,0BAA0B;AAC1B,2DAMiC;AAL/B,kHAAA,eAAe,OAAA;AAOjB,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E,2CAIsB;AAHpB,8GAAA,gBAAgB,OAAA;AAChB,qHAAA,uBAAuB,OAAA;AAIzB,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E,2CAMsB;AALpB,sHAAA,wBAAwB,OAAA;AACxB,oHAAA,sBAAsB,OAAA;AACtB,2GAAA,aAAa,OAAA;AAKf,sDAAsD;AACtD,2CAMsB;AALpB,qHAAA,uBAAuB,OAAA;AACvB,wHAAA,0BAA0B,OAAA;AAM5B,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,qDAAqD;AACrD,+DAKmC;AAJjC,oHAAA,eAAe,OAAA;AACf,oHAAA,eAAe,OAAA;AACf,4HAAA,uBAAuB,OAAA;AACvB,kIAAA,6BAA6B,OAAA;AAG/B,yBAAyB;AACzB,uDAG+B;AAF7B,kHAAA,iBAAiB,OAAA;AACjB,gHAAA,eAAe,OAAA;AAGjB,8DAA8D;AAC9D,2DAOiC;AAN/B,+GAAA,YAAY,OAAA;AACZ,oHAAA,iBAAiB,OAAA;AACjB,mHAAA,gBAAgB,OAAA;AAChB,qHAAA,kBAAkB,OAAA;AAClB,mHAAA,gBAAgB,OAAA;AAChB,8GAAA,WAAW,OAAA;AAGb,iBAAiB;AACjB,yCAKwB;AAJtB,gGAAA,MAAM,OAAA;AACN,qGAAA,WAAW,OAAA;AACX,qGAAA,WAAW,OAAA;AAIb,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAElE,QAAA,OAAO,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detectionProcessor.js","sourceRoot":"","sources":["../../../src/processors/detectionProcessor.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;AAuEH,4DAgCC;AAWD,wDAgCC;AAKD,sCAEC;AAtJD,sDAAiE;AA4J3C,6FA5Jb,0BAAY,OA4Ja;AAAzB,4FA5Jc,yBAAW,OA4Jd;AArHpB,+EAA+E;AAC/E,6BAA6B;AAC7B,+EAA+E;AAE/E,IAAI,YAAY,GAAG,CAAC,CAAC;AAErB,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,wBAAwB,CAAC,UAAqC,EAAE;IAC9E,MAAM,EAAE,SAAS,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC;IAElC;;;;;;OAMG;IACH,OAAO,SAAS,qBAAqB,CACnC,MAAe;QAEf,SAAS,CAAC;QAEV,iCAAiC;QACjC,YAAY,EAAE,CAAC;QACf,IAAI,YAAY,GAAG,SAAS,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,wCAAwC;QACxC,sCAAsC;QACtC,iCAAiC;QACjC,gDAAgD;QAChD,yBAAyB;QAEzB,yEAAyE;QACzE,+DAA+D;QAE/D,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;;;GAIG;AACH,SAAgB,sBAAsB,CACpC,SAAyB,EACzB,UAAkB,EAClB,WAAmB;IAEnB,MAAM,SAAS,GAAG,0BAAY,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI;QACtD,KAAK,EAAE,SAAS,SAAS,CAAC,UAAU,EAAE;QACtC,QAAQ,EAAE,SAAkB;KAC7B,CAAC;IAEF,MAAM,WAAW,GAAgB;QAC/B,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU;QAC/B,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW;QAChC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK,GAAG,UAAU;QACvC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,WAAW;KAC3C,CAAC;IAEF,OAAO;QACL,EAAE,EAAE,SAAS,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QACpE,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,SAAS,CAAC,UAAU;QAChC,WAAW;QACX,IAAI,EAAE;YACJ,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,UAAU,EAAE,SAAS,CAAC,KAAK;YAC3B,UAAU,EAAE,SAAS,CAAC,UAAU;YAChC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;SACzC;QACD,MAAM,EAAE,WAAW;QACnB,gBAAgB,EAAE,CAAC,EAAE,4CAA4C;QACjE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,UAAkB;IAC9C,OAAO,0BAAY,CAAC,UAAU,CAAC,EAAE,KAAK,IAAI,SAAS,UAAU,EAAE,CAAC;AAClE,CAAC"}
|
|
@@ -14,3 +14,4 @@ Object.defineProperty(exports, "CLASS_LABELS", { enumerable: true, get: function
|
|
|
14
14
|
var tfliteFrameProcessor_1 = require("./tfliteFrameProcessor");
|
|
15
15
|
Object.defineProperty(exports, "useTFLiteFrameProcessor", { enumerable: true, get: function () { return tfliteFrameProcessor_1.useTFLiteFrameProcessor; } });
|
|
16
16
|
Object.defineProperty(exports, "createTFLiteFrameProcessor", { enumerable: true, get: function () { return tfliteFrameProcessor_1.createTFLiteFrameProcessor; } });
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/processors/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,2DAQ8B;AAP5B,8HAAA,wBAAwB,OAAA;AACxB,4HAAA,sBAAsB,OAAA;AACtB,mHAAA,aAAa,OAAA;AACb,iHAAA,WAAW,OAAA;AACX,kHAAA,YAAY,OAAA;AAKd,sDAAsD;AACtD,+DAMgC;AAL9B,+HAAA,uBAAuB,OAAA;AACvB,kIAAA,0BAA0B,OAAA"}
|