@bisondesk/documents-sdk 1.0.316 → 1.0.317
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/lib/apis/documents.d.ts +6 -0
- package/lib/apis/documents.d.ts.map +1 -0
- package/lib/apis/documents.js +71 -0
- package/lib/apis/documents.js.map +1 -0
- package/lib/types/{types/booking.d.ts → booking.d.ts} +2 -0
- package/lib/types/booking.d.ts.map +1 -0
- package/lib/types/booking.js.map +1 -0
- package/lib/types/{types/documents.d.ts → documents.d.ts} +14 -12
- package/lib/types/documents.d.ts.map +1 -0
- package/lib/{esm/types → types}/documents.js +8 -0
- package/lib/types/documents.js.map +1 -0
- package/lib/types/embeddings.d.ts +18 -0
- package/lib/types/embeddings.d.ts.map +1 -0
- package/lib/types/embeddings.js +6 -0
- package/lib/types/embeddings.js.map +1 -0
- package/lib/types/{types/legacy.d.ts → legacy.d.ts} +1 -0
- package/lib/types/legacy.d.ts.map +1 -0
- package/lib/types/legacy.js.map +1 -0
- package/lib/types/scans.d.ts +10 -0
- package/lib/types/scans.d.ts.map +1 -0
- package/lib/types/scans.js.map +1 -0
- package/lib/types/search.d.ts +36 -0
- package/lib/types/search.d.ts.map +1 -0
- package/lib/types/search.js +2 -0
- package/lib/types/search.js.map +1 -0
- package/lib/utils.d.ts +2 -0
- package/lib/utils.d.ts.map +1 -0
- package/lib/utils.js +2 -0
- package/lib/utils.js.map +1 -0
- package/package.json +13 -20
- package/src/apis/documents.ts +96 -0
- package/src/types/booking.ts +3 -0
- package/src/types/documents.ts +22 -14
- package/src/types/embeddings.ts +20 -0
- package/src/types/legacy.ts +1 -0
- package/src/types/scans.ts +7 -1
- package/src/types/search.ts +42 -0
- package/src/utils.ts +1 -0
- package/tsconfig.json +0 -1
- package/tsconfig.tsbuildinfo +1 -0
- package/lib/cjs/types/booking.js +0 -3
- package/lib/cjs/types/booking.js.map +0 -1
- package/lib/cjs/types/document-categories.js +0 -9
- package/lib/cjs/types/document-categories.js.map +0 -1
- package/lib/cjs/types/documents.js +0 -61
- package/lib/cjs/types/documents.js.map +0 -1
- package/lib/cjs/types/events.js +0 -3
- package/lib/cjs/types/legacy.js +0 -3
- package/lib/cjs/types/legacy.js.map +0 -1
- package/lib/cjs/types/scans.js +0 -3
- package/lib/cjs/types/scans.js.map +0 -1
- package/lib/cjs/types/vat.js +0 -15
- package/lib/cjs/types/vat.js.map +0 -1
- package/lib/esm/types/booking.js.map +0 -1
- package/lib/esm/types/documents.js.map +0 -1
- package/lib/esm/types/events.js.map +0 -1
- package/lib/esm/types/legacy.js.map +0 -1
- package/lib/esm/types/scans.js.map +0 -1
- package/lib/tsconfig.cjs.tsbuildinfo +0 -1
- package/lib/tsconfig.esm.tsbuildinfo +0 -1
- package/lib/types/types/booking.d.ts.map +0 -1
- package/lib/types/types/documents.d.ts.map +0 -1
- package/lib/types/types/legacy.d.ts.map +0 -1
- package/lib/types/types/scans.d.ts +0 -6
- package/lib/types/types/scans.d.ts.map +0 -1
- package/tsconfig.cjs.json +0 -8
- package/tsconfig.esm.json +0 -8
- /package/lib/{esm/types → types}/booking.js +0 -0
- /package/lib/types/{types/document-categories.d.ts → document-categories.d.ts} +0 -0
- /package/lib/types/{types/document-categories.d.ts.map → document-categories.d.ts.map} +0 -0
- /package/lib/{esm/types → types}/document-categories.js +0 -0
- /package/lib/{esm/types → types}/document-categories.js.map +0 -0
- /package/lib/types/{types/events.d.ts → events.d.ts} +0 -0
- /package/lib/types/{types/events.d.ts.map → events.d.ts.map} +0 -0
- /package/lib/{esm/types → types}/events.js +0 -0
- /package/lib/{cjs/types → types}/events.js.map +0 -0
- /package/lib/{esm/types → types}/legacy.js +0 -0
- /package/lib/{esm/types → types}/scans.js +0 -0
- /package/lib/types/{types/vat.d.ts → vat.d.ts} +0 -0
- /package/lib/types/{types/vat.d.ts.map → vat.d.ts.map} +0 -0
- /package/lib/{esm/types → types}/vat.js +0 -0
- /package/lib/{esm/types → types}/vat.js.map +0 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { FinanceBooking } from '../types/booking.js';
|
|
2
|
+
import { AdministrativeDocument, FinanceDocument } from '../types/documents.js';
|
|
3
|
+
export declare const upsertFinanceDoc: (tenantId: string, doc: FinanceDocument) => Promise<FinanceDocument>;
|
|
4
|
+
export declare const upsertAdminDoc: (tenantId: string, doc: AdministrativeDocument) => Promise<AdministrativeDocument>;
|
|
5
|
+
export declare const upsertFinanceBooking: (tenantId: string, booking: FinanceBooking) => Promise<FinanceBooking>;
|
|
6
|
+
//# sourceMappingURL=documents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documents.d.ts","sourceRoot":"/","sources":["apis/documents.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEhF,eAAO,MAAM,gBAAgB,aACjB,MAAM,OACX,eAAe,KACnB,QAAQ,eAAe,CAuBzB,CAAC;AAEF,eAAO,MAAM,cAAc,aACf,MAAM,OACX,sBAAsB,KAC1B,QAAQ,sBAAsB,CA0BhC,CAAC;AAEF,eAAO,MAAM,oBAAoB,aACrB,MAAM,WACP,cAAc,KACtB,QAAQ,cAAc,CA0BxB,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { TENANT_ID_ADMIN_HEADER } from '@bisondesk/commons-sdk/constants';
|
|
2
|
+
import { XError } from '@bisondesk/commons-sdk/errors';
|
|
3
|
+
import { getAdminAuth } from '@bisondesk/commons-sdk/fetch';
|
|
4
|
+
import fetch from 'node-fetch';
|
|
5
|
+
export const upsertFinanceDoc = async (tenantId, doc) => {
|
|
6
|
+
const auth = await getAdminAuth();
|
|
7
|
+
const response = await fetch(`${process.env.CORE_API_ORIGIN}/api/documents/finance`, {
|
|
8
|
+
method: 'POST',
|
|
9
|
+
headers: {
|
|
10
|
+
'Content-Type': 'application/json',
|
|
11
|
+
Authorization: auth,
|
|
12
|
+
[TENANT_ID_ADMIN_HEADER]: tenantId,
|
|
13
|
+
},
|
|
14
|
+
body: JSON.stringify(doc),
|
|
15
|
+
});
|
|
16
|
+
if (response.status === 200) {
|
|
17
|
+
return response.json();
|
|
18
|
+
}
|
|
19
|
+
const body = await response.text();
|
|
20
|
+
throw new XError('core-sdk.documents.upsert-finance-doc-fail', {
|
|
21
|
+
tenantId,
|
|
22
|
+
doc,
|
|
23
|
+
response: body,
|
|
24
|
+
status: response.status,
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
export const upsertAdminDoc = async (tenantId, doc) => {
|
|
28
|
+
const auth = await getAdminAuth();
|
|
29
|
+
const response = await fetch(`${process.env.CORE_API_ORIGIN}/api/documents/administrative`, {
|
|
30
|
+
method: 'POST',
|
|
31
|
+
headers: {
|
|
32
|
+
'Content-Type': 'application/json',
|
|
33
|
+
Authorization: auth,
|
|
34
|
+
[TENANT_ID_ADMIN_HEADER]: tenantId,
|
|
35
|
+
},
|
|
36
|
+
body: JSON.stringify(doc),
|
|
37
|
+
});
|
|
38
|
+
if (response.status === 200) {
|
|
39
|
+
return response.json();
|
|
40
|
+
}
|
|
41
|
+
const body = await response.text();
|
|
42
|
+
throw new XError('core-sdk.documents.upsert-admin-doc-fail', {
|
|
43
|
+
tenantId,
|
|
44
|
+
doc,
|
|
45
|
+
response: body,
|
|
46
|
+
status: response.status,
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
export const upsertFinanceBooking = async (tenantId, booking) => {
|
|
50
|
+
const auth = await getAdminAuth();
|
|
51
|
+
const response = await fetch(`${process.env.CORE_API_ORIGIN}/api/documents/finance/booking`, {
|
|
52
|
+
method: 'POST',
|
|
53
|
+
headers: {
|
|
54
|
+
'Content-Type': 'application/json',
|
|
55
|
+
Authorization: auth,
|
|
56
|
+
[TENANT_ID_ADMIN_HEADER]: tenantId,
|
|
57
|
+
},
|
|
58
|
+
body: JSON.stringify(booking),
|
|
59
|
+
});
|
|
60
|
+
if (response.status === 200) {
|
|
61
|
+
return response.json();
|
|
62
|
+
}
|
|
63
|
+
const body = await response.text();
|
|
64
|
+
throw new XError('core-sdk.documents.upsert-finance-booking-fail', {
|
|
65
|
+
tenantId,
|
|
66
|
+
booking,
|
|
67
|
+
response: body,
|
|
68
|
+
status: response.status,
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=documents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documents.js","sourceRoot":"/","sources":["apis/documents.ts"],"names":[],"mappings":"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","sourcesContent":["import { TENANT_ID_ADMIN_HEADER } from '@bisondesk/commons-sdk/constants';\nimport { XError } from '@bisondesk/commons-sdk/errors';\nimport { getAdminAuth } from '@bisondesk/commons-sdk/fetch';\nimport fetch, { Response } from 'node-fetch';\nimport { FinanceBooking } from '../types/booking.js';\nimport { AdministrativeDocument, FinanceDocument } from '../types/documents.js';\n\nexport const upsertFinanceDoc = async (\n tenantId: string,\n doc: FinanceDocument\n): Promise<FinanceDocument> => {\n const auth = await getAdminAuth();\n const response: Response = await fetch(`${process.env.CORE_API_ORIGIN}/api/documents/finance`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n },\n body: JSON.stringify(doc),\n });\n\n if (response.status === 200) {\n return response.json() as any;\n }\n\n const body = await response.text();\n throw new XError('core-sdk.documents.upsert-finance-doc-fail', {\n tenantId,\n doc,\n response: body,\n status: response.status,\n });\n};\n\nexport const upsertAdminDoc = async (\n tenantId: string,\n doc: AdministrativeDocument\n): Promise<AdministrativeDocument> => {\n const auth = await getAdminAuth();\n const response: Response = await fetch(\n `${process.env.CORE_API_ORIGIN}/api/documents/administrative`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n },\n body: JSON.stringify(doc),\n }\n );\n\n if (response.status === 200) {\n return response.json() as any;\n }\n\n const body = await response.text();\n throw new XError('core-sdk.documents.upsert-admin-doc-fail', {\n tenantId,\n doc,\n response: body,\n status: response.status,\n });\n};\n\nexport const upsertFinanceBooking = async (\n tenantId: string,\n booking: FinanceBooking\n): Promise<FinanceBooking> => {\n const auth = await getAdminAuth();\n const response: Response = await fetch(\n `${process.env.CORE_API_ORIGIN}/api/documents/finance/booking`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n },\n body: JSON.stringify(booking),\n }\n );\n\n if (response.status === 200) {\n return response.json() as any;\n }\n\n const body = await response.text();\n throw new XError('core-sdk.documents.upsert-finance-booking-fail', {\n tenantId,\n booking,\n response: body,\n status: response.status,\n });\n};\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { FinanceDocument } from './documents.js';
|
|
1
2
|
export type FinanceBookingEvent = {
|
|
2
3
|
id: string;
|
|
3
4
|
branchId: string;
|
|
@@ -5,6 +6,7 @@ export type FinanceBookingEvent = {
|
|
|
5
6
|
userId: string;
|
|
6
7
|
tenantId: string;
|
|
7
8
|
type: 'Sale Finance' | 'Purchase Finance';
|
|
9
|
+
version: FinanceDocument['version'];
|
|
8
10
|
};
|
|
9
11
|
export type FinanceBooking = {
|
|
10
12
|
branchId: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"booking.d.ts","sourceRoot":"/","sources":["types/booking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,cAAc,GAAG,kBAAkB,CAAC;IAC1C,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IAEnB,MAAM,EAAE,IAAI,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,OAAO,CAAC;IAEd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"booking.js","sourceRoot":"/","sources":["types/booking.ts"],"names":[],"mappings":"","sourcesContent":["import { FinanceDocument } from './documents.js';\n\nexport type FinanceBookingEvent = {\n id: string;\n branchId: string;\n actionAt: string;\n userId: string;\n tenantId: string;\n type: 'Sale Finance' | 'Purchase Finance';\n version: FinanceDocument['version'];\n};\n\nexport type FinanceBooking = {\n branchId: string; // same tenantId can have different companies\n bookingNumber: string; // same booking number can and will exist across different \"branches\", unique => BranchId / Journal / Booking Number\n documentId: string;\n\n booked: true;\n journal?: string;\n amount?: string;\n reportingPeriod?: number;\n reportingYear?: number;\n paid: boolean;\n\n createdAt: string;\n createdBy: string;\n modifiedAt: string;\n modifiedBy: string;\n};\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import type { Block } from '@aws-sdk/client-textract';
|
|
1
2
|
import { BusinessEntityIds } from '@bisondesk/commons-sdk/constants';
|
|
2
|
-
import { AttachmentValue, PhoneNumberValue
|
|
3
|
-
import {
|
|
4
|
-
import { FinanceDocumentV1 } from './legacy';
|
|
3
|
+
import { AttachmentValue, PhoneNumberValue } from '@bisondesk/commons-sdk/types';
|
|
4
|
+
import { FinanceDocumentV1 } from './legacy.js';
|
|
5
5
|
export declare enum AdministrativeDocType {
|
|
6
6
|
General = "General Administrative",
|
|
7
7
|
Logistics = "Logistics Administrative",
|
|
@@ -81,6 +81,7 @@ export type FinanceDocumentV2 = BaseDocument & {
|
|
|
81
81
|
invoiceId?: string;
|
|
82
82
|
issueDate: string;
|
|
83
83
|
lines: FinanceDocumentLine[];
|
|
84
|
+
paymentNotes?: string;
|
|
84
85
|
notes?: string;
|
|
85
86
|
salesperson: {
|
|
86
87
|
name: string;
|
|
@@ -148,16 +149,8 @@ export type NewDocumentDraft<T = NewFinanceDocumentV2 | NewAdministrativeDocumen
|
|
|
148
149
|
subtype?: string;
|
|
149
150
|
documentType?: DocumentType;
|
|
150
151
|
};
|
|
151
|
-
export type SearchFinanceDocument = {
|
|
152
|
-
doc: FinanceDocumentV2;
|
|
153
|
-
permissions: SearchPermissions;
|
|
154
|
-
booking?: FinanceBooking;
|
|
155
|
-
};
|
|
156
|
-
export type SearchAdministrativeDocument = {
|
|
157
|
-
doc: AdministrativeDocument;
|
|
158
|
-
permissions: SearchPermissions;
|
|
159
|
-
};
|
|
160
152
|
export declare const isFinanceDocumentV2: (arg: FinanceDocumentV2 | FinanceDocumentV1) => arg is FinanceDocumentV2;
|
|
153
|
+
export declare const isFinanceDocumentV1: (arg: FinanceDocumentV2 | FinanceDocumentV1) => arg is FinanceDocumentV1;
|
|
161
154
|
export declare const isAdministrativeDocument: (arg: any) => arg is AdministrativeDocument;
|
|
162
155
|
export declare const isAdministrativeDocumentDraft: (draft: DocumentDraft) => draft is DocumentDraft<AdministrativeDocument>;
|
|
163
156
|
export declare const isFinanceDocumentDraft: (arg: DocumentDraft | NewDocumentDraft) => arg is DocumentDraft<FinanceDocumentV2>;
|
|
@@ -201,5 +194,14 @@ export declare enum FinanceDocumentSubtype {
|
|
|
201
194
|
Proforma = "Proforma",
|
|
202
195
|
PurchaseOrder = "Purchase Order"
|
|
203
196
|
}
|
|
197
|
+
export type OCRDocument = {
|
|
198
|
+
Blocks?: Block[];
|
|
199
|
+
orientation: number;
|
|
200
|
+
hasCurrency: boolean;
|
|
201
|
+
};
|
|
202
|
+
export declare enum FinanceDocumentActions {
|
|
203
|
+
PAY_FINANCE_DOCUMENT = "pay_finance_document",
|
|
204
|
+
DELETE_FINANCE_DOCUMENT = "delete_finance_document"
|
|
205
|
+
}
|
|
204
206
|
export {};
|
|
205
207
|
//# sourceMappingURL=documents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documents.d.ts","sourceRoot":"/","sources":["types/documents.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,9 @@ export var DraftActions;
|
|
|
37
37
|
export const isFinanceDocumentV2 = (arg) => {
|
|
38
38
|
return arg.version === 2;
|
|
39
39
|
};
|
|
40
|
+
export const isFinanceDocumentV1 = (arg) => {
|
|
41
|
+
return arg.version == null;
|
|
42
|
+
};
|
|
40
43
|
export const isAdministrativeDocument = (arg) => {
|
|
41
44
|
return Object.values(AdministrativeDocType).includes(arg.type);
|
|
42
45
|
};
|
|
@@ -51,4 +54,9 @@ export var FinanceDocumentSubtype;
|
|
|
51
54
|
FinanceDocumentSubtype["Proforma"] = "Proforma";
|
|
52
55
|
FinanceDocumentSubtype["PurchaseOrder"] = "Purchase Order";
|
|
53
56
|
})(FinanceDocumentSubtype || (FinanceDocumentSubtype = {}));
|
|
57
|
+
export var FinanceDocumentActions;
|
|
58
|
+
(function (FinanceDocumentActions) {
|
|
59
|
+
FinanceDocumentActions["PAY_FINANCE_DOCUMENT"] = "pay_finance_document";
|
|
60
|
+
FinanceDocumentActions["DELETE_FINANCE_DOCUMENT"] = "delete_finance_document";
|
|
61
|
+
})(FinanceDocumentActions || (FinanceDocumentActions = {}));
|
|
54
62
|
//# sourceMappingURL=documents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documents.js","sourceRoot":"/","sources":["types/documents.ts"],"names":[],"mappings":"AAKA,MAAM,CAAN,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC/B,2DAAkC,CAAA;IAClC,+DAAsC,CAAA;IACtC,6DAAoC,CAAA;IACpC,qDAA4B,CAAA;AAC9B,CAAC,EALW,qBAAqB,KAArB,qBAAqB,QAKhC;AAyDD,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,uCAAqB,CAAA;IACrB,+CAA6B,CAAA;AAC/B,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED,MAAM,CAAN,IAAY,8BAGX;AAHD,WAAY,8BAA8B;IACxC,qDAAmB,CAAA;IACnB,4DAA0B,CAAA;AAC5B,CAAC,EAHW,8BAA8B,KAA9B,8BAA8B,QAGzC;AAqED,MAAM,CAAN,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAG5B,qCAAe,CAAA;IACf,iDAA2B,CAAA;IAC3B,iDAA2B,CAAA;AAC7B,CAAC,EANW,kBAAkB,KAAlB,kBAAkB,QAM7B;AAYD,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,4CAA4B,CAAA;IAC5B,0DAA0C,CAAA;AAC5C,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB;AAUD,MAAM,CAAN,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,iCAAiB,CAAA;IACjB,qCAAqB,CAAA;IACrB,iCAAiB,CAAA;IACjB,iEAAiD,CAAA;IACjD,qEAAqD,CAAA;AACvD,CAAC,EANW,YAAY,KAAZ,YAAY,QAMvB;AAYD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,GAA0C,EAChB,EAAE;IAC5B,OAAQ,GAAyB,CAAC,OAAO,KAAK,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,GAA0C,EAChB,EAAE;IAC5B,OAAQ,GAAyB,CAAC,OAAO,IAAI,IAAI,CAAC;AACpD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,GAAQ,EAAiC,EAAE;IAClF,OAAO,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,KAAoB,EAC4B,EAAE,CAClD,KAAK,CAAC,YAAY,KAAK,YAAY,CAAC,cAAc,CAAC;AAErD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,GAAqC,EACI,EAAE;IAC3C,OAAO,GAAG,CAAC,YAAY,KAAK,YAAY,CAAC,OAAO,CAAC;AACnD,CAAC,CAAC;AAsCF,MAAM,CAAN,IAAY,sBAKX;AALD,WAAY,sBAAsB;IAChC,6CAAmB,CAAA;IACnB,oDAA0B,CAAA;IAC1B,+CAAqB,CAAA;IACrB,0DAAgC,CAAA;AAClC,CAAC,EALW,sBAAsB,KAAtB,sBAAsB,QAKjC;AAQD,MAAM,CAAN,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,uEAA6C,CAAA;IAC7C,6EAAmD,CAAA;AACrD,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,QAGjC","sourcesContent":["import type { Block } from '@aws-sdk/client-textract';\nimport { BusinessEntityIds } from '@bisondesk/commons-sdk/constants';\nimport { AttachmentValue, PhoneNumberValue } from '@bisondesk/commons-sdk/types';\nimport { FinanceDocumentV1 } from './legacy.js';\n\nexport enum AdministrativeDocType {\n General = 'General Administrative',\n Logistics = 'Logistics Administrative',\n Purchase = 'Purchase Administrative',\n Sale = 'Sale Administrative',\n}\n\nexport type FinanceDocument = FinanceDocumentV1 | FinanceDocumentV2;\n\nexport type Association = {\n businessEntityId: BusinessEntityIds;\n id: string;\n description: string;\n tags?: string[];\n};\n\nexport type FinanceDocumentLine = {\n id: string;\n category: string; // abstraction used to map lines to GL accounts (e.g., deposit, insurance)\n amount: string;\n amountExcl: string; // quantity * unit price\n description: string;\n foreign?: {\n amount: string;\n amountExcl: string;\n unitPriceExcl: string;\n vatAmount: string;\n };\n invoiceLineId?: string; // used by credit notes\n quantity: string;\n associations?: Association[];\n unitPriceExcl: string;\n vatAmount: string;\n vatCode: string;\n vatPercentage: string;\n vatReason?: string;\n};\n\ntype OrgSummary = {\n id: string;\n code: number;\n name: string;\n vatNumber?: string;\n\n addressLine1?: string;\n addressLine2?: string;\n postcode?: string;\n city?: string;\n country: string;\n\n emails?: string[];\n phone?: PhoneNumberValue;\n\n // TODO person name?\n contact?: {\n name: string;\n username: string;\n };\n\n language: string; // needed?\n};\n\nexport enum FinanceDocType {\n Sale = 'Sale Finance',\n Purchase = 'Purchase Finance',\n}\n\nexport enum FinanceDocumentGenerateSubtype {\n Invoice = 'Invoice',\n CreditNote = 'Credit Note',\n}\n\ntype BaseDocument = {\n id: string;\n branchId: string;\n attachment: AttachmentValue;\n subtype: string;\n createdAt: string;\n createdBy: string;\n};\n\nexport type FinanceDocumentV2 = BaseDocument & {\n version: 2.0;\n reference: string;\n\n type: FinanceDocType;\n\n category: string; // abstraction used to map invoices to Journals (e.g., leasing, used trucks)\n\n organizationSummary: OrgSummary;\n\n dueDate?: string;\n transferDescription?: string; // we ask clients to put this as description of the transfer\n invoiceId?: string; // mandatory in credit notes but forbidden in invoices\n issueDate: string;\n lines: FinanceDocumentLine[];\n paymentNotes?: string;\n notes?: string;\n salesperson: {\n name: string;\n username: string;\n };\n tags: string[]; // optional values used to improve document search\n total: {\n amountExcl: string;\n amount: string;\n currencyCode: string; // from the branch\n foreign?: {\n amount: string;\n amountExcl: string;\n vatAmount: string;\n currencyCode: string;\n exchangeRate: string;\n };\n vatAmount: string;\n };\n\n paidAt?: string;\n};\n\nexport type NewFinanceDocumentV2 = Omit<\n FinanceDocumentV2,\n 'id' | 'createdAt' | 'createdBy' | 'lines'\n> & {\n lines: Omit<FinanceDocumentLine, 'id'>[];\n};\n\nexport type AdministrativeDocument = BaseDocument & {\n type: AdministrativeDocType;\n tags?: string[];\n associations?: Association[];\n organizationSummary?: OrgSummary;\n};\n\nexport type NewAdministrativeDocument = Omit<\n AdministrativeDocument,\n 'id' | 'createdAt' | 'createdBy'\n>;\n\nexport enum DraftProcessStatus {\n // Prefill = 'Prefill',\n // Ready = 'Ready',\n Error = 'Error',\n Unprocessed = 'Unprocessed',\n Unvalidated = 'Unvalidated',\n}\n\ntype DraftProcessing = {\n status: DraftProcessStatus;\n businessValid: boolean;\n accountingValid: boolean;\n rejectedAt?: string;\n rejectedBy?: string;\n rejectionReason?: string;\n failedValidationRules?: string[];\n};\n\nexport enum DocumentType {\n Finance = 'Finance Document',\n Administrative = 'Administrative Document',\n}\n\ntype BaseDocumentDraft = BaseDocument &\n DraftProcessing & {\n documentType?: DocumentType;\n };\n\nexport type DocumentDraft<T = FinanceDocumentV2 | AdministrativeDocument> = Partial<T> &\n BaseDocumentDraft;\n\nexport enum DraftActions {\n Delete = 'delete',\n Validate = 'validate',\n Submit = 'submit',\n ValidateBusinessRules = 'validate_business_rules',\n ValidateAccountingRules = 'validate_accounting_rules',\n}\n\nexport type RejectDraftRequest = {\n reason?: string;\n};\n\nexport type NewDocumentDraft<T = NewFinanceDocumentV2 | NewAdministrativeDocument> = Partial<T> &\n Omit<BaseDocument, 'id' | 'createdAt' | 'createdBy' | 'subtype'> & {\n subtype?: string;\n documentType?: DocumentType;\n };\n\nexport const isFinanceDocumentV2 = (\n arg: FinanceDocumentV2 | FinanceDocumentV1\n): arg is FinanceDocumentV2 => {\n return (arg as FinanceDocumentV2).version === 2;\n};\n\nexport const isFinanceDocumentV1 = (\n arg: FinanceDocumentV2 | FinanceDocumentV1\n): arg is FinanceDocumentV1 => {\n return (arg as FinanceDocumentV2).version == null;\n};\n\nexport const isAdministrativeDocument = (arg: any): arg is AdministrativeDocument => {\n return Object.values(AdministrativeDocType).includes(arg.type);\n};\n\nexport const isAdministrativeDocumentDraft = (\n draft: DocumentDraft\n): draft is DocumentDraft<AdministrativeDocument> =>\n draft.documentType === DocumentType.Administrative;\n\nexport const isFinanceDocumentDraft = (\n arg: DocumentDraft | NewDocumentDraft\n): arg is DocumentDraft<FinanceDocumentV2> => {\n return arg.documentType === DocumentType.Finance;\n};\n\nexport type FinanceDocumentGenerateRequest = Omit<\n FinanceDocumentV2,\n 'id' | 'attachment' | 'createdAt' | 'createdBy' | 'version' | 'reference' | 'lines' | 'subtype'\n> & {\n subtype: FinanceDocumentGenerateSubtype;\n lines: Omit<FinanceDocumentLine, 'id'>[];\n};\n\n// TODO\nexport type DocumentGenerateRequestEvent = {\n tenantId: string;\n docId: string;\n request: FinanceDocumentGenerateRequest;\n};\n\nexport type FinanceDocumentSettings<M = {}> = {\n provider: string;\n meta: M;\n};\n\nexport type FinanceDocumentBisondeskSettings = {\n [FinanceDocumentGenerateSubtype.Invoice]: {\n prefix: string;\n templateId: string;\n };\n [FinanceDocumentGenerateSubtype.CreditNote]: {\n prefix: string;\n templateId: string;\n };\n};\n\nexport type FinanceDocumentPayment = { documentId: string } & (\n | { paid: true; paidAt: string; comment?: string }\n | { paid: false; paidAt?: undefined; comment?: undefined }\n);\n\nexport enum FinanceDocumentSubtype {\n Invoice = 'Invoice',\n CreditNote = 'Credit Note',\n Proforma = 'Proforma',\n PurchaseOrder = 'Purchase Order',\n}\n\nexport type OCRDocument = {\n Blocks?: Block[];\n orientation: number;\n hasCurrency: boolean;\n};\n\nexport enum FinanceDocumentActions {\n PAY_FINANCE_DOCUMENT = 'pay_finance_document',\n DELETE_FINANCE_DOCUMENT = 'delete_finance_document',\n}\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare enum EmbeddingType {
|
|
2
|
+
Document = "document",
|
|
3
|
+
Line = "line"
|
|
4
|
+
}
|
|
5
|
+
export type DocumentEmbedding = {
|
|
6
|
+
id: string;
|
|
7
|
+
documentId: string;
|
|
8
|
+
embedding: number[];
|
|
9
|
+
type: EmbeddingType;
|
|
10
|
+
active: boolean;
|
|
11
|
+
category?: string;
|
|
12
|
+
lineCategory?: string;
|
|
13
|
+
};
|
|
14
|
+
export type DocumentEmbeddingDB = {
|
|
15
|
+
data: Omit<DocumentEmbedding, 'embedding'>;
|
|
16
|
+
embedding: string;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=embeddings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embeddings.d.ts","sourceRoot":"/","sources":["types/embeddings.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa;IACvB,QAAQ,aAAa;IACrB,IAAI,SAAS;CACd;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAEhB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAC3C,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embeddings.js","sourceRoot":"/","sources":["types/embeddings.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,sCAAqB,CAAA;IACrB,8BAAa,CAAA;AACf,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB","sourcesContent":["export enum EmbeddingType {\n Document = 'document',\n Line = 'line',\n}\n\nexport type DocumentEmbedding = {\n id: string;\n documentId: string;\n embedding: number[];\n type: EmbeddingType;\n active: boolean;\n\n category?: string;\n lineCategory?: string;\n};\n\nexport type DocumentEmbeddingDB = {\n data: Omit<DocumentEmbedding, 'embedding'>;\n embedding: string;\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy.d.ts","sourceRoot":"/","sources":["types/legacy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,MAAM,aAAa,GAAG;IAC1B,YAAY,EAAE;QACZ,MAAM,EAAE;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAC/C,KAAK,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAC1D,SAAS,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KAC/D,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,GAAG,CAAC;IAEd,IAAI,EAAE,cAAc,GAAG,kBAAkB,CAAC;IAC1C,OAAO,EAAE,SAAS,GAAG,aAAa,GAAG,UAAU,GAAG,gBAAgB,CAAC;IACnE,SAAS,EAAE,MAAM,CAAC;IAElB,UAAU,EAAE,eAAe,CAAC;IAC5B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,mBAAmB,CAAC,EAAE;QACpB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QAEd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy.js","sourceRoot":"/","sources":["types/legacy.ts"],"names":[],"mappings":"","sourcesContent":["import { AttachmentValue } from '@bisondesk/commons-sdk/types';\n\nexport type FinanceLineV1 = {\n associations: {\n others: { vehicleId: string; label: string }[];\n sales: { id: string; vehicleId: string; label: string }[];\n purchases: { id: string; vehicleId: string; label: string }[];\n };\n description: string;\n id: string;\n lineCode: string;\n quantity: string;\n unitPriceExclusive: string;\n vatCode: string;\n vatCoefficient: string;\n};\n\nexport type FinanceDocumentV1 = {\n id: string;\n branchId: string;\n version?: 1.0;\n\n type: 'Sale Finance' | 'Purchase Finance';\n subtype: 'Invoice' | 'Credit Note' | 'Proforma' | 'Purchase Order';\n reference: string;\n\n attachment: AttachmentValue;\n lines: FinanceLineV1[];\n notes?: string;\n\n createdAt: string;\n createdBy: string;\n issueDate: string;\n paidAt?: string;\n paymentNotes?: string;\n amount?: string;\n dueDate?: string;\n\n organizationSummary?: {\n id: string;\n code: string;\n name: string;\n country: string;\n vatNumber?: string;\n\n addressLine1?: string;\n addressLine2?: string;\n addressLine3?: string;\n postcode?: string;\n city?: string;\n\n email?: string;\n phone?: string;\n fax?: string;\n };\n};\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DocumentType } from './documents.js';
|
|
2
|
+
export type NewDocumentScanEvent = {
|
|
3
|
+
tenantId: string;
|
|
4
|
+
source: string;
|
|
5
|
+
fileUrl: string;
|
|
6
|
+
documentType?: DocumentType;
|
|
7
|
+
existingDraftId?: string;
|
|
8
|
+
skipSplit?: boolean;
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=scans.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scans.d.ts","sourceRoot":"/","sources":["types/scans.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAEhB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scans.js","sourceRoot":"/","sources":["types/scans.ts"],"names":[],"mappings":"","sourcesContent":["import { DocumentType } from './documents.js';\n\nexport type NewDocumentScanEvent = {\n tenantId: string;\n source: string;\n fileUrl: string;\n\n documentType?: DocumentType;\n existingDraftId?: string;\n skipSplit?: boolean;\n};\n"]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { SearchPermissions } from '@bisondesk/commons-sdk/types';
|
|
2
|
+
import { Organization } from '@bisondesk/core-sdk/types/crm';
|
|
3
|
+
import { PublicSearchDefinition } from '@bisondesk/core-sdk/types/definitions';
|
|
4
|
+
import { FinanceBooking } from './booking.js';
|
|
5
|
+
import { AdministrativeDocument, FinanceDocument } from './documents.js';
|
|
6
|
+
export type SearchDocumentVehicleRef = {
|
|
7
|
+
id: string;
|
|
8
|
+
stockNumber: string;
|
|
9
|
+
administrativeNumber?: string;
|
|
10
|
+
};
|
|
11
|
+
export type InputSearchFinanceDocument = SearchFinanceDocument & {
|
|
12
|
+
permissions: SearchPermissions;
|
|
13
|
+
};
|
|
14
|
+
export type InputSearchAdministrativeDocument = SearchAdministrativeDocument & {
|
|
15
|
+
permissions: SearchPermissions;
|
|
16
|
+
};
|
|
17
|
+
export type DocsSearchDefinitions = {
|
|
18
|
+
searchFinanceDoc: PublicSearchDefinition;
|
|
19
|
+
};
|
|
20
|
+
export type AdministrativeDocsSearchDefinitions = {
|
|
21
|
+
searchAdministrativeDoc: PublicSearchDefinition;
|
|
22
|
+
};
|
|
23
|
+
export type SearchFinanceDocument = {
|
|
24
|
+
permissions: SearchPermissions;
|
|
25
|
+
org?: Organization;
|
|
26
|
+
doc: FinanceDocument;
|
|
27
|
+
booking?: FinanceBooking;
|
|
28
|
+
vehicle?: SearchDocumentVehicleRef[];
|
|
29
|
+
};
|
|
30
|
+
export type SearchAdministrativeDocument = {
|
|
31
|
+
doc: AdministrativeDocument;
|
|
32
|
+
permissions: SearchPermissions;
|
|
33
|
+
org?: Organization;
|
|
34
|
+
vehicle?: SearchDocumentVehicleRef[];
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"/","sources":["types/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEzE,MAAM,MAAM,wBAAwB,GAAG;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,qBAAqB,GAAG;IAC/D,WAAW,EAAE,iBAAiB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG,4BAA4B,GAAG;IAC7E,WAAW,EAAE,iBAAiB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,gBAAgB,EAAE,sBAAsB,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG;IAChD,uBAAuB,EAAE,sBAAsB,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,GAAG,EAAE,eAAe,CAAC;IACrB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,OAAO,CAAC,EAAE,wBAAwB,EAAE,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,GAAG,EAAE,sBAAsB,CAAC;IAC5B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,OAAO,CAAC,EAAE,wBAAwB,EAAE,CAAC;CACtC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"/","sources":["types/search.ts"],"names":[],"mappings":"","sourcesContent":["import { SearchPermissions } from '@bisondesk/commons-sdk/types';\nimport { Organization } from '@bisondesk/core-sdk/types/crm';\nimport { PublicSearchDefinition } from '@bisondesk/core-sdk/types/definitions';\nimport { FinanceBooking } from './booking.js';\nimport { AdministrativeDocument, FinanceDocument } from './documents.js';\n\nexport type SearchDocumentVehicleRef = {\n id: string;\n stockNumber: string;\n administrativeNumber?: string;\n};\n\nexport type InputSearchFinanceDocument = SearchFinanceDocument & {\n permissions: SearchPermissions;\n};\n\nexport type InputSearchAdministrativeDocument = SearchAdministrativeDocument & {\n permissions: SearchPermissions;\n};\n\nexport type DocsSearchDefinitions = {\n searchFinanceDoc: PublicSearchDefinition;\n};\n\nexport type AdministrativeDocsSearchDefinitions = {\n searchAdministrativeDoc: PublicSearchDefinition;\n};\n\nexport type SearchFinanceDocument = {\n permissions: SearchPermissions;\n org?: Organization;\n doc: FinanceDocument;\n booking?: FinanceBooking;\n vehicle?: SearchDocumentVehicleRef[];\n};\n\nexport type SearchAdministrativeDocument = {\n doc: AdministrativeDocument;\n permissions: SearchPermissions;\n org?: Organization;\n vehicle?: SearchDocumentVehicleRef[];\n};\n"]}
|
package/lib/utils.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"/","sources":["utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,YAAa,MAAM,WAAsC,CAAC"}
|
package/lib/utils.js
ADDED
package/lib/utils.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"/","sources":["utils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC","sourcesContent":["export const getPdfPreviewSrc = (fileUrl: string) => fileUrl.replace('.pdf', '/1.jpg');\n"]}
|
package/package.json
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bisondesk/documents-sdk",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.317",
|
|
4
4
|
"description": "",
|
|
5
|
+
"type": "module",
|
|
5
6
|
"scripts": {
|
|
6
|
-
"build": "npx tsc --build
|
|
7
|
+
"build": "npx tsc --build",
|
|
7
8
|
"clean": "rm -rf lib *.tsbuildinfo",
|
|
8
9
|
"unittest": "echo \"No test specified\"",
|
|
9
10
|
"integrationtest": "echo \"No test specified\"",
|
|
@@ -13,31 +14,23 @@
|
|
|
13
14
|
"dependencies": {
|
|
14
15
|
"@bisondesk/commons-sdk": "*",
|
|
15
16
|
"@bisondesk/core-sdk": "*",
|
|
16
|
-
"decimal.js": "10.3
|
|
17
|
-
"joi": "17.4.0"
|
|
17
|
+
"decimal.js": "10.4.3",
|
|
18
|
+
"joi": "17.4.0",
|
|
19
|
+
"node-fetch": "3.3.2"
|
|
18
20
|
},
|
|
19
21
|
"devDependencies": {
|
|
20
|
-
"
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"module": "./lib/esm/*",
|
|
24
|
-
"exports": {
|
|
25
|
-
"./*": {
|
|
26
|
-
"import": [
|
|
27
|
-
"./lib/esm/*.js",
|
|
28
|
-
"./lib/esm/*/*.js"
|
|
29
|
-
],
|
|
30
|
-
"require": [
|
|
31
|
-
"./lib/cjs/*.js",
|
|
32
|
-
"./lib/cjs/*/*.js"
|
|
33
|
-
]
|
|
34
|
-
}
|
|
22
|
+
"@aws-sdk/client-textract": "3.465.0",
|
|
23
|
+
"@types/node": "18.11.9",
|
|
24
|
+
"typescript": "5.3.3"
|
|
35
25
|
},
|
|
36
26
|
"typesVersions": {
|
|
37
27
|
"*": {
|
|
38
28
|
"*": [
|
|
39
|
-
"lib
|
|
29
|
+
"lib/*.d.ts"
|
|
40
30
|
]
|
|
41
31
|
}
|
|
32
|
+
},
|
|
33
|
+
"exports": {
|
|
34
|
+
"./*": "./lib/*.js"
|
|
42
35
|
}
|
|
43
36
|
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { TENANT_ID_ADMIN_HEADER } from '@bisondesk/commons-sdk/constants';
|
|
2
|
+
import { XError } from '@bisondesk/commons-sdk/errors';
|
|
3
|
+
import { getAdminAuth } from '@bisondesk/commons-sdk/fetch';
|
|
4
|
+
import fetch, { Response } from 'node-fetch';
|
|
5
|
+
import { FinanceBooking } from '../types/booking.js';
|
|
6
|
+
import { AdministrativeDocument, FinanceDocument } from '../types/documents.js';
|
|
7
|
+
|
|
8
|
+
export const upsertFinanceDoc = async (
|
|
9
|
+
tenantId: string,
|
|
10
|
+
doc: FinanceDocument
|
|
11
|
+
): Promise<FinanceDocument> => {
|
|
12
|
+
const auth = await getAdminAuth();
|
|
13
|
+
const response: Response = await fetch(`${process.env.CORE_API_ORIGIN}/api/documents/finance`, {
|
|
14
|
+
method: 'POST',
|
|
15
|
+
headers: {
|
|
16
|
+
'Content-Type': 'application/json',
|
|
17
|
+
Authorization: auth,
|
|
18
|
+
[TENANT_ID_ADMIN_HEADER]: tenantId,
|
|
19
|
+
},
|
|
20
|
+
body: JSON.stringify(doc),
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
if (response.status === 200) {
|
|
24
|
+
return response.json() as any;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const body = await response.text();
|
|
28
|
+
throw new XError('core-sdk.documents.upsert-finance-doc-fail', {
|
|
29
|
+
tenantId,
|
|
30
|
+
doc,
|
|
31
|
+
response: body,
|
|
32
|
+
status: response.status,
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export const upsertAdminDoc = async (
|
|
37
|
+
tenantId: string,
|
|
38
|
+
doc: AdministrativeDocument
|
|
39
|
+
): Promise<AdministrativeDocument> => {
|
|
40
|
+
const auth = await getAdminAuth();
|
|
41
|
+
const response: Response = await fetch(
|
|
42
|
+
`${process.env.CORE_API_ORIGIN}/api/documents/administrative`,
|
|
43
|
+
{
|
|
44
|
+
method: 'POST',
|
|
45
|
+
headers: {
|
|
46
|
+
'Content-Type': 'application/json',
|
|
47
|
+
Authorization: auth,
|
|
48
|
+
[TENANT_ID_ADMIN_HEADER]: tenantId,
|
|
49
|
+
},
|
|
50
|
+
body: JSON.stringify(doc),
|
|
51
|
+
}
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
if (response.status === 200) {
|
|
55
|
+
return response.json() as any;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const body = await response.text();
|
|
59
|
+
throw new XError('core-sdk.documents.upsert-admin-doc-fail', {
|
|
60
|
+
tenantId,
|
|
61
|
+
doc,
|
|
62
|
+
response: body,
|
|
63
|
+
status: response.status,
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
export const upsertFinanceBooking = async (
|
|
68
|
+
tenantId: string,
|
|
69
|
+
booking: FinanceBooking
|
|
70
|
+
): Promise<FinanceBooking> => {
|
|
71
|
+
const auth = await getAdminAuth();
|
|
72
|
+
const response: Response = await fetch(
|
|
73
|
+
`${process.env.CORE_API_ORIGIN}/api/documents/finance/booking`,
|
|
74
|
+
{
|
|
75
|
+
method: 'POST',
|
|
76
|
+
headers: {
|
|
77
|
+
'Content-Type': 'application/json',
|
|
78
|
+
Authorization: auth,
|
|
79
|
+
[TENANT_ID_ADMIN_HEADER]: tenantId,
|
|
80
|
+
},
|
|
81
|
+
body: JSON.stringify(booking),
|
|
82
|
+
}
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
if (response.status === 200) {
|
|
86
|
+
return response.json() as any;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const body = await response.text();
|
|
90
|
+
throw new XError('core-sdk.documents.upsert-finance-booking-fail', {
|
|
91
|
+
tenantId,
|
|
92
|
+
booking,
|
|
93
|
+
response: body,
|
|
94
|
+
status: response.status,
|
|
95
|
+
});
|
|
96
|
+
};
|
package/src/types/booking.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { FinanceDocument } from './documents.js';
|
|
2
|
+
|
|
1
3
|
export type FinanceBookingEvent = {
|
|
2
4
|
id: string;
|
|
3
5
|
branchId: string;
|
|
@@ -5,6 +7,7 @@ export type FinanceBookingEvent = {
|
|
|
5
7
|
userId: string;
|
|
6
8
|
tenantId: string;
|
|
7
9
|
type: 'Sale Finance' | 'Purchase Finance';
|
|
10
|
+
version: FinanceDocument['version'];
|
|
8
11
|
};
|
|
9
12
|
|
|
10
13
|
export type FinanceBooking = {
|
package/src/types/documents.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import type { Block } from '@aws-sdk/client-textract';
|
|
1
2
|
import { BusinessEntityIds } from '@bisondesk/commons-sdk/constants';
|
|
2
|
-
import { AttachmentValue, PhoneNumberValue
|
|
3
|
-
import {
|
|
4
|
-
import { FinanceDocumentV1 } from './legacy';
|
|
3
|
+
import { AttachmentValue, PhoneNumberValue } from '@bisondesk/commons-sdk/types';
|
|
4
|
+
import { FinanceDocumentV1 } from './legacy.js';
|
|
5
5
|
|
|
6
6
|
export enum AdministrativeDocType {
|
|
7
7
|
General = 'General Administrative',
|
|
@@ -99,6 +99,7 @@ export type FinanceDocumentV2 = BaseDocument & {
|
|
|
99
99
|
invoiceId?: string; // mandatory in credit notes but forbidden in invoices
|
|
100
100
|
issueDate: string;
|
|
101
101
|
lines: FinanceDocumentLine[];
|
|
102
|
+
paymentNotes?: string;
|
|
102
103
|
notes?: string;
|
|
103
104
|
salesperson: {
|
|
104
105
|
name: string;
|
|
@@ -145,6 +146,7 @@ export enum DraftProcessStatus {
|
|
|
145
146
|
// Prefill = 'Prefill',
|
|
146
147
|
// Ready = 'Ready',
|
|
147
148
|
Error = 'Error',
|
|
149
|
+
Validated = 'Validated',
|
|
148
150
|
Unprocessed = 'Unprocessed',
|
|
149
151
|
Unvalidated = 'Unvalidated',
|
|
150
152
|
}
|
|
@@ -190,23 +192,18 @@ export type NewDocumentDraft<T = NewFinanceDocumentV2 | NewAdministrativeDocumen
|
|
|
190
192
|
documentType?: DocumentType;
|
|
191
193
|
};
|
|
192
194
|
|
|
193
|
-
export type SearchFinanceDocument = {
|
|
194
|
-
doc: FinanceDocumentV2;
|
|
195
|
-
permissions: SearchPermissions;
|
|
196
|
-
booking?: FinanceBooking;
|
|
197
|
-
};
|
|
198
|
-
|
|
199
|
-
export type SearchAdministrativeDocument = {
|
|
200
|
-
doc: AdministrativeDocument;
|
|
201
|
-
permissions: SearchPermissions;
|
|
202
|
-
};
|
|
203
|
-
|
|
204
195
|
export const isFinanceDocumentV2 = (
|
|
205
196
|
arg: FinanceDocumentV2 | FinanceDocumentV1
|
|
206
197
|
): arg is FinanceDocumentV2 => {
|
|
207
198
|
return (arg as FinanceDocumentV2).version === 2;
|
|
208
199
|
};
|
|
209
200
|
|
|
201
|
+
export const isFinanceDocumentV1 = (
|
|
202
|
+
arg: FinanceDocumentV2 | FinanceDocumentV1
|
|
203
|
+
): arg is FinanceDocumentV1 => {
|
|
204
|
+
return (arg as FinanceDocumentV2).version == null;
|
|
205
|
+
};
|
|
206
|
+
|
|
210
207
|
export const isAdministrativeDocument = (arg: any): arg is AdministrativeDocument => {
|
|
211
208
|
return Object.values(AdministrativeDocType).includes(arg.type);
|
|
212
209
|
};
|
|
@@ -264,3 +261,14 @@ export enum FinanceDocumentSubtype {
|
|
|
264
261
|
Proforma = 'Proforma',
|
|
265
262
|
PurchaseOrder = 'Purchase Order',
|
|
266
263
|
}
|
|
264
|
+
|
|
265
|
+
export type OCRDocument = {
|
|
266
|
+
Blocks?: Block[];
|
|
267
|
+
orientation: number;
|
|
268
|
+
hasCurrency: boolean;
|
|
269
|
+
};
|
|
270
|
+
|
|
271
|
+
export enum FinanceDocumentActions {
|
|
272
|
+
PAY_FINANCE_DOCUMENT = 'pay_finance_document',
|
|
273
|
+
DELETE_FINANCE_DOCUMENT = 'delete_finance_document',
|
|
274
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export enum EmbeddingType {
|
|
2
|
+
Document = 'document',
|
|
3
|
+
Line = 'line',
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
export type DocumentEmbedding = {
|
|
7
|
+
id: string;
|
|
8
|
+
documentId: string;
|
|
9
|
+
embedding: number[];
|
|
10
|
+
type: EmbeddingType;
|
|
11
|
+
active: boolean;
|
|
12
|
+
|
|
13
|
+
category?: string;
|
|
14
|
+
lineCategory?: string;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export type DocumentEmbeddingDB = {
|
|
18
|
+
data: Omit<DocumentEmbedding, 'embedding'>;
|
|
19
|
+
embedding: string;
|
|
20
|
+
};
|
package/src/types/legacy.ts
CHANGED