@tstdl/base 0.92.122 → 0.92.124
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/ai-file.service.js +23 -18
- package/ai/ai.service.js +79 -147
- package/api/server/gateway.js +6 -6
- package/authentication/authentication.api.js +24 -24
- package/authentication/server/authentication.service.js +20 -20
- package/browser/page-controller.js +1 -1
- package/context/context.js +5 -5
- package/document-management/api/document-management.api.js +32 -68
- package/document-management/models/document-assignment-scope.model.js +38 -0
- package/document-management/models/document-assignment-task.model.js +38 -0
- package/document-management/models/document-category.model.js +7 -1
- package/document-management/models/document-collection-assignment.model.js +39 -0
- package/document-management/models/document-collection.model.js +10 -0
- package/document-management/models/document-property-value.model.js +15 -46
- package/document-management/models/document-property.model.js +2 -2
- package/document-management/models/document-request-submission.model.js +34 -0
- package/document-management/models/document-request-template.js +3 -8
- package/document-management/models/document-request.model.js +22 -12
- package/document-management/models/document-type-validation.model.js +34 -0
- package/document-management/models/document-type.model.js +0 -5
- package/document-management/models/document-validation-definition.model.js +39 -0
- package/document-management/models/document-validation-execution-related-document.model.js +34 -0
- package/document-management/models/document-validation-execution.model.js +72 -0
- package/document-management/models/document-workflow.model.js +70 -0
- package/document-management/models/document.model.js +21 -5
- package/document-management/models/index.js +10 -5
- package/document-management/models/service-models/categories-and-types.view-model.js +2 -21
- package/document-management/models/service-models/document-folders.view-model.js +20 -44
- package/document-management/models/service-models/document-management.view-model.js +127 -0
- package/document-management/models/service-models/document.service-model.js +30 -28
- package/document-management/models/service-models/enriched/enriched-document-assignment.view.js +12 -0
- package/document-management/models/service-models/enriched/enriched-document-category.view.js +47 -0
- package/document-management/models/service-models/enriched/enriched-document-collection.view.js +89 -0
- package/document-management/models/service-models/enriched/enriched-document-file.view.js +16 -0
- package/document-management/models/service-models/enriched/enriched-document-management-data.view.js +130 -0
- package/document-management/models/service-models/enriched/enriched-document-request.view.js +52 -0
- package/document-management/models/service-models/enriched/enriched-document-type.view.js +10 -0
- package/document-management/models/service-models/enriched/enriched-document.view.js +77 -0
- package/document-management/models/service-models/enriched/enriched.js +39 -0
- package/document-management/models/service-models/enriched/index.js +9 -0
- package/document-management/models/service-models/index.js +2 -2
- package/document-management/models/service-models/normalized-requests-template-data.model.js +5 -4
- package/document-management/models/service-models/stats.view-model.js +19 -9
- package/document-management/server/module.js +3 -7
- package/document-management/server/schemas.js +18 -23
- package/document-management/server/services/document-category-type.service.js +66 -0
- package/document-management/server/services/document-collection.service.js +41 -0
- package/document-management/server/services/document-file.service.js +204 -0
- package/document-management/server/services/document-management-ai.service.js +340 -0
- package/document-management/server/services/document-management-ancillary.service.js +24 -0
- package/document-management/server/services/document-management.service.js +106 -888
- package/document-management/server/services/document-property.service.js +87 -0
- package/document-management/server/services/document-request.service.js +138 -0
- package/document-management/server/services/document-validation.service.js +145 -0
- package/document-management/server/services/document-workflow.service.js +132 -0
- package/document-management/server/services/document.service.js +81 -0
- package/document-management/server/services/index.js +9 -0
- package/document-management/server/validators/ai-validation-executor.js +51 -0
- package/document-management/server/validators/index.js +2 -0
- package/document-management/server/validators/single-document-validation-executor.js +20 -0
- package/document-management/server/validators/validator.js +2 -0
- package/eslint.config.js +31 -17
- package/examples/document-management/main.js +28 -12
- package/file/mime-type.js +2 -9
- package/formats.js +32 -23
- package/http/client/http-client.js +1 -1
- package/injector/injector.js +2 -2
- package/object-storage/s3/s3.object-storage.js +1 -1
- package/orm/data-types/bytea.js +8 -0
- package/orm/data-types/index.js +4 -0
- package/orm/data-types/numeric-date.js +9 -0
- package/orm/data-types/timestamp.js +9 -0
- package/orm/decorators.js +50 -0
- package/orm/entity.js +19 -0
- package/orm/index.js +5 -0
- package/orm/query.js +6 -0
- package/orm/server/database-schema.js +29 -0
- package/orm/server/database.js +17 -3
- package/orm/server/drizzle/schema-converter.js +12 -1
- package/orm/server/encryption.js +29 -4
- package/orm/server/index.js +7 -0
- package/orm/server/module.js +9 -0
- package/orm/server/query-converter.js +66 -11
- package/orm/server/repository.js +363 -81
- package/orm/server/transaction.js +5 -5
- package/orm/server/transactional.js +134 -0
- package/orm/sqls.js +60 -0
- package/orm/utils.js +12 -0
- package/package.json +33 -31
- package/password/password-check-result.model.js +8 -8
- package/password/password-check.js +5 -7
- package/password/password-check.localization.js +12 -12
- package/pdf/pdf.service.js +1 -1
- package/pdf/utils.js +19 -2
- package/process/spawn.js +42 -5
- package/queue/postgres/queue.js +5 -5
- package/queue/queue.js +6 -6
- package/schema/schemas/one-or-many.js +1 -1
- package/search-index/elastic/model/index-mapping.js +0 -1
- package/search-index/elastic/search-index.js +3 -3
- package/types/ai/ai-file.service.d.ts +27 -0
- package/types/ai/ai-session.d.ts +11 -0
- package/types/ai/ai.service.d.ts +60 -0
- package/types/ai/functions.d.ts +3 -0
- package/types/ai/types.d.ts +91 -0
- package/types/api/client/client.d.ts +23 -0
- package/types/api/default-error-handlers.d.ts +14 -0
- package/types/api/server/api-controller.d.ts +11 -0
- package/types/api/server/error-handler.d.ts +4 -0
- package/types/api/server/gateway.d.ts +77 -0
- package/types/api/server/middlewares/catch-error.middleware.d.ts +4 -0
- package/types/api/server/middlewares/cors.middleware.d.ts +6 -0
- package/types/api/server/module.d.ts +10 -0
- package/types/api/server/tokens.d.ts +5 -0
- package/types/api/types.d.ts +123 -0
- package/types/application/application.d.ts +34 -0
- package/types/authentication/authentication.api.d.ts +293 -0
- package/types/authentication/client/api.client.d.ts +9 -0
- package/types/authentication/client/authentication.service.d.ts +61 -0
- package/types/authentication/client/http-client.middleware.d.ts +4 -0
- package/types/authentication/client/module.d.ts +10 -0
- package/types/authentication/client/tokens.d.ts +4 -0
- package/types/authentication/errors/secret-requirements.error.d.ts +5 -0
- package/types/authentication/models/authentication-credentials.model.d.ts +7 -0
- package/types/authentication/models/authentication-session.model.d.ts +10 -0
- package/types/authentication/models/schemas.d.ts +5 -0
- package/types/authentication/models/secret-check-result.model.d.ts +3 -0
- package/types/authentication/models/token.model.d.ts +20 -0
- package/types/authentication/server/authentication-ancillary.service.d.ts +27 -0
- package/types/authentication/server/authentication-api-request-token.provider.d.ts +8 -0
- package/types/authentication/server/authentication.api-controller.d.ts +23 -0
- package/types/authentication/server/authentication.service.d.ts +110 -0
- package/types/authentication/server/helper.d.ts +15 -0
- package/types/authentication/server/module.d.ts +14 -0
- package/types/browser/browser-context-controller.d.ts +45 -0
- package/types/browser/browser-controller.d.ts +49 -0
- package/types/browser/browser.service.d.ts +42 -0
- package/types/browser/element-controller.d.ts +104 -0
- package/types/browser/locator-controller.d.ts +16 -0
- package/types/browser/page-controller.d.ts +40 -0
- package/types/browser/types.d.ts +15 -0
- package/types/browser/utils.d.ts +17 -0
- package/types/collections/observable/observable-sorted-array-list.d.ts +36 -0
- package/types/collections/sorted-array-list.d.ts +37 -0
- package/types/context/context.d.ts +10 -0
- package/types/data-structures/array-list.d.ts +30 -0
- package/types/data-structures/circular-buffer.d.ts +56 -0
- package/types/data-structures/collection.d.ts +65 -0
- package/types/data-structures/context-data-map.d.ts +11 -0
- package/types/data-structures/index-out-of-bounds.error.d.ts +8 -0
- package/types/data-structures/linked-list.d.ts +57 -0
- package/types/data-structures/list.d.ts +78 -0
- package/types/data-structures/sorted-array-list.d.ts +49 -0
- package/types/database/module.d.ts +8 -0
- package/types/database/mongo/classes.d.ts +21 -0
- package/types/database/mongo/model/document.d.ts +29 -0
- package/types/database/mongo/mongo-base.repository.d.ts +103 -0
- package/types/database/mongo/mongo-bulk.d.ts +35 -0
- package/types/database/mongo/mongo-entity-repository.d.ts +98 -0
- package/types/database/mongo/operations.d.ts +10 -0
- package/types/database/mongo/query-converter.d.ts +6 -0
- package/types/database/mongo/simple-entity-repository.d.ts +7 -0
- package/types/database/mongo/types.d.ts +50 -0
- package/types/database/query.d.ts +121 -0
- package/types/decorators/log.d.ts +3 -0
- package/types/disposable/async-disposer.d.ts +35 -0
- package/types/distributed-loop/distributed-loop.d.ts +32 -0
- package/types/distributed-loop/provider.d.ts +7 -0
- package/types/document-management/api/document-management.api.d.ts +634 -0
- package/types/document-management/localizations/localization.d.ts +9 -0
- package/types/document-management/models/document-assignment-scope.model.d.ts +11 -0
- package/types/document-management/models/document-assignment-task.model.d.ts +13 -0
- package/types/document-management/models/document-category.model.d.ts +7 -0
- package/types/document-management/models/document-collection-assignment.model.d.ts +7 -0
- package/types/document-management/models/document-collection.model.d.ts +5 -0
- package/types/document-management/models/document-file.model.d.ts +7 -0
- package/types/document-management/models/document-property-value.model.d.ts +12 -0
- package/types/document-management/models/document-property.model.d.ts +16 -0
- package/types/document-management/models/document-request-collection.model.d.ts +7 -0
- package/types/document-management/models/document-request-submission.model.d.ts +7 -0
- package/types/document-management/models/document-request-template.d.ts +8 -0
- package/types/document-management/models/document-request.model.d.ts +18 -0
- package/types/document-management/models/document-requests-template.d.ts +5 -0
- package/types/document-management/models/document-type-property.model.d.ts +6 -0
- package/types/document-management/models/document-type-validation.model.d.ts +6 -0
- package/types/document-management/models/document-type.model.d.ts +7 -0
- package/types/document-management/models/document-validation-definition.model.d.ts +10 -0
- package/types/document-management/models/document-validation-execution-related-document.model.d.ts +7 -0
- package/types/document-management/models/document-validation-execution.model.d.ts +26 -0
- package/types/document-management/models/document-workflow.model.d.ts +35 -0
- package/types/document-management/models/document.model.d.ts +24 -0
- package/types/document-management/models/index.d.ts +22 -0
- package/types/document-management/models/service-models/categories-and-types.view-model.d.ts +6 -0
- package/types/document-management/models/service-models/document-folders.view-model.d.ts +15 -0
- package/types/document-management/models/service-models/document-management.view-model.d.ts +41 -0
- package/types/document-management/models/service-models/document.service-model.d.ts +253 -0
- package/types/document-management/models/service-models/enriched/enriched-document-assignment.view.d.ts +11 -0
- package/types/document-management/models/service-models/enriched/enriched-document-category.view.d.ts +13 -0
- package/types/document-management/models/service-models/enriched/enriched-document-collection.view.d.ts +22 -0
- package/types/document-management/models/service-models/enriched/enriched-document-file.view.d.ts +12 -0
- package/types/document-management/models/service-models/enriched/enriched-document-management-data.view.d.ts +41 -0
- package/types/document-management/models/service-models/enriched/enriched-document-request.view.d.ts +17 -0
- package/types/document-management/models/service-models/enriched/enriched-document-type.view.d.ts +9 -0
- package/types/document-management/models/service-models/enriched/enriched-document.view.d.ts +28 -0
- package/types/document-management/models/service-models/enriched/enriched.d.ts +18 -0
- package/types/document-management/models/service-models/enriched/index.d.ts +9 -0
- package/types/document-management/models/service-models/index.d.ts +8 -0
- package/types/document-management/models/service-models/normalized-requests-template-data.model.d.ts +18 -0
- package/types/document-management/models/service-models/stats.view-model.d.ts +8 -0
- package/types/document-management/server/module.d.ts +12 -0
- package/types/document-management/server/schemas.d.ts +31 -0
- package/types/document-management/server/services/document-category-type.service.d.ts +25 -0
- package/types/document-management/server/services/document-collection.service.d.ts +13 -0
- package/types/document-management/server/services/document-file.service.d.ts +17 -0
- package/types/document-management/server/services/document-management-ai.service.d.ts +22 -0
- package/types/document-management/server/services/document-management-ancillary.service.d.ts +128 -0
- package/types/document-management/server/services/document-management.service.d.ts +13 -0
- package/types/document-management/server/services/document-property.service.d.ts +84 -0
- package/types/document-management/server/services/document-request.service.d.ts +30 -0
- package/types/document-management/server/services/document-validation.service.d.ts +20 -0
- package/types/document-management/server/services/document-workflow.service.d.ts +20 -0
- package/types/document-management/server/services/document.service.d.ts +16 -0
- package/types/document-management/server/services/index.d.ts +11 -0
- package/types/document-management/server/validators/ai-validation-executor.d.ts +19 -0
- package/types/document-management/server/validators/index.d.ts +2 -0
- package/types/document-management/server/validators/single-document-validation-executor.d.ts +16 -0
- package/types/document-management/server/validators/validator.d.ts +21 -0
- package/types/dom/file-select-dialog.d.ts +7 -0
- package/types/dom/observation/intersection-observer.d.ts +4 -0
- package/types/dom/observation/media-query-observer.d.ts +12 -0
- package/types/dom/observation/resize-observer.d.ts +4 -0
- package/types/enumerable/async-enumerable.d.ts +78 -0
- package/types/enumerable/enumerable.d.ts +63 -0
- package/types/enumeration/enumeration.d.ts +5 -0
- package/types/errors/errors.localization.d.ts +53 -0
- package/types/errors/not-supported.error.d.ts +7 -0
- package/types/examples/api/authentication.d.ts +1 -0
- package/types/examples/api/basic-overview.d.ts +1 -0
- package/types/examples/api/custom-authentication.d.ts +1 -0
- package/types/examples/api/streaming.d.ts +1 -0
- package/types/examples/browser/basic.d.ts +1 -0
- package/types/examples/document-management/main.d.ts +21 -0
- package/types/examples/http/client.d.ts +1 -0
- package/types/examples/mail/templates/hello-name.d.ts +5 -0
- package/types/examples/orm/schemas.d.ts +3 -0
- package/types/examples/orm/user.model.d.ts +13 -0
- package/types/examples/pdf/templates/hello-name.d.ts +2 -0
- package/types/examples/reflection/basic.d.ts +11 -0
- package/types/examples/template/templates/hello-jsx.d.ts +4 -0
- package/types/examples/template/templates/hello-name.d.ts +4 -0
- package/types/formats.d.ts +51 -0
- package/types/function/log.d.ts +8 -0
- package/types/http/client/adapters/undici.adapter.d.ts +20 -0
- package/types/http/client/http-client-request.d.ts +122 -0
- package/types/http/client/http-client-response.d.ts +28 -0
- package/types/http/client/http-client.d.ts +56 -0
- package/types/http/client/middleware.d.ts +10 -0
- package/types/http/client/module.d.ts +12 -0
- package/types/http/client/tokens.d.ts +2 -0
- package/types/http/http-body.d.ts +21 -0
- package/types/http/http-value-map.d.ts +36 -0
- package/types/http/http.error.d.ts +28 -0
- package/types/http/server/http-server-request.d.ts +23 -0
- package/types/http/server/http-server-response.d.ts +38 -0
- package/types/http/server/http-server.d.ts +16 -0
- package/types/http/server/node/node-http-server.d.ts +22 -0
- package/types/http/types.d.ts +10 -0
- package/types/http/utils.d.ts +18 -0
- package/types/image-service/imgproxy/imgproxy-image-service.d.ts +24 -0
- package/types/index.d.ts +8 -2
- package/types/injector/decorators.d.ts +82 -0
- package/types/injector/injector.d.ts +113 -0
- package/types/injector/interfaces.d.ts +17 -0
- package/types/injector/provider.d.ts +57 -0
- package/types/injector/resolution.d.ts +15 -0
- package/types/injector/resolve-chain.d.ts +34 -0
- package/types/injector/resolve.error.d.ts +5 -0
- package/types/injector/token.d.ts +25 -0
- package/types/injector/type-info.d.ts +22 -0
- package/types/injector/types.d.ts +64 -0
- package/types/key-value-store/key-value.store.d.ts +23 -0
- package/types/key-value-store/mongo/module.d.ts +8 -0
- package/types/key-value-store/mongo/mongo-key-value-store.provider.d.ts +8 -0
- package/types/key-value-store/mongo/mongo-key-value.model.d.ts +7 -0
- package/types/key-value-store/mongo/mongo-key-value.repository.d.ts +10 -0
- package/types/key-value-store/mongo/mongo-key-value.store.d.ts +14 -0
- package/types/key-value-store/mongo/tokens.d.ts +3 -0
- package/types/lock/lock.d.ts +48 -0
- package/types/lock/mongo/lock.d.ts +14 -0
- package/types/lock/mongo/model.d.ts +6 -0
- package/types/lock/mongo/module.d.ts +12 -0
- package/types/lock/mongo/mongo-lock-repository.d.ts +14 -0
- package/types/lock/mongo/provider.d.ts +8 -0
- package/types/lock/provider.d.ts +10 -0
- package/types/lock/web/web-lock.provider.d.ts +8 -0
- package/types/logger/logger.d.ts +41 -0
- package/types/logger/tokens.d.ts +2 -0
- package/types/mail/clients/nodemailer.mail-client.d.ts +13 -0
- package/types/mail/mail.client.d.ts +17 -0
- package/types/mail/mail.service.d.ts +10 -0
- package/types/mail/models/mail-data.model.d.ts +21 -0
- package/types/mail/models/mail-log.model.d.ts +10 -0
- package/types/mail/models/mail-template.model.d.ts +14 -0
- package/types/mail/models/schemas.d.ts +3 -0
- package/types/mail/module.d.ts +15 -0
- package/types/mail/tokens.d.ts +1 -0
- package/types/message-bus/broadcast-channel/broadcast-channel-message-bus-provider.d.ts +8 -0
- package/types/message-bus/broadcast-channel/broadcast-channel-message-bus.d.ts +19 -0
- package/types/message-bus/local/local-message-bus-provider.d.ts +9 -0
- package/types/message-bus/local/local-message-bus.d.ts +14 -0
- package/types/message-bus/message-bus-base.d.ts +26 -0
- package/types/message-bus/message-bus.d.ts +15 -0
- package/types/migration/migration-state-repository.d.ts +4 -0
- package/types/migration/migration-state.d.ts +6 -0
- package/types/migration/mongo/migration-state-repository.d.ts +11 -0
- package/types/migration/mongo/module.d.ts +12 -0
- package/types/module/module-base.d.ts +18 -0
- package/types/module/module-metric-reporter.d.ts +29 -0
- package/types/module/module.d.ts +23 -0
- package/types/module/modules/function.module.d.ts +10 -0
- package/types/module/modules/web-server.module.d.ts +27 -0
- package/types/module/utils.d.ts +4 -0
- package/types/object-storage/object-storage.d.ts +75 -0
- package/types/object-storage/object.d.ts +12 -0
- package/types/object-storage/s3/s3.object-storage-provider.d.ts +41 -0
- package/types/object-storage/s3/s3.object-storage.d.ts +28 -0
- package/types/object-storage/s3/s3.object.d.ts +16 -0
- package/types/openid-connect/cached-oidc-configuration.service.d.ts +9 -0
- package/types/openid-connect/mongo-oidc-state.repository.d.ts +21 -0
- package/types/openid-connect/oidc-configuration.service.d.ts +13 -0
- package/types/openid-connect/oidc-state.model.d.ts +11 -0
- package/types/openid-connect/oidc-state.repository.d.ts +4 -0
- package/types/openid-connect/oidc.service.d.ts +20 -0
- package/types/orm/data-types/bytea.d.ts +18 -0
- package/types/orm/data-types/index.d.ts +7 -0
- package/types/orm/data-types/numeric-date.d.ts +19 -0
- package/types/orm/data-types/timestamp.d.ts +19 -0
- package/types/orm/decorators.d.ts +212 -0
- package/types/orm/entity.d.ts +41 -0
- package/types/orm/index.d.ts +12 -0
- package/types/orm/query.d.ts +164 -0
- package/types/orm/repository.types.d.ts +84 -0
- package/types/orm/schemas/json.d.ts +9 -0
- package/types/orm/schemas/numeric-date.d.ts +8 -0
- package/types/orm/schemas/timestamp.d.ts +10 -0
- package/types/orm/schemas/uuid.d.ts +11 -0
- package/types/orm/server/database-schema.d.ts +45 -0
- package/types/orm/server/database.d.ts +27 -0
- package/types/orm/server/drizzle/schema-converter.d.ts +15 -0
- package/types/orm/server/encryption.d.ts +18 -0
- package/types/orm/server/index.d.ts +13 -0
- package/types/orm/server/module.d.ts +32 -0
- package/types/orm/server/query-converter.d.ts +21 -0
- package/types/orm/server/repository.d.ts +487 -0
- package/types/orm/server/tokens.d.ts +1 -0
- package/types/orm/server/transaction.d.ts +29 -0
- package/types/orm/server/transactional.d.ts +75 -0
- package/types/orm/server/types.d.ts +47 -0
- package/types/orm/sqls.d.ts +71 -0
- package/types/orm/types.d.ts +93 -0
- package/types/orm/utils.d.ts +19 -0
- package/types/password/password-check-result.model.d.ts +19 -0
- package/types/password/password-check.localization.d.ts +20 -0
- package/types/pdf/pdf.service.d.ts +101 -0
- package/types/pdf/utils.d.ts +12 -0
- package/types/pool/pool.d.ts +49 -0
- package/types/process/spawn.d.ts +22 -0
- package/types/process-shutdown.d.ts +9 -0
- package/types/promise/cancelable-promise.d.ts +15 -0
- package/types/queue/mongo/job.d.ts +12 -0
- package/types/queue/mongo/mongo-job.repository.d.ts +13 -0
- package/types/queue/mongo/queue.d.ts +38 -0
- package/types/queue/mongo/queue.provider.d.ts +22 -0
- package/types/queue/postgres/job.model.d.ts +13 -0
- package/types/queue/postgres/module.d.ts +9 -0
- package/types/queue/postgres/queue.d.ts +31 -0
- package/types/queue/postgres/queue.provider.d.ts +7 -0
- package/types/queue/postgres/schemas.d.ts +3 -0
- package/types/queue/provider.d.ts +5 -0
- package/types/queue/queue.d.ts +91 -0
- package/types/reflection/decorators.d.ts +15 -0
- package/types/reflection/registry.d.ts +61 -0
- package/types/reflection/types.d.ts +90 -0
- package/types/reflection/utils.d.ts +33 -0
- package/types/rpc/model.d.ts +64 -0
- package/types/rpc/rpc.adapter.d.ts +19 -0
- package/types/rpc/rpc.d.ts +21 -0
- package/types/rpc/rpc.error.d.ts +8 -0
- package/types/rxjs-utils/retry-backoff.d.ts +4 -0
- package/types/schema/converters/openapi-converter.d.ts +3 -0
- package/types/schema/decorators/class.d.ts +3 -0
- package/types/schema/decorators/description.d.ts +3 -0
- package/types/schema/decorators/schema.d.ts +21 -0
- package/types/schema/decorators/types.d.ts +24 -0
- package/types/schema/decorators/utils.d.ts +7 -0
- package/types/schema/schema.d.ts +99 -0
- package/types/schema/schema.error.d.ts +25 -0
- package/types/schema/schemas/array.d.ts +20 -0
- package/types/schema/schemas/defaulted.d.ts +13 -0
- package/types/schema/schemas/deferred.d.ts +12 -0
- package/types/schema/schemas/enumeration.d.ts +13 -0
- package/types/schema/schemas/function.d.ts +23 -0
- package/types/schema/schemas/instance.d.ts +13 -0
- package/types/schema/schemas/literal.d.ts +12 -0
- package/types/schema/schemas/never.d.ts +8 -0
- package/types/schema/schemas/nullable.d.ts +12 -0
- package/types/schema/schemas/number.d.ts +19 -0
- package/types/schema/schemas/object.d.ts +91 -0
- package/types/schema/schemas/one-or-many.d.ts +15 -0
- package/types/schema/schemas/optional.d.ts +13 -0
- package/types/schema/schemas/simple.d.ts +27 -0
- package/types/schema/schemas/transform.d.ts +10 -0
- package/types/schema/schemas/union.d.ts +15 -0
- package/types/search-index/elastic/config.d.ts +8 -0
- package/types/search-index/elastic/model/index-mapping.d.ts +26 -0
- package/types/search-index/elastic/model/sort.d.ts +8 -0
- package/types/search-index/elastic/module.d.ts +10 -0
- package/types/search-index/elastic/query-converter.d.ts +9 -0
- package/types/search-index/elastic/search-index.d.ts +30 -0
- package/types/search-index/elastic/sort-converter.d.ts +4 -0
- package/types/search-index/error.d.ts +10 -0
- package/types/search-index/memory/memory-search-index.d.ts +19 -0
- package/types/search-index/search-index.d.ts +46 -0
- package/types/search-index/search-result.d.ts +12 -0
- package/types/serializer/handlers/binary.d.ts +12 -0
- package/types/serializer/serializable.d.ts +33 -0
- package/types/serializer/serializer.d.ts +20 -0
- package/types/serializer/types.d.ts +65 -0
- package/types/sse/server-sent-events-source.d.ts +12 -0
- package/types/templates/module.d.ts +14 -0
- package/types/templates/providers/file.template-provider.d.ts +15 -0
- package/types/templates/renderers/handlebars.template-renderer.d.ts +43 -0
- package/types/templates/renderers/jsx.template-renderer.d.ts +10 -0
- package/types/templates/renderers/mjml.template-renderer.d.ts +16 -0
- package/types/templates/renderers/string.template-renderer.d.ts +10 -0
- package/types/templates/resolvers/file.template-resolver.d.ts +22 -0
- package/types/templates/resolvers/jsx.template-resolver.d.ts +17 -0
- package/types/templates/resolvers/string.template-resolver.d.ts +13 -0
- package/types/templates/template.model.d.ts +25 -0
- package/types/templates/template.renderer.d.ts +20 -0
- package/types/templates/template.service.d.ts +18 -0
- package/types/templates/tokens.d.ts +4 -0
- package/types/test.d.ts +1 -0
- package/types/test2.d.ts +1 -0
- package/types/test3.d.ts +1 -0
- package/types/test4.d.ts +21 -0
- package/types/test5.d.ts +1 -0
- package/types/test6.d.ts +1 -0
- package/types/text/dynamic-text.model.d.ts +15 -0
- package/types/text/localization.service.d.ts +92 -0
- package/types/theme/adapters/tailwind-adapter.d.ts +18 -0
- package/types/theme/theme-service.d.ts +43 -0
- package/types/threading/thread-pool.d.ts +20 -0
- package/types/tools/fetch-mime-types.d.ts +1 -0
- package/types/types/geo-json.d.ts +36 -0
- package/types/types/index.d.ts +2 -0
- package/types/types/tagged.d.ts +16 -0
- package/types/types.d.ts +215 -0
- package/types/utils/async-hook/async-hook.d.ts +9 -0
- package/types/utils/async-hook/index.d.ts +1 -0
- package/types/utils/async-iterable-helpers/take-until.d.ts +3 -0
- package/types/utils/backoff.d.ts +77 -0
- package/types/utils/binary.d.ts +16 -0
- package/types/utils/cryptography.d.ts +122 -0
- package/types/utils/encoding.d.ts +36 -0
- package/types/utils/enum.d.ts +9 -0
- package/types/utils/equals.d.ts +30 -0
- package/types/utils/event-loop.d.ts +4 -0
- package/types/utils/format-error.d.ts +24 -0
- package/types/utils/function/class.d.ts +6 -0
- package/types/utils/function/index.d.ts +3 -0
- package/types/utils/function/memoize.d.ts +36 -0
- package/types/utils/iterable-helpers/take-until.d.ts +2 -0
- package/types/utils/jwt.d.ts +32 -0
- package/types/utils/math.d.ts +93 -0
- package/types/utils/merge.d.ts +19 -0
- package/types/utils/object/decycle.d.ts +16 -0
- package/types/utils/object/dereference.d.ts +34 -0
- package/types/utils/object/forward-ref.d.ts +21 -0
- package/types/utils/object/lazy-property.d.ts +49 -0
- package/types/utils/object/object.d.ts +30 -0
- package/types/utils/object/property-name.d.ts +61 -0
- package/types/utils/patch-worker.d.ts +25 -0
- package/types/utils/reactive-value-to-signal.d.ts +20 -0
- package/types/utils/reflection.d.ts +8 -0
- package/types/utils/repl.d.ts +9 -0
- package/types/utils/singleton.d.ts +7 -0
- package/types/utils/stream/from-promise.d.ts +3 -0
- package/types/utils/stream/index.d.ts +9 -0
- package/types/utils/stream/size-limited-stream.d.ts +2 -0
- package/types/utils/timing.d.ts +20 -0
- package/types/utils/try-ignore.d.ts +9 -0
- package/types/utils/type/extends.d.ts +3 -0
- package/types/utils/type-guards.d.ts +259 -0
- package/types/utils/z-base32.d.ts +3 -0
- package/utils/async-hook/async-hook.js +21 -0
- package/utils/async-hook/index.js +1 -0
- package/utils/compression.js +1 -1
- package/utils/function/class.js +9 -0
- package/utils/function/index.js +1 -0
- package/utils/function/memoize.js +41 -2
- package/utils/jwt.js +5 -5
- package/utils/object/forward-ref.js +12 -12
- package/utils/object/lazy-property.js +2 -2
- package/utils/proxy.js +1 -1
- package/utils/stream/from-promise.js +27 -0
- package/utils/stream/index.js +1 -1
- package/utils/stream/stream-reader.js +71 -31
- package/ai/ai-file.service.d.ts +0 -27
- package/ai/ai-session.d.ts +0 -11
- package/ai/ai.service.d.ts +0 -68
- package/ai/functions.d.ts +0 -3
- package/ai/types.d.ts +0 -89
- package/api/client/client.d.ts +0 -23
- package/api/default-error-handlers.d.ts +0 -14
- package/api/server/api-controller.d.ts +0 -11
- package/api/server/error-handler.d.ts +0 -4
- package/api/server/gateway.d.ts +0 -77
- package/api/server/middlewares/catch-error.middleware.d.ts +0 -4
- package/api/server/middlewares/cors.middleware.d.ts +0 -6
- package/api/server/module.d.ts +0 -10
- package/api/server/tokens.d.ts +0 -5
- package/api/types.d.ts +0 -123
- package/application/application.d.ts +0 -34
- package/authentication/authentication.api.d.ts +0 -293
- package/authentication/client/api.client.d.ts +0 -9
- package/authentication/client/authentication.service.d.ts +0 -61
- package/authentication/client/http-client.middleware.d.ts +0 -4
- package/authentication/client/module.d.ts +0 -10
- package/authentication/client/tokens.d.ts +0 -4
- package/authentication/errors/secret-requirements.error.d.ts +0 -5
- package/authentication/models/authentication-credentials.model.d.ts +0 -7
- package/authentication/models/authentication-session.model.d.ts +0 -10
- package/authentication/models/schemas.d.ts +0 -5
- package/authentication/models/secret-check-result.model.d.ts +0 -3
- package/authentication/models/token.model.d.ts +0 -20
- package/authentication/server/authentication-ancillary.service.d.ts +0 -27
- package/authentication/server/authentication-api-request-token.provider.d.ts +0 -8
- package/authentication/server/authentication.api-controller.d.ts +0 -23
- package/authentication/server/authentication.service.d.ts +0 -110
- package/authentication/server/helper.d.ts +0 -15
- package/authentication/server/module.d.ts +0 -14
- package/browser/browser-context-controller.d.ts +0 -45
- package/browser/browser-controller.d.ts +0 -49
- package/browser/browser.service.d.ts +0 -42
- package/browser/element-controller.d.ts +0 -104
- package/browser/locator-controller.d.ts +0 -16
- package/browser/page-controller.d.ts +0 -40
- package/browser/types.d.ts +0 -15
- package/browser/utils.d.ts +0 -17
- package/collections/observable/observable-sorted-array-list.d.ts +0 -36
- package/collections/sorted-array-list.d.ts +0 -37
- package/context/context.d.ts +0 -10
- package/data-structures/array-list.d.ts +0 -30
- package/data-structures/circular-buffer.d.ts +0 -56
- package/data-structures/collection.d.ts +0 -65
- package/data-structures/context-data-map.d.ts +0 -11
- package/data-structures/index-out-of-bounds.error.d.ts +0 -8
- package/data-structures/linked-list.d.ts +0 -57
- package/data-structures/list.d.ts +0 -78
- package/data-structures/sorted-array-list.d.ts +0 -49
- package/database/module.d.ts +0 -8
- package/database/mongo/classes.d.ts +0 -21
- package/database/mongo/model/document.d.ts +0 -29
- package/database/mongo/mongo-base.repository.d.ts +0 -103
- package/database/mongo/mongo-bulk.d.ts +0 -35
- package/database/mongo/mongo-entity-repository.d.ts +0 -98
- package/database/mongo/operations.d.ts +0 -10
- package/database/mongo/query-converter.d.ts +0 -6
- package/database/mongo/simple-entity-repository.d.ts +0 -7
- package/database/mongo/types.d.ts +0 -50
- package/database/query.d.ts +0 -121
- package/decorators/log.d.ts +0 -3
- package/disposable/async-disposer.d.ts +0 -35
- package/distributed-loop/distributed-loop.d.ts +0 -32
- package/distributed-loop/provider.d.ts +0 -7
- package/document-management/api/document-management.api.d.ts +0 -789
- package/document-management/localizations/localization.d.ts +0 -9
- package/document-management/models/document-category.model.d.ts +0 -5
- package/document-management/models/document-collection-document.model.d.ts +0 -7
- package/document-management/models/document-collection-document.model.js +0 -39
- package/document-management/models/document-collection.model.d.ts +0 -3
- package/document-management/models/document-file.model.d.ts +0 -7
- package/document-management/models/document-property-value.model.d.ts +0 -20
- package/document-management/models/document-property.model.d.ts +0 -15
- package/document-management/models/document-request-assignment-task-collection.model.d.ts +0 -7
- package/document-management/models/document-request-assignment-task-collection.model.js +0 -34
- package/document-management/models/document-request-assignment-task.model.d.ts +0 -14
- package/document-management/models/document-request-assignment-task.model.js +0 -77
- package/document-management/models/document-request-collection.model.d.ts +0 -7
- package/document-management/models/document-request-file.model.d.ts +0 -16
- package/document-management/models/document-request-file.model.js +0 -86
- package/document-management/models/document-request-template.d.ts +0 -10
- package/document-management/models/document-request.model.d.ts +0 -10
- package/document-management/models/document-requests-template.d.ts +0 -5
- package/document-management/models/document-type-property.model.d.ts +0 -6
- package/document-management/models/document-type.model.d.ts +0 -8
- package/document-management/models/document.model.d.ts +0 -13
- package/document-management/models/index.d.ts +0 -17
- package/document-management/models/service-models/categories-and-types.view-model.d.ts +0 -6
- package/document-management/models/service-models/document-folders.view-model.d.ts +0 -22
- package/document-management/models/service-models/document.service-model.d.ts +0 -283
- package/document-management/models/service-models/document.view-model.d.ts +0 -41
- package/document-management/models/service-models/document.view-model.js +0 -110
- package/document-management/models/service-models/index.d.ts +0 -8
- package/document-management/models/service-models/normalized-document-collection-view.model.d.ts +0 -73
- package/document-management/models/service-models/normalized-document-collection-view.model.js +0 -110
- package/document-management/models/service-models/normalized-requests-template-data.model.d.ts +0 -16
- package/document-management/models/service-models/stats.view-model.d.ts +0 -6
- package/document-management/server/module.d.ts +0 -12
- package/document-management/server/schemas.d.ts +0 -36
- package/document-management/server/services/document-management-ancillary.service.d.ts +0 -4
- package/document-management/server/services/document-management.service.d.ts +0 -125
- package/document-management/server/services/index.d.ts +0 -2
- package/dom/file-select-dialog.d.ts +0 -7
- package/dom/observation/intersection-observer.d.ts +0 -4
- package/dom/observation/media-query-observer.d.ts +0 -12
- package/dom/observation/resize-observer.d.ts +0 -4
- package/enumerable/async-enumerable.d.ts +0 -78
- package/enumerable/enumerable.d.ts +0 -63
- package/enumeration/enumeration.d.ts +0 -5
- package/errors/errors.localization.d.ts +0 -53
- package/errors/not-supported.error.d.ts +0 -7
- package/examples/api/authentication.d.ts +0 -1
- package/examples/api/basic-overview.d.ts +0 -1
- package/examples/api/custom-authentication.d.ts +0 -1
- package/examples/api/streaming.d.ts +0 -1
- package/examples/browser/basic.d.ts +0 -1
- package/examples/document-management/main.d.ts +0 -6
- package/examples/http/client.d.ts +0 -1
- package/examples/mail/templates/hello-name.d.ts +0 -5
- package/examples/orm/schemas.d.ts +0 -3
- package/examples/orm/user.model.d.ts +0 -13
- package/examples/pdf/templates/hello-name.d.ts +0 -2
- package/examples/reflection/basic.d.ts +0 -11
- package/examples/template/templates/hello-jsx.d.ts +0 -4
- package/examples/template/templates/hello-name.d.ts +0 -4
- package/formats.d.ts +0 -48
- package/function/log.d.ts +0 -8
- package/http/client/adapters/undici.adapter.d.ts +0 -20
- package/http/client/http-client-request.d.ts +0 -122
- package/http/client/http-client-response.d.ts +0 -28
- package/http/client/http-client.d.ts +0 -56
- package/http/client/middleware.d.ts +0 -10
- package/http/client/module.d.ts +0 -12
- package/http/client/tokens.d.ts +0 -2
- package/http/http-body.d.ts +0 -21
- package/http/http-value-map.d.ts +0 -36
- package/http/http.error.d.ts +0 -28
- package/http/server/http-server-request.d.ts +0 -23
- package/http/server/http-server-response.d.ts +0 -38
- package/http/server/http-server.d.ts +0 -16
- package/http/server/node/node-http-server.d.ts +0 -22
- package/http/types.d.ts +0 -10
- package/http/utils.d.ts +0 -18
- package/image-service/imgproxy/imgproxy-image-service.d.ts +0 -24
- package/index.d.ts +0 -8
- package/injector/decorators.d.ts +0 -82
- package/injector/injector.d.ts +0 -113
- package/injector/interfaces.d.ts +0 -17
- package/injector/provider.d.ts +0 -57
- package/injector/resolution.d.ts +0 -15
- package/injector/resolve-chain.d.ts +0 -34
- package/injector/resolve.error.d.ts +0 -5
- package/injector/token.d.ts +0 -25
- package/injector/type-info.d.ts +0 -22
- package/injector/types.d.ts +0 -64
- package/key-value-store/key-value.store.d.ts +0 -23
- package/key-value-store/mongo/module.d.ts +0 -8
- package/key-value-store/mongo/mongo-key-value-store.provider.d.ts +0 -8
- package/key-value-store/mongo/mongo-key-value.model.d.ts +0 -7
- package/key-value-store/mongo/mongo-key-value.repository.d.ts +0 -10
- package/key-value-store/mongo/mongo-key-value.store.d.ts +0 -14
- package/key-value-store/mongo/tokens.d.ts +0 -3
- package/lock/lock.d.ts +0 -48
- package/lock/mongo/lock.d.ts +0 -14
- package/lock/mongo/model.d.ts +0 -6
- package/lock/mongo/module.d.ts +0 -12
- package/lock/mongo/mongo-lock-repository.d.ts +0 -14
- package/lock/mongo/provider.d.ts +0 -8
- package/lock/provider.d.ts +0 -10
- package/lock/web/web-lock.provider.d.ts +0 -8
- package/logger/logger.d.ts +0 -41
- package/logger/tokens.d.ts +0 -2
- package/mail/clients/nodemailer.mail-client.d.ts +0 -13
- package/mail/mail.client.d.ts +0 -17
- package/mail/mail.service.d.ts +0 -10
- package/mail/models/mail-data.model.d.ts +0 -21
- package/mail/models/mail-log.model.d.ts +0 -10
- package/mail/models/mail-template.model.d.ts +0 -14
- package/mail/models/schemas.d.ts +0 -3
- package/mail/module.d.ts +0 -15
- package/mail/tokens.d.ts +0 -1
- package/message-bus/broadcast-channel/broadcast-channel-message-bus-provider.d.ts +0 -8
- package/message-bus/broadcast-channel/broadcast-channel-message-bus.d.ts +0 -19
- package/message-bus/local/local-message-bus-provider.d.ts +0 -9
- package/message-bus/local/local-message-bus.d.ts +0 -14
- package/message-bus/message-bus-base.d.ts +0 -26
- package/message-bus/message-bus.d.ts +0 -15
- package/migration/migration-state-repository.d.ts +0 -4
- package/migration/migration-state.d.ts +0 -6
- package/migration/mongo/migration-state-repository.d.ts +0 -11
- package/migration/mongo/module.d.ts +0 -12
- package/module/module-base.d.ts +0 -18
- package/module/module-metric-reporter.d.ts +0 -29
- package/module/module.d.ts +0 -23
- package/module/modules/function.module.d.ts +0 -10
- package/module/modules/web-server.module.d.ts +0 -27
- package/module/utils.d.ts +0 -4
- package/object-storage/object-storage.d.ts +0 -75
- package/object-storage/object.d.ts +0 -12
- package/object-storage/s3/s3.object-storage-provider.d.ts +0 -41
- package/object-storage/s3/s3.object-storage.d.ts +0 -28
- package/object-storage/s3/s3.object.d.ts +0 -16
- package/openid-connect/cached-oidc-configuration.service.d.ts +0 -9
- package/openid-connect/mongo-oidc-state.repository.d.ts +0 -21
- package/openid-connect/oidc-configuration.service.d.ts +0 -13
- package/openid-connect/oidc-state.model.d.ts +0 -11
- package/openid-connect/oidc-state.repository.d.ts +0 -4
- package/openid-connect/oidc.service.d.ts +0 -20
- package/orm/data-types/bytea.d.ts +0 -10
- package/orm/data-types/index.d.ts +0 -3
- package/orm/data-types/numeric-date.d.ts +0 -10
- package/orm/data-types/timestamp.d.ts +0 -10
- package/orm/decorators.d.ts +0 -78
- package/orm/entity.d.ts +0 -22
- package/orm/index.d.ts +0 -7
- package/orm/query.d.ts +0 -113
- package/orm/repository.types.d.ts +0 -32
- package/orm/schemas/json.d.ts +0 -9
- package/orm/schemas/numeric-date.d.ts +0 -8
- package/orm/schemas/timestamp.d.ts +0 -10
- package/orm/schemas/uuid.d.ts +0 -11
- package/orm/server/database-schema.d.ts +0 -11
- package/orm/server/database.d.ts +0 -9
- package/orm/server/drizzle/schema-converter.d.ts +0 -14
- package/orm/server/encryption.d.ts +0 -2
- package/orm/server/index.d.ts +0 -6
- package/orm/server/module.d.ts +0 -12
- package/orm/server/query-converter.d.ts +0 -4
- package/orm/server/repository.d.ts +0 -179
- package/orm/server/tokens.d.ts +0 -1
- package/orm/server/transaction.d.ts +0 -29
- package/orm/server/types.d.ts +0 -46
- package/orm/sqls.d.ts +0 -16
- package/orm/types.d.ts +0 -30
- package/orm/utils.d.ts +0 -3
- package/password/password-check-result.model.d.ts +0 -17
- package/password/password-check.localization.d.ts +0 -20
- package/pdf/pdf.service.d.ts +0 -101
- package/pdf/utils.d.ts +0 -3
- package/pool/pool.d.ts +0 -49
- package/process/spawn.d.ts +0 -15
- package/process-shutdown.d.ts +0 -9
- package/promise/cancelable-promise.d.ts +0 -15
- package/queue/mongo/job.d.ts +0 -12
- package/queue/mongo/mongo-job.repository.d.ts +0 -13
- package/queue/mongo/queue.d.ts +0 -38
- package/queue/mongo/queue.provider.d.ts +0 -22
- package/queue/postgres/job.model.d.ts +0 -13
- package/queue/postgres/module.d.ts +0 -9
- package/queue/postgres/queue.d.ts +0 -31
- package/queue/postgres/queue.provider.d.ts +0 -7
- package/queue/postgres/schemas.d.ts +0 -3
- package/queue/provider.d.ts +0 -5
- package/queue/queue.d.ts +0 -89
- package/reflection/decorators.d.ts +0 -15
- package/reflection/registry.d.ts +0 -61
- package/reflection/types.d.ts +0 -90
- package/reflection/utils.d.ts +0 -33
- package/rpc/model.d.ts +0 -64
- package/rpc/rpc.adapter.d.ts +0 -19
- package/rpc/rpc.d.ts +0 -21
- package/rpc/rpc.error.d.ts +0 -8
- package/rxjs-utils/retry-backoff.d.ts +0 -4
- package/schema/converters/openapi-converter.d.ts +0 -3
- package/schema/decorators/class.d.ts +0 -3
- package/schema/decorators/description.d.ts +0 -3
- package/schema/decorators/schema.d.ts +0 -21
- package/schema/decorators/types.d.ts +0 -24
- package/schema/decorators/utils.d.ts +0 -7
- package/schema/schema.d.ts +0 -99
- package/schema/schema.error.d.ts +0 -25
- package/schema/schemas/array.d.ts +0 -20
- package/schema/schemas/defaulted.d.ts +0 -13
- package/schema/schemas/deferred.d.ts +0 -12
- package/schema/schemas/enumeration.d.ts +0 -13
- package/schema/schemas/function.d.ts +0 -23
- package/schema/schemas/instance.d.ts +0 -13
- package/schema/schemas/literal.d.ts +0 -12
- package/schema/schemas/never.d.ts +0 -8
- package/schema/schemas/nullable.d.ts +0 -12
- package/schema/schemas/number.d.ts +0 -19
- package/schema/schemas/object.d.ts +0 -91
- package/schema/schemas/one-or-many.d.ts +0 -14
- package/schema/schemas/optional.d.ts +0 -13
- package/schema/schemas/simple.d.ts +0 -27
- package/schema/schemas/transform.d.ts +0 -10
- package/schema/schemas/union.d.ts +0 -15
- package/search-index/elastic/config.d.ts +0 -8
- package/search-index/elastic/model/index-mapping.d.ts +0 -26
- package/search-index/elastic/model/sort.d.ts +0 -8
- package/search-index/elastic/module.d.ts +0 -10
- package/search-index/elastic/query-converter.d.ts +0 -9
- package/search-index/elastic/search-index.d.ts +0 -31
- package/search-index/elastic/sort-converter.d.ts +0 -4
- package/search-index/error.d.ts +0 -10
- package/search-index/memory/memory-search-index.d.ts +0 -19
- package/search-index/search-index.d.ts +0 -46
- package/search-index/search-result.d.ts +0 -12
- package/serializer/handlers/binary.d.ts +0 -12
- package/serializer/serializable.d.ts +0 -33
- package/serializer/serializer.d.ts +0 -20
- package/serializer/types.d.ts +0 -65
- package/sse/server-sent-events-source.d.ts +0 -12
- package/templates/module.d.ts +0 -14
- package/templates/providers/file.template-provider.d.ts +0 -15
- package/templates/renderers/handlebars.template-renderer.d.ts +0 -43
- package/templates/renderers/jsx.template-renderer.d.ts +0 -10
- package/templates/renderers/mjml.template-renderer.d.ts +0 -16
- package/templates/renderers/string.template-renderer.d.ts +0 -10
- package/templates/resolvers/file.template-resolver.d.ts +0 -22
- package/templates/resolvers/jsx.template-resolver.d.ts +0 -17
- package/templates/resolvers/string.template-resolver.d.ts +0 -13
- package/templates/template.model.d.ts +0 -25
- package/templates/template.renderer.d.ts +0 -20
- package/templates/template.service.d.ts +0 -18
- package/templates/tokens.d.ts +0 -4
- package/text/dynamic-text.model.d.ts +0 -15
- package/text/localization.service.d.ts +0 -92
- package/theme/adapters/tailwind-adapter.d.ts +0 -18
- package/theme/theme-service.d.ts +0 -43
- package/threading/thread-pool.d.ts +0 -20
- package/types/geo-json.d.ts +0 -36
- package/types/tagged.d.ts +0 -16
- package/types.d.ts +0 -214
- package/utils/async-iterable-helpers/take-until.d.ts +0 -3
- package/utils/backoff.d.ts +0 -77
- package/utils/binary.d.ts +0 -16
- package/utils/cryptography.d.ts +0 -122
- package/utils/encoding.d.ts +0 -36
- package/utils/enum.d.ts +0 -9
- package/utils/equals.d.ts +0 -30
- package/utils/event-loop.d.ts +0 -4
- package/utils/format-error.d.ts +0 -24
- package/utils/function/index.d.ts +0 -2
- package/utils/function/memoize.d.ts +0 -18
- package/utils/iterable-helpers/take-until.d.ts +0 -2
- package/utils/jwt.d.ts +0 -32
- package/utils/math.d.ts +0 -93
- package/utils/merge.d.ts +0 -19
- package/utils/object/decycle.d.ts +0 -16
- package/utils/object/dereference.d.ts +0 -34
- package/utils/object/forward-ref.d.ts +0 -20
- package/utils/object/lazy-property.d.ts +0 -49
- package/utils/object/object.d.ts +0 -30
- package/utils/object/property-name.d.ts +0 -61
- package/utils/patch-worker.d.ts +0 -25
- package/utils/reactive-value-to-signal.d.ts +0 -20
- package/utils/reflection.d.ts +0 -8
- package/utils/repl.d.ts +0 -9
- package/utils/singleton.d.ts +0 -7
- package/utils/stream/index.d.ts +0 -9
- package/utils/stream/readable-stream-from-promise.d.ts +0 -2
- package/utils/stream/readable-stream-from-promise.js +0 -8
- package/utils/stream/size-limited-stream.d.ts +0 -2
- package/utils/timing.d.ts +0 -20
- package/utils/try-ignore.d.ts +0 -9
- package/utils/type/extends.d.ts +0 -3
- package/utils/type-guards.d.ts +0 -259
- package/utils/z-base32.d.ts +0 -3
- /package/{ai → types/ai}/index.d.ts +0 -0
- /package/{ai → types/ai}/module.d.ts +0 -0
- /package/{api → types/api}/client/index.d.ts +0 -0
- /package/{api → types/api}/index.d.ts +0 -0
- /package/{api → types/api}/response.d.ts +0 -0
- /package/{api → types/api}/server/api-request-token.provider.d.ts +0 -0
- /package/{api → types/api}/server/index.d.ts +0 -0
- /package/{api → types/api}/server/middlewares/allowed-methods.middleware.d.ts +0 -0
- /package/{api → types/api}/server/middlewares/content-type.middleware.d.ts +0 -0
- /package/{api → types/api}/server/middlewares/index.d.ts +0 -0
- /package/{api → types/api}/server/middlewares/response-time.middleware.d.ts +0 -0
- /package/{api → types/api}/utils.d.ts +0 -0
- /package/{application → types/application}/index.d.ts +0 -0
- /package/{authentication → types/authentication}/client/index.d.ts +0 -0
- /package/{authentication → types/authentication}/errors/index.d.ts +0 -0
- /package/{authentication → types/authentication}/index.d.ts +0 -0
- /package/{authentication → types/authentication}/models/index.d.ts +0 -0
- /package/{authentication → types/authentication}/models/init-secret-reset-data.model.d.ts +0 -0
- /package/{authentication → types/authentication}/models/token-payload-base.model.d.ts +0 -0
- /package/{authentication → types/authentication}/server/authentication-secret-requirements.validator.d.ts +0 -0
- /package/{authentication → types/authentication}/server/drizzle.config.d.ts +0 -0
- /package/{authentication → types/authentication}/server/index.d.ts +0 -0
- /package/{browser → types/browser}/document-controller.d.ts +0 -0
- /package/{browser → types/browser}/frame-controller.d.ts +0 -0
- /package/{browser → types/browser}/index.d.ts +0 -0
- /package/{browser → types/browser}/module.d.ts +0 -0
- /package/{browser → types/browser}/pdf-options.d.ts +0 -0
- /package/{cancellation → types/cancellation}/index.d.ts +0 -0
- /package/{cancellation → types/cancellation}/token.d.ts +0 -0
- /package/{collections → types/collections}/awaitable/awaitable-list.d.ts +0 -0
- /package/{collections → types/collections}/awaitable/awaitable-map.d.ts +0 -0
- /package/{collections → types/collections}/awaitable/awaitable-set.d.ts +0 -0
- /package/{collections → types/collections}/awaitable/index.d.ts +0 -0
- /package/{collections → types/collections}/collection.d.ts +0 -0
- /package/{collections → types/collections}/index.d.ts +0 -0
- /package/{collections → types/collections}/keyed-set.d.ts +0 -0
- /package/{collections → types/collections}/list.d.ts +0 -0
- /package/{collections → types/collections}/observable/index.d.ts +0 -0
- /package/{collections → types/collections}/observable/observable-array.d.ts +0 -0
- /package/{collections → types/collections}/observable/observable-collection-base.d.ts +0 -0
- /package/{collections → types/collections}/observable/observable-collection.d.ts +0 -0
- /package/{collections → types/collections}/observable/observable-list-base.d.ts +0 -0
- /package/{collections → types/collections}/observable/observable-list.d.ts +0 -0
- /package/{collections → types/collections}/observable/observable-map.d.ts +0 -0
- /package/{collections → types/collections}/observable/observable-set.d.ts +0 -0
- /package/{collections → types/collections}/sorted-list.d.ts +0 -0
- /package/{collections → types/collections}/sorted-map.d.ts +0 -0
- /package/{context → types/context}/index.d.ts +0 -0
- /package/{cookie → types/cookie}/cookie.d.ts +0 -0
- /package/{cookie → types/cookie}/index.d.ts +0 -0
- /package/{core.d.ts → types/core.d.ts} +0 -0
- /package/{data-structures → types/data-structures}/array-dictionary.d.ts +0 -0
- /package/{data-structures → types/data-structures}/cache.d.ts +0 -0
- /package/{data-structures → types/data-structures}/dictionary.d.ts +0 -0
- /package/{data-structures → types/data-structures}/distinct-collection.d.ts +0 -0
- /package/{data-structures → types/data-structures}/index.d.ts +0 -0
- /package/{data-structures → types/data-structures}/iterable-weak-map.d.ts +0 -0
- /package/{data-structures → types/data-structures}/map-dictionary.d.ts +0 -0
- /package/{data-structures → types/data-structures}/multi-key-map.d.ts +0 -0
- /package/{data-structures → types/data-structures}/multi-key-set.d.ts +0 -0
- /package/{data-structures → types/data-structures}/set-collection.d.ts +0 -0
- /package/{data-structures → types/data-structures}/weak-ref-map.d.ts +0 -0
- /package/{database → types/database}/entity-repository.d.ts +0 -0
- /package/{database → types/database}/entity.d.ts +0 -0
- /package/{database → types/database}/id.d.ts +0 -0
- /package/{database → types/database}/index.d.ts +0 -0
- /package/{database → types/database}/mongo/index.d.ts +0 -0
- /package/{database → types/database}/mongo/model/index.d.ts +0 -0
- /package/{database → types/database}/mongo/module.d.ts +0 -0
- /package/{database → types/database}/utils.d.ts +0 -0
- /package/{decorators → types/decorators}/index.d.ts +0 -0
- /package/{disposable → types/disposable}/disposable.d.ts +0 -0
- /package/{disposable → types/disposable}/index.d.ts +0 -0
- /package/{disposable → types/disposable}/using.d.ts +0 -0
- /package/{distributed-loop → types/distributed-loop}/controller.d.ts +0 -0
- /package/{distributed-loop → types/distributed-loop}/index.d.ts +0 -0
- /package/{document-management → types/document-management}/api/index.d.ts +0 -0
- /package/{document-management → types/document-management}/index.d.ts +0 -0
- /package/{document-management → types/document-management}/localizations/english.d.ts +0 -0
- /package/{document-management → types/document-management}/localizations/german.d.ts +0 -0
- /package/{document-management → types/document-management}/localizations/index.d.ts +0 -0
- /package/{document-management → types/document-management}/models/document-management-table.d.ts +0 -0
- /package/{document-management → types/document-management}/models/service-models/document-requests-template.view-model.d.ts +0 -0
- /package/{document-management → types/document-management}/server/drizzle.config.d.ts +0 -0
- /package/{document-management → types/document-management}/server/index.d.ts +0 -0
- /package/{dom → types/dom}/file-download.d.ts +0 -0
- /package/{dom → types/dom}/index.d.ts +0 -0
- /package/{dom → types/dom}/observation/index.d.ts +0 -0
- /package/{dom → types/dom}/observation/mutation-observer.d.ts +0 -0
- /package/{dom → types/dom}/observation/performance-observer.d.ts +0 -0
- /package/{dom → types/dom}/observation/touch-observer.d.ts +0 -0
- /package/{enumerable → types/enumerable}/enumerable-methods.d.ts +0 -0
- /package/{enumerable → types/enumerable}/index.d.ts +0 -0
- /package/{enumeration → types/enumeration}/index.d.ts +0 -0
- /package/{environment.d.ts → types/environment.d.ts} +0 -0
- /package/{errors → types/errors}/api.error.d.ts +0 -0
- /package/{errors → types/errors}/assertion.error.d.ts +0 -0
- /package/{errors → types/errors}/bad-request.error.d.ts +0 -0
- /package/{errors → types/errors}/custom.error.d.ts +0 -0
- /package/{errors → types/errors}/details.error.d.ts +0 -0
- /package/{errors → types/errors}/forbidden.error.d.ts +0 -0
- /package/{errors → types/errors}/index.d.ts +0 -0
- /package/{errors → types/errors}/invalid-credentials.error.d.ts +0 -0
- /package/{errors → types/errors}/invalid-token.error.d.ts +0 -0
- /package/{errors → types/errors}/max-bytes-exceeded.error.d.ts +0 -0
- /package/{errors → types/errors}/method-not-allowed.error.d.ts +0 -0
- /package/{errors → types/errors}/multi.error.d.ts +0 -0
- /package/{errors → types/errors}/not-found.error.d.ts +0 -0
- /package/{errors → types/errors}/not-implemented.error.d.ts +0 -0
- /package/{errors → types/errors}/timeout.error.d.ts +0 -0
- /package/{errors → types/errors}/unauthorized.error.d.ts +0 -0
- /package/{errors → types/errors}/unsupported-media-type.error.d.ts +0 -0
- /package/{errors → types/errors}/utils.d.ts +0 -0
- /package/{examples → types/examples}/mail/basic.d.ts +0 -0
- /package/{examples → types/examples}/orm/drizzle.config.d.ts +0 -0
- /package/{examples → types/examples}/orm/test.d.ts +0 -0
- /package/{examples → types/examples}/pdf/basic.d.ts +0 -0
- /package/{examples → types/examples}/template/basic.d.ts +0 -0
- /package/{file → types/file}/index.d.ts +0 -0
- /package/{file → types/file}/mime-type.d.ts +0 -0
- /package/{file → types/file}/mime-types.d.ts +0 -0
- /package/{file → types/file}/server/index.d.ts +0 -0
- /package/{file → types/file}/server/temporary-file.d.ts +0 -0
- /package/{function → types/function}/index.d.ts +0 -0
- /package/{http → types/http}/client/http-client-options.d.ts +0 -0
- /package/{http → types/http}/client/http-client.adapter.d.ts +0 -0
- /package/{http → types/http}/client/index.d.ts +0 -0
- /package/{http → types/http}/cookie-parser.d.ts +0 -0
- /package/{http → types/http}/http-form.d.ts +0 -0
- /package/{http → types/http}/http-headers.d.ts +0 -0
- /package/{http → types/http}/http-query.d.ts +0 -0
- /package/{http → types/http}/http-url-parameters.d.ts +0 -0
- /package/{http → types/http}/index.d.ts +0 -0
- /package/{http → types/http}/server/index.d.ts +0 -0
- /package/{http → types/http}/server/node/index.d.ts +0 -0
- /package/{http → types/http}/server/node/module.d.ts +0 -0
- /package/{image-service → types/image-service}/image-service.d.ts +0 -0
- /package/{image-service → types/image-service}/imgproxy/index.d.ts +0 -0
- /package/{image-service → types/image-service}/index.d.ts +0 -0
- /package/{import.d.ts → types/import.d.ts} +0 -0
- /package/{injector → types/injector}/index.d.ts +0 -0
- /package/{injector → types/injector}/inject.d.ts +0 -0
- /package/{injector → types/injector}/symbols.d.ts +0 -0
- /package/{interfaces.d.ts → types/interfaces.d.ts} +0 -0
- /package/{intl → types/intl}/index.d.ts +0 -0
- /package/{intl → types/intl}/number-parser.d.ts +0 -0
- /package/{json-path → types/json-path}/index.d.ts +0 -0
- /package/{json-path → types/json-path}/json-path.d.ts +0 -0
- /package/{jsx → types/jsx}/index.d.ts +0 -0
- /package/{jsx → types/jsx}/is-component-class.d.ts +0 -0
- /package/{jsx → types/jsx}/render-to-string.d.ts +0 -0
- /package/{key-value-store → types/key-value-store}/index.d.ts +0 -0
- /package/{key-value-store → types/key-value-store}/key-value-store.provider.d.ts +0 -0
- /package/{key-value-store → types/key-value-store}/mongo/index.d.ts +0 -0
- /package/{lock → types/lock}/index.d.ts +0 -0
- /package/{lock → types/lock}/mongo/index.d.ts +0 -0
- /package/{lock → types/lock}/web/index.d.ts +0 -0
- /package/{lock → types/lock}/web/module.d.ts +0 -0
- /package/{lock → types/lock}/web/web-lock.d.ts +0 -0
- /package/{logger → types/logger}/console/index.d.ts +0 -0
- /package/{logger → types/logger}/console/logger.d.ts +0 -0
- /package/{logger → types/logger}/index.d.ts +0 -0
- /package/{logger → types/logger}/level.d.ts +0 -0
- /package/{logger → types/logger}/noop/index.d.ts +0 -0
- /package/{logger → types/logger}/noop/logger.d.ts +0 -0
- /package/{mail → types/mail}/clients/index.d.ts +0 -0
- /package/{mail → types/mail}/drizzle.config.d.ts +0 -0
- /package/{mail → types/mail}/index.d.ts +0 -0
- /package/{mail → types/mail}/models/index.d.ts +0 -0
- /package/{mail → types/mail}/models/mail-address.model.d.ts +0 -0
- /package/{mail → types/mail}/models/mail-content.model.d.ts +0 -0
- /package/{mail → types/mail}/models/mail-send-result.model.d.ts +0 -0
- /package/{memory → types/memory}/finalization.d.ts +0 -0
- /package/{memory → types/memory}/index.d.ts +0 -0
- /package/{memory → types/memory}/observable-finalization-registry.d.ts +0 -0
- /package/{message-bus → types/message-bus}/broadcast-channel/index.d.ts +0 -0
- /package/{message-bus → types/message-bus}/broadcast-channel/module.d.ts +0 -0
- /package/{message-bus → types/message-bus}/index.d.ts +0 -0
- /package/{message-bus → types/message-bus}/local/index.d.ts +0 -0
- /package/{message-bus → types/message-bus}/local/module.d.ts +0 -0
- /package/{message-bus → types/message-bus}/local/types.d.ts +0 -0
- /package/{message-bus → types/message-bus}/message-bus-provider.d.ts +0 -0
- /package/{migration → types/migration}/index.d.ts +0 -0
- /package/{migration → types/migration}/migrator.d.ts +0 -0
- /package/{migration → types/migration}/mongo/index.d.ts +0 -0
- /package/{module → types/module}/index.d.ts +0 -0
- /package/{module → types/module}/modules/index.d.ts +0 -0
- /package/{object-storage → types/object-storage}/index.d.ts +0 -0
- /package/{object-storage → types/object-storage}/object-storage-provider.d.ts +0 -0
- /package/{object-storage → types/object-storage}/s3/index.d.ts +0 -0
- /package/{openid-connect → types/openid-connect}/index.d.ts +0 -0
- /package/{openid-connect → types/openid-connect}/oidc.service-model.d.ts +0 -0
- /package/{orm → types/orm}/schemas/index.d.ts +0 -0
- /package/{orm → types/orm}/server/drizzle/index.d.ts +0 -0
- /package/{password → types/password}/have-i-been-pwned.d.ts +0 -0
- /package/{password → types/password}/index.d.ts +0 -0
- /package/{password → types/password}/password-check.d.ts +0 -0
- /package/{pdf → types/pdf}/index.d.ts +0 -0
- /package/{polyfills.d.ts → types/polyfills.d.ts} +0 -0
- /package/{pool → types/pool}/index.d.ts +0 -0
- /package/{process → types/process}/index.d.ts +0 -0
- /package/{promise → types/promise}/custom-promise.d.ts +0 -0
- /package/{promise → types/promise}/deferred-promise.d.ts +0 -0
- /package/{promise → types/promise}/index.d.ts +0 -0
- /package/{promise → types/promise}/lazy-promise.d.ts +0 -0
- /package/{promise → types/promise}/types.d.ts +0 -0
- /package/{queue → types/queue}/enqueue-batch.d.ts +0 -0
- /package/{queue → types/queue}/index.d.ts +0 -0
- /package/{queue → types/queue}/mongo/index.d.ts +0 -0
- /package/{queue → types/queue}/postgres/drizzle.config.d.ts +0 -0
- /package/{queue → types/queue}/postgres/index.d.ts +0 -0
- /package/{random → types/random}/index.d.ts +0 -0
- /package/{random → types/random}/number-generator/index.d.ts +0 -0
- /package/{random → types/random}/number-generator/mulberry32.d.ts +0 -0
- /package/{random → types/random}/number-generator/random-number-generator-function.d.ts +0 -0
- /package/{random → types/random}/number-generator/random-number-generator.d.ts +0 -0
- /package/{random → types/random}/number-generator/seeded-random-number-generator.d.ts +0 -0
- /package/{random → types/random}/number-generator/sfc32.d.ts +0 -0
- /package/{random → types/random}/number-generator/utils.d.ts +0 -0
- /package/{random → types/random}/series.d.ts +0 -0
- /package/{reflection → types/reflection}/decorator-data.d.ts +0 -0
- /package/{reflection → types/reflection}/index.d.ts +0 -0
- /package/{require.d.ts → types/require.d.ts} +0 -0
- /package/{rpc → types/rpc}/adapters/index.d.ts +0 -0
- /package/{rpc → types/rpc}/adapters/readable-stream.adapter.d.ts +0 -0
- /package/{rpc → types/rpc}/endpoints/index.d.ts +0 -0
- /package/{rpc → types/rpc}/endpoints/message-port.rpc-endpoint.d.ts +0 -0
- /package/{rpc → types/rpc}/index.d.ts +0 -0
- /package/{rpc → types/rpc}/rpc.endpoint.d.ts +0 -0
- /package/{rxjs-utils → types/rxjs-utils}/cast.d.ts +0 -0
- /package/{rxjs-utils → types/rxjs-utils}/index.d.ts +0 -0
- /package/{rxjs-utils → types/rxjs-utils}/noop.d.ts +0 -0
- /package/{rxjs-utils → types/rxjs-utils}/reject-error.d.ts +0 -0
- /package/{rxjs-utils → types/rxjs-utils}/slow-array.d.ts +0 -0
- /package/{rxjs-utils → types/rxjs-utils}/start-with-provider.d.ts +0 -0
- /package/{rxjs-utils → types/rxjs-utils}/teardown.d.ts +0 -0
- /package/{rxjs-utils → types/rxjs-utils}/timing.d.ts +0 -0
- /package/{rxjs-utils → types/rxjs-utils}/untrack.d.ts +0 -0
- /package/{schema → types/schema}/converters/index.d.ts +0 -0
- /package/{schema → types/schema}/decorators/index.d.ts +0 -0
- /package/{schema → types/schema}/index.d.ts +0 -0
- /package/{schema → types/schema}/schemas/any.d.ts +0 -0
- /package/{schema → types/schema}/schemas/bigint.d.ts +0 -0
- /package/{schema → types/schema}/schemas/boolean.d.ts +0 -0
- /package/{schema → types/schema}/schemas/date.d.ts +0 -0
- /package/{schema → types/schema}/schemas/index.d.ts +0 -0
- /package/{schema → types/schema}/schemas/readable-stream.d.ts +0 -0
- /package/{schema → types/schema}/schemas/regexp.d.ts +0 -0
- /package/{schema → types/schema}/schemas/string.d.ts +0 -0
- /package/{schema → types/schema}/schemas/symbol.d.ts +0 -0
- /package/{schema → types/schema}/schemas/uint8-array.d.ts +0 -0
- /package/{schema → types/schema}/schemas/unknown.d.ts +0 -0
- /package/{schema → types/schema}/testable.d.ts +0 -0
- /package/{schema → types/schema}/types.d.ts +0 -0
- /package/{search-index → types/search-index}/elastic/index.d.ts +0 -0
- /package/{search-index → types/search-index}/elastic/keyword-rewriter.d.ts +0 -0
- /package/{search-index → types/search-index}/elastic/model/elastic-query.d.ts +0 -0
- /package/{search-index → types/search-index}/elastic/model/index.d.ts +0 -0
- /package/{search-index → types/search-index}/elastic/query-builder/boolean-query-builder.d.ts +0 -0
- /package/{search-index → types/search-index}/elastic/query-builder/index.d.ts +0 -0
- /package/{search-index → types/search-index}/elastic/types.d.ts +0 -0
- /package/{search-index → types/search-index}/index.d.ts +0 -0
- /package/{search-index → types/search-index}/memory/index.d.ts +0 -0
- /package/{serializer → types/serializer}/handlers/date.d.ts +0 -0
- /package/{serializer → types/serializer}/handlers/error.d.ts +0 -0
- /package/{serializer → types/serializer}/handlers/index.d.ts +0 -0
- /package/{serializer → types/serializer}/handlers/map.d.ts +0 -0
- /package/{serializer → types/serializer}/handlers/regex.d.ts +0 -0
- /package/{serializer → types/serializer}/handlers/register.d.ts +0 -0
- /package/{serializer → types/serializer}/handlers/set.d.ts +0 -0
- /package/{serializer → types/serializer}/index.d.ts +0 -0
- /package/{signals → types/signals}/api.d.ts +0 -0
- /package/{signals → types/signals}/computed-with-dependencies.d.ts +0 -0
- /package/{signals → types/signals}/effect-with-dependencies.d.ts +0 -0
- /package/{signals → types/signals}/implementation/api.d.ts +0 -0
- /package/{signals → types/signals}/implementation/asserts.d.ts +0 -0
- /package/{signals → types/signals}/implementation/computed.d.ts +0 -0
- /package/{signals → types/signals}/implementation/configure.d.ts +0 -0
- /package/{signals → types/signals}/implementation/effect.d.ts +0 -0
- /package/{signals → types/signals}/implementation/equality.d.ts +0 -0
- /package/{signals → types/signals}/implementation/errors.d.ts +0 -0
- /package/{signals → types/signals}/implementation/graph.d.ts +0 -0
- /package/{signals → types/signals}/implementation/index.d.ts +0 -0
- /package/{signals → types/signals}/implementation/signal.d.ts +0 -0
- /package/{signals → types/signals}/implementation/to-observable.d.ts +0 -0
- /package/{signals → types/signals}/implementation/to-signal.d.ts +0 -0
- /package/{signals → types/signals}/implementation/untracked.d.ts +0 -0
- /package/{signals → types/signals}/implementation/watch.d.ts +0 -0
- /package/{signals → types/signals}/implementation/writable-signal.d.ts +0 -0
- /package/{signals → types/signals}/index.d.ts +0 -0
- /package/{signals → types/signals}/notifier.d.ts +0 -0
- /package/{signals → types/signals}/operators/combine.d.ts +0 -0
- /package/{signals → types/signals}/operators/defer.d.ts +0 -0
- /package/{signals → types/signals}/operators/derive-async.d.ts +0 -0
- /package/{signals → types/signals}/operators/index.d.ts +0 -0
- /package/{signals → types/signals}/operators/map.d.ts +0 -0
- /package/{signals → types/signals}/operators/switchAll.d.ts +0 -0
- /package/{signals → types/signals}/pipe.d.ts +0 -0
- /package/{signals → types/signals}/symbol.d.ts +0 -0
- /package/{signals → types/signals}/to-lazy-signal.d.ts +0 -0
- /package/{signals → types/signals}/types.d.ts +0 -0
- /package/{signals → types/signals}/untracked-operator.d.ts +0 -0
- /package/{sse → types/sse}/index.d.ts +0 -0
- /package/{sse → types/sse}/model.d.ts +0 -0
- /package/{sse → types/sse}/server-sent-events.d.ts +0 -0
- /package/{supports.d.ts → types/supports.d.ts} +0 -0
- /package/{templates → types/templates}/index.d.ts +0 -0
- /package/{templates → types/templates}/providers/index.d.ts +0 -0
- /package/{templates → types/templates}/providers/memory.template-provider.d.ts +0 -0
- /package/{templates → types/templates}/renderers/index.d.ts +0 -0
- /package/{templates → types/templates}/resolvers/index.d.ts +0 -0
- /package/{templates → types/templates}/template-renderer.provider.d.ts +0 -0
- /package/{templates → types/templates}/template-resolver.provider.d.ts +0 -0
- /package/{templates → types/templates}/template.provider.d.ts +0 -0
- /package/{templates → types/templates}/template.resolver.d.ts +0 -0
- /package/{templates → types/templates}/types/index.d.ts +0 -0
- /package/{templates → types/templates}/types/jsx.intrinsic-elements.d.ts +0 -0
- /package/{text → types/text}/common-localization.d.ts +0 -0
- /package/{text → types/text}/index.d.ts +0 -0
- /package/{text → types/text}/localizable-text.model.d.ts +0 -0
- /package/{theme → types/theme}/adapters/css-adapter.d.ts +0 -0
- /package/{theme → types/theme}/adapters/index.d.ts +0 -0
- /package/{theme → types/theme}/index.d.ts +0 -0
- /package/{threading → types/threading}/index.d.ts +0 -0
- /package/{threading → types/threading}/thread-worker.d.ts +0 -0
- /package/{tokens.d.ts → types/tokens.d.ts} +0 -0
- /package/{utils → types/utils}/alphabet.d.ts +0 -0
- /package/{utils → types/utils}/any-iterable-iterator.d.ts +0 -0
- /package/{utils → types/utils}/array/array-backtracker.d.ts +0 -0
- /package/{utils → types/utils}/array/array.d.ts +0 -0
- /package/{utils → types/utils}/array/index.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/all.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/any.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/assert.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/batch.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/buffer.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/concat.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/default-if-empty.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/deferred.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/difference.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/distinct.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/drain.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/filter.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/first-or-default.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/first.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/for-each.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/group-single.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/group-to-map.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/group-to-single-map.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/group.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/includes.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/index.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/interrupt.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/is-async-iterable.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/last-or-default.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/last.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/map-many.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/map.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/materialize.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/metadata.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/multiplex.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/observable-iterable.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/pairwise.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/parallel/feed.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/parallel/filter.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/parallel/for-each.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/parallel/group.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/parallel/index.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/parallel/map.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/parallel/tap.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/parallel/types.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/reduce.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/retry.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/single-or-default.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/single.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/skip.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/sort.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/take-while.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/take.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/tap.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/throttle.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/to-array.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/to-async-iterable-iterator.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/to-async-iterator.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/to-set.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/to-sync-iterable.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/types.d.ts +0 -0
- /package/{utils → types/utils}/async-iterable-helpers/while.d.ts +0 -0
- /package/{utils → types/utils}/async-iterator-iterable-iterator.d.ts +0 -0
- /package/{utils → types/utils}/base64.d.ts +0 -0
- /package/{utils → types/utils}/benchmark.d.ts +0 -0
- /package/{utils → types/utils}/binary-search.d.ts +0 -0
- /package/{utils → types/utils}/clone.d.ts +0 -0
- /package/{utils → types/utils}/comparison.d.ts +0 -0
- /package/{utils → types/utils}/compression.d.ts +0 -0
- /package/{utils → types/utils}/config-parser.d.ts +0 -0
- /package/{utils → types/utils}/crc32.d.ts +0 -0
- /package/{utils → types/utils}/date-time.d.ts +0 -0
- /package/{utils → types/utils}/factory-map.d.ts +0 -0
- /package/{utils → types/utils}/feedable-async-iterable.d.ts +0 -0
- /package/{utils → types/utils}/file-reader.d.ts +0 -0
- /package/{utils → types/utils}/format.d.ts +0 -0
- /package/{utils → types/utils}/function/throttle.d.ts +0 -0
- /package/{utils → types/utils}/helpers.d.ts +0 -0
- /package/{utils → types/utils}/html-link-utils.d.ts +0 -0
- /package/{utils → types/utils}/image.d.ts +0 -0
- /package/{utils → types/utils}/index.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/all.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/any.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/assert.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/batch.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/concat.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/default-if-empty.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/deferred.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/difference.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/distinct.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/drain.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/filter.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/first-or-default.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/first.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/for-each.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/group-single.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/group-to-map.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/group-to-single-map.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/group.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/includes.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/index.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/is-iterable.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/last-or-default.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/last.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/map-many.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/map.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/materialize.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/metadata.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/pairwise.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/range.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/reduce.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/single-or-default.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/single.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/skip.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/sort.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/take-while.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/take.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/tap.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/types.d.ts +0 -0
- /package/{utils → types/utils}/iterable-helpers/while.d.ts +0 -0
- /package/{utils → types/utils}/map.d.ts +0 -0
- /package/{utils → types/utils}/middleware.d.ts +0 -0
- /package/{utils → types/utils}/moving-metric.d.ts +0 -0
- /package/{utils → types/utils}/noop.d.ts +0 -0
- /package/{utils → types/utils}/object/index.d.ts +0 -0
- /package/{utils → types/utils}/object/merge.d.ts +0 -0
- /package/{utils → types/utils}/ordered-feedable-async-iterable.d.ts +0 -0
- /package/{utils → types/utils}/patterns.d.ts +0 -0
- /package/{utils → types/utils}/periodic-reporter.d.ts +0 -0
- /package/{utils → types/utils}/periodic-sampler.d.ts +0 -0
- /package/{utils → types/utils}/provider-function-iterable.d.ts +0 -0
- /package/{utils → types/utils}/proxy.d.ts +0 -0
- /package/{utils → types/utils}/random.d.ts +0 -0
- /package/{utils → types/utils}/set.d.ts +0 -0
- /package/{utils → types/utils}/sort.d.ts +0 -0
- /package/{utils → types/utils}/stream/finalize-stream.d.ts +0 -0
- /package/{utils → types/utils}/stream/readable-stream-adapter.d.ts +0 -0
- /package/{utils → types/utils}/stream/slice.d.ts +0 -0
- /package/{utils → types/utils}/stream/stream-helper-types.d.ts +0 -0
- /package/{utils → types/utils}/stream/stream-reader.d.ts +0 -0
- /package/{utils → types/utils}/stream/to-bytes-stream.d.ts +0 -0
- /package/{utils → types/utils}/stream/to-readable-stream.d.ts +0 -0
- /package/{utils → types/utils}/string/hypenate.d.ts +0 -0
- /package/{utils → types/utils}/string/index.d.ts +0 -0
- /package/{utils → types/utils}/string/normalize.d.ts +0 -0
- /package/{utils → types/utils}/string/snake-case.d.ts +0 -0
- /package/{utils → types/utils}/string/title-case.d.ts +0 -0
- /package/{utils → types/utils}/string/trim.d.ts +0 -0
- /package/{utils → types/utils}/throw.d.ts +0 -0
- /package/{utils → types/utils}/timer.d.ts +0 -0
- /package/{utils → types/utils}/type/index.d.ts +0 -0
- /package/{utils → types/utils}/type-of.d.ts +0 -0
- /package/{utils → types/utils}/units.d.ts +0 -0
- /package/{utils → types/utils}/url-builder.d.ts +0 -0
- /package/{utils → types/utils}/value-or-provider.d.ts +0 -0
- /package/{web-types.d.ts → types/web-types.d.ts} +0 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { and, isNotNull as drizzleIsNotNull, eq, inArray } from 'drizzle-orm';
|
|
2
|
+
import { DocumentPropertyDataType, DocumentPropertyValue, DocumentTypeProperty } from '../../../document-management/models/index.js';
|
|
3
|
+
import { BadRequestError } from '../../../errors/bad-request.error.js';
|
|
4
|
+
import { coalesce, getEntityMap, toJsonb } from '../../../orm/index.js';
|
|
5
|
+
import { Transactional } from '../../../orm/server/index.js';
|
|
6
|
+
import { injectRepository } from '../../../orm/server/repository.js';
|
|
7
|
+
import { toArray } from '../../../utils/array/index.js';
|
|
8
|
+
import { assertBooleanPass, assertDefinedPass, assertNumberPass, assertStringPass, isBoolean, isNotNull, isNull, isNumber, isString } from '../../../utils/type-guards.js';
|
|
9
|
+
import { Document, DocumentProperty } from '../../models/index.js';
|
|
10
|
+
import { document, documentProperty, documentPropertyValue, documentType, documentTypeProperty } from '../schemas.js';
|
|
11
|
+
const documentPropertyValueValidators = {
|
|
12
|
+
[DocumentPropertyDataType.Text]: (value) => isString(value) || isNull(value),
|
|
13
|
+
[DocumentPropertyDataType.Integer]: (value) => isNumber(value) || isNull(value),
|
|
14
|
+
[DocumentPropertyDataType.Decimal]: (value) => isNumber(value) || isNull(value),
|
|
15
|
+
[DocumentPropertyDataType.Boolean]: (value) => isBoolean(value) || isNull(value),
|
|
16
|
+
[DocumentPropertyDataType.Date]: (value) => isNumber(value) || isNull(value),
|
|
17
|
+
};
|
|
18
|
+
export class DocumentPropertyService extends Transactional {
|
|
19
|
+
#documentPropertyRepository = injectRepository(DocumentProperty);
|
|
20
|
+
#documentPropertyValueRepository = injectRepository(DocumentPropertyValue);
|
|
21
|
+
#documentTypePropertyRepository = injectRepository(DocumentTypeProperty);
|
|
22
|
+
repository = injectRepository(Document).withSession(this.session);
|
|
23
|
+
documentProperties = this.session.$with('documentProperties').as(this.session
|
|
24
|
+
.select({
|
|
25
|
+
documentId: document.id,
|
|
26
|
+
propertyId: documentProperty.id,
|
|
27
|
+
label: documentProperty.label,
|
|
28
|
+
dataType: documentProperty.dataType,
|
|
29
|
+
value: coalesce(toJsonb(documentPropertyValue.text), toJsonb(documentPropertyValue.integer), toJsonb(documentPropertyValue.decimal), toJsonb(documentPropertyValue.boolean), toJsonb(documentPropertyValue.date)).as('value'),
|
|
30
|
+
})
|
|
31
|
+
.from(document)
|
|
32
|
+
.innerJoin(documentType, eq(documentType.id, document.typeId))
|
|
33
|
+
.innerJoin(documentTypeProperty, eq(documentTypeProperty.typeId, documentType.id))
|
|
34
|
+
.innerJoin(documentProperty, eq(documentProperty.id, documentTypeProperty.propertyId))
|
|
35
|
+
.leftJoin(documentPropertyValue, and(eq(documentPropertyValue.documentId, document.id), eq(documentPropertyValue.propertyId, documentProperty.id))));
|
|
36
|
+
async createProperty(label, dataType) {
|
|
37
|
+
return this.#documentPropertyRepository.insert({ label, dataType });
|
|
38
|
+
}
|
|
39
|
+
async assignPropertyToType(typeId, propertyId) {
|
|
40
|
+
await this.#documentTypePropertyRepository.insert({ typeId, propertyId });
|
|
41
|
+
}
|
|
42
|
+
async loadDocumentProperties(documentId, includeNulls = false) {
|
|
43
|
+
return this.session
|
|
44
|
+
.select({
|
|
45
|
+
documentId: this.documentProperties.documentId,
|
|
46
|
+
propertyId: this.documentProperties.propertyId,
|
|
47
|
+
label: this.documentProperties.label,
|
|
48
|
+
dataType: this.documentProperties.dataType,
|
|
49
|
+
value: this.documentProperties.value,
|
|
50
|
+
})
|
|
51
|
+
.from(this.documentProperties)
|
|
52
|
+
.where(and(inArray(this.documentProperties.documentId, toArray(documentId)), includeNulls ? undefined : drizzleIsNotNull(this.documentProperties.value)));
|
|
53
|
+
}
|
|
54
|
+
async setPropertyValues(documentId, propertyValues) {
|
|
55
|
+
if ((propertyValues.length == 0)) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
await this.transaction(async (tx) => {
|
|
59
|
+
const propertyIds = propertyValues.map((property) => property.propertyId);
|
|
60
|
+
const properties = await this.#documentPropertyRepository.withTransaction(tx).loadManyByQuery({ id: { $in: propertyIds } });
|
|
61
|
+
const propertiesMap = getEntityMap(properties);
|
|
62
|
+
const upserts = propertyValues.filter((value) => isNotNull(value.value)).map(({ propertyId, value, metadata }) => {
|
|
63
|
+
const property = assertDefinedPass(propertiesMap.get(propertyId));
|
|
64
|
+
validatePropertyValue(propertyId, property.dataType, value);
|
|
65
|
+
return {
|
|
66
|
+
documentId,
|
|
67
|
+
propertyId,
|
|
68
|
+
text: (property.dataType == 'text') ? assertStringPass(value) : null,
|
|
69
|
+
integer: (property.dataType == 'integer') ? assertNumberPass(value) : null,
|
|
70
|
+
decimal: (property.dataType == 'decimal') ? assertNumberPass(value) : null,
|
|
71
|
+
boolean: (property.dataType == 'boolean') ? assertBooleanPass(value) : null,
|
|
72
|
+
date: (property.dataType == 'date') ? assertNumberPass(value) : null,
|
|
73
|
+
metadata,
|
|
74
|
+
};
|
|
75
|
+
});
|
|
76
|
+
const deletePropertyIds = propertyValues.filter((value) => isNull(value.value)).map(({ propertyId }) => propertyId);
|
|
77
|
+
await this.#documentPropertyValueRepository.withTransaction(tx).hardDeleteManyByQuery({ documentId, propertyId: { $in: deletePropertyIds } });
|
|
78
|
+
await this.#documentPropertyValueRepository.withTransaction(tx).upsertMany(['documentId', 'propertyId'], upserts);
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
function validatePropertyValue(propertyId, dataType, value) {
|
|
83
|
+
const valid = documentPropertyValueValidators[dataType](value);
|
|
84
|
+
if (!valid) {
|
|
85
|
+
throw new BadRequestError(`Invalid value for data type ${dataType} for property ${propertyId}.`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,138 @@
|
|
|
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
|
+
import { count, isNotNull as dbIsNotNull, isNull as dbIsNull, eq, inArray, sql } from 'drizzle-orm';
|
|
8
|
+
import { BadRequestError } from '../../../errors/index.js';
|
|
9
|
+
import { Injectable } from '../../../injector/index.js';
|
|
10
|
+
import { Transactional, injectRepository } from '../../../orm/server/index.js';
|
|
11
|
+
import { toArray } from '../../../utils/array/index.js';
|
|
12
|
+
import { assertDefinedPass, isNotNull } from '../../../utils/type-guards.js';
|
|
13
|
+
import { DocumentApproval, DocumentCollectionAssignment, DocumentRequest, DocumentRequestCollection, DocumentRequestState, DocumentRequestTemplate, DocumentRequestsTemplate } from '../../models/index.js';
|
|
14
|
+
import { document, documentRequest, documentRequestCollection } from '../schemas.js';
|
|
15
|
+
let DocumentRequestService = class DocumentRequestService extends Transactional {
|
|
16
|
+
#documentRequestCollectionRepository = injectRepository(DocumentRequestCollection);
|
|
17
|
+
#documentRequestRepository = injectRepository(DocumentRequest);
|
|
18
|
+
#documentRequestTemplateRepository = injectRepository(DocumentRequestTemplate);
|
|
19
|
+
#documentRequestsTemplateRepository = injectRepository(DocumentRequestsTemplate);
|
|
20
|
+
#documentCollectionAssignmentRepository = injectRepository(DocumentCollectionAssignment);
|
|
21
|
+
async getRequestStats(collectionIds) {
|
|
22
|
+
const relevantRequests = this.session.$with('relevant_requests').as(this.session.selectDistinct({ id: documentRequest.id })
|
|
23
|
+
.from(documentRequest)
|
|
24
|
+
.innerJoin(documentRequestCollection, eq(documentRequestCollection.requestId, documentRequest.id))
|
|
25
|
+
.where(inArray(documentRequestCollection.collectionId, toArray(collectionIds))));
|
|
26
|
+
const [result] = await this.session.with(relevantRequests)
|
|
27
|
+
.select({
|
|
28
|
+
total: count(sql `${documentRequest.id})`),
|
|
29
|
+
documentPending: count(sql `CASE WHEN ${eq(documentRequest.state, DocumentRequestState.Open)} AND ${dbIsNull(documentRequest.documentId)} THEN 1 END`),
|
|
30
|
+
approvalPending: count(sql `CASE WHEN ${eq(documentRequest.state, DocumentRequestState.Open)} AND ${dbIsNotNull(documentRequest.documentId)} AND ${eq(document.approval, DocumentApproval.Pending)} THEN 1 END`),
|
|
31
|
+
approvals: count(sql `CASE WHEN ${eq(documentRequest.state, DocumentRequestState.Closed)} AND ${dbIsNotNull(documentRequest.documentId)} AND ${eq(document.approval, DocumentApproval.Approved)} THEN 1 END`),
|
|
32
|
+
rejections: count(sql `CASE WHEN ${eq(documentRequest.state, DocumentRequestState.Closed)} AND ${dbIsNotNull(documentRequest.documentId)} AND ${eq(document.approval, DocumentApproval.Rejected)} THEN 1 END`),
|
|
33
|
+
closedWithoutDocument: count(sql `CASE WHEN ${eq(documentRequest.state, DocumentRequestState.Closed)} AND ${dbIsNull(documentRequest.documentId)} THEN 1 END`),
|
|
34
|
+
})
|
|
35
|
+
.from(documentRequest)
|
|
36
|
+
.leftJoin(document, eq(document.id, documentRequest.documentId))
|
|
37
|
+
.where(inArray(documentRequest.id, this.session.select({ id: relevantRequests.id }).from(relevantRequests)));
|
|
38
|
+
return assertDefinedPass(result);
|
|
39
|
+
}
|
|
40
|
+
async createRequestsTemplate(parameters) {
|
|
41
|
+
return this.#documentRequestsTemplateRepository.insert(parameters);
|
|
42
|
+
}
|
|
43
|
+
async updateRequestsTemplate(id, parameters) {
|
|
44
|
+
return this.#documentRequestsTemplateRepository.update(id, parameters);
|
|
45
|
+
}
|
|
46
|
+
async applyRequestsTemplate(id, collectionIds) {
|
|
47
|
+
const requestTemplates = await this.#documentRequestTemplateRepository.loadManyByQuery({ requestsTemplateId: id });
|
|
48
|
+
await this.transaction(async (tx) => {
|
|
49
|
+
for (const { typeId, comment } of requestTemplates) {
|
|
50
|
+
await this.withTransaction(tx).createRequest(typeId, collectionIds, comment);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
async deleteRequestsTemplate(id) {
|
|
55
|
+
return this.#documentRequestsTemplateRepository.delete(id);
|
|
56
|
+
}
|
|
57
|
+
async createRequestTemplate(requestsTemplateId, typeId, comment) {
|
|
58
|
+
return this.#documentRequestTemplateRepository.insert({ requestsTemplateId, typeId, comment });
|
|
59
|
+
}
|
|
60
|
+
async updateRequestTemplate(id, parameters) {
|
|
61
|
+
return this.#documentRequestTemplateRepository.update(id, parameters);
|
|
62
|
+
}
|
|
63
|
+
async deleteRequestTemplate(id) {
|
|
64
|
+
return this.#documentRequestTemplateRepository.delete(id);
|
|
65
|
+
}
|
|
66
|
+
async createRequest(typeId, collectionIds, comment) {
|
|
67
|
+
if (collectionIds.length == 0) {
|
|
68
|
+
throw new BadRequestError('No target collectionId specified.');
|
|
69
|
+
}
|
|
70
|
+
return this.transaction(async (tx) => {
|
|
71
|
+
const request = await this.#documentRequestRepository.withTransaction(tx).insert({ typeId, documentId: null, comment, state: DocumentRequestState.Open });
|
|
72
|
+
const newDocumentRequestCollections = collectionIds.map((collectionId) => ({ requestId: request.id, collectionId }));
|
|
73
|
+
await this.#documentRequestCollectionRepository.withTransaction(tx).insertMany(newDocumentRequestCollections);
|
|
74
|
+
return request;
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
async updateRequest(id, update) {
|
|
78
|
+
await this.transaction(async (tx) => {
|
|
79
|
+
const request = await this.#documentRequestRepository.withTransaction(tx).load(id);
|
|
80
|
+
if (isNotNull(request.documentId)) {
|
|
81
|
+
throw new BadRequestError('Cannot update document requests which have an assigned document.');
|
|
82
|
+
}
|
|
83
|
+
await this.#documentRequestRepository.withTransaction(tx).update(id, update);
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
async deleteRequest(id) {
|
|
87
|
+
await this.transaction(async (tx) => {
|
|
88
|
+
const request = await this.#documentRequestRepository.withTransaction(tx).load(id);
|
|
89
|
+
if (isNotNull(request.documentId)) {
|
|
90
|
+
throw new BadRequestError('Cannot delete requests which have an assigned document.');
|
|
91
|
+
}
|
|
92
|
+
await this.#documentRequestCollectionRepository.withTransaction(tx).deleteManyByQuery({ requestId: id });
|
|
93
|
+
await this.#documentRequestRepository.withTransaction(tx).delete(id);
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
async assignDocument(requestId, documentId) {
|
|
97
|
+
await this.transaction(async (tx) => {
|
|
98
|
+
const request = await this.#documentRequestRepository.withTransaction(tx).load(requestId);
|
|
99
|
+
if (isNotNull(request.documentId)) {
|
|
100
|
+
throw new BadRequestError('Document request already has a document assigned.');
|
|
101
|
+
}
|
|
102
|
+
await this.#documentRequestRepository.withTransaction(tx).update(requestId, { documentId });
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Fulfills a document request.
|
|
107
|
+
* Marks the request as fulfilled and creates associations between the document
|
|
108
|
+
* and the target collections defined in the request.
|
|
109
|
+
*
|
|
110
|
+
* @param requestId The ID of the DocumentRequest to fulfill.
|
|
111
|
+
* @param documentId The ID of the Document fulfilling the request.
|
|
112
|
+
* @param userId The ID of the user performing the action (for audit purposes).
|
|
113
|
+
* @throws NotFoundError if the DocumentRequest with the given ID does not exist.
|
|
114
|
+
*/
|
|
115
|
+
async fulfillRequest(requestId, documentId) {
|
|
116
|
+
await this.transaction(async (tx) => {
|
|
117
|
+
const request = await this.#documentRequestRepository.withTransaction(tx).load(requestId);
|
|
118
|
+
if (request.state == DocumentRequestState.Fulfilled) {
|
|
119
|
+
throw new BadRequestError('Document request is already fulfilled.');
|
|
120
|
+
}
|
|
121
|
+
const targetCollectionIds = await this.#documentRequestCollectionRepository.withTransaction(tx).loadManyByQuery({ requestId });
|
|
122
|
+
if (targetCollectionIds.length == 0) {
|
|
123
|
+
throw new Error('No document request collection for document request found.');
|
|
124
|
+
}
|
|
125
|
+
const links = targetCollectionIds.map((target) => ({
|
|
126
|
+
collectionId: target.collectionId,
|
|
127
|
+
documentId,
|
|
128
|
+
archiveTimestamp: null,
|
|
129
|
+
}));
|
|
130
|
+
await this.#documentCollectionAssignmentRepository.withTransaction(tx).insertMany(links);
|
|
131
|
+
await this.#documentRequestRepository.withTransaction(tx).update(requestId, { state: DocumentRequestState.Fulfilled });
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
DocumentRequestService = __decorate([
|
|
136
|
+
Injectable()
|
|
137
|
+
], DocumentRequestService);
|
|
138
|
+
export { DocumentRequestService };
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
var _a;
|
|
2
|
+
import { DocumentWorkflowStep } from '../../../document-management/models/document-workflow.model.js';
|
|
3
|
+
import { Document, DocumentCategory, DocumentCollection, DocumentCollectionAssignment, DocumentProperty, DocumentPropertyValue, DocumentType, DocumentTypeProperty, DocumentTypeValidation, DocumentValidationDefinition, DocumentValidationExecution, DocumentValidationExecutionRelatedDocument, DocumentValidationExecutionState, DocumentValidationResultStatus } from '../../../document-management/models/index.js';
|
|
4
|
+
import { BadRequestError } from '../../../errors/bad-request.error.js';
|
|
5
|
+
import { inject, injectAll } from '../../../injector/inject.js';
|
|
6
|
+
import { Injector } from '../../../injector/injector.js';
|
|
7
|
+
import { afterResolve } from '../../../injector/interfaces.js';
|
|
8
|
+
import { injectionToken } from '../../../injector/token.js';
|
|
9
|
+
import { Logger } from '../../../logger/logger.js';
|
|
10
|
+
import { injectRepository } from '../../../orm/server/repository.js';
|
|
11
|
+
import { getEntityIds } from '../../../orm/utils.js';
|
|
12
|
+
import { Queue } from '../../../queue/queue.js';
|
|
13
|
+
import { currentTimestamp } from '../../../utils/date-time.js';
|
|
14
|
+
import { isNull, isUndefined } from '../../../utils/type-guards.js';
|
|
15
|
+
import { millisecondsPerMinute } from '../../../utils/units.js';
|
|
16
|
+
import { DocumentWorkflowService } from './document-workflow.service.js';
|
|
17
|
+
const DOCUMENT_VALIDATION_EXECUTORS = injectionToken('DocumentValidationExecutors');
|
|
18
|
+
export class DocumentValidationService {
|
|
19
|
+
#documentManagementService = injectRepository(DocumentCollection);
|
|
20
|
+
#documentCollectionAssignmentRepository = injectRepository(DocumentCollectionAssignment);
|
|
21
|
+
#documentService = injectRepository(Document);
|
|
22
|
+
#documentCategoryService = injectRepository(DocumentCategory);
|
|
23
|
+
#documentTypeService = injectRepository(DocumentType);
|
|
24
|
+
#documentTypePropertyService = injectRepository(DocumentTypeProperty);
|
|
25
|
+
#documentPropertyService = injectRepository(DocumentProperty);
|
|
26
|
+
#documentPropertyValueService = injectRepository(DocumentPropertyValue);
|
|
27
|
+
#documentWorkflowService = inject(DocumentWorkflowService);
|
|
28
|
+
#validationDefinitionService = injectRepository(DocumentValidationDefinition);
|
|
29
|
+
#validationExecutionService = injectRepository(DocumentValidationExecution);
|
|
30
|
+
#validationExecutionRelatedDocumentService = injectRepository(DocumentValidationExecutionRelatedDocument);
|
|
31
|
+
#documentTypeValidationService = injectRepository(DocumentTypeValidation);
|
|
32
|
+
#queue = inject((Queue), { name: 'DocumentManagement: validation', processTimeout: 5 * millisecondsPerMinute, maxTries: 3 });
|
|
33
|
+
#executors = injectAll(DOCUMENT_VALIDATION_EXECUTORS);
|
|
34
|
+
#logger = inject(Logger, _a.name);
|
|
35
|
+
#executorMap = new Map(this.#executors.map((executor) => [executor.identifier, executor]));
|
|
36
|
+
[afterResolve](_, { cancellationSignal }) {
|
|
37
|
+
this.processQueue(cancellationSignal);
|
|
38
|
+
}
|
|
39
|
+
processQueue(cancellationSignal) {
|
|
40
|
+
this.#queue.process({ concurrency: 5, cancellationSignal }, async (job) => {
|
|
41
|
+
this.#logger.verbose(`Processing validation execution "${job.data.executionId}"`);
|
|
42
|
+
await this.processValidationExecution(job.data.executionId);
|
|
43
|
+
}, this.#logger);
|
|
44
|
+
}
|
|
45
|
+
async startValidationWorkflow(documentId) {
|
|
46
|
+
const document = await this.#documentService.load(documentId);
|
|
47
|
+
if (isNull(document.typeId)) {
|
|
48
|
+
throw new BadRequestError('Document has no type');
|
|
49
|
+
}
|
|
50
|
+
const workflow = await this.#documentWorkflowService.initiateWorkflow(documentId, DocumentWorkflowStep.Validation);
|
|
51
|
+
const typeValidations = await this.#documentTypeValidationService.loadManyByQuery({ typeId: document.typeId });
|
|
52
|
+
for (const typeValidation of typeValidations) {
|
|
53
|
+
const validationDefinition = await this.#validationDefinitionService.load(typeValidation.validationId);
|
|
54
|
+
const execution = await this.#validationExecutionService.insert({
|
|
55
|
+
definitionId: validationDefinition.id,
|
|
56
|
+
workflowId: workflow.id,
|
|
57
|
+
state: DocumentValidationExecutionState.Pending,
|
|
58
|
+
resultStatus: null,
|
|
59
|
+
resultMessage: null,
|
|
60
|
+
startedAt: null,
|
|
61
|
+
completedAt: null,
|
|
62
|
+
});
|
|
63
|
+
await this.#queue.enqueue({ executionId: execution.id });
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
async setExecutionRunning(executionId) {
|
|
67
|
+
await this.#validationExecutionService.update(executionId, { state: DocumentValidationExecutionState.Running, resultStatus: null, resultMessage: null, startedAt: currentTimestamp(), completedAt: null });
|
|
68
|
+
}
|
|
69
|
+
async setExecutionCompleted(executionId, status, message) {
|
|
70
|
+
await this.#validationExecutionService.update(executionId, { state: DocumentValidationExecutionState.Completed, resultStatus: status, resultMessage: message, completedAt: currentTimestamp() });
|
|
71
|
+
}
|
|
72
|
+
async setExecutionError(executionId, reason) {
|
|
73
|
+
await this.#validationExecutionService.update(executionId, { state: DocumentValidationExecutionState.Error, resultStatus: DocumentValidationResultStatus.Failed, resultMessage: reason, completedAt: currentTimestamp() });
|
|
74
|
+
}
|
|
75
|
+
async loadRelatedDocument(executionId, documentId) {
|
|
76
|
+
const execution = await this.#validationExecutionService.load(executionId);
|
|
77
|
+
const workflow = await this.#documentWorkflowService.repository.load(execution.workflowId);
|
|
78
|
+
const documentData = await this.loadDocumentData(documentId);
|
|
79
|
+
await this.#validationExecutionRelatedDocumentService.upsert(['executionId', 'documentId'], { executionId, documentId: workflow.documentId });
|
|
80
|
+
return documentData;
|
|
81
|
+
}
|
|
82
|
+
async loadDocumentData(documentId) {
|
|
83
|
+
const document = await this.#documentService.load(documentId);
|
|
84
|
+
if (isNull(document.typeId)) {
|
|
85
|
+
throw new Error('Document has no type');
|
|
86
|
+
}
|
|
87
|
+
const [documentCollections, documentTypeProperties] = await Promise.all([
|
|
88
|
+
this.#documentCollectionAssignmentRepository.loadManyByQuery({ documentId: document.id }),
|
|
89
|
+
this.#documentTypePropertyService.loadManyByQuery({ typeId: document.typeId }),
|
|
90
|
+
]);
|
|
91
|
+
const documentCollectionIds = getEntityIds(documentCollections);
|
|
92
|
+
const documentPropertyIds = getEntityIds(documentTypeProperties);
|
|
93
|
+
const [collections, category, type, properties, propertyValues] = await Promise.all([
|
|
94
|
+
this.#documentManagementService.loadManyByQuery({ id: { $in: documentCollectionIds } }),
|
|
95
|
+
this.#documentCategoryService.load(document.typeId),
|
|
96
|
+
this.#documentTypeService.load(document.typeId),
|
|
97
|
+
this.#documentPropertyService.loadManyByQuery({ id: { $in: documentPropertyIds } }),
|
|
98
|
+
this.#documentPropertyValueService.loadManyByQuery({ documentId: document.id }),
|
|
99
|
+
]);
|
|
100
|
+
return {
|
|
101
|
+
document,
|
|
102
|
+
collections,
|
|
103
|
+
category,
|
|
104
|
+
type,
|
|
105
|
+
properties,
|
|
106
|
+
propertyValues,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
async loadDocumentValidationExecutorContext(executionId) {
|
|
110
|
+
const execution = await this.#validationExecutionService.load(executionId);
|
|
111
|
+
const [definition, workflow] = await Promise.all([
|
|
112
|
+
this.#validationDefinitionService.load(execution.definitionId),
|
|
113
|
+
this.#documentWorkflowService.repository.load(execution.workflowId),
|
|
114
|
+
]);
|
|
115
|
+
const documentData = await this.loadDocumentData(workflow.documentId);
|
|
116
|
+
return {
|
|
117
|
+
execution,
|
|
118
|
+
definition,
|
|
119
|
+
...documentData,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
async processValidationExecution(executionId) {
|
|
123
|
+
const context = await this.loadDocumentValidationExecutorContext(executionId);
|
|
124
|
+
const executor = this.#executorMap.get(context.definition.identifier);
|
|
125
|
+
if (isUndefined(executor)) {
|
|
126
|
+
await this.setExecutionError(executionId, `Invalid validation identifier`);
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
try {
|
|
130
|
+
await this.setExecutionRunning(executionId);
|
|
131
|
+
const result = await executor.execute(context);
|
|
132
|
+
await this.setExecutionCompleted(executionId, result.status, result.message ?? null);
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
this.#logger.error(error);
|
|
136
|
+
await this.setExecutionError(executionId, 'Internal error');
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
_a = DocumentValidationService;
|
|
141
|
+
export function registerDocumentValidationExecutor(...executors) {
|
|
142
|
+
for (const executor of executors) {
|
|
143
|
+
Injector.register(DOCUMENT_VALIDATION_EXECUTORS, { useToken: executor }, { multi: true });
|
|
144
|
+
}
|
|
145
|
+
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
var _a;
|
|
2
|
+
import { match } from 'ts-pattern';
|
|
3
|
+
import { DocumentAssignmentScope } from '../../../document-management/models/document-assignment-scope.model.js';
|
|
4
|
+
import { DocumentAssignmentTask } from '../../../document-management/models/document-assignment-task.model.js';
|
|
5
|
+
import { DocumentWorkflow, DocumentWorkflowFailReason, DocumentWorkflowState, DocumentWorkflowStep } from '../../../document-management/models/document-workflow.model.js';
|
|
6
|
+
import { DocumentApproval } from '../../../document-management/models/document.model.js';
|
|
7
|
+
import { BadRequestError } from '../../../errors/bad-request.error.js';
|
|
8
|
+
import { NotImplementedError } from '../../../errors/not-implemented.error.js';
|
|
9
|
+
import { inject } from '../../../injector/inject.js';
|
|
10
|
+
import { afterResolve } from '../../../injector/interfaces.js';
|
|
11
|
+
import { Logger } from '../../../logger/index.js';
|
|
12
|
+
import { injectRepository } from '../../../orm/server/repository.js';
|
|
13
|
+
import { Transactional } from '../../../orm/server/transactional.js';
|
|
14
|
+
import { Queue } from '../../../queue/queue.js';
|
|
15
|
+
import { _throw } from '../../../utils/throw.js';
|
|
16
|
+
import { isNotNull, isNull } from '../../../utils/type-guards.js';
|
|
17
|
+
import { DocumentCollectionService } from './document-collection.service.js';
|
|
18
|
+
import { DocumentManagementAiService } from './document-management-ai.service.js';
|
|
19
|
+
import { DocumentRequestService } from './document-request.service.js';
|
|
20
|
+
import { DocumentService } from './document.service.js';
|
|
21
|
+
export class DocumentWorkflowService extends Transactional {
|
|
22
|
+
#documentManagementAiService = inject(DocumentManagementAiService);
|
|
23
|
+
#documentService = inject(DocumentService);
|
|
24
|
+
#documentCollectionService = inject(DocumentCollectionService);
|
|
25
|
+
#documentRequestService = inject(DocumentRequestService);
|
|
26
|
+
#documentAssignmentTaskRepository = injectRepository(DocumentAssignmentTask);
|
|
27
|
+
#documentAssignmentScopeRepository = injectRepository(DocumentAssignmentScope);
|
|
28
|
+
#queue = inject((Queue), { name: 'DocumentWorkflow', processTimeout: 5 * 60 * 1000, maxTries: 3 });
|
|
29
|
+
#logger = inject(Logger, _a.name);
|
|
30
|
+
repository = injectRepository(DocumentWorkflow).withSession(this.session);
|
|
31
|
+
[afterResolve](_, { cancellationSignal }) {
|
|
32
|
+
if (this.isInTransaction) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
this.#queue.process({ concurrency: 5, cancellationSignal }, async (job) => this.processWorkflowJob(job), this.#logger);
|
|
36
|
+
}
|
|
37
|
+
async loadLatestWorkflow(documentId) {
|
|
38
|
+
return this.repository.loadByQuery({ documentId }, { order: { 'metadata.createTimestamp': 'desc' } });
|
|
39
|
+
}
|
|
40
|
+
async tryLoadLatestWorkflow(documentId) {
|
|
41
|
+
return this.repository.tryLoadByQuery({ documentId }, { order: { 'metadata.createTimestamp': 'desc' } });
|
|
42
|
+
}
|
|
43
|
+
async loadLatestWorkflows(documentIds) {
|
|
44
|
+
return this.repository.loadManyByQuery({ documentId: { $in: documentIds } }, { distinct: ['documentId'], order: { 'metadata.createTimestamp': 'desc' } });
|
|
45
|
+
}
|
|
46
|
+
async proceedWorkflow(documentId, userId) {
|
|
47
|
+
return this.transaction(async (tx) => {
|
|
48
|
+
const workflow = await this.withTransaction(tx).loadLatestWorkflow(documentId);
|
|
49
|
+
if (workflow.state != DocumentWorkflowState.Completed) {
|
|
50
|
+
throw new BadRequestError('Current workflow is not completed');
|
|
51
|
+
}
|
|
52
|
+
if (isNotNull(workflow.completeUserId)) {
|
|
53
|
+
throw new BadRequestError('Latest workflow is already completed');
|
|
54
|
+
}
|
|
55
|
+
await this.repository.withTransaction(tx).update(workflow.id, { completeUserId: userId });
|
|
56
|
+
await match(workflow.step)
|
|
57
|
+
.with(DocumentWorkflowStep.Classification, () => _throw(new BadRequestError('Proceeding from classification occurs automatically.')))
|
|
58
|
+
.with(DocumentWorkflowStep.Extraction, async () => this.withTransaction(tx).initiateWorkflow(documentId, DocumentWorkflowStep.Assignment))
|
|
59
|
+
.with(DocumentWorkflowStep.Assignment, async () => this.withTransaction(tx).initiateWorkflow(documentId, DocumentWorkflowStep.Validation))
|
|
60
|
+
.with(DocumentWorkflowStep.Validation, () => { })
|
|
61
|
+
.exhaustive();
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
async initiateWorkflow(documentId, step) {
|
|
65
|
+
const workflow = await this.repository.insert({ documentId, step, state: 'pending', failReason: null, completeUserId: null });
|
|
66
|
+
await this.#queue.enqueue({ workflowId: workflow.id });
|
|
67
|
+
return workflow;
|
|
68
|
+
}
|
|
69
|
+
async setWorkflowState(id, state, failReason = null) {
|
|
70
|
+
await this.repository.update(id, { state, failReason });
|
|
71
|
+
}
|
|
72
|
+
async processWorkflowJob(job) {
|
|
73
|
+
this.#logger.verbose(`Processing workflow job for workflow "${job.data.workflowId}"`);
|
|
74
|
+
const workflow = await this.repository.load(job.data.workflowId);
|
|
75
|
+
try {
|
|
76
|
+
await this.setWorkflowState(workflow.id, DocumentWorkflowState.Running);
|
|
77
|
+
await match(workflow.step)
|
|
78
|
+
.with(DocumentWorkflowStep.Classification, async () => this.processClassificationWorkflow(workflow))
|
|
79
|
+
.with(DocumentWorkflowStep.Extraction, async () => this.processExtractionWorkflow(workflow))
|
|
80
|
+
.with(DocumentWorkflowStep.Assignment, async () => this.processAssignmentWorkflow(workflow))
|
|
81
|
+
.with(DocumentWorkflowStep.Validation, async () => this.processValidationWorkflow(workflow))
|
|
82
|
+
.exhaustive();
|
|
83
|
+
await this.setWorkflowState(workflow.id, DocumentWorkflowState.Completed);
|
|
84
|
+
if (workflow.step == DocumentWorkflowStep.Classification) {
|
|
85
|
+
// automatically start extraction after classification
|
|
86
|
+
await this.initiateWorkflow(workflow.documentId, DocumentWorkflowStep.Extraction);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
this.#logger.error(error);
|
|
91
|
+
const isLastTry = job.tries == this.#queue.maxTries;
|
|
92
|
+
if (isLastTry) {
|
|
93
|
+
await this.repository.update(workflow.id, { state: DocumentWorkflowState.Error });
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
async processClassificationWorkflow(workflow) {
|
|
98
|
+
const typeId = await this.#documentManagementAiService.classifyDocumentType(workflow.documentId);
|
|
99
|
+
await this.#documentService.repository.update(workflow.documentId, { typeId, approval: DocumentApproval.Pending });
|
|
100
|
+
}
|
|
101
|
+
async processExtractionWorkflow(workflow) {
|
|
102
|
+
const extraction = await this.#documentManagementAiService.extractDocumentInformation(workflow.documentId);
|
|
103
|
+
await this.#documentService.updateDocument(workflow.documentId, extraction);
|
|
104
|
+
}
|
|
105
|
+
async processAssignmentWorkflow(workflow) {
|
|
106
|
+
const assignmentTask = await this.#documentAssignmentTaskRepository.loadByQuery({ documentId: workflow.documentId });
|
|
107
|
+
const assignmentScopes = await this.#documentAssignmentScopeRepository.loadManyByQuery({ taskId: assignmentTask.id });
|
|
108
|
+
const collectionIds = assignmentScopes.map((scope) => scope.collectionId);
|
|
109
|
+
await match(assignmentTask.target)
|
|
110
|
+
.with('collection', async () => {
|
|
111
|
+
const suitableCollectionIds = await this.#documentManagementAiService.findSuitableCollectionsForDocument(workflow.documentId, collectionIds);
|
|
112
|
+
if (suitableCollectionIds.length == 0) {
|
|
113
|
+
await this.setWorkflowState(workflow.id, DocumentWorkflowState.Failed, DocumentWorkflowFailReason.NoSuitableCollection);
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
await this.#documentCollectionService.assignDocument(workflow.documentId, suitableCollectionIds);
|
|
117
|
+
})
|
|
118
|
+
.with('request', async () => {
|
|
119
|
+
const suitableRequestId = await this.#documentManagementAiService.findSuitableRequestForDocument(workflow.documentId, collectionIds);
|
|
120
|
+
if (isNull(suitableRequestId)) {
|
|
121
|
+
await this.setWorkflowState(workflow.id, DocumentWorkflowState.Failed, DocumentWorkflowFailReason.NoSuitableRequest);
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
await this.#documentRequestService.assignDocument(suitableRequestId, workflow.documentId);
|
|
125
|
+
})
|
|
126
|
+
.exhaustive();
|
|
127
|
+
}
|
|
128
|
+
async processValidationWorkflow(_workflow) {
|
|
129
|
+
throw new NotImplementedError();
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
_a = DocumentWorkflowService;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
var _a;
|
|
2
|
+
import { match, P } from 'ts-pattern';
|
|
3
|
+
import { DocumentApproval, DocumentAssignmentScope, DocumentAssignmentTask, DocumentWorkflowStep } from '../../../document-management/models/index.js';
|
|
4
|
+
import { BadRequestError } from '../../../errors/bad-request.error.js';
|
|
5
|
+
import { inject } from '../../../injector/inject.js';
|
|
6
|
+
import { Logger } from '../../../logger/logger.js';
|
|
7
|
+
import { Transactional } from '../../../orm/server/index.js';
|
|
8
|
+
import { injectRepository } from '../../../orm/server/repository.js';
|
|
9
|
+
import { getPdfPageCount } from '../../../pdf/utils.js';
|
|
10
|
+
import { toArray } from '../../../utils/array/index.js';
|
|
11
|
+
import { objectKeys } from '../../../utils/object/object.js';
|
|
12
|
+
import { tryIgnoreLogAsync } from '../../../utils/try-ignore.js';
|
|
13
|
+
import { isDefined, isUndefined } from '../../../utils/type-guards.js';
|
|
14
|
+
import { Document } from '../../models/index.js';
|
|
15
|
+
import { DocumentCollectionService } from './document-collection.service.js';
|
|
16
|
+
import { DocumentFileService } from './document-file.service.js';
|
|
17
|
+
import { DocumentPropertyService } from './document-property.service.js';
|
|
18
|
+
import { DocumentRequestService } from './document-request.service.js';
|
|
19
|
+
import { DocumentWorkflowService } from './document-workflow.service.js';
|
|
20
|
+
export class DocumentService extends Transactional {
|
|
21
|
+
#documentFileService = inject(DocumentFileService);
|
|
22
|
+
#requestService = inject(DocumentRequestService);
|
|
23
|
+
#workflowService = inject(DocumentWorkflowService, undefined, { forwardRef: true });
|
|
24
|
+
#documentPropertyService = inject(DocumentPropertyService);
|
|
25
|
+
#documentCollectionService = inject(DocumentCollectionService);
|
|
26
|
+
#documentAssignmentTaskRepository = injectRepository(DocumentAssignmentTask);
|
|
27
|
+
#documentAssignmentScopeRepository = injectRepository(DocumentAssignmentScope);
|
|
28
|
+
#logger = inject(Logger, _a.name);
|
|
29
|
+
repository = injectRepository(Document).withSession(this.session);
|
|
30
|
+
async createDocument({ typeId, title, subtitle, date, summary, tags, approval, comment, createUserId, originalFileName, assignment, properties, metadata }, content) {
|
|
31
|
+
const document = await this.transaction(async (tx) => {
|
|
32
|
+
const documentFile = await this.#documentFileService.withTransaction(tx).create(content, originalFileName);
|
|
33
|
+
const pages = documentFile.mimeType.includes('pdf') ? await tryIgnoreLogAsync(this.#logger, async () => getPdfPageCount(content), null) : null;
|
|
34
|
+
const document = await this.repository.withTransaction(tx).insert({ fileId: documentFile.id, typeId, title, subtitle, pages, date, summary, tags, metadata, approval, comment, createUserId });
|
|
35
|
+
if (isDefined(properties)) {
|
|
36
|
+
await this.#documentPropertyService.withTransaction(tx).setPropertyValues(document.id, properties);
|
|
37
|
+
}
|
|
38
|
+
await this.withTransaction(tx).createAssignment(document.id, assignment, tx);
|
|
39
|
+
await this.#workflowService.withTransaction(tx).initiateWorkflow(document.id, DocumentWorkflowStep.Classification);
|
|
40
|
+
return document;
|
|
41
|
+
});
|
|
42
|
+
return document;
|
|
43
|
+
}
|
|
44
|
+
async updateDocument(id, update) {
|
|
45
|
+
await this.transaction(async (tx) => {
|
|
46
|
+
const document = await this.repository.withTransaction(tx).load(id);
|
|
47
|
+
if (document.approval == DocumentApproval.Approved) {
|
|
48
|
+
throw new BadRequestError('Cannot update approved documents.');
|
|
49
|
+
}
|
|
50
|
+
const updateKeyLength = objectKeys(update).length;
|
|
51
|
+
if ((updateKeyLength > 1) || (isUndefined(update.properties) && (updateKeyLength > 0))) {
|
|
52
|
+
await this.repository.withTransaction(tx).update(id, update);
|
|
53
|
+
}
|
|
54
|
+
if (isDefined(update.properties)) {
|
|
55
|
+
await this.#documentPropertyService.withTransaction(tx).setPropertyValues(id, update.properties);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* @returns collectionIds from either direct assignment or automatic assignment scope
|
|
61
|
+
*/
|
|
62
|
+
async createAssignment(documentId, assignment, transaction) {
|
|
63
|
+
return match(assignment)
|
|
64
|
+
.with({ collections: P.select() }, async (collectionIds) => {
|
|
65
|
+
const collectionIdsArray = toArray(collectionIds);
|
|
66
|
+
await this.#documentCollectionService.withTransaction(transaction).assignDocument(documentId, collectionIdsArray);
|
|
67
|
+
})
|
|
68
|
+
.with({ request: P.select() }, async (requestId) => {
|
|
69
|
+
await this.#requestService.withTransaction(transaction).assignDocument(requestId, documentId);
|
|
70
|
+
})
|
|
71
|
+
.with({ automatic: P.select() }, async ({ target, scope }) => {
|
|
72
|
+
const collectionIdsArray = toArray(scope);
|
|
73
|
+
const assignmentTask = await this.#documentAssignmentTaskRepository.withTransaction(transaction).insert({ documentId: documentId, target });
|
|
74
|
+
for (const collectionId of collectionIdsArray) {
|
|
75
|
+
await this.#documentAssignmentScopeRepository.withTransaction(transaction).insert({ taskId: assignmentTask.id, collectionId });
|
|
76
|
+
}
|
|
77
|
+
})
|
|
78
|
+
.exhaustive();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
_a = DocumentService;
|
|
@@ -1,2 +1,11 @@
|
|
|
1
|
+
export * from './document-category-type.service.js';
|
|
2
|
+
export * from './document-collection.service.js';
|
|
3
|
+
export * from './document-file.service.js';
|
|
4
|
+
export * from './document-management-ai.service.js';
|
|
1
5
|
export * from './document-management-ancillary.service.js';
|
|
2
6
|
export * from './document-management.service.js';
|
|
7
|
+
export * from './document-property.service.js';
|
|
8
|
+
export * from './document-request.service.js';
|
|
9
|
+
export * from './document-validation.service.js';
|
|
10
|
+
export * from './document-workflow.service.js';
|
|
11
|
+
export * from './document.service.js';
|
|
@@ -0,0 +1,51 @@
|
|
|
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
|
+
import { AiService } from '../../../ai/index.js';
|
|
8
|
+
import { defineEnum } from '../../../enumeration/enumeration.js';
|
|
9
|
+
import { Singleton } from '../../../injector/decorators.js';
|
|
10
|
+
import { inject } from '../../../injector/inject.js';
|
|
11
|
+
import { match } from 'ts-pattern';
|
|
12
|
+
import { DocumentValidationExecutor } from './validator.js';
|
|
13
|
+
export const AiValidationDifficulty = defineEnum('AiValidationDifficulty', {
|
|
14
|
+
Easy: 'easy',
|
|
15
|
+
MediumLow: 'medium-low',
|
|
16
|
+
MediumHigh: 'medium-high',
|
|
17
|
+
Hard: 'hard',
|
|
18
|
+
});
|
|
19
|
+
let AiValidationExecutor = class AiValidationExecutor extends DocumentValidationExecutor {
|
|
20
|
+
aiService = inject(AiService);
|
|
21
|
+
async execute(context) {
|
|
22
|
+
const validationPrompt = await this.getPrompt(context);
|
|
23
|
+
const model = match(this.difficulty)
|
|
24
|
+
.with('easy', () => 'gemini-2.0-flash-lite')
|
|
25
|
+
.with('medium-low', () => 'gemini-2.5-flash-exp-04-17')
|
|
26
|
+
.with('medium-high', () => 'gemini-2.5-flash-exp-04-17')
|
|
27
|
+
.with('hard', () => 'gemini-2.5-pro-exp-03-25')
|
|
28
|
+
.exhaustive();
|
|
29
|
+
const prompt = `Deine Aufgabe ist es ein Dokument zu validieren.
|
|
30
|
+
|
|
31
|
+
Validierungsaufgabe:
|
|
32
|
+
${validationPrompt}`;
|
|
33
|
+
const generation = await this.aiService.generate({
|
|
34
|
+
model,
|
|
35
|
+
generationOptions: {
|
|
36
|
+
temperature: 0.2,
|
|
37
|
+
topK: 20,
|
|
38
|
+
},
|
|
39
|
+
generationSchema: this.schema,
|
|
40
|
+
contents: [{
|
|
41
|
+
role: 'user',
|
|
42
|
+
parts: [{ text: prompt }],
|
|
43
|
+
}],
|
|
44
|
+
});
|
|
45
|
+
return await this.getResult(generation.json);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
AiValidationExecutor = __decorate([
|
|
49
|
+
Singleton()
|
|
50
|
+
], AiValidationExecutor);
|
|
51
|
+
export { AiValidationExecutor };
|