@talkpilot/core-db 1.3.42 → 1.3.43
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/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/test-utils/factories/websitalk/knowledgeDocuments.d.ts +1 -1
- package/dist/test-utils/factories/websitalk/knowledgeDocuments.d.ts.map +1 -1
- package/dist/test-utils/factories/websitalk/knowledgeDocuments.js +4 -4
- package/dist/test-utils/factories/websitalk/knowledgeDocuments.js.map +1 -1
- package/dist/websitalk/knowledgeDocuments/index.d.ts +1 -1
- package/dist/websitalk/knowledgeDocuments/index.d.ts.map +1 -1
- package/dist/websitalk/knowledgeDocuments/index.js +1 -1
- package/dist/websitalk/knowledgeDocuments/index.js.map +1 -1
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.constants.d.ts +3 -2
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.constants.d.ts.map +1 -1
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.constants.js +4 -1
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.constants.js.map +1 -1
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.getters.d.ts.map +1 -1
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.getters.js +5 -14
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.getters.js.map +1 -1
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.types.d.ts +8 -7
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +2 -1
- package/src/test-utils/factories/websitalk/knowledgeDocuments.ts +4 -3
- package/src/websitalk/knowledgeDocuments/__tests__/knowledgeDocuments.spec.ts +68 -5
- package/src/websitalk/knowledgeDocuments/index.ts +1 -1
- package/src/websitalk/knowledgeDocuments/knowledgeDocuments.constants.ts +3 -5
- package/src/websitalk/knowledgeDocuments/knowledgeDocuments.getters.ts +5 -14
- package/src/websitalk/knowledgeDocuments/knowledgeDocuments.types.ts +27 -6
package/dist/index.d.ts
CHANGED
|
@@ -13,7 +13,8 @@ export { websitalkMongodbClient, getDb as getWebsitalkDb, setDb as setWebsitalkD
|
|
|
13
13
|
export * from "./websitalk/scans/scans.getters";
|
|
14
14
|
export type * from "./websitalk/scans/scans.types";
|
|
15
15
|
export * from "./websitalk/websiteUrls";
|
|
16
|
-
export * from "./websitalk/knowledgeDocuments";
|
|
16
|
+
export * from "./websitalk/knowledgeDocuments/knowledgeDocuments.getters";
|
|
17
|
+
export type * from "./websitalk/knowledgeDocuments/knowledgeDocuments.types";
|
|
17
18
|
export { configurationMongodbClient, getDb as getConfigurationDb, setDb as setConfigurationDb, } from "./configuration";
|
|
18
19
|
export * from "./configuration/prompts";
|
|
19
20
|
export * from "./configuration/models";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAE5B,OAAO,EACL,0BAA0B,EAC1B,KAAK,IAAI,kBAAkB,EAC3B,KAAK,IAAI,kBAAkB,EAC3B,QAAQ,IAAI,qBAAqB,GAClC,MAAM,aAAa,CAAC;AACrB,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AAExC,OAAO,EACL,sBAAsB,EACtB,KAAK,IAAI,cAAc,EACvB,KAAK,IAAI,cAAc,EACvB,QAAQ,IAAI,iBAAiB,GAC9B,MAAM,aAAa,CAAC;AACrB,cAAc,iCAAiC,CAAC;AAChD,mBAAmB,+BAA+B,CAAC;AACnD,cAAc,yBAAyB,CAAC;AACxC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAE5B,OAAO,EACL,0BAA0B,EAC1B,KAAK,IAAI,kBAAkB,EAC3B,KAAK,IAAI,kBAAkB,EAC3B,QAAQ,IAAI,qBAAqB,GAClC,MAAM,aAAa,CAAC;AACrB,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AAExC,OAAO,EACL,sBAAsB,EACtB,KAAK,IAAI,cAAc,EACvB,KAAK,IAAI,cAAc,EACvB,QAAQ,IAAI,iBAAiB,GAC9B,MAAM,aAAa,CAAC;AACrB,cAAc,iCAAiC,CAAC;AAChD,mBAAmB,+BAA+B,CAAC;AACnD,cAAc,yBAAyB,CAAC;AACxC,cAAc,2DAA2D,CAAC;AAC1E,mBAAmB,yDAAyD,CAAC;AAE7E,OAAO,EACL,0BAA0B,EAC1B,KAAK,IAAI,kBAAkB,EAC3B,KAAK,IAAI,kBAAkB,GAC5B,MAAM,iBAAiB,CAAC;AACzB,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,YAAY,EAAE,qBAAqB,IAAI,WAAW,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,mBAAmB,IAAI,cAAc,EAAE,MAAM,SAAS,CAAC;AAChE,YAAY,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -38,7 +38,7 @@ Object.defineProperty(exports, "setWebsitalkDb", { enumerable: true, get: functi
|
|
|
38
38
|
Object.defineProperty(exports, "WebsitalkObjectId", { enumerable: true, get: function () { return websitalk_1.ObjectId; } });
|
|
39
39
|
__exportStar(require("./websitalk/scans/scans.getters"), exports);
|
|
40
40
|
__exportStar(require("./websitalk/websiteUrls"), exports);
|
|
41
|
-
__exportStar(require("./websitalk/knowledgeDocuments"), exports);
|
|
41
|
+
__exportStar(require("./websitalk/knowledgeDocuments/knowledgeDocuments.getters"), exports);
|
|
42
42
|
var configuration_1 = require("./configuration");
|
|
43
43
|
Object.defineProperty(exports, "configurationMongodbClient", { enumerable: true, get: function () { return configuration_1.configurationMongodbClient; } });
|
|
44
44
|
Object.defineProperty(exports, "getConfigurationDb", { enumerable: true, get: function () { return configuration_1.getDb; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uBAAuB;AACvB,8CAA4B;AAC5B,+CAA6B;AAC7B,8CAA4B;AAE5B,yCAKqB;AAJnB,uHAAA,0BAA0B,OAAA;AAC1B,+GAAA,KAAK,OAAsB;AAC3B,+GAAA,KAAK,OAAsB;AAC3B,kHAAA,QAAQ,OAAyB;AAEnC,qDAAmC;AACnC,sDAAoC;AACpC,kEAAgD;AAChD,sDAAoC;AACpC,iEAA+C;AAC/C,yDAAuC;AACvC,0DAAwC;AAExC,yCAKqB;AAJnB,mHAAA,sBAAsB,OAAA;AACtB,2GAAA,KAAK,OAAkB;AACvB,2GAAA,KAAK,OAAkB;AACvB,8GAAA,QAAQ,OAAqB;AAE/B,kEAAgD;AAEhD,0DAAwC;AACxC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uBAAuB;AACvB,8CAA4B;AAC5B,+CAA6B;AAC7B,8CAA4B;AAE5B,yCAKqB;AAJnB,uHAAA,0BAA0B,OAAA;AAC1B,+GAAA,KAAK,OAAsB;AAC3B,+GAAA,KAAK,OAAsB;AAC3B,kHAAA,QAAQ,OAAyB;AAEnC,qDAAmC;AACnC,sDAAoC;AACpC,kEAAgD;AAChD,sDAAoC;AACpC,iEAA+C;AAC/C,yDAAuC;AACvC,0DAAwC;AAExC,yCAKqB;AAJnB,mHAAA,sBAAsB,OAAA;AACtB,2GAAA,KAAK,OAAkB;AACvB,2GAAA,KAAK,OAAkB;AACvB,8GAAA,QAAQ,OAAqB;AAE/B,kEAAgD;AAEhD,0DAAwC;AACxC,4FAA0E;AAG1E,iDAIyB;AAHvB,2HAAA,0BAA0B,OAAA;AAC1B,mHAAA,KAAK,OAAsB;AAC3B,mHAAA,KAAK,OAAsB;AAE7B,0DAAwC;AACxC,yDAAuC;AACvC,iEAA+C;AAE/C,mCAAmC;AAA1B,mGAAA,QAAQ,OAAA;AAGjB,mCAAgE;AAAvD,yGAAA,mBAAmB,OAAkB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Factory } from "fishery";
|
|
2
|
-
import {
|
|
2
|
+
import type { KnowledgeDocument } from "../../../websitalk/knowledgeDocuments/knowledgeDocuments.types";
|
|
3
3
|
export declare const knowledgeDocumentFactory: Factory<KnowledgeDocument, any, KnowledgeDocument, import("fishery").DeepPartialObject<KnowledgeDocument>>;
|
|
4
4
|
export declare function createKnowledgeDocumentFixture(overrides?: Partial<KnowledgeDocument>): KnowledgeDocument;
|
|
5
5
|
//# sourceMappingURL=knowledgeDocuments.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledgeDocuments.d.ts","sourceRoot":"","sources":["../../../../src/test-utils/factories/websitalk/knowledgeDocuments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"knowledgeDocuments.d.ts","sourceRoot":"","sources":["../../../../src/test-utils/factories/websitalk/knowledgeDocuments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAOlC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gEAAgE,CAAC;AAExG,eAAO,MAAM,wBAAwB,4GAapC,CAAC;AAEF,wBAAgB,8BAA8B,CAC5C,SAAS,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACrC,iBAAiB,CAEnB"}
|
|
@@ -4,15 +4,15 @@ exports.knowledgeDocumentFactory = void 0;
|
|
|
4
4
|
exports.createKnowledgeDocumentFixture = createKnowledgeDocumentFixture;
|
|
5
5
|
const fishery_1 = require("fishery");
|
|
6
6
|
const faker_1 = require("@faker-js/faker");
|
|
7
|
-
const
|
|
7
|
+
const knowledgeDocuments_constants_1 = require("../../../websitalk/knowledgeDocuments/knowledgeDocuments.constants");
|
|
8
8
|
exports.knowledgeDocumentFactory = fishery_1.Factory.define(() => ({
|
|
9
9
|
clientId: faker_1.faker.string.uuid(),
|
|
10
10
|
filename: `${faker_1.faker.system.fileName()}.pdf`,
|
|
11
|
-
contentType:
|
|
12
|
-
fileType:
|
|
11
|
+
contentType: knowledgeDocuments_constants_1.KNOWLEDGE_CONTENT_TYPES.PDF,
|
|
12
|
+
fileType: knowledgeDocuments_constants_1.KNOWLEDGE_FILE_TYPES.PDF,
|
|
13
13
|
storagePath: `websitalk/knowledge_files/${faker_1.faker.string.uuid()}/original.pdf`,
|
|
14
14
|
byteSize: faker_1.faker.number.int({ min: 1024, max: 5_000_000 }),
|
|
15
|
-
status:
|
|
15
|
+
status: knowledgeDocuments_constants_1.KNOWLEDGE_DOCUMENT_STATUSES.UPLOADING,
|
|
16
16
|
progressPercent: 0,
|
|
17
17
|
createdAt: new Date(),
|
|
18
18
|
updatedAt: new Date(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledgeDocuments.js","sourceRoot":"","sources":["../../../../src/test-utils/factories/websitalk/knowledgeDocuments.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"knowledgeDocuments.js","sourceRoot":"","sources":["../../../../src/test-utils/factories/websitalk/knowledgeDocuments.ts"],"names":[],"mappings":";;;AAwBA,wEAIC;AA5BD,qCAAkC;AAClC,2CAAwC;AACxC,qHAI4E;AAG/D,QAAA,wBAAwB,GAAG,iBAAO,CAAC,MAAM,CACpD,GAAG,EAAE,CAAC,CAAC;IACL,QAAQ,EAAE,aAAK,CAAC,MAAM,CAAC,IAAI,EAAE;IAC7B,QAAQ,EAAE,GAAG,aAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM;IAC1C,WAAW,EAAE,sDAAuB,CAAC,GAAG;IACxC,QAAQ,EAAE,mDAAoB,CAAC,GAAG;IAClC,WAAW,EAAE,6BAA6B,aAAK,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe;IAC5E,QAAQ,EAAE,aAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;IACzD,MAAM,EAAE,0DAA2B,CAAC,SAAS;IAC7C,eAAe,EAAE,CAAC;IAClB,SAAS,EAAE,IAAI,IAAI,EAAE;IACrB,SAAS,EAAE,IAAI,IAAI,EAAE;CACtB,CAAC,CACH,CAAC;AAEF,SAAgB,8BAA8B,CAC5C,SAAsC;IAEtC,OAAO,gCAAwB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/websitalk/knowledgeDocuments/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/websitalk/knowledgeDocuments/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC"}
|
|
@@ -15,6 +15,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./knowledgeDocuments.constants"), exports);
|
|
18
|
-
__exportStar(require("./knowledgeDocuments.types"), exports);
|
|
19
18
|
__exportStar(require("./knowledgeDocuments.getters"), exports);
|
|
19
|
+
__exportStar(require("./knowledgeDocuments.types"), exports);
|
|
20
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/websitalk/knowledgeDocuments/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iEAA+C;AAC/C,6DAA2C
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/websitalk/knowledgeDocuments/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iEAA+C;AAC/C,+DAA6C;AAC7C,6DAA2C"}
|
|
@@ -6,9 +6,10 @@ export declare const KNOWLEDGE_DOCUMENT_STATUSES: {
|
|
|
6
6
|
readonly READY: "READY";
|
|
7
7
|
readonly FAILED: "FAILED";
|
|
8
8
|
};
|
|
9
|
-
export type KnowledgeDocumentStatus = (typeof KNOWLEDGE_DOCUMENT_STATUSES)[keyof typeof KNOWLEDGE_DOCUMENT_STATUSES];
|
|
10
9
|
export declare const KNOWLEDGE_FILE_TYPES: {
|
|
11
10
|
readonly PDF: "pdf";
|
|
12
11
|
};
|
|
13
|
-
export
|
|
12
|
+
export declare const KNOWLEDGE_CONTENT_TYPES: {
|
|
13
|
+
readonly PDF: "application/pdf";
|
|
14
|
+
};
|
|
14
15
|
//# sourceMappingURL=knowledgeDocuments.constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledgeDocuments.constants.d.ts","sourceRoot":"","sources":["../../../src/websitalk/knowledgeDocuments/knowledgeDocuments.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,8BAA8B,uBAAuB,CAAC;AAEnE,eAAO,MAAM,2BAA2B;;;;;;CAM9B,CAAC;AAEX,
|
|
1
|
+
{"version":3,"file":"knowledgeDocuments.constants.d.ts","sourceRoot":"","sources":["../../../src/websitalk/knowledgeDocuments/knowledgeDocuments.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,8BAA8B,uBAAuB,CAAC;AAEnE,eAAO,MAAM,2BAA2B;;;;;;CAM9B,CAAC;AAEX,eAAO,MAAM,oBAAoB;;CAEvB,CAAC;AAEX,eAAO,MAAM,uBAAuB;;CAE1B,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.KNOWLEDGE_FILE_TYPES = exports.KNOWLEDGE_DOCUMENT_STATUSES = exports.KNOWLEDGE_DOCUMENTS_COLLECTION = void 0;
|
|
3
|
+
exports.KNOWLEDGE_CONTENT_TYPES = exports.KNOWLEDGE_FILE_TYPES = exports.KNOWLEDGE_DOCUMENT_STATUSES = exports.KNOWLEDGE_DOCUMENTS_COLLECTION = void 0;
|
|
4
4
|
exports.KNOWLEDGE_DOCUMENTS_COLLECTION = "knowledgeDocuments";
|
|
5
5
|
exports.KNOWLEDGE_DOCUMENT_STATUSES = {
|
|
6
6
|
UPLOADING: "UPLOADING",
|
|
@@ -12,4 +12,7 @@ exports.KNOWLEDGE_DOCUMENT_STATUSES = {
|
|
|
12
12
|
exports.KNOWLEDGE_FILE_TYPES = {
|
|
13
13
|
PDF: "pdf",
|
|
14
14
|
};
|
|
15
|
+
exports.KNOWLEDGE_CONTENT_TYPES = {
|
|
16
|
+
PDF: "application/pdf",
|
|
17
|
+
};
|
|
15
18
|
//# sourceMappingURL=knowledgeDocuments.constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledgeDocuments.constants.js","sourceRoot":"","sources":["../../../src/websitalk/knowledgeDocuments/knowledgeDocuments.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,8BAA8B,GAAG,oBAAoB,CAAC;AAEtD,QAAA,2BAA2B,GAAG;IACzC,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY;IACxB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;CACR,CAAC;
|
|
1
|
+
{"version":3,"file":"knowledgeDocuments.constants.js","sourceRoot":"","sources":["../../../src/websitalk/knowledgeDocuments/knowledgeDocuments.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,8BAA8B,GAAG,oBAAoB,CAAC;AAEtD,QAAA,2BAA2B,GAAG;IACzC,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY;IACxB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;CACR,CAAC;AAEE,QAAA,oBAAoB,GAAG;IAClC,GAAG,EAAE,KAAK;CACF,CAAC;AAEE,QAAA,uBAAuB,GAAG;IACrC,GAAG,EAAE,iBAAiB;CACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledgeDocuments.getters.d.ts","sourceRoot":"","sources":["../../../src/websitalk/knowledgeDocuments/knowledgeDocuments.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AAMhE,OAAO,KAAK,EACV,4BAA4B,EAC5B,iBAAiB,EACjB,oBAAoB,EACpB,4BAA4B,EAC7B,MAAM,4BAA4B,CAAC;AAEpC,eAAO,MAAM,+BAA+B,QAAO,UAAU,CAAC,iBAAiB,CAE9E,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,OAAO,4BAA4B,KAClC,OAAO,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"knowledgeDocuments.getters.d.ts","sourceRoot":"","sources":["../../../src/websitalk/knowledgeDocuments/knowledgeDocuments.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AAMhE,OAAO,KAAK,EACV,4BAA4B,EAC5B,iBAAiB,EACjB,oBAAoB,EACpB,4BAA4B,EAC7B,MAAM,4BAA4B,CAAC;AAEpC,eAAO,MAAM,+BAA+B,QAAO,UAAU,CAAC,iBAAiB,CAE9E,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,OAAO,4BAA4B,KAClC,OAAO,CAAC,aAAa,CAWvB,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,IAAI,MAAM,KACT,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAErC,CAAC;AAEF,eAAO,MAAM,gCAAgC,GAC3C,UAAU,MAAM,KACf,OAAO,CAAC,oBAAoB,EAAE,CAKhC,CAAC;AAEF,eAAO,MAAM,uCAAuC,GAClD,UAAU,MAAM,KACf,OAAO,CAAC,MAAM,EAAE,CASlB,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,IAAI,MAAM,EACV,SAAS,4BAA4B,KACpC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAMrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAU,IAAI,MAAM,KAAG,OAAO,CAAC,OAAO,CAKzE,CAAC"}
|
|
@@ -9,21 +9,11 @@ const getKnowledgeDocumentsCollection = () => {
|
|
|
9
9
|
exports.getKnowledgeDocumentsCollection = getKnowledgeDocumentsCollection;
|
|
10
10
|
const createKnowledgeDocument = async (input) => {
|
|
11
11
|
const now = new Date();
|
|
12
|
+
const { status, progressPercent, ...rest } = input;
|
|
12
13
|
const { insertedId } = await (0, exports.getKnowledgeDocumentsCollection)().insertOne({
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
fileType: input.fileType,
|
|
17
|
-
storagePath: input.storagePath,
|
|
18
|
-
markdownStoragePath: input.markdownStoragePath,
|
|
19
|
-
byteSize: input.byteSize,
|
|
20
|
-
pageCount: input.pageCount,
|
|
21
|
-
pagesExtracted: input.pagesExtracted,
|
|
22
|
-
charCount: input.charCount,
|
|
23
|
-
contentHash: input.contentHash,
|
|
24
|
-
status: input.status ?? knowledgeDocuments_constants_1.KNOWLEDGE_DOCUMENT_STATUSES.UPLOADING,
|
|
25
|
-
errorMessage: input.errorMessage,
|
|
26
|
-
progressPercent: input.progressPercent ?? 0,
|
|
14
|
+
...rest,
|
|
15
|
+
status: status ?? knowledgeDocuments_constants_1.KNOWLEDGE_DOCUMENT_STATUSES.UPLOADING,
|
|
16
|
+
progressPercent: progressPercent ?? 0,
|
|
27
17
|
createdAt: now,
|
|
28
18
|
updatedAt: now,
|
|
29
19
|
});
|
|
@@ -44,6 +34,7 @@ exports.listKnowledgeDocumentsByClientId = listKnowledgeDocumentsByClientId;
|
|
|
44
34
|
const listReadyKnowledgeDocumentIdsByClientId = async (clientId) => {
|
|
45
35
|
const docs = await (0, exports.getKnowledgeDocumentsCollection)()
|
|
46
36
|
.find({ clientId, status: knowledgeDocuments_constants_1.KNOWLEDGE_DOCUMENT_STATUSES.READY }, { projection: { _id: 1 } })
|
|
37
|
+
.sort({ createdAt: -1 })
|
|
47
38
|
.toArray();
|
|
48
39
|
return docs.map((doc) => doc._id.toString());
|
|
49
40
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledgeDocuments.getters.js","sourceRoot":"","sources":["../../../src/websitalk/knowledgeDocuments/knowledgeDocuments.getters.ts"],"names":[],"mappings":";;;AACA,oCAA2C;AAC3C,iFAGwC;AAQjC,MAAM,+BAA+B,GAAG,GAAkC,EAAE;IACjF,OAAO,IAAA,aAAK,GAAE,CAAC,UAAU,CAAoB,6DAA8B,CAAC,CAAC;AAC/E,CAAC,CAAC;AAFW,QAAA,+BAA+B,mCAE1C;AAEK,MAAM,uBAAuB,GAAG,KAAK,EAC1C,KAAmC,EACX,EAAE;IAC1B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"knowledgeDocuments.getters.js","sourceRoot":"","sources":["../../../src/websitalk/knowledgeDocuments/knowledgeDocuments.getters.ts"],"names":[],"mappings":";;;AACA,oCAA2C;AAC3C,iFAGwC;AAQjC,MAAM,+BAA+B,GAAG,GAAkC,EAAE;IACjF,OAAO,IAAA,aAAK,GAAE,CAAC,UAAU,CAAoB,6DAA8B,CAAC,CAAC;AAC/E,CAAC,CAAC;AAFW,QAAA,+BAA+B,mCAE1C;AAEK,MAAM,uBAAuB,GAAG,KAAK,EAC1C,KAAmC,EACX,EAAE;IAC1B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IACnD,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,uCAA+B,GAAE,CAAC,SAAS,CAAC;QACvE,GAAG,IAAI;QACP,MAAM,EAAE,MAAM,IAAI,0DAA2B,CAAC,SAAS;QACvD,eAAe,EAAE,eAAe,IAAI,CAAC;QACrC,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf,CAAC,CAAC;IACH,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAbW,QAAA,uBAAuB,2BAalC;AAEK,MAAM,wBAAwB,GAAG,KAAK,EAC3C,EAAU,EAC4B,EAAE;IACxC,OAAO,IAAA,uCAA+B,GAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,gBAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9E,CAAC,CAAC;AAJW,QAAA,wBAAwB,4BAInC;AAEK,MAAM,gCAAgC,GAAG,KAAK,EACnD,QAAgB,EACiB,EAAE;IACnC,OAAO,IAAA,uCAA+B,GAAE;SACrC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;SAClB,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC;SACvB,OAAO,EAAE,CAAC;AACf,CAAC,CAAC;AAPW,QAAA,gCAAgC,oCAO3C;AAEK,MAAM,uCAAuC,GAAG,KAAK,EAC1D,QAAgB,EACG,EAAE;IACrB,MAAM,IAAI,GAAG,MAAM,IAAA,uCAA+B,GAAE;SACjD,IAAI,CACH,EAAE,QAAQ,EAAE,MAAM,EAAE,0DAA2B,CAAC,KAAK,EAAE,EACvD,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAC3B;SACA,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC;SACvB,OAAO,EAAE,CAAC;IACb,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/C,CAAC,CAAC;AAXW,QAAA,uCAAuC,2CAWlD;AAEK,MAAM,uBAAuB,GAAG,KAAK,EAC1C,EAAU,EACV,OAAqC,EACC,EAAE;IACxC,OAAO,IAAA,uCAA+B,GAAE,CAAC,gBAAgB,CACvD,EAAE,GAAG,EAAE,IAAI,gBAAQ,CAAC,EAAE,CAAC,EAAE,EACzB,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAC/C,EAAE,cAAc,EAAE,OAAO,EAAE,CAC5B,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,uBAAuB,2BASlC;AAEK,MAAM,uBAAuB,GAAG,KAAK,EAAE,EAAU,EAAoB,EAAE;IAC5E,MAAM,MAAM,GAAG,MAAM,IAAA,uCAA+B,GAAE,CAAC,SAAS,CAAC;QAC/D,GAAG,EAAE,IAAI,gBAAQ,CAAC,EAAE,CAAC;KACtB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,YAAY,KAAK,CAAC,CAAC;AACnC,CAAC,CAAC;AALW,QAAA,uBAAuB,2BAKlC"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type {
|
|
1
|
+
import { WithId } from "mongodb";
|
|
2
|
+
import type { KNOWLEDGE_CONTENT_TYPES, KNOWLEDGE_DOCUMENT_STATUSES, KNOWLEDGE_FILE_TYPES } from "./knowledgeDocuments.constants";
|
|
3
|
+
export type KnowledgeDocumentStatus = (typeof KNOWLEDGE_DOCUMENT_STATUSES)[keyof typeof KNOWLEDGE_DOCUMENT_STATUSES];
|
|
4
|
+
export type KnowledgeFileType = (typeof KNOWLEDGE_FILE_TYPES)[keyof typeof KNOWLEDGE_FILE_TYPES];
|
|
5
|
+
export type KnowledgeContentType = (typeof KNOWLEDGE_CONTENT_TYPES)[keyof typeof KNOWLEDGE_CONTENT_TYPES];
|
|
3
6
|
export type KnowledgeDocument = {
|
|
4
7
|
clientId: string;
|
|
5
8
|
filename: string;
|
|
6
|
-
contentType:
|
|
9
|
+
contentType: KnowledgeContentType;
|
|
7
10
|
fileType: KnowledgeFileType;
|
|
8
11
|
storagePath: string;
|
|
9
12
|
markdownStoragePath?: string;
|
|
@@ -18,12 +21,10 @@ export type KnowledgeDocument = {
|
|
|
18
21
|
createdAt: Date;
|
|
19
22
|
updatedAt: Date;
|
|
20
23
|
};
|
|
21
|
-
export type KnowledgeDocumentDoc = KnowledgeDocument
|
|
22
|
-
_id: ObjectId;
|
|
23
|
-
};
|
|
24
|
+
export type KnowledgeDocumentDoc = WithId<KnowledgeDocument>;
|
|
24
25
|
export type CreateKnowledgeDocumentInput = Omit<KnowledgeDocument, "createdAt" | "updatedAt" | "progressPercent" | "status"> & {
|
|
25
26
|
status?: KnowledgeDocumentStatus;
|
|
26
27
|
progressPercent?: number;
|
|
27
28
|
};
|
|
28
|
-
export type UpdateKnowledgeDocumentInput = Partial<
|
|
29
|
+
export type UpdateKnowledgeDocumentInput = Partial<Pick<KnowledgeDocument, "markdownStoragePath" | "pageCount" | "pagesExtracted" | "charCount" | "contentHash" | "status" | "errorMessage" | "progressPercent">>;
|
|
29
30
|
//# sourceMappingURL=knowledgeDocuments.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledgeDocuments.types.d.ts","sourceRoot":"","sources":["../../../src/websitalk/knowledgeDocuments/knowledgeDocuments.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"knowledgeDocuments.types.d.ts","sourceRoot":"","sources":["../../../src/websitalk/knowledgeDocuments/knowledgeDocuments.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,KAAK,EACV,uBAAuB,EACvB,2BAA2B,EAC3B,oBAAoB,EACrB,MAAM,gCAAgC,CAAC;AAExC,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,OAAO,2BAA2B,CAAC,CAAC;AAEjF,MAAM,MAAM,iBAAiB,GAC3B,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEnE,MAAM,MAAM,oBAAoB,GAC9B,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,OAAO,uBAAuB,CAAC,CAAC;AAEzE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,oBAAoB,CAAC;IAClC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,uBAAuB,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAE7D,MAAM,MAAM,4BAA4B,GAAG,IAAI,CAC7C,iBAAiB,EACjB,WAAW,GAAG,WAAW,GAAG,iBAAiB,GAAG,QAAQ,CACzD,GAAG;IACF,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAChD,IAAI,CACF,iBAAiB,EACf,qBAAqB,GACrB,WAAW,GACX,gBAAgB,GAChB,WAAW,GACX,aAAa,GACb,QAAQ,GACR,cAAc,GACd,iBAAiB,CACpB,CACF,CAAC"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -26,7 +26,8 @@ export {
|
|
|
26
26
|
export * from "./websitalk/scans/scans.getters";
|
|
27
27
|
export type * from "./websitalk/scans/scans.types";
|
|
28
28
|
export * from "./websitalk/websiteUrls";
|
|
29
|
-
export * from "./websitalk/knowledgeDocuments";
|
|
29
|
+
export * from "./websitalk/knowledgeDocuments/knowledgeDocuments.getters";
|
|
30
|
+
export type * from "./websitalk/knowledgeDocuments/knowledgeDocuments.types";
|
|
30
31
|
|
|
31
32
|
export {
|
|
32
33
|
configurationMongodbClient,
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { Factory } from "fishery";
|
|
2
2
|
import { faker } from "@faker-js/faker";
|
|
3
3
|
import {
|
|
4
|
+
KNOWLEDGE_CONTENT_TYPES,
|
|
4
5
|
KNOWLEDGE_DOCUMENT_STATUSES,
|
|
5
6
|
KNOWLEDGE_FILE_TYPES,
|
|
6
|
-
|
|
7
|
-
} from "../../../websitalk/knowledgeDocuments";
|
|
7
|
+
} from "../../../websitalk/knowledgeDocuments/knowledgeDocuments.constants";
|
|
8
|
+
import type { KnowledgeDocument } from "../../../websitalk/knowledgeDocuments/knowledgeDocuments.types";
|
|
8
9
|
|
|
9
10
|
export const knowledgeDocumentFactory = Factory.define<KnowledgeDocument>(
|
|
10
11
|
() => ({
|
|
11
12
|
clientId: faker.string.uuid(),
|
|
12
13
|
filename: `${faker.system.fileName()}.pdf`,
|
|
13
|
-
contentType:
|
|
14
|
+
contentType: KNOWLEDGE_CONTENT_TYPES.PDF,
|
|
14
15
|
fileType: KNOWLEDGE_FILE_TYPES.PDF,
|
|
15
16
|
storagePath: `websitalk/knowledge_files/${faker.string.uuid()}/original.pdf`,
|
|
16
17
|
byteSize: faker.number.int({ min: 1024, max: 5_000_000 }),
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
+
KNOWLEDGE_CONTENT_TYPES,
|
|
2
3
|
KNOWLEDGE_DOCUMENT_STATUSES,
|
|
3
4
|
KNOWLEDGE_FILE_TYPES,
|
|
4
5
|
} from "../knowledgeDocuments.constants";
|
|
@@ -15,13 +16,14 @@ import { createKnowledgeDocumentFixture } from "../../../test-utils/factories/we
|
|
|
15
16
|
|
|
16
17
|
describe("db.websitalk.knowledgeDocuments", () => {
|
|
17
18
|
const clientId = "test-client";
|
|
19
|
+
const nonExistentId = "507f1f77bcf86cd799439011";
|
|
18
20
|
|
|
19
21
|
describe("createKnowledgeDocument", () => {
|
|
20
22
|
it("should create a knowledge document", async () => {
|
|
21
23
|
const id = await createKnowledgeDocument({
|
|
22
24
|
clientId,
|
|
23
25
|
filename: "faq.pdf",
|
|
24
|
-
contentType:
|
|
26
|
+
contentType: KNOWLEDGE_CONTENT_TYPES.PDF,
|
|
25
27
|
fileType: KNOWLEDGE_FILE_TYPES.PDF,
|
|
26
28
|
storagePath: "websitalk/knowledge_files/test/faq.pdf",
|
|
27
29
|
byteSize: 2048,
|
|
@@ -40,6 +42,12 @@ describe("db.websitalk.knowledgeDocuments", () => {
|
|
|
40
42
|
});
|
|
41
43
|
});
|
|
42
44
|
|
|
45
|
+
describe("getKnowledgeDocumentById", () => {
|
|
46
|
+
it("should throw for an invalid id", async () => {
|
|
47
|
+
await expect(getKnowledgeDocumentById("invalid-id")).rejects.toThrow();
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
|
|
43
51
|
describe("listKnowledgeDocumentsByClientId", () => {
|
|
44
52
|
it("should return documents for a client only", async () => {
|
|
45
53
|
await getKnowledgeDocumentsCollection().insertMany([
|
|
@@ -58,14 +66,45 @@ describe("db.websitalk.knowledgeDocuments", () => {
|
|
|
58
66
|
"b.pdf",
|
|
59
67
|
]);
|
|
60
68
|
});
|
|
69
|
+
|
|
70
|
+
it("should return documents sorted by createdAt descending", async () => {
|
|
71
|
+
await getKnowledgeDocumentsCollection().insertMany([
|
|
72
|
+
createKnowledgeDocumentFixture({
|
|
73
|
+
clientId,
|
|
74
|
+
filename: "older.pdf",
|
|
75
|
+
createdAt: new Date("2024-01-01"),
|
|
76
|
+
updatedAt: new Date("2024-01-01"),
|
|
77
|
+
}),
|
|
78
|
+
createKnowledgeDocumentFixture({
|
|
79
|
+
clientId,
|
|
80
|
+
filename: "newer.pdf",
|
|
81
|
+
createdAt: new Date("2024-06-01"),
|
|
82
|
+
updatedAt: new Date("2024-06-01"),
|
|
83
|
+
}),
|
|
84
|
+
]);
|
|
85
|
+
|
|
86
|
+
const results = await listKnowledgeDocumentsByClientId(clientId);
|
|
87
|
+
expect(results.map((doc) => doc.filename)).toEqual([
|
|
88
|
+
"newer.pdf",
|
|
89
|
+
"older.pdf",
|
|
90
|
+
]);
|
|
91
|
+
});
|
|
61
92
|
});
|
|
62
93
|
|
|
63
94
|
describe("listReadyKnowledgeDocumentIdsByClientId", () => {
|
|
64
|
-
it("should return only READY document ids", async () => {
|
|
95
|
+
it("should return only READY document ids sorted by createdAt descending", async () => {
|
|
65
96
|
await getKnowledgeDocumentsCollection().insertMany([
|
|
66
97
|
createKnowledgeDocumentFixture({
|
|
67
98
|
clientId,
|
|
68
99
|
status: KNOWLEDGE_DOCUMENT_STATUSES.READY,
|
|
100
|
+
createdAt: new Date("2024-01-01"),
|
|
101
|
+
updatedAt: new Date("2024-01-01"),
|
|
102
|
+
}),
|
|
103
|
+
createKnowledgeDocumentFixture({
|
|
104
|
+
clientId,
|
|
105
|
+
status: KNOWLEDGE_DOCUMENT_STATUSES.READY,
|
|
106
|
+
createdAt: new Date("2024-06-01"),
|
|
107
|
+
updatedAt: new Date("2024-06-01"),
|
|
69
108
|
}),
|
|
70
109
|
createKnowledgeDocumentFixture({
|
|
71
110
|
clientId,
|
|
@@ -77,8 +116,15 @@ describe("db.websitalk.knowledgeDocuments", () => {
|
|
|
77
116
|
}),
|
|
78
117
|
]);
|
|
79
118
|
|
|
119
|
+
const readyDocs = await getKnowledgeDocumentsCollection()
|
|
120
|
+
.find({ clientId, status: KNOWLEDGE_DOCUMENT_STATUSES.READY })
|
|
121
|
+
.sort({ createdAt: -1 })
|
|
122
|
+
.toArray();
|
|
123
|
+
const expectedIds = readyDocs.map((doc) => doc._id.toString());
|
|
124
|
+
|
|
80
125
|
const ids = await listReadyKnowledgeDocumentIdsByClientId(clientId);
|
|
81
|
-
expect(ids).toHaveLength(
|
|
126
|
+
expect(ids).toHaveLength(2);
|
|
127
|
+
expect(ids).toEqual(expectedIds);
|
|
82
128
|
});
|
|
83
129
|
});
|
|
84
130
|
|
|
@@ -87,12 +133,14 @@ describe("db.websitalk.knowledgeDocuments", () => {
|
|
|
87
133
|
const id = await createKnowledgeDocument({
|
|
88
134
|
clientId,
|
|
89
135
|
filename: "doc.pdf",
|
|
90
|
-
contentType:
|
|
136
|
+
contentType: KNOWLEDGE_CONTENT_TYPES.PDF,
|
|
91
137
|
fileType: KNOWLEDGE_FILE_TYPES.PDF,
|
|
92
138
|
storagePath: "websitalk/knowledge_files/test/doc.pdf",
|
|
93
139
|
byteSize: 100,
|
|
94
140
|
});
|
|
95
141
|
|
|
142
|
+
const before = await getKnowledgeDocumentById(id.toString());
|
|
143
|
+
|
|
96
144
|
const updated = await updateKnowledgeDocument(id.toString(), {
|
|
97
145
|
status: KNOWLEDGE_DOCUMENT_STATUSES.READY,
|
|
98
146
|
progressPercent: 100,
|
|
@@ -102,6 +150,17 @@ describe("db.websitalk.knowledgeDocuments", () => {
|
|
|
102
150
|
expect(updated?.status).toBe(KNOWLEDGE_DOCUMENT_STATUSES.READY);
|
|
103
151
|
expect(updated?.progressPercent).toBe(100);
|
|
104
152
|
expect(updated?.pageCount).toBe(12);
|
|
153
|
+
expect(updated?.updatedAt.getTime()).toBeGreaterThanOrEqual(
|
|
154
|
+
before!.updatedAt.getTime(),
|
|
155
|
+
);
|
|
156
|
+
});
|
|
157
|
+
|
|
158
|
+
it("should return null when the document does not exist", async () => {
|
|
159
|
+
expect(
|
|
160
|
+
await updateKnowledgeDocument(nonExistentId, {
|
|
161
|
+
status: KNOWLEDGE_DOCUMENT_STATUSES.READY,
|
|
162
|
+
}),
|
|
163
|
+
).toBeNull();
|
|
105
164
|
});
|
|
106
165
|
});
|
|
107
166
|
|
|
@@ -110,7 +169,7 @@ describe("db.websitalk.knowledgeDocuments", () => {
|
|
|
110
169
|
const id = await createKnowledgeDocument({
|
|
111
170
|
clientId: "delete-client",
|
|
112
171
|
filename: "gone.pdf",
|
|
113
|
-
contentType:
|
|
172
|
+
contentType: KNOWLEDGE_CONTENT_TYPES.PDF,
|
|
114
173
|
fileType: KNOWLEDGE_FILE_TYPES.PDF,
|
|
115
174
|
storagePath: "websitalk/knowledge_files/delete/gone.pdf",
|
|
116
175
|
byteSize: 10,
|
|
@@ -119,5 +178,9 @@ describe("db.websitalk.knowledgeDocuments", () => {
|
|
|
119
178
|
expect(await deleteKnowledgeDocument(id.toString())).toBe(true);
|
|
120
179
|
expect(await getKnowledgeDocumentById(id.toString())).toBeNull();
|
|
121
180
|
});
|
|
181
|
+
|
|
182
|
+
it("should return false when the document does not exist", async () => {
|
|
183
|
+
expect(await deleteKnowledgeDocument(nonExistentId)).toBe(false);
|
|
184
|
+
});
|
|
122
185
|
});
|
|
123
186
|
});
|
|
@@ -8,12 +8,10 @@ export const KNOWLEDGE_DOCUMENT_STATUSES = {
|
|
|
8
8
|
FAILED: "FAILED",
|
|
9
9
|
} as const;
|
|
10
10
|
|
|
11
|
-
export type KnowledgeDocumentStatus =
|
|
12
|
-
(typeof KNOWLEDGE_DOCUMENT_STATUSES)[keyof typeof KNOWLEDGE_DOCUMENT_STATUSES];
|
|
13
|
-
|
|
14
11
|
export const KNOWLEDGE_FILE_TYPES = {
|
|
15
12
|
PDF: "pdf",
|
|
16
13
|
} as const;
|
|
17
14
|
|
|
18
|
-
export
|
|
19
|
-
|
|
15
|
+
export const KNOWLEDGE_CONTENT_TYPES = {
|
|
16
|
+
PDF: "application/pdf",
|
|
17
|
+
} as const;
|
|
@@ -19,21 +19,11 @@ export const createKnowledgeDocument = async (
|
|
|
19
19
|
input: CreateKnowledgeDocumentInput,
|
|
20
20
|
): Promise<MongoObjectId> => {
|
|
21
21
|
const now = new Date();
|
|
22
|
+
const { status, progressPercent, ...rest } = input;
|
|
22
23
|
const { insertedId } = await getKnowledgeDocumentsCollection().insertOne({
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
fileType: input.fileType,
|
|
27
|
-
storagePath: input.storagePath,
|
|
28
|
-
markdownStoragePath: input.markdownStoragePath,
|
|
29
|
-
byteSize: input.byteSize,
|
|
30
|
-
pageCount: input.pageCount,
|
|
31
|
-
pagesExtracted: input.pagesExtracted,
|
|
32
|
-
charCount: input.charCount,
|
|
33
|
-
contentHash: input.contentHash,
|
|
34
|
-
status: input.status ?? KNOWLEDGE_DOCUMENT_STATUSES.UPLOADING,
|
|
35
|
-
errorMessage: input.errorMessage,
|
|
36
|
-
progressPercent: input.progressPercent ?? 0,
|
|
24
|
+
...rest,
|
|
25
|
+
status: status ?? KNOWLEDGE_DOCUMENT_STATUSES.UPLOADING,
|
|
26
|
+
progressPercent: progressPercent ?? 0,
|
|
37
27
|
createdAt: now,
|
|
38
28
|
updatedAt: now,
|
|
39
29
|
});
|
|
@@ -63,6 +53,7 @@ export const listReadyKnowledgeDocumentIdsByClientId = async (
|
|
|
63
53
|
{ clientId, status: KNOWLEDGE_DOCUMENT_STATUSES.READY },
|
|
64
54
|
{ projection: { _id: 1 } },
|
|
65
55
|
)
|
|
56
|
+
.sort({ createdAt: -1 })
|
|
66
57
|
.toArray();
|
|
67
58
|
return docs.map((doc) => doc._id.toString());
|
|
68
59
|
};
|
|
@@ -1,13 +1,24 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { WithId } from "mongodb";
|
|
2
|
+
|
|
2
3
|
import type {
|
|
3
|
-
|
|
4
|
-
|
|
4
|
+
KNOWLEDGE_CONTENT_TYPES,
|
|
5
|
+
KNOWLEDGE_DOCUMENT_STATUSES,
|
|
6
|
+
KNOWLEDGE_FILE_TYPES,
|
|
5
7
|
} from "./knowledgeDocuments.constants";
|
|
6
8
|
|
|
9
|
+
export type KnowledgeDocumentStatus =
|
|
10
|
+
(typeof KNOWLEDGE_DOCUMENT_STATUSES)[keyof typeof KNOWLEDGE_DOCUMENT_STATUSES];
|
|
11
|
+
|
|
12
|
+
export type KnowledgeFileType =
|
|
13
|
+
(typeof KNOWLEDGE_FILE_TYPES)[keyof typeof KNOWLEDGE_FILE_TYPES];
|
|
14
|
+
|
|
15
|
+
export type KnowledgeContentType =
|
|
16
|
+
(typeof KNOWLEDGE_CONTENT_TYPES)[keyof typeof KNOWLEDGE_CONTENT_TYPES];
|
|
17
|
+
|
|
7
18
|
export type KnowledgeDocument = {
|
|
8
19
|
clientId: string;
|
|
9
20
|
filename: string;
|
|
10
|
-
contentType:
|
|
21
|
+
contentType: KnowledgeContentType;
|
|
11
22
|
fileType: KnowledgeFileType;
|
|
12
23
|
storagePath: string;
|
|
13
24
|
markdownStoragePath?: string;
|
|
@@ -23,7 +34,7 @@ export type KnowledgeDocument = {
|
|
|
23
34
|
updatedAt: Date;
|
|
24
35
|
};
|
|
25
36
|
|
|
26
|
-
export type KnowledgeDocumentDoc = KnowledgeDocument
|
|
37
|
+
export type KnowledgeDocumentDoc = WithId<KnowledgeDocument>;
|
|
27
38
|
|
|
28
39
|
export type CreateKnowledgeDocumentInput = Omit<
|
|
29
40
|
KnowledgeDocument,
|
|
@@ -34,5 +45,15 @@ export type CreateKnowledgeDocumentInput = Omit<
|
|
|
34
45
|
};
|
|
35
46
|
|
|
36
47
|
export type UpdateKnowledgeDocumentInput = Partial<
|
|
37
|
-
|
|
48
|
+
Pick<
|
|
49
|
+
KnowledgeDocument,
|
|
50
|
+
| "markdownStoragePath"
|
|
51
|
+
| "pageCount"
|
|
52
|
+
| "pagesExtracted"
|
|
53
|
+
| "charCount"
|
|
54
|
+
| "contentHash"
|
|
55
|
+
| "status"
|
|
56
|
+
| "errorMessage"
|
|
57
|
+
| "progressPercent"
|
|
58
|
+
>
|
|
38
59
|
>;
|