@tstdl/base 0.91.50 → 0.91.52

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.
Files changed (164) hide show
  1. package/ai/data-extracting.d.ts +1 -0
  2. package/ai/data-extracting.js +62 -0
  3. package/authentication/server/authentication.api-controller.js +4 -4
  4. package/cancellation/token.d.ts +1 -2
  5. package/cancellation/token.js +1 -1
  6. package/core.d.ts +1 -1
  7. package/core.js +1 -1
  8. package/document-management/api/document-management.api.d.ts +753 -0
  9. package/document-management/api/document-management.api.js +222 -0
  10. package/document-management/api/index.d.ts +1 -0
  11. package/document-management/api/index.js +1 -0
  12. package/document-management/drizzle/0000_wakeful_firebrand.sql +228 -0
  13. package/document-management/drizzle/meta/0000_snapshot.json +1538 -0
  14. package/document-management/drizzle/meta/_journal.json +13 -0
  15. package/document-management/drizzle.config.d.ts +2 -0
  16. package/document-management/drizzle.config.js +11 -0
  17. package/document-management/index.d.ts +5 -0
  18. package/document-management/index.js +5 -0
  19. package/document-management/localizations/english.d.ts +2 -0
  20. package/document-management/localizations/english.js +9 -0
  21. package/document-management/localizations/german.d.ts +2 -0
  22. package/document-management/localizations/german.js +9 -0
  23. package/document-management/localizations/index.d.ts +5 -0
  24. package/document-management/localizations/index.js +9 -0
  25. package/document-management/localizations/localization.d.ts +9 -0
  26. package/document-management/localizations/localization.js +2 -0
  27. package/document-management/models/document-category.model.d.ts +4 -0
  28. package/document-management/models/document-category.model.js +18 -0
  29. package/document-management/models/document-collection-document.model.d.ts +7 -0
  30. package/document-management/models/document-collection-document.model.js +33 -0
  31. package/document-management/models/document-collection.model.d.ts +3 -0
  32. package/document-management/models/document-collection.model.js +14 -0
  33. package/document-management/models/document-file.model.d.ts +7 -0
  34. package/document-management/models/document-file.model.js +33 -0
  35. package/document-management/models/document-property-value.model.d.ts +21 -0
  36. package/document-management/models/document-property-value.model.js +58 -0
  37. package/document-management/models/document-property.model.d.ts +11 -0
  38. package/document-management/models/document-property.model.js +30 -0
  39. package/document-management/models/document-request-collection.model.d.ts +6 -0
  40. package/document-management/models/document-request-collection.model.js +28 -0
  41. package/document-management/models/document-request-file.model.d.ts +11 -0
  42. package/document-management/models/document-request-file.model.js +56 -0
  43. package/document-management/models/document-request-template.d.ts +10 -0
  44. package/document-management/models/document-request-template.js +39 -0
  45. package/document-management/models/document-request.model.d.ts +9 -0
  46. package/document-management/models/document-request.model.js +37 -0
  47. package/document-management/models/document-requests-template.d.ts +5 -0
  48. package/document-management/models/document-requests-template.js +23 -0
  49. package/document-management/models/document-type-property.model.d.ts +6 -0
  50. package/document-management/models/document-type-property.model.js +28 -0
  51. package/document-management/models/document-type.model.d.ts +7 -0
  52. package/document-management/models/document-type.model.js +32 -0
  53. package/document-management/models/document.model.d.ts +9 -0
  54. package/document-management/models/document.model.js +44 -0
  55. package/document-management/models/index.d.ts +15 -0
  56. package/document-management/models/index.js +15 -0
  57. package/document-management/models/schemas.d.ts +33 -0
  58. package/document-management/models/schemas.js +34 -0
  59. package/document-management/models/service-models/categories-and-types.view-model.d.ts +6 -0
  60. package/document-management/models/service-models/categories-and-types.view-model.js +24 -0
  61. package/document-management/models/service-models/document-folders.view-model.d.ts +22 -0
  62. package/document-management/models/service-models/document-folders.view-model.js +56 -0
  63. package/document-management/models/service-models/document-requests-template.view-model.d.ts +8 -0
  64. package/document-management/models/service-models/document-requests-template.view-model.js +26 -0
  65. package/document-management/models/service-models/document.service-model.d.ts +262 -0
  66. package/document-management/models/service-models/document.service-model.js +50 -0
  67. package/document-management/models/service-models/document.view-model.d.ts +33 -0
  68. package/document-management/models/service-models/document.view-model.js +99 -0
  69. package/document-management/models/service-models/index.d.ts +8 -0
  70. package/document-management/models/service-models/index.js +8 -0
  71. package/document-management/models/service-models/normalized-document-collection-view.model.d.ts +73 -0
  72. package/document-management/models/service-models/normalized-document-collection-view.model.js +110 -0
  73. package/document-management/models/service-models/normalized-requests-template-data.model.d.ts +16 -0
  74. package/document-management/models/service-models/normalized-requests-template-data.model.js +13 -0
  75. package/document-management/models/service-models/stats.view-model.d.ts +6 -0
  76. package/document-management/models/service-models/stats.view-model.js +32 -0
  77. package/document-management/module.d.ts +11 -0
  78. package/document-management/module.js +27 -0
  79. package/document-management/services/document-management.service.d.ts +65 -0
  80. package/document-management/services/document-management.service.js +376 -0
  81. package/document-management/services/index.d.ts +1 -0
  82. package/document-management/services/index.js +1 -0
  83. package/examples/document-management/main.d.ts +1 -0
  84. package/examples/document-management/main.js +30 -0
  85. package/examples/orm/drizzle.config.js +2 -1
  86. package/examples/orm/schemas.d.ts +1 -1
  87. package/examples/orm/user.model.d.ts +1 -2
  88. package/examples/orm/user.model.js +0 -1
  89. package/http/server/node/node-http-server.js +5 -5
  90. package/injector/injector.d.ts +4 -1
  91. package/injector/injector.js +4 -1
  92. package/injector/interfaces.d.ts +3 -3
  93. package/json-path/json-path.d.ts +2 -0
  94. package/json-path/json-path.js +7 -0
  95. package/message-bus/message-bus.d.ts +4 -6
  96. package/orm/database-schema.d.ts +3 -0
  97. package/orm/database-schema.js +6 -2
  98. package/orm/database.d.ts +6 -0
  99. package/orm/database.js +14 -0
  100. package/orm/decorators.d.ts +25 -2
  101. package/orm/decorators.js +15 -0
  102. package/orm/drizzle/index.d.ts +1 -0
  103. package/orm/drizzle/index.js +1 -0
  104. package/orm/drizzle/schema-converter.d.ts +37 -8
  105. package/orm/drizzle/schema-converter.js +121 -40
  106. package/orm/entity.d.ts +15 -12
  107. package/orm/entity.js +24 -11
  108. package/orm/index.d.ts +3 -2
  109. package/orm/index.js +3 -2
  110. package/orm/module.d.ts +6 -0
  111. package/orm/module.js +15 -0
  112. package/orm/query-converter.d.ts +5 -0
  113. package/orm/query-converter.js +114 -0
  114. package/orm/query.d.ts +15 -13
  115. package/orm/repository.d.ts +90 -31
  116. package/orm/repository.js +357 -55
  117. package/orm/schemas/index.d.ts +3 -0
  118. package/orm/schemas/index.js +3 -0
  119. package/orm/schemas/json.d.ts +9 -0
  120. package/orm/schemas/json.js +19 -0
  121. package/orm/schemas/numeric-date.d.ts +8 -0
  122. package/orm/schemas/numeric-date.js +13 -0
  123. package/orm/schemas/timestamp.d.ts +10 -0
  124. package/orm/schemas/timestamp.js +20 -0
  125. package/orm/transaction.d.ts +29 -0
  126. package/orm/transaction.js +73 -0
  127. package/orm/types.d.ts +15 -8
  128. package/orm/types.js +3 -2
  129. package/package.json +23 -12
  130. package/{rxjs → rxjs-utils}/reject-error.d.ts +1 -1
  131. package/{rxjs → rxjs-utils}/retry-backoff.d.ts +2 -2
  132. package/{rxjs → rxjs-utils}/slow-array.d.ts +7 -7
  133. package/{rxjs → rxjs-utils}/slow-array.js +2 -2
  134. package/{rxjs → rxjs-utils}/start-with-provider.d.ts +1 -1
  135. package/{rxjs → rxjs-utils}/teardown.d.ts +1 -1
  136. package/{rxjs → rxjs-utils}/untrack.d.ts +1 -1
  137. package/schema/decorators/types.d.ts +2 -2
  138. package/schema/schemas/number.d.ts +1 -1
  139. package/signals/pipe.d.ts +1 -1
  140. package/signals/pipe.js +1 -2
  141. package/sse/server-sent-events.d.ts +54 -0
  142. package/sse/server-sent-events.js +54 -0
  143. package/types.d.ts +5 -1
  144. package/utils/comparison.d.ts +2 -1
  145. package/utils/comparison.js +4 -3
  146. package/utils/compression.d.ts +4 -4
  147. package/utils/compression.js +35 -43
  148. package/utils/object/dereference.d.ts +6 -4
  149. package/utils/object/dereference.js +20 -8
  150. package/utils/object/object.d.ts +2 -0
  151. package/utils/object/object.js +20 -0
  152. /package/{rxjs → rxjs-utils}/cast.d.ts +0 -0
  153. /package/{rxjs → rxjs-utils}/cast.js +0 -0
  154. /package/{rxjs → rxjs-utils}/index.d.ts +0 -0
  155. /package/{rxjs → rxjs-utils}/index.js +0 -0
  156. /package/{rxjs → rxjs-utils}/noop.d.ts +0 -0
  157. /package/{rxjs → rxjs-utils}/noop.js +0 -0
  158. /package/{rxjs → rxjs-utils}/reject-error.js +0 -0
  159. /package/{rxjs → rxjs-utils}/retry-backoff.js +0 -0
  160. /package/{rxjs → rxjs-utils}/start-with-provider.js +0 -0
  161. /package/{rxjs → rxjs-utils}/teardown.js +0 -0
  162. /package/{rxjs → rxjs-utils}/timing.d.ts +0 -0
  163. /package/{rxjs → rxjs-utils}/timing.js +0 -0
  164. /package/{rxjs → rxjs-utils}/untrack.js +0 -0
@@ -0,0 +1,110 @@
1
+ import { group, map } from '../../../utils/iterable-helpers/index.js';
2
+ import { assertDefinedPass, isNull, isString } from '../../../utils/type-guards.js';
3
+ import { distinct } from '../../../utils/array/array.js';
4
+ import { compareByValueSelection } from '../../../utils/comparison.js';
5
+ /**
6
+ * @param primaryCollectionId - if a document request is for multiple collections, remove the primary collection from the request to avoid duplication
7
+ * @returns
8
+ */
9
+ export function toNormalizedDocumentManagementData(data, options) {
10
+ const normalizedTypes = data.types.map((type) => ({
11
+ ...type,
12
+ category: assertDefinedPass(data.categories.find((category) => category.id == type.categoryId))
13
+ }));
14
+ const normalizedCategories = data.categories.map((category) => {
15
+ const categoryTypes = normalizedTypes.filter((type) => type.category.id == category.id);
16
+ const categoryGroups = [...group(categoryTypes, (type) => type.group)].map(([label, types]) => ({ label, types })).toSorted(compareByValueSelection(({ label }) => label));
17
+ return {
18
+ ...category,
19
+ types: categoryTypes,
20
+ groups: categoryGroups
21
+ };
22
+ });
23
+ const normalizedDocuments = data.documents.map((document) => ({
24
+ ...document,
25
+ file: assertDefinedPass(data.files.find((file) => file.id == document.fileId)),
26
+ type: isNull(document.typeId) ? null : assertDefinedPass(normalizedTypes.find((type) => type.id == document.typeId))
27
+ }));
28
+ const filteredRequests = isString(options?.primaryCollectionId)
29
+ ? data.requests.map((request) => ((request.collectionIds.length >= 2) && request.collectionIds.includes(options.primaryCollectionId))
30
+ ? { ...request, collectionIds: request.collectionIds.filter((collectionId) => collectionId != options.primaryCollectionId) }
31
+ : request)
32
+ : data.requests;
33
+ const normalizedDocumentRequests = filteredRequests.map((request) => ({
34
+ ...request,
35
+ collections: [],
36
+ type: isNull(request.typeId) ? null : assertDefinedPass(normalizedTypes.find((type) => type.id == request.typeId)),
37
+ files: request.requestFiles.map((requestFile) => assertDefinedPass(data.files.find((file) => file.id == requestFile.fileId))),
38
+ requestFiles: request.requestFiles.map((requestFile) => ({
39
+ ...requestFile,
40
+ file: assertDefinedPass(data.files.find((file) => file.id == requestFile.fileId))
41
+ })),
42
+ ...calculateRequestMetadata(request)
43
+ }));
44
+ const normalizedCollections = data.collections.map((collection) => {
45
+ const collectionRequests = normalizedDocumentRequests.filter((request) => request.collectionIds.includes(collection.id));
46
+ const groupedCollectionRequests = [...map(group(collectionRequests, (request) => request.type?.category.id), ([categoryId, requests]) => ({
47
+ category: normalizedCategories.find((c) => c.id == categoryId) ?? null,
48
+ groups: [...map(group(requests, (request) => request.type?.group), ([groupLabel, groupRequests]) => ({ label: groupLabel ?? null, requests: groupRequests, ...calculateRequestsMetadata(groupRequests) }))]
49
+ }))];
50
+ return {
51
+ ...collection,
52
+ documents: normalizedDocuments.filter((document) => document.collectionAssignments.some((assignment) => assignment.collectionId == collection.id)),
53
+ requests: collectionRequests,
54
+ groupedRequests: groupedCollectionRequests,
55
+ ...calculateRequestsMetadata(collectionRequests)
56
+ };
57
+ });
58
+ for (const collection of normalizedCollections) {
59
+ for (const request of collection.requests) {
60
+ request.collections.push(collection);
61
+ }
62
+ }
63
+ const groupedCollections = [
64
+ ...map(group(normalizedCollections, (collection) => collection.group), ([group, collections]) => {
65
+ const collectionsRequests = distinct(collections.flatMap((collection) => collection.requests), (request) => request.id);
66
+ return {
67
+ group,
68
+ collections,
69
+ ...calculateRequestsMetadata(collectionsRequests)
70
+ };
71
+ })
72
+ ];
73
+ return {
74
+ ...data,
75
+ collections: normalizedCollections,
76
+ groupedCollections,
77
+ requests: normalizedDocumentRequests,
78
+ documents: normalizedDocuments,
79
+ categories: normalizedCategories,
80
+ types: normalizedTypes,
81
+ ...calculateRequestsMetadata(filteredRequests)
82
+ };
83
+ }
84
+ function calculateRequestsMetadata(requests) {
85
+ const requestMetadatas = requests.map(calculateRequestMetadata);
86
+ const requiredFilesCount = requests.reduce((sum, request) => (sum + request.requiredFilesCount), 0);
87
+ const pendingRequestFilesCount = requestMetadatas.reduce((sum, metadata) => (sum + metadata.pendingRequestFilesCount), 0);
88
+ const approvedRequestFilesCount = requestMetadatas.reduce((sum, metadata) => (sum + metadata.approvedRequestFilesCount), 0);
89
+ const rejectedRequestFilesCount = requestMetadatas.reduce((sum, metadata) => (sum + metadata.rejectedRequestFilesCount), 0);
90
+ const requiredFilesLeft = requestMetadatas.reduce((sum, metadata) => (sum + metadata.requiredFilesLeft), 0);
91
+ return {
92
+ requiredFilesCount,
93
+ pendingRequestFilesCount,
94
+ approvedRequestFilesCount,
95
+ rejectedRequestFilesCount,
96
+ requiredFilesLeft
97
+ };
98
+ }
99
+ function calculateRequestMetadata(request) {
100
+ const pendingRequestFilesCount = request.completed ? 0 : request.requestFiles.reduce((sum, requestFile) => (sum + (isNull(requestFile.approval) ? 1 : 0)), 0);
101
+ const approvedRequestFilesCount = request.requestFiles.reduce((sum, requestFile) => (sum + ((requestFile.approval == true) ? 1 : 0)), 0);
102
+ const rejectedRequestFilesCount = request.requestFiles.reduce((sum, requestFile) => (sum + ((requestFile.approval == false) ? 1 : 0)), 0);
103
+ const requiredFilesLeft = request.completed ? 0 : Math.max(0, request.requiredFilesCount - approvedRequestFilesCount);
104
+ return {
105
+ pendingRequestFilesCount,
106
+ approvedRequestFilesCount,
107
+ rejectedRequestFilesCount,
108
+ requiredFilesLeft
109
+ };
110
+ }
@@ -0,0 +1,16 @@
1
+ import type { TypedOmit } from '../../../types.js';
2
+ import type { DocumentRequestTemplate } from '../document-request-template.js';
3
+ import type { DocumentRequestsTemplateData, DocumentRequestsTemplateView } from './document-requests-template.view-model.js';
4
+ import type { NormalizedDocumentCategory, NormalizedDocumentManagementData, NormalizedDocumentType } from './normalized-document-collection-view.model.js';
5
+ export type NormalizedDocumentRequestsTemplateData = TypedOmit<DocumentRequestsTemplateData, 'templates'> & {
6
+ templates: NormalizedDocumentRequestsTemplateView[];
7
+ categories: NormalizedDocumentCategory[];
8
+ types: NormalizedDocumentType[];
9
+ };
10
+ export type NormalizedDocumentRequestsTemplateView = TypedOmit<DocumentRequestsTemplateView, 'requestTemplates'> & {
11
+ requestTemplates: NormalizedDocumentRequestTemplate[];
12
+ };
13
+ export type NormalizedDocumentRequestTemplate = TypedOmit<DocumentRequestTemplate, 'typeId'> & {
14
+ type: NormalizedDocumentType | null;
15
+ };
16
+ export declare function toNormalizedDocumentRequestsTemplateData(templateData: DocumentRequestsTemplateData, documentManagementData: NormalizedDocumentManagementData): NormalizedDocumentRequestsTemplateData;
@@ -0,0 +1,13 @@
1
+ export function toNormalizedDocumentRequestsTemplateData(templateData, documentManagementData) {
2
+ return {
3
+ templates: templateData.templates.map((template) => ({
4
+ ...template,
5
+ requestTemplates: template.requestTemplates.map((requestTemplate) => ({
6
+ ...requestTemplate,
7
+ type: documentManagementData.types.find((type) => type.id == requestTemplate.typeId) ?? null
8
+ }))
9
+ })),
10
+ categories: documentManagementData.categories,
11
+ types: documentManagementData.types
12
+ };
13
+ }
@@ -0,0 +1,6 @@
1
+ export declare class RequestFilesStats {
2
+ requiredFilesCount: number;
3
+ requiredFilesLeft: number;
4
+ pendingFilesCount: number;
5
+ approvedFilesCount: number;
6
+ }
@@ -0,0 +1,32 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { NumberProperty } from '../../../schema/index.js';
11
+ export class RequestFilesStats {
12
+ requiredFilesCount;
13
+ requiredFilesLeft;
14
+ pendingFilesCount;
15
+ approvedFilesCount;
16
+ }
17
+ __decorate([
18
+ NumberProperty(),
19
+ __metadata("design:type", Number)
20
+ ], RequestFilesStats.prototype, "requiredFilesCount", void 0);
21
+ __decorate([
22
+ NumberProperty(),
23
+ __metadata("design:type", Number)
24
+ ], RequestFilesStats.prototype, "requiredFilesLeft", void 0);
25
+ __decorate([
26
+ NumberProperty(),
27
+ __metadata("design:type", Number)
28
+ ], RequestFilesStats.prototype, "pendingFilesCount", void 0);
29
+ __decorate([
30
+ NumberProperty(),
31
+ __metadata("design:type", Number)
32
+ ], RequestFilesStats.prototype, "approvedFilesCount", void 0);
@@ -0,0 +1,11 @@
1
+ import './models/schemas.js';
2
+ import { type InjectionToken } from '../injector/index.js';
3
+ import type { DatabaseConfig } from '../orm/module.js';
4
+ import { DocumentManagementService } from './services/document-management.service.js';
5
+ export declare class DocumentManagementConfig {
6
+ fileObjectStorageModule: string;
7
+ database: DatabaseConfig;
8
+ customService?: InjectionToken<DocumentManagementService>;
9
+ }
10
+ export declare function configureDocumentManagement(config: DocumentManagementConfig): void;
11
+ export declare function migrateDocumentManagementSchema(): Promise<void>;
@@ -0,0 +1,27 @@
1
+ import './models/schemas.js';
2
+ import { migrate } from 'drizzle-orm/node-postgres/migrator';
3
+ import { inject, Injector } from '../injector/index.js';
4
+ import { Database } from '../orm/database.js';
5
+ import { isDefined } from '../utils/type-guards.js';
6
+ import { DocumentManagementService } from './services/document-management.service.js';
7
+ export class DocumentManagementConfig {
8
+ fileObjectStorageModule;
9
+ database;
10
+ customService;
11
+ }
12
+ ;
13
+ export function configureDocumentManagement(config) {
14
+ Injector.register(DocumentManagementConfig, { useValue: config });
15
+ if (isDefined(config.customService)) {
16
+ Injector.register(DocumentManagementService, { useToken: config.customService });
17
+ }
18
+ }
19
+ export async function migrateDocumentManagementSchema() {
20
+ const config = inject(DocumentManagementConfig);
21
+ const database = inject(Database, config.database.connection);
22
+ await migrate(database, {
23
+ migrationsSchema: 'document_management',
24
+ migrationsTable: '_migrations',
25
+ migrationsFolder: import.meta.resolve('./drizzle').replace('file://', '')
26
+ });
27
+ }
@@ -0,0 +1,65 @@
1
+ import { Resolvable, resolveArgumentType } from '../../injector/index.js';
2
+ import { ObjectStorage } from '../../object-storage/index.js';
3
+ import { Query, Transaction } from '../../orm/index.js';
4
+ import { OneOrMany } from '../../types.js';
5
+ import { AddOrArchiveDocumentToOrFromCollectionParameters, ApplyDocumentRequestsTemplateParameters, ApproveDocumentRequestFileParameters, AssignPropertyToTypeParameters, CategoryAndTypesView, CreateCollectionParameters, CreateDocumentCategoryParameters, CreateDocumentParameters, CreateDocumentPropertyParameters, CreateDocumentRequestFileParameters, CreateDocumentRequestParameters, CreateDocumentRequestTemplateParameters, CreateDocumentRequestsTemplateParameters, CreateDocumentTypeParameters, DeleteDocumentRequestFileParameters, DeleteDocumentRequestParameters, DeleteDocumentRequestTemplateParameters, DeleteDocumentRequestsTemplateParameters, Document, DocumentCategory, DocumentCollection, DocumentCollectionDocument, DocumentFile, DocumentManagementData, DocumentProperty, DocumentPropertyBooleanValue, DocumentPropertyDataType, DocumentPropertyDecimalValue, DocumentPropertyIntegerValue, DocumentPropertyTextValue, DocumentRequest, DocumentRequestCollection, DocumentRequestFile, DocumentRequestTemplate, DocumentRequestsTemplate, DocumentRequestsTemplateData, DocumentType, DocumentTypeProperty, LoadDataCollectionsMetadataParameters, RejectDocumentRequestFileParameters, RequestFilesStats, SetDocumentPropertiesParameters, UpdateDocumentParameters, UpdateDocumentRequestFileParameters, UpdateDocumentRequestParameters, UpdateDocumentRequestTemplateParameters, UpdateDocumentRequestsTemplateParameters } from '../models/index.js';
6
+ import { DocumentManagementConfig } from '../module.js';
7
+ export type DocumentServiceArgument = DocumentManagementConfig;
8
+ export declare class DocumentManagementService implements Resolvable<DocumentServiceArgument> {
9
+ protected readonly documentService: import("../../orm/index.js").EntityRepository<Document>;
10
+ protected readonly documentFileService: import("../../orm/index.js").EntityRepository<DocumentFile>;
11
+ protected readonly documentCollectionService: import("../../orm/index.js").EntityRepository<DocumentCollection>;
12
+ protected readonly documentCategoryService: import("../../orm/index.js").EntityRepository<DocumentCategory>;
13
+ protected readonly documentTypeService: import("../../orm/index.js").EntityRepository<DocumentType>;
14
+ protected readonly documentRequestService: import("../../orm/index.js").EntityRepository<DocumentRequest>;
15
+ protected readonly documentRequestsTemplateService: import("../../orm/index.js").EntityRepository<DocumentRequestsTemplate>;
16
+ protected readonly documentRequestTemplateService: import("../../orm/index.js").EntityRepository<DocumentRequestTemplate>;
17
+ protected readonly documentRequestCollectionService: import("../../orm/index.js").EntityRepository<DocumentRequestCollection>;
18
+ protected readonly documentRequestFileService: import("../../orm/index.js").EntityRepository<DocumentRequestFile>;
19
+ protected readonly documentPropertyService: import("../../orm/index.js").EntityRepository<DocumentProperty>;
20
+ protected readonly documentTypePropertyService: import("../../orm/index.js").EntityRepository<DocumentTypeProperty>;
21
+ protected readonly documentPropertyTextValueService: import("../../orm/index.js").EntityRepository<DocumentPropertyTextValue>;
22
+ protected readonly documentPropertyIntegerValueService: import("../../orm/index.js").EntityRepository<DocumentPropertyIntegerValue>;
23
+ protected readonly documentPropertyDecimalValueService: import("../../orm/index.js").EntityRepository<DocumentPropertyDecimalValue>;
24
+ protected readonly documentPropertyBooleanValueService: import("../../orm/index.js").EntityRepository<DocumentPropertyBooleanValue>;
25
+ protected readonly documentCollectionDocumentService: import("../../orm/index.js").EntityRepository<DocumentCollectionDocument>;
26
+ protected readonly fileObjectStorage: ObjectStorage;
27
+ readonly [resolveArgumentType]: DocumentServiceArgument;
28
+ loadData(collectionIds: string[], collectionsMetadata?: LoadDataCollectionsMetadataParameters): Promise<DocumentManagementData>;
29
+ loadDocumentRequestsTemplateData(): Promise<DocumentRequestsTemplateData>;
30
+ loadCategoriesAndTypes(): Promise<CategoryAndTypesView>;
31
+ loadDocument(id: string): Promise<Document>;
32
+ loadDocumentFile(id: string): Promise<DocumentFile>;
33
+ loadType(id: string): Promise<DocumentType>;
34
+ getFileContentUrl(fileId: string, title: string | null, download?: boolean): Promise<string>;
35
+ createCategory(parameters: CreateDocumentCategoryParameters): Promise<DocumentCategory>;
36
+ createType(parameters: CreateDocumentTypeParameters): Promise<DocumentType>;
37
+ createCollection(parameters?: CreateCollectionParameters): Promise<DocumentCollection>;
38
+ collectionHasDocumentByFilter(collectionId: string, filter: Query<Document>): Promise<boolean>;
39
+ getRequestFilesStats(collectionIds: OneOrMany<string>): Promise<RequestFilesStats>;
40
+ createDocumentRequestsTemplate(parameters: CreateDocumentRequestsTemplateParameters): Promise<DocumentRequestsTemplate>;
41
+ updateDocumentRequestsTemplate({ id, label, metadata }: UpdateDocumentRequestsTemplateParameters): Promise<DocumentRequestsTemplate>;
42
+ applyDocumentRequestsTemplate({ id, collectionIds, metadata }: ApplyDocumentRequestsTemplateParameters): Promise<void>;
43
+ deleteDocumentRequestsTemplate(parameters: DeleteDocumentRequestsTemplateParameters): Promise<DocumentRequestsTemplate>;
44
+ createDocumentRequestTemplate(parameters: CreateDocumentRequestTemplateParameters): Promise<DocumentRequestTemplate>;
45
+ updateDocumentRequestTemplate({ id, typeId, requiredFilesCount, comment, metadata }: UpdateDocumentRequestTemplateParameters): Promise<DocumentRequestTemplate>;
46
+ deleteDocumentRequestTemplate(parameters: DeleteDocumentRequestTemplateParameters): Promise<DocumentRequestTemplate>;
47
+ createDocument({ typeId, addition, date, expiration, originalFileName, collectionIds, properties, metadata }: CreateDocumentParameters, content: Uint8Array | ReadableStream<Uint8Array>): Promise<Document>;
48
+ approveDocumentRequestFile({ id, approvalComment, documentMetadata, requestFileMetadata }: ApproveDocumentRequestFileParameters): Promise<Document>;
49
+ rejectDocumentRequestFile({ id, approvalComment, metadata }: RejectDocumentRequestFileParameters): Promise<void>;
50
+ updateDocumentRequestFile({ id, addition, approvalComment, metadata }: UpdateDocumentRequestFileParameters): Promise<DocumentRequestFile>;
51
+ deleteDocumentRequestFile({ id, metadata }: DeleteDocumentRequestFileParameters): Promise<void>;
52
+ createDocumentFile(content: Uint8Array | ReadableStream<Uint8Array>, originalFileName: string | null, dbTransaction?: Transaction): Promise<DocumentFile>;
53
+ createDocumentRequestFile({ requestId, addition, originalFileName, metadata }: CreateDocumentRequestFileParameters, content: Uint8Array | ReadableStream<Uint8Array>): Promise<DocumentRequestFile>;
54
+ createDocumentRequest(parameters: CreateDocumentRequestParameters, transaction?: Transaction): Promise<DocumentRequest>;
55
+ updateDocument(parameters: UpdateDocumentParameters, transaction?: Transaction): Promise<void>;
56
+ updateDocumentRequest(parameters: UpdateDocumentRequestParameters, transaction?: Transaction): Promise<void>;
57
+ deleteDocumentRequest({ id, metadata }: DeleteDocumentRequestParameters, transaction?: Transaction): Promise<void>;
58
+ setDocumentProperties(setDocumentPropertyItems: SetDocumentPropertiesParameters, transaction?: Transaction): Promise<void>;
59
+ addDocumentToCollection(parameters: AddOrArchiveDocumentToOrFromCollectionParameters, transaction?: Transaction): Promise<void>;
60
+ archiveDocument({ collectionId, documentId, metadata }: AddOrArchiveDocumentToOrFromCollectionParameters): Promise<void>;
61
+ createProperty(parameters: CreateDocumentPropertyParameters): Promise<DocumentProperty>;
62
+ assignPropertyToType(parameters: AssignPropertyToTypeParameters): Promise<void>;
63
+ protected getDocumentPropertyValueService(dataType: DocumentPropertyDataType): import("../../orm/index.js").EntityRepository<DocumentPropertyTextValue> | import("../../orm/index.js").EntityRepository<DocumentPropertyIntegerValue> | import("../../orm/index.js").EntityRepository<DocumentPropertyBooleanValue>;
64
+ protected getDocumentFileContentObjectUrl(title: string, file: DocumentFile, download: boolean): Promise<string>;
65
+ }