@talkpilot/core-db 1.3.39 → 1.3.41
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/.cursor/rules/development.mdc +65 -65
- package/DEVELOPMENT.md +141 -141
- package/README.md +706 -721
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/talkpilot/calls/calls.types.d.ts +0 -1
- package/dist/talkpilot/calls/calls.types.d.ts.map +1 -1
- package/dist/talkpilot/clients/clients.quota.constants.d.ts +2 -0
- package/dist/talkpilot/clients/clients.quota.constants.d.ts.map +1 -0
- package/dist/talkpilot/clients/clients.quota.constants.js +5 -0
- package/dist/talkpilot/clients/clients.quota.constants.js.map +1 -0
- package/dist/talkpilot/clients/clients.quota.utils.d.ts +8 -0
- package/dist/talkpilot/clients/clients.quota.utils.d.ts.map +1 -0
- package/dist/talkpilot/clients/clients.quota.utils.js +45 -0
- package/dist/talkpilot/clients/clients.quota.utils.js.map +1 -0
- package/dist/talkpilot/clientsConfig/clientsConfig.getters.d.ts +0 -39
- package/dist/talkpilot/clientsConfig/clientsConfig.getters.d.ts.map +1 -1
- package/dist/talkpilot/clientsConfig/clientsConfig.getters.js +1 -92
- package/dist/talkpilot/clientsConfig/clientsConfig.getters.js.map +1 -1
- package/dist/talkpilot/clientsConfig/clientsConfig.types.d.ts +0 -4
- package/dist/talkpilot/clientsConfig/clientsConfig.types.d.ts.map +1 -1
- package/dist/talkpilot/clientsConfig/index.d.ts +0 -1
- package/dist/talkpilot/clientsConfig/index.d.ts.map +1 -1
- package/dist/talkpilot/clientsConfig/index.js +0 -1
- package/dist/talkpilot/clientsConfig/index.js.map +1 -1
- package/dist/test-utils/factories/index.d.ts +1 -0
- package/dist/test-utils/factories/index.d.ts.map +1 -1
- package/dist/test-utils/factories/index.js +1 -0
- package/dist/test-utils/factories/index.js.map +1 -1
- package/dist/test-utils/factories/websitalk/knowledgeDocuments.d.ts +5 -0
- package/dist/test-utils/factories/websitalk/knowledgeDocuments.d.ts.map +1 -0
- package/dist/test-utils/factories/websitalk/knowledgeDocuments.js +23 -0
- package/dist/test-utils/factories/websitalk/knowledgeDocuments.js.map +1 -0
- package/dist/test-utils/factories/websitalk/scanResources.d.ts +5 -0
- package/dist/test-utils/factories/websitalk/scanResources.d.ts.map +1 -0
- package/dist/test-utils/factories/websitalk/scanResources.js +24 -0
- package/dist/test-utils/factories/websitalk/scanResources.js.map +1 -0
- package/dist/websitalk/index.d.ts +1 -0
- package/dist/websitalk/index.d.ts.map +1 -1
- package/dist/websitalk/index.js +1 -0
- package/dist/websitalk/index.js.map +1 -1
- package/dist/websitalk/knowledgeDocuments/index.d.ts +4 -0
- package/dist/websitalk/knowledgeDocuments/index.d.ts.map +1 -0
- package/dist/websitalk/knowledgeDocuments/index.js +20 -0
- package/dist/websitalk/knowledgeDocuments/index.js.map +1 -0
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.constants.d.ts +14 -0
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.constants.d.ts.map +1 -0
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.constants.js +15 -0
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.constants.js.map +1 -0
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.getters.d.ts +10 -0
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.getters.d.ts.map +1 -0
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.getters.js +61 -0
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.getters.js.map +1 -0
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.types.d.ts +28 -0
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.types.d.ts.map +1 -0
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.types.js +3 -0
- package/dist/websitalk/knowledgeDocuments/knowledgeDocuments.types.js.map +1 -0
- package/dist/websitalk/scanResources/index.d.ts +5 -0
- package/dist/websitalk/scanResources/index.d.ts.map +1 -0
- package/dist/websitalk/scanResources/index.js +21 -0
- package/dist/websitalk/scanResources/index.js.map +1 -0
- package/dist/websitalk/scanResources/scanResources.constants.d.ts +38 -0
- package/dist/websitalk/scanResources/scanResources.constants.d.ts.map +1 -0
- package/dist/websitalk/scanResources/scanResources.constants.js +47 -0
- package/dist/websitalk/scanResources/scanResources.constants.js.map +1 -0
- package/dist/websitalk/scanResources/scanResources.getters.d.ts +8 -0
- package/dist/websitalk/scanResources/scanResources.getters.d.ts.map +1 -0
- package/dist/websitalk/scanResources/scanResources.getters.js +68 -0
- package/dist/websitalk/scanResources/scanResources.getters.js.map +1 -0
- package/dist/websitalk/scanResources/scanResources.types.d.ts +60 -0
- package/dist/websitalk/scanResources/scanResources.types.d.ts.map +1 -0
- package/dist/websitalk/scanResources/scanResources.types.js +3 -0
- package/dist/websitalk/scanResources/scanResources.types.js.map +1 -0
- package/dist/websitalk/scanResources/scanResources.utils.d.ts +7 -0
- package/dist/websitalk/scanResources/scanResources.utils.d.ts.map +1 -0
- package/dist/websitalk/scanResources/scanResources.utils.js +20 -0
- package/dist/websitalk/scanResources/scanResources.utils.js.map +1 -0
- package/jest.config.js +20 -20
- package/package.json +46 -46
- package/src/__tests__/setup.ts +20 -20
- package/src/bulkWrite/__tests__/bulkWrite.spec.ts +65 -65
- package/src/bulkWrite/bulkWrite.ops.ts +45 -45
- package/src/bulkWrite/bulkWrite.types.ts +4 -4
- package/src/bulkWrite/index.ts +2 -2
- package/src/config.ts +9 -9
- package/src/configuration/index.ts +17 -17
- package/src/configuration/internalModels/index.ts +3 -3
- package/src/configuration/internalModels/internalModels.constants.ts +1 -1
- package/src/configuration/internalModels/internalModels.getters.ts +33 -33
- package/src/configuration/internalModels/internalModels.types.ts +12 -12
- package/src/configuration/models/index.ts +25 -25
- package/src/configuration/models/models.constants.ts +13 -13
- package/src/configuration/models/models.getters.ts +53 -53
- package/src/configuration/models/models.types.ts +79 -79
- package/src/configuration/mongodb-client.ts +62 -62
- package/src/configuration/prompts/index.ts +2 -2
- package/src/configuration/prompts/prompts.getters.ts +49 -49
- package/src/configuration/prompts/prompts.types.ts +11 -11
- package/src/connection.ts +81 -81
- package/src/index.ts +43 -42
- package/src/municipal/__tests__/validation.spec.ts +62 -62
- package/src/municipal/cities/cities.getters.ts +50 -50
- package/src/municipal/cities/cities.types.ts +11 -11
- package/src/municipal/cities/index.ts +2 -2
- package/src/municipal/departmentsSubjects/__tests__/departmentsSubjects.spec.ts +272 -272
- package/src/municipal/departmentsSubjects/departmentsSubjects.getters.ts +317 -317
- package/src/municipal/departmentsSubjects/departmentsSubjects.types.ts +73 -73
- package/src/municipal/departmentsSubjects/index.ts +9 -9
- package/src/municipal/index.ts +22 -22
- package/src/municipal/mongodb-client.ts +61 -61
- package/src/municipal/muniIssues/__tests__/muniIssues.setters.spec.ts +94 -94
- package/src/municipal/muniIssues/__tests__/muniIssues.setup.spec.ts +92 -92
- package/src/municipal/muniIssues/index.ts +17 -17
- package/src/municipal/muniIssues/muniIssues.constants.ts +18 -18
- package/src/municipal/muniIssues/muniIssues.getters.ts +24 -24
- package/src/municipal/muniIssues/muniIssues.schema.ts +66 -66
- package/src/municipal/muniIssues/muniIssues.setters.ts +24 -24
- package/src/municipal/muniIssues/muniIssues.setup.ts +65 -65
- package/src/municipal/muniIssues/muniIssues.types.ts +37 -37
- package/src/municipal/streets/__tests__/streets.spec.ts +253 -253
- package/src/municipal/streets/index.ts +2 -2
- package/src/municipal/streets/streets.getters.ts +140 -140
- package/src/municipal/streets/streets.types.ts +19 -19
- package/src/municipal/systemInstructions/__tests__/getters.spec.ts +113 -113
- package/src/municipal/systemInstructions/__tests__/setters.spec.ts +274 -274
- package/src/municipal/systemInstructions/index.ts +7 -7
- package/src/municipal/systemInstructions/instructions.getters.ts +57 -57
- package/src/municipal/systemInstructions/instructions.setters.ts +119 -119
- package/src/municipal/systemInstructions/instructions.types.ts +30 -30
- package/src/municipal/tickets/__tests__/tickets.getters.spec.ts +30 -30
- package/src/municipal/tickets/__tests__/tickets.statistics.spec.ts +99 -99
- package/src/municipal/tickets/index.ts +9 -9
- package/src/municipal/tickets/tickets.constants.ts +8 -8
- package/src/municipal/tickets/tickets.getters.ts +121 -121
- package/src/municipal/tickets/tickets.statistics.aggregation.ts +110 -110
- package/src/municipal/tickets/tickets.statistics.getters.ts +145 -145
- package/src/municipal/tickets/tickets.types.ts +54 -54
- package/src/municipal/utils/types.ts +11 -11
- package/src/talkpilot/__tests__/db.spec.ts +38 -38
- package/src/talkpilot/__tests__/mongodb-client.spec.ts +18 -18
- package/src/talkpilot/__tests__/validation.spec.ts +68 -68
- package/src/talkpilot/agents/__tests__/agents.getters.spec.ts +29 -29
- package/src/talkpilot/agents/agents.getters.ts +34 -34
- package/src/talkpilot/agents/agents.types.ts +14 -14
- package/src/talkpilot/agents/index.ts +2 -2
- package/src/talkpilot/backgroundToolResults/__tests__/backgroundToolResults.getters.spec.ts +147 -147
- package/src/talkpilot/backgroundToolResults/backgroundToolResults.getters.ts +65 -65
- package/src/talkpilot/backgroundToolResults/backgroundToolResults.types.ts +23 -23
- package/src/talkpilot/backgroundToolResults/index.ts +2 -2
- package/src/talkpilot/calls/__tests__/callStats.utils.spec.ts +128 -128
- package/src/talkpilot/calls/__tests__/calls.dashboard.spec.ts +229 -229
- package/src/talkpilot/calls/__tests__/calls.spec.ts +471 -471
- package/src/talkpilot/calls/__tests__/calls.statistics.spec.ts +483 -483
- package/src/talkpilot/calls/calls.constants.ts +49 -49
- package/src/talkpilot/calls/calls.getters.ts +277 -277
- package/src/talkpilot/calls/calls.statistics.getters.ts +668 -668
- package/src/talkpilot/calls/calls.statistics.types.ts +48 -48
- package/src/talkpilot/calls/calls.types.ts +133 -134
- package/src/talkpilot/calls/dashboard/calls.dashboard.ts +295 -295
- package/src/talkpilot/calls/dashboard/calls.dashboard.types.ts +57 -57
- package/src/talkpilot/calls/index.ts +6 -6
- package/src/talkpilot/clientAudioBuffers/__tests__/clientAudioBuffer.getters.spec.ts +160 -160
- package/src/talkpilot/clientAudioBuffers/clientAudioBuffer.getters.ts +117 -117
- package/src/talkpilot/clientAudioBuffers/clientsAudioBuffers.types.ts +25 -25
- package/src/talkpilot/clientAudioBuffers/index.ts +2 -2
- package/src/talkpilot/clients/__tests__/clients.quota.spec.ts +123 -123
- package/src/talkpilot/clients/clients.getters.ts +16 -16
- package/src/talkpilot/clients/clients.quota.getters.ts +119 -119
- package/src/talkpilot/clients/clients.quota.types.ts +27 -27
- package/src/talkpilot/clients/clients.types.ts +18 -18
- package/src/talkpilot/clients/index.ts +4 -4
- package/src/talkpilot/clientsConfig/__tests__/clientsConfig.getters.spec.ts +0 -318
- package/src/talkpilot/clientsConfig/__tests__/clientsConfig.spec.ts +212 -212
- package/src/talkpilot/clientsConfig/clientsConfig.getters.ts +2 -116
- package/src/talkpilot/clientsConfig/clientsConfig.types.ts +0 -4
- package/src/talkpilot/clientsConfig/index.ts +2 -3
- package/src/talkpilot/contextNotes/__tests__/contextNotes.getters.spec.ts +217 -217
- package/src/talkpilot/contextNotes/contextNotes.getters.ts +85 -85
- package/src/talkpilot/contextNotes/contextNotes.types.ts +20 -20
- package/src/talkpilot/contextNotes/index.ts +2 -2
- package/src/talkpilot/flows/__tests__/flows.schema.spec.ts +99 -99
- package/src/talkpilot/flows/flows.getter.ts +14 -14
- package/src/talkpilot/flows/flows.schema.ts +155 -155
- package/src/talkpilot/flows/flows.types.ts +189 -189
- package/src/talkpilot/flows/index.ts +2 -2
- package/src/talkpilot/groups/__tests__/groups.spec.ts +90 -90
- package/src/talkpilot/groups/__tests__/phone.utils.spec.ts +32 -32
- package/src/talkpilot/groups/groups.getters.ts +30 -30
- package/src/talkpilot/groups/groups.types.ts +29 -29
- package/src/talkpilot/groups/index.ts +3 -3
- package/src/talkpilot/groups/phone.utils.ts +46 -46
- package/src/talkpilot/index.ts +31 -31
- package/src/talkpilot/leads/index.ts +2 -2
- package/src/talkpilot/leads/leads.getter.ts +6 -6
- package/src/talkpilot/leads/leads.schema.ts +33 -33
- package/src/talkpilot/leads/leads.types.ts +20 -20
- package/src/talkpilot/mongodb-client.ts +78 -78
- package/src/talkpilot/phone_numbers/__tests__/phone_numbers.spec.ts +282 -282
- package/src/talkpilot/phone_numbers/index.ts +2 -2
- package/src/talkpilot/phone_numbers/phone_numbers.getter.ts +176 -176
- package/src/talkpilot/phone_numbers/phone_numbers.schema.ts +17 -17
- package/src/talkpilot/phone_numbers/phone_numbers.types.ts +30 -30
- package/src/talkpilot/plans/__tests__/plans.spec.ts +70 -70
- package/src/talkpilot/plans/index.ts +2 -2
- package/src/talkpilot/plans/plans.getters.ts +132 -132
- package/src/talkpilot/plans/plans.types.ts +89 -89
- package/src/talkpilot/products/__tests__/products.getters.spec.ts +44 -44
- package/src/talkpilot/products/index.ts +2 -2
- package/src/talkpilot/products/products.getters.ts +12 -12
- package/src/talkpilot/products/products.types.ts +9 -9
- package/src/talkpilot/results/index.ts +7 -7
- package/src/talkpilot/results/results.getter.ts +39 -39
- package/src/talkpilot/results/results.schema.ts +25 -25
- package/src/talkpilot/results/results.types.ts +34 -34
- package/src/talkpilot/retry_analyze/__tests__/retryAnalyze.getters.spec.ts +156 -156
- package/src/talkpilot/retry_analyze/index.ts +2 -2
- package/src/talkpilot/retry_analyze/retryAnalyze.getters.ts +84 -84
- package/src/talkpilot/retry_analyze/retryAnalyze.types.ts +13 -13
- package/src/talkpilot/sessions/__tests__/sessions.spec.ts +147 -147
- package/src/talkpilot/sessions/index.ts +2 -2
- package/src/talkpilot/sessions/sessions.getter.ts +92 -92
- package/src/talkpilot/sessions/sessions.schema.ts +34 -34
- package/src/talkpilot/sessions/sessions.types.ts +30 -30
- package/src/talkpilot/subscriptions/__tests__/subscriptions.getters.utils.spec.ts +45 -45
- package/src/talkpilot/subscriptions/index.ts +3 -3
- package/src/talkpilot/subscriptions/subscriptions.getters.ts +146 -146
- package/src/talkpilot/subscriptions/subscriptions.getters.utils.ts +33 -33
- package/src/talkpilot/subscriptions/subscriptions.types.ts +66 -66
- package/src/talkpilot/utils/__tests__/query.utils.spec.ts +49 -49
- package/src/talkpilot/utils/query.utils.ts +21 -21
- package/src/test-utils/db-utils.ts +33 -33
- package/src/test-utils/factories/index.ts +17 -16
- package/src/test-utils/factories/municipal/cities.ts +16 -16
- package/src/test-utils/factories/municipal/departmentsSubjects.ts +37 -37
- package/src/test-utils/factories/municipal/muniIssues.ts +32 -32
- package/src/test-utils/factories/municipal/streets.ts +22 -22
- package/src/test-utils/factories/municipal/tickets.ts +39 -39
- package/src/test-utils/factories/talkpilot/agents.ts +19 -19
- package/src/test-utils/factories/talkpilot/calls.ts +37 -37
- package/src/test-utils/factories/talkpilot/clientAudioBuffers.ts +20 -20
- package/src/test-utils/factories/talkpilot/clientsConfig.ts +18 -18
- package/src/test-utils/factories/talkpilot/contextNotes.ts +40 -40
- package/src/test-utils/factories/talkpilot/flows.ts +33 -33
- package/src/test-utils/factories/talkpilot/groups.ts +33 -33
- package/src/test-utils/factories/talkpilot/phone_numbers.ts +22 -22
- package/src/test-utils/factories/talkpilot/sessions.ts +35 -35
- package/src/test-utils/factories/websitalk/knowledgeDocuments.ts +28 -0
- package/src/test-utils/factories/websitalk/scans.ts +24 -24
- package/src/test-utils/factories/websitalk/websiteUrls.ts +17 -17
- package/src/utils/date.utils.ts +126 -126
- package/src/utils/shared.types.ts +4 -4
- package/src/utils/validation.ts +23 -23
- package/src/websitalk/index.ts +17 -16
- package/src/websitalk/knowledgeDocuments/__tests__/knowledgeDocuments.spec.ts +123 -0
- package/src/websitalk/knowledgeDocuments/index.ts +3 -0
- package/src/websitalk/knowledgeDocuments/knowledgeDocuments.constants.ts +19 -0
- package/src/websitalk/knowledgeDocuments/knowledgeDocuments.getters.ts +85 -0
- package/src/websitalk/knowledgeDocuments/knowledgeDocuments.types.ts +37 -0
- package/src/websitalk/mongodb-client.ts +61 -61
- package/src/websitalk/scans/__tests__/scans.spec.ts +313 -313
- package/src/websitalk/scans/index.ts +4 -4
- package/src/websitalk/scans/scans.constants.ts +15 -15
- package/src/websitalk/scans/scans.getters.ts +160 -160
- package/src/websitalk/scans/scans.types.ts +45 -45
- package/src/websitalk/scans/scans.utils.ts +5 -5
- package/src/websitalk/websiteUrls/__tests__/websiteUrls.spec.ts +77 -77
- package/src/websitalk/websiteUrls/index.ts +2 -2
- package/src/websitalk/websiteUrls/websiteUrls.getters.ts +65 -65
- package/src/websitalk/websiteUrls/websiteUrls.types.ts +13 -13
- package/tsconfig.json +23 -23
- package/src/talkpilot/clientsConfig/clientsConfig.constants.ts +0 -2
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KNOWLEDGE_FILE_TYPES = exports.KNOWLEDGE_DOCUMENT_STATUSES = exports.KNOWLEDGE_DOCUMENTS_COLLECTION = void 0;
|
|
4
|
+
exports.KNOWLEDGE_DOCUMENTS_COLLECTION = "knowledgeDocuments";
|
|
5
|
+
exports.KNOWLEDGE_DOCUMENT_STATUSES = {
|
|
6
|
+
UPLOADING: "UPLOADING",
|
|
7
|
+
EXTRACTING: "EXTRACTING",
|
|
8
|
+
PROCESSING: "PROCESSING",
|
|
9
|
+
READY: "READY",
|
|
10
|
+
FAILED: "FAILED",
|
|
11
|
+
};
|
|
12
|
+
exports.KNOWLEDGE_FILE_TYPES = {
|
|
13
|
+
PDF: "pdf",
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=knowledgeDocuments.constants.js.map
|
|
@@ -0,0 +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;AAKE,QAAA,oBAAoB,GAAG;IAClC,GAAG,EAAE,KAAK;CACF,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Collection, ObjectId as MongoObjectId } from "mongodb";
|
|
2
|
+
import type { CreateKnowledgeDocumentInput, KnowledgeDocument, KnowledgeDocumentDoc, UpdateKnowledgeDocumentInput } from "./knowledgeDocuments.types";
|
|
3
|
+
export declare const getKnowledgeDocumentsCollection: () => Collection<KnowledgeDocument>;
|
|
4
|
+
export declare const createKnowledgeDocument: (input: CreateKnowledgeDocumentInput) => Promise<MongoObjectId>;
|
|
5
|
+
export declare const getKnowledgeDocumentById: (id: string) => Promise<KnowledgeDocumentDoc | null>;
|
|
6
|
+
export declare const listKnowledgeDocumentsByClientId: (clientId: string) => Promise<KnowledgeDocumentDoc[]>;
|
|
7
|
+
export declare const listReadyKnowledgeDocumentIdsByClientId: (clientId: string) => Promise<string[]>;
|
|
8
|
+
export declare const updateKnowledgeDocument: (id: string, updates: UpdateKnowledgeDocumentInput) => Promise<KnowledgeDocumentDoc | null>;
|
|
9
|
+
export declare const deleteKnowledgeDocument: (id: string) => Promise<boolean>;
|
|
10
|
+
//# sourceMappingURL=knowledgeDocuments.getters.d.ts.map
|
|
@@ -0,0 +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,CAoBvB,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,CAQlB,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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deleteKnowledgeDocument = exports.updateKnowledgeDocument = exports.listReadyKnowledgeDocumentIdsByClientId = exports.listKnowledgeDocumentsByClientId = exports.getKnowledgeDocumentById = exports.createKnowledgeDocument = exports.getKnowledgeDocumentsCollection = void 0;
|
|
4
|
+
const index_1 = require("../index");
|
|
5
|
+
const knowledgeDocuments_constants_1 = require("./knowledgeDocuments.constants");
|
|
6
|
+
const getKnowledgeDocumentsCollection = () => {
|
|
7
|
+
return (0, index_1.getDb)().collection(knowledgeDocuments_constants_1.KNOWLEDGE_DOCUMENTS_COLLECTION);
|
|
8
|
+
};
|
|
9
|
+
exports.getKnowledgeDocumentsCollection = getKnowledgeDocumentsCollection;
|
|
10
|
+
const createKnowledgeDocument = async (input) => {
|
|
11
|
+
const now = new Date();
|
|
12
|
+
const { insertedId } = await (0, exports.getKnowledgeDocumentsCollection)().insertOne({
|
|
13
|
+
clientId: input.clientId,
|
|
14
|
+
filename: input.filename,
|
|
15
|
+
contentType: input.contentType,
|
|
16
|
+
fileType: input.fileType,
|
|
17
|
+
storagePath: input.storagePath,
|
|
18
|
+
markdownStoragePath: input.markdownStoragePath,
|
|
19
|
+
byteSize: input.byteSize,
|
|
20
|
+
pageCount: input.pageCount,
|
|
21
|
+
charCount: input.charCount,
|
|
22
|
+
contentHash: input.contentHash,
|
|
23
|
+
status: input.status ?? knowledgeDocuments_constants_1.KNOWLEDGE_DOCUMENT_STATUSES.UPLOADING,
|
|
24
|
+
errorMessage: input.errorMessage,
|
|
25
|
+
progressPercent: input.progressPercent ?? 0,
|
|
26
|
+
createdAt: now,
|
|
27
|
+
updatedAt: now,
|
|
28
|
+
});
|
|
29
|
+
return insertedId;
|
|
30
|
+
};
|
|
31
|
+
exports.createKnowledgeDocument = createKnowledgeDocument;
|
|
32
|
+
const getKnowledgeDocumentById = async (id) => {
|
|
33
|
+
return (0, exports.getKnowledgeDocumentsCollection)().findOne({ _id: new index_1.ObjectId(id) });
|
|
34
|
+
};
|
|
35
|
+
exports.getKnowledgeDocumentById = getKnowledgeDocumentById;
|
|
36
|
+
const listKnowledgeDocumentsByClientId = async (clientId) => {
|
|
37
|
+
return (0, exports.getKnowledgeDocumentsCollection)()
|
|
38
|
+
.find({ clientId })
|
|
39
|
+
.sort({ createdAt: -1 })
|
|
40
|
+
.toArray();
|
|
41
|
+
};
|
|
42
|
+
exports.listKnowledgeDocumentsByClientId = listKnowledgeDocumentsByClientId;
|
|
43
|
+
const listReadyKnowledgeDocumentIdsByClientId = async (clientId) => {
|
|
44
|
+
const docs = await (0, exports.getKnowledgeDocumentsCollection)()
|
|
45
|
+
.find({ clientId, status: knowledgeDocuments_constants_1.KNOWLEDGE_DOCUMENT_STATUSES.READY }, { projection: { _id: 1 } })
|
|
46
|
+
.toArray();
|
|
47
|
+
return docs.map((doc) => doc._id.toString());
|
|
48
|
+
};
|
|
49
|
+
exports.listReadyKnowledgeDocumentIdsByClientId = listReadyKnowledgeDocumentIdsByClientId;
|
|
50
|
+
const updateKnowledgeDocument = async (id, updates) => {
|
|
51
|
+
return (0, exports.getKnowledgeDocumentsCollection)().findOneAndUpdate({ _id: new index_1.ObjectId(id) }, { $set: { ...updates, updatedAt: new Date() } }, { returnDocument: "after" });
|
|
52
|
+
};
|
|
53
|
+
exports.updateKnowledgeDocument = updateKnowledgeDocument;
|
|
54
|
+
const deleteKnowledgeDocument = async (id) => {
|
|
55
|
+
const result = await (0, exports.getKnowledgeDocumentsCollection)().deleteOne({
|
|
56
|
+
_id: new index_1.ObjectId(id),
|
|
57
|
+
});
|
|
58
|
+
return result.deletedCount === 1;
|
|
59
|
+
};
|
|
60
|
+
exports.deleteKnowledgeDocument = deleteKnowledgeDocument;
|
|
61
|
+
//# sourceMappingURL=knowledgeDocuments.getters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledgeDocuments.getters.js","sourceRoot":"","sources":["../../../src/websitalk/knowledgeDocuments/knowledgeDocuments.getters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ObjectId } from "mongodb";
|
|
2
|
+
import type { KnowledgeDocumentStatus, KnowledgeFileType } from "./knowledgeDocuments.constants";
|
|
3
|
+
export type KnowledgeDocument = {
|
|
4
|
+
clientId: string;
|
|
5
|
+
filename: string;
|
|
6
|
+
contentType: string;
|
|
7
|
+
fileType: KnowledgeFileType;
|
|
8
|
+
storagePath: string;
|
|
9
|
+
markdownStoragePath?: string;
|
|
10
|
+
byteSize: number;
|
|
11
|
+
pageCount?: number;
|
|
12
|
+
charCount?: number;
|
|
13
|
+
contentHash?: string;
|
|
14
|
+
status: KnowledgeDocumentStatus;
|
|
15
|
+
errorMessage?: string;
|
|
16
|
+
progressPercent: number;
|
|
17
|
+
createdAt: Date;
|
|
18
|
+
updatedAt: Date;
|
|
19
|
+
};
|
|
20
|
+
export type KnowledgeDocumentDoc = KnowledgeDocument & {
|
|
21
|
+
_id: ObjectId;
|
|
22
|
+
};
|
|
23
|
+
export type CreateKnowledgeDocumentInput = Omit<KnowledgeDocument, "createdAt" | "updatedAt" | "progressPercent" | "status"> & {
|
|
24
|
+
status?: KnowledgeDocumentStatus;
|
|
25
|
+
progressPercent?: number;
|
|
26
|
+
};
|
|
27
|
+
export type UpdateKnowledgeDocumentInput = Partial<Omit<KnowledgeDocument, "clientId" | "createdAt" | "updatedAt">>;
|
|
28
|
+
//# sourceMappingURL=knowledgeDocuments.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledgeDocuments.types.d.ts","sourceRoot":"","sources":["../../../src/websitalk/knowledgeDocuments/knowledgeDocuments.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,EACV,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,gCAAgC,CAAC;AAExC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,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,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,iBAAiB,GAAG;IAAE,GAAG,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEzE,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,CAAC,iBAAiB,EAAE,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC,CAChE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledgeDocuments.types.js","sourceRoot":"","sources":["../../../src/websitalk/knowledgeDocuments/knowledgeDocuments.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/websitalk/scanResources/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./scanResources.constants"), exports);
|
|
18
|
+
__exportStar(require("./scanResources.getters"), exports);
|
|
19
|
+
__exportStar(require("./scanResources.types"), exports);
|
|
20
|
+
__exportStar(require("./scanResources.utils"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/websitalk/scanResources/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C;AAC1C,0DAAwC;AACxC,wDAAsC;AACtC,wDAAsC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export declare const SCAN_RESOURCES_COLLECTION = "scanResources";
|
|
2
|
+
export declare const URL_TASK_STATUSES: {
|
|
3
|
+
readonly URL_PENDING: "URL_PENDING";
|
|
4
|
+
readonly URL_SCANNING: "URL_SCANNING";
|
|
5
|
+
readonly URL_READY_TO_PROCESS: "URL_READY_TO_PROCESS";
|
|
6
|
+
readonly URL_PENDING_CHUNKS: "URL_PENDING_CHUNKS";
|
|
7
|
+
readonly URL_CHUNKING: "URL_CHUNKING";
|
|
8
|
+
readonly URL_EMBEDDING: "URL_EMBEDDING";
|
|
9
|
+
readonly URL_COMPLETED: "URL_COMPLETED";
|
|
10
|
+
readonly URL_FAILED: "URL_FAILED";
|
|
11
|
+
readonly URL_DUPLICATE_CONTENT: "URL_DUPLICATE_CONTENT";
|
|
12
|
+
readonly URL_PERMANENT_FAILURE: "URL_PERMANENT_FAILURE";
|
|
13
|
+
};
|
|
14
|
+
export declare const BOARD_COLUMN_STATUSES: {
|
|
15
|
+
readonly PENDING: readonly ["URL_PENDING"];
|
|
16
|
+
readonly SCANNING: readonly ["URL_SCANNING"];
|
|
17
|
+
readonly READY_TO_PROCESS: readonly ["URL_READY_TO_PROCESS"];
|
|
18
|
+
readonly CHUNKING: readonly ["URL_CHUNKING", "URL_PENDING_CHUNKS"];
|
|
19
|
+
readonly PROCESSING: readonly ["URL_EMBEDDING"];
|
|
20
|
+
readonly COMPLETED: readonly ["URL_COMPLETED", "URL_DUPLICATE_CONTENT"];
|
|
21
|
+
readonly FAILED: readonly ["URL_PERMANENT_FAILURE", "URL_FAILED"];
|
|
22
|
+
};
|
|
23
|
+
export declare const SCAN_RESOURCE_BOARD_PROJECTION: {
|
|
24
|
+
readonly url: 1;
|
|
25
|
+
readonly title: 1;
|
|
26
|
+
readonly status: 1;
|
|
27
|
+
readonly statusEnteredAt: 1;
|
|
28
|
+
readonly retryCount: 1;
|
|
29
|
+
readonly processRetryCount: 1;
|
|
30
|
+
readonly globalResurrections: 1;
|
|
31
|
+
readonly noRetry: 1;
|
|
32
|
+
readonly errorMessage: 1;
|
|
33
|
+
readonly updatedAt: 1;
|
|
34
|
+
readonly sourceType: 1;
|
|
35
|
+
};
|
|
36
|
+
export declare const DEFAULT_PAGE_LIMIT = 4;
|
|
37
|
+
export declare const MAX_PAGE_LIMIT = 50;
|
|
38
|
+
//# sourceMappingURL=scanResources.constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scanResources.constants.d.ts","sourceRoot":"","sources":["../../../src/websitalk/scanResources/scanResources.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,kBAAkB,CAAC;AAEzD,eAAO,MAAM,iBAAiB;;;;;;;;;;;CAWpB,CAAC;AAEX,eAAO,MAAM,qBAAqB;;;;;;;;CAcxB,CAAC;AAEX,eAAO,MAAM,8BAA8B;;;;;;;;;;;;CAYjC,CAAC;AAEX,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,cAAc,KAAK,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MAX_PAGE_LIMIT = exports.DEFAULT_PAGE_LIMIT = exports.SCAN_RESOURCE_BOARD_PROJECTION = exports.BOARD_COLUMN_STATUSES = exports.URL_TASK_STATUSES = exports.SCAN_RESOURCES_COLLECTION = void 0;
|
|
4
|
+
exports.SCAN_RESOURCES_COLLECTION = "scanResources";
|
|
5
|
+
exports.URL_TASK_STATUSES = {
|
|
6
|
+
URL_PENDING: "URL_PENDING",
|
|
7
|
+
URL_SCANNING: "URL_SCANNING",
|
|
8
|
+
URL_READY_TO_PROCESS: "URL_READY_TO_PROCESS",
|
|
9
|
+
URL_PENDING_CHUNKS: "URL_PENDING_CHUNKS",
|
|
10
|
+
URL_CHUNKING: "URL_CHUNKING",
|
|
11
|
+
URL_EMBEDDING: "URL_EMBEDDING",
|
|
12
|
+
URL_COMPLETED: "URL_COMPLETED",
|
|
13
|
+
URL_FAILED: "URL_FAILED",
|
|
14
|
+
URL_DUPLICATE_CONTENT: "URL_DUPLICATE_CONTENT",
|
|
15
|
+
URL_PERMANENT_FAILURE: "URL_PERMANENT_FAILURE",
|
|
16
|
+
};
|
|
17
|
+
exports.BOARD_COLUMN_STATUSES = {
|
|
18
|
+
PENDING: [exports.URL_TASK_STATUSES.URL_PENDING],
|
|
19
|
+
SCANNING: [exports.URL_TASK_STATUSES.URL_SCANNING],
|
|
20
|
+
READY_TO_PROCESS: [exports.URL_TASK_STATUSES.URL_READY_TO_PROCESS],
|
|
21
|
+
CHUNKING: [exports.URL_TASK_STATUSES.URL_CHUNKING, exports.URL_TASK_STATUSES.URL_PENDING_CHUNKS],
|
|
22
|
+
PROCESSING: [exports.URL_TASK_STATUSES.URL_EMBEDDING],
|
|
23
|
+
COMPLETED: [
|
|
24
|
+
exports.URL_TASK_STATUSES.URL_COMPLETED,
|
|
25
|
+
exports.URL_TASK_STATUSES.URL_DUPLICATE_CONTENT,
|
|
26
|
+
],
|
|
27
|
+
FAILED: [
|
|
28
|
+
exports.URL_TASK_STATUSES.URL_PERMANENT_FAILURE,
|
|
29
|
+
exports.URL_TASK_STATUSES.URL_FAILED,
|
|
30
|
+
],
|
|
31
|
+
};
|
|
32
|
+
exports.SCAN_RESOURCE_BOARD_PROJECTION = {
|
|
33
|
+
url: 1,
|
|
34
|
+
title: 1,
|
|
35
|
+
status: 1,
|
|
36
|
+
statusEnteredAt: 1,
|
|
37
|
+
retryCount: 1,
|
|
38
|
+
processRetryCount: 1,
|
|
39
|
+
globalResurrections: 1,
|
|
40
|
+
noRetry: 1,
|
|
41
|
+
errorMessage: 1,
|
|
42
|
+
updatedAt: 1,
|
|
43
|
+
sourceType: 1,
|
|
44
|
+
};
|
|
45
|
+
exports.DEFAULT_PAGE_LIMIT = 4;
|
|
46
|
+
exports.MAX_PAGE_LIMIT = 50;
|
|
47
|
+
//# sourceMappingURL=scanResources.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scanResources.constants.js","sourceRoot":"","sources":["../../../src/websitalk/scanResources/scanResources.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,yBAAyB,GAAG,eAAe,CAAC;AAE5C,QAAA,iBAAiB,GAAG;IAC/B,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,cAAc;IAC5B,oBAAoB,EAAE,sBAAsB;IAC5C,kBAAkB,EAAE,oBAAoB;IACxC,YAAY,EAAE,cAAc;IAC5B,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,eAAe;IAC9B,UAAU,EAAE,YAAY;IACxB,qBAAqB,EAAE,uBAAuB;IAC9C,qBAAqB,EAAE,uBAAuB;CACtC,CAAC;AAEE,QAAA,qBAAqB,GAAG;IACnC,OAAO,EAAE,CAAC,yBAAiB,CAAC,WAAW,CAAC;IACxC,QAAQ,EAAE,CAAC,yBAAiB,CAAC,YAAY,CAAC;IAC1C,gBAAgB,EAAE,CAAC,yBAAiB,CAAC,oBAAoB,CAAC;IAC1D,QAAQ,EAAE,CAAC,yBAAiB,CAAC,YAAY,EAAE,yBAAiB,CAAC,kBAAkB,CAAC;IAChF,UAAU,EAAE,CAAC,yBAAiB,CAAC,aAAa,CAAC;IAC7C,SAAS,EAAE;QACT,yBAAiB,CAAC,aAAa;QAC/B,yBAAiB,CAAC,qBAAqB;KACxC;IACD,MAAM,EAAE;QACN,yBAAiB,CAAC,qBAAqB;QACvC,yBAAiB,CAAC,UAAU;KAC7B;CACO,CAAC;AAEE,QAAA,8BAA8B,GAAG;IAC5C,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,eAAe,EAAE,CAAC;IAClB,UAAU,EAAE,CAAC;IACb,iBAAiB,EAAE,CAAC;IACpB,mBAAmB,EAAE,CAAC;IACtB,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,CAAC;IACf,SAAS,EAAE,CAAC;IACZ,UAAU,EAAE,CAAC;CACL,CAAC;AAEE,QAAA,kBAAkB,GAAG,CAAC,CAAC;AACvB,QAAA,cAAc,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Collection } from "mongodb";
|
|
2
|
+
import type { PagedResult, ScanPagesQuery, ScanResource, ScanResourceBoardProjection, ScanResourceDoc, UrlTaskStatus } from "./scanResources.types";
|
|
3
|
+
export declare const getScanResourcesCollection: () => Collection<ScanResource>;
|
|
4
|
+
export declare const getScanKpiCounts: (scanId: string) => Promise<Partial<Record<UrlTaskStatus, number>>>;
|
|
5
|
+
export declare const getScanResourceCountsByScanIds: (scanIds: string[]) => Promise<Record<string, number>>;
|
|
6
|
+
export declare const getScanPages: (query: ScanPagesQuery) => Promise<PagedResult<ScanResourceBoardProjection>>;
|
|
7
|
+
export declare const getScanResourceById: (scanId: string, pageId: string) => Promise<ScanResourceDoc | null>;
|
|
8
|
+
//# sourceMappingURL=scanResources.getters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scanResources.getters.d.ts","sourceRoot":"","sources":["../../../src/websitalk/scanResources/scanResources.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoB,MAAM,SAAS,CAAC;AAQvD,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,2BAA2B,EAC3B,eAAe,EACf,aAAa,EACd,MAAM,uBAAuB,CAAC;AAG/B,eAAO,MAAM,0BAA0B,QAAO,UAAU,CAAC,YAAY,CACR,CAAC;AAE9D,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,MAAM,KACb,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAYhD,CAAC;AAEF,eAAO,MAAM,8BAA8B,GACzC,SAAS,MAAM,EAAE,KAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWhC,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,OAAO,cAAc,KACpB,OAAO,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAiClD,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,MAAM,EACd,QAAQ,MAAM,KACb,OAAO,CAAC,eAAe,GAAG,IAAI,CAC4C,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getScanResourceById = exports.getScanPages = exports.getScanResourceCountsByScanIds = exports.getScanKpiCounts = exports.getScanResourcesCollection = void 0;
|
|
4
|
+
const mongodb_1 = require("mongodb");
|
|
5
|
+
const index_1 = require("../index");
|
|
6
|
+
const scanResources_constants_1 = require("./scanResources.constants");
|
|
7
|
+
const scanResources_utils_1 = require("./scanResources.utils");
|
|
8
|
+
const getScanResourcesCollection = () => (0, index_1.getDb)().collection(scanResources_constants_1.SCAN_RESOURCES_COLLECTION);
|
|
9
|
+
exports.getScanResourcesCollection = getScanResourcesCollection;
|
|
10
|
+
const getScanKpiCounts = async (scanId) => {
|
|
11
|
+
const rows = await (0, exports.getScanResourcesCollection)()
|
|
12
|
+
.aggregate([
|
|
13
|
+
{ $match: { scanId } },
|
|
14
|
+
{ $group: { _id: "$status", count: { $sum: 1 } } },
|
|
15
|
+
])
|
|
16
|
+
.toArray();
|
|
17
|
+
return rows.reduce((acc, row) => {
|
|
18
|
+
acc[row._id] = row.count;
|
|
19
|
+
return acc;
|
|
20
|
+
}, {});
|
|
21
|
+
};
|
|
22
|
+
exports.getScanKpiCounts = getScanKpiCounts;
|
|
23
|
+
const getScanResourceCountsByScanIds = async (scanIds) => {
|
|
24
|
+
if (scanIds.length === 0)
|
|
25
|
+
return {};
|
|
26
|
+
const rows = await (0, exports.getScanResourcesCollection)()
|
|
27
|
+
.aggregate([
|
|
28
|
+
{ $match: { scanId: { $in: scanIds } } },
|
|
29
|
+
{ $group: { _id: "$scanId", count: { $sum: 1 } } },
|
|
30
|
+
])
|
|
31
|
+
.toArray();
|
|
32
|
+
return Object.fromEntries(rows.map((row) => [row._id, row.count]));
|
|
33
|
+
};
|
|
34
|
+
exports.getScanResourceCountsByScanIds = getScanResourceCountsByScanIds;
|
|
35
|
+
const getScanPages = async (query) => {
|
|
36
|
+
const limit = Math.min(query.limit ?? scanResources_constants_1.DEFAULT_PAGE_LIMIT, scanResources_constants_1.MAX_PAGE_LIMIT);
|
|
37
|
+
const filter = {
|
|
38
|
+
scanId: query.scanId,
|
|
39
|
+
status: { $in: [...(0, scanResources_utils_1.statusesForColumn)(query.column)] },
|
|
40
|
+
};
|
|
41
|
+
if (query.cursor) {
|
|
42
|
+
filter._id = { $gt: (0, scanResources_utils_1.decodeCursor)(query.cursor) };
|
|
43
|
+
}
|
|
44
|
+
if (query.search) {
|
|
45
|
+
filter.$or = [
|
|
46
|
+
{ url: { $regex: query.search, $options: "i" } },
|
|
47
|
+
{ title: { $regex: query.search, $options: "i" } },
|
|
48
|
+
];
|
|
49
|
+
}
|
|
50
|
+
if (query.since) {
|
|
51
|
+
filter.updatedAt = { $gte: query.since };
|
|
52
|
+
}
|
|
53
|
+
const docs = await (0, exports.getScanResourcesCollection)()
|
|
54
|
+
.find(filter, {
|
|
55
|
+
projection: scanResources_constants_1.SCAN_RESOURCE_BOARD_PROJECTION,
|
|
56
|
+
sort: { _id: 1 },
|
|
57
|
+
limit: limit + 1,
|
|
58
|
+
})
|
|
59
|
+
.toArray();
|
|
60
|
+
const hasMore = docs.length > limit;
|
|
61
|
+
const items = (hasMore ? docs.slice(0, limit) : docs);
|
|
62
|
+
const nextCursor = hasMore ? (0, scanResources_utils_1.encodeCursor)(items[items.length - 1]._id) : null;
|
|
63
|
+
return { items, nextCursor };
|
|
64
|
+
};
|
|
65
|
+
exports.getScanPages = getScanPages;
|
|
66
|
+
const getScanResourceById = async (scanId, pageId) => (0, exports.getScanResourcesCollection)().findOne({ scanId, _id: new mongodb_1.ObjectId(pageId) });
|
|
67
|
+
exports.getScanResourceById = getScanResourceById;
|
|
68
|
+
//# sourceMappingURL=scanResources.getters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scanResources.getters.js","sourceRoot":"","sources":["../../../src/websitalk/scanResources/scanResources.getters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { WithId } from "mongodb";
|
|
2
|
+
import type { BOARD_COLUMN_STATUSES, URL_TASK_STATUSES } from "./scanResources.constants";
|
|
3
|
+
export type UrlTaskStatus = (typeof URL_TASK_STATUSES)[keyof typeof URL_TASK_STATUSES];
|
|
4
|
+
export type BoardColumn = keyof typeof BOARD_COLUMN_STATUSES;
|
|
5
|
+
export type StageLogEntry = {
|
|
6
|
+
from: UrlTaskStatus | null;
|
|
7
|
+
to: UrlTaskStatus;
|
|
8
|
+
occurredAt: Date;
|
|
9
|
+
details: Record<string, unknown>;
|
|
10
|
+
};
|
|
11
|
+
export type ScanResource = {
|
|
12
|
+
urlHashId: string;
|
|
13
|
+
clientId: string;
|
|
14
|
+
scanId: string;
|
|
15
|
+
websiteUrlId: string;
|
|
16
|
+
url: string;
|
|
17
|
+
urlCanonical?: string | null;
|
|
18
|
+
title?: string | null;
|
|
19
|
+
h1?: string | null;
|
|
20
|
+
language?: string | null;
|
|
21
|
+
sourceType?: string | null;
|
|
22
|
+
context?: string | null;
|
|
23
|
+
contentHash?: string | null;
|
|
24
|
+
duplicateOfTaskId?: string | null;
|
|
25
|
+
breadcrumbs?: unknown;
|
|
26
|
+
description?: string | null;
|
|
27
|
+
sourceUrl?: string | null;
|
|
28
|
+
errorMessage?: string | null;
|
|
29
|
+
status: UrlTaskStatus;
|
|
30
|
+
depth: number;
|
|
31
|
+
retryCount: number;
|
|
32
|
+
processRetryCount?: number;
|
|
33
|
+
globalResurrections?: number;
|
|
34
|
+
noRetry?: boolean;
|
|
35
|
+
reviveAt?: Date | null;
|
|
36
|
+
statusEnteredAt?: Date;
|
|
37
|
+
httpStatus?: number;
|
|
38
|
+
finalUrl?: string;
|
|
39
|
+
batchDone?: number;
|
|
40
|
+
batchTotal?: number;
|
|
41
|
+
stageLogs?: StageLogEntry[];
|
|
42
|
+
createdAt: Date;
|
|
43
|
+
updatedAt: Date;
|
|
44
|
+
fetchedAt?: Date | null;
|
|
45
|
+
};
|
|
46
|
+
export type ScanResourceDoc = WithId<ScanResource>;
|
|
47
|
+
export type ScanResourceBoardProjection = Pick<ScanResourceDoc, "_id" | "url" | "title" | "status" | "statusEnteredAt" | "retryCount" | "processRetryCount" | "globalResurrections" | "noRetry" | "errorMessage" | "updatedAt" | "sourceType">;
|
|
48
|
+
export type ScanPagesQuery = {
|
|
49
|
+
scanId: string;
|
|
50
|
+
column: BoardColumn;
|
|
51
|
+
search?: string;
|
|
52
|
+
cursor?: string | null;
|
|
53
|
+
since?: Date;
|
|
54
|
+
limit?: number;
|
|
55
|
+
};
|
|
56
|
+
export type PagedResult<T> = {
|
|
57
|
+
items: T[];
|
|
58
|
+
nextCursor: string | null;
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=scanResources.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scanResources.types.d.ts","sourceRoot":"","sources":["../../../src/websitalk/scanResources/scanResources.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scanResources.types.js","sourceRoot":"","sources":["../../../src/websitalk/scanResources/scanResources.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ObjectId } from "mongodb";
|
|
2
|
+
import type { BoardColumn, UrlTaskStatus } from "./scanResources.types";
|
|
3
|
+
export declare const boardColumn: (status: UrlTaskStatus) => BoardColumn;
|
|
4
|
+
export declare const statusesForColumn: (column: BoardColumn) => readonly UrlTaskStatus[];
|
|
5
|
+
export declare const encodeCursor: (id: ObjectId) => string;
|
|
6
|
+
export declare const decodeCursor: (cursor: string) => ObjectId;
|
|
7
|
+
//# sourceMappingURL=scanResources.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scanResources.utils.d.ts","sourceRoot":"","sources":["../../../src/websitalk/scanResources/scanResources.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAcxE,eAAO,MAAM,WAAW,GAAI,QAAQ,aAAa,KAAG,WAC1B,CAAC;AAE3B,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,WAAW,KAClB,SAAS,aAAa,EAAmC,CAAC;AAE7D,eAAO,MAAM,YAAY,GAAI,IAAI,QAAQ,KAAG,MACM,CAAC;AAEnD,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,KAAG,QACiB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.decodeCursor = exports.encodeCursor = exports.statusesForColumn = exports.boardColumn = void 0;
|
|
4
|
+
const mongodb_1 = require("mongodb");
|
|
5
|
+
const scanResources_constants_1 = require("./scanResources.constants");
|
|
6
|
+
const STATUS_TO_COLUMN = Object.entries(scanResources_constants_1.BOARD_COLUMN_STATUSES).reduce((acc, [column, statuses]) => {
|
|
7
|
+
for (const status of statuses) {
|
|
8
|
+
acc[status] = column;
|
|
9
|
+
}
|
|
10
|
+
return acc;
|
|
11
|
+
}, {});
|
|
12
|
+
const boardColumn = (status) => STATUS_TO_COLUMN[status];
|
|
13
|
+
exports.boardColumn = boardColumn;
|
|
14
|
+
const statusesForColumn = (column) => scanResources_constants_1.BOARD_COLUMN_STATUSES[column];
|
|
15
|
+
exports.statusesForColumn = statusesForColumn;
|
|
16
|
+
const encodeCursor = (id) => Buffer.from(id.toHexString()).toString("base64");
|
|
17
|
+
exports.encodeCursor = encodeCursor;
|
|
18
|
+
const decodeCursor = (cursor) => new mongodb_1.ObjectId(Buffer.from(cursor, "base64").toString("utf-8"));
|
|
19
|
+
exports.decodeCursor = decodeCursor;
|
|
20
|
+
//# sourceMappingURL=scanResources.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scanResources.utils.js","sourceRoot":"","sources":["../../../src/websitalk/scanResources/scanResources.utils.ts"],"names":[],"mappings":";;;AAAA,qCAAmC;AACnC,uEAAkE;AAGlE,MAAM,gBAAgB,GAAuC,MAAM,CAAC,OAAO,CACzE,+CAAqB,CACtB,CAAC,MAAM,CACN,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE;IAC1B,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,GAAG,CAAC,MAAM,CAAC,GAAG,MAAqB,CAAC;IACtC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,EACD,EAAwC,CACzC,CAAC;AAEK,MAAM,WAAW,GAAG,CAAC,MAAqB,EAAe,EAAE,CAChE,gBAAgB,CAAC,MAAM,CAAC,CAAC;AADd,QAAA,WAAW,eACG;AAEpB,MAAM,iBAAiB,GAAG,CAC/B,MAAmB,EACO,EAAE,CAAC,+CAAqB,CAAC,MAAM,CAAC,CAAC;AAFhD,QAAA,iBAAiB,qBAE+B;AAEtD,MAAM,YAAY,GAAG,CAAC,EAAY,EAAU,EAAE,CACnD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AADtC,QAAA,YAAY,gBAC0B;AAE5C,MAAM,YAAY,GAAG,CAAC,MAAc,EAAY,EAAE,CACvD,IAAI,kBAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AADnD,QAAA,YAAY,gBACuC"}
|
package/jest.config.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
/** @type {import('ts-jest').JestConfigWithTsJest} */
|
|
2
|
-
module.exports = {
|
|
3
|
-
preset: 'ts-jest',
|
|
4
|
-
testEnvironment: 'node',
|
|
5
|
-
roots: ['<rootDir>/src'],
|
|
6
|
-
testPathIgnorePatterns: ['<rootDir>/src/__tests__/legacy/'],
|
|
7
|
-
testMatch: ['**/__tests__/**/*.spec.ts', '**/*.spec.ts'],
|
|
8
|
-
transform: {
|
|
9
|
-
'^.+\\.tsx?$': ['ts-jest', {
|
|
10
|
-
tsconfig: 'tsconfig.json',
|
|
11
|
-
}],
|
|
12
|
-
},
|
|
13
|
-
setupFilesAfterEnv: ['<rootDir>/src/__tests__/setup.ts'],
|
|
14
|
-
maxWorkers: 1,
|
|
15
|
-
verbose: true,
|
|
16
|
-
forceExit: true,
|
|
17
|
-
clearMocks: true,
|
|
18
|
-
resetMocks: true,
|
|
19
|
-
restoreMocks: true,
|
|
20
|
-
};
|
|
1
|
+
/** @type {import('ts-jest').JestConfigWithTsJest} */
|
|
2
|
+
module.exports = {
|
|
3
|
+
preset: 'ts-jest',
|
|
4
|
+
testEnvironment: 'node',
|
|
5
|
+
roots: ['<rootDir>/src'],
|
|
6
|
+
testPathIgnorePatterns: ['<rootDir>/src/__tests__/legacy/'],
|
|
7
|
+
testMatch: ['**/__tests__/**/*.spec.ts', '**/*.spec.ts'],
|
|
8
|
+
transform: {
|
|
9
|
+
'^.+\\.tsx?$': ['ts-jest', {
|
|
10
|
+
tsconfig: 'tsconfig.json',
|
|
11
|
+
}],
|
|
12
|
+
},
|
|
13
|
+
setupFilesAfterEnv: ['<rootDir>/src/__tests__/setup.ts'],
|
|
14
|
+
maxWorkers: 1,
|
|
15
|
+
verbose: true,
|
|
16
|
+
forceExit: true,
|
|
17
|
+
clearMocks: true,
|
|
18
|
+
resetMocks: true,
|
|
19
|
+
restoreMocks: true,
|
|
20
|
+
};
|
package/package.json
CHANGED
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@talkpilot/core-db",
|
|
3
|
-
"version": "1.3.
|
|
4
|
-
"description": "Core database package for centralized connections and ORM integration.",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts",
|
|
7
|
-
"scripts": {
|
|
8
|
-
"build": "tsc",
|
|
9
|
-
"dev": "tsc --watch",
|
|
10
|
-
"test": "jest",
|
|
11
|
-
"lint": "eslint 'src/**/*.{ts,tsx}'",
|
|
12
|
-
"format": "prettier --write \"src/**/*.{ts,tsx}\"",
|
|
13
|
-
"prepare": "npm run build"
|
|
14
|
-
},
|
|
15
|
-
"keywords": [
|
|
16
|
-
"database",
|
|
17
|
-
"orm",
|
|
18
|
-
"typescript",
|
|
19
|
-
"postgres",
|
|
20
|
-
"db-client"
|
|
21
|
-
],
|
|
22
|
-
"author": "",
|
|
23
|
-
"license": "MIT",
|
|
24
|
-
"dependencies": {
|
|
25
|
-
"dayjs": "^1.11.21",
|
|
26
|
-
"express": "^4.18.0",
|
|
27
|
-
"google-libphonenumber": "^3.2.0",
|
|
28
|
-
"mongodb": "^6.11.0"
|
|
29
|
-
},
|
|
30
|
-
"devDependencies": {
|
|
31
|
-
"@faker-js/faker": "^8.0.0",
|
|
32
|
-
"@types/express": "^4.17.0",
|
|
33
|
-
"@types/google-libphonenumber": "^7.4.0",
|
|
34
|
-
"@types/jest": "^29.0.0",
|
|
35
|
-
"@types/node": "^20.0.0",
|
|
36
|
-
"fishery": "^2.4.0",
|
|
37
|
-
"jest": "^29.0.0",
|
|
38
|
-
"mongodb-memory-server": "^10.0.0",
|
|
39
|
-
"prettier": "^3.8.2",
|
|
40
|
-
"ts-jest": "^29.0.0",
|
|
41
|
-
"typescript": "^5.0.0"
|
|
42
|
-
},
|
|
43
|
-
"publishConfig": {
|
|
44
|
-
"access": "public"
|
|
45
|
-
}
|
|
46
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@talkpilot/core-db",
|
|
3
|
+
"version": "1.3.41",
|
|
4
|
+
"description": "Core database package for centralized connections and ORM integration.",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "tsc",
|
|
9
|
+
"dev": "tsc --watch",
|
|
10
|
+
"test": "jest",
|
|
11
|
+
"lint": "eslint 'src/**/*.{ts,tsx}'",
|
|
12
|
+
"format": "prettier --write \"src/**/*.{ts,tsx}\"",
|
|
13
|
+
"prepare": "npm run build"
|
|
14
|
+
},
|
|
15
|
+
"keywords": [
|
|
16
|
+
"database",
|
|
17
|
+
"orm",
|
|
18
|
+
"typescript",
|
|
19
|
+
"postgres",
|
|
20
|
+
"db-client"
|
|
21
|
+
],
|
|
22
|
+
"author": "",
|
|
23
|
+
"license": "MIT",
|
|
24
|
+
"dependencies": {
|
|
25
|
+
"dayjs": "^1.11.21",
|
|
26
|
+
"express": "^4.18.0",
|
|
27
|
+
"google-libphonenumber": "^3.2.0",
|
|
28
|
+
"mongodb": "^6.11.0"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@faker-js/faker": "^8.0.0",
|
|
32
|
+
"@types/express": "^4.17.0",
|
|
33
|
+
"@types/google-libphonenumber": "^7.4.0",
|
|
34
|
+
"@types/jest": "^29.0.0",
|
|
35
|
+
"@types/node": "^20.0.0",
|
|
36
|
+
"fishery": "^2.4.0",
|
|
37
|
+
"jest": "^29.0.0",
|
|
38
|
+
"mongodb-memory-server": "^10.0.0",
|
|
39
|
+
"prettier": "^3.8.2",
|
|
40
|
+
"ts-jest": "^29.0.0",
|
|
41
|
+
"typescript": "^5.0.0"
|
|
42
|
+
},
|
|
43
|
+
"publishConfig": {
|
|
44
|
+
"access": "public"
|
|
45
|
+
}
|
|
46
|
+
}
|