mindee 1.0.6 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.nyc_output/f57ba3bc-1777-4ecc-81e1-230327c2a401.json +1 -0
- package/.nyc_output/processinfo/f57ba3bc-1777-4ecc-81e1-230327c2a401.json +1 -0
- package/.nyc_output/processinfo/index.json +1 -0
- package/CHANGELOG.md +37 -2
- package/LICENSE +202 -0
- package/README.md +1 -1
- package/coverage/coverage.json +1 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +79 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +171 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +170 -0
- package/coverage/lcov.info +1595 -0
- package/coverage.lcov +1595 -0
- package/lib/api/financialDocument.js +5 -5
- package/lib/api/invoice.js +3 -3
- package/lib/api/object.js +2 -2
- package/lib/api/receipt.js +3 -3
- package/lib/api/request.js +12 -6
- package/lib/api/response.js +8 -3
- package/lib/documents/document.js +5 -1
- package/lib/documents/fields/field.js +1 -1
- package/lib/documents/financialDocument.js +36 -28
- package/lib/documents/invoice.js +49 -31
- package/lib/documents/receipt.js +40 -25
- package/lib/inputs.js +78 -24
- package/mindee/api/financialDocument.js +47 -0
- package/mindee/api/index.js +5 -0
- package/mindee/api/invoice.js +53 -0
- package/mindee/api/object.js +82 -0
- package/mindee/api/receipt.js +39 -0
- package/mindee/api/request.js +70 -0
- package/mindee/api/response.js +65 -0
- package/mindee/documents/document.js +69 -0
- package/mindee/documents/fields/amount.js +25 -0
- package/mindee/documents/fields/date.js +29 -0
- package/mindee/documents/fields/field.js +89 -0
- package/mindee/documents/fields/index.js +7 -0
- package/mindee/documents/fields/locale.js +30 -0
- package/mindee/documents/fields/orientation.js +24 -0
- package/mindee/documents/fields/paymentDetails.js +52 -0
- package/mindee/documents/fields/tax.js +47 -0
- package/mindee/documents/financialDocument.js +228 -0
- package/mindee/documents/index.js +5 -0
- package/mindee/documents/invoice.js +411 -0
- package/mindee/documents/receipt.js +287 -0
- package/mindee/errors/handler.js +16 -0
- package/mindee/index.js +36 -0
- package/mindee/inputs.js +156 -0
- package/mindee/logger.js +33 -0
- package/package.json +7 -3
- package/LICENSE.md +0 -674
|
@@ -40,13 +40,13 @@ class APIFinancialDocument extends APIObject {
|
|
|
40
40
|
} = _ref;
|
|
41
41
|
var inputFile = new Input({
|
|
42
42
|
file: input,
|
|
43
|
-
inputType,
|
|
44
|
-
filename,
|
|
45
|
-
cutPdf
|
|
43
|
+
inputType: inputType,
|
|
44
|
+
filename: filename,
|
|
45
|
+
allowCutPdf: cutPdf
|
|
46
46
|
});
|
|
47
|
-
_this.apiToken = inputFile.fileExtension === "pdf" ? _this.invoiceToken : _this.receiptToken;
|
|
48
47
|
yield inputFile.init();
|
|
49
|
-
|
|
48
|
+
_this.apiToken = inputFile.fileExtension === "application/pdf" ? _this.invoiceToken : _this.receiptToken;
|
|
49
|
+
var url = inputFile.fileExtension === "application/pdf" ? "/invoices/v2/predict" : "/expense_receipts/v3/predict";
|
|
50
50
|
|
|
51
51
|
_superprop_getParse().call(_this);
|
|
52
52
|
|
package/lib/api/invoice.js
CHANGED
|
@@ -43,9 +43,9 @@ class APIInvoice extends APIObject {
|
|
|
43
43
|
|
|
44
44
|
var inputFile = new Input({
|
|
45
45
|
file: input,
|
|
46
|
-
inputType,
|
|
47
|
-
filename,
|
|
48
|
-
cutPdf
|
|
46
|
+
inputType: inputType,
|
|
47
|
+
filename: filename,
|
|
48
|
+
allowCutPdf: cutPdf
|
|
49
49
|
});
|
|
50
50
|
yield inputFile.init();
|
|
51
51
|
var url = "v".concat(version, "/predict");
|
package/lib/api/object.js
CHANGED
|
@@ -21,7 +21,7 @@ class APIObject {
|
|
|
21
21
|
var apiToken = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;
|
|
22
22
|
var apiName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
|
|
23
23
|
this.apiToken = apiToken;
|
|
24
|
-
this.baseUrl = "https://api.mindee.net/products";
|
|
24
|
+
this.baseUrl = "https://api.mindee.net/v1/products/mindee/";
|
|
25
25
|
this.apiName = apiName;
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
@@ -65,7 +65,7 @@ class APIObject {
|
|
|
65
65
|
|
|
66
66
|
|
|
67
67
|
wrapResponse(inputFile, response, documentType) {
|
|
68
|
-
if (response.statusCode
|
|
68
|
+
if (response.statusCode > 201) {
|
|
69
69
|
var errorMessage = JSON.stringify(response.data, null, 4);
|
|
70
70
|
errorHandler.throw(new Error("".concat(this.apiName, " API ").concat(response.statusCode, " HTTP error: ").concat(errorMessage)), false);
|
|
71
71
|
return new Response({
|
package/lib/api/receipt.js
CHANGED
|
@@ -43,9 +43,9 @@ class APIReceipt extends APIObject {
|
|
|
43
43
|
|
|
44
44
|
var inputFile = new Input({
|
|
45
45
|
file: input,
|
|
46
|
-
inputType,
|
|
47
|
-
filename,
|
|
48
|
-
cutPdf
|
|
46
|
+
inputType: inputType,
|
|
47
|
+
filename: filename,
|
|
48
|
+
allowCutPdf: cutPdf
|
|
49
49
|
});
|
|
50
50
|
yield inputFile.init();
|
|
51
51
|
var url = "v".concat(version, "/predict");
|
package/lib/api/request.js
CHANGED
|
@@ -18,23 +18,25 @@ var {
|
|
|
18
18
|
|
|
19
19
|
var FormData = require("form-data");
|
|
20
20
|
|
|
21
|
+
var os = require("os");
|
|
22
|
+
|
|
21
23
|
var request = function request(url, method, headers, input) {
|
|
22
24
|
var includeWords = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
23
25
|
return new Promise(function (resolve, reject) {
|
|
24
26
|
var form = new FormData();
|
|
25
27
|
var body;
|
|
26
|
-
headers["User-Agent"] = "mindee-
|
|
28
|
+
headers["User-Agent"] = "mindee-api-nodejs@v".concat(sdkVersion, " nodejs-").concat(process.version, " ").concat(os.type().toLowerCase());
|
|
27
29
|
|
|
28
30
|
if (["path", "stream"].includes(input.inputType)) {
|
|
29
31
|
var fileParams = {
|
|
30
32
|
filename: input.filename
|
|
31
33
|
};
|
|
32
|
-
form.append("
|
|
34
|
+
form.append("document", input.fileObject, fileParams);
|
|
33
35
|
if (includeWords) form.append("include_mvision", "true");
|
|
34
36
|
headers = _objectSpread(_objectSpread({}, headers), form.getHeaders());
|
|
35
37
|
} else if (input.inputType === "base64") {
|
|
36
38
|
var body_obj = {
|
|
37
|
-
|
|
39
|
+
document: input.fileObject
|
|
38
40
|
};
|
|
39
41
|
if (includeWords) body_obj["include_mvision"] = "true";
|
|
40
42
|
body = JSON.stringify(body_obj);
|
|
@@ -55,9 +57,13 @@ var request = function request(url, method, headers, input) {
|
|
|
55
57
|
responseBody += chunk;
|
|
56
58
|
});
|
|
57
59
|
res.on("end", function () {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
60
|
+
try {
|
|
61
|
+
resolve(_objectSpread(_objectSpread({}, res), {}, {
|
|
62
|
+
data: JSON.parse(responseBody)
|
|
63
|
+
}));
|
|
64
|
+
} catch (error) {
|
|
65
|
+
console.log("error");
|
|
66
|
+
}
|
|
61
67
|
});
|
|
62
68
|
});
|
|
63
69
|
req.on("error", err => {
|
package/lib/api/response.js
CHANGED
|
@@ -69,19 +69,24 @@ class Response {
|
|
|
69
69
|
invoice: params => new Invoice(params),
|
|
70
70
|
financialDocument: params => new FinancialDocument(params)
|
|
71
71
|
};
|
|
72
|
-
var predictions = this.httpResponse.data.
|
|
72
|
+
var predictions = this.httpResponse.data.document.inference.pages.entries();
|
|
73
73
|
this["".concat(this.documentType, "s")] = []; // Create a list of Document (Receipt, Invoice...) for each page of the input document
|
|
74
74
|
|
|
75
75
|
for (var [pageNumber, prediction] of predictions) {
|
|
76
76
|
this["".concat(this.documentType, "s")].push(constructors[this.documentType]({
|
|
77
|
-
apiPrediction: prediction,
|
|
77
|
+
apiPrediction: prediction.prediction,
|
|
78
78
|
inputFile: this.input,
|
|
79
79
|
pageNumber: pageNumber
|
|
80
80
|
}));
|
|
81
81
|
} // Merge the list of Document into a unique Document
|
|
82
82
|
|
|
83
83
|
|
|
84
|
-
this[this.documentType] =
|
|
84
|
+
this[this.documentType] = constructors[this.documentType]({
|
|
85
|
+
apiPrediction: this.httpResponse.data.document.inference.prediction,
|
|
86
|
+
inputFile: this.input,
|
|
87
|
+
pageNumber: -1,
|
|
88
|
+
level: "document"
|
|
89
|
+
});
|
|
85
90
|
}
|
|
86
91
|
|
|
87
92
|
}
|
|
@@ -79,7 +79,11 @@ class Document {
|
|
|
79
79
|
for (var attribute of attributes) {
|
|
80
80
|
var _document$attribute;
|
|
81
81
|
|
|
82
|
-
if ((document === null || document === void 0 ? void 0 :
|
|
82
|
+
if (Array.isArray(document === null || document === void 0 ? void 0 : document[attribute])) {
|
|
83
|
+
var _finalDocument$attrib;
|
|
84
|
+
|
|
85
|
+
finalDocument[attribute] = (_finalDocument$attrib = finalDocument[attribute]) !== null && _finalDocument$attrib !== void 0 && _finalDocument$attrib.length ? finalDocument[attribute] : document === null || document === void 0 ? void 0 : document[attribute];
|
|
86
|
+
} else if ((document === null || document === void 0 ? void 0 : (_document$attribute = document[attribute]) === null || _document$attribute === void 0 ? void 0 : _document$attribute.probability) > finalDocument[attribute].probability) {
|
|
83
87
|
finalDocument[attribute] = document === null || document === void 0 ? void 0 : document[attribute];
|
|
84
88
|
}
|
|
85
89
|
}
|
|
@@ -22,7 +22,7 @@ class Field {
|
|
|
22
22
|
this.probability = 0.0;
|
|
23
23
|
this.bbox = [];
|
|
24
24
|
|
|
25
|
-
if (valueKey in prediction && prediction[valueKey] !==
|
|
25
|
+
if (valueKey in prediction && prediction[valueKey] !== null) {
|
|
26
26
|
this.value = prediction[valueKey];
|
|
27
27
|
if (prediction.probability) this.probability = prediction.probability;
|
|
28
28
|
if (prediction.segmentation) this.bbox = prediction.segmentation.bounding_box || [];
|
|
@@ -53,6 +53,7 @@ class FinancialDocument extends Document {
|
|
|
53
53
|
* @param {Object} totalTax - total tax value for creating FinancialDocument object from scratch
|
|
54
54
|
* @param {Object} time - time value for creating FinancialDocument object from scratch
|
|
55
55
|
* @param {Object} pageNumber - pageNumber for multi pages pdf input
|
|
56
|
+
* @param {String} level - specify whether object is built from "page" level or "document" level prediction
|
|
56
57
|
*/
|
|
57
58
|
constructor(_ref) {
|
|
58
59
|
var {
|
|
@@ -65,14 +66,15 @@ class FinancialDocument extends Document {
|
|
|
65
66
|
invoiceNumber: _invoiceNumber = undefined,
|
|
66
67
|
dueDate: _dueDate = undefined,
|
|
67
68
|
taxes: _taxes = undefined,
|
|
68
|
-
merchantName
|
|
69
|
+
merchantName = undefined,
|
|
69
70
|
paymentDetails: _paymentDetails = undefined,
|
|
70
71
|
companyNumber: _companyNumber = undefined,
|
|
71
72
|
vatNumber: _vatNumber = undefined,
|
|
72
73
|
orientation: _orientation = undefined,
|
|
73
74
|
totalTax: _totalTax = undefined,
|
|
74
75
|
time: _time = undefined,
|
|
75
|
-
pageNumber: _pageNumber = 0
|
|
76
|
+
pageNumber: _pageNumber = 0,
|
|
77
|
+
level = "page"
|
|
76
78
|
} = _ref;
|
|
77
79
|
super(_inputFile);
|
|
78
80
|
|
|
@@ -84,6 +86,8 @@ class FinancialDocument extends Document {
|
|
|
84
86
|
|
|
85
87
|
_initFromScratch.add(this);
|
|
86
88
|
|
|
89
|
+
this.level = level;
|
|
90
|
+
|
|
87
91
|
if (_apiPrediction === undefined) {
|
|
88
92
|
_classPrivateMethodGet(this, _initFromScratch, _initFromScratch2).call(this, {
|
|
89
93
|
locale: _locale,
|
|
@@ -93,7 +97,7 @@ class FinancialDocument extends Document {
|
|
|
93
97
|
invoiceNumber: _invoiceNumber,
|
|
94
98
|
dueDate: _dueDate,
|
|
95
99
|
taxes: _taxes,
|
|
96
|
-
|
|
100
|
+
supplier,
|
|
97
101
|
paymentDetails: _paymentDetails,
|
|
98
102
|
companyNumber: _companyNumber,
|
|
99
103
|
vatNumber: _vatNumber,
|
|
@@ -110,7 +114,7 @@ class FinancialDocument extends Document {
|
|
|
110
114
|
}
|
|
111
115
|
|
|
112
116
|
toString() {
|
|
113
|
-
return "\n -----Financial document-----\n Filename: ".concat(this.filename, "\n Total amount: ").concat(this.totalIncl.value, "\n Date: ").concat(this.date.value, "\n
|
|
117
|
+
return "\n -----Financial document-----\n Filename: ".concat(this.filename, "\n Total amount: ").concat(this.totalIncl.value, "\n Date: ").concat(this.date.value, "\n Supplier: ").concat(this.supplier.value, "\n Total taxes: ").concat(this.totalTax.value, "\n ");
|
|
114
118
|
}
|
|
115
119
|
|
|
116
120
|
}
|
|
@@ -130,7 +134,7 @@ var _initFromScratch2 = function _initFromScratch2(_ref2) {
|
|
|
130
134
|
vatNumber,
|
|
131
135
|
orientation,
|
|
132
136
|
pageNumber,
|
|
133
|
-
|
|
137
|
+
supplier,
|
|
134
138
|
time
|
|
135
139
|
} = _ref2;
|
|
136
140
|
|
|
@@ -150,7 +154,7 @@ var _initFromScratch2 = function _initFromScratch2(_ref2) {
|
|
|
150
154
|
this.totalTax = new Amount(constructPrediction(totalTax));
|
|
151
155
|
this.date = new Date(constructPrediction(date));
|
|
152
156
|
this.dueDate = new Date(constructPrediction(dueDate));
|
|
153
|
-
this.
|
|
157
|
+
this.supplier = new Field(constructPrediction(supplier));
|
|
154
158
|
this.time = new Field(constructPrediction(time));
|
|
155
159
|
this.orientation = new Orientation(constructPrediction(orientation));
|
|
156
160
|
this.invoiceNumber = new Field(constructPrediction(invoiceNumber));
|
|
@@ -180,46 +184,50 @@ var _initFromApiPrediction2 = function _initFromApiPrediction2(apiPrediction, in
|
|
|
180
184
|
var invoice = new Invoice({
|
|
181
185
|
apiPrediction,
|
|
182
186
|
inputFile,
|
|
183
|
-
pageNumber
|
|
187
|
+
pageNumber,
|
|
188
|
+
level: this.level
|
|
184
189
|
});
|
|
185
|
-
|
|
190
|
+
this.locale = invoice.locale;
|
|
191
|
+
this.totalIncl = invoice.totalIncl;
|
|
192
|
+
this.totalExcl = invoice.totalExcl;
|
|
193
|
+
this.date = invoice.invoiceDate;
|
|
194
|
+
this.invoiceNumber = invoice.invoiceNumber;
|
|
195
|
+
this.dueDate = invoice.dueDate;
|
|
196
|
+
this.taxes = invoice.taxes;
|
|
197
|
+
this.supplier = invoice.supplier;
|
|
198
|
+
this.paymentDetails = invoice.paymentDetails;
|
|
199
|
+
this.companyNumber = invoice.companyNumber;
|
|
200
|
+
this.orientation = invoice.orientation;
|
|
201
|
+
this.totalTax = invoice.totalTax;
|
|
186
202
|
this.time = new Field({
|
|
187
203
|
prediction: {
|
|
188
204
|
value: undefined,
|
|
189
205
|
probability: 0.0
|
|
190
206
|
}
|
|
191
207
|
});
|
|
192
|
-
this.merchantName = new Field({
|
|
193
|
-
prediction: {
|
|
194
|
-
value: undefined,
|
|
195
|
-
probability: 0.0
|
|
196
|
-
}
|
|
197
|
-
});
|
|
198
208
|
} else {
|
|
199
209
|
var receipt = new Receipt({
|
|
200
210
|
apiPrediction,
|
|
201
211
|
inputFile,
|
|
202
|
-
pageNumber
|
|
203
|
-
|
|
204
|
-
Object.assign(this, receipt);
|
|
205
|
-
this.invoiceDate = new Field({
|
|
206
|
-
prediction: {
|
|
207
|
-
value: undefined,
|
|
208
|
-
probability: 0.0
|
|
209
|
-
}
|
|
212
|
+
pageNumber,
|
|
213
|
+
level: this.level
|
|
210
214
|
});
|
|
215
|
+
this.orientation = receipt.orientation;
|
|
216
|
+
this.date = receipt.date;
|
|
217
|
+
this.dueDate = receipt.date;
|
|
218
|
+
this.taxes = receipt.taxes;
|
|
219
|
+
this.locale = receipt.locale;
|
|
220
|
+
this.totalIncl = receipt.totalIncl;
|
|
221
|
+
this.totalExcl = receipt.totalExcl;
|
|
222
|
+
this.supplier = receipt.merchantName;
|
|
223
|
+
this.time = receipt.time;
|
|
224
|
+
this.totalTax = receipt.totalTax;
|
|
211
225
|
this.invoiceNumber = new Field({
|
|
212
226
|
prediction: {
|
|
213
227
|
value: undefined,
|
|
214
228
|
probability: 0.0
|
|
215
229
|
}
|
|
216
230
|
});
|
|
217
|
-
this.dueDate = new Field({
|
|
218
|
-
prediction: {
|
|
219
|
-
value: undefined,
|
|
220
|
-
probability: 0.0
|
|
221
|
-
}
|
|
222
|
-
});
|
|
223
231
|
this.paymentDetails = new Field({
|
|
224
232
|
prediction: {
|
|
225
233
|
value: undefined,
|
package/lib/documents/invoice.js
CHANGED
|
@@ -50,7 +50,6 @@ class Invoice extends Document {
|
|
|
50
50
|
/**
|
|
51
51
|
* @param {Object} apiPrediction - Json parsed prediction from HTTP response
|
|
52
52
|
* @param {Input} input - Input object
|
|
53
|
-
* @param {Integer} pageNumber - Page number for multi pages pdf input
|
|
54
53
|
* @param {Object} locale - locale value for creating Invoice object from scratch
|
|
55
54
|
* @param {Object} totalIncl - total tax included value for creating Invoice object from scratch
|
|
56
55
|
* @param {Object} totalExcl - total tax excluded value for creating Invoice object from scratch
|
|
@@ -63,7 +62,8 @@ class Invoice extends Document {
|
|
|
63
62
|
* @param {Object} vatNumber - vat number value for creating Invoice object from scratch
|
|
64
63
|
* @param {Object} orientation - orientation value for creating Invoice object from scratch
|
|
65
64
|
* @param {Object} totalTax - total tax value for creating Invoice object from scratch
|
|
66
|
-
* @param {
|
|
65
|
+
* @param {Number} pageNumber - pageNumber for multi pages pdf input
|
|
66
|
+
* @param {String} level - specify whether object is built from "page" level or "document" level prediction
|
|
67
67
|
*/
|
|
68
68
|
constructor(_ref) {
|
|
69
69
|
var {
|
|
@@ -82,7 +82,8 @@ class Invoice extends Document {
|
|
|
82
82
|
vatNumber: _vatNumber = undefined,
|
|
83
83
|
orientation: _orientation = undefined,
|
|
84
84
|
totalTax: _totalTax = undefined,
|
|
85
|
-
pageNumber: _pageNumber = 0
|
|
85
|
+
pageNumber: _pageNumber = 0,
|
|
86
|
+
level = "page"
|
|
86
87
|
} = _ref;
|
|
87
88
|
super(inputFile);
|
|
88
89
|
|
|
@@ -108,6 +109,18 @@ class Invoice extends Document {
|
|
|
108
109
|
|
|
109
110
|
_initFromScratch.add(this);
|
|
110
111
|
|
|
112
|
+
this.level = level;
|
|
113
|
+
|
|
114
|
+
this.constructPrediction = function (item) {
|
|
115
|
+
return {
|
|
116
|
+
prediction: {
|
|
117
|
+
value: item
|
|
118
|
+
},
|
|
119
|
+
valueKey: "value",
|
|
120
|
+
pageNumber: _pageNumber
|
|
121
|
+
};
|
|
122
|
+
};
|
|
123
|
+
|
|
111
124
|
if (_apiPrediction === undefined) {
|
|
112
125
|
_classPrivateMethodGet(this, _initFromScratch, _initFromScratch2).call(this, {
|
|
113
126
|
locale: _locale,
|
|
@@ -157,30 +170,18 @@ var _initFromScratch2 = function _initFromScratch2(_ref2) {
|
|
|
157
170
|
orientation,
|
|
158
171
|
pageNumber
|
|
159
172
|
} = _ref2;
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
this.
|
|
172
|
-
this.totalIncl = new Amount(constructPrediction(totalIncl));
|
|
173
|
-
this.totalExcl = new Amount(constructPrediction(totalExcl));
|
|
174
|
-
this.totalTax = new Amount(constructPrediction(totalTax));
|
|
175
|
-
this.date = new Date(constructPrediction(invoiceDate));
|
|
176
|
-
this.invoiceDate = new Date(constructPrediction(invoiceDate));
|
|
177
|
-
this.dueDate = new Date(constructPrediction(dueDate));
|
|
178
|
-
this.supplier = new Field(constructPrediction(supplier));
|
|
179
|
-
this.orientation = new Orientation(constructPrediction(orientation));
|
|
180
|
-
this.invoiceNumber = new Field(constructPrediction(invoiceNumber));
|
|
181
|
-
this.paymentDetails = new Field(constructPrediction(paymentDetails));
|
|
182
|
-
this.companyNumber = new Field(constructPrediction(companyNumber));
|
|
183
|
-
this.vatNumber = new Field(constructPrediction(vatNumber));
|
|
173
|
+
this.locale = new Locale(this.constructPrediction(locale));
|
|
174
|
+
this.totalIncl = new Amount(this.constructPrediction(totalIncl));
|
|
175
|
+
this.totalExcl = new Amount(this.constructPrediction(totalExcl));
|
|
176
|
+
this.totalTax = new Amount(this.constructPrediction(totalTax));
|
|
177
|
+
this.date = new Date(this.constructPrediction(invoiceDate));
|
|
178
|
+
this.invoiceDate = new Date(this.constructPrediction(invoiceDate));
|
|
179
|
+
this.dueDate = new Date(this.constructPrediction(dueDate));
|
|
180
|
+
this.supplier = new Field(this.constructPrediction(supplier));
|
|
181
|
+
this.invoiceNumber = new Field(this.constructPrediction(invoiceNumber));
|
|
182
|
+
this.paymentDetails = new Field(this.constructPrediction(paymentDetails));
|
|
183
|
+
this.companyNumber = new Field(this.constructPrediction(companyNumber));
|
|
184
|
+
this.vatNumber = new Field(this.constructPrediction(vatNumber));
|
|
184
185
|
|
|
185
186
|
if (taxes !== undefined) {
|
|
186
187
|
this.taxes = [];
|
|
@@ -197,6 +198,10 @@ var _initFromScratch2 = function _initFromScratch2(_ref2) {
|
|
|
197
198
|
}));
|
|
198
199
|
}
|
|
199
200
|
}
|
|
201
|
+
|
|
202
|
+
if (this.level === "page") {
|
|
203
|
+
this.orientation = new Orientation(this.constructPrediction(orientation));
|
|
204
|
+
}
|
|
200
205
|
};
|
|
201
206
|
|
|
202
207
|
var _initFromApiPrediction2 = function _initFromApiPrediction2(apiPrediction, pageNumber) {
|
|
@@ -242,10 +247,6 @@ var _initFromApiPrediction2 = function _initFromApiPrediction2(apiPrediction, pa
|
|
|
242
247
|
codeKey: "code"
|
|
243
248
|
});
|
|
244
249
|
});
|
|
245
|
-
this.orientation = new Orientation({
|
|
246
|
-
prediction: apiPrediction.orientation,
|
|
247
|
-
pageNumber
|
|
248
|
-
});
|
|
249
250
|
this.companyNumber = apiPrediction.company_registration.map(function (companyNumber) {
|
|
250
251
|
return new Field({
|
|
251
252
|
prediction: companyNumber,
|
|
@@ -272,6 +273,23 @@ var _initFromApiPrediction2 = function _initFromApiPrediction2(apiPrediction, pa
|
|
|
272
273
|
pageNumber
|
|
273
274
|
});
|
|
274
275
|
});
|
|
276
|
+
|
|
277
|
+
if (this.level === "page") {
|
|
278
|
+
this.orientation = new Orientation({
|
|
279
|
+
prediction: apiPrediction.orientation,
|
|
280
|
+
pageNumber
|
|
281
|
+
});
|
|
282
|
+
} else {
|
|
283
|
+
this.orientation = new Orientation(this.constructPrediction({
|
|
284
|
+
prediction: {
|
|
285
|
+
value: undefined,
|
|
286
|
+
probability: 0.0,
|
|
287
|
+
degrees: undefined
|
|
288
|
+
}
|
|
289
|
+
}));
|
|
290
|
+
} // document.inference.ocr
|
|
291
|
+
|
|
292
|
+
|
|
275
293
|
if ("mvision" in apiPrediction) this.words = apiPrediction.mvision;
|
|
276
294
|
};
|
|
277
295
|
|
package/lib/documents/receipt.js
CHANGED
|
@@ -57,6 +57,7 @@ class Receipt extends Document {
|
|
|
57
57
|
* @param {Object} orientation - orientation value for creating Receipt object from scratch
|
|
58
58
|
* @param {Object} totalTax - total taxes value for creating Receipt object from scratch
|
|
59
59
|
* @param {Object} totalExcl - total taxes excluded value for creating Receipt object from scratch
|
|
60
|
+
* @param {String} level - specify whether object is built from "page" level or "document" level prediction
|
|
60
61
|
*/
|
|
61
62
|
constructor(_ref) {
|
|
62
63
|
var {
|
|
@@ -72,7 +73,8 @@ class Receipt extends Document {
|
|
|
72
73
|
orientation: _orientation = undefined,
|
|
73
74
|
totalTax: _totalTax = undefined,
|
|
74
75
|
totalExcl: _totalExcl = undefined,
|
|
75
|
-
pageNumber: _pageNumber = 0
|
|
76
|
+
pageNumber: _pageNumber = 0,
|
|
77
|
+
level = "page"
|
|
76
78
|
} = _ref;
|
|
77
79
|
super(inputFile);
|
|
78
80
|
|
|
@@ -90,6 +92,18 @@ class Receipt extends Document {
|
|
|
90
92
|
|
|
91
93
|
_initFromScratch.add(this);
|
|
92
94
|
|
|
95
|
+
this.level = level;
|
|
96
|
+
|
|
97
|
+
this.constructPrediction = function (item) {
|
|
98
|
+
return {
|
|
99
|
+
prediction: {
|
|
100
|
+
value: item
|
|
101
|
+
},
|
|
102
|
+
valueKey: "value",
|
|
103
|
+
pageNumber: _pageNumber
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
|
|
93
107
|
if (_apiPrediction === undefined) {
|
|
94
108
|
_classPrivateMethodGet(this, _initFromScratch, _initFromScratch2).call(this, {
|
|
95
109
|
locale: _locale,
|
|
@@ -147,23 +161,12 @@ var _initFromScratch2 = function _initFromScratch2(_ref2) {
|
|
|
147
161
|
totalTax,
|
|
148
162
|
pageNumber
|
|
149
163
|
} = _ref2;
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
valueKey: "value",
|
|
157
|
-
pageNumber
|
|
158
|
-
};
|
|
159
|
-
};
|
|
160
|
-
|
|
161
|
-
this.locale = new Locale(constructPrediction(locale));
|
|
162
|
-
this.totalIncl = new Amount(constructPrediction(totalIncl));
|
|
163
|
-
this.date = new Date(constructPrediction(date));
|
|
164
|
-
this.category = new Field(constructPrediction(category));
|
|
165
|
-
this.merchantName = new Field(constructPrediction(merchantName));
|
|
166
|
-
this.time = new Field(constructPrediction(time));
|
|
164
|
+
this.locale = new Locale(this.constructPrediction(locale));
|
|
165
|
+
this.totalIncl = new Amount(this.constructPrediction(totalIncl));
|
|
166
|
+
this.date = new Date(this.constructPrediction(date));
|
|
167
|
+
this.category = new Field(this.constructPrediction(category));
|
|
168
|
+
this.merchantName = new Field(this.constructPrediction(merchantName));
|
|
169
|
+
this.time = new Field(this.constructPrediction(time));
|
|
167
170
|
|
|
168
171
|
if (taxes !== undefined) {
|
|
169
172
|
this.taxes = [];
|
|
@@ -181,9 +184,9 @@ var _initFromScratch2 = function _initFromScratch2(_ref2) {
|
|
|
181
184
|
}
|
|
182
185
|
}
|
|
183
186
|
|
|
184
|
-
this.orientation = new Orientation(constructPrediction(orientation));
|
|
185
|
-
this.totalTax = new Amount(constructPrediction(totalTax));
|
|
186
|
-
this.totalExcl = new Amount(constructPrediction(totalExcl));
|
|
187
|
+
this.orientation = new Orientation(this.constructPrediction(orientation));
|
|
188
|
+
this.totalTax = new Amount(this.constructPrediction(totalTax));
|
|
189
|
+
this.totalExcl = new Amount(this.constructPrediction(totalExcl));
|
|
187
190
|
};
|
|
188
191
|
|
|
189
192
|
var _initFromApiPrediction2 = function _initFromApiPrediction2(apiPrediction, pageNumber) {
|
|
@@ -223,10 +226,6 @@ var _initFromApiPrediction2 = function _initFromApiPrediction2(apiPrediction, pa
|
|
|
223
226
|
rateKey: "rate",
|
|
224
227
|
codeKey: "code"
|
|
225
228
|
}));
|
|
226
|
-
this.orientation = new Orientation({
|
|
227
|
-
prediction: apiPrediction.orientation,
|
|
228
|
-
pageNumber
|
|
229
|
-
});
|
|
230
229
|
this.totalTax = new Amount({
|
|
231
230
|
prediction: {
|
|
232
231
|
value: undefined,
|
|
@@ -243,6 +242,22 @@ var _initFromApiPrediction2 = function _initFromApiPrediction2(apiPrediction, pa
|
|
|
243
242
|
valueKey: "value",
|
|
244
243
|
pageNumber
|
|
245
244
|
});
|
|
245
|
+
|
|
246
|
+
if (this.level === "page") {
|
|
247
|
+
this.orientation = new Orientation({
|
|
248
|
+
prediction: apiPrediction.orientation,
|
|
249
|
+
pageNumber
|
|
250
|
+
});
|
|
251
|
+
} else {
|
|
252
|
+
this.orientation = new Orientation(this.constructPrediction({
|
|
253
|
+
prediction: {
|
|
254
|
+
value: undefined,
|
|
255
|
+
probability: 0.0,
|
|
256
|
+
degrees: undefined
|
|
257
|
+
}
|
|
258
|
+
}));
|
|
259
|
+
}
|
|
260
|
+
|
|
246
261
|
if ("mvision" in apiPrediction) this.words = apiPrediction.mvision;
|
|
247
262
|
};
|
|
248
263
|
|