mindee 3.0.0 → 3.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/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## v3.1.0 - 2022-11-08
4
+ ### Changes
5
+ * :sparkles: Add support for French ID cards.
6
+ * :sparkles: add buffer input source
7
+
8
+ ## v3.0.1 - 2022-11-02
9
+ ### Fixes
10
+ * :bug: Fix for `supplier` property name in `ReceiptV4` document.
11
+
3
12
  ## v3.0.0 - 2022-10-31
4
13
  ### ¡Breaking Changes!
5
14
  * :sparkles: New PDF cut system, which allows specifying exactly which pages to keep or remove.
package/README.md CHANGED
@@ -21,7 +21,7 @@ const mindee = require("mindee");
21
21
  // import * as mindee from "mindee";
22
22
 
23
23
  // Init a new client
24
- const mindeeClient = new mindee.Client({apiKey: "my-api-key"});
24
+ const mindeeClient = new mindee.Client({ apiKey: "my-api-key" });
25
25
 
26
26
  // Load a file from disk and parse it
27
27
  const invoiceResponse = mindeeClient
@@ -30,7 +30,19 @@ const invoiceResponse = mindeeClient
30
30
 
31
31
  // Print a brief summary of the parsed data
32
32
  invoiceResponse.then((resp) => {
33
+
34
+ // The document property can be undefined:
35
+ // * TypeScript will throw an error without this guard clause
36
+ // (or consider using the '?' notation)
37
+ // * JavaScript will be very happy to produce subtle bugs
38
+ // without this guard clause
39
+ if (resp.document === undefined) return;
40
+
41
+ // full object
33
42
  console.log(resp.document);
43
+
44
+ // string summary
45
+ console.log(resp.document.toString());
34
46
  });
35
47
  ```
36
48
 
@@ -42,7 +54,7 @@ const mindee = require("mindee");
42
54
  // import * as mindee from "mindee";
43
55
 
44
56
  // Init a new client and add your document endpoint
45
- const mindeeClient = new mindee.Client({apiKey: "my-api-key"})
57
+ const mindeeClient = new mindee.Client({ apiKey: "my-api-key" })
46
58
  .addEndpoint({
47
59
  accountName: "john",
48
60
  endpointName: "wsnine",
@@ -55,7 +67,14 @@ const customResponse = mindeeClient
55
67
 
56
68
  // Print a brief summary of the parsed data
57
69
  customResponse.then((resp) => {
70
+
71
+ if (resp.document === undefined) return;
72
+
73
+ // full object
58
74
  console.log(resp.document);
75
+
76
+ // string summary
77
+ console.log(resp.document.toString());
59
78
  });
60
79
  ```
61
80
 
@@ -64,7 +83,7 @@ There's more to it than that for those that need more features, or want to
64
83
  customize the experience.
65
84
 
66
85
  All the juicy details are described in the
67
- **[Official Documentation](https://developers.mindee.com/docs/nodejs-sdk)**.
86
+ **[Official Guide](https://developers.mindee.com/docs/nodejs-sdk)**.
68
87
 
69
88
  ## License
70
89
  Copyright © Mindee
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mindee",
3
- "version": "3.0.0",
3
+ "version": "3.1.0",
4
4
  "description": "Mindee Client Library for Node.js",
5
5
  "main": "src/index.js",
6
6
  "bin": "bin/mindee.js",
package/src/cli.js CHANGED
@@ -10,6 +10,7 @@ const COMMAND_INVOICE = "invoice";
10
10
  const COMMAND_RECEIPT = "receipt";
11
11
  const COMMAND_PASSPORT = "passport";
12
12
  const COMMAND_FINANCIAL = "financial";
13
+ const COMMAND_FR_ID_CARD = "fr-id-card";
13
14
  const COMMAND_CUSTOM = "custom";
14
15
  const CLI_COMMAND_CONFIG = new Map([
15
16
  [
@@ -44,6 +45,14 @@ const CLI_COMMAND_CONFIG = new Map([
44
45
  fullText: true,
45
46
  },
46
47
  ],
48
+ [
49
+ COMMAND_FR_ID_CARD,
50
+ {
51
+ description: "FR ID Card V1",
52
+ docType: documents_1.DOC_TYPE_IDCARD_V1,
53
+ fullText: false,
54
+ },
55
+ ],
47
56
  [
48
57
  COMMAND_CUSTOM,
49
58
  {
@@ -95,6 +104,9 @@ async function predictCall(command, inputPath, options) {
95
104
  case COMMAND_PASSPORT:
96
105
  response = await doc.parse(documents_1.PassportV1, predictParams);
97
106
  break;
107
+ case COMMAND_FR_ID_CARD:
108
+ response = await doc.parse(documents_1.IdCardV1, predictParams);
109
+ break;
98
110
  case COMMAND_CUSTOM:
99
111
  response = await doc.parse(documents_1.CustomV1, predictParams);
100
112
  break;
package/src/client.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
2
3
  import { InputSource, PageOptions } from "./inputs";
3
4
  import { Response } from "./api";
4
5
  import { Document, DocumentSig } from "./documents";
@@ -79,5 +80,11 @@ export declare class Client {
79
80
  * @param url
80
81
  */
81
82
  docFromUrl(url: string): DocumentClient;
83
+ /**
84
+ * Load an input document from a Buffer.
85
+ * @param buffer
86
+ * @param filename
87
+ */
88
+ docFromBuffer(buffer: Buffer, filename: string): DocumentClient;
82
89
  }
83
90
  export {};
package/src/client.js CHANGED
@@ -97,6 +97,9 @@ class Client {
97
97
  this.docConfigs.set([api_1.STANDARD_API_OWNER, documents_1.CropperV1.name], new documentConfig_1.DocumentConfig(documents_1.CropperV1, [
98
98
  new api_1.StandardEndpoint("cropper", "1", this.apiKey),
99
99
  ]));
100
+ this.docConfigs.set([api_1.STANDARD_API_OWNER, documents_1.IdCardV1.name], new documentConfig_1.DocumentConfig(documents_1.IdCardV1, [
101
+ new api_1.StandardEndpoint("idcard_fr", "1", this.apiKey),
102
+ ]));
100
103
  }
101
104
  /**
102
105
  * Add a custom endpoint to the client.
@@ -169,5 +172,17 @@ class Client {
169
172
  });
170
173
  return new DocumentClient(doc, this.docConfigs);
171
174
  }
175
+ /**
176
+ * Load an input document from a Buffer.
177
+ * @param buffer
178
+ * @param filename
179
+ */
180
+ docFromBuffer(buffer, filename) {
181
+ const doc = new inputs_1.BufferInput({
182
+ buffer: buffer,
183
+ filename: filename,
184
+ });
185
+ return new DocumentClient(doc, this.docConfigs);
186
+ }
172
187
  }
173
188
  exports.Client = Client;
@@ -1,3 +1,17 @@
1
- import { Document } from "../../document";
1
+ import { Document, DocumentConstructorProps } from "../../document";
2
+ import { Field, DateField, BaseField } from "../../../fields";
2
3
  export declare class IdCardV1 extends Document {
4
+ authority: Field;
5
+ documentSide: BaseField;
6
+ idNumber: Field;
7
+ birthDate: DateField;
8
+ expiryDate: DateField;
9
+ birthPlace: Field;
10
+ gender: Field;
11
+ mrz1: Field;
12
+ mrz2: Field;
13
+ surname: Field;
14
+ givenNames: Field[];
15
+ constructor({ prediction, orientation, extras, inputSource, pageId, }: DocumentConstructorProps);
16
+ toString(): string;
3
17
  }
@@ -2,6 +2,77 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IdCardV1 = void 0;
4
4
  const document_1 = require("../../document");
5
+ const fields_1 = require("../../../fields");
5
6
  class IdCardV1 extends document_1.Document {
7
+ constructor({ prediction, orientation = undefined, extras = undefined, inputSource = undefined, pageId = undefined, }) {
8
+ super({
9
+ inputSource: inputSource,
10
+ pageId: pageId,
11
+ orientation: orientation,
12
+ extras: extras,
13
+ });
14
+ this.givenNames = [];
15
+ this.authority = new fields_1.Field({
16
+ prediction: prediction.authority,
17
+ pageId: pageId,
18
+ });
19
+ this.documentSide = new fields_1.BaseField({
20
+ prediction: prediction.document_side,
21
+ });
22
+ this.idNumber = new fields_1.Field({
23
+ prediction: prediction.id_number,
24
+ pageId: pageId,
25
+ });
26
+ this.birthDate = new fields_1.DateField({
27
+ prediction: prediction.birth_date,
28
+ pageId: pageId,
29
+ });
30
+ this.expiryDate = new fields_1.DateField({
31
+ prediction: prediction.expiry_date,
32
+ pageId: pageId,
33
+ });
34
+ this.birthPlace = new fields_1.Field({
35
+ prediction: prediction.birth_place,
36
+ pageId: pageId,
37
+ });
38
+ this.gender = new fields_1.Field({
39
+ prediction: prediction.gender,
40
+ pageId: pageId,
41
+ });
42
+ this.surname = new fields_1.Field({
43
+ prediction: prediction.surname,
44
+ pageId: pageId,
45
+ });
46
+ this.mrz1 = new fields_1.Field({
47
+ prediction: prediction.mrz1,
48
+ pageId: pageId,
49
+ });
50
+ this.mrz2 = new fields_1.Field({
51
+ prediction: prediction.mrz2,
52
+ pageId: pageId,
53
+ });
54
+ prediction.given_names.map((prediction) => this.givenNames.push(new fields_1.Field({
55
+ prediction: prediction,
56
+ pageId: pageId,
57
+ })));
58
+ }
59
+ toString() {
60
+ const outStr = `----- FR ID Card V1 -----
61
+ Filename: ${this.filename}
62
+ Document side: ${this.documentSide}
63
+ Authority: ${this.authority}
64
+ Given names: ${this.givenNames.map((name) => name.value).join(" ")}
65
+ Surname: ${this.surname}
66
+ Gender: ${this.gender}
67
+ ID Number: ${this.idNumber}
68
+ Birth date: ${this.birthDate}
69
+ Birth place: ${this.birthPlace}
70
+ Expiry date: ${this.expiryDate}
71
+ MRZ 1: ${this.mrz1}
72
+ MRZ 2: ${this.mrz2}
73
+ ----------------------
74
+ `;
75
+ return IdCardV1.cleanOutString(outStr);
76
+ }
6
77
  }
7
78
  exports.IdCardV1 = IdCardV1;
@@ -5,8 +5,9 @@ import { PassportV1 } from "./passport/passportV1";
5
5
  import { FinancialDocumentV1 } from "./financialDocument/financialDocumentV1";
6
6
  import { CustomV1 } from "./custom";
7
7
  import { CropperV1 } from "./cropper/cropperV1";
8
+ import { IdCardV1 } from "./fr/idCard/idCardV1";
8
9
  export { Document, DocumentConstructorProps, DocumentSig } from "./document";
9
- export { ReceiptV3, ReceiptV4, InvoiceV3, FinancialDocumentV1, PassportV1, CustomV1, CropperV1, };
10
+ export { ReceiptV3, ReceiptV4, InvoiceV3, FinancialDocumentV1, PassportV1, CustomV1, CropperV1, IdCardV1, };
10
11
  export declare const DOC_TYPE_CUSTOM: string;
11
12
  export declare const DOC_TYPE_INVOICE_V3: string;
12
13
  export declare const DOC_TYPE_RECEIPT_V3: string;
@@ -14,3 +15,4 @@ export declare const DOC_TYPE_RECEIPT_V4: string;
14
15
  export declare const DOC_TYPE_PASSPORT_V1: string;
15
16
  export declare const DOC_TYPE_FINANCIAL_V1: string;
16
17
  export declare const DOC_TYPE_CROPPER_V1: string;
18
+ export declare const DOC_TYPE_IDCARD_V1: string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DOC_TYPE_CROPPER_V1 = exports.DOC_TYPE_FINANCIAL_V1 = exports.DOC_TYPE_PASSPORT_V1 = exports.DOC_TYPE_RECEIPT_V4 = exports.DOC_TYPE_RECEIPT_V3 = exports.DOC_TYPE_INVOICE_V3 = exports.DOC_TYPE_CUSTOM = exports.CropperV1 = exports.CustomV1 = exports.PassportV1 = exports.FinancialDocumentV1 = exports.InvoiceV3 = exports.ReceiptV4 = exports.ReceiptV3 = exports.Document = void 0;
3
+ exports.DOC_TYPE_IDCARD_V1 = exports.DOC_TYPE_CROPPER_V1 = exports.DOC_TYPE_FINANCIAL_V1 = exports.DOC_TYPE_PASSPORT_V1 = exports.DOC_TYPE_RECEIPT_V4 = exports.DOC_TYPE_RECEIPT_V3 = exports.DOC_TYPE_INVOICE_V3 = exports.DOC_TYPE_CUSTOM = exports.IdCardV1 = exports.CropperV1 = exports.CustomV1 = exports.PassportV1 = exports.FinancialDocumentV1 = exports.InvoiceV3 = exports.ReceiptV4 = exports.ReceiptV3 = exports.Document = void 0;
4
4
  const invoiceV3_1 = require("./invoice/invoiceV3");
5
5
  Object.defineProperty(exports, "InvoiceV3", { enumerable: true, get: function () { return invoiceV3_1.InvoiceV3; } });
6
6
  const receiptV3_1 = require("./receipt/receiptV3");
@@ -15,6 +15,8 @@ const custom_1 = require("./custom");
15
15
  Object.defineProperty(exports, "CustomV1", { enumerable: true, get: function () { return custom_1.CustomV1; } });
16
16
  const cropperV1_1 = require("./cropper/cropperV1");
17
17
  Object.defineProperty(exports, "CropperV1", { enumerable: true, get: function () { return cropperV1_1.CropperV1; } });
18
+ const idCardV1_1 = require("./fr/idCard/idCardV1");
19
+ Object.defineProperty(exports, "IdCardV1", { enumerable: true, get: function () { return idCardV1_1.IdCardV1; } });
18
20
  var document_1 = require("./document");
19
21
  Object.defineProperty(exports, "Document", { enumerable: true, get: function () { return document_1.Document; } });
20
22
  exports.DOC_TYPE_CUSTOM = custom_1.CustomV1.name;
@@ -24,3 +26,4 @@ exports.DOC_TYPE_RECEIPT_V4 = receiptV4_1.ReceiptV4.name;
24
26
  exports.DOC_TYPE_PASSPORT_V1 = passportV1_1.PassportV1.name;
25
27
  exports.DOC_TYPE_FINANCIAL_V1 = financialDocumentV1_1.FinancialDocumentV1.name;
26
28
  exports.DOC_TYPE_CROPPER_V1 = cropperV1_1.CropperV1.name;
29
+ exports.DOC_TYPE_IDCARD_V1 = idCardV1_1.IdCardV1.name;
@@ -2,16 +2,25 @@ import { Document, DocumentConstructorProps } from "../document";
2
2
  import { Amount, DateField, Field, Locale, TaxField } from "../../fields";
3
3
  export declare class ReceiptV4 extends Document {
4
4
  #private;
5
+ /** Where the purchase was made, the language, and the currency. */
5
6
  locale: Locale;
7
+ /** The purchase date. */
6
8
  date: DateField;
7
- /** Receipt category as seen on the receipt. */
9
+ /** The type of purchase. */
8
10
  category: Field;
9
- merchantName: Field;
11
+ /** Merchant's name as seen on the receipt. */
12
+ supplier: Field;
13
+ /** Time as seen on the receipt in HH:MM format. */
10
14
  time: Field;
15
+ /** List of taxes detected on the receipt. */
11
16
  taxes: TaxField[];
17
+ /** Total amount of tip and gratuity. */
12
18
  tip: Amount;
19
+ /** total spent including taxes, discounts, fees, tips, and gratuity. */
13
20
  totalAmount: Amount;
21
+ /** Total amount of the purchase excluding taxes. */
14
22
  totalNet: Amount;
23
+ /** Total tax amount of the purchase. */
15
24
  totalTax: Amount;
16
25
  constructor({ prediction, orientation, extras, inputSource, fullText, pageId, }: DocumentConstructorProps);
17
26
  toString(): string;
@@ -20,6 +20,7 @@ class ReceiptV4 extends document_1.Document {
20
20
  fullText: fullText,
21
21
  });
22
22
  _ReceiptV4_instances.add(this);
23
+ /** List of taxes detected on the receipt. */
23
24
  this.taxes = [];
24
25
  __classPrivateFieldGet(this, _ReceiptV4_instances, "m", _ReceiptV4_initFromApiPrediction).call(this, prediction, pageId);
25
26
  }
@@ -33,7 +34,7 @@ Tip: ${this.tip}
33
34
  Date: ${this.date}
34
35
  Category: ${this.category}
35
36
  Time: ${this.time}
36
- Supplier name: ${this.merchantName}
37
+ Supplier name: ${this.supplier}
37
38
  Taxes: ${taxes}
38
39
  Total taxes: ${this.totalTax}
39
40
  Locale: ${this.locale}
@@ -76,7 +77,7 @@ _ReceiptV4_instances = new WeakSet(), _ReceiptV4_initFromApiPrediction = functio
76
77
  prediction: apiPrediction.category,
77
78
  pageId: pageId,
78
79
  });
79
- this.merchantName = new fields_1.Field({
80
+ this.supplier = new fields_1.Field({
80
81
  prediction: apiPrediction.supplier,
81
82
  pageId: pageId,
82
83
  });
@@ -25,6 +25,7 @@ export declare class BaseField {
25
25
  * @param {Boolean} reconstructed - Does the object is reconstructed (not extracted by the API)
26
26
  */
27
27
  constructor({ prediction, valueKey, reconstructed, }: BaseFieldConstructor);
28
+ toString(): string;
28
29
  }
29
30
  export declare class Field extends BaseField {
30
31
  /**
@@ -69,5 +70,4 @@ export declare class Field extends BaseField {
69
70
  * @returns {Number} Sum of all the Fields values in the array
70
71
  */
71
72
  static arraySum(array: any): number;
72
- toString(): string;
73
73
  }
@@ -11,10 +11,19 @@ class BaseField {
11
11
  constructor({ prediction, valueKey = "value", reconstructed = false, }) {
12
12
  this.value = undefined;
13
13
  this.reconstructed = reconstructed;
14
- if (valueKey in prediction && prediction[valueKey] !== null) {
14
+ if (prediction !== undefined &&
15
+ prediction !== null &&
16
+ valueKey in prediction &&
17
+ prediction[valueKey] !== null) {
15
18
  this.value = prediction[valueKey];
16
19
  }
17
20
  }
21
+ toString() {
22
+ if (this.value !== undefined) {
23
+ return `${this.value}`;
24
+ }
25
+ return "";
26
+ }
18
27
  }
19
28
  exports.BaseField = BaseField;
20
29
  class Field extends BaseField {
@@ -97,11 +106,5 @@ class Field extends BaseField {
97
106
  }
98
107
  return total;
99
108
  }
100
- toString() {
101
- if (this.value !== undefined) {
102
- return `${this.value}`;
103
- }
104
- return "";
105
- }
106
109
  }
107
110
  exports.Field = Field;
package/src/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export { CustomV1, FinancialDocumentV1, InvoiceV3, PassportV1, ReceiptV3, ReceiptV4, CropperV1, } from "./documents";
1
+ export { CustomV1, FinancialDocumentV1, InvoiceV3, PassportV1, ReceiptV3, ReceiptV4, CropperV1, IdCardV1, } from "./documents";
2
2
  export { Client } from "./client";
3
3
  export { PageOptionsOperation } from "./inputs";
package/src/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PageOptionsOperation = exports.Client = exports.CropperV1 = exports.ReceiptV4 = exports.ReceiptV3 = exports.PassportV1 = exports.InvoiceV3 = exports.FinancialDocumentV1 = exports.CustomV1 = void 0;
3
+ exports.PageOptionsOperation = exports.Client = exports.IdCardV1 = exports.CropperV1 = exports.ReceiptV4 = exports.ReceiptV3 = exports.PassportV1 = exports.InvoiceV3 = exports.FinancialDocumentV1 = exports.CustomV1 = void 0;
4
4
  var documents_1 = require("./documents");
5
5
  Object.defineProperty(exports, "CustomV1", { enumerable: true, get: function () { return documents_1.CustomV1; } });
6
6
  Object.defineProperty(exports, "FinancialDocumentV1", { enumerable: true, get: function () { return documents_1.FinancialDocumentV1; } });
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "PassportV1", { enumerable: true, get: function (
9
9
  Object.defineProperty(exports, "ReceiptV3", { enumerable: true, get: function () { return documents_1.ReceiptV3; } });
10
10
  Object.defineProperty(exports, "ReceiptV4", { enumerable: true, get: function () { return documents_1.ReceiptV4; } });
11
11
  Object.defineProperty(exports, "CropperV1", { enumerable: true, get: function () { return documents_1.CropperV1; } });
12
+ Object.defineProperty(exports, "IdCardV1", { enumerable: true, get: function () { return documents_1.IdCardV1; } });
12
13
  var client_1 = require("./client");
13
14
  Object.defineProperty(exports, "Client", { enumerable: true, get: function () { return client_1.Client; } });
14
15
  var inputs_1 = require("./inputs");
@@ -8,6 +8,7 @@ export declare const INPUT_TYPE_BASE64 = "base64";
8
8
  export declare const INPUT_TYPE_BYTES = "bytes";
9
9
  export declare const INPUT_TYPE_PATH = "path";
10
10
  export declare const INPUT_TYPE_URL = "URL";
11
+ export declare const INPUT_TYPE_BUFFER = "buffer";
11
12
  export declare class InputSource {
12
13
  inputType: string;
13
14
  filename: string;
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.InputSource = exports.INPUT_TYPE_URL = exports.INPUT_TYPE_PATH = exports.INPUT_TYPE_BYTES = exports.INPUT_TYPE_BASE64 = exports.INPUT_TYPE_STREAM = void 0;
26
+ exports.InputSource = exports.INPUT_TYPE_BUFFER = exports.INPUT_TYPE_URL = exports.INPUT_TYPE_PATH = exports.INPUT_TYPE_BYTES = exports.INPUT_TYPE_BASE64 = exports.INPUT_TYPE_STREAM = void 0;
27
27
  const fileType = __importStar(require("file-type"));
28
28
  const path = __importStar(require("path"));
29
29
  const pdf_1 = require("../pdf");
@@ -34,6 +34,7 @@ exports.INPUT_TYPE_BASE64 = "base64";
34
34
  exports.INPUT_TYPE_BYTES = "bytes";
35
35
  exports.INPUT_TYPE_PATH = "path";
36
36
  exports.INPUT_TYPE_URL = "URL";
37
+ exports.INPUT_TYPE_BUFFER = "buffer";
37
38
  const MIMETYPES = new Map([
38
39
  [".pdf", "application/pdf"],
39
40
  [".heic", "image/heic"],
@@ -50,6 +51,7 @@ const ALLOWED_INPUT_TYPES = [
50
51
  exports.INPUT_TYPE_BYTES,
51
52
  exports.INPUT_TYPE_PATH,
52
53
  exports.INPUT_TYPE_URL,
54
+ exports.INPUT_TYPE_BUFFER,
53
55
  ];
54
56
  class InputSource {
55
57
  /**
@@ -1,3 +1,3 @@
1
1
  export { PageOptions, PageOptionsOperation } from "./pageOptions";
2
- export { Base64Input, BytesInput, PathInput, StreamInput, UrlInput, } from "./sources";
3
- export { InputSource, INPUT_TYPE_BASE64, INPUT_TYPE_BYTES, INPUT_TYPE_PATH, INPUT_TYPE_STREAM, } from "./base";
2
+ export { Base64Input, BytesInput, PathInput, StreamInput, UrlInput, BufferInput, } from "./sources";
3
+ export { InputSource, INPUT_TYPE_BASE64, INPUT_TYPE_BYTES, INPUT_TYPE_PATH, INPUT_TYPE_STREAM, INPUT_TYPE_URL, INPUT_TYPE_BUFFER, } from "./base";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.INPUT_TYPE_STREAM = exports.INPUT_TYPE_PATH = exports.INPUT_TYPE_BYTES = exports.INPUT_TYPE_BASE64 = exports.InputSource = exports.UrlInput = exports.StreamInput = exports.PathInput = exports.BytesInput = exports.Base64Input = exports.PageOptionsOperation = void 0;
3
+ exports.INPUT_TYPE_BUFFER = exports.INPUT_TYPE_URL = exports.INPUT_TYPE_STREAM = exports.INPUT_TYPE_PATH = exports.INPUT_TYPE_BYTES = exports.INPUT_TYPE_BASE64 = exports.InputSource = exports.BufferInput = exports.UrlInput = exports.StreamInput = exports.PathInput = exports.BytesInput = exports.Base64Input = exports.PageOptionsOperation = void 0;
4
4
  var pageOptions_1 = require("./pageOptions");
5
5
  Object.defineProperty(exports, "PageOptionsOperation", { enumerable: true, get: function () { return pageOptions_1.PageOptionsOperation; } });
6
6
  var sources_1 = require("./sources");
@@ -9,9 +9,12 @@ Object.defineProperty(exports, "BytesInput", { enumerable: true, get: function (
9
9
  Object.defineProperty(exports, "PathInput", { enumerable: true, get: function () { return sources_1.PathInput; } });
10
10
  Object.defineProperty(exports, "StreamInput", { enumerable: true, get: function () { return sources_1.StreamInput; } });
11
11
  Object.defineProperty(exports, "UrlInput", { enumerable: true, get: function () { return sources_1.UrlInput; } });
12
+ Object.defineProperty(exports, "BufferInput", { enumerable: true, get: function () { return sources_1.BufferInput; } });
12
13
  var base_1 = require("./base");
13
14
  Object.defineProperty(exports, "InputSource", { enumerable: true, get: function () { return base_1.InputSource; } });
14
15
  Object.defineProperty(exports, "INPUT_TYPE_BASE64", { enumerable: true, get: function () { return base_1.INPUT_TYPE_BASE64; } });
15
16
  Object.defineProperty(exports, "INPUT_TYPE_BYTES", { enumerable: true, get: function () { return base_1.INPUT_TYPE_BYTES; } });
16
17
  Object.defineProperty(exports, "INPUT_TYPE_PATH", { enumerable: true, get: function () { return base_1.INPUT_TYPE_PATH; } });
17
18
  Object.defineProperty(exports, "INPUT_TYPE_STREAM", { enumerable: true, get: function () { return base_1.INPUT_TYPE_STREAM; } });
19
+ Object.defineProperty(exports, "INPUT_TYPE_URL", { enumerable: true, get: function () { return base_1.INPUT_TYPE_URL; } });
20
+ Object.defineProperty(exports, "INPUT_TYPE_BUFFER", { enumerable: true, get: function () { return base_1.INPUT_TYPE_BUFFER; } });
@@ -52,4 +52,12 @@ export declare class UrlInput extends InputSource {
52
52
  constructor({ url }: UrlInputProps);
53
53
  init(): Promise<void>;
54
54
  }
55
+ interface BufferInputProps {
56
+ buffer: Buffer;
57
+ filename: string;
58
+ }
59
+ export declare class BufferInput extends InputSource {
60
+ constructor({ buffer, filename }: BufferInputProps);
61
+ init(): Promise<void>;
62
+ }
55
63
  export {};
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.UrlInput = exports.BytesInput = exports.StreamInput = exports.Base64Input = exports.PathInput = void 0;
26
+ exports.BufferInput = exports.UrlInput = exports.BytesInput = exports.StreamInput = exports.Base64Input = exports.PathInput = void 0;
27
27
  const fs_1 = require("fs");
28
28
  const path = __importStar(require("path"));
29
29
  const handler_1 = require("../errors/handler");
@@ -115,7 +115,19 @@ class UrlInput extends base_1.InputSource {
115
115
  handler_1.errorHandler.throw(new Error("URL must be HTTPS"));
116
116
  }
117
117
  this.fileObject = this.url;
118
- this.filename = "hello.jpg";
119
118
  }
120
119
  }
121
120
  exports.UrlInput = UrlInput;
121
+ class BufferInput extends base_1.InputSource {
122
+ constructor({ buffer, filename }) {
123
+ super({
124
+ inputType: base_1.INPUT_TYPE_BUFFER,
125
+ });
126
+ this.fileObject = buffer;
127
+ this.filename = filename;
128
+ }
129
+ async init() {
130
+ this.mimeType = await this.checkMimetype();
131
+ }
132
+ }
133
+ exports.BufferInput = BufferInput;