@abyss-project/tools 2.17.0 → 2.18.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.
@@ -0,0 +1,4 @@
1
+ import { DocumentType } from '../types/enum/document-type.enum';
2
+ import { ExtractFieldFormat } from '../types/enum/extract-field-format.enum';
3
+ import { ExtractFieldKey } from '../types/enum/extract-field-key.enum';
4
+ export declare const EXTRACT_PUBLISHABLE_FIELDS: Readonly<Record<Exclude<DocumentType, DocumentType.GENERIC>, Readonly<Partial<Record<ExtractFieldKey, ExtractFieldFormat>>>>>;
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EXTRACT_PUBLISHABLE_FIELDS = void 0;
4
+ const document_type_enum_1 = require("../types/enum/document-type.enum");
5
+ const extract_field_format_enum_1 = require("../types/enum/extract-field-format.enum");
6
+ const extract_field_key_enum_1 = require("../types/enum/extract-field-key.enum");
7
+ const { AMOUNT, DATE, PERCENT, BOOLEAN, TEXT } = extract_field_format_enum_1.ExtractFieldFormat;
8
+ exports.EXTRACT_PUBLISHABLE_FIELDS = Object.freeze({
9
+ [document_type_enum_1.DocumentType.BANK_STATEMENT]: Object.freeze({
10
+ [extract_field_key_enum_1.ExtractFieldKey.IBAN]: TEXT,
11
+ [extract_field_key_enum_1.ExtractFieldKey.BIC]: TEXT,
12
+ [extract_field_key_enum_1.ExtractFieldKey.BANK_NAME]: TEXT,
13
+ [extract_field_key_enum_1.ExtractFieldKey.OPENING_BALANCE]: AMOUNT,
14
+ [extract_field_key_enum_1.ExtractFieldKey.CLOSING_BALANCE]: AMOUNT,
15
+ [extract_field_key_enum_1.ExtractFieldKey.PERIOD_START]: DATE,
16
+ [extract_field_key_enum_1.ExtractFieldKey.PERIOD_END]: DATE,
17
+ [extract_field_key_enum_1.ExtractFieldKey.CURRENCY]: TEXT,
18
+ }),
19
+ [document_type_enum_1.DocumentType.INVOICE]: Object.freeze({
20
+ [extract_field_key_enum_1.ExtractFieldKey.TOTAL_TTC]: AMOUNT,
21
+ [extract_field_key_enum_1.ExtractFieldKey.TOTAL_HT]: AMOUNT,
22
+ [extract_field_key_enum_1.ExtractFieldKey.TOTAL_VAT]: AMOUNT,
23
+ [extract_field_key_enum_1.ExtractFieldKey.INVOICE_DATE]: DATE,
24
+ [extract_field_key_enum_1.ExtractFieldKey.DUE_DATE]: DATE,
25
+ [extract_field_key_enum_1.ExtractFieldKey.INVOICE_NUMBER]: TEXT,
26
+ [extract_field_key_enum_1.ExtractFieldKey.SUPPLIER]: TEXT,
27
+ [extract_field_key_enum_1.ExtractFieldKey.SUPPLIER_LEGAL_NAME]: TEXT,
28
+ [extract_field_key_enum_1.ExtractFieldKey.MARKETPLACE]: TEXT,
29
+ [extract_field_key_enum_1.ExtractFieldKey.SIRET]: TEXT,
30
+ [extract_field_key_enum_1.ExtractFieldKey.SIREN]: TEXT,
31
+ [extract_field_key_enum_1.ExtractFieldKey.VAT_NUMBER]: TEXT,
32
+ [extract_field_key_enum_1.ExtractFieldKey.IBAN]: TEXT,
33
+ [extract_field_key_enum_1.ExtractFieldKey.BIC]: TEXT,
34
+ [extract_field_key_enum_1.ExtractFieldKey.CURRENCY]: TEXT,
35
+ }),
36
+ [document_type_enum_1.DocumentType.RECEIPT]: Object.freeze({
37
+ [extract_field_key_enum_1.ExtractFieldKey.TOTAL]: AMOUNT,
38
+ [extract_field_key_enum_1.ExtractFieldKey.VAT]: AMOUNT,
39
+ [extract_field_key_enum_1.ExtractFieldKey.DATE]: DATE,
40
+ [extract_field_key_enum_1.ExtractFieldKey.MERCHANT]: TEXT,
41
+ [extract_field_key_enum_1.ExtractFieldKey.CURRENCY]: TEXT,
42
+ }),
43
+ [document_type_enum_1.DocumentType.ID_CARD]: Object.freeze({
44
+ [extract_field_key_enum_1.ExtractFieldKey.LAST_NAME]: TEXT,
45
+ [extract_field_key_enum_1.ExtractFieldKey.FIRST_NAMES]: TEXT,
46
+ [extract_field_key_enum_1.ExtractFieldKey.BIRTH_DATE]: DATE,
47
+ [extract_field_key_enum_1.ExtractFieldKey.EXPIRY_DATE]: DATE,
48
+ [extract_field_key_enum_1.ExtractFieldKey.ISSUE_DATE]: DATE,
49
+ [extract_field_key_enum_1.ExtractFieldKey.DOCUMENT_NUMBER]: TEXT,
50
+ [extract_field_key_enum_1.ExtractFieldKey.SEX]: TEXT,
51
+ [extract_field_key_enum_1.ExtractFieldKey.NATIONALITY]: TEXT,
52
+ [extract_field_key_enum_1.ExtractFieldKey.ISSUING_COUNTRY]: TEXT,
53
+ [extract_field_key_enum_1.ExtractFieldKey.DOCUMENT_KIND]: TEXT,
54
+ [extract_field_key_enum_1.ExtractFieldKey.MRZ_VALID]: BOOLEAN,
55
+ }),
56
+ [document_type_enum_1.DocumentType.RIB]: Object.freeze({
57
+ [extract_field_key_enum_1.ExtractFieldKey.IBAN]: TEXT,
58
+ [extract_field_key_enum_1.ExtractFieldKey.BIC]: TEXT,
59
+ [extract_field_key_enum_1.ExtractFieldKey.HOLDER_NAME]: TEXT,
60
+ [extract_field_key_enum_1.ExtractFieldKey.BANK_NAME]: TEXT,
61
+ }),
62
+ [document_type_enum_1.DocumentType.FINANCIAL_STATEMENT]: Object.freeze({
63
+ [extract_field_key_enum_1.ExtractFieldKey.COMPANY]: TEXT,
64
+ [extract_field_key_enum_1.ExtractFieldKey.SIREN]: TEXT,
65
+ [extract_field_key_enum_1.ExtractFieldKey.REGISTRATION_NUMBER]: TEXT,
66
+ [extract_field_key_enum_1.ExtractFieldKey.FISCAL_YEAR_END]: DATE,
67
+ [extract_field_key_enum_1.ExtractFieldKey.TOTAL_ACTIF]: AMOUNT,
68
+ [extract_field_key_enum_1.ExtractFieldKey.TOTAL_PASSIF]: AMOUNT,
69
+ [extract_field_key_enum_1.ExtractFieldKey.FIXED_ASSETS]: AMOUNT,
70
+ [extract_field_key_enum_1.ExtractFieldKey.CURRENT_ASSETS]: AMOUNT,
71
+ [extract_field_key_enum_1.ExtractFieldKey.CREDITORS_WITHIN_ONE_YEAR]: AMOUNT,
72
+ [extract_field_key_enum_1.ExtractFieldKey.NET_CURRENT_LIABILITIES]: AMOUNT,
73
+ [extract_field_key_enum_1.ExtractFieldKey.TOTAL_ASSETS_LESS_CURRENT_LIABILITIES]: AMOUNT,
74
+ [extract_field_key_enum_1.ExtractFieldKey.NET_ASSETS]: AMOUNT,
75
+ [extract_field_key_enum_1.ExtractFieldKey.CALLED_UP_SHARE_CAPITAL]: AMOUNT,
76
+ [extract_field_key_enum_1.ExtractFieldKey.PROFIT_AND_LOSS_ACCOUNT]: AMOUNT,
77
+ [extract_field_key_enum_1.ExtractFieldKey.TOTAL_SHAREHOLDERS_FUNDS]: AMOUNT,
78
+ [extract_field_key_enum_1.ExtractFieldKey.CURRENCY]: TEXT,
79
+ }),
80
+ [document_type_enum_1.DocumentType.PAYSLIP]: Object.freeze({
81
+ [extract_field_key_enum_1.ExtractFieldKey.EMPLOYER]: TEXT,
82
+ [extract_field_key_enum_1.ExtractFieldKey.PERIOD]: TEXT,
83
+ [extract_field_key_enum_1.ExtractFieldKey.GROSS_CENTS]: AMOUNT,
84
+ [extract_field_key_enum_1.ExtractFieldKey.NET_CENTS]: AMOUNT,
85
+ [extract_field_key_enum_1.ExtractFieldKey.NET_TAXABLE_CENTS]: AMOUNT,
86
+ [extract_field_key_enum_1.ExtractFieldKey.PAS_AMOUNT_CENTS]: AMOUNT,
87
+ [extract_field_key_enum_1.ExtractFieldKey.PAS_RATE_PCT]: PERCENT,
88
+ [extract_field_key_enum_1.ExtractFieldKey.CURRENCY]: TEXT,
89
+ }),
90
+ });
91
+ //# sourceMappingURL=extract.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract.constants.js","sourceRoot":"","sources":["../../src/constants/extract.constants.ts"],"names":[],"mappings":"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"}
@@ -3,3 +3,4 @@ export * from './board.constants';
3
3
  export * from './short-link.constants';
4
4
  export * from './tag.constants';
5
5
  export * from './beam.constants';
6
+ export * from './extract.constants';
@@ -19,4 +19,5 @@ __exportStar(require("./board.constants"), exports);
19
19
  __exportStar(require("./short-link.constants"), exports);
20
20
  __exportStar(require("./tag.constants"), exports);
21
21
  __exportStar(require("./beam.constants"), exports);
22
+ __exportStar(require("./extract.constants"), exports);
22
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,oDAAkC;AAClC,yDAAuC;AACvC,kDAAgC;AAChC,mDAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,oDAAkC;AAClC,yDAAuC;AACvC,kDAAgC;AAChC,mDAAiC;AACjC,sDAAoC"}
@@ -0,0 +1,7 @@
1
+ export declare enum ExtractFieldFormat {
2
+ AMOUNT = "amount",
3
+ DATE = "date",
4
+ PERCENT = "percent",
5
+ BOOLEAN = "boolean",
6
+ TEXT = "text"
7
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExtractFieldFormat = void 0;
4
+ var ExtractFieldFormat;
5
+ (function (ExtractFieldFormat) {
6
+ ExtractFieldFormat["AMOUNT"] = "amount";
7
+ ExtractFieldFormat["DATE"] = "date";
8
+ ExtractFieldFormat["PERCENT"] = "percent";
9
+ ExtractFieldFormat["BOOLEAN"] = "boolean";
10
+ ExtractFieldFormat["TEXT"] = "text";
11
+ })(ExtractFieldFormat || (exports.ExtractFieldFormat = ExtractFieldFormat = {}));
12
+ //# sourceMappingURL=extract-field-format.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-field-format.enum.js","sourceRoot":"","sources":["../../../src/types/enum/extract-field-format.enum.ts"],"names":[],"mappings":";;;AAKA,IAAY,kBAUX;AAVD,WAAY,kBAAkB;IAE5B,uCAAiB,CAAA;IAEjB,mCAAa,CAAA;IAEb,yCAAmB,CAAA;IACnB,yCAAmB,CAAA;IAEnB,mCAAa,CAAA;AACf,CAAC,EAVW,kBAAkB,kCAAlB,kBAAkB,QAU7B"}
@@ -0,0 +1,59 @@
1
+ export declare enum ExtractFieldKey {
2
+ TOTAL_TTC = "totalTtc",
3
+ TOTAL_HT = "totalHt",
4
+ TOTAL_VAT = "totalVat",
5
+ TOTAL = "total",
6
+ VAT = "vat",
7
+ OPENING_BALANCE = "openingBalance",
8
+ CLOSING_BALANCE = "closingBalance",
9
+ TOTAL_ACTIF = "totalActif",
10
+ TOTAL_PASSIF = "totalPassif",
11
+ FIXED_ASSETS = "fixedAssets",
12
+ CURRENT_ASSETS = "currentAssets",
13
+ CREDITORS_WITHIN_ONE_YEAR = "creditorsWithinOneYear",
14
+ NET_CURRENT_LIABILITIES = "netCurrentLiabilities",
15
+ TOTAL_ASSETS_LESS_CURRENT_LIABILITIES = "totalAssetsLessCurrentLiabilities",
16
+ NET_ASSETS = "netAssets",
17
+ CALLED_UP_SHARE_CAPITAL = "calledUpShareCapital",
18
+ PROFIT_AND_LOSS_ACCOUNT = "profitAndLossAccount",
19
+ TOTAL_SHAREHOLDERS_FUNDS = "totalShareholdersFunds",
20
+ NET_CENTS = "netCents",
21
+ GROSS_CENTS = "grossCents",
22
+ NET_TAXABLE_CENTS = "netTaxableCents",
23
+ PAS_AMOUNT_CENTS = "pasAmountCents",
24
+ INVOICE_DATE = "invoiceDate",
25
+ DUE_DATE = "dueDate",
26
+ DATE = "date",
27
+ PERIOD_START = "periodStart",
28
+ PERIOD_END = "periodEnd",
29
+ FISCAL_YEAR_END = "fiscalYearEnd",
30
+ BIRTH_DATE = "birthDate",
31
+ EXPIRY_DATE = "expiryDate",
32
+ ISSUE_DATE = "issueDate",
33
+ PAS_RATE_PCT = "pasRatePct",
34
+ IBAN = "iban",
35
+ BIC = "bic",
36
+ SIRET = "siret",
37
+ SIREN = "siren",
38
+ VAT_NUMBER = "vatNumber",
39
+ INVOICE_NUMBER = "invoiceNumber",
40
+ DOCUMENT_NUMBER = "documentNumber",
41
+ REGISTRATION_NUMBER = "registrationNumber",
42
+ SUPPLIER = "supplier",
43
+ SUPPLIER_LEGAL_NAME = "supplierLegalName",
44
+ MARKETPLACE = "marketplace",
45
+ MERCHANT = "merchant",
46
+ HOLDER_NAME = "holderName",
47
+ BANK_NAME = "bankName",
48
+ COMPANY = "company",
49
+ EMPLOYER = "employer",
50
+ LAST_NAME = "lastName",
51
+ FIRST_NAMES = "firstNames",
52
+ NATIONALITY = "nationality",
53
+ CURRENCY = "currency",
54
+ PERIOD = "period",
55
+ SEX = "sex",
56
+ ISSUING_COUNTRY = "issuingCountry",
57
+ DOCUMENT_KIND = "documentKind",
58
+ MRZ_VALID = "mrzValid"
59
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExtractFieldKey = void 0;
4
+ var ExtractFieldKey;
5
+ (function (ExtractFieldKey) {
6
+ ExtractFieldKey["TOTAL_TTC"] = "totalTtc";
7
+ ExtractFieldKey["TOTAL_HT"] = "totalHt";
8
+ ExtractFieldKey["TOTAL_VAT"] = "totalVat";
9
+ ExtractFieldKey["TOTAL"] = "total";
10
+ ExtractFieldKey["VAT"] = "vat";
11
+ ExtractFieldKey["OPENING_BALANCE"] = "openingBalance";
12
+ ExtractFieldKey["CLOSING_BALANCE"] = "closingBalance";
13
+ ExtractFieldKey["TOTAL_ACTIF"] = "totalActif";
14
+ ExtractFieldKey["TOTAL_PASSIF"] = "totalPassif";
15
+ ExtractFieldKey["FIXED_ASSETS"] = "fixedAssets";
16
+ ExtractFieldKey["CURRENT_ASSETS"] = "currentAssets";
17
+ ExtractFieldKey["CREDITORS_WITHIN_ONE_YEAR"] = "creditorsWithinOneYear";
18
+ ExtractFieldKey["NET_CURRENT_LIABILITIES"] = "netCurrentLiabilities";
19
+ ExtractFieldKey["TOTAL_ASSETS_LESS_CURRENT_LIABILITIES"] = "totalAssetsLessCurrentLiabilities";
20
+ ExtractFieldKey["NET_ASSETS"] = "netAssets";
21
+ ExtractFieldKey["CALLED_UP_SHARE_CAPITAL"] = "calledUpShareCapital";
22
+ ExtractFieldKey["PROFIT_AND_LOSS_ACCOUNT"] = "profitAndLossAccount";
23
+ ExtractFieldKey["TOTAL_SHAREHOLDERS_FUNDS"] = "totalShareholdersFunds";
24
+ ExtractFieldKey["NET_CENTS"] = "netCents";
25
+ ExtractFieldKey["GROSS_CENTS"] = "grossCents";
26
+ ExtractFieldKey["NET_TAXABLE_CENTS"] = "netTaxableCents";
27
+ ExtractFieldKey["PAS_AMOUNT_CENTS"] = "pasAmountCents";
28
+ ExtractFieldKey["INVOICE_DATE"] = "invoiceDate";
29
+ ExtractFieldKey["DUE_DATE"] = "dueDate";
30
+ ExtractFieldKey["DATE"] = "date";
31
+ ExtractFieldKey["PERIOD_START"] = "periodStart";
32
+ ExtractFieldKey["PERIOD_END"] = "periodEnd";
33
+ ExtractFieldKey["FISCAL_YEAR_END"] = "fiscalYearEnd";
34
+ ExtractFieldKey["BIRTH_DATE"] = "birthDate";
35
+ ExtractFieldKey["EXPIRY_DATE"] = "expiryDate";
36
+ ExtractFieldKey["ISSUE_DATE"] = "issueDate";
37
+ ExtractFieldKey["PAS_RATE_PCT"] = "pasRatePct";
38
+ ExtractFieldKey["IBAN"] = "iban";
39
+ ExtractFieldKey["BIC"] = "bic";
40
+ ExtractFieldKey["SIRET"] = "siret";
41
+ ExtractFieldKey["SIREN"] = "siren";
42
+ ExtractFieldKey["VAT_NUMBER"] = "vatNumber";
43
+ ExtractFieldKey["INVOICE_NUMBER"] = "invoiceNumber";
44
+ ExtractFieldKey["DOCUMENT_NUMBER"] = "documentNumber";
45
+ ExtractFieldKey["REGISTRATION_NUMBER"] = "registrationNumber";
46
+ ExtractFieldKey["SUPPLIER"] = "supplier";
47
+ ExtractFieldKey["SUPPLIER_LEGAL_NAME"] = "supplierLegalName";
48
+ ExtractFieldKey["MARKETPLACE"] = "marketplace";
49
+ ExtractFieldKey["MERCHANT"] = "merchant";
50
+ ExtractFieldKey["HOLDER_NAME"] = "holderName";
51
+ ExtractFieldKey["BANK_NAME"] = "bankName";
52
+ ExtractFieldKey["COMPANY"] = "company";
53
+ ExtractFieldKey["EMPLOYER"] = "employer";
54
+ ExtractFieldKey["LAST_NAME"] = "lastName";
55
+ ExtractFieldKey["FIRST_NAMES"] = "firstNames";
56
+ ExtractFieldKey["NATIONALITY"] = "nationality";
57
+ ExtractFieldKey["CURRENCY"] = "currency";
58
+ ExtractFieldKey["PERIOD"] = "period";
59
+ ExtractFieldKey["SEX"] = "sex";
60
+ ExtractFieldKey["ISSUING_COUNTRY"] = "issuingCountry";
61
+ ExtractFieldKey["DOCUMENT_KIND"] = "documentKind";
62
+ ExtractFieldKey["MRZ_VALID"] = "mrzValid";
63
+ })(ExtractFieldKey || (exports.ExtractFieldKey = ExtractFieldKey = {}));
64
+ //# sourceMappingURL=extract-field-key.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-field-key.enum.js","sourceRoot":"","sources":["../../../src/types/enum/extract-field-key.enum.ts"],"names":[],"mappings":";;;AASA,IAAY,eAmEX;AAnED,WAAY,eAAe;IAEzB,yCAAsB,CAAA;IACtB,uCAAoB,CAAA;IACpB,yCAAsB,CAAA;IACtB,kCAAe,CAAA;IACf,8BAAW,CAAA;IACX,qDAAkC,CAAA;IAClC,qDAAkC,CAAA;IAClC,6CAA0B,CAAA;IAC1B,+CAA4B,CAAA;IAC5B,+CAA4B,CAAA;IAC5B,mDAAgC,CAAA;IAChC,uEAAoD,CAAA;IACpD,oEAAiD,CAAA;IACjD,8FAA2E,CAAA;IAC3E,2CAAwB,CAAA;IACxB,mEAAgD,CAAA;IAChD,mEAAgD,CAAA;IAChD,sEAAmD,CAAA;IACnD,yCAAsB,CAAA;IACtB,6CAA0B,CAAA;IAC1B,wDAAqC,CAAA;IACrC,sDAAmC,CAAA;IAEnC,+CAA4B,CAAA;IAC5B,uCAAoB,CAAA;IACpB,gCAAa,CAAA;IACb,+CAA4B,CAAA;IAC5B,2CAAwB,CAAA;IACxB,oDAAiC,CAAA;IACjC,2CAAwB,CAAA;IACxB,6CAA0B,CAAA;IAC1B,2CAAwB,CAAA;IAExB,8CAA2B,CAAA;IAE3B,gCAAa,CAAA;IACb,8BAAW,CAAA;IACX,kCAAe,CAAA;IACf,kCAAe,CAAA;IACf,2CAAwB,CAAA;IACxB,mDAAgC,CAAA;IAChC,qDAAkC,CAAA;IAClC,6DAA0C,CAAA;IAE1C,wCAAqB,CAAA;IACrB,4DAAyC,CAAA;IACzC,8CAA2B,CAAA;IAC3B,wCAAqB,CAAA;IACrB,6CAA0B,CAAA;IAC1B,yCAAsB,CAAA;IACtB,sCAAmB,CAAA;IACnB,wCAAqB,CAAA;IACrB,yCAAsB,CAAA;IACtB,6CAA0B,CAAA;IAC1B,8CAA2B,CAAA;IAE3B,wCAAqB,CAAA;IAErB,oCAAiB,CAAA;IAEjB,8BAAW,CAAA;IACX,qDAAkC,CAAA;IAClC,iDAA8B,CAAA;IAE9B,yCAAsB,CAAA;AACxB,CAAC,EAnEW,eAAe,+BAAf,eAAe,QAmE1B"}
@@ -5,5 +5,6 @@ export declare enum ExtractionWarningCode {
5
5
  BALANCE_MISMATCH = "balance_mismatch",
6
6
  ADAPTER_VALIDATION_ERROR = "adapter_validation_error",
7
7
  FIELD_BELOW_PUBLISH_FLOOR = "field_below_publish_floor",
8
- FIELD_FORMAT_ONLY_DATE = "field_format_only_date"
8
+ FIELD_FORMAT_ONLY_DATE = "field_format_only_date",
9
+ FIELD_MRZ_OUT_OF_DOMAIN = "field_mrz_out_of_domain"
9
10
  }
@@ -10,5 +10,6 @@ var ExtractionWarningCode;
10
10
  ExtractionWarningCode["ADAPTER_VALIDATION_ERROR"] = "adapter_validation_error";
11
11
  ExtractionWarningCode["FIELD_BELOW_PUBLISH_FLOOR"] = "field_below_publish_floor";
12
12
  ExtractionWarningCode["FIELD_FORMAT_ONLY_DATE"] = "field_format_only_date";
13
+ ExtractionWarningCode["FIELD_MRZ_OUT_OF_DOMAIN"] = "field_mrz_out_of_domain";
13
14
  })(ExtractionWarningCode || (exports.ExtractionWarningCode = ExtractionWarningCode = {}));
14
15
  //# sourceMappingURL=extraction-warning.enum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"extraction-warning.enum.js","sourceRoot":"","sources":["../../../src/types/enum/extraction-warning.enum.ts"],"names":[],"mappings":";;;AAMA,IAAY,qBAiDX;AAjDD,WAAY,qBAAqB;IAC/B,kDAAyB,CAAA;IACzB,4CAAmB,CAAA;IACnB,oDAA2B,CAAA;IAC3B,8DAAqC,CAAA;IASrC,8EAAqD,CAAA;IAgBrD,gFAAuD,CAAA;IAmBvD,0EAAiD,CAAA;AACnD,CAAC,EAjDW,qBAAqB,qCAArB,qBAAqB,QAiDhC"}
1
+ {"version":3,"file":"extraction-warning.enum.js","sourceRoot":"","sources":["../../../src/types/enum/extraction-warning.enum.ts"],"names":[],"mappings":";;;AAMA,IAAY,qBAuEX;AAvED,WAAY,qBAAqB;IAC/B,kDAAyB,CAAA;IACzB,4CAAmB,CAAA;IACnB,oDAA2B,CAAA;IAC3B,8DAAqC,CAAA;IASrC,8EAAqD,CAAA;IAgBrD,gFAAuD,CAAA;IAmBvD,0EAAiD,CAAA;IAsBjD,4EAAmD,CAAA;AACrD,CAAC,EAvEW,qBAAqB,qCAArB,qBAAqB,QAuEhC"}
@@ -7,6 +7,8 @@ export * from './document-type.enum';
7
7
  export * from './pdf-operation.enum';
8
8
  export * from './rcb-bank.enum';
9
9
  export * from './extraction-warning.enum';
10
+ export * from './extract-field-key.enum';
11
+ export * from './extract-field-format.enum';
10
12
  export * from './extraction-feedback-issue-type.enum';
11
13
  export * from './provider-kind.enum';
12
14
  export * from './interpreter-kind.enum';
@@ -23,6 +23,8 @@ __exportStar(require("./document-type.enum"), exports);
23
23
  __exportStar(require("./pdf-operation.enum"), exports);
24
24
  __exportStar(require("./rcb-bank.enum"), exports);
25
25
  __exportStar(require("./extraction-warning.enum"), exports);
26
+ __exportStar(require("./extract-field-key.enum"), exports);
27
+ __exportStar(require("./extract-field-format.enum"), exports);
26
28
  __exportStar(require("./extraction-feedback-issue-type.enum"), exports);
27
29
  __exportStar(require("./provider-kind.enum"), exports);
28
30
  __exportStar(require("./interpreter-kind.enum"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/enum/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,wDAAsC;AACtC,2DAAyC;AACzC,uDAAqC;AACrC,8CAA4B;AAC5B,uDAAqC;AACrC,uDAAqC;AACrC,kDAAgC;AAChC,4DAA0C;AAC1C,wEAAsD;AACtD,uDAAqC;AACrC,0DAAwC;AACxC,0DAAwC;AACxC,gEAA8C;AAC9C,oDAAkC;AAClC,0DAAwC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/enum/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,wDAAsC;AACtC,2DAAyC;AACzC,uDAAqC;AACrC,8CAA4B;AAC5B,uDAAqC;AACrC,uDAAqC;AACrC,kDAAgC;AAChC,4DAA0C;AAC1C,2DAAyC;AACzC,8DAA4C;AAC5C,wEAAsD;AACtD,uDAAqC;AACrC,0DAAwC;AACxC,0DAAwC;AACxC,gEAA8C;AAC9C,oDAAkC;AAClC,0DAAwC"}
@@ -1 +1 @@
1
- {"version":3,"file":"extraction.dto.js","sourceRoot":"","sources":["../../../../src/types/interface/models/extraction.dto.ts"],"names":[],"mappings":";;;AAKA,yFAAoF;AA8G3E,sGA9GA,+CAAqB,OA8GA;AA7G9B,iHAAsG;AAW7F,4GAXA,iEAA2B,OAWA;AAsTpC,IAAY,sBAYX;AAZD,WAAY,sBAAsB;IAChC,qEAA2C,CAAA;IAC3C,+DAAqC,CAAA;IACrC,+EAAqD,CAAA;IACrD,uEAA6C,CAAA;IAC7C,6DAAmC,CAAA;IACnC,2DAAiC,CAAA;IACjC,6DAAmC,CAAA;IACnC,uEAA6C,CAAA;IAC7C,uDAA6B,CAAA;IAC7B,mEAAyC,CAAA;IACzC,6DAAmC,CAAA;AACrC,CAAC,EAZW,sBAAsB,sCAAtB,sBAAsB,QAYjC;AAEY,QAAA,yBAAyB,GACpC,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAuCxC,IAAY,2BAGX;AAHD,WAAY,2BAA2B;IACrC,4CAAa,CAAA;IACb,0CAAW,CAAA;AACb,CAAC,EAHW,2BAA2B,2CAA3B,2BAA2B,QAGtC"}
1
+ {"version":3,"file":"extraction.dto.js","sourceRoot":"","sources":["../../../../src/types/interface/models/extraction.dto.ts"],"names":[],"mappings":";;;AAKA,yFAAoF;AA8G3E,sGA9GA,+CAAqB,OA8GA;AA7G9B,iHAAsG;AAW7F,4GAXA,iEAA2B,OAWA;AAuTpC,IAAY,sBAYX;AAZD,WAAY,sBAAsB;IAChC,qEAA2C,CAAA;IAC3C,+DAAqC,CAAA;IACrC,+EAAqD,CAAA;IACrD,uEAA6C,CAAA;IAC7C,6DAAmC,CAAA;IACnC,2DAAiC,CAAA;IACjC,6DAAmC,CAAA;IACnC,uEAA6C,CAAA;IAC7C,uDAA6B,CAAA;IAC7B,mEAAyC,CAAA;IACzC,6DAAmC,CAAA;AACrC,CAAC,EAZW,sBAAsB,sCAAtB,sBAAsB,QAYjC;AAEY,QAAA,yBAAyB,GACpC,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAuCxC,IAAY,2BAGX;AAHD,WAAY,2BAA2B;IACrC,4CAAa,CAAA;IACb,0CAAW,CAAA;AACb,CAAC,EAHW,2BAA2B,2CAA3B,2BAA2B,QAGtC"}
package/package.json CHANGED
@@ -1,12 +1,9 @@
1
1
  {
2
2
  "name": "@abyss-project/tools",
3
- "version": "2.17.0",
3
+ "version": "2.18.0",
4
4
  "description": "Core package to interact with Abyss-Project Tools",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
- "engines": {
8
- "node": ">=19.8"
9
- },
10
7
  "repository": {
11
8
  "type": "git",
12
9
  "url": "https://gitlab.com/abyss-group"
@@ -14,6 +11,9 @@
14
11
  "keywords": [],
15
12
  "author": "scylla",
16
13
  "license": "ISC",
14
+ "engines": {
15
+ "node": ">=19.8"
16
+ },
17
17
  "dependencies": {
18
18
  "axios": "^1.6.0",
19
19
  "axios-retry": "^4.5.0",
@@ -0,0 +1,109 @@
1
+ import { DocumentType } from '../types/enum/document-type.enum';
2
+ import { ExtractFieldFormat } from '../types/enum/extract-field-format.enum';
3
+ import { ExtractFieldKey } from '../types/enum/extract-field-key.enum';
4
+
5
+ const { AMOUNT, DATE, PERCENT, BOOLEAN, TEXT } = ExtractFieldFormat;
6
+
7
+ // ──────────────────────────────────────────────
8
+ // EXTRACT_PUBLISHABLE_FIELDS — the fields the built-in algorithmic
9
+ // interpreter of AbyssExtract can publish, per document type, with the format
10
+ // of their value. A field listed here may be absent from a given result (not
11
+ // found, or below its publish floor); a field not listed here is never
12
+ // published for that type by that interpreter. A learned template
13
+ // (spatial-template interpreter) publishes the keys its client defined, on any
14
+ // type.
15
+ //
16
+ // One exception: a valid machine-readable zone publishes its fields and
17
+ // `mrzValid` whatever the document type (listed here under `id_card` only).
18
+ //
19
+ // `generic` is absent: its fields are defined by the client. The extraction API
20
+ // tests that this list equals what its engine serves, type by type.
21
+ // ──────────────────────────────────────────────
22
+ export const EXTRACT_PUBLISHABLE_FIELDS: Readonly<
23
+ Record<
24
+ Exclude<DocumentType, DocumentType.GENERIC>,
25
+ Readonly<Partial<Record<ExtractFieldKey, ExtractFieldFormat>>>
26
+ >
27
+ > = Object.freeze({
28
+ [DocumentType.BANK_STATEMENT]: Object.freeze({
29
+ [ExtractFieldKey.IBAN]: TEXT,
30
+ [ExtractFieldKey.BIC]: TEXT,
31
+ [ExtractFieldKey.BANK_NAME]: TEXT,
32
+ [ExtractFieldKey.OPENING_BALANCE]: AMOUNT,
33
+ [ExtractFieldKey.CLOSING_BALANCE]: AMOUNT,
34
+ [ExtractFieldKey.PERIOD_START]: DATE,
35
+ [ExtractFieldKey.PERIOD_END]: DATE,
36
+ [ExtractFieldKey.CURRENCY]: TEXT,
37
+ }),
38
+ [DocumentType.INVOICE]: Object.freeze({
39
+ [ExtractFieldKey.TOTAL_TTC]: AMOUNT,
40
+ [ExtractFieldKey.TOTAL_HT]: AMOUNT,
41
+ [ExtractFieldKey.TOTAL_VAT]: AMOUNT,
42
+ [ExtractFieldKey.INVOICE_DATE]: DATE,
43
+ [ExtractFieldKey.DUE_DATE]: DATE,
44
+ [ExtractFieldKey.INVOICE_NUMBER]: TEXT,
45
+ [ExtractFieldKey.SUPPLIER]: TEXT,
46
+ [ExtractFieldKey.SUPPLIER_LEGAL_NAME]: TEXT,
47
+ [ExtractFieldKey.MARKETPLACE]: TEXT,
48
+ [ExtractFieldKey.SIRET]: TEXT,
49
+ [ExtractFieldKey.SIREN]: TEXT,
50
+ [ExtractFieldKey.VAT_NUMBER]: TEXT,
51
+ [ExtractFieldKey.IBAN]: TEXT,
52
+ [ExtractFieldKey.BIC]: TEXT,
53
+ [ExtractFieldKey.CURRENCY]: TEXT,
54
+ }),
55
+ [DocumentType.RECEIPT]: Object.freeze({
56
+ [ExtractFieldKey.TOTAL]: AMOUNT,
57
+ [ExtractFieldKey.VAT]: AMOUNT,
58
+ [ExtractFieldKey.DATE]: DATE,
59
+ [ExtractFieldKey.MERCHANT]: TEXT,
60
+ [ExtractFieldKey.CURRENCY]: TEXT,
61
+ }),
62
+ [DocumentType.ID_CARD]: Object.freeze({
63
+ [ExtractFieldKey.LAST_NAME]: TEXT,
64
+ [ExtractFieldKey.FIRST_NAMES]: TEXT,
65
+ [ExtractFieldKey.BIRTH_DATE]: DATE,
66
+ [ExtractFieldKey.EXPIRY_DATE]: DATE,
67
+ [ExtractFieldKey.ISSUE_DATE]: DATE,
68
+ [ExtractFieldKey.DOCUMENT_NUMBER]: TEXT,
69
+ [ExtractFieldKey.SEX]: TEXT,
70
+ [ExtractFieldKey.NATIONALITY]: TEXT,
71
+ [ExtractFieldKey.ISSUING_COUNTRY]: TEXT,
72
+ [ExtractFieldKey.DOCUMENT_KIND]: TEXT,
73
+ [ExtractFieldKey.MRZ_VALID]: BOOLEAN,
74
+ }),
75
+ [DocumentType.RIB]: Object.freeze({
76
+ [ExtractFieldKey.IBAN]: TEXT,
77
+ [ExtractFieldKey.BIC]: TEXT,
78
+ [ExtractFieldKey.HOLDER_NAME]: TEXT,
79
+ [ExtractFieldKey.BANK_NAME]: TEXT,
80
+ }),
81
+ [DocumentType.FINANCIAL_STATEMENT]: Object.freeze({
82
+ [ExtractFieldKey.COMPANY]: TEXT,
83
+ [ExtractFieldKey.SIREN]: TEXT,
84
+ [ExtractFieldKey.REGISTRATION_NUMBER]: TEXT,
85
+ [ExtractFieldKey.FISCAL_YEAR_END]: DATE,
86
+ [ExtractFieldKey.TOTAL_ACTIF]: AMOUNT,
87
+ [ExtractFieldKey.TOTAL_PASSIF]: AMOUNT,
88
+ [ExtractFieldKey.FIXED_ASSETS]: AMOUNT,
89
+ [ExtractFieldKey.CURRENT_ASSETS]: AMOUNT,
90
+ [ExtractFieldKey.CREDITORS_WITHIN_ONE_YEAR]: AMOUNT,
91
+ [ExtractFieldKey.NET_CURRENT_LIABILITIES]: AMOUNT,
92
+ [ExtractFieldKey.TOTAL_ASSETS_LESS_CURRENT_LIABILITIES]: AMOUNT,
93
+ [ExtractFieldKey.NET_ASSETS]: AMOUNT,
94
+ [ExtractFieldKey.CALLED_UP_SHARE_CAPITAL]: AMOUNT,
95
+ [ExtractFieldKey.PROFIT_AND_LOSS_ACCOUNT]: AMOUNT,
96
+ [ExtractFieldKey.TOTAL_SHAREHOLDERS_FUNDS]: AMOUNT,
97
+ [ExtractFieldKey.CURRENCY]: TEXT,
98
+ }),
99
+ [DocumentType.PAYSLIP]: Object.freeze({
100
+ [ExtractFieldKey.EMPLOYER]: TEXT,
101
+ [ExtractFieldKey.PERIOD]: TEXT,
102
+ [ExtractFieldKey.GROSS_CENTS]: AMOUNT,
103
+ [ExtractFieldKey.NET_CENTS]: AMOUNT,
104
+ [ExtractFieldKey.NET_TAXABLE_CENTS]: AMOUNT,
105
+ [ExtractFieldKey.PAS_AMOUNT_CENTS]: AMOUNT,
106
+ [ExtractFieldKey.PAS_RATE_PCT]: PERCENT,
107
+ [ExtractFieldKey.CURRENCY]: TEXT,
108
+ }),
109
+ });
@@ -3,3 +3,4 @@ export * from './board.constants';
3
3
  export * from './short-link.constants';
4
4
  export * from './tag.constants';
5
5
  export * from './beam.constants';
6
+ export * from './extract.constants';
@@ -0,0 +1,16 @@
1
+ // ──────────────────────────────────────────────
2
+ // ExtractFieldFormat — the shape of a published field value, so a client can
3
+ // display it without knowing each key.
4
+ // ──────────────────────────────────────────────
5
+
6
+ export enum ExtractFieldFormat {
7
+ /** Integer amount in cents; the currency is the `currency` field. */
8
+ AMOUNT = 'amount',
9
+ /** ISO 8601 date (`YYYY-MM-DD`). */
10
+ DATE = 'date',
11
+ /** The percent itself: `9` for 9 %. */
12
+ PERCENT = 'percent',
13
+ BOOLEAN = 'boolean',
14
+ /** Free text or identifier (IBAN, SIRET, VAT number…), to display as is. */
15
+ TEXT = 'text',
16
+ }
@@ -0,0 +1,77 @@
1
+ // ──────────────────────────────────────────────
2
+ // ExtractFieldKey — every field key AbyssExtract can publish for a known
3
+ // document type (`generic` excluded: its fields are defined by the client).
4
+ // The value is the key found in `fields` of an extraction result. Which type
5
+ // publishes which key, and in which format: `EXTRACT_PUBLISHABLE_FIELDS`.
6
+ // A valid machine-readable zone publishes its fields and `mrzValid` whatever
7
+ // the document type.
8
+ // ──────────────────────────────────────────────
9
+
10
+ export enum ExtractFieldKey {
11
+ // Amounts
12
+ TOTAL_TTC = 'totalTtc',
13
+ TOTAL_HT = 'totalHt',
14
+ TOTAL_VAT = 'totalVat',
15
+ TOTAL = 'total',
16
+ VAT = 'vat',
17
+ OPENING_BALANCE = 'openingBalance',
18
+ CLOSING_BALANCE = 'closingBalance',
19
+ TOTAL_ACTIF = 'totalActif',
20
+ TOTAL_PASSIF = 'totalPassif',
21
+ FIXED_ASSETS = 'fixedAssets',
22
+ CURRENT_ASSETS = 'currentAssets',
23
+ CREDITORS_WITHIN_ONE_YEAR = 'creditorsWithinOneYear',
24
+ NET_CURRENT_LIABILITIES = 'netCurrentLiabilities',
25
+ TOTAL_ASSETS_LESS_CURRENT_LIABILITIES = 'totalAssetsLessCurrentLiabilities',
26
+ NET_ASSETS = 'netAssets',
27
+ CALLED_UP_SHARE_CAPITAL = 'calledUpShareCapital',
28
+ PROFIT_AND_LOSS_ACCOUNT = 'profitAndLossAccount',
29
+ TOTAL_SHAREHOLDERS_FUNDS = 'totalShareholdersFunds',
30
+ NET_CENTS = 'netCents',
31
+ GROSS_CENTS = 'grossCents',
32
+ NET_TAXABLE_CENTS = 'netTaxableCents',
33
+ PAS_AMOUNT_CENTS = 'pasAmountCents',
34
+ // Dates
35
+ INVOICE_DATE = 'invoiceDate',
36
+ DUE_DATE = 'dueDate',
37
+ DATE = 'date',
38
+ PERIOD_START = 'periodStart',
39
+ PERIOD_END = 'periodEnd',
40
+ FISCAL_YEAR_END = 'fiscalYearEnd',
41
+ BIRTH_DATE = 'birthDate',
42
+ EXPIRY_DATE = 'expiryDate',
43
+ ISSUE_DATE = 'issueDate',
44
+ // Percentages
45
+ PAS_RATE_PCT = 'pasRatePct',
46
+ // Identifiers
47
+ IBAN = 'iban',
48
+ BIC = 'bic',
49
+ SIRET = 'siret',
50
+ SIREN = 'siren',
51
+ VAT_NUMBER = 'vatNumber',
52
+ INVOICE_NUMBER = 'invoiceNumber',
53
+ DOCUMENT_NUMBER = 'documentNumber',
54
+ REGISTRATION_NUMBER = 'registrationNumber',
55
+ // Names and labels
56
+ SUPPLIER = 'supplier',
57
+ SUPPLIER_LEGAL_NAME = 'supplierLegalName',
58
+ MARKETPLACE = 'marketplace',
59
+ MERCHANT = 'merchant',
60
+ HOLDER_NAME = 'holderName',
61
+ BANK_NAME = 'bankName',
62
+ COMPANY = 'company',
63
+ EMPLOYER = 'employer',
64
+ LAST_NAME = 'lastName',
65
+ FIRST_NAMES = 'firstNames',
66
+ NATIONALITY = 'nationality',
67
+ /** ISO 4217 code of the published amounts. */
68
+ CURRENCY = 'currency',
69
+ /** Payslip period label: an ISO month (`2026-06`) or a day range (`2026-06-01..2026-06-30`). */
70
+ PERIOD = 'period',
71
+ // Machine-readable zone of an identity document
72
+ SEX = 'sex',
73
+ ISSUING_COUNTRY = 'issuingCountry',
74
+ DOCUMENT_KIND = 'documentKind',
75
+ /** Whether the check digits of the machine-readable zone are correct. */
76
+ MRZ_VALID = 'mrzValid',
77
+ }
@@ -53,4 +53,26 @@ export enum ExtractionWarningCode {
53
53
  * is neither persisted nor returned to the client — only this warning is.
54
54
  */
55
55
  FIELD_FORMAT_ONLY_DATE = 'field_format_only_date',
56
+ /**
57
+ * A field of an identity document's machine-readable zone was read but NOT
58
+ * published, because its value lies outside the domain the zone allows
59
+ * (#614): a sex other than `M`, `F` or `X`, or a nationality or issuing
60
+ * state that is neither an ISO 3166-1 alpha-3 code nor one of the special
61
+ * codes of ICAO Doc 9303 part 3 (`D`, `UNO`, `XXA`, `RKS`…).
62
+ *
63
+ * These three fields are covered by no check digit, not even the composite
64
+ * one: a misread letter there leaves every key closing. The domain is the
65
+ * only check the zone itself offers for them, and a value that fails it is
66
+ * withheld rather than published at full confidence.
67
+ *
68
+ * This is deliberately its own code: the zone is valid and its other fields
69
+ * are published, so neither `FIELD_BELOW_PUBLISH_FLOOR` nor an
70
+ * `ADAPTER_VALIDATION_ERROR` of type `MRZ_INVALID` would tell the client why
71
+ * this one field is missing.
72
+ *
73
+ * `data.fieldKey` names the field. The value itself is never in the warning:
74
+ * it stays in internal traceability only (`suppressedFields`, reason
75
+ * `mrz_out_of_domain`), which is neither persisted nor returned to the client.
76
+ */
77
+ FIELD_MRZ_OUT_OF_DOMAIN = 'field_mrz_out_of_domain',
56
78
  }
@@ -7,6 +7,8 @@ export * from './document-type.enum';
7
7
  export * from './pdf-operation.enum';
8
8
  export * from './rcb-bank.enum';
9
9
  export * from './extraction-warning.enum';
10
+ export * from './extract-field-key.enum';
11
+ export * from './extract-field-format.enum';
10
12
  export * from './extraction-feedback-issue-type.enum';
11
13
  export * from './provider-kind.enum';
12
14
  export * from './interpreter-kind.enum';
@@ -132,7 +132,8 @@ export interface IExtractionWarning {
132
132
  message?: string;
133
133
  /**
134
134
  * The withheld field's name. Present for the per-field withdrawal codes
135
- * (`FIELD_BELOW_PUBLISH_FLOOR`, `FIELD_FORMAT_ONLY_DATE`, #575).
135
+ * (`FIELD_BELOW_PUBLISH_FLOOR`, `FIELD_FORMAT_ONLY_DATE` #575,
136
+ * `FIELD_MRZ_OUT_OF_DOMAIN` #614).
136
137
  */
137
138
  fieldKey?: string;
138
139
  /**
@@ -142,9 +143,9 @@ export interface IExtractionWarning {
142
143
  confidence?: number;
143
144
  /**
144
145
  * The publish floor the field missed. Present only for
145
- * `FIELD_BELOW_PUBLISH_FLOOR` — a `FIELD_FORMAT_ONLY_DATE` withdrawal is
146
- * not a floor comparison, and its confidence can sit above the field's
147
- * floor.
146
+ * `FIELD_BELOW_PUBLISH_FLOOR` — neither a `FIELD_FORMAT_ONLY_DATE` nor a
147
+ * `FIELD_MRZ_OUT_OF_DOMAIN` withdrawal is a floor comparison, and their
148
+ * confidence can sit above the field's floor.
148
149
  */
149
150
  floor?: number;
150
151
  };