@tstdl/base 0.92.123 → 0.92.125

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 (221) hide show
  1. package/ai/ai-file.service.js +23 -18
  2. package/ai/ai.service.d.ts +4 -12
  3. package/ai/ai.service.js +79 -147
  4. package/ai/functions.d.ts +1 -1
  5. package/ai/types.d.ts +3 -1
  6. package/api/server/gateway.js +6 -6
  7. package/authentication/authentication.api.js +24 -24
  8. package/authentication/server/authentication.service.js +20 -20
  9. package/browser/page-controller.js +1 -1
  10. package/context/context.js +5 -5
  11. package/document-management/api/document-management.api.d.ts +60 -215
  12. package/document-management/api/document-management.api.js +32 -68
  13. package/document-management/models/document-assignment-scope.model.d.ts +11 -0
  14. package/document-management/models/{document-request-assignment-task-collection.model.js → document-assignment-scope.model.js} +14 -10
  15. package/document-management/models/document-assignment-task.model.d.ts +13 -0
  16. package/document-management/models/document-assignment-task.model.js +38 -0
  17. package/document-management/models/document-category.model.d.ts +2 -0
  18. package/document-management/models/document-category.model.js +7 -1
  19. package/document-management/models/{document-collection-document.model.d.ts → document-collection-assignment.model.d.ts} +1 -1
  20. package/document-management/models/{document-collection-document.model.js → document-collection-assignment.model.js} +7 -7
  21. package/document-management/models/document-collection.model.d.ts +2 -0
  22. package/document-management/models/document-collection.model.js +10 -0
  23. package/document-management/models/document-property-value.model.d.ts +3 -11
  24. package/document-management/models/document-property-value.model.js +15 -46
  25. package/document-management/models/document-property.model.d.ts +2 -1
  26. package/document-management/models/document-property.model.js +2 -2
  27. package/document-management/models/document-request-submission.model.d.ts +7 -0
  28. package/document-management/models/document-request-submission.model.js +34 -0
  29. package/document-management/models/document-request-template.d.ts +2 -4
  30. package/document-management/models/document-request-template.js +3 -8
  31. package/document-management/models/document-request.model.d.ts +14 -6
  32. package/document-management/models/document-request.model.js +22 -12
  33. package/document-management/models/document-type-validation.model.d.ts +6 -0
  34. package/document-management/models/document-type-validation.model.js +34 -0
  35. package/document-management/models/document-type.model.d.ts +0 -1
  36. package/document-management/models/document-type.model.js +0 -5
  37. package/document-management/models/document-validation-definition.model.d.ts +10 -0
  38. package/document-management/models/document-validation-definition.model.js +39 -0
  39. package/document-management/models/document-validation-execution-related-document.model.d.ts +7 -0
  40. package/document-management/models/document-validation-execution-related-document.model.js +34 -0
  41. package/document-management/models/document-validation-execution.model.d.ts +26 -0
  42. package/document-management/models/document-validation-execution.model.js +72 -0
  43. package/document-management/models/document-workflow.model.d.ts +35 -0
  44. package/document-management/models/document-workflow.model.js +70 -0
  45. package/document-management/models/document.model.d.ts +12 -1
  46. package/document-management/models/document.model.js +21 -5
  47. package/document-management/models/index.d.ts +10 -5
  48. package/document-management/models/index.js +10 -5
  49. package/document-management/models/service-models/categories-and-types.view-model.d.ts +3 -3
  50. package/document-management/models/service-models/categories-and-types.view-model.js +2 -21
  51. package/document-management/models/service-models/document-folders.view-model.d.ts +7 -14
  52. package/document-management/models/service-models/document-folders.view-model.js +20 -44
  53. package/document-management/models/service-models/document-management.view-model.d.ts +41 -0
  54. package/document-management/models/service-models/{document.view-model.js → document-management.view-model.js} +43 -26
  55. package/document-management/models/service-models/document.service-model.d.ts +51 -81
  56. package/document-management/models/service-models/document.service-model.js +30 -28
  57. package/document-management/models/service-models/enriched/enriched-document-assignment.view.d.ts +11 -0
  58. package/document-management/models/service-models/enriched/enriched-document-assignment.view.js +12 -0
  59. package/document-management/models/service-models/enriched/enriched-document-category.view.d.ts +13 -0
  60. package/document-management/models/service-models/enriched/enriched-document-category.view.js +47 -0
  61. package/document-management/models/service-models/enriched/enriched-document-collection.view.d.ts +22 -0
  62. package/document-management/models/service-models/enriched/enriched-document-collection.view.js +89 -0
  63. package/document-management/models/service-models/enriched/enriched-document-file.view.d.ts +12 -0
  64. package/document-management/models/service-models/enriched/enriched-document-file.view.js +16 -0
  65. package/document-management/models/service-models/enriched/enriched-document-management-data.view.d.ts +41 -0
  66. package/document-management/models/service-models/enriched/enriched-document-management-data.view.js +130 -0
  67. package/document-management/models/service-models/enriched/enriched-document-request.view.d.ts +17 -0
  68. package/document-management/models/service-models/enriched/enriched-document-request.view.js +52 -0
  69. package/document-management/models/service-models/enriched/enriched-document-type.view.d.ts +9 -0
  70. package/document-management/models/service-models/enriched/enriched-document-type.view.js +10 -0
  71. package/document-management/models/service-models/enriched/enriched-document.view.d.ts +28 -0
  72. package/document-management/models/service-models/enriched/enriched-document.view.js +77 -0
  73. package/document-management/models/service-models/enriched/enriched.d.ts +18 -0
  74. package/document-management/models/service-models/enriched/enriched.js +39 -0
  75. package/document-management/models/service-models/enriched/index.d.ts +9 -0
  76. package/document-management/models/service-models/enriched/index.js +9 -0
  77. package/document-management/models/service-models/index.d.ts +2 -2
  78. package/document-management/models/service-models/index.js +2 -2
  79. package/document-management/models/service-models/normalized-requests-template-data.model.d.ts +12 -10
  80. package/document-management/models/service-models/normalized-requests-template-data.model.js +5 -4
  81. package/document-management/models/service-models/stats.view-model.d.ts +7 -5
  82. package/document-management/models/service-models/stats.view-model.js +19 -9
  83. package/document-management/server/module.d.ts +2 -2
  84. package/document-management/server/module.js +3 -7
  85. package/document-management/server/schemas.d.ts +18 -23
  86. package/document-management/server/schemas.js +18 -23
  87. package/document-management/server/services/document-category-type.service.d.ts +25 -0
  88. package/document-management/server/services/document-category-type.service.js +66 -0
  89. package/document-management/server/services/document-collection.service.d.ts +13 -0
  90. package/document-management/server/services/document-collection.service.js +41 -0
  91. package/document-management/server/services/document-file.service.d.ts +17 -0
  92. package/document-management/server/services/document-file.service.js +204 -0
  93. package/document-management/server/services/document-management-ai.service.d.ts +22 -0
  94. package/document-management/server/services/document-management-ai.service.js +340 -0
  95. package/document-management/server/services/document-management-ancillary.service.d.ts +127 -3
  96. package/document-management/server/services/document-management-ancillary.service.js +24 -0
  97. package/document-management/server/services/document-management.service.d.ts +10 -122
  98. package/document-management/server/services/document-management.service.js +106 -888
  99. package/document-management/server/services/document-property.service.d.ts +84 -0
  100. package/document-management/server/services/document-property.service.js +87 -0
  101. package/document-management/server/services/document-request.service.d.ts +30 -0
  102. package/document-management/server/services/document-request.service.js +138 -0
  103. package/document-management/server/services/document-validation.service.d.ts +20 -0
  104. package/document-management/server/services/document-validation.service.js +145 -0
  105. package/document-management/server/services/document-workflow.service.d.ts +20 -0
  106. package/document-management/server/services/document-workflow.service.js +132 -0
  107. package/document-management/server/services/document.service.d.ts +16 -0
  108. package/document-management/server/services/document.service.js +81 -0
  109. package/document-management/server/services/index.d.ts +9 -0
  110. package/document-management/server/services/index.js +9 -0
  111. package/document-management/server/validators/ai-validation-executor.d.ts +19 -0
  112. package/document-management/server/validators/ai-validation-executor.js +51 -0
  113. package/document-management/server/validators/index.d.ts +2 -0
  114. package/document-management/server/validators/index.js +2 -0
  115. package/document-management/server/validators/single-document-validation-executor.d.ts +16 -0
  116. package/document-management/server/validators/single-document-validation-executor.js +20 -0
  117. package/document-management/server/validators/validator.d.ts +21 -0
  118. package/document-management/server/validators/validator.js +2 -0
  119. package/eslint.config.js +31 -17
  120. package/examples/document-management/main.d.ts +18 -3
  121. package/examples/document-management/main.js +28 -12
  122. package/file/mime-type.js +2 -9
  123. package/formats.d.ts +5 -2
  124. package/formats.js +32 -23
  125. package/http/client/http-client.js +1 -1
  126. package/injector/injector.js +2 -2
  127. package/object-storage/s3/s3.object-storage.js +1 -1
  128. package/orm/data-types/bytea.d.ts +8 -0
  129. package/orm/data-types/bytea.js +8 -0
  130. package/orm/data-types/index.d.ts +4 -0
  131. package/orm/data-types/index.js +4 -0
  132. package/orm/data-types/numeric-date.d.ts +9 -0
  133. package/orm/data-types/numeric-date.js +9 -0
  134. package/orm/data-types/timestamp.d.ts +9 -0
  135. package/orm/data-types/timestamp.js +9 -0
  136. package/orm/decorators.d.ts +139 -5
  137. package/orm/decorators.js +50 -0
  138. package/orm/entity.d.ts +19 -0
  139. package/orm/entity.js +19 -0
  140. package/orm/index.d.ts +5 -0
  141. package/orm/index.js +5 -0
  142. package/orm/query.d.ts +51 -0
  143. package/orm/query.js +6 -0
  144. package/orm/repository.types.d.ts +54 -2
  145. package/orm/server/database-schema.d.ts +34 -0
  146. package/orm/server/database-schema.js +29 -0
  147. package/orm/server/database.d.ts +19 -1
  148. package/orm/server/database.js +17 -3
  149. package/orm/server/drizzle/schema-converter.d.ts +2 -1
  150. package/orm/server/drizzle/schema-converter.js +12 -1
  151. package/orm/server/encryption.d.ts +16 -0
  152. package/orm/server/encryption.js +29 -4
  153. package/orm/server/index.d.ts +7 -0
  154. package/orm/server/index.js +7 -0
  155. package/orm/server/module.d.ts +20 -0
  156. package/orm/server/module.js +9 -0
  157. package/orm/server/query-converter.d.ts +17 -0
  158. package/orm/server/query-converter.js +66 -11
  159. package/orm/server/repository.d.ts +324 -18
  160. package/orm/server/repository.js +344 -73
  161. package/orm/server/transaction.d.ts +5 -5
  162. package/orm/server/transaction.js +5 -5
  163. package/orm/server/transactional.d.ts +75 -0
  164. package/orm/server/transactional.js +134 -0
  165. package/orm/server/types.d.ts +1 -0
  166. package/orm/sqls.d.ts +55 -0
  167. package/orm/sqls.js +60 -0
  168. package/orm/types.d.ts +67 -4
  169. package/orm/utils.d.ts +19 -3
  170. package/orm/utils.js +12 -0
  171. package/package.json +32 -31
  172. package/password/password-check-result.model.d.ts +9 -7
  173. package/password/password-check-result.model.js +8 -8
  174. package/password/password-check.js +5 -7
  175. package/password/password-check.localization.js +12 -12
  176. package/pdf/pdf.service.js +1 -1
  177. package/pdf/utils.d.ts +9 -0
  178. package/pdf/utils.js +19 -2
  179. package/process/spawn.d.ts +11 -4
  180. package/process/spawn.js +42 -5
  181. package/queue/postgres/queue.js +5 -5
  182. package/queue/queue.d.ts +6 -4
  183. package/queue/queue.js +6 -6
  184. package/schema/schemas/one-or-many.d.ts +2 -1
  185. package/schema/schemas/one-or-many.js +1 -1
  186. package/search-index/elastic/model/index-mapping.d.ts +1 -1
  187. package/search-index/elastic/model/index-mapping.js +0 -1
  188. package/search-index/elastic/search-index.d.ts +1 -2
  189. package/search-index/elastic/search-index.js +3 -3
  190. package/types.d.ts +1 -0
  191. package/utils/async-hook/async-hook.d.ts +9 -0
  192. package/utils/async-hook/async-hook.js +21 -0
  193. package/utils/async-hook/index.d.ts +1 -0
  194. package/utils/async-hook/index.js +1 -0
  195. package/utils/compression.js +1 -1
  196. package/utils/function/class.d.ts +6 -0
  197. package/utils/function/class.js +9 -0
  198. package/utils/function/index.d.ts +1 -0
  199. package/utils/function/index.js +1 -0
  200. package/utils/function/memoize.d.ts +18 -0
  201. package/utils/function/memoize.js +41 -2
  202. package/utils/jwt.d.ts +1 -1
  203. package/utils/jwt.js +5 -5
  204. package/utils/object/forward-ref.d.ts +3 -2
  205. package/utils/object/forward-ref.js +12 -12
  206. package/utils/object/lazy-property.js +2 -2
  207. package/utils/proxy.js +1 -1
  208. package/utils/stream/{readable-stream-from-promise.d.ts → from-promise.d.ts} +1 -0
  209. package/utils/stream/from-promise.js +27 -0
  210. package/utils/stream/index.d.ts +1 -1
  211. package/utils/stream/index.js +1 -1
  212. package/utils/stream/stream-reader.js +71 -31
  213. package/document-management/models/document-request-assignment-task-collection.model.d.ts +0 -7
  214. package/document-management/models/document-request-assignment-task.model.d.ts +0 -14
  215. package/document-management/models/document-request-assignment-task.model.js +0 -77
  216. package/document-management/models/document-request-file.model.d.ts +0 -16
  217. package/document-management/models/document-request-file.model.js +0 -86
  218. package/document-management/models/service-models/document.view-model.d.ts +0 -41
  219. package/document-management/models/service-models/normalized-document-collection-view.model.d.ts +0 -73
  220. package/document-management/models/service-models/normalized-document-collection-view.model.js +0 -110
  221. package/utils/stream/readable-stream-from-promise.js +0 -8
@@ -1,41 +0,0 @@
1
- import { type EnumType } from '../../../enumeration/enumeration.js';
2
- import { Timestamp } from '../../../orm/types.js';
3
- import { DocumentCategory } from '../document-category.model.js';
4
- import { DocumentCollection } from '../document-collection.model.js';
5
- import { DocumentFile } from '../document-file.model.js';
6
- import { DocumentPropertyValue } from '../document-property-value.model.js';
7
- import { DocumentRequestFile } from '../document-request-file.model.js';
8
- import { DocumentRequest } from '../document-request.model.js';
9
- import { DocumentType } from '../document-type.model.js';
10
- import { Document } from '../document.model.js';
11
- export declare const ExtractionStatus: {
12
- readonly Pending: "pending";
13
- readonly Extracting: "extracting";
14
- readonly Error: "error";
15
- };
16
- export type ExtractionStatus = EnumType<typeof ExtractionStatus>;
17
- export declare class DocumentCollectionView extends DocumentCollection {
18
- name: string | null;
19
- group: string | null;
20
- }
21
- export declare class DocumentViewCollectionAssignment {
22
- collectionId: string;
23
- archiveTimestamp: Timestamp | null;
24
- }
25
- export declare class DocumentView extends Document {
26
- collectionAssignments: DocumentViewCollectionAssignment[];
27
- properties: DocumentPropertyValue[];
28
- extractionStatus: ExtractionStatus | null;
29
- }
30
- export declare class DocumentRequestView extends DocumentRequest {
31
- collectionIds: string[];
32
- requestFiles: DocumentRequestFile[];
33
- }
34
- export declare class DocumentManagementData {
35
- collections: DocumentCollectionView[];
36
- documents: DocumentView[];
37
- requests: DocumentRequestView[];
38
- files: DocumentFile[];
39
- categories: DocumentCategory[];
40
- types: DocumentType[];
41
- }
@@ -1,73 +0,0 @@
1
- import type { TypedOmit } from '../../../types.js';
2
- import type { DocumentCategory } from '../document-category.model.js';
3
- import type { DocumentCollection } from '../document-collection.model.js';
4
- import type { DocumentFile } from '../document-file.model.js';
5
- import type { DocumentRequestFile } from '../document-request-file.model.js';
6
- import type { DocumentType } from '../document-type.model.js';
7
- import type { DocumentManagementData, DocumentRequestView, DocumentView } from './document.view-model.js';
8
- export type RequestMetadata = {
9
- pendingRequestFilesCount: number;
10
- approvedRequestFilesCount: number;
11
- rejectedRequestFilesCount: number;
12
- requiredFilesLeft: number;
13
- };
14
- export type RequestsMetadata = RequestMetadata & {
15
- requiredFilesCount: number;
16
- };
17
- export type GroupedCollectionsItem = RequestsMetadata & {
18
- group: string | null;
19
- collections: NormalizedDocumentCollectionView[];
20
- };
21
- export type NormalizedDocumentManagementData = TypedOmit<DocumentManagementData, 'collections' | 'documents' | 'requests' | 'categories' | 'types'> & RequestsMetadata & {
22
- collections: NormalizedDocumentCollectionView[];
23
- groupedCollections: GroupedCollectionsItem[];
24
- documents: NormalizedDocumentView[];
25
- requests: NormalizedDocumentRequestView[];
26
- categories: NormalizedDocumentCategory[];
27
- types: NormalizedDocumentType[];
28
- };
29
- export type GroupedRequestsItem = {
30
- category: NormalizedDocumentCategory | null;
31
- groups: ({
32
- label: string | null;
33
- requests: NormalizedDocumentRequestView[];
34
- } & RequestsMetadata)[];
35
- };
36
- export type NormalizedDocumentCollectionView = DocumentCollection & RequestsMetadata & {
37
- name: string | null;
38
- group: string | null;
39
- documents: NormalizedDocumentView[];
40
- requests: NormalizedDocumentRequestView[];
41
- groupedRequests: GroupedRequestsItem[];
42
- };
43
- export type NormalizedDocumentView = TypedOmit<DocumentView, 'typeId'> & {
44
- type: NormalizedDocumentType | null;
45
- file: DocumentFile;
46
- };
47
- export type NormalizedDocumentRequestView = TypedOmit<DocumentRequestView, 'typeId' | 'requestFiles'> & RequestMetadata & {
48
- collections: NormalizedDocumentCollectionView[];
49
- type: NormalizedDocumentType | null;
50
- files: DocumentFile[];
51
- requestFiles: NormalizedDocumentRequestFileView[];
52
- };
53
- export type NormalizedDocumentRequestFileView = TypedOmit<DocumentRequestFile, 'fileId'> & {
54
- file: DocumentFile;
55
- };
56
- export type NormalizedDocumentTypeGroup = {
57
- label: string | null;
58
- types: NormalizedDocumentType[];
59
- };
60
- export type NormalizedDocumentCategory = DocumentCategory & {
61
- groups: NormalizedDocumentTypeGroup[];
62
- types: NormalizedDocumentType[];
63
- };
64
- export type NormalizedDocumentType = TypedOmit<DocumentType, 'categoryId'> & {
65
- category: DocumentCategory;
66
- };
67
- /**
68
- * @param primaryCollectionId - if a document request is for multiple collections, remove the primary collection from the request to avoid duplication
69
- * @returns
70
- */
71
- export declare function toNormalizedDocumentManagementData(data: DocumentManagementData, options?: {
72
- primaryCollectionId?: string | null;
73
- }): NormalizedDocumentManagementData;
@@ -1,110 +0,0 @@
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
- }
@@ -1,8 +0,0 @@
1
- import { resolveValueOrProvider } from '../value-or-provider.js';
2
- export function readableStreamFromPromise(promiseOrProvider) {
3
- const stream = new TransformStream();
4
- resolveValueOrProvider(promiseOrProvider)
5
- .then(async (readable) => readable.pipeTo(stream.writable))
6
- .catch(async (error) => stream.writable.abort(error));
7
- return stream.readable;
8
- }