@tstdl/base 0.93.123 → 0.93.126
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/ai/genkit/tests/multi-region.test.js +6 -6
- package/ai/index.d.ts +2 -6
- package/ai/index.js +2 -6
- package/ai/parser/index.d.ts +1 -0
- package/ai/parser/index.js +1 -0
- package/ai/parser/parser.d.ts +12 -0
- package/ai/parser/parser.js +28 -0
- package/ai/prompts/build.d.ts +21 -0
- package/ai/prompts/build.js +25 -0
- package/ai/prompts/index.d.ts +2 -0
- package/ai/prompts/index.js +2 -0
- package/ai/prompts/instructions-formatter.d.ts +9 -22
- package/ai/prompts/instructions-formatter.js +20 -7
- package/ai/prompts/instructions.js +1 -1
- package/ai/prompts/steering.d.ts +27 -0
- package/ai/prompts/steering.js +54 -0
- package/ai/tests/instructions-formatter.test.js +115 -0
- package/ai/tests/steering.test.js +37 -0
- package/application/application.d.ts +2 -1
- package/application/application.js +3 -0
- package/authentication/client/module.d.ts +1 -1
- package/authentication/client/module.js +4 -5
- package/authentication/tests/authentication-ancillary.service.test.js +1 -1
- package/authentication/tests/authentication.api-controller.test.js +3 -1
- package/authentication/tests/authentication.api-request-token.provider.test.js +1 -1
- package/authentication/tests/authentication.client-service.test.js +1 -1
- package/authentication/tests/authentication.service.test.js +1 -1
- package/authentication/tests/subject.service.test.js +1 -1
- package/circuit-breaker/tests/circuit-breaker.test.js +1 -1
- package/document-management/api/document-management.api.d.ts +16 -16
- package/document-management/api/document-management.api.js +12 -12
- package/document-management/models/ai-configuration.d.ts +59 -0
- package/document-management/models/ai-configuration.js +1 -0
- package/document-management/models/document-assignment-scope.model.js +2 -4
- package/document-management/models/document-assignment-task.model.js +2 -4
- package/document-management/models/document-collection-assignment.model.js +2 -4
- package/document-management/models/document-collection.model.js +2 -3
- package/document-management/models/document-content.model.d.ts +6 -0
- package/document-management/models/document-content.model.js +32 -0
- package/document-management/models/document-property-value.model.js +1 -2
- package/document-management/models/document-request-collection-assignment.model.js +2 -4
- package/document-management/models/document-request.model.js +2 -4
- package/document-management/models/document-tag-assignment.model.js +2 -3
- package/document-management/models/document-validation-execution-related-document.model.js +2 -4
- package/document-management/models/document-validation-execution.model.js +2 -5
- package/document-management/models/document-workflow.model.d.ts +2 -1
- package/document-management/models/document-workflow.model.js +4 -5
- package/document-management/models/document.model.js +2 -3
- package/document-management/models/index.d.ts +2 -0
- package/document-management/models/index.js +2 -0
- package/document-management/server/api/document-management.api.d.ts +7 -7
- package/document-management/server/api/document-management.api.js +9 -9
- package/document-management/server/configure.d.ts +4 -1
- package/document-management/server/configure.js +9 -4
- package/document-management/server/drizzle/{0000_silly_chimera.sql → 0000_curious_nighthawk.sql} +8 -28
- package/document-management/server/drizzle/meta/0000_snapshot.json +14 -286
- package/document-management/server/drizzle/meta/_journal.json +2 -2
- package/document-management/server/module.d.ts +2 -0
- package/document-management/server/module.js +1 -0
- package/document-management/server/schemas.d.ts +2 -1
- package/document-management/server/services/document-file.service.d.ts +6 -6
- package/document-management/server/services/document-file.service.js +7 -81
- package/document-management/server/services/document-management-ai-provider.service.d.ts +66 -0
- package/document-management/server/services/document-management-ai-provider.service.js +2 -0
- package/document-management/server/services/document-management-ai.service.d.ts +44 -7
- package/document-management/server/services/document-management-ai.service.js +332 -329
- package/document-management/server/services/document-validation.service.d.ts +1 -1
- package/document-management/server/services/document-workflow.service.d.ts +4 -3
- package/document-management/server/services/document-workflow.service.js +26 -9
- package/document-management/server/services/document.service.d.ts +7 -3
- package/document-management/server/services/document.service.js +13 -4
- package/document-management/server/services/index.d.ts +1 -0
- package/document-management/server/services/index.js +1 -0
- package/document-management/server/validators/ai-validation-executor.d.ts +419 -12
- package/document-management/server/validators/ai-validation-executor.js +51 -46
- package/document-management/server/validators/single-document-validation-executor.d.ts +1 -3
- package/document-management/server/validators/single-document-validation-executor.js +2 -4
- package/document-management/service-models/document.service-model.d.ts +3 -3
- package/document-management/service-models/document.service-model.js +1 -1
- package/document-management/tests/ai-config-hierarchy.test.d.ts +1 -0
- package/document-management/tests/ai-config-hierarchy.test.js +64 -0
- package/document-management/tests/ai-config-integration.test.d.ts +1 -0
- package/document-management/tests/ai-config-integration.test.js +125 -0
- package/document-management/tests/ai-config-merge.test.d.ts +1 -0
- package/document-management/tests/ai-config-merge.test.js +38 -0
- package/document-management/tests/document-management-ai-overrides.test.d.ts +1 -0
- package/document-management/tests/document-management-ai-overrides.test.js +64 -0
- package/document-management/tests/document-management-core.test.js +6 -6
- package/document-management/tests/document-management.api.test.js +5 -5
- package/document-management/tests/document-statistics.service.test.js +10 -6
- package/document-management/tests/document-validation-ai-overrides.test.d.ts +1 -0
- package/document-management/tests/document-validation-ai-overrides.test.js +85 -0
- package/document-management/tests/document.service.test.js +15 -11
- package/document-management/tests/enum-helpers.test.js +5 -5
- package/examples/document-management/ai-provider.d.ts +20 -0
- package/examples/document-management/ai-provider.js +74 -0
- package/examples/document-management/main.js +9 -6
- package/examples/injector/graph-example.d.ts +1 -0
- package/examples/injector/graph-example.js +340 -0
- package/injector/decorators.d.ts +4 -4
- package/injector/decorators.js +5 -6
- package/injector/forward-ref.d.ts +15 -0
- package/injector/forward-ref.js +20 -0
- package/injector/graph.d.ts +113 -0
- package/injector/graph.js +631 -0
- package/injector/index.d.ts +2 -0
- package/injector/index.js +2 -0
- package/injector/inject.d.ts +15 -15
- package/injector/injector.d.ts +101 -13
- package/injector/injector.js +103 -59
- package/injector/resolve-chain.d.ts +20 -6
- package/injector/resolve-chain.js +39 -14
- package/injector/tests/advanced.test.d.ts +1 -0
- package/injector/tests/advanced.test.js +116 -0
- package/injector/tests/async-init.test.d.ts +1 -0
- package/injector/tests/async-init.test.js +77 -0
- package/injector/tests/basic.test.d.ts +1 -0
- package/injector/tests/basic.test.js +114 -0
- package/injector/tests/hierarchical.test.d.ts +1 -0
- package/injector/tests/hierarchical.test.js +59 -0
- package/injector/tests/lifecycles.test.d.ts +1 -0
- package/injector/tests/lifecycles.test.js +109 -0
- package/injector/token.d.ts +2 -1
- package/injector/token.js +4 -1
- package/injector/type-info.d.ts +1 -5
- package/injector/types.d.ts +4 -10
- package/logger/tests/pretty-print.test.d.ts +1 -0
- package/logger/{formatters → tests}/pretty-print.test.js +1 -1
- package/logger/transports/console.d.ts +3 -2
- package/logger/transports/console.js +4 -3
- package/notification/api/notification.api.d.ts +26 -6
- package/notification/api/notification.api.js +15 -4
- package/notification/client/notification-client.d.ts +6 -0
- package/notification/client/notification-client.js +13 -3
- package/notification/models/in-app-notification.model.d.ts +9 -3
- package/notification/models/in-app-notification.model.js +32 -11
- package/notification/models/notification-log.model.js +2 -3
- package/notification/server/api/notification.api-controller.d.ts +1 -0
- package/notification/server/api/notification.api-controller.js +7 -1
- package/notification/server/drizzle/{0000_oval_rage.sql → 0000_wise_pyro.sql} +22 -4
- package/notification/server/drizzle/meta/0000_snapshot.json +249 -37
- package/notification/server/drizzle/meta/_journal.json +2 -2
- package/notification/server/module.d.ts +5 -0
- package/notification/server/module.js +6 -1
- package/notification/server/providers/in-app-channel-provider.js +1 -0
- package/notification/server/schemas.d.ts +3 -2
- package/notification/server/schemas.js +3 -2
- package/notification/server/services/notification.service.d.ts +11 -6
- package/notification/server/services/notification.service.js +138 -42
- package/notification/tests/notification-api.test.js +16 -6
- package/notification/tests/notification-client.test.d.ts +1 -0
- package/notification/tests/{unit/notification-client.test.js → notification-client.test.js} +5 -5
- package/notification/tests/notification-flow.test.js +45 -7
- package/notification/tests/notification-sse.service.test.js +1 -1
- package/notification/tests/notification-type.service.test.js +1 -1
- package/object-storage/s3/s3.object-storage.js +3 -0
- package/object-storage/s3/tests/s3.object-storage.integration.test.js +1 -1
- package/orm/server/drizzle/schema-converter.js +5 -3
- package/orm/tests/repository-attributes.test.js +10 -17
- package/orm/tests/repository-cti-mapping.test.js +2 -2
- package/orm/tests/repository-cti-soft-delete.test.js +1 -1
- package/orm/tests/repository-cti.test.js +19 -33
- package/orm/tests/repository-extra-coverage.test.js +1 -1
- package/orm/tests/repository-search.test.js +5 -2
- package/orm/tests/schema-converter.test.js +1 -0
- package/orm/tests/transaction-safety.test.js +1 -1
- package/package.json +7 -9
- package/rate-limit/tests/postgres-rate-limiter.test.js +6 -16
- package/renderer/d2.d.ts +77 -0
- package/renderer/d2.js +68 -0
- package/renderer/graphviz.d.ts +47 -0
- package/renderer/graphviz.js +58 -0
- package/renderer/index.d.ts +4 -0
- package/renderer/index.js +4 -0
- package/renderer/typst.d.ts +57 -0
- package/renderer/typst.js +62 -0
- package/rpc/adapters/readable-stream.adapter.d.ts +3 -0
- package/rpc/adapters/readable-stream.adapter.js +5 -1
- package/rpc/rpc.js +28 -3
- package/rpc/tests/rpc.integration.test.js +3 -1
- package/schema/schemas/nullable.js +1 -1
- package/task-queue/task-queue.d.ts +2 -0
- package/task-queue/task-queue.js +6 -2
- package/task-queue/tests/complex.test.js +1 -1
- package/task-queue/tests/dependencies.test.js +3 -3
- package/task-queue/tests/extensive-dependencies.test.js +1 -1
- package/task-queue/tests/queue.test.js +1 -1
- package/task-queue/tests/worker.test.js +4 -7
- package/test5.js +52 -8
- package/{unit-test → testing}/integration-setup.d.ts +1 -0
- package/{unit-test → testing}/integration-setup.js +13 -0
- package/utils/base64.d.ts +7 -0
- package/utils/base64.js +10 -1
- package/utils/noop.d.ts +7 -1
- package/utils/noop.js +7 -1
- package/ai/ai-file.service.d.ts +0 -57
- package/ai/ai-file.service.js +0 -233
- package/ai/ai-session.d.ts +0 -38
- package/ai/ai-session.js +0 -50
- package/ai/ai.service.d.ts +0 -126
- package/ai/ai.service.js +0 -481
- package/ai/functions.d.ts +0 -9
- package/ai/functions.js +0 -38
- package/ai/module.d.ts +0 -26
- package/ai/module.js +0 -25
- package/ai/types.d.ts +0 -229
- package/ai/types.js +0 -33
- package/latex/index.d.ts +0 -1
- package/latex/index.js +0 -1
- package/typst/index.d.ts +0 -1
- package/typst/index.js +0 -1
- package/typst/render.d.ts +0 -23
- package/typst/render.js +0 -32
- /package/{logger/formatters/pretty-print.test.d.ts → ai/tests/instructions-formatter.test.d.ts} +0 -0
- /package/{notification/tests/unit/notification-client.test.d.ts → ai/tests/steering.test.d.ts} +0 -0
- /package/{latex/render.d.ts → renderer/latex.d.ts} +0 -0
- /package/{latex/render.js → renderer/latex.js} +0 -0
- /package/{unit-test → testing}/index.d.ts +0 -0
- /package/{unit-test → testing}/index.js +0 -0
|
@@ -6,7 +6,7 @@ import { DocumentValidationResultStatus } from '../../models/index.js';
|
|
|
6
6
|
import type { DocumentValidationExecutor, DocumentValidationExecutorContext, DocumentValidationExecutorContextDocumentData } from '../validators/index.js';
|
|
7
7
|
export declare class DocumentValidationService {
|
|
8
8
|
#private;
|
|
9
|
-
[afterResolve](_: unknown, { cancellationSignal }: AfterResolveContext
|
|
9
|
+
[afterResolve](_: unknown, { cancellationSignal }: AfterResolveContext): void;
|
|
10
10
|
processQueue(cancellationSignal: CancellationSignal): void;
|
|
11
11
|
startValidationWorkflow(tenantId: string, documentId: string): Promise<void>;
|
|
12
12
|
setExecutionRunning(tenantId: string, executionId: string): Promise<void>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type AfterResolveContext } from '../../../injector/index.js';
|
|
2
2
|
import { afterResolve } from '../../../injector/interfaces.js';
|
|
3
3
|
import { Transactional } from '../../../orm/server/index.js';
|
|
4
4
|
import type { OneOrMany } from '../../../types/index.js';
|
|
@@ -7,7 +7,7 @@ export declare class DocumentWorkflowService extends Transactional {
|
|
|
7
7
|
#private;
|
|
8
8
|
private readonly documentService;
|
|
9
9
|
readonly repository: import("../../../orm/server/index.js").EntityRepository<DocumentWorkflow>;
|
|
10
|
-
[afterResolve](_: unknown, { cancellationSignal }: AfterResolveContext
|
|
10
|
+
[afterResolve](_: unknown, { cancellationSignal }: AfterResolveContext): void;
|
|
11
11
|
loadLatestWorkflow(tenantId: string, documentId: string): Promise<DocumentWorkflow>;
|
|
12
12
|
loadLatestWorkflows(tenantId: string, documentIds: string[]): Promise<DocumentWorkflow[]>;
|
|
13
13
|
loadWorkflows(tenantId: string, documentId: OneOrMany<string>): Promise<DocumentWorkflow[]>;
|
|
@@ -15,8 +15,9 @@ export declare class DocumentWorkflowService extends Transactional {
|
|
|
15
15
|
initiateWorkflow(tenantId: string, documentId: string, step: DocumentWorkflowStep, skipAi: boolean): Promise<DocumentWorkflow>;
|
|
16
16
|
private setWorkflowState;
|
|
17
17
|
private processWorkflowJob;
|
|
18
|
+
private processContentExtractionWorkflow;
|
|
18
19
|
private processClassificationWorkflow;
|
|
19
|
-
private
|
|
20
|
+
private processDataExtractionWorkflow;
|
|
20
21
|
private processAssignmentWorkflow;
|
|
21
22
|
private processValidationWorkflow;
|
|
22
23
|
}
|
|
@@ -9,6 +9,7 @@ var DocumentWorkflowService_1;
|
|
|
9
9
|
import { match } from 'ts-pattern';
|
|
10
10
|
import { BadRequestError } from '../../../errors/bad-request.error.js';
|
|
11
11
|
import { NotImplementedError } from '../../../errors/not-implemented.error.js';
|
|
12
|
+
import { forwardRef } from '../../../injector/index.js';
|
|
12
13
|
import { inject } from '../../../injector/inject.js';
|
|
13
14
|
import { afterResolve } from '../../../injector/interfaces.js';
|
|
14
15
|
import { Logger } from '../../../logger/index.js';
|
|
@@ -38,7 +39,7 @@ let DocumentWorkflowService = DocumentWorkflowService_1 = class DocumentWorkflow
|
|
|
38
39
|
#observationService = inject(DocumentManagementObservationService);
|
|
39
40
|
#taskQueue = inject((TaskQueue), { namespace: 'DocumentManagement:DocumentWorkflow', visibilityTimeout: 5 * 60 * 1000, maxTries: 3 });
|
|
40
41
|
#logger = inject(Logger, DocumentWorkflowService_1.name);
|
|
41
|
-
documentService = inject(
|
|
42
|
+
documentService = inject(forwardRef(() => DocumentService));
|
|
42
43
|
repository = injectRepository(DocumentWorkflow);
|
|
43
44
|
[afterResolve](_, { cancellationSignal }) {
|
|
44
45
|
if (this.isInTransaction) {
|
|
@@ -83,13 +84,19 @@ let DocumentWorkflowService = DocumentWorkflowService_1 = class DocumentWorkflow
|
|
|
83
84
|
});
|
|
84
85
|
if (targetState == DocumentWorkflowState.Completed) {
|
|
85
86
|
await match(workflow.step)
|
|
87
|
+
.with(DocumentWorkflowStep.ContentExtraction, async () => {
|
|
88
|
+
if (!workflow.skipAi) {
|
|
89
|
+
throw new BadRequestError('Proceeding from content extraction occurs automatically.');
|
|
90
|
+
}
|
|
91
|
+
await this.withTransaction(tx).initiateWorkflow(tenantId, documentId, DocumentWorkflowStep.Classification, workflow.skipAi);
|
|
92
|
+
})
|
|
86
93
|
.with(DocumentWorkflowStep.Classification, async () => {
|
|
87
94
|
if (!workflow.skipAi) {
|
|
88
95
|
throw new BadRequestError('Proceeding from classification occurs automatically.');
|
|
89
96
|
}
|
|
90
|
-
await this.withTransaction(tx).initiateWorkflow(tenantId, documentId, DocumentWorkflowStep.
|
|
97
|
+
await this.withTransaction(tx).initiateWorkflow(tenantId, documentId, DocumentWorkflowStep.DataExtraction, workflow.skipAi);
|
|
91
98
|
})
|
|
92
|
-
.with(DocumentWorkflowStep.
|
|
99
|
+
.with(DocumentWorkflowStep.DataExtraction, async () => await this.withTransaction(tx).initiateWorkflow(tenantId, documentId, DocumentWorkflowStep.Assignment, workflow.skipAi))
|
|
93
100
|
.with(DocumentWorkflowStep.Assignment, async () => await this.withTransaction(tx).initiateWorkflow(tenantId, documentId, DocumentWorkflowStep.Validation, workflow.skipAi))
|
|
94
101
|
.with(DocumentWorkflowStep.Validation, () => { })
|
|
95
102
|
.exhaustive();
|
|
@@ -115,15 +122,21 @@ let DocumentWorkflowService = DocumentWorkflowService_1 = class DocumentWorkflow
|
|
|
115
122
|
try {
|
|
116
123
|
await this.setWorkflowState(workflow.id, DocumentWorkflowState.Running);
|
|
117
124
|
await match(workflow.step)
|
|
125
|
+
.with(DocumentWorkflowStep.ContentExtraction, async () => await this.processContentExtractionWorkflow(workflow))
|
|
118
126
|
.with(DocumentWorkflowStep.Classification, async () => await this.processClassificationWorkflow(workflow))
|
|
119
|
-
.with(DocumentWorkflowStep.
|
|
127
|
+
.with(DocumentWorkflowStep.DataExtraction, async () => await this.processDataExtractionWorkflow(workflow))
|
|
120
128
|
.with(DocumentWorkflowStep.Assignment, async () => await this.processAssignmentWorkflow(workflow))
|
|
121
129
|
.with(DocumentWorkflowStep.Validation, async () => await this.processValidationWorkflow(workflow))
|
|
122
130
|
.exhaustive();
|
|
123
|
-
if (workflow.step == DocumentWorkflowStep.
|
|
124
|
-
// no need for after
|
|
131
|
+
if (workflow.step == DocumentWorkflowStep.ContentExtraction) {
|
|
132
|
+
// no need for after content extraction review. Automatically start classification.
|
|
125
133
|
await this.setWorkflowState(workflow.id, DocumentWorkflowState.Completed);
|
|
126
|
-
await this.initiateWorkflow(workflow.tenantId, workflow.documentId, DocumentWorkflowStep.
|
|
134
|
+
await this.initiateWorkflow(workflow.tenantId, workflow.documentId, DocumentWorkflowStep.Classification, workflow.skipAi);
|
|
135
|
+
}
|
|
136
|
+
else if (workflow.step == DocumentWorkflowStep.Classification) {
|
|
137
|
+
// no need for after classification review. Automatically start data extraction.
|
|
138
|
+
await this.setWorkflowState(workflow.id, DocumentWorkflowState.Completed);
|
|
139
|
+
await this.initiateWorkflow(workflow.tenantId, workflow.documentId, DocumentWorkflowStep.DataExtraction, workflow.skipAi);
|
|
127
140
|
}
|
|
128
141
|
else {
|
|
129
142
|
await this.setWorkflowState(workflow.id, DocumentWorkflowState.Review);
|
|
@@ -138,13 +151,17 @@ let DocumentWorkflowService = DocumentWorkflowService_1 = class DocumentWorkflow
|
|
|
138
151
|
throw error;
|
|
139
152
|
}
|
|
140
153
|
}
|
|
154
|
+
async processContentExtractionWorkflow(workflow) {
|
|
155
|
+
const content = await this.#documentManagementAiService.extractContent(workflow.tenantId, workflow.documentId);
|
|
156
|
+
await this.documentService.setContent(workflow.tenantId, workflow.documentId, { content });
|
|
157
|
+
}
|
|
141
158
|
async processClassificationWorkflow(workflow) {
|
|
142
159
|
const typeId = await this.#documentManagementAiService.classifyDocumentType(workflow.tenantId, workflow.documentId);
|
|
143
160
|
await this.documentService.repository.update(workflow.documentId, { typeId, approval: DocumentApproval.Pending });
|
|
144
161
|
this.#observationService.documentChange(workflow.documentId, this.session);
|
|
145
162
|
}
|
|
146
|
-
async
|
|
147
|
-
const extraction = await this.#documentManagementAiService.
|
|
163
|
+
async processDataExtractionWorkflow(workflow) {
|
|
164
|
+
const extraction = await this.#documentManagementAiService.extractData(workflow.tenantId, workflow.documentId);
|
|
148
165
|
await this.documentService.update(workflow.tenantId, workflow.documentId, extraction);
|
|
149
166
|
}
|
|
150
167
|
async processAssignmentWorkflow(workflow) {
|
|
@@ -14,12 +14,16 @@ export declare class DocumentService extends Transactional {
|
|
|
14
14
|
properties?: SetDocumentPropertyParameters[];
|
|
15
15
|
collections?: UpdateDocumentCollectionsParameters;
|
|
16
16
|
}): Promise<void>;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
getFileContent(tenantId: string, documentId: string): Promise<Uint8Array>;
|
|
18
|
+
getFileContentStream(tenantId: string, documentId: string): ReadableStream<Uint8Array>;
|
|
19
|
+
getFileContentUrl(tenantId: string, documentId: string, download?: boolean): Promise<string>;
|
|
20
20
|
getPreview(tenantId: string, documentId: string, page?: number): Promise<Uint8Array>;
|
|
21
21
|
getPreviewStream(tenantId: string, documentId: string, page?: number): ReadableStream<Uint8Array>;
|
|
22
22
|
getPreviewUrl(tenantId: string, documentId: string, page?: number): Promise<string>;
|
|
23
|
+
getContent(tenantId: string, documentId: string): Promise<string | null>;
|
|
24
|
+
setContent(tenantId: string, documentId: string, data: {
|
|
25
|
+
content: string;
|
|
26
|
+
}): Promise<void>;
|
|
23
27
|
/**
|
|
24
28
|
* @returns collectionIds from either direct assignment or automatic assignment scope
|
|
25
29
|
*/
|
|
@@ -17,7 +17,7 @@ import { objectKeys } from '../../../utils/object/object.js';
|
|
|
17
17
|
import { readableStreamFromPromise } from '../../../utils/stream/from-promise.js';
|
|
18
18
|
import { tryIgnoreLogAsync } from '../../../utils/try-ignore.js';
|
|
19
19
|
import { isDefined, isNotReadableStream, isNotUint8Array, isUndefined } from '../../../utils/type-guards.js';
|
|
20
|
-
import { Document, DocumentApproval, DocumentAssignmentScope, DocumentAssignmentTask, DocumentWorkflowStep } from '../../models/index.js';
|
|
20
|
+
import { Document, DocumentApproval, DocumentAssignmentScope, DocumentAssignmentTask, DocumentContent, DocumentWorkflowStep } from '../../models/index.js';
|
|
21
21
|
import { DocumentManagementConfiguration } from '../module.js';
|
|
22
22
|
import { DocumentCollectionService } from './document-collection.service.js';
|
|
23
23
|
import { DocumentFileService } from './document-file.service.js';
|
|
@@ -37,6 +37,7 @@ let DocumentService = DocumentService_1 = class DocumentService extends Transact
|
|
|
37
37
|
#collectionService = injectTransactional(DocumentCollectionService);
|
|
38
38
|
#documentAssignmentTaskRepository = injectRepository(DocumentAssignmentTask);
|
|
39
39
|
#documentAssignmentScopeRepository = injectRepository(DocumentAssignmentScope);
|
|
40
|
+
#documentContentRepository = injectRepository(DocumentContent);
|
|
40
41
|
#observationService = inject(DocumentManagementObservationService);
|
|
41
42
|
#logger = inject(Logger, DocumentService_1.name);
|
|
42
43
|
repository = injectRepository(Document);
|
|
@@ -113,17 +114,17 @@ let DocumentService = DocumentService_1 = class DocumentService extends Transact
|
|
|
113
114
|
this.#observationService.documentChange(id, tx);
|
|
114
115
|
});
|
|
115
116
|
}
|
|
116
|
-
async
|
|
117
|
+
async getFileContent(tenantId, documentId) {
|
|
117
118
|
const document = await this.repository.loadByQuery({ tenantId, id: documentId });
|
|
118
119
|
return await this.#documentFileService.getContent(document);
|
|
119
120
|
}
|
|
120
|
-
|
|
121
|
+
getFileContentStream(tenantId, documentId) {
|
|
121
122
|
return readableStreamFromPromise(async () => {
|
|
122
123
|
const document = await this.repository.loadByQuery({ tenantId, id: documentId });
|
|
123
124
|
return this.#documentFileService.getContentStream(document);
|
|
124
125
|
});
|
|
125
126
|
}
|
|
126
|
-
async
|
|
127
|
+
async getFileContentUrl(tenantId, documentId, download = false) {
|
|
127
128
|
const document = await this.repository.loadByQuery({ tenantId, id: documentId });
|
|
128
129
|
return await this.#documentFileService.getContentUrl(document, download);
|
|
129
130
|
}
|
|
@@ -141,6 +142,14 @@ let DocumentService = DocumentService_1 = class DocumentService extends Transact
|
|
|
141
142
|
const document = await this.repository.loadByQuery({ tenantId, id: documentId });
|
|
142
143
|
return await this.#documentFileService.getPreviewUrl(document, page);
|
|
143
144
|
}
|
|
145
|
+
async getContent(tenantId, documentId) {
|
|
146
|
+
const documentContent = await this.#documentContentRepository.tryLoadByQuery({ tenantId, documentId });
|
|
147
|
+
return documentContent?.content ?? null;
|
|
148
|
+
}
|
|
149
|
+
async setContent(tenantId, documentId, data) {
|
|
150
|
+
await this.#documentContentRepository.upsert(['tenantId', 'documentId'], { tenantId, documentId, content: data.content });
|
|
151
|
+
// this.#observationService.documentChange(documentId, this.session);
|
|
152
|
+
}
|
|
144
153
|
/**
|
|
145
154
|
* @returns collectionIds from either direct assignment or automatic assignment scope
|
|
146
155
|
*/
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './document-category-type.service.js';
|
|
2
2
|
export * from './document-collection.service.js';
|
|
3
3
|
export * from './document-file.service.js';
|
|
4
|
+
export * from './document-management-ai-provider.service.js';
|
|
4
5
|
export * from './document-management-ai.service.js';
|
|
5
6
|
export * from './document-management-ancillary.service.js';
|
|
6
7
|
export * from './document-management-observation.service.js';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './document-category-type.service.js';
|
|
2
2
|
export * from './document-collection.service.js';
|
|
3
3
|
export * from './document-file.service.js';
|
|
4
|
+
export * from './document-management-ai-provider.service.js';
|
|
4
5
|
export * from './document-management-ai.service.js';
|
|
5
6
|
export * from './document-management-ancillary.service.js';
|
|
6
7
|
export * from './document-management-observation.service.js';
|