@lenne.tech/nest-server 11.43.3 → 12.1.0
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/.claude/rules/architecture.md +88 -1
- package/.claude/rules/better-auth.md +46 -0
- package/.claude/rules/configurable-features.md +3 -2
- package/.claude/rules/module-deprecation.md +3 -2
- package/.claude/rules/package-management.md +48 -15
- package/.claude/rules/persistence.md +100 -0
- package/.claude/rules/role-system.md +18 -0
- package/.claude/rules/testing.md +136 -29
- package/CLAUDE.md +50 -6
- package/FRAMEWORK-API.md +218 -216
- package/README.md +106 -34
- package/bin/migrate.js +18 -17
- package/bin/package.json +3 -0
- package/dist/config.env.d.ts +1 -1
- package/dist/config.env.js +34 -43
- package/dist/config.env.js.map +1 -1
- package/dist/core/common/args/filter.args.d.ts +2 -2
- package/dist/core/common/args/filter.args.js +13 -16
- package/dist/core/common/args/filter.args.js.map +1 -1
- package/dist/core/common/args/pagination.args.d.ts +2 -2
- package/dist/core/common/args/pagination.args.js +20 -23
- package/dist/core/common/args/pagination.args.js.map +1 -1
- package/dist/core/common/decorators/api-methods.decorator.js +3 -7
- package/dist/core/common/decorators/api-methods.decorator.js.map +1 -1
- package/dist/core/common/decorators/common-error.decorator.js +6 -10
- package/dist/core/common/decorators/common-error.decorator.js.map +1 -1
- package/dist/core/common/decorators/current-user.decorator.js +3 -6
- package/dist/core/common/decorators/current-user.decorator.js.map +1 -1
- package/dist/core/common/decorators/graphql-populate.decorator.d.ts +1 -1
- package/dist/core/common/decorators/graphql-populate.decorator.js +3 -6
- package/dist/core/common/decorators/graphql-populate.decorator.js.map +1 -1
- package/dist/core/common/decorators/graphql-service-options.decorator.d.ts +1 -1
- package/dist/core/common/decorators/graphql-service-options.decorator.js +7 -10
- package/dist/core/common/decorators/graphql-service-options.decorator.js.map +1 -1
- package/dist/core/common/decorators/graphql-user.decorator.js +4 -7
- package/dist/core/common/decorators/graphql-user.decorator.js.map +1 -1
- package/dist/core/common/decorators/nested-type.registry.js +3 -7
- package/dist/core/common/decorators/nested-type.registry.js.map +1 -1
- package/dist/core/common/decorators/response-model.decorator.d.ts +1 -1
- package/dist/core/common/decorators/response-model.decorator.js +3 -7
- package/dist/core/common/decorators/response-model.decorator.js.map +1 -1
- package/dist/core/common/decorators/rest-service-options.decorator.js +4 -7
- package/dist/core/common/decorators/rest-service-options.decorator.js.map +1 -1
- package/dist/core/common/decorators/rest-user.decorator.js +2 -5
- package/dist/core/common/decorators/rest-user.decorator.js.map +1 -1
- package/dist/core/common/decorators/restricted.decorator.d.ts +3 -3
- package/dist/core/common/decorators/restricted.decorator.js +42 -52
- package/dist/core/common/decorators/restricted.decorator.js.map +1 -1
- package/dist/core/common/decorators/restrictions-checked.marker.js +8 -14
- package/dist/core/common/decorators/restrictions-checked.marker.js.map +1 -1
- package/dist/core/common/decorators/roles.decorator.js +2 -6
- package/dist/core/common/decorators/roles.decorator.js.map +1 -1
- package/dist/core/common/decorators/translatable.decorator.js +4 -9
- package/dist/core/common/decorators/translatable.decorator.js.map +1 -1
- package/dist/core/common/decorators/unified-field.decorator.d.ts +6 -5
- package/dist/core/common/decorators/unified-field.decorator.js +59 -64
- package/dist/core/common/decorators/unified-field.decorator.js.map +1 -1
- package/dist/core/common/enums/comparison-operator.enum.js +4 -7
- package/dist/core/common/enums/comparison-operator.enum.js.map +1 -1
- package/dist/core/common/enums/logical-operator.enum.js +4 -7
- package/dist/core/common/enums/logical-operator.enum.js.map +1 -1
- package/dist/core/common/enums/process-type.enum.js +2 -5
- package/dist/core/common/enums/process-type.enum.js.map +1 -1
- package/dist/core/common/enums/role.enum.js +14 -22
- package/dist/core/common/enums/role.enum.js.map +1 -1
- package/dist/core/common/enums/sort-order.emum.js +4 -7
- package/dist/core/common/enums/sort-order.emum.js.map +1 -1
- package/dist/core/common/exceptions/access-denied.exception.js +5 -8
- package/dist/core/common/exceptions/access-denied.exception.js.map +1 -1
- package/dist/core/common/filters/http-exception-log.filter.js +7 -9
- package/dist/core/common/filters/http-exception-log.filter.js.map +1 -1
- package/dist/core/common/filters/mongoose-cast-error.filter.d.ts +7 -5
- package/dist/core/common/filters/mongoose-cast-error.filter.js +17 -23
- package/dist/core/common/filters/mongoose-cast-error.filter.js.map +1 -1
- package/dist/core/common/helpers/clone.helper.js +6 -10
- package/dist/core/common/helpers/clone.helper.js.map +1 -1
- package/dist/core/common/helpers/common.helper.js +2 -6
- package/dist/core/common/helpers/common.helper.js.map +1 -1
- package/dist/core/common/helpers/config.helper.d.ts +1 -0
- package/dist/core/common/helpers/config.helper.js +35 -40
- package/dist/core/common/helpers/config.helper.js.map +1 -1
- package/dist/core/common/helpers/content-disposition.helper.js +1 -4
- package/dist/core/common/helpers/content-disposition.helper.js.map +1 -1
- package/dist/core/common/helpers/context.helper.js +4 -8
- package/dist/core/common/helpers/context.helper.js.map +1 -1
- package/dist/core/common/helpers/cookies.helper.d.ts +1 -1
- package/dist/core/common/helpers/cookies.helper.js +20 -37
- package/dist/core/common/helpers/cookies.helper.js.map +1 -1
- package/dist/core/common/helpers/db.helper.d.ts +7 -6
- package/dist/core/common/helpers/db.helper.js +54 -68
- package/dist/core/common/helpers/db.helper.js.map +1 -1
- package/dist/core/common/helpers/decorator.helper.d.ts +1 -1
- package/dist/core/common/helpers/decorator.helper.js +9 -13
- package/dist/core/common/helpers/decorator.helper.js.map +1 -1
- package/dist/core/common/helpers/execution-context-request.helper.js +1 -4
- package/dist/core/common/helpers/execution-context-request.helper.js.map +1 -1
- package/dist/core/common/helpers/file.helper.d.ts +1 -1
- package/dist/core/common/helpers/file.helper.js +24 -32
- package/dist/core/common/helpers/file.helper.js.map +1 -1
- package/dist/core/common/helpers/filter.helper.d.ts +4 -3
- package/dist/core/common/helpers/filter.helper.js +35 -44
- package/dist/core/common/helpers/filter.helper.js.map +1 -1
- package/dist/core/common/helpers/graceful-shutdown.helper.js +5 -8
- package/dist/core/common/helpers/graceful-shutdown.helper.js.map +1 -1
- package/dist/core/common/helpers/graphql-ws-connection.helper.d.ts +3 -1
- package/dist/core/common/helpers/graphql-ws-connection.helper.js +25 -32
- package/dist/core/common/helpers/graphql-ws-connection.helper.js.map +1 -1
- package/dist/core/common/helpers/graphql-ws-context.helper.d.ts +2 -2
- package/dist/core/common/helpers/graphql-ws-context.helper.js +25 -33
- package/dist/core/common/helpers/graphql-ws-context.helper.js.map +1 -1
- package/dist/core/common/helpers/graphql.helper.js +14 -29
- package/dist/core/common/helpers/graphql.helper.js.map +1 -1
- package/dist/core/common/helpers/gridfs.helper.d.ts +4 -4
- package/dist/core/common/helpers/gridfs.helper.js +15 -11
- package/dist/core/common/helpers/gridfs.helper.js.map +1 -1
- package/dist/core/common/helpers/id.helper.d.ts +5 -2
- package/dist/core/common/helpers/id.helper.js +15 -15
- package/dist/core/common/helpers/id.helper.js.map +1 -1
- package/dist/core/common/helpers/input.helper.d.ts +3 -3
- package/dist/core/common/helpers/input.helper.js +68 -110
- package/dist/core/common/helpers/input.helper.js.map +1 -1
- package/dist/core/common/helpers/interceptor.helper.d.ts +1 -1
- package/dist/core/common/helpers/interceptor.helper.js +7 -11
- package/dist/core/common/helpers/interceptor.helper.js.map +1 -1
- package/dist/core/common/helpers/logging.helper.js +7 -16
- package/dist/core/common/helpers/logging.helper.js.map +1 -1
- package/dist/core/common/helpers/meta.helper.js +14 -20
- package/dist/core/common/helpers/meta.helper.js.map +1 -1
- package/dist/core/common/helpers/model.helper.js +20 -31
- package/dist/core/common/helpers/model.helper.js.map +1 -1
- package/dist/core/common/helpers/module-location.helper.d.ts +1 -0
- package/dist/core/common/helpers/module-location.helper.js +20 -0
- package/dist/core/common/helpers/module-location.helper.js.map +1 -0
- package/dist/core/common/helpers/outbound-url.helper.js +24 -33
- package/dist/core/common/helpers/outbound-url.helper.js.map +1 -1
- package/dist/core/common/helpers/process-diagnostics.helper.js +6 -10
- package/dist/core/common/helpers/process-diagnostics.helper.js.map +1 -1
- package/dist/core/common/helpers/project-name.helper.js +4 -8
- package/dist/core/common/helpers/project-name.helper.js.map +1 -1
- package/dist/core/common/helpers/register-enum.helper.js +11 -16
- package/dist/core/common/helpers/register-enum.helper.js.map +1 -1
- package/dist/core/common/helpers/scim.helper.js +1 -4
- package/dist/core/common/helpers/scim.helper.js.map +1 -1
- package/dist/core/common/helpers/service.helper.d.ts +3 -3
- package/dist/core/common/helpers/service.helper.js +29 -36
- package/dist/core/common/helpers/service.helper.js.map +1 -1
- package/dist/core/common/helpers/swagger.helper.d.ts +2 -2
- package/dist/core/common/helpers/swagger.helper.js +116 -86
- package/dist/core/common/helpers/swagger.helper.js.map +1 -1
- package/dist/core/common/helpers/table.helper.js +1 -4
- package/dist/core/common/helpers/table.helper.js.map +1 -1
- package/dist/core/common/helpers/validation-message.helper.js +2 -6
- package/dist/core/common/helpers/validation-message.helper.js.map +1 -1
- package/dist/core/common/inputs/combined-filter.input.d.ts +1 -1
- package/dist/core/common/inputs/combined-filter.input.js +1 -5
- package/dist/core/common/inputs/combined-filter.input.js.map +1 -1
- package/dist/core/common/inputs/core-input.input.d.ts +1 -1
- package/dist/core/common/inputs/core-input.input.js +4 -8
- package/dist/core/common/inputs/core-input.input.js.map +1 -1
- package/dist/core/common/inputs/filter.input.d.ts +3 -3
- package/dist/core/common/inputs/filter.input.js +31 -34
- package/dist/core/common/inputs/filter.input.js.map +1 -1
- package/dist/core/common/inputs/single-filter.input.d.ts +2 -2
- package/dist/core/common/inputs/single-filter.input.js +28 -31
- package/dist/core/common/inputs/single-filter.input.js.map +1 -1
- package/dist/core/common/inputs/sort.input.d.ts +2 -2
- package/dist/core/common/inputs/sort.input.js +16 -19
- package/dist/core/common/inputs/sort.input.js.map +1 -1
- package/dist/core/common/interceptors/check-response.interceptor.d.ts +1 -1
- package/dist/core/common/interceptors/check-response.interceptor.js +12 -15
- package/dist/core/common/interceptors/check-response.interceptor.js.map +1 -1
- package/dist/core/common/interceptors/check-security.interceptor.d.ts +1 -1
- package/dist/core/common/interceptors/check-security.interceptor.js +16 -19
- package/dist/core/common/interceptors/check-security.interceptor.js.map +1 -1
- package/dist/core/common/interceptors/response-model.interceptor.d.ts +1 -1
- package/dist/core/common/interceptors/response-model.interceptor.js +16 -19
- package/dist/core/common/interceptors/response-model.interceptor.js.map +1 -1
- package/dist/core/common/interceptors/translate-response.interceptor.js +12 -15
- package/dist/core/common/interceptors/translate-response.interceptor.js.map +1 -1
- package/dist/core/common/interfaces/core-persistence-model.interface.d.ts +1 -1
- package/dist/core/common/interfaces/core-persistence-model.interface.js +1 -2
- package/dist/core/common/interfaces/cron-job-config-with-time-zone.interface.d.ts +1 -1
- package/dist/core/common/interfaces/cron-job-config-with-time-zone.interface.js +1 -2
- package/dist/core/common/interfaces/cron-job-config-with-utc-offset.interface.d.ts +1 -1
- package/dist/core/common/interfaces/cron-job-config-with-utc-offset.interface.js +1 -2
- package/dist/core/common/interfaces/cron-job-config.interface.js +1 -2
- package/dist/core/common/interfaces/mailjet-options.interface.js +1 -2
- package/dist/core/common/interfaces/prepare-input-options.interface.js +1 -2
- package/dist/core/common/interfaces/prepare-output-options.interface.js +1 -2
- package/dist/core/common/interfaces/resolve-selector.interface.js +1 -2
- package/dist/core/common/interfaces/scim-array-filter-node.interface.d.ts +1 -1
- package/dist/core/common/interfaces/scim-array-filter-node.interface.js +1 -2
- package/dist/core/common/interfaces/scim-condition-node.interface.d.ts +1 -1
- package/dist/core/common/interfaces/scim-condition-node.interface.js +1 -2
- package/dist/core/common/interfaces/scim-logical-node.interface.d.ts +2 -2
- package/dist/core/common/interfaces/scim-logical-node.interface.js +1 -2
- package/dist/core/common/interfaces/server-options.interface.d.ts +26 -11
- package/dist/core/common/interfaces/server-options.interface.js +1 -2
- package/dist/core/common/interfaces/service-options.interface.d.ts +5 -5
- package/dist/core/common/interfaces/service-options.interface.js +1 -2
- package/dist/core/common/interfaces/swagger-setup-options.interface.js +1 -2
- package/dist/core/common/middleware/request-context.middleware.js +6 -9
- package/dist/core/common/middleware/request-context.middleware.js.map +1 -1
- package/dist/core/common/middlewares/security-headers.middleware.d.ts +2 -2
- package/dist/core/common/middlewares/security-headers.middleware.js +6 -9
- package/dist/core/common/middlewares/security-headers.middleware.js.map +1 -1
- package/dist/core/common/middlewares/to-lower-case.middleware.js +1 -5
- package/dist/core/common/middlewares/to-lower-case.middleware.js.map +1 -1
- package/dist/core/common/models/core-model.model.js +3 -7
- package/dist/core/common/models/core-model.model.js.map +1 -1
- package/dist/core/common/models/core-persistence.model.d.ts +2 -3
- package/dist/core/common/models/core-persistence.model.js +27 -30
- package/dist/core/common/models/core-persistence.model.js.map +1 -1
- package/dist/core/common/models/pagination-info.model.js +11 -14
- package/dist/core/common/models/pagination-info.model.js.map +1 -1
- package/dist/core/common/persistence/core-persistence.lifecycle.d.ts +9 -0
- package/dist/core/common/persistence/core-persistence.lifecycle.js +38 -0
- package/dist/core/common/persistence/core-persistence.lifecycle.js.map +1 -0
- package/dist/core/common/persistence/core-persistence.module.d.ts +9 -0
- package/dist/core/common/persistence/core-persistence.module.js +76 -0
- package/dist/core/common/persistence/core-persistence.module.js.map +1 -0
- package/dist/core/common/persistence/data-source.config.d.ts +33 -0
- package/dist/core/common/persistence/data-source.config.js +151 -0
- package/dist/core/common/persistence/data-source.config.js.map +1 -0
- package/dist/core/common/persistence/data-source.runtime.d.ts +45 -0
- package/dist/core/common/persistence/data-source.runtime.js +278 -0
- package/dist/core/common/persistence/data-source.runtime.js.map +1 -0
- package/dist/core/common/persistence/data-store.interface.d.ts +73 -0
- package/dist/core/common/persistence/data-store.interface.js +2 -0
- package/dist/core/common/persistence/data-store.interface.js.map +1 -0
- package/dist/core/common/persistence/expiry-sweep.d.ts +12 -0
- package/dist/core/common/persistence/expiry-sweep.js +55 -0
- package/dist/core/common/persistence/expiry-sweep.js.map +1 -0
- package/dist/core/common/persistence/id-format.d.ts +3 -0
- package/dist/core/common/persistence/id-format.js +21 -0
- package/dist/core/common/persistence/id-format.js.map +1 -0
- package/dist/core/common/persistence/infrastructure-locks.d.ts +13 -0
- package/dist/core/common/persistence/infrastructure-locks.js +35 -0
- package/dist/core/common/persistence/infrastructure-locks.js.map +1 -0
- package/dist/core/common/persistence/inject-store.decorator.d.ts +1 -0
- package/dist/core/common/persistence/inject-store.decorator.js +6 -0
- package/dist/core/common/persistence/inject-store.decorator.js.map +1 -0
- package/dist/core/common/persistence/lock-store.interface.d.ts +5 -0
- package/dist/core/common/persistence/lock-store.interface.js +2 -0
- package/dist/core/common/persistence/lock-store.interface.js.map +1 -0
- package/dist/core/common/persistence/model-descriptor.interface.d.ts +36 -0
- package/dist/core/common/persistence/model-descriptor.interface.js +2 -0
- package/dist/core/common/persistence/model-descriptor.interface.js.map +1 -0
- package/dist/core/common/persistence/model-metadata.registry.d.ts +14 -0
- package/dist/core/common/persistence/model-metadata.registry.js +194 -0
- package/dist/core/common/persistence/model-metadata.registry.js.map +1 -0
- package/dist/core/common/persistence/mongo/collection-name.d.ts +2 -0
- package/dist/core/common/persistence/mongo/collection-name.js +73 -0
- package/dist/core/common/persistence/mongo/collection-name.js.map +1 -0
- package/dist/core/common/persistence/mongo/declared-schema.view.d.ts +11 -0
- package/dist/core/common/persistence/mongo/declared-schema.view.js +292 -0
- package/dist/core/common/persistence/mongo/declared-schema.view.js.map +1 -0
- package/dist/core/common/persistence/mongo/hex-object-id.d.ts +13 -0
- package/dist/core/common/persistence/mongo/hex-object-id.js +54 -0
- package/dist/core/common/persistence/mongo/hex-object-id.js.map +1 -0
- package/dist/core/common/persistence/mongo/model-declarations.d.ts +35 -0
- package/dist/core/common/persistence/mongo/model-declarations.js +80 -0
- package/dist/core/common/persistence/mongo/model-declarations.js.map +1 -0
- package/dist/core/common/persistence/mongo/mongo-packages.d.ts +15 -0
- package/dist/core/common/persistence/mongo/mongo-packages.js +66 -0
- package/dist/core/common/persistence/mongo/mongo-packages.js.map +1 -0
- package/dist/core/common/persistence/mongo/mongoose-compat.d.ts +22 -0
- package/dist/core/common/persistence/mongo/mongoose-compat.js +65 -0
- package/dist/core/common/persistence/mongo/mongoose-compat.js.map +1 -0
- package/dist/core/common/persistence/mongo/no-mongo-connection.module.d.ts +2 -0
- package/dist/core/common/persistence/mongo/no-mongo-connection.module.js +19 -0
- package/dist/core/common/persistence/mongo/no-mongo-connection.module.js.map +1 -0
- package/dist/core/common/persistence/mongo-lock-store.d.ts +21 -0
- package/dist/core/common/persistence/mongo-lock-store.js +72 -0
- package/dist/core/common/persistence/mongo-lock-store.js.map +1 -0
- package/dist/core/common/persistence/mongoose-data-store.d.ts +33 -0
- package/dist/core/common/persistence/mongoose-data-store.js +187 -0
- package/dist/core/common/persistence/mongoose-data-store.js.map +1 -0
- package/dist/core/common/persistence/neutral-populate.d.ts +6 -0
- package/dist/core/common/persistence/neutral-populate.js +72 -0
- package/dist/core/common/persistence/neutral-populate.js.map +1 -0
- package/dist/core/common/persistence/persisted-model.decorator.d.ts +6 -0
- package/dist/core/common/persistence/persisted-model.decorator.js +24 -0
- package/dist/core/common/persistence/persisted-model.decorator.js.map +1 -0
- package/dist/core/common/persistence/persistence-runtime.registry.d.ts +61 -0
- package/dist/core/common/persistence/persistence-runtime.registry.js +47 -0
- package/dist/core/common/persistence/persistence-runtime.registry.js.map +1 -0
- package/dist/core/common/persistence/persistence.tokens.d.ts +1 -0
- package/dist/core/common/persistence/persistence.tokens.js +4 -0
- package/dist/core/common/persistence/persistence.tokens.js.map +1 -0
- package/dist/core/common/persistence/policies/audit.policy.d.ts +8 -0
- package/dist/core/common/persistence/policies/audit.policy.js +37 -0
- package/dist/core/common/persistence/policies/audit.policy.js.map +1 -0
- package/dist/core/common/persistence/policies/password.policy.d.ts +3 -0
- package/dist/core/common/persistence/policies/password.policy.js +46 -0
- package/dist/core/common/persistence/policies/password.policy.js.map +1 -0
- package/dist/core/common/persistence/policies/role-guard.policy.d.ts +3 -0
- package/dist/core/common/persistence/policies/role-guard.policy.js +46 -0
- package/dist/core/common/persistence/policies/role-guard.policy.js.map +1 -0
- package/dist/core/common/persistence/policies/system-role.policy.d.ts +5 -0
- package/dist/core/common/persistence/policies/system-role.policy.js +46 -0
- package/dist/core/common/persistence/policies/system-role.policy.js.map +1 -0
- package/dist/core/common/persistence/policies/tenant.policy.d.ts +19 -0
- package/dist/core/common/persistence/policies/tenant.policy.js +120 -0
- package/dist/core/common/persistence/policies/tenant.policy.js.map +1 -0
- package/dist/core/common/persistence/routed-model.guard.d.ts +4 -0
- package/dist/core/common/persistence/routed-model.guard.js +73 -0
- package/dist/core/common/persistence/routed-model.guard.js.map +1 -0
- package/dist/core/common/persistence/sql/mysql/mysql-data-store.d.ts +46 -0
- package/dist/core/common/persistence/sql/mysql/mysql-data-store.js +350 -0
- package/dist/core/common/persistence/sql/mysql/mysql-data-store.js.map +1 -0
- package/dist/core/common/persistence/sql/mysql/mysql-executor.d.ts +13 -0
- package/dist/core/common/persistence/sql/mysql/mysql-executor.js +194 -0
- package/dist/core/common/persistence/sql/mysql/mysql-executor.js.map +1 -0
- package/dist/core/common/persistence/sql/mysql/mysql-lock-store.d.ts +11 -0
- package/dist/core/common/persistence/sql/mysql/mysql-lock-store.js +55 -0
- package/dist/core/common/persistence/sql/mysql/mysql-lock-store.js.map +1 -0
- package/dist/core/common/persistence/sql/mysql/mysql-schema.compiler.d.ts +36 -0
- package/dist/core/common/persistence/sql/mysql/mysql-schema.compiler.js +288 -0
- package/dist/core/common/persistence/sql/mysql/mysql-schema.compiler.js.map +1 -0
- package/dist/core/common/persistence/sql/mysql/mysql-schema.migrator.d.ts +19 -0
- package/dist/core/common/persistence/sql/mysql/mysql-schema.migrator.js +328 -0
- package/dist/core/common/persistence/sql/mysql/mysql-schema.migrator.js.map +1 -0
- package/dist/core/common/persistence/sql/mysql/mysql-session.d.ts +13 -0
- package/dist/core/common/persistence/sql/mysql/mysql-session.js +85 -0
- package/dist/core/common/persistence/sql/mysql/mysql-session.js.map +1 -0
- package/dist/core/common/persistence/sql/mysql/mysql-update.compiler.d.ts +9 -0
- package/dist/core/common/persistence/sql/mysql/mysql-update.compiler.js +264 -0
- package/dist/core/common/persistence/sql/mysql/mysql-update.compiler.js.map +1 -0
- package/dist/core/common/persistence/sql/mysql/mysql-where.compiler.d.ts +20 -0
- package/dist/core/common/persistence/sql/mysql/mysql-where.compiler.js +519 -0
- package/dist/core/common/persistence/sql/mysql/mysql-where.compiler.js.map +1 -0
- package/dist/core/common/persistence/sql/postgres/postgres-lock-store.d.ts +11 -0
- package/dist/core/common/persistence/sql/postgres/postgres-lock-store.js +44 -0
- package/dist/core/common/persistence/sql/postgres/postgres-lock-store.js.map +1 -0
- package/dist/core/common/persistence/sql/postgres/postgres-schema.compiler.d.ts +42 -0
- package/dist/core/common/persistence/sql/postgres/postgres-schema.compiler.js +220 -0
- package/dist/core/common/persistence/sql/postgres/postgres-schema.compiler.js.map +1 -0
- package/dist/core/common/persistence/sql/postgres/postgres-schema.migrator.d.ts +12 -0
- package/dist/core/common/persistence/sql/postgres/postgres-schema.migrator.js +315 -0
- package/dist/core/common/persistence/sql/postgres/postgres-schema.migrator.js.map +1 -0
- package/dist/core/common/persistence/sql/postgres/postgres-update.compiler.d.ts +5 -0
- package/dist/core/common/persistence/sql/postgres/postgres-update.compiler.js +225 -0
- package/dist/core/common/persistence/sql/postgres/postgres-update.compiler.js.map +1 -0
- package/dist/core/common/persistence/sql/postgres/postgres-where.compiler.d.ts +13 -0
- package/dist/core/common/persistence/sql/postgres/postgres-where.compiler.js +484 -0
- package/dist/core/common/persistence/sql/postgres/postgres-where.compiler.js.map +1 -0
- package/dist/core/common/persistence/sql/sql-cast.d.ts +2 -0
- package/dist/core/common/persistence/sql/sql-cast.js +194 -0
- package/dist/core/common/persistence/sql/sql-cast.js.map +1 -0
- package/dist/core/common/persistence/sql/sql-data-store.d.ts +79 -0
- package/dist/core/common/persistence/sql/sql-data-store.js +592 -0
- package/dist/core/common/persistence/sql/sql-data-store.js.map +1 -0
- package/dist/core/common/persistence/sql/sql-dialect.d.ts +20 -0
- package/dist/core/common/persistence/sql/sql-dialect.js +38 -0
- package/dist/core/common/persistence/sql/sql-dialect.js.map +1 -0
- package/dist/core/common/persistence/sql/sql-errors.d.ts +17 -0
- package/dist/core/common/persistence/sql/sql-errors.js +25 -0
- package/dist/core/common/persistence/sql/sql-errors.js.map +1 -0
- package/dist/core/common/persistence/sql/sql-executor.factory.d.ts +11 -0
- package/dist/core/common/persistence/sql/sql-executor.factory.js +199 -0
- package/dist/core/common/persistence/sql/sql-executor.factory.js.map +1 -0
- package/dist/core/common/persistence/sql/sql-executor.interface.d.ts +32 -0
- package/dist/core/common/persistence/sql/sql-executor.interface.js +2 -0
- package/dist/core/common/persistence/sql/sql-executor.interface.js.map +1 -0
- package/dist/core/common/persistence/sql/sql-naming.d.ts +15 -0
- package/dist/core/common/persistence/sql/sql-naming.js +90 -0
- package/dist/core/common/persistence/sql/sql-naming.js.map +1 -0
- package/dist/core/common/persistence/sql/sql-schema.shared.d.ts +25 -0
- package/dist/core/common/persistence/sql/sql-schema.shared.js +69 -0
- package/dist/core/common/persistence/sql/sql-schema.shared.js.map +1 -0
- package/dist/core/common/persistence/sql/sql-session.d.ts +6 -0
- package/dist/core/common/persistence/sql/sql-session.js +78 -0
- package/dist/core/common/persistence/sql/sql-session.js.map +1 -0
- package/dist/core/common/persistence/sql/where-shared.d.ts +18 -0
- package/dist/core/common/persistence/sql/where-shared.js +93 -0
- package/dist/core/common/persistence/sql/where-shared.js.map +1 -0
- package/dist/core/common/persistence/store-guards.d.ts +10 -0
- package/dist/core/common/persistence/store-guards.js +49 -0
- package/dist/core/common/persistence/store-guards.js.map +1 -0
- package/dist/core/common/persistence/store-upsert.d.ts +2 -0
- package/dist/core/common/persistence/store-upsert.js +20 -0
- package/dist/core/common/persistence/store-upsert.js.map +1 -0
- package/dist/core/common/persistence/unavailable-store.d.ts +2 -0
- package/dist/core/common/persistence/unavailable-store.js +53 -0
- package/dist/core/common/persistence/unavailable-store.js.map +1 -0
- package/dist/core/common/persistence/unsupported-capability.error.d.ts +3 -0
- package/dist/core/common/persistence/unsupported-capability.error.js +4 -0
- package/dist/core/common/persistence/unsupported-capability.error.js.map +1 -0
- package/dist/core/common/pipes/check-input.pipe.js +10 -13
- package/dist/core/common/pipes/check-input.pipe.js.map +1 -1
- package/dist/core/common/pipes/map-and-validate.pipe.js +63 -66
- package/dist/core/common/pipes/map-and-validate.pipe.js.map +1 -1
- package/dist/core/common/plugins/complexity.plugin.d.ts +1 -1
- package/dist/core/common/plugins/complexity.plugin.js +13 -16
- package/dist/core/common/plugins/complexity.plugin.js.map +1 -1
- package/dist/core/common/plugins/mongoose-audit-fields.plugin.js +25 -72
- package/dist/core/common/plugins/mongoose-audit-fields.plugin.js.map +1 -1
- package/dist/core/common/plugins/mongoose-id.plugin.js +4 -4
- package/dist/core/common/plugins/mongoose-id.plugin.js.map +1 -1
- package/dist/core/common/plugins/mongoose-password.plugin.d.ts +1 -3
- package/dist/core/common/plugins/mongoose-password.plugin.js +3 -52
- package/dist/core/common/plugins/mongoose-password.plugin.js.map +1 -1
- package/dist/core/common/plugins/mongoose-role-guard.plugin.js +13 -57
- package/dist/core/common/plugins/mongoose-role-guard.plugin.js.map +1 -1
- package/dist/core/common/plugins/mongoose-system-role.plugin.js +3 -47
- package/dist/core/common/plugins/mongoose-system-role.plugin.js.map +1 -1
- package/dist/core/common/plugins/mongoose-tenant.plugin.js +12 -75
- package/dist/core/common/plugins/mongoose-tenant.plugin.js.map +1 -1
- package/dist/core/common/scalars/any.scalar.js +14 -17
- package/dist/core/common/scalars/any.scalar.js.map +1 -1
- package/dist/core/common/scalars/date-timestamp.scalar.js +7 -10
- package/dist/core/common/scalars/date-timestamp.scalar.js.map +1 -1
- package/dist/core/common/scalars/date.scalar.js +7 -10
- package/dist/core/common/scalars/date.scalar.js.map +1 -1
- package/dist/core/common/scalars/json.scalar.js +14 -17
- package/dist/core/common/scalars/json.scalar.js.map +1 -1
- package/dist/core/common/scalars/upload.scalar.d.ts +2 -0
- package/dist/core/common/scalars/upload.scalar.js +3 -0
- package/dist/core/common/scalars/upload.scalar.js.map +1 -0
- package/dist/core/common/services/brevo.service.d.ts +7 -3
- package/dist/core/common/services/brevo.service.js +11 -13
- package/dist/core/common/services/brevo.service.js.map +1 -1
- package/dist/core/common/services/config.service.d.ts +1 -1
- package/dist/core/common/services/config.service.js +18 -23
- package/dist/core/common/services/config.service.js.map +1 -1
- package/dist/core/common/services/core-body-parser.initializer.d.ts +1 -1
- package/dist/core/common/services/core-body-parser.initializer.js +17 -21
- package/dist/core/common/services/core-body-parser.initializer.js.map +1 -1
- package/dist/core/common/services/core-cron-jobs.initializer.d.ts +2 -2
- package/dist/core/common/services/core-cron-jobs.initializer.js +12 -17
- package/dist/core/common/services/core-cron-jobs.initializer.js.map +1 -1
- package/dist/core/common/services/core-cron-jobs.registry.d.ts +1 -1
- package/dist/core/common/services/core-cron-jobs.registry.js +2 -6
- package/dist/core/common/services/core-cron-jobs.registry.js.map +1 -1
- package/dist/core/common/services/core-cron-jobs.service.d.ts +5 -4
- package/dist/core/common/services/core-cron-jobs.service.js +60 -49
- package/dist/core/common/services/core-cron-jobs.service.js.map +1 -1
- package/dist/core/common/services/core-redis-pubsub.d.ts +1 -1
- package/dist/core/common/services/core-redis-pubsub.js +4 -8
- package/dist/core/common/services/core-redis-pubsub.js.map +1 -1
- package/dist/core/common/services/core-redis.service.d.ts +2 -2
- package/dist/core/common/services/core-redis.service.js +11 -14
- package/dist/core/common/services/core-redis.service.js.map +1 -1
- package/dist/core/common/services/core-s3.service.d.ts +2 -2
- package/dist/core/common/services/core-s3.service.js +21 -17
- package/dist/core/common/services/core-s3.service.js.map +1 -1
- package/dist/core/common/services/core-tenant-context.registry.d.ts +1 -1
- package/dist/core/common/services/core-tenant-context.registry.js +2 -6
- package/dist/core/common/services/core-tenant-context.registry.js.map +1 -1
- package/dist/core/common/services/core-trust-proxy.initializer.d.ts +1 -1
- package/dist/core/common/services/core-trust-proxy.initializer.js +11 -14
- package/dist/core/common/services/core-trust-proxy.initializer.js.map +1 -1
- package/dist/core/common/services/crud.service.d.ts +10 -7
- package/dist/core/common/services/crud.service.js +163 -58
- package/dist/core/common/services/crud.service.js.map +1 -1
- package/dist/core/common/services/email.service.d.ts +5 -5
- package/dist/core/common/services/email.service.js +27 -30
- package/dist/core/common/services/email.service.js.map +1 -1
- package/dist/core/common/services/mailjet.service.d.ts +1 -1
- package/dist/core/common/services/mailjet.service.js +9 -11
- package/dist/core/common/services/mailjet.service.js.map +1 -1
- package/dist/core/common/services/model-doc.service.d.ts +1 -1
- package/dist/core/common/services/model-doc.service.js +9 -13
- package/dist/core/common/services/model-doc.service.js.map +1 -1
- package/dist/core/common/services/model-registry.service.d.ts +1 -1
- package/dist/core/common/services/model-registry.service.js +1 -5
- package/dist/core/common/services/model-registry.service.js.map +1 -1
- package/dist/core/common/services/module.service.d.ts +14 -7
- package/dist/core/common/services/module.service.js +72 -31
- package/dist/core/common/services/module.service.js.map +1 -1
- package/dist/core/common/services/rate-limit-store.d.ts +1 -1
- package/dist/core/common/services/rate-limit-store.js +9 -15
- package/dist/core/common/services/rate-limit-store.js.map +1 -1
- package/dist/core/common/services/request-context.service.js +3 -7
- package/dist/core/common/services/request-context.service.js.map +1 -1
- package/dist/core/common/services/template.service.d.ts +1 -1
- package/dist/core/common/services/template.service.js +12 -15
- package/dist/core/common/services/template.service.js.map +1 -1
- package/dist/core/common/types/array-element.type.js +1 -2
- package/dist/core/common/types/core-model-constructor.type.d.ts +1 -1
- package/dist/core/common/types/core-model-constructor.type.js +1 -2
- package/dist/core/common/types/falsy.type.js +1 -2
- package/dist/core/common/types/field-selection.type.d.ts +2 -2
- package/dist/core/common/types/field-selection.type.js +1 -2
- package/dist/core/common/types/id.type.d.ts +4 -4
- package/dist/core/common/types/id.type.js +1 -2
- package/dist/core/common/types/ids.type.d.ts +1 -1
- package/dist/core/common/types/ids.type.js +1 -2
- package/dist/core/common/types/is-one-of.type.js +1 -2
- package/dist/core/common/types/maybe-promise.type.js +1 -2
- package/dist/core/common/types/object-id-like.type.d.ts +3 -0
- package/dist/core/common/types/object-id-like.type.js +2 -0
- package/dist/core/common/types/object-id-like.type.js.map +1 -0
- package/dist/core/common/types/plain-input.type.js +1 -2
- package/dist/core/common/types/plain-object-deep.type.js +1 -2
- package/dist/core/common/types/plain-object.type.js +1 -2
- package/dist/core/common/types/populate-config.type.d.ts +1 -1
- package/dist/core/common/types/populate-config.type.js +1 -2
- package/dist/core/common/types/remove-methods.type.js +1 -2
- package/dist/core/common/types/require-only-one.type.js +1 -2
- package/dist/core/common/types/required-at-least-one.type.js +1 -2
- package/dist/core/common/types/scim-comparator.type.js +1 -2
- package/dist/core/common/types/scim-logical-operator.type.js +1 -2
- package/dist/core/common/types/scim-node.type.d.ts +3 -3
- package/dist/core/common/types/scim-node.type.js +1 -2
- package/dist/core/common/types/string-or-object-id.type.d.ts +2 -2
- package/dist/core/common/types/string-or-object-id.type.js +1 -2
- package/dist/core/common/types/wrapper.type.js +1 -2
- package/dist/core/modules/ai/core-ai-mcp-oauth.initializer.d.ts +1 -1
- package/dist/core/modules/ai/core-ai-mcp-oauth.initializer.js +39 -42
- package/dist/core/modules/ai/core-ai-mcp-oauth.initializer.js.map +1 -1
- package/dist/core/modules/ai/core-ai-mcp.controller.d.ts +4 -4
- package/dist/core/modules/ai/core-ai-mcp.controller.js +47 -50
- package/dist/core/modules/ai/core-ai-mcp.controller.js.map +1 -1
- package/dist/core/modules/ai/core-ai.constants.d.ts +4 -0
- package/dist/core/modules/ai/core-ai.constants.js +26 -25
- package/dist/core/modules/ai/core-ai.constants.js.map +1 -1
- package/dist/core/modules/ai/core-ai.controller.d.ts +38 -38
- package/dist/core/modules/ai/core-ai.controller.js +223 -226
- package/dist/core/modules/ai/core-ai.controller.js.map +1 -1
- package/dist/core/modules/ai/core-ai.module.d.ts +19 -19
- package/dist/core/modules/ai/core-ai.module.js +143 -142
- package/dist/core/modules/ai/core-ai.module.js.map +1 -1
- package/dist/core/modules/ai/core-ai.resolver.d.ts +36 -36
- package/dist/core/modules/ai/core-ai.resolver.js +236 -239
- package/dist/core/modules/ai/core-ai.resolver.js.map +1 -1
- package/dist/core/modules/ai/helpers/ai-mcp-oauth-consent.helper.js +11 -17
- package/dist/core/modules/ai/helpers/ai-mcp-oauth-consent.helper.js.map +1 -1
- package/dist/core/modules/ai/helpers/ai-mcp-oauth.helper.d.ts +2 -2
- package/dist/core/modules/ai/helpers/ai-mcp-oauth.helper.js +13 -17
- package/dist/core/modules/ai/helpers/ai-mcp-oauth.helper.js.map +1 -1
- package/dist/core/modules/ai/helpers/ai-mcp-oauth.registry.js +2 -6
- package/dist/core/modules/ai/helpers/ai-mcp-oauth.registry.js.map +1 -1
- package/dist/core/modules/ai/hooks/ai-hook.base.d.ts +2 -2
- package/dist/core/modules/ai/hooks/ai-hook.base.js +7 -10
- package/dist/core/modules/ai/hooks/ai-hook.base.js.map +1 -1
- package/dist/core/modules/ai/hooks/ai-hook.registry.d.ts +3 -3
- package/dist/core/modules/ai/hooks/ai-hook.registry.js +5 -8
- package/dist/core/modules/ai/hooks/ai-hook.registry.js.map +1 -1
- package/dist/core/modules/ai/index.d.ts +71 -71
- package/dist/core/modules/ai/index.js +71 -87
- package/dist/core/modules/ai/index.js.map +1 -1
- package/dist/core/modules/ai/inputs/core-ai-budget-limit-create.input.d.ts +1 -1
- package/dist/core/modules/ai/inputs/core-ai-budget-limit-create.input.js +16 -19
- package/dist/core/modules/ai/inputs/core-ai-budget-limit-create.input.js.map +1 -1
- package/dist/core/modules/ai/inputs/core-ai-budget-limit.input.js +21 -24
- package/dist/core/modules/ai/inputs/core-ai-budget-limit.input.js.map +1 -1
- package/dist/core/modules/ai/inputs/core-ai-connection-create.input.d.ts +1 -1
- package/dist/core/modules/ai/inputs/core-ai-connection-create.input.js +16 -19
- package/dist/core/modules/ai/inputs/core-ai-connection-create.input.js.map +1 -1
- package/dist/core/modules/ai/inputs/core-ai-connection-preference.input.js +18 -21
- package/dist/core/modules/ai/inputs/core-ai-connection-preference.input.js.map +1 -1
- package/dist/core/modules/ai/inputs/core-ai-connection.input.js +52 -55
- package/dist/core/modules/ai/inputs/core-ai-connection.input.js.map +1 -1
- package/dist/core/modules/ai/inputs/core-ai-conversation-create.input.d.ts +1 -1
- package/dist/core/modules/ai/inputs/core-ai-conversation-create.input.js +9 -12
- package/dist/core/modules/ai/inputs/core-ai-conversation-create.input.js.map +1 -1
- package/dist/core/modules/ai/inputs/core-ai-conversation.input.js +12 -15
- package/dist/core/modules/ai/inputs/core-ai-conversation.input.js.map +1 -1
- package/dist/core/modules/ai/inputs/core-ai-prompt-create.input.d.ts +1 -1
- package/dist/core/modules/ai/inputs/core-ai-prompt-create.input.js +20 -23
- package/dist/core/modules/ai/inputs/core-ai-prompt-create.input.js.map +1 -1
- package/dist/core/modules/ai/inputs/core-ai-prompt-hint-create.input.d.ts +1 -1
- package/dist/core/modules/ai/inputs/core-ai-prompt-hint-create.input.js +14 -17
- package/dist/core/modules/ai/inputs/core-ai-prompt-hint-create.input.js.map +1 -1
- package/dist/core/modules/ai/inputs/core-ai-prompt-hint.input.js +18 -21
- package/dist/core/modules/ai/inputs/core-ai-prompt-hint.input.js.map +1 -1
- package/dist/core/modules/ai/inputs/core-ai-prompt-update.input.d.ts +1 -1
- package/dist/core/modules/ai/inputs/core-ai-prompt-update.input.js +19 -22
- package/dist/core/modules/ai/inputs/core-ai-prompt-update.input.js.map +1 -1
- package/dist/core/modules/ai/inputs/core-ai-prompt.input.js +37 -40
- package/dist/core/modules/ai/inputs/core-ai-prompt.input.js.map +1 -1
- package/dist/core/modules/ai/inputs/core-ai-slot-create.input.d.ts +1 -1
- package/dist/core/modules/ai/inputs/core-ai-slot-create.input.js +14 -17
- package/dist/core/modules/ai/inputs/core-ai-slot-create.input.js.map +1 -1
- package/dist/core/modules/ai/inputs/core-ai-slot-update.input.js +24 -27
- package/dist/core/modules/ai/inputs/core-ai-slot-update.input.js.map +1 -1
- package/dist/core/modules/ai/interfaces/ai-hook.interface.d.ts +3 -3
- package/dist/core/modules/ai/interfaces/ai-hook.interface.js +1 -2
- package/dist/core/modules/ai/interfaces/ai-interaction-record.interface.js +1 -2
- package/dist/core/modules/ai/interfaces/ai-placeholder.interface.d.ts +1 -1
- package/dist/core/modules/ai/interfaces/ai-placeholder.interface.js +1 -2
- package/dist/core/modules/ai/interfaces/ai-tool.interface.d.ts +2 -2
- package/dist/core/modules/ai/interfaces/ai-tool.interface.js +1 -2
- package/dist/core/modules/ai/interfaces/llm-provider.interface.js +1 -2
- package/dist/core/modules/ai/interfaces/resolved-ai-connection.interface.js +1 -2
- package/dist/core/modules/ai/models/core-ai-action.model.js +12 -15
- package/dist/core/modules/ai/models/core-ai-action.model.js.map +1 -1
- package/dist/core/modules/ai/models/core-ai-available-connection.model.js +13 -16
- package/dist/core/modules/ai/models/core-ai-available-connection.model.js.map +1 -1
- package/dist/core/modules/ai/models/core-ai-budget-limit.model.d.ts +3 -93
- package/dist/core/modules/ai/models/core-ai-budget-limit.model.js +24 -27
- package/dist/core/modules/ai/models/core-ai-budget-limit.model.js.map +1 -1
- package/dist/core/modules/ai/models/core-ai-connection-preference.model.d.ts +3 -88
- package/dist/core/modules/ai/models/core-ai-connection-preference.model.js +22 -25
- package/dist/core/modules/ai/models/core-ai-connection-preference.model.js.map +1 -1
- package/dist/core/modules/ai/models/core-ai-connection.model.d.ts +3 -178
- package/dist/core/modules/ai/models/core-ai-connection.model.js +56 -59
- package/dist/core/modules/ai/models/core-ai-connection.model.js.map +1 -1
- package/dist/core/modules/ai/models/core-ai-conversation.model.d.ts +4 -94
- package/dist/core/modules/ai/models/core-ai-conversation.model.js +30 -34
- package/dist/core/modules/ai/models/core-ai-conversation.model.js.map +1 -1
- package/dist/core/modules/ai/models/core-ai-interaction.model.d.ts +3 -121
- package/dist/core/modules/ai/models/core-ai-interaction.model.js +38 -42
- package/dist/core/modules/ai/models/core-ai-interaction.model.js.map +1 -1
- package/dist/core/modules/ai/models/core-ai-mcp-oauth.models.d.ts +3 -0
- package/dist/core/modules/ai/models/core-ai-mcp-oauth.models.js +21 -0
- package/dist/core/modules/ai/models/core-ai-mcp-oauth.models.js.map +1 -0
- package/dist/core/modules/ai/models/core-ai-message.model.js +10 -13
- package/dist/core/modules/ai/models/core-ai-message.model.js.map +1 -1
- package/dist/core/modules/ai/models/core-ai-mode.model.d.ts +3 -103
- package/dist/core/modules/ai/models/core-ai-mode.model.js +27 -30
- package/dist/core/modules/ai/models/core-ai-mode.model.js.map +1 -1
- package/dist/core/modules/ai/models/core-ai-prompt-hint.model.d.ts +3 -98
- package/dist/core/modules/ai/models/core-ai-prompt-hint.model.js +26 -29
- package/dist/core/modules/ai/models/core-ai-prompt-hint.model.js.map +1 -1
- package/dist/core/modules/ai/models/core-ai-prompt.model.d.ts +3 -113
- package/dist/core/modules/ai/models/core-ai-prompt.model.js +29 -32
- package/dist/core/modules/ai/models/core-ai-prompt.model.js.map +1 -1
- package/dist/core/modules/ai/models/core-ai-response.model.d.ts +3 -3
- package/dist/core/modules/ai/models/core-ai-response.model.js +28 -31
- package/dist/core/modules/ai/models/core-ai-response.model.js.map +1 -1
- package/dist/core/modules/ai/models/core-ai-slot.model.d.ts +3 -113
- package/dist/core/modules/ai/models/core-ai-slot.model.js +32 -35
- package/dist/core/modules/ai/models/core-ai-slot.model.js.map +1 -1
- package/dist/core/modules/ai/models/core-ai-tool-grant.model.d.ts +3 -98
- package/dist/core/modules/ai/models/core-ai-tool-grant.model.js +26 -29
- package/dist/core/modules/ai/models/core-ai-tool-grant.model.js.map +1 -1
- package/dist/core/modules/ai/models/core-ai-tool-policy.model.d.ts +3 -104
- package/dist/core/modules/ai/models/core-ai-tool-policy.model.js +36 -39
- package/dist/core/modules/ai/models/core-ai-tool-policy.model.js.map +1 -1
- package/dist/core/modules/ai/models/core-ai-usage-info.model.js +33 -36
- package/dist/core/modules/ai/models/core-ai-usage-info.model.js.map +1 -1
- package/dist/core/modules/ai/models/core-ai-usage.model.js +10 -13
- package/dist/core/modules/ai/models/core-ai-usage.model.js.map +1 -1
- package/dist/core/modules/ai/providers/claude-cli.provider.d.ts +2 -2
- package/dist/core/modules/ai/providers/claude-cli.provider.js +14 -18
- package/dist/core/modules/ai/providers/claude-cli.provider.js.map +1 -1
- package/dist/core/modules/ai/providers/llm-provider.factory.d.ts +2 -2
- package/dist/core/modules/ai/providers/llm-provider.factory.js +7 -10
- package/dist/core/modules/ai/providers/llm-provider.factory.js.map +1 -1
- package/dist/core/modules/ai/providers/openai-compatible.provider.d.ts +2 -2
- package/dist/core/modules/ai/providers/openai-compatible.provider.js +12 -16
- package/dist/core/modules/ai/providers/openai-compatible.provider.js.map +1 -1
- package/dist/core/modules/ai/services/ai-crypto.service.js +15 -18
- package/dist/core/modules/ai/services/ai-crypto.service.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-budget.service.d.ts +10 -8
- package/dist/core/modules/ai/services/core-ai-budget.service.js +33 -29
- package/dist/core/modules/ai/services/core-ai-budget.service.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-connection-preference.service.d.ts +6 -6
- package/dist/core/modules/ai/services/core-ai-connection-preference.service.js +16 -25
- package/dist/core/modules/ai/services/core-ai-connection-preference.service.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-connection-resolver.service.d.ts +5 -5
- package/dist/core/modules/ai/services/core-ai-connection-resolver.service.js +17 -20
- package/dist/core/modules/ai/services/core-ai-connection-resolver.service.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-connection.service.d.ts +12 -12
- package/dist/core/modules/ai/services/core-ai-connection.service.js +43 -70
- package/dist/core/modules/ai/services/core-ai-connection.service.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-conversation.service.d.ts +8 -8
- package/dist/core/modules/ai/services/core-ai-conversation.service.js +42 -48
- package/dist/core/modules/ai/services/core-ai-conversation.service.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-interaction.service.d.ts +6 -6
- package/dist/core/modules/ai/services/core-ai-interaction.service.js +13 -19
- package/dist/core/modules/ai/services/core-ai-interaction.service.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-mcp-client.service.d.ts +3 -3
- package/dist/core/modules/ai/services/core-ai-mcp-client.service.js +9 -12
- package/dist/core/modules/ai/services/core-ai-mcp-client.service.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-mcp-oauth.service.d.ts +36 -4
- package/dist/core/modules/ai/services/core-ai-mcp-oauth.service.js +112 -64
- package/dist/core/modules/ai/services/core-ai-mcp-oauth.service.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-mcp.service.d.ts +1 -1
- package/dist/core/modules/ai/services/core-ai-mcp.service.js +9 -12
- package/dist/core/modules/ai/services/core-ai-mcp.service.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-mode.service.d.ts +5 -5
- package/dist/core/modules/ai/services/core-ai-mode.service.js +14 -23
- package/dist/core/modules/ai/services/core-ai-mode.service.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-placeholder.registry.d.ts +2 -2
- package/dist/core/modules/ai/services/core-ai-placeholder.registry.js +9 -12
- package/dist/core/modules/ai/services/core-ai-placeholder.registry.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-prompt-builder.service.d.ts +5 -5
- package/dist/core/modules/ai/services/core-ai-prompt-builder.service.js +20 -23
- package/dist/core/modules/ai/services/core-ai-prompt-builder.service.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-prompt-hint.service.d.ts +14 -7
- package/dist/core/modules/ai/services/core-ai-prompt-hint.service.js +45 -44
- package/dist/core/modules/ai/services/core-ai-prompt-hint.service.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-prompt.service.d.ts +8 -8
- package/dist/core/modules/ai/services/core-ai-prompt.service.js +33 -41
- package/dist/core/modules/ai/services/core-ai-prompt.service.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-slot.service.d.ts +8 -8
- package/dist/core/modules/ai/services/core-ai-slot.service.js +36 -53
- package/dist/core/modules/ai/services/core-ai-slot.service.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-tool-grant.service.d.ts +5 -5
- package/dist/core/modules/ai/services/core-ai-tool-grant.service.js +17 -34
- package/dist/core/modules/ai/services/core-ai-tool-grant.service.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-tool-policy.service.d.ts +5 -5
- package/dist/core/modules/ai/services/core-ai-tool-policy.service.js +15 -24
- package/dist/core/modules/ai/services/core-ai-tool-policy.service.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai.service.d.ts +27 -27
- package/dist/core/modules/ai/services/core-ai.service.js +82 -85
- package/dist/core/modules/ai/services/core-ai.service.js.map +1 -1
- package/dist/core/modules/ai/tools/ai-tool.base.d.ts +3 -3
- package/dist/core/modules/ai/tools/ai-tool.base.js +7 -10
- package/dist/core/modules/ai/tools/ai-tool.base.js.map +1 -1
- package/dist/core/modules/ai/tools/ai-tool.registry.d.ts +1 -1
- package/dist/core/modules/ai/tools/ai-tool.registry.js +25 -28
- package/dist/core/modules/ai/tools/ai-tool.registry.js.map +1 -1
- package/dist/core/modules/ai/tools/ask-user-question.tool.d.ts +4 -4
- package/dist/core/modules/ai/tools/ask-user-question.tool.js +12 -15
- package/dist/core/modules/ai/tools/ask-user-question.tool.js.map +1 -1
- package/dist/core/modules/ai/tools/search-tools.tool.d.ts +4 -4
- package/dist/core/modules/ai/tools/search-tools.tool.js +10 -13
- package/dist/core/modules/ai/tools/search-tools.tool.js.map +1 -1
- package/dist/core/modules/api-token/core-api-token.constants.js +4 -7
- package/dist/core/modules/api-token/core-api-token.constants.js.map +1 -1
- package/dist/core/modules/api-token/core-api-token.decorators.js +3 -7
- package/dist/core/modules/api-token/core-api-token.decorators.js.map +1 -1
- package/dist/core/modules/api-token/core-api-token.helpers.d.ts +2 -2
- package/dist/core/modules/api-token/core-api-token.helpers.js +79 -109
- package/dist/core/modules/api-token/core-api-token.helpers.js.map +1 -1
- package/dist/core/modules/api-token/core-api-token.middleware.d.ts +1 -1
- package/dist/core/modules/api-token/core-api-token.middleware.js +15 -18
- package/dist/core/modules/api-token/core-api-token.middleware.js.map +1 -1
- package/dist/core/modules/api-token/core-api-token.model.d.ts +2 -2
- package/dist/core/modules/api-token/core-api-token.model.js +59 -62
- package/dist/core/modules/api-token/core-api-token.model.js.map +1 -1
- package/dist/core/modules/api-token/core-api-token.module.d.ts +2 -2
- package/dist/core/modules/api-token/core-api-token.module.js +16 -18
- package/dist/core/modules/api-token/core-api-token.module.js.map +1 -1
- package/dist/core/modules/api-token/core-api-token.registry.js +2 -6
- package/dist/core/modules/api-token/core-api-token.registry.js.map +1 -1
- package/dist/core/modules/api-token/core-api-token.service.d.ts +15 -9
- package/dist/core/modules/api-token/core-api-token.service.js +200 -138
- package/dist/core/modules/api-token/core-api-token.service.js.map +1 -1
- package/dist/core/modules/auth/auth-guard-strategy.enum.js +2 -5
- package/dist/core/modules/auth/auth-guard-strategy.enum.js.map +1 -1
- package/dist/core/modules/auth/core-auth.controller.d.ts +7 -7
- package/dist/core/modules/auth/core-auth.controller.js +71 -74
- package/dist/core/modules/auth/core-auth.controller.js.map +1 -1
- package/dist/core/modules/auth/core-auth.model.d.ts +2 -2
- package/dist/core/modules/auth/core-auth.model.js +19 -22
- package/dist/core/modules/auth/core-auth.model.js.map +1 -1
- package/dist/core/modules/auth/core-auth.module.d.ts +4 -4
- package/dist/core/modules/auth/core-auth.module.js +47 -48
- package/dist/core/modules/auth/core-auth.module.js.map +1 -1
- package/dist/core/modules/auth/core-auth.resolver.d.ts +7 -7
- package/dist/core/modules/auth/core-auth.resolver.js +54 -57
- package/dist/core/modules/auth/core-auth.resolver.js.map +1 -1
- package/dist/core/modules/auth/core-legacy-auth-deprecation.initializer.d.ts +2 -2
- package/dist/core/modules/auth/core-legacy-auth-deprecation.initializer.js +18 -16
- package/dist/core/modules/auth/core-legacy-auth-deprecation.initializer.js.map +1 -1
- package/dist/core/modules/auth/exceptions/expired-refresh-token.exception.js +2 -6
- package/dist/core/modules/auth/exceptions/expired-refresh-token.exception.js.map +1 -1
- package/dist/core/modules/auth/exceptions/expired-token.exception.js +2 -6
- package/dist/core/modules/auth/exceptions/expired-token.exception.js.map +1 -1
- package/dist/core/modules/auth/exceptions/invalid-token.exception.js +2 -6
- package/dist/core/modules/auth/exceptions/invalid-token.exception.js.map +1 -1
- package/dist/core/modules/auth/exceptions/legacy-auth-disabled.exception.js +2 -6
- package/dist/core/modules/auth/exceptions/legacy-auth-disabled.exception.js.map +1 -1
- package/dist/core/modules/auth/guards/auth.guard.d.ts +1 -1
- package/dist/core/modules/auth/guards/auth.guard.js +56 -46
- package/dist/core/modules/auth/guards/auth.guard.js.map +1 -1
- package/dist/core/modules/auth/guards/legacy-auth-rate-limit.guard.d.ts +1 -1
- package/dist/core/modules/auth/guards/legacy-auth-rate-limit.guard.js +12 -16
- package/dist/core/modules/auth/guards/legacy-auth-rate-limit.guard.js.map +1 -1
- package/dist/core/modules/auth/guards/refresh-token.guard.d.ts +1 -1
- package/dist/core/modules/auth/guards/refresh-token.guard.js +6 -9
- package/dist/core/modules/auth/guards/refresh-token.guard.js.map +1 -1
- package/dist/core/modules/auth/guards/role-guard.token.d.ts +1 -0
- package/dist/core/modules/auth/guards/role-guard.token.js +2 -0
- package/dist/core/modules/auth/guards/role-guard.token.js.map +1 -0
- package/dist/core/modules/auth/guards/roles-guard-registry.js +3 -7
- package/dist/core/modules/auth/guards/roles-guard-registry.js.map +1 -1
- package/dist/core/modules/auth/guards/roles.guard.d.ts +2 -2
- package/dist/core/modules/auth/guards/roles.guard.js +52 -55
- package/dist/core/modules/auth/guards/roles.guard.js.map +1 -1
- package/dist/core/modules/auth/helpers/legacy-endpoints.helper.d.ts +1 -1
- package/dist/core/modules/auth/helpers/legacy-endpoints.helper.js +1 -4
- package/dist/core/modules/auth/helpers/legacy-endpoints.helper.js.map +1 -1
- package/dist/core/modules/auth/inputs/core-auth-sign-in.input.d.ts +1 -1
- package/dist/core/modules/auth/inputs/core-auth-sign-in.input.js +23 -26
- package/dist/core/modules/auth/inputs/core-auth-sign-in.input.js.map +1 -1
- package/dist/core/modules/auth/inputs/core-auth-sign-up.input.d.ts +1 -1
- package/dist/core/modules/auth/inputs/core-auth-sign-up.input.js +9 -12
- package/dist/core/modules/auth/inputs/core-auth-sign-up.input.js.map +1 -1
- package/dist/core/modules/auth/interfaces/auth-provider.interface.d.ts +1 -1
- package/dist/core/modules/auth/interfaces/auth-provider.interface.js +1 -4
- package/dist/core/modules/auth/interfaces/auth-provider.interface.js.map +1 -1
- package/dist/core/modules/auth/interfaces/core-auth-user.interface.d.ts +1 -1
- package/dist/core/modules/auth/interfaces/core-auth-user.interface.js +1 -2
- package/dist/core/modules/auth/interfaces/core-token-data.interface.js +1 -2
- package/dist/core/modules/auth/interfaces/jwt-payload.interface.js +1 -2
- package/dist/core/modules/auth/services/core-auth-user.service.d.ts +2 -2
- package/dist/core/modules/auth/services/core-auth-user.service.js +1 -5
- package/dist/core/modules/auth/services/core-auth-user.service.js.map +1 -1
- package/dist/core/modules/auth/services/core-auth.service.d.ts +10 -10
- package/dist/core/modules/auth/services/core-auth.service.js +54 -55
- package/dist/core/modules/auth/services/core-auth.service.js.map +1 -1
- package/dist/core/modules/auth/services/legacy-auth-rate-limiter.service.d.ts +3 -3
- package/dist/core/modules/auth/services/legacy-auth-rate-limiter.service.js +15 -18
- package/dist/core/modules/auth/services/legacy-auth-rate-limiter.service.js.map +1 -1
- package/dist/core/modules/auth/strategies/jwt-refresh.strategy.d.ts +2 -2
- package/dist/core/modules/auth/strategies/jwt-refresh.strategy.js +15 -18
- package/dist/core/modules/auth/strategies/jwt-refresh.strategy.js.map +1 -1
- package/dist/core/modules/auth/strategies/jwt.strategy.d.ts +3 -3
- package/dist/core/modules/auth/strategies/jwt.strategy.js +15 -18
- package/dist/core/modules/auth/strategies/jwt.strategy.js.map +1 -1
- package/dist/core/modules/auth/tokens.decorator.d.ts +1 -1
- package/dist/core/modules/auth/tokens.decorator.js +4 -7
- package/dist/core/modules/auth/tokens.decorator.js.map +1 -1
- package/dist/core/modules/better-auth/better-auth-cookie-prefix.helper.js +3 -8
- package/dist/core/modules/better-auth/better-auth-cookie-prefix.helper.js.map +1 -1
- package/dist/core/modules/better-auth/better-auth-roles.guard.js +30 -33
- package/dist/core/modules/better-auth/better-auth-roles.guard.js.map +1 -1
- package/dist/core/modules/better-auth/better-auth-sql.helper.d.ts +6 -0
- package/dist/core/modules/better-auth/better-auth-sql.helper.js +113 -0
- package/dist/core/modules/better-auth/better-auth-sql.helper.js.map +1 -0
- package/dist/core/modules/better-auth/better-auth-token.service.d.ts +5 -3
- package/dist/core/modules/better-auth/better-auth-token.service.js +25 -38
- package/dist/core/modules/better-auth/better-auth-token.service.js.map +1 -1
- package/dist/core/modules/better-auth/better-auth.config.d.ts +10 -2
- package/dist/core/modules/better-auth/better-auth.config.js +97 -60
- package/dist/core/modules/better-auth/better-auth.config.js.map +1 -1
- package/dist/core/modules/better-auth/better-auth.resolver.d.ts +7 -7
- package/dist/core/modules/better-auth/better-auth.resolver.js +69 -72
- package/dist/core/modules/better-auth/better-auth.resolver.js.map +1 -1
- package/dist/core/modules/better-auth/better-auth.types.d.ts +2 -2
- package/dist/core/modules/better-auth/better-auth.types.js +5 -12
- package/dist/core/modules/better-auth/better-auth.types.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth-account-issuer.helper.js +3 -7
- package/dist/core/modules/better-auth/core-better-auth-account-issuer.helper.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth-api.middleware.d.ts +11 -3
- package/dist/core/modules/better-auth/core-better-auth-api.middleware.js +79 -40
- package/dist/core/modules/better-auth/core-better-auth-api.middleware.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth-auth.model.d.ts +1 -1
- package/dist/core/modules/better-auth/core-better-auth-auth.model.js +17 -20
- package/dist/core/modules/better-auth/core-better-auth-auth.model.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth-challenge.service.d.ts +2 -2
- package/dist/core/modules/better-auth/core-better-auth-challenge.service.js +41 -31
- package/dist/core/modules/better-auth/core-better-auth-challenge.service.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth-cookie.helper.js +15 -20
- package/dist/core/modules/better-auth/core-better-auth-cookie.helper.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth-email-verification.service.d.ts +8 -8
- package/dist/core/modules/better-auth/core-better-auth-email-verification.service.js +39 -37
- package/dist/core/modules/better-auth/core-better-auth-email-verification.service.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth-error-codes.helper.js +13 -17
- package/dist/core/modules/better-auth/core-better-auth-error-codes.helper.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth-migration-status.model.js +12 -15
- package/dist/core/modules/better-auth/core-better-auth-migration-status.model.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth-models.js +62 -65
- package/dist/core/modules/better-auth/core-better-auth-models.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth-mongo.users.d.ts +10 -0
- package/dist/core/modules/better-auth/core-better-auth-mongo.users.js +24 -0
- package/dist/core/modules/better-auth/core-better-auth-mongo.users.js.map +1 -0
- package/dist/core/modules/better-auth/core-better-auth-openapi.helper.d.ts +1 -1
- package/dist/core/modules/better-auth/core-better-auth-openapi.helper.js +15 -25
- package/dist/core/modules/better-auth/core-better-auth-openapi.helper.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth-password-reset.registry.js +4 -8
- package/dist/core/modules/better-auth/core-better-auth-password-reset.registry.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth-rate-limit.middleware.d.ts +2 -2
- package/dist/core/modules/better-auth/core-better-auth-rate-limit.middleware.js +11 -14
- package/dist/core/modules/better-auth/core-better-auth-rate-limit.middleware.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth-rate-limiter.service.d.ts +3 -3
- package/dist/core/modules/better-auth/core-better-auth-rate-limiter.service.js +13 -16
- package/dist/core/modules/better-auth/core-better-auth-rate-limiter.service.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth-signup-validator.service.d.ts +2 -2
- package/dist/core/modules/better-auth/core-better-auth-signup-validator.service.js +10 -13
- package/dist/core/modules/better-auth/core-better-auth-signup-validator.service.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth-sql.registry.d.ts +3 -0
- package/dist/core/modules/better-auth/core-better-auth-sql.registry.js +8 -0
- package/dist/core/modules/better-auth/core-better-auth-sql.registry.js.map +1 -0
- package/dist/core/modules/better-auth/core-better-auth-sql.store.d.ts +71 -0
- package/dist/core/modules/better-auth/core-better-auth-sql.store.js +190 -0
- package/dist/core/modules/better-auth/core-better-auth-sql.store.js.map +1 -0
- package/dist/core/modules/better-auth/core-better-auth-token.helper.js +9 -19
- package/dist/core/modules/better-auth/core-better-auth-token.helper.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth-user.mapper.d.ts +25 -2
- package/dist/core/modules/better-auth/core-better-auth-user.mapper.js +344 -63
- package/dist/core/modules/better-auth/core-better-auth-user.mapper.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth-web.helper.js +23 -34
- package/dist/core/modules/better-auth/core-better-auth-web.helper.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth.constants.js +8 -11
- package/dist/core/modules/better-auth/core-better-auth.constants.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth.controller.d.ts +7 -7
- package/dist/core/modules/better-auth/core-better-auth.controller.js +151 -157
- package/dist/core/modules/better-auth/core-better-auth.controller.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth.middleware.d.ts +2 -2
- package/dist/core/modules/better-auth/core-better-auth.middleware.js +17 -20
- package/dist/core/modules/better-auth/core-better-auth.middleware.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth.module.d.ts +12 -10
- package/dist/core/modules/better-auth/core-better-auth.module.js +190 -172
- package/dist/core/modules/better-auth/core-better-auth.module.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth.registry.d.ts +5 -1
- package/dist/core/modules/better-auth/core-better-auth.registry.js +18 -8
- package/dist/core/modules/better-auth/core-better-auth.registry.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth.resolver.d.ts +7 -7
- package/dist/core/modules/better-auth/core-better-auth.resolver.js +127 -128
- package/dist/core/modules/better-auth/core-better-auth.resolver.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth.service.d.ts +14 -9
- package/dist/core/modules/better-auth/core-better-auth.service.js +127 -81
- package/dist/core/modules/better-auth/core-better-auth.service.js.map +1 -1
- package/dist/core/modules/better-auth/index.d.ts +24 -24
- package/dist/core/modules/better-auth/index.js +24 -40
- package/dist/core/modules/better-auth/index.js.map +1 -1
- package/dist/core/modules/error-code/core-error-code.controller.d.ts +2 -2
- package/dist/core/modules/error-code/core-error-code.controller.js +12 -15
- package/dist/core/modules/error-code/core-error-code.controller.js.map +1 -1
- package/dist/core/modules/error-code/core-error-code.service.d.ts +2 -2
- package/dist/core/modules/error-code/core-error-code.service.js +6 -9
- package/dist/core/modules/error-code/core-error-code.service.js.map +1 -1
- package/dist/core/modules/error-code/error-code.module.d.ts +1 -1
- package/dist/core/modules/error-code/error-code.module.js +16 -19
- package/dist/core/modules/error-code/error-code.module.js.map +1 -1
- package/dist/core/modules/error-code/error-codes.js +6 -11
- package/dist/core/modules/error-code/error-codes.js.map +1 -1
- package/dist/core/modules/error-code/index.d.ts +5 -5
- package/dist/core/modules/error-code/index.js +5 -21
- package/dist/core/modules/error-code/index.js.map +1 -1
- package/dist/core/modules/error-code/interfaces/error-code.interfaces.d.ts +2 -2
- package/dist/core/modules/error-code/interfaces/error-code.interfaces.js +1 -2
- package/dist/core/modules/file/core-file-access-audit.initializer.d.ts +1 -1
- package/dist/core/modules/file/core-file-access-audit.initializer.js +20 -23
- package/dist/core/modules/file/core-file-access-audit.initializer.js.map +1 -1
- package/dist/core/modules/file/core-file-info.model.d.ts +2 -3
- package/dist/core/modules/file/core-file-info.model.js +25 -28
- package/dist/core/modules/file/core-file-info.model.js.map +1 -1
- package/dist/core/modules/file/core-file.controller.d.ts +3 -3
- package/dist/core/modules/file/core-file.controller.js +35 -39
- package/dist/core/modules/file/core-file.controller.js.map +1 -1
- package/dist/core/modules/file/core-file.resolver.d.ts +2 -2
- package/dist/core/modules/file/core-file.resolver.js +30 -33
- package/dist/core/modules/file/core-file.resolver.js.map +1 -1
- package/dist/core/modules/file/core-file.service.d.ts +15 -13
- package/dist/core/modules/file/core-file.service.js +94 -91
- package/dist/core/modules/file/core-file.service.js.map +1 -1
- package/dist/core/modules/file/file-access.helper.js +5 -10
- package/dist/core/modules/file/file-access.helper.js.map +1 -1
- package/dist/core/modules/file/file-metadata.helper.d.ts +1 -1
- package/dist/core/modules/file/file-metadata.helper.js +6 -12
- package/dist/core/modules/file/file-metadata.helper.js.map +1 -1
- package/dist/core/modules/file/file-metadata.models.d.ts +35 -0
- package/dist/core/modules/file/file-metadata.models.js +20 -0
- package/dist/core/modules/file/file-metadata.models.js.map +1 -0
- package/dist/core/modules/file/file-metadata.store.d.ts +6 -0
- package/dist/core/modules/file/file-metadata.store.js +77 -0
- package/dist/core/modules/file/file-metadata.store.js.map +1 -0
- package/dist/core/modules/file/file-roles.config.d.ts +1 -1
- package/dist/core/modules/file/file-roles.config.js +19 -27
- package/dist/core/modules/file/file-roles.config.js.map +1 -1
- package/dist/core/modules/file/file-roles.helper.d.ts +3 -3
- package/dist/core/modules/file/file-roles.helper.js +11 -21
- package/dist/core/modules/file/file-roles.helper.js.map +1 -1
- package/dist/core/modules/file/file-storage.helper.d.ts +2 -1
- package/dist/core/modules/file/file-storage.helper.js +44 -18
- package/dist/core/modules/file/file-storage.helper.js.map +1 -1
- package/dist/core/modules/file/filesystem-file.helper.d.ts +2 -2
- package/dist/core/modules/file/filesystem-file.helper.js +26 -30
- package/dist/core/modules/file/filesystem-file.helper.js.map +1 -1
- package/dist/core/modules/file/interfaces/file-service-options.interface.js +1 -2
- package/dist/core/modules/file/interfaces/file-upload.interface.d.ts +1 -1
- package/dist/core/modules/file/interfaces/file-upload.interface.js +1 -2
- package/dist/core/modules/file/s3-file.helper.d.ts +3 -3
- package/dist/core/modules/file/s3-file.helper.js +14 -20
- package/dist/core/modules/file/s3-file.helper.js.map +1 -1
- package/dist/core/modules/health-check/core-health-check-result.model.d.ts +2 -2
- package/dist/core/modules/health-check/core-health-check-result.model.js +25 -28
- package/dist/core/modules/health-check/core-health-check-result.model.js.map +1 -1
- package/dist/core/modules/health-check/core-health-check.controller.d.ts +1 -1
- package/dist/core/modules/health-check/core-health-check.controller.js +11 -14
- package/dist/core/modules/health-check/core-health-check.controller.js.map +1 -1
- package/dist/core/modules/health-check/core-health-check.module.js +21 -14
- package/dist/core/modules/health-check/core-health-check.module.js.map +1 -1
- package/dist/core/modules/health-check/core-health-check.resolver.d.ts +1 -1
- package/dist/core/modules/health-check/core-health-check.resolver.js +12 -15
- package/dist/core/modules/health-check/core-health-check.resolver.js.map +1 -1
- package/dist/core/modules/health-check/core-health-check.service.d.ts +5 -4
- package/dist/core/modules/health-check/core-health-check.service.js +40 -18
- package/dist/core/modules/health-check/core-health-check.service.js.map +1 -1
- package/dist/core/modules/hub/core-hub-actions.controller.d.ts +1 -1
- package/dist/core/modules/hub/core-hub-actions.controller.js +36 -39
- package/dist/core/modules/hub/core-hub-actions.controller.js.map +1 -1
- package/dist/core/modules/hub/core-hub-html.service.d.ts +1 -1
- package/dist/core/modules/hub/core-hub-html.service.js +15 -18
- package/dist/core/modules/hub/core-hub-html.service.js.map +1 -1
- package/dist/core/modules/hub/core-hub.controller.d.ts +12 -11
- package/dist/core/modules/hub/core-hub.controller.js +110 -103
- package/dist/core/modules/hub/core-hub.controller.js.map +1 -1
- package/dist/core/modules/hub/core-hub.module.d.ts +2 -2
- package/dist/core/modules/hub/core-hub.module.js +53 -56
- package/dist/core/modules/hub/core-hub.module.js.map +1 -1
- package/dist/core/modules/hub/core-hub.service.d.ts +5 -5
- package/dist/core/modules/hub/core-hub.service.js +20 -25
- package/dist/core/modules/hub/core-hub.service.js.map +1 -1
- package/dist/core/modules/hub/helpers/hub-client-js.helper.js +24 -4
- package/dist/core/modules/hub/helpers/hub-client-js.helper.js.map +1 -1
- package/dist/core/modules/hub/helpers/hub-command-shape.helper.js +1 -4
- package/dist/core/modules/hub/helpers/hub-command-shape.helper.js.map +1 -1
- package/dist/core/modules/hub/helpers/hub-mask.helper.js +1 -4
- package/dist/core/modules/hub/helpers/hub-mask.helper.js.map +1 -1
- package/dist/core/modules/hub/helpers/hub-mermaid.helper.js +1 -4
- package/dist/core/modules/hub/helpers/hub-mermaid.helper.js.map +1 -1
- package/dist/core/modules/hub/helpers/hub-shell.helper.js +10 -19
- package/dist/core/modules/hub/helpers/hub-shell.helper.js.map +1 -1
- package/dist/core/modules/hub/hub-action-messages.d.ts +2 -0
- package/dist/core/modules/hub/hub-action-messages.js +3 -4
- package/dist/core/modules/hub/hub-action-messages.js.map +1 -1
- package/dist/core/modules/hub/hub-buffer.d.ts +2 -2
- package/dist/core/modules/hub/hub-buffer.js +3 -7
- package/dist/core/modules/hub/hub-buffer.js.map +1 -1
- package/dist/core/modules/hub/hub-config.helper.d.ts +1 -1
- package/dist/core/modules/hub/hub-config.helper.js +23 -29
- package/dist/core/modules/hub/hub-config.helper.js.map +1 -1
- package/dist/core/modules/hub/hub-nav.js +5 -8
- package/dist/core/modules/hub/hub-nav.js.map +1 -1
- package/dist/core/modules/hub/hub-ring-buffer.js +1 -5
- package/dist/core/modules/hub/hub-ring-buffer.js.map +1 -1
- package/dist/core/modules/hub/hub.constants.js +18 -21
- package/dist/core/modules/hub/hub.constants.js.map +1 -1
- package/dist/core/modules/hub/index.d.ts +25 -25
- package/dist/core/modules/hub/index.js +25 -41
- package/dist/core/modules/hub/index.js.map +1 -1
- package/dist/core/modules/hub/interfaces/hub-config.interface.js +1 -2
- package/dist/core/modules/hub/interfaces/hub-panels.interface.d.ts +17 -1
- package/dist/core/modules/hub/interfaces/hub-panels.interface.js +1 -2
- package/dist/core/modules/hub/middleware/hub-trace.middleware.d.ts +1 -1
- package/dist/core/modules/hub/middleware/hub-trace.middleware.js +6 -9
- package/dist/core/modules/hub/middleware/hub-trace.middleware.js.map +1 -1
- package/dist/core/modules/hub/services/core-hub-actions.service.d.ts +10 -10
- package/dist/core/modules/hub/services/core-hub-actions.service.js +30 -33
- package/dist/core/modules/hub/services/core-hub-actions.service.js.map +1 -1
- package/dist/core/modules/hub/services/core-hub-db.service.d.ts +10 -5
- package/dist/core/modules/hub/services/core-hub-db.service.js +44 -46
- package/dist/core/modules/hub/services/core-hub-db.service.js.map +1 -1
- package/dist/core/modules/hub/services/core-hub-email.service.d.ts +4 -4
- package/dist/core/modules/hub/services/core-hub-email.service.js +20 -22
- package/dist/core/modules/hub/services/core-hub-email.service.js.map +1 -1
- package/dist/core/modules/hub/services/core-hub-mailbox.service.d.ts +4 -4
- package/dist/core/modules/hub/services/core-hub-mailbox.service.js +13 -16
- package/dist/core/modules/hub/services/core-hub-mailbox.service.js.map +1 -1
- package/dist/core/modules/hub/services/core-hub-migrations.service.d.ts +10 -5
- package/dist/core/modules/hub/services/core-hub-migrations.service.js +98 -30
- package/dist/core/modules/hub/services/core-hub-migrations.service.js.map +1 -1
- package/dist/core/modules/hub/services/core-hub-sources.service.d.ts +2 -1
- package/dist/core/modules/hub/services/core-hub-sources.service.js +58 -27
- package/dist/core/modules/hub/services/core-hub-sources.service.js.map +1 -1
- package/dist/core/modules/hub/services/hub-log-buffer.service.d.ts +3 -3
- package/dist/core/modules/hub/services/hub-log-buffer.service.js +20 -23
- package/dist/core/modules/hub/services/hub-log-buffer.service.js.map +1 -1
- package/dist/core/modules/hub/services/hub-query-profiler.service.d.ts +4 -4
- package/dist/core/modules/hub/services/hub-query-profiler.service.js +20 -25
- package/dist/core/modules/hub/services/hub-query-profiler.service.js.map +1 -1
- package/dist/core/modules/hub/services/hub-trace-buffer.service.d.ts +3 -3
- package/dist/core/modules/hub/services/hub-trace-buffer.service.js +11 -14
- package/dist/core/modules/hub/services/hub-trace-buffer.service.js.map +1 -1
- package/dist/core/modules/migrate/cli/migrate-cli.d.ts +6 -1
- package/dist/core/modules/migrate/cli/migrate-cli.js +73 -19
- package/dist/core/modules/migrate/cli/migrate-cli.js.map +1 -1
- package/dist/core/modules/migrate/helpers/migration.helper.d.ts +1 -11
- package/dist/core/modules/migrate/helpers/migration.helper.js +14 -108
- package/dist/core/modules/migrate/helpers/migration.helper.js.map +1 -1
- package/dist/core/modules/migrate/helpers/package.json +3 -0
- package/dist/core/modules/migrate/helpers/ts-compiler-hooks.d.mts +2 -0
- package/dist/core/modules/migrate/helpers/ts-compiler-hooks.mjs +73 -0
- package/dist/core/modules/migrate/helpers/ts-compiler-hooks.mjs.map +1 -0
- package/dist/core/modules/migrate/helpers/ts-compiler.cjs +96 -0
- package/dist/core/modules/migrate/helpers/ts-compiler.cjs.map +1 -0
- package/dist/core/modules/migrate/helpers/ts-compiler.d.cts +32 -0
- package/dist/core/modules/migrate/helpers/ts-compiler.d.ts +1 -1
- package/dist/core/modules/migrate/helpers/ts-compiler.js +2 -2
- package/dist/core/modules/migrate/helpers/ts-compiler.js.map +1 -1
- package/dist/core/modules/migrate/index.d.ts +7 -4
- package/dist/core/modules/migrate/index.js +7 -20
- package/dist/core/modules/migrate/index.js.map +1 -1
- package/dist/core/modules/migrate/migration-runner.d.ts +2 -2
- package/dist/core/modules/migrate/migration-runner.js +13 -19
- package/dist/core/modules/migrate/migration-runner.js.map +1 -1
- package/dist/core/modules/migrate/migration-state-store.interface.d.ts +16 -0
- package/dist/core/modules/migrate/migration-state-store.interface.js +2 -0
- package/dist/core/modules/migrate/migration-state-store.interface.js.map +1 -0
- package/dist/core/modules/migrate/migration.helper.d.ts +12 -0
- package/dist/core/modules/migrate/migration.helper.js +131 -0
- package/dist/core/modules/migrate/migration.helper.js.map +1 -0
- package/dist/core/modules/migrate/mongo-state-store.d.ts +5 -12
- package/dist/core/modules/migrate/mongo-state-store.js +40 -41
- package/dist/core/modules/migrate/mongo-state-store.js.map +1 -1
- package/dist/core/modules/migrate/sql-migration.helper.d.ts +4 -0
- package/dist/core/modules/migrate/sql-migration.helper.js +34 -0
- package/dist/core/modules/migrate/sql-migration.helper.js.map +1 -0
- package/dist/core/modules/migrate/sql-state-store.d.ts +24 -0
- package/dist/core/modules/migrate/sql-state-store.js +129 -0
- package/dist/core/modules/migrate/sql-state-store.js.map +1 -0
- package/dist/core/modules/migrate/templates/migration-project.template.ts +29 -12
- package/dist/core/modules/permissions/core-permissions.controller.d.ts +2 -2
- package/dist/core/modules/permissions/core-permissions.controller.js +13 -16
- package/dist/core/modules/permissions/core-permissions.controller.js.map +1 -1
- package/dist/core/modules/permissions/core-permissions.module.d.ts +1 -1
- package/dist/core/modules/permissions/core-permissions.module.js +14 -17
- package/dist/core/modules/permissions/core-permissions.module.js.map +1 -1
- package/dist/core/modules/permissions/core-permissions.service.d.ts +1 -1
- package/dist/core/modules/permissions/core-permissions.service.js +17 -20
- package/dist/core/modules/permissions/core-permissions.service.js.map +1 -1
- package/dist/core/modules/permissions/interfaces/permissions.interface.js +1 -2
- package/dist/core/modules/permissions/permissions-scanner.d.ts +1 -1
- package/dist/core/modules/permissions/permissions-scanner.js +62 -84
- package/dist/core/modules/permissions/permissions-scanner.js.map +1 -1
- package/dist/core/modules/system-setup/core-system-setup.controller.d.ts +1 -1
- package/dist/core/modules/system-setup/core-system-setup.controller.js +34 -38
- package/dist/core/modules/system-setup/core-system-setup.controller.js.map +1 -1
- package/dist/core/modules/system-setup/core-system-setup.module.js +8 -11
- package/dist/core/modules/system-setup/core-system-setup.module.js.map +1 -1
- package/dist/core/modules/system-setup/core-system-setup.service.d.ts +12 -4
- package/dist/core/modules/system-setup/core-system-setup.service.js +66 -55
- package/dist/core/modules/system-setup/core-system-setup.service.js.map +1 -1
- package/dist/core/modules/tenant/core-role-scope.registry.js +12 -16
- package/dist/core/modules/tenant/core-role-scope.registry.js.map +1 -1
- package/dist/core/modules/tenant/core-tenant-guard.registry.js +2 -6
- package/dist/core/modules/tenant/core-tenant-guard.registry.js.map +1 -1
- package/dist/core/modules/tenant/core-tenant-member.model.d.ts +2 -2
- package/dist/core/modules/tenant/core-tenant-member.model.js +34 -37
- package/dist/core/modules/tenant/core-tenant-member.model.js.map +1 -1
- package/dist/core/modules/tenant/core-tenant-member.store.d.ts +2 -0
- package/dist/core/modules/tenant/core-tenant-member.store.js +6 -0
- package/dist/core/modules/tenant/core-tenant-member.store.js.map +1 -0
- package/dist/core/modules/tenant/core-tenant-role.helper.js +13 -17
- package/dist/core/modules/tenant/core-tenant-role.helper.js.map +1 -1
- package/dist/core/modules/tenant/core-tenant.decorators.js +6 -10
- package/dist/core/modules/tenant/core-tenant.decorators.js.map +1 -1
- package/dist/core/modules/tenant/core-tenant.enums.js +6 -10
- package/dist/core/modules/tenant/core-tenant.enums.js.map +1 -1
- package/dist/core/modules/tenant/core-tenant.guard.d.ts +11 -6
- package/dist/core/modules/tenant/core-tenant.guard.js +129 -119
- package/dist/core/modules/tenant/core-tenant.guard.js.map +1 -1
- package/dist/core/modules/tenant/core-tenant.helpers.d.ts +2 -2
- package/dist/core/modules/tenant/core-tenant.helpers.js +33 -53
- package/dist/core/modules/tenant/core-tenant.helpers.js.map +1 -1
- package/dist/core/modules/tenant/core-tenant.module.d.ts +2 -2
- package/dist/core/modules/tenant/core-tenant.module.js +32 -34
- package/dist/core/modules/tenant/core-tenant.module.js.map +1 -1
- package/dist/core/modules/tenant/core-tenant.service.d.ts +5 -3
- package/dist/core/modules/tenant/core-tenant.service.js +89 -73
- package/dist/core/modules/tenant/core-tenant.service.js.map +1 -1
- package/dist/core/modules/tus/core-tus.controller.d.ts +2 -2
- package/dist/core/modules/tus/core-tus.controller.js +31 -34
- package/dist/core/modules/tus/core-tus.controller.js.map +1 -1
- package/dist/core/modules/tus/core-tus.service.d.ts +5 -5
- package/dist/core/modules/tus/core-tus.service.js +59 -61
- package/dist/core/modules/tus/core-tus.service.js.map +1 -1
- package/dist/core/modules/tus/index.d.ts +5 -5
- package/dist/core/modules/tus/index.js +5 -21
- package/dist/core/modules/tus/index.js.map +1 -1
- package/dist/core/modules/tus/interfaces/tus-config.interface.d.ts +2 -2
- package/dist/core/modules/tus/interfaces/tus-config.interface.js +10 -15
- package/dist/core/modules/tus/interfaces/tus-config.interface.js.map +1 -1
- package/dist/core/modules/tus/tus-redis-locker.d.ts +1 -1
- package/dist/core/modules/tus/tus-redis-locker.js +6 -11
- package/dist/core/modules/tus/tus-redis-locker.js.map +1 -1
- package/dist/core/modules/tus/tus.constants.js +4 -7
- package/dist/core/modules/tus/tus.constants.js.map +1 -1
- package/dist/core/modules/tus/tus.module.d.ts +4 -4
- package/dist/core/modules/tus/tus.module.js +39 -43
- package/dist/core/modules/tus/tus.module.js.map +1 -1
- package/dist/core/modules/user/core-user.model.d.ts +3 -3
- package/dist/core/modules/user/core-user.model.js +50 -53
- package/dist/core/modules/user/core-user.model.js.map +1 -1
- package/dist/core/modules/user/core-user.service.d.ts +12 -10
- package/dist/core/modules/user/core-user.service.js +123 -72
- package/dist/core/modules/user/core-user.service.js.map +1 -1
- package/dist/core/modules/user/inputs/core-user-create.input.d.ts +1 -1
- package/dist/core/modules/user/inputs/core-user-create.input.js +14 -17
- package/dist/core/modules/user/inputs/core-user-create.input.js.map +1 -1
- package/dist/core/modules/user/inputs/core-user.input.d.ts +1 -1
- package/dist/core/modules/user/inputs/core-user.input.js +28 -31
- package/dist/core/modules/user/inputs/core-user.input.js.map +1 -1
- package/dist/core/modules/user/interfaces/core-user-service-options.interface.d.ts +1 -1
- package/dist/core/modules/user/interfaces/core-user-service-options.interface.js +1 -2
- package/dist/core.module.d.ts +1 -1
- package/dist/core.module.js +178 -219
- package/dist/core.module.js.map +1 -1
- package/dist/index.d.ts +230 -203
- package/dist/index.js +230 -219
- package/dist/index.js.map +1 -1
- package/dist/main.js +40 -42
- package/dist/main.js.map +1 -1
- package/dist/server/common/models/persistence.model.d.ts +2 -2
- package/dist/server/common/models/persistence.model.js +23 -26
- package/dist/server/common/models/persistence.model.js.map +1 -1
- package/dist/server/common/services/cron-jobs.service.d.ts +5 -3
- package/dist/server/common/services/cron-jobs.service.js +14 -18
- package/dist/server/common/services/cron-jobs.service.js.map +1 -1
- package/dist/server/modules/ai/ai-tools.module.d.ts +1 -1
- package/dist/server/modules/ai/ai-tools.module.js +15 -18
- package/dist/server/modules/ai/ai-tools.module.js.map +1 -1
- package/dist/server/modules/ai/tools/delete-user.tool.d.ts +5 -5
- package/dist/server/modules/ai/tools/delete-user.tool.js +13 -16
- package/dist/server/modules/ai/tools/delete-user.tool.js.map +1 -1
- package/dist/server/modules/ai/tools/find-users.tool.d.ts +6 -6
- package/dist/server/modules/ai/tools/find-users.tool.js +12 -15
- package/dist/server/modules/ai/tools/find-users.tool.js.map +1 -1
- package/dist/server/modules/ai/tools/get-user.tool.d.ts +6 -6
- package/dist/server/modules/ai/tools/get-user.tool.js +13 -16
- package/dist/server/modules/ai/tools/get-user.tool.js.map +1 -1
- package/dist/server/modules/ai/tools/update-user-job-title.tool.d.ts +6 -6
- package/dist/server/modules/ai/tools/update-user-job-title.tool.js +16 -19
- package/dist/server/modules/ai/tools/update-user-job-title.tool.js.map +1 -1
- package/dist/server/modules/auth/auth.controller.d.ts +3 -3
- package/dist/server/modules/auth/auth.controller.js +13 -16
- package/dist/server/modules/auth/auth.controller.js.map +1 -1
- package/dist/server/modules/auth/auth.model.d.ts +2 -2
- package/dist/server/modules/auth/auth.model.js +17 -20
- package/dist/server/modules/auth/auth.model.js.map +1 -1
- package/dist/server/modules/auth/auth.module.js +15 -18
- package/dist/server/modules/auth/auth.module.js.map +1 -1
- package/dist/server/modules/auth/auth.resolver.d.ts +7 -7
- package/dist/server/modules/auth/auth.resolver.js +30 -33
- package/dist/server/modules/auth/auth.resolver.js.map +1 -1
- package/dist/server/modules/auth/auth.service.d.ts +8 -8
- package/dist/server/modules/auth/auth.service.js +17 -20
- package/dist/server/modules/auth/auth.service.js.map +1 -1
- package/dist/server/modules/auth/inputs/auth-sign-in.input.d.ts +1 -1
- package/dist/server/modules/auth/inputs/auth-sign-in.input.js +9 -12
- package/dist/server/modules/auth/inputs/auth-sign-in.input.js.map +1 -1
- package/dist/server/modules/auth/inputs/auth-sign-up.input.d.ts +1 -1
- package/dist/server/modules/auth/inputs/auth-sign-up.input.js +14 -17
- package/dist/server/modules/auth/inputs/auth-sign-up.input.js.map +1 -1
- package/dist/server/modules/better-auth/better-auth.controller.d.ts +6 -6
- package/dist/server/modules/better-auth/better-auth.controller.js +21 -24
- package/dist/server/modules/better-auth/better-auth.controller.js.map +1 -1
- package/dist/server/modules/better-auth/better-auth.module.d.ts +1 -1
- package/dist/server/modules/better-auth/better-auth.module.js +11 -14
- package/dist/server/modules/better-auth/better-auth.module.js.map +1 -1
- package/dist/server/modules/better-auth/better-auth.resolver.d.ts +8 -8
- package/dist/server/modules/better-auth/better-auth.resolver.js +75 -78
- package/dist/server/modules/better-auth/better-auth.resolver.js.map +1 -1
- package/dist/server/modules/error-code/error-code.controller.d.ts +2 -2
- package/dist/server/modules/error-code/error-code.controller.js +14 -17
- package/dist/server/modules/error-code/error-code.controller.js.map +1 -1
- package/dist/server/modules/error-code/error-code.service.d.ts +1 -1
- package/dist/server/modules/error-code/error-code.service.js +8 -11
- package/dist/server/modules/error-code/error-code.service.js.map +1 -1
- package/dist/server/modules/error-code/error-codes.js +3 -6
- package/dist/server/modules/error-code/error-codes.js.map +1 -1
- package/dist/server/modules/error-code/index.d.ts +3 -3
- package/dist/server/modules/error-code/index.js +3 -19
- package/dist/server/modules/error-code/index.js.map +1 -1
- package/dist/server/modules/file/file-info.model.d.ts +2 -78
- package/dist/server/modules/file/file-info.model.js +12 -15
- package/dist/server/modules/file/file-info.model.js.map +1 -1
- package/dist/server/modules/file/file.controller.d.ts +4 -4
- package/dist/server/modules/file/file.controller.js +26 -29
- package/dist/server/modules/file/file.controller.js.map +1 -1
- package/dist/server/modules/file/file.module.js +16 -19
- package/dist/server/modules/file/file.module.js.map +1 -1
- package/dist/server/modules/file/file.resolver.d.ts +5 -5
- package/dist/server/modules/file/file.resolver.js +23 -26
- package/dist/server/modules/file/file.resolver.js.map +1 -1
- package/dist/server/modules/file/file.service.d.ts +6 -6
- package/dist/server/modules/file/file.service.js +15 -20
- package/dist/server/modules/file/file.service.js.map +1 -1
- package/dist/server/modules/file/multer-config.service.js +6 -9
- package/dist/server/modules/file/multer-config.service.js.map +1 -1
- package/dist/server/modules/user/avatar.controller.d.ts +3 -3
- package/dist/server/modules/user/avatar.controller.js +25 -29
- package/dist/server/modules/user/avatar.controller.js.map +1 -1
- package/dist/server/modules/user/inputs/user-create.input.d.ts +1 -1
- package/dist/server/modules/user/inputs/user-create.input.js +12 -15
- package/dist/server/modules/user/inputs/user-create.input.js.map +1 -1
- package/dist/server/modules/user/inputs/user.input.d.ts +1 -1
- package/dist/server/modules/user/inputs/user.input.js +12 -15
- package/dist/server/modules/user/inputs/user.input.js.map +1 -1
- package/dist/server/modules/user/outputs/find-and-count-users-result.output.d.ts +2 -2
- package/dist/server/modules/user/outputs/find-and-count-users-result.output.js +16 -19
- package/dist/server/modules/user/outputs/find-and-count-users-result.output.js.map +1 -1
- package/dist/server/modules/user/user.controller.d.ts +5 -5
- package/dist/server/modules/user/user.controller.js +100 -103
- package/dist/server/modules/user/user.controller.js.map +1 -1
- package/dist/server/modules/user/user.model.d.ts +4 -188
- package/dist/server/modules/user/user.model.js +35 -39
- package/dist/server/modules/user/user.model.js.map +1 -1
- package/dist/server/modules/user/user.module.js +25 -27
- package/dist/server/modules/user/user.module.js.map +1 -1
- package/dist/server/modules/user/user.resolver.d.ts +8 -8
- package/dist/server/modules/user/user.resolver.js +70 -73
- package/dist/server/modules/user/user.resolver.js.map +1 -1
- package/dist/server/modules/user/user.service.d.ts +10 -10
- package/dist/server/modules/user/user.service.js +27 -33
- package/dist/server/modules/user/user.service.js.map +1 -1
- package/dist/server/server.controller.d.ts +1 -1
- package/dist/server/server.controller.js +12 -15
- package/dist/server/server.controller.js.map +1 -1
- package/dist/server/server.module.js +33 -36
- package/dist/server/server.module.js.map +1 -1
- package/dist/test/test.helper.js +17 -21
- package/dist/test/test.helper.js.map +1 -1
- package/dist/types/graphql-upload.d.ts +10 -7
- package/docs/REQUEST-LIFECYCLE.md +17 -4
- package/docs/choosing-a-database.md +107 -0
- package/docs/native-driver-security.md +29 -0
- package/docs/security-overrides.md +59 -29
- package/migration-guides/11.43.x-to-12.0.x.md +828 -0
- package/migration-guides/12.0.x-to-12.1.x.md +255 -0
- package/package.json +119 -73
- package/src/config.env.ts +32 -30
- package/src/core/common/args/filter.args.ts +3 -3
- package/src/core/common/args/pagination.args.ts +4 -4
- package/src/core/common/decorators/current-user.decorator.ts +1 -1
- package/src/core/common/decorators/graphql-populate.decorator.ts +1 -1
- package/src/core/common/decorators/graphql-service-options.decorator.ts +2 -2
- package/src/core/common/decorators/response-model.decorator.ts +1 -1
- package/src/core/common/decorators/rest-service-options.decorator.ts +2 -2
- package/src/core/common/decorators/restricted.decorator.ts +11 -11
- package/src/core/common/decorators/unified-field.decorator.ts +23 -8
- package/src/core/common/exceptions/access-denied.exception.ts +1 -1
- package/src/core/common/filters/http-exception-log.filter.ts +16 -2
- package/src/core/common/filters/mongoose-cast-error.filter.ts +13 -7
- package/src/core/common/helpers/clone.helper.ts +2 -2
- package/src/core/common/helpers/config.helper.ts +47 -29
- package/src/core/common/helpers/cookies.helper.ts +1 -1
- package/src/core/common/helpers/db.helper.ts +49 -34
- package/src/core/common/helpers/decorator.helper.ts +3 -3
- package/src/core/common/helpers/execution-context-request.helper.ts +2 -2
- package/src/core/common/helpers/file.helper.ts +1 -1
- package/src/core/common/helpers/filter.helper.ts +12 -11
- package/src/core/common/helpers/graceful-shutdown.helper.ts +1 -1
- package/src/core/common/helpers/graphql-ws-connection.helper.ts +31 -6
- package/src/core/common/helpers/graphql-ws-context.helper.ts +10 -11
- package/src/core/common/helpers/graphql.helper.ts +1 -1
- package/src/core/common/helpers/gridfs.helper.ts +28 -9
- package/src/core/common/helpers/id.helper.ts +23 -6
- package/src/core/common/helpers/input.helper.ts +11 -11
- package/src/core/common/helpers/interceptor.helper.ts +6 -9
- package/src/core/common/helpers/model.helper.ts +6 -7
- package/src/core/common/helpers/module-location.helper.ts +33 -0
- package/src/core/common/helpers/outbound-url.helper.ts +2 -2
- package/src/core/common/helpers/process-diagnostics.helper.ts +1 -1
- package/src/core/common/helpers/register-enum.helper.ts +1 -1
- package/src/core/common/helpers/scim.helper.ts +3 -3
- package/src/core/common/helpers/service.helper.ts +15 -15
- package/src/core/common/helpers/swagger.helper.ts +94 -35
- package/src/core/common/inputs/combined-filter.input.ts +1 -1
- package/src/core/common/inputs/core-input.input.ts +2 -2
- package/src/core/common/inputs/filter.input.ts +7 -7
- package/src/core/common/inputs/single-filter.input.ts +6 -6
- package/src/core/common/inputs/sort.input.ts +5 -5
- package/src/core/common/interceptors/check-response.interceptor.ts +3 -3
- package/src/core/common/interceptors/check-security.interceptor.ts +5 -5
- package/src/core/common/interceptors/response-model.interceptor.ts +5 -5
- package/src/core/common/interceptors/translate-response.interceptor.ts +1 -1
- package/src/core/common/interfaces/core-persistence-model.interface.ts +1 -1
- package/src/core/common/interfaces/cron-job-config-with-time-zone.interface.ts +1 -1
- package/src/core/common/interfaces/cron-job-config-with-utc-offset.interface.ts +1 -1
- package/src/core/common/interfaces/scim-array-filter-node.interface.ts +1 -1
- package/src/core/common/interfaces/scim-condition-node.interface.ts +1 -1
- package/src/core/common/interfaces/scim-logical-node.interface.ts +2 -2
- package/src/core/common/interfaces/server-options.interface.ts +135 -23
- package/src/core/common/interfaces/service-options.interface.ts +5 -5
- package/src/core/common/middleware/request-context.middleware.ts +1 -1
- package/src/core/common/middlewares/security-headers.middleware.ts +2 -2
- package/src/core/common/models/core-model.model.ts +1 -1
- package/src/core/common/models/core-persistence.model.ts +8 -8
- package/src/core/common/models/pagination-info.model.ts +1 -1
- package/src/core/common/persistence/core-persistence.lifecycle.ts +47 -0
- package/src/core/common/persistence/core-persistence.module.ts +109 -0
- package/src/core/common/persistence/data-source.config.ts +271 -0
- package/src/core/common/persistence/data-source.runtime.ts +351 -0
- package/src/core/common/persistence/data-store.interface.ts +155 -0
- package/src/core/common/persistence/expiry-sweep.ts +105 -0
- package/src/core/common/persistence/id-format.ts +43 -0
- package/src/core/common/persistence/infrastructure-locks.ts +66 -0
- package/src/core/common/persistence/inject-store.decorator.ts +16 -0
- package/src/core/common/persistence/lock-store.interface.ts +17 -0
- package/src/core/common/persistence/model-descriptor.interface.ts +90 -0
- package/src/core/common/persistence/model-metadata.registry.ts +285 -0
- package/src/core/common/persistence/mongo/collection-name.ts +87 -0
- package/src/core/common/persistence/mongo/declared-schema.view.ts +378 -0
- package/src/core/common/persistence/mongo/hex-object-id.ts +75 -0
- package/src/core/common/persistence/mongo/model-declarations.ts +135 -0
- package/src/core/common/persistence/mongo/mongo-packages.ts +130 -0
- package/src/core/common/persistence/mongo/mongoose-compat.ts +129 -0
- package/src/core/common/persistence/mongo/no-mongo-connection.module.ts +18 -0
- package/src/core/common/persistence/mongo-lock-store.ts +121 -0
- package/src/core/common/persistence/mongoose-data-store.ts +232 -0
- package/src/core/common/persistence/neutral-populate.ts +98 -0
- package/src/core/common/persistence/persisted-model.decorator.ts +61 -0
- package/src/core/common/persistence/persistence-runtime.registry.ts +152 -0
- package/src/core/common/persistence/persistence.tokens.ts +9 -0
- package/src/core/common/persistence/policies/audit.policy.ts +80 -0
- package/src/core/common/persistence/policies/password.policy.ts +69 -0
- package/src/core/common/persistence/policies/role-guard.policy.ts +74 -0
- package/src/core/common/persistence/policies/system-role.policy.ts +90 -0
- package/src/core/common/persistence/policies/tenant.policy.ts +245 -0
- package/src/core/common/persistence/routed-model.guard.ts +107 -0
- package/src/core/common/persistence/sql/mysql/mysql-data-store.ts +503 -0
- package/src/core/common/persistence/sql/mysql/mysql-executor.ts +281 -0
- package/src/core/common/persistence/sql/mysql/mysql-lock-store.ts +87 -0
- package/src/core/common/persistence/sql/mysql/mysql-schema.compiler.ts +424 -0
- package/src/core/common/persistence/sql/mysql/mysql-schema.migrator.ts +453 -0
- package/src/core/common/persistence/sql/mysql/mysql-session.ts +131 -0
- package/src/core/common/persistence/sql/mysql/mysql-update.compiler.ts +379 -0
- package/src/core/common/persistence/sql/mysql/mysql-where.compiler.ts +686 -0
- package/src/core/common/persistence/sql/postgres/postgres-lock-store.ts +76 -0
- package/src/core/common/persistence/sql/postgres/postgres-schema.compiler.ts +328 -0
- package/src/core/common/persistence/sql/postgres/postgres-schema.migrator.ts +448 -0
- package/src/core/common/persistence/sql/postgres/postgres-update.compiler.ts +310 -0
- package/src/core/common/persistence/sql/postgres/postgres-where.compiler.ts +638 -0
- package/src/core/common/persistence/sql/sql-cast.ts +227 -0
- package/src/core/common/persistence/sql/sql-data-store.ts +762 -0
- package/src/core/common/persistence/sql/sql-dialect.ts +85 -0
- package/src/core/common/persistence/sql/sql-errors.ts +49 -0
- package/src/core/common/persistence/sql/sql-executor.factory.ts +282 -0
- package/src/core/common/persistence/sql/sql-executor.interface.ts +57 -0
- package/src/core/common/persistence/sql/sql-naming.ts +133 -0
- package/src/core/common/persistence/sql/sql-schema.shared.ts +105 -0
- package/src/core/common/persistence/sql/sql-session.ts +158 -0
- package/src/core/common/persistence/sql/where-shared.ts +118 -0
- package/src/core/common/persistence/store-guards.ts +73 -0
- package/src/core/common/persistence/store-upsert.ts +36 -0
- package/src/core/common/persistence/unavailable-store.ts +63 -0
- package/src/core/common/persistence/unsupported-capability.error.ts +7 -0
- package/src/core/common/pipes/check-input.pipe.ts +2 -2
- package/src/core/common/pipes/map-and-validate.pipe.ts +6 -6
- package/src/core/common/plugins/complexity.plugin.ts +1 -1
- package/src/core/common/plugins/mongoose-audit-fields.plugin.ts +33 -74
- package/src/core/common/plugins/mongoose-id.plugin.ts +9 -0
- package/src/core/common/plugins/mongoose-password.plugin.ts +6 -62
- package/src/core/common/plugins/mongoose-role-guard.plugin.ts +12 -64
- package/src/core/common/plugins/mongoose-system-role.plugin.ts +7 -78
- package/src/core/common/plugins/mongoose-tenant.plugin.ts +23 -144
- package/src/core/common/scalars/date-timestamp.scalar.ts +1 -1
- package/src/core/common/scalars/date.scalar.ts +1 -1
- package/src/core/common/scalars/upload.scalar.ts +28 -0
- package/src/core/common/services/brevo.service.ts +32 -6
- package/src/core/common/services/config.service.ts +13 -9
- package/src/core/common/services/core-body-parser.initializer.ts +3 -3
- package/src/core/common/services/core-cron-jobs.initializer.ts +4 -4
- package/src/core/common/services/core-cron-jobs.registry.ts +1 -1
- package/src/core/common/services/core-cron-jobs.service.ts +75 -49
- package/src/core/common/services/core-redis-pubsub.ts +1 -1
- package/src/core/common/services/core-redis.service.ts +3 -3
- package/src/core/common/services/core-s3.service.ts +17 -3
- package/src/core/common/services/core-tenant-context.registry.ts +1 -1
- package/src/core/common/services/core-trust-proxy.initializer.ts +2 -2
- package/src/core/common/services/crud.service.ts +177 -46
- package/src/core/common/services/email.service.ts +13 -12
- package/src/core/common/services/mailjet.service.ts +10 -2
- package/src/core/common/services/model-doc.service.ts +4 -4
- package/src/core/common/services/model-registry.service.ts +1 -1
- package/src/core/common/services/module.service.ts +90 -18
- package/src/core/common/services/rate-limit-store.ts +6 -3
- package/src/core/common/services/template.service.ts +3 -3
- package/src/core/common/types/core-model-constructor.type.ts +1 -1
- package/src/core/common/types/field-selection.type.ts +2 -2
- package/src/core/common/types/id.type.ts +2 -2
- package/src/core/common/types/ids.type.ts +1 -1
- package/src/core/common/types/object-id-like.type.ts +11 -0
- package/src/core/common/types/plain-input.type.ts +3 -0
- package/src/core/common/types/populate-config.type.ts +1 -1
- package/src/core/common/types/scim-node.type.ts +3 -3
- package/src/core/common/types/string-or-object-id.type.ts +2 -2
- package/src/core/common/types/wrapper.type.ts +14 -1
- package/src/core/modules/ai/README.md +15 -2
- package/src/core/modules/ai/core-ai-mcp-oauth.initializer.ts +6 -6
- package/src/core/modules/ai/core-ai-mcp.controller.ts +18 -15
- package/src/core/modules/ai/core-ai.constants.ts +10 -0
- package/src/core/modules/ai/core-ai.controller.ts +42 -42
- package/src/core/modules/ai/core-ai.module.ts +78 -56
- package/src/core/modules/ai/core-ai.resolver.ts +40 -40
- package/src/core/modules/ai/helpers/ai-mcp-oauth.helper.ts +4 -4
- package/src/core/modules/ai/hooks/ai-hook.base.ts +2 -2
- package/src/core/modules/ai/hooks/ai-hook.registry.ts +3 -3
- package/src/core/modules/ai/index.ts +71 -71
- package/src/core/modules/ai/inputs/core-ai-budget-limit-create.input.ts +4 -4
- package/src/core/modules/ai/inputs/core-ai-budget-limit.input.ts +3 -3
- package/src/core/modules/ai/inputs/core-ai-connection-create.input.ts +4 -4
- package/src/core/modules/ai/inputs/core-ai-connection-preference.input.ts +3 -3
- package/src/core/modules/ai/inputs/core-ai-connection.input.ts +3 -3
- package/src/core/modules/ai/inputs/core-ai-conversation-create.input.ts +3 -3
- package/src/core/modules/ai/inputs/core-ai-conversation.input.ts +3 -3
- package/src/core/modules/ai/inputs/core-ai-prompt-create.input.ts +4 -4
- package/src/core/modules/ai/inputs/core-ai-prompt-hint-create.input.ts +4 -4
- package/src/core/modules/ai/inputs/core-ai-prompt-hint.input.ts +3 -3
- package/src/core/modules/ai/inputs/core-ai-prompt-update.input.ts +4 -4
- package/src/core/modules/ai/inputs/core-ai-prompt.input.ts +4 -4
- package/src/core/modules/ai/inputs/core-ai-slot-create.input.ts +4 -4
- package/src/core/modules/ai/inputs/core-ai-slot-update.input.ts +3 -3
- package/src/core/modules/ai/interfaces/ai-hook.interface.ts +3 -3
- package/src/core/modules/ai/interfaces/ai-placeholder.interface.ts +1 -1
- package/src/core/modules/ai/interfaces/ai-tool.interface.ts +2 -2
- package/src/core/modules/ai/models/core-ai-action.model.ts +3 -3
- package/src/core/modules/ai/models/core-ai-available-connection.model.ts +2 -2
- package/src/core/modules/ai/models/core-ai-budget-limit.model.ts +6 -6
- package/src/core/modules/ai/models/core-ai-connection-preference.model.ts +6 -6
- package/src/core/modules/ai/models/core-ai-connection.model.ts +6 -6
- package/src/core/modules/ai/models/core-ai-conversation.model.ts +14 -10
- package/src/core/modules/ai/models/core-ai-interaction.model.ts +8 -8
- package/src/core/modules/ai/models/core-ai-mcp-oauth.models.ts +46 -0
- package/src/core/modules/ai/models/core-ai-message.model.ts +2 -2
- package/src/core/modules/ai/models/core-ai-mode.model.ts +6 -6
- package/src/core/modules/ai/models/core-ai-prompt-hint.model.ts +6 -6
- package/src/core/modules/ai/models/core-ai-prompt.model.ts +6 -6
- package/src/core/modules/ai/models/core-ai-response.model.ts +6 -6
- package/src/core/modules/ai/models/core-ai-slot.model.ts +6 -6
- package/src/core/modules/ai/models/core-ai-tool-grant.model.ts +6 -6
- package/src/core/modules/ai/models/core-ai-tool-policy.model.ts +7 -7
- package/src/core/modules/ai/models/core-ai-usage-info.model.ts +2 -2
- package/src/core/modules/ai/models/core-ai-usage.model.ts +2 -2
- package/src/core/modules/ai/providers/claude-cli.provider.ts +4 -4
- package/src/core/modules/ai/providers/llm-provider.factory.ts +3 -3
- package/src/core/modules/ai/providers/openai-compatible.provider.ts +4 -4
- package/src/core/modules/ai/services/ai-crypto.service.ts +2 -2
- package/src/core/modules/ai/services/core-ai-budget.service.ts +31 -13
- package/src/core/modules/ai/services/core-ai-connection-preference.service.ts +12 -15
- package/src/core/modules/ai/services/core-ai-connection-resolver.service.ts +6 -6
- package/src/core/modules/ai/services/core-ai-connection.service.ts +48 -58
- package/src/core/modules/ai/services/core-ai-conversation.service.ts +40 -38
- package/src/core/modules/ai/services/core-ai-interaction.service.ts +9 -9
- package/src/core/modules/ai/services/core-ai-mcp-client.service.ts +3 -3
- package/src/core/modules/ai/services/core-ai-mcp-oauth.service.ts +139 -30
- package/src/core/modules/ai/services/core-ai-mcp.service.ts +2 -2
- package/src/core/modules/ai/services/core-ai-mode.service.ts +8 -11
- package/src/core/modules/ai/services/core-ai-placeholder.registry.ts +3 -3
- package/src/core/modules/ai/services/core-ai-prompt-builder.service.ts +6 -6
- package/src/core/modules/ai/services/core-ai-prompt-hint.service.ts +51 -34
- package/src/core/modules/ai/services/core-ai-prompt.service.ts +24 -21
- package/src/core/modules/ai/services/core-ai-slot.service.ts +30 -34
- package/src/core/modules/ai/services/core-ai-tool-grant.service.ts +22 -32
- package/src/core/modules/ai/services/core-ai-tool-policy.service.ts +12 -15
- package/src/core/modules/ai/services/core-ai.service.ts +37 -33
- package/src/core/modules/ai/tools/ai-tool.base.ts +3 -3
- package/src/core/modules/ai/tools/ai-tool.registry.ts +5 -5
- package/src/core/modules/ai/tools/ask-user-question.tool.ts +4 -4
- package/src/core/modules/ai/tools/search-tools.tool.ts +4 -4
- package/src/core/modules/api-token/core-api-token.decorators.ts +1 -1
- package/src/core/modules/api-token/core-api-token.helpers.ts +8 -8
- package/src/core/modules/api-token/core-api-token.middleware.ts +3 -3
- package/src/core/modules/api-token/core-api-token.model.ts +12 -12
- package/src/core/modules/api-token/core-api-token.module.ts +8 -6
- package/src/core/modules/api-token/core-api-token.service.ts +130 -55
- package/src/core/modules/auth/core-auth.controller.ts +19 -19
- package/src/core/modules/auth/core-auth.model.ts +5 -5
- package/src/core/modules/auth/core-auth.module.ts +14 -12
- package/src/core/modules/auth/core-auth.resolver.ts +19 -19
- package/src/core/modules/auth/core-legacy-auth-deprecation.initializer.ts +17 -3
- package/src/core/modules/auth/guards/auth.guard.ts +40 -12
- package/src/core/modules/auth/guards/legacy-auth-rate-limit.guard.ts +5 -4
- package/src/core/modules/auth/guards/refresh-token.guard.ts +1 -1
- package/src/core/modules/auth/guards/role-guard.token.ts +7 -0
- package/src/core/modules/auth/guards/roles.guard.ts +13 -13
- package/src/core/modules/auth/helpers/legacy-endpoints.helper.ts +1 -1
- package/src/core/modules/auth/inputs/core-auth-sign-in.input.ts +4 -4
- package/src/core/modules/auth/inputs/core-auth-sign-up.input.ts +3 -3
- package/src/core/modules/auth/interfaces/auth-provider.interface.ts +1 -1
- package/src/core/modules/auth/interfaces/core-auth-user.interface.ts +1 -1
- package/src/core/modules/auth/services/core-auth-user.service.ts +2 -2
- package/src/core/modules/auth/services/core-auth.service.ts +30 -16
- package/src/core/modules/auth/services/legacy-auth-rate-limiter.service.ts +4 -4
- package/src/core/modules/auth/strategies/jwt-refresh.strategy.ts +3 -3
- package/src/core/modules/auth/strategies/jwt.strategy.ts +4 -4
- package/src/core/modules/auth/tokens.decorator.ts +1 -1
- package/src/core/modules/better-auth/INTEGRATION-CHECKLIST.md +1 -1
- package/src/core/modules/better-auth/README.md +10 -1
- package/src/core/modules/better-auth/better-auth-roles.guard.ts +10 -10
- package/src/core/modules/better-auth/better-auth-sql.helper.ts +191 -0
- package/src/core/modules/better-auth/better-auth-token.service.ts +28 -37
- package/src/core/modules/better-auth/better-auth.config.ts +122 -21
- package/src/core/modules/better-auth/better-auth.resolver.ts +9 -9
- package/src/core/modules/better-auth/better-auth.types.ts +2 -2
- package/src/core/modules/better-auth/core-better-auth-api.middleware.ts +97 -13
- package/src/core/modules/better-auth/core-better-auth-auth.model.ts +3 -3
- package/src/core/modules/better-auth/core-better-auth-challenge.service.ts +39 -21
- package/src/core/modules/better-auth/core-better-auth-cookie.helper.ts +4 -4
- package/src/core/modules/better-auth/core-better-auth-email-verification.service.ts +21 -11
- package/src/core/modules/better-auth/core-better-auth-error-codes.helper.ts +1 -1
- package/src/core/modules/better-auth/core-better-auth-models.ts +2 -2
- package/src/core/modules/better-auth/core-better-auth-mongo.users.ts +35 -0
- package/src/core/modules/better-auth/core-better-auth-openapi.helper.ts +1 -1
- package/src/core/modules/better-auth/core-better-auth-rate-limit.middleware.ts +2 -2
- package/src/core/modules/better-auth/core-better-auth-rate-limiter.service.ts +3 -3
- package/src/core/modules/better-auth/core-better-auth-signup-validator.service.ts +3 -3
- package/src/core/modules/better-auth/core-better-auth-sql.registry.ts +20 -0
- package/src/core/modules/better-auth/core-better-auth-sql.store.ts +309 -0
- package/src/core/modules/better-auth/core-better-auth-user.mapper.ts +442 -44
- package/src/core/modules/better-auth/core-better-auth-web.helper.ts +2 -2
- package/src/core/modules/better-auth/core-better-auth.controller.ts +20 -17
- package/src/core/modules/better-auth/core-better-auth.middleware.ts +5 -5
- package/src/core/modules/better-auth/core-better-auth.module.ts +101 -63
- package/src/core/modules/better-auth/core-better-auth.registry.ts +35 -1
- package/src/core/modules/better-auth/core-better-auth.resolver.ts +16 -13
- package/src/core/modules/better-auth/core-better-auth.service.ts +98 -29
- package/src/core/modules/better-auth/index.ts +24 -24
- package/src/core/modules/error-code/core-error-code.controller.ts +4 -4
- package/src/core/modules/error-code/core-error-code.service.ts +2 -2
- package/src/core/modules/error-code/error-code.module.ts +3 -3
- package/src/core/modules/error-code/index.ts +5 -5
- package/src/core/modules/error-code/interfaces/error-code.interfaces.ts +2 -2
- package/src/core/modules/file/README.md +16 -3
- package/src/core/modules/file/core-file-access-audit.initializer.ts +5 -5
- package/src/core/modules/file/core-file-info.model.ts +6 -6
- package/src/core/modules/file/core-file.controller.ts +8 -8
- package/src/core/modules/file/core-file.resolver.ts +8 -9
- package/src/core/modules/file/core-file.service.ts +44 -35
- package/src/core/modules/file/file-access.helper.ts +1 -1
- package/src/core/modules/file/file-metadata.helper.ts +7 -3
- package/src/core/modules/file/file-metadata.models.ts +44 -0
- package/src/core/modules/file/file-metadata.store.ts +109 -0
- package/src/core/modules/file/file-roles.config.ts +2 -2
- package/src/core/modules/file/file-roles.helper.ts +6 -6
- package/src/core/modules/file/file-storage.helper.ts +48 -3
- package/src/core/modules/file/filesystem-file.helper.ts +13 -10
- package/src/core/modules/file/interfaces/file-upload.interface.ts +1 -1
- package/src/core/modules/file/s3-file.helper.ts +13 -9
- package/src/core/modules/health-check/core-health-check-result.model.ts +5 -5
- package/src/core/modules/health-check/core-health-check.controller.ts +3 -3
- package/src/core/modules/health-check/core-health-check.module.ts +19 -5
- package/src/core/modules/health-check/core-health-check.resolver.ts +4 -4
- package/src/core/modules/health-check/core-health-check.service.ts +43 -12
- package/src/core/modules/hub/README.md +20 -11
- package/src/core/modules/hub/core-hub-actions.controller.ts +2 -2
- package/src/core/modules/hub/core-hub-html.service.ts +4 -4
- package/src/core/modules/hub/core-hub.controller.ts +22 -17
- package/src/core/modules/hub/core-hub.module.ts +17 -17
- package/src/core/modules/hub/core-hub.service.ts +10 -10
- package/src/core/modules/hub/helpers/hub-client-js.helper.ts +23 -0
- package/src/core/modules/hub/hub-action-messages.ts +6 -0
- package/src/core/modules/hub/hub-buffer.ts +2 -2
- package/src/core/modules/hub/hub-config.helper.ts +4 -4
- package/src/core/modules/hub/hub-nav.ts +1 -0
- package/src/core/modules/hub/index.ts +25 -25
- package/src/core/modules/hub/interfaces/hub-panels.interface.ts +8 -1
- package/src/core/modules/hub/middleware/hub-trace.middleware.ts +1 -1
- package/src/core/modules/hub/services/core-hub-actions.service.ts +12 -12
- package/src/core/modules/hub/services/core-hub-db.service.ts +45 -27
- package/src/core/modules/hub/services/core-hub-email.service.ts +7 -6
- package/src/core/modules/hub/services/core-hub-mailbox.service.ts +6 -6
- package/src/core/modules/hub/services/core-hub-migrations.service.ts +104 -10
- package/src/core/modules/hub/services/core-hub-sources.service.ts +58 -6
- package/src/core/modules/hub/services/hub-log-buffer.service.ts +6 -6
- package/src/core/modules/hub/services/hub-query-profiler.service.ts +9 -9
- package/src/core/modules/hub/services/hub-trace-buffer.service.ts +5 -5
- package/src/core/modules/migrate/MIGRATION_FROM_NODEPIT.md +1 -1
- package/src/core/modules/migrate/README.md +86 -8
- package/src/core/modules/migrate/cli/migrate-cli.ts +114 -9
- package/src/core/modules/migrate/helpers/migration.helper.ts +7 -284
- package/src/core/modules/migrate/helpers/package.json +3 -0
- package/src/core/modules/migrate/helpers/ts-compiler-hooks.mjs +90 -0
- package/src/core/modules/migrate/helpers/ts-compiler.cjs +183 -0
- package/src/core/modules/migrate/helpers/ts-compiler.js +7 -10
- package/src/core/modules/migrate/index.ts +7 -4
- package/src/core/modules/migrate/migration-runner.ts +11 -11
- package/src/core/modules/migrate/migration-state-store.interface.ts +24 -0
- package/src/core/modules/migrate/migration.helper.ts +335 -0
- package/src/core/modules/migrate/mongo-state-store.ts +64 -65
- package/src/core/modules/migrate/sql-migration.helper.ts +48 -0
- package/src/core/modules/migrate/sql-state-store.ts +198 -0
- package/src/core/modules/migrate/templates/migration-project.template.ts +29 -12
- package/src/core/modules/permissions/core-permissions.controller.ts +2 -2
- package/src/core/modules/permissions/core-permissions.module.ts +4 -4
- package/src/core/modules/permissions/core-permissions.service.ts +2 -2
- package/src/core/modules/permissions/permissions-scanner.ts +1 -1
- package/src/core/modules/system-setup/README.md +14 -2
- package/src/core/modules/system-setup/core-system-setup.controller.ts +3 -3
- package/src/core/modules/system-setup/core-system-setup.module.ts +2 -2
- package/src/core/modules/system-setup/core-system-setup.service.ts +84 -52
- package/src/core/modules/tenant/README.md +9 -2
- package/src/core/modules/tenant/core-role-scope.registry.ts +3 -3
- package/src/core/modules/tenant/core-tenant-member.model.ts +9 -9
- package/src/core/modules/tenant/core-tenant-member.store.ts +13 -0
- package/src/core/modules/tenant/core-tenant-role.helper.ts +4 -4
- package/src/core/modules/tenant/core-tenant.decorators.ts +1 -1
- package/src/core/modules/tenant/core-tenant.guard.ts +96 -63
- package/src/core/modules/tenant/core-tenant.helpers.ts +6 -6
- package/src/core/modules/tenant/core-tenant.module.ts +13 -10
- package/src/core/modules/tenant/core-tenant.service.ts +65 -48
- package/src/core/modules/tus/core-tus.controller.ts +6 -6
- package/src/core/modules/tus/core-tus.service.ts +22 -23
- package/src/core/modules/tus/index.ts +5 -5
- package/src/core/modules/tus/interfaces/tus-config.interface.ts +5 -5
- package/src/core/modules/tus/tus-redis-locker.ts +1 -1
- package/src/core/modules/tus/tus.module.ts +11 -11
- package/src/core/modules/user/core-user.model.ts +7 -7
- package/src/core/modules/user/core-user.service.ts +118 -40
- package/src/core/modules/user/inputs/core-user-create.input.ts +4 -4
- package/src/core/modules/user/inputs/core-user.input.ts +5 -5
- package/src/core/modules/user/interfaces/core-user-service-options.interface.ts +1 -1
- package/src/core.module.ts +122 -162
- package/src/index.ts +230 -203
- package/src/main.ts +19 -16
- package/src/server/common/models/persistence.model.ts +9 -9
- package/src/server/common/services/cron-jobs.service.ts +7 -8
- package/src/server/modules/ai/ai-tools.module.ts +7 -7
- package/src/server/modules/ai/tools/delete-user.tool.ts +5 -5
- package/src/server/modules/ai/tools/find-users.tool.ts +5 -5
- package/src/server/modules/ai/tools/get-user.tool.ts +5 -5
- package/src/server/modules/ai/tools/update-user-job-title.tool.ts +6 -6
- package/src/server/modules/auth/auth.controller.ts +5 -5
- package/src/server/modules/auth/auth.model.ts +6 -6
- package/src/server/modules/auth/auth.module.ts +7 -7
- package/src/server/modules/auth/auth.resolver.ts +10 -10
- package/src/server/modules/auth/auth.service.ts +8 -8
- package/src/server/modules/auth/inputs/auth-sign-in.input.ts +3 -3
- package/src/server/modules/auth/inputs/auth-sign-up.input.ts +4 -4
- package/src/server/modules/better-auth/better-auth.controller.ts +8 -8
- package/src/server/modules/better-auth/better-auth.module.ts +4 -4
- package/src/server/modules/better-auth/better-auth.resolver.ts +10 -10
- package/src/server/modules/error-code/error-code.controller.ts +5 -5
- package/src/server/modules/error-code/error-code.service.ts +2 -2
- package/src/server/modules/error-code/error-codes.ts +1 -1
- package/src/server/modules/error-code/index.ts +3 -3
- package/src/server/modules/file/file-info.model.ts +4 -4
- package/src/server/modules/file/file.controller.ts +5 -5
- package/src/server/modules/file/file.module.ts +5 -5
- package/src/server/modules/file/file.resolver.ts +6 -7
- package/src/server/modules/file/file.service.ts +8 -8
- package/src/server/modules/user/avatar.controller.ts +9 -10
- package/src/server/modules/user/inputs/user-create.input.ts +4 -4
- package/src/server/modules/user/inputs/user.input.ts +4 -4
- package/src/server/modules/user/outputs/find-and-count-users-result.output.ts +5 -5
- package/src/server/modules/user/user.controller.ts +10 -10
- package/src/server/modules/user/user.model.ts +17 -12
- package/src/server/modules/user/user.module.ts +18 -12
- package/src/server/modules/user/user.resolver.ts +11 -11
- package/src/server/modules/user/user.service.ts +20 -22
- package/src/server/server.controller.ts +1 -1
- package/src/server/server.module.ts +16 -16
- package/src/test/test.helper.ts +7 -7
- package/src/types/graphql-upload.d.ts +10 -7
- package/dist/tsconfig.build.tsbuildinfo +0 -1
package/.claude/rules/testing.md
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
|
|
7
7
|
| Runner | Config | Test files | Needs MongoDB |
|
|
8
8
|
|--------|--------|-----------|:-------------:|
|
|
9
|
-
| Unit | `vitest.config.
|
|
10
|
-
| E2E | `vitest-e2e.config.
|
|
9
|
+
| Unit | `vitest.config.mts` | `tests/unit/**/*.spec.ts` | No |
|
|
10
|
+
| E2E | `vitest-e2e.config.mts` | `tests/**/*.e2e-spec.ts`, `tests/stories/**/*.story.test.ts` | Yes |
|
|
11
11
|
|
|
12
12
|
**Test files NEVER live in `src/`.** Not a style preference — `src/` is this framework's shipping
|
|
13
13
|
artifact: `package.json` → `files` ships all of `src` recursively into the npm tarball, and
|
|
@@ -32,11 +32,11 @@ that every `*.spec.ts` / `*.test.ts` in the repo is claimed by **exactly one** r
|
|
|
32
32
|
mis-named suite fails the build instead of silently passing. Type-only tests
|
|
33
33
|
(`tests/types/*.type-test.ts`) are compiled by `pnpm run test:types`, never executed.
|
|
34
34
|
|
|
35
|
-
## Infrastructure containers (Redis + S3)
|
|
35
|
+
## Infrastructure containers (Redis + S3 + PostgreSQL + MySQL + MariaDB)
|
|
36
36
|
|
|
37
|
-
**
|
|
38
|
-
mock, and they **fail loudly** when it is missing — a silently skipped
|
|
39
|
-
untested driver ships:
|
|
37
|
+
**Twenty** e2e suites talk to a **real** Redis, a **real** S3-compatible store and/or a **real**
|
|
38
|
+
PostgreSQL, MySQL or MariaDB rather than a mock, and they **fail loudly** when it is missing — a silently skipped
|
|
39
|
+
infrastructure test is how an untested driver ships:
|
|
40
40
|
|
|
41
41
|
| Suite | Needs |
|
|
42
42
|
|-------|-------|
|
|
@@ -44,14 +44,29 @@ untested driver ships:
|
|
|
44
44
|
| `tests/redis-consumers.e2e-spec.ts` | Redis |
|
|
45
45
|
| `tests/multi-replica.e2e-spec.ts` | Redis |
|
|
46
46
|
| `tests/s3-infra.e2e-spec.ts` | S3 |
|
|
47
|
-
| `tests/file-storage-parity.e2e-spec.ts` | S3 |
|
|
48
|
-
| `tests/file-storage-http-parity.e2e-spec.ts` | S3 |
|
|
47
|
+
| `tests/file-storage-parity.e2e-spec.ts` | S3 + PostgreSQL |
|
|
48
|
+
| `tests/file-storage-http-parity.e2e-spec.ts` | S3 + PostgreSQL |
|
|
49
49
|
| `tests/redis-s3-bootstrap.e2e-spec.ts` | Redis + S3 |
|
|
50
50
|
| `tests/graceful-shutdown.e2e-spec.ts` | Redis + S3 |
|
|
51
|
-
|
|
52
|
-
`tests/
|
|
51
|
+
| `tests/persistence-sql-executor.e2e-spec.ts` | PostgreSQL |
|
|
52
|
+
| `tests/persistence-sql-where.e2e-spec.ts` | PostgreSQL + MySQL + MariaDB (and MongoDB) |
|
|
53
|
+
| `tests/persistence-sql-schema.e2e-spec.ts` | PostgreSQL |
|
|
54
|
+
| `tests/persistence-sql-store.e2e-spec.ts` | PostgreSQL |
|
|
55
|
+
| `tests/persistence-parity.e2e-spec.ts` | PostgreSQL + MySQL + MariaDB (and MongoDB) |
|
|
56
|
+
| `tests/persistence-lock-store.e2e-spec.ts` | PostgreSQL + MySQL + MariaDB (and MongoDB) |
|
|
57
|
+
| `tests/persistence-sql-wiring.e2e-spec.ts` | PostgreSQL (and MongoDB) |
|
|
58
|
+
| `tests/core-module-parity.e2e-spec.ts` | PostgreSQL + MySQL + MariaDB (and MongoDB) |
|
|
59
|
+
| `tests/migrate/sql-state-store.e2e-spec.ts` | PostgreSQL + MySQL + MariaDB |
|
|
60
|
+
| `tests/persistence-mysql-executor.e2e-spec.ts` | MySQL + MariaDB |
|
|
61
|
+
| `tests/persistence-mysql-schema.e2e-spec.ts` | MySQL + MariaDB |
|
|
62
|
+
| `tests/persistence-mysql-wiring.e2e-spec.ts` | MySQL + MariaDB |
|
|
63
|
+
|
|
64
|
+
Beyond these twenty, the `postgres` vitest project runs the whole e2e suite once more on PostgreSQL (see "Behaviour
|
|
65
|
+
matrices" below), so without the PostgreSQL container that project fails as a whole while `e2e` runs.
|
|
66
|
+
|
|
67
|
+
`tests/global-setup.ts` starts all five containers automatically, so `pnpm test` works from a clean
|
|
53
68
|
machine with no manual docker command. It is idempotent (a running container is reused) and never
|
|
54
|
-
fatal: without Docker every other suite still runs, and the
|
|
69
|
+
fatal: without Docker every other suite still runs, and the twenty above report their own actionable
|
|
55
70
|
error.
|
|
56
71
|
|
|
57
72
|
```bash
|
|
@@ -60,10 +75,28 @@ pnpm run test:infra:status # what is running
|
|
|
60
75
|
pnpm run test:infra:down # stop and remove
|
|
61
76
|
```
|
|
62
77
|
|
|
63
|
-
| | Redis | S3 (RustFS) |
|
|
64
|
-
|
|
65
|
-
| Port | 6380 (6379 is an auth-protected TurboOps Redis on lt dev machines) | 9102 |
|
|
66
|
-
| Container | `nest-server-2985-redis` | `nest-server-2985-rustfs` |
|
|
78
|
+
| | Redis | S3 (RustFS) | PostgreSQL | MySQL 8.4 | MariaDB 11.8 |
|
|
79
|
+
|---|---|---|---|---|---|
|
|
80
|
+
| Port | 6380 (6379 is an auth-protected TurboOps Redis on lt dev machines) | 9102 | 5440 | 3316 | 3317 |
|
|
81
|
+
| Container | `nest-server-2985-redis` | `nest-server-2985-rustfs` | `nest-server-2985-postgres` | `nest-server-2985-mysql` | `nest-server-2985-mariadb` |
|
|
82
|
+
|
|
83
|
+
**PostgreSQL runs with two roles, as every environment does** (`.claude/plans/db-agnostic/PLAN.md`
|
|
84
|
+
§3.9): `nest_owner` owns the databases and their schema, `nest_app` owns nothing and has neither
|
|
85
|
+
superuser nor `BYPASSRLS` — so a suite running as the application role meets row-level security the
|
|
86
|
+
way production does. The readiness step creates `nest_app`, which is why the container is started
|
|
87
|
+
through `pnpm run test:infra` (or the CI action) and not by a bare `docker run`. Each suite creates
|
|
88
|
+
its own database through `tests/helpers/postgres-test-db.ts`, named after the run
|
|
89
|
+
(`deriveTestDbUri()`), refused unless it passes the drop guard, and dropped in `afterAll`. Overridable
|
|
90
|
+
via `PG_HOST`, `PG_PORT`, `PG_OWNER_USER`, `PG_OWNER_PASSWORD`, `PG_APP_USER`, `PG_APP_PASSWORD`.
|
|
91
|
+
|
|
92
|
+
**MySQL and MariaDB run with two accounts the same way** (phase 6): `nest_owner` may do anything,
|
|
93
|
+
`nest_app` holds nothing until `tests/helpers/mysql-test-db.ts` creates a suite's database and grants it
|
|
94
|
+
`SELECT, INSERT, UPDATE, DELETE` there — and revokes that grant before the drop, because a database-level
|
|
95
|
+
grant outlives its database. Database names follow the PostgreSQL scheme and pass the same drop guard.
|
|
96
|
+
Overridable via `MYSQL_HOST`, `MYSQL_PORT`, `MARIADB_HOST`, `MARIADB_PORT`, `MYSQL_OWNER_USER`,
|
|
97
|
+
`MYSQL_OWNER_PASSWORD`, `MYSQL_APP_USER`, `MYSQL_APP_PASSWORD`. MySQL and MariaDB are not a third run of the
|
|
98
|
+
whole e2e suite: the matrices carry their columns (persistence: one per engine; core modules and where
|
|
99
|
+
parity: one per server).
|
|
67
100
|
|
|
68
101
|
**CI provisions its own** containers in `.github/workflows/*.yml` and sets `LT_TEST_INFRA=0` so the
|
|
69
102
|
automatic start stays out of the way. Same images, same ports — only who starts them differs. Set
|
|
@@ -93,7 +126,7 @@ pnpm run test:cov
|
|
|
93
126
|
pnpm run test:ci
|
|
94
127
|
|
|
95
128
|
# Debug open handles
|
|
96
|
-
npx vitest run --config vitest-e2e.config.
|
|
129
|
+
npx vitest run --config vitest-e2e.config.mts --reporter=hanging-process
|
|
97
130
|
|
|
98
131
|
# Clean up leftover test artifacts (.txt, .bin files from failed file upload tests)
|
|
99
132
|
pnpm run test:cleanup
|
|
@@ -105,6 +138,11 @@ pnpm run test:cleanup
|
|
|
105
138
|
`NODE_ENV`; vitest defaults it to `test`, and `getEnvironmentConfig()` falls back to `config.local`.
|
|
106
139
|
- Both runners load `tests/setup.ts` via `setupFiles` (Nest Logger restricted to `error`/`fatal`,
|
|
107
140
|
`@UnifiedField` deprecation warnings filtered).
|
|
141
|
+
- Both runners set `resolve.extensions` in **Node's order** (`.js` before `.mjs`). graphql has an extensionless
|
|
142
|
+
`main` next to an `index.mjs`; with Vite's default order an `import` of graphql loaded a second, ESM copy, and every
|
|
143
|
+
GraphQL subscription closed with 4500 ("Cannot use GraphQLSchema from another module or realm"). Pinned by
|
|
144
|
+
`tests/unit/vitest-node-resolution.spec.ts` (mutation `vitest-resolves-graphql-esm-build`). Consumer projects need
|
|
145
|
+
the same line — migration guide 12.0.x §17.
|
|
108
146
|
- Database (E2E only): **one unique database per run** (`nest-server-e2e-run-<ts>-p<pid>`), created by `tests/global-setup.ts` so concurrent runs cannot interfere with each other. Specs needing an extra DB derive it via `deriveTestDbUri('<suffix>')` — never a hardcoded/`Date.now()` name (escapes the cleanup scheme).
|
|
109
147
|
- DB lifecycle (`tests/db-lifecycle.reporter.ts`): run passes → DB dropped immediately + stale run DBs from crashed/failed runs collected; run fails → DB kept for debugging. Additionally `tests/global-setup.ts` runs a **startup sweep** (shared `isStaleTestDb()` predicate, dead-PID/age guarded) — leftovers are removed when the NEXT run starts, which survives SIGKILL (check watchdog) and `--reporter` CLI overrides. An externally set `MONGODB_URI` (CI) opts out of the scheme.
|
|
110
148
|
- The drop guard (`SAFE_TEST_DB_PATTERN` + `NON_DISPOSABLE_DB_PATTERN`): nothing in the scheme drops
|
|
@@ -141,7 +179,7 @@ pnpm run test:cleanup
|
|
|
141
179
|
Pinned by `tests/unit/db-lifecycle-guard.spec.ts` (registered mutation
|
|
142
180
|
`safe-test-db-pattern-unanchored`; reverting the anchoring turns 13 cases red). **The refusal list
|
|
143
181
|
in that spec IS the specification** — extend it rather than loosening the pattern.
|
|
144
|
-
- Run governor (`tests/e2e-run-slots.
|
|
182
|
+
- Run governor (`tests/e2e-run-slots.mts`): machine-wide slot dir (`<tmpdir>/lt-e2e-run-slots`) caps concurrent e2e runs across ALL lt projects/sessions (default 2 on ≥8 cores). Further runs wait, logging `[e2e-governor] waiting…` every 15s (keeps the check watchdog fed — a queued run is NOT hung). The e2e config counts foreign slots at load time and drops to low-resource mode (reduced forks, raised timeouts) when another run is active — deterministic, unlike the lagging 1-min load average (kept as second signal). On a GitHub-hosted runner (`RUNNER_ENVIRONMENT=github-hosted`) the load signal alone raises the timeouts but does NOT cap the workers: such a runner runs one job per VM, and at config time the load is the job's own `vitest:unit` from a second earlier (0.84–0.92/core on every runner build). Measured there, the cap took the e2e step from 133 s to 198 s mean (+25 % normalised for runner speed). Keyed on `RUNNER_ENVIRONMENT`, not `CI`: a shared GitLab runner sets `CI`, carries real contention (2.6–5.0/core measured in a consuming project) and keeps the cap. The cap is `maxWorkers`; the `poolOptions.forks.maxForks` it replaced was removed in Vitest 4 and silently ignored. Knobs: `LT_E2E_MAX_RUNS` (0 disables), `LT_E2E_SLOT_DIR`, `LT_E2E_SLOT_TIMEOUT` (fail-open). A slot is reclaimed when its PID is dead OR it is older than six hours — liveness alone made a slot immortal once its PID was recycled. The slot directory is shared machine-wide (on a multi-user Linux host `/tmp`), so it is created 0700 and the slot file is written without following a planted symlink (unlink + `wx`, 0600). A slot that cannot be written does not abort the suite: the run proceeds ungoverned, because the governor is a throughput measure, not a correctness one. Pinned by `tests/unit/e2e-run-slots.spec.ts` (mutations `e2e-slot-*`).
|
|
145
183
|
- `retry: 2` (e2e) is deliberate — with `retry: 5`, one spec file with broken app/socket state ground through 6 attempts × 30s timeout × 22 tests ≈ an hour at 0% CPU (looked like a deadlock; the check watchdog killed it). Never raise retry to paper over contention.
|
|
146
184
|
- Infrastructure containers (E2E only, the **seven** specs listed under "Infrastructure containers"
|
|
147
185
|
above) round-trip against a REAL Redis and/or a REAL S3-compatible store.
|
|
@@ -207,6 +245,70 @@ exactly that (`getRawFileInfoByName()` consulted two of the three stores), and e
|
|
|
207
245
|
| Route-contract executor (boots the real `ServerModule` per driver) | `tests/file-storage-http-parity.e2e-spec.ts` |
|
|
208
246
|
| Structural guard | `tests/unit/file-storage-parity-matrix.spec.ts` |
|
|
209
247
|
|
|
248
|
+
**It has a database dimension (DEV-3832).** S3 and filesystem metadata follow `database` to a SQL table, so a column
|
|
249
|
+
is a driver WITH its metadata database: `s3` / `filesystem` / `gridfs` (MongoDB, the names they always had) plus
|
|
250
|
+
`s3@postgres` and `filesystem@postgres`, which run every case. `gridfs@postgres` is declared `IMPOSSIBLE` case by case
|
|
251
|
+
— GridFS keeps bytes and metadata together in MongoDB — and the guard refuses a case that runs for a driver on MongoDB
|
|
252
|
+
but not on PostgreSQL. The PostgreSQL environment routes the two metadata models through a real `DataSourceRuntime`
|
|
253
|
+
(`routeFileMetadataToPostgres()`); the HTTP executor installs that runtime before it compiles `ServerModule`, as
|
|
254
|
+
`CoreModule.forRoot()` would. **The harness reads and plants through the stores, never through
|
|
255
|
+
`fileMetadataCollection()`**: a harness using the routing it checks follows a broken routing to MongoDB and stays green
|
|
256
|
+
(mutation `file-metadata-routing-ignored` turns 22 cells red only because of that).
|
|
257
|
+
|
|
258
|
+
The **core modules** follow it one level up: `tests/helpers/core-module-matrix.ts` declares what the framework's own
|
|
259
|
+
modules answer through REST and GraphQL — users and legacy sign-in, tenant memberships and the tenant guard, API
|
|
260
|
+
tokens, health check, Hub panels — and `tests/core-module-parity.e2e-spec.ts` assembles them like the reference server
|
|
261
|
+
once with MongoDB alone and once with PostgreSQL as the default source (default engine; the persistence matrix covers
|
|
262
|
+
the engines). `tests/unit/core-module-parity-matrix.spec.ts` is its structural guard. The PostgreSQL column signs in
|
|
263
|
+
through the legacy endpoints with `betterAuth: false`, so it proves the legacy-auth path on SQL; IAM on SQL is the job of
|
|
264
|
+
the projects below.
|
|
265
|
+
|
|
266
|
+
The **whole e2e suite runs on both databases** (12.1.0+): the `e2e` project on MongoDB, the `postgres` project again
|
|
267
|
+
with PostgreSQL as the default data source (`POSTGRES_E2E_ENGINE`, the default engine TypeORM). Each test file gets a
|
|
268
|
+
PostgreSQL database of its own (`tests/postgres-file.setup.ts`, created before the file's first import and dropped in
|
|
269
|
+
its `afterAll`): two suites with different `multiTenancy` sharing one database stop each other's boot, because a table
|
|
270
|
+
that loses tenant isolation refuses to start. A `describe` whose configuration differs from the rest of its file — or
|
|
271
|
+
that needs an empty user base, as the system setup does — takes one more of its own through
|
|
272
|
+
`ownPostgresDatabase()` / `onOwnPostgresDatabase()` (`tests/helpers/postgres-test-db.ts`). The project runs every e2e
|
|
273
|
+
file except those in `POSTGRES_E2E_EXCLUDED` (`vitest.include-globs.mts`), each with one of two reasons: `MONGODB-ONLY:`
|
|
274
|
+
(the suite checks a MongoDB mechanism against MongoDB itself, and names where its PostgreSQL counterpart is proven) or
|
|
275
|
+
`OWN-DATABASES:` (a parity matrix or a suite that creates its PostgreSQL databases itself). An entry is a claim about the
|
|
276
|
+
suite, never a way to get a run green: a suite that fails on PostgreSQL because it reads MongoDB directly belongs on
|
|
277
|
+
the neutral helpers. `tests/unit/postgres-e2e-coverage.spec.ts` keeps the list honest (existing suites, one of the two
|
|
278
|
+
reasons, an upper bound on its size).
|
|
279
|
+
|
|
280
|
+
A suite stays database-neutral through three rules. It reads and prepares users, sessions, accounts and reset tokens
|
|
281
|
+
through `tests/helpers/iam-test-db.ts` — `openIamTestDb(uri, { users: 'mongodb' })` for an application built on
|
|
282
|
+
`CoreModule.forRoot()` alone, which registers no user model and therefore keeps its users on MongoDB. It reads a model
|
|
283
|
+
the application registered with `CorePersistenceModule.forFeature()` through that model's store
|
|
284
|
+
(`app.get(getStoreToken(name), { strict: false })`, inside `RequestContext.runWithBypassTenantGuard()` for a
|
|
285
|
+
tenant-scoped one) — never through a MongoDB client, which would read the wrong database on PostgreSQL. And it keeps
|
|
286
|
+
what is genuinely MongoDB's on MongoDB (`iamDb.mongo`: GridFS, a model registered with `MongooseModule.forFeature()`
|
|
287
|
+
alone). Where a behaviour differs by design — PostgreSQL's CHECK constraint refuses a stored system role that MongoDB
|
|
288
|
+
lets a raw insert plant — the case asserts what happens instead, per `iamDb.driver`.
|
|
289
|
+
|
|
290
|
+
The **IAM suites** run on the two other engines as well, through vitest projects in `vitest-e2e.config.mts`:
|
|
291
|
+
`iam-sql-kysely` and `iam-sql-drizzle` (`IAM_SQL_ENGINES`), each over the files in `IAM_SQL_TEST_INCLUDE`
|
|
292
|
+
(`vitest.include-globs.mts`: the Better-Auth stories, privilege escalation, sign-in CSRF, migration status, the storage
|
|
293
|
+
paths, the bidirectional sync, and since phase 4 the AI suite and both MCP OAuth suites). A project's global setup (`tests/iam-sql.global-setup.ts`) creates its PostgreSQL
|
|
294
|
+
database per run and drops it afterwards; its setup file (`tests/iam-sql.setup.ts`) points `NSC__DATABASE__URL`,
|
|
295
|
+
`NSC__DATABASE__OWNER_URL` and `NSC__DATABASE__SQL_ENGINE` at it, so the unchanged `ServerModule` boots with its users —
|
|
296
|
+
and Better-Auth with them — on PostgreSQL. The suites read and prepare state through `tests/helpers/iam-test-db.ts`,
|
|
297
|
+
which answers from whichever database the run routes the users to (camelCase fields, string ids, a column never written
|
|
298
|
+
left out rather than `null`), never through a MongoDB client of their own; the AI suite does the same through
|
|
299
|
+
`tests/helpers/ai-test-stores.ts` (the stores the application routes the AI models to, `system()` for fixtures that span
|
|
300
|
+
tenants). `tests/ai-mcp-oauth-tenant.e2e-spec.ts` boots with `multiTenancy` and therefore creates a PostgreSQL database
|
|
301
|
+
of its own in those projects: a table that loses tenant isolation stops the boot of a suite configured without it, so
|
|
302
|
+
two suites with different `multiTenancy` must never share one. Keep the root config free of `include`: with
|
|
303
|
+
`extends: true` it is merged into every project, and the IAM projects would run the whole suite. vitest runs the global
|
|
304
|
+
setup of EVERY project before any test, and the project setups before the root one — so a throw in
|
|
305
|
+
`tests/iam-sql.global-setup.ts` used to stop the whole run, MongoDB project included, before the root setup could start
|
|
306
|
+
the containers. The IAM setup therefore starts the test infrastructure itself (once per run) and never throws: a
|
|
307
|
+
database it still cannot create (no Docker) makes every suite of that project fail in `tests/iam-sql.setup.ts` with the
|
|
308
|
+
reason, never fall back to MongoDB, while the `e2e` project runs. `--project e2e` runs MongoDB alone.
|
|
309
|
+
|
|
310
|
+
The **data store** contract follows the same discipline: `tests/helpers/persistence-matrix.ts` declares the cases (CRUD contract plus the security policies), `tests/persistence-parity.e2e-spec.ts` executes them against a store obtained via `CorePersistenceModule.forFeature()` + `@InjectStore()` with every security plugin registered, and `tests/unit/persistence-parity-matrix.spec.ts` guards that every (case, database) cell is declared. It has ten columns: `mongodb`, PostgreSQL once per engine (`postgres-typeorm`, `postgres-kysely`, `postgres-drizzle`) — a `SqlDataStore` over the schema the migrator created, connected as the application role, so row-level security binds every case — and MySQL and MariaDB once per engine (`mysql-*`, `mariadb-*`, phase 6), a `MysqlDataStore` connected as the DML-only application account. Without row-level security there, `native-api-tenant-refused` is DIFFERENT-BY-DESIGN for those six columns and its complement asserts that a native query reaches every tenant while the store still isolates. Each tenant layer of the SQL store is additionally proven ALONE in `tests/persistence-sql-store.e2e-spec.ts` — the matrix runs them together, where one layer hides the loss of another.
|
|
311
|
+
|
|
210
312
|
### A cell is EXECUTED, IMPOSSIBLE, or DIFFERENT-BY-DESIGN — never merely absent
|
|
211
313
|
|
|
212
314
|
Omitting a case for one implementation and declaring it impossible there produce the same artefact
|
|
@@ -268,7 +370,7 @@ pnpm run check:mutations -- --id=<id> # one mutation
|
|
|
268
370
|
pnpm run check:mutations -- --list # the registry, without running anything
|
|
269
371
|
pnpm run check:mutations -- --allow-dirty # when the fix and its evidence share a working tree
|
|
270
372
|
pnpm run check:mutations -- --jobs=4 # N mutations at a time (default: 2, or 4 on >=12 cores)
|
|
271
|
-
pnpm run check:mutations -- --no-infra # only the
|
|
373
|
+
pnpm run check:mutations -- --no-infra # only the 222 that need no MongoDB
|
|
272
374
|
pnpm run check:mutations -- --since=<ref> # only mutations touching files changed since <ref>
|
|
273
375
|
```
|
|
274
376
|
|
|
@@ -287,7 +389,7 @@ when the registry, a vitest config or a setup file changed, since those can move
|
|
|
287
389
|
commit, and in CI alongside the publish without blocking it. The price of caching is a cache that
|
|
288
390
|
has to model each spec's full dependency closure correctly, and getting that wrong produces a stale
|
|
289
391
|
PASS for a test that has since gone vacuous — exactly what the gate is there to prevent. Bad trade
|
|
290
|
-
at
|
|
392
|
+
at 407 mutations.
|
|
291
393
|
|
|
292
394
|
**Decided 2026-10-03 (repo owner): keep the full run.** Measured at 128 mutations, the CI job for
|
|
293
395
|
11.41.6 took **14 minutes**. The trigger to revisit is that wall time, not the mutation count —
|
|
@@ -332,9 +434,9 @@ exactly the environment where the answer matters.
|
|
|
332
434
|
|
|
333
435
|
### The cost is vitest's cold start, not the tests
|
|
334
436
|
|
|
335
|
-
Worth knowing before optimising the wrong thing: the specs behind all
|
|
437
|
+
Worth knowing before optimising the wrong thing: the specs behind all 185 e2e mutations add up to
|
|
336
438
|
**~40 seconds**. The step takes ~740s. The remaining ~700s is paying vitest's startup — process
|
|
337
|
-
spawn, transform, module graph, mongod connect, DB create and drop — once per mutation,
|
|
439
|
+
spawn, transform, module graph, mongod connect, DB create and drop — once per mutation, 407 times.
|
|
338
440
|
That work is largely single-threaded I/O and barely scales with cores: the full registry measures
|
|
339
441
|
**744s on a 12-core laptop and 777s on a 4-vCPU CI runner**.
|
|
340
442
|
|
|
@@ -507,9 +609,9 @@ The writes that actually fed the RPC:
|
|
|
507
609
|
|
|
508
610
|
| Source | Call |
|
|
509
611
|
|--------|------|
|
|
510
|
-
| `common/helpers/config.helper.ts` | `console.info` — "Configured for: …",
|
|
511
|
-
| `common/services/config.service.ts` | `console.warn` from `mergeConfig` |
|
|
512
|
-
| `common/services/rate-limit-store.ts` | `console.warn` from `InMemoryRateLimitStore.hit` |
|
|
612
|
+
| `common/helpers/config.helper.ts` | `console.info` — "Configured for: …" (filtered in `tests/setup.ts` since 12.0.0), the local-config notice |
|
|
613
|
+
| `common/services/config.service.ts` | `console.warn` from `mergeConfig` — since 12.0.0 only when `warn: true` is passed (the constructor used to default to it and dumped the whole config) |
|
|
614
|
+
| `common/services/rate-limit-store.ts` | `console.warn` from `InMemoryRateLimitStore.hit` — a Nest `Logger` since 12.0.0, so no longer an RPC source |
|
|
513
615
|
| `modules/hub/hub-buffer.ts` | `console.debug` from `readShared` |
|
|
514
616
|
| `modules/better-auth/…-email-verification.service.ts` | `console.log` from `logAuthUrlForDevelopment` |
|
|
515
617
|
|
|
@@ -583,9 +685,10 @@ configuration that actually exists** — `grep` for the key in `config.env.ts` b
|
|
|
583
685
|
|
|
584
686
|
## Known coverage gap: no load-test baseline for the auth endpoints
|
|
585
687
|
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
should not have to infer it
|
|
688
|
+
`tests/k6/` holds a health-check load script and a memory soak test (`memory-test.sh`), but nothing
|
|
689
|
+
for the auth endpoints — no endpoint scripts, no baselines for them. That is recorded here rather than
|
|
690
|
+
quietly absent, because one specific question is unanswered and a reader should not have to infer it
|
|
691
|
+
from silence:
|
|
589
692
|
|
|
590
693
|
> Under concurrent password-reset load, at what request rate does the added key-derivation work
|
|
591
694
|
> saturate the libuv threadpool?
|
|
@@ -622,7 +725,7 @@ environment that breaks it is the one nobody runs tests in by hand.
|
|
|
622
725
|
**Before a release, run the unit suite the way a runner sees it:**
|
|
623
726
|
|
|
624
727
|
```bash
|
|
625
|
-
CI=true npx vitest run --config vitest.config.
|
|
728
|
+
CI=true npx vitest run --config vitest.config.mts --reporter=dot
|
|
626
729
|
```
|
|
627
730
|
|
|
628
731
|
Deliberately NOT wired into `check`. It would run all 2381 unit tests a second time — about 40s on
|
|
@@ -729,8 +832,12 @@ catches the *failure*, never the *disarming* of the safety property.
|
|
|
729
832
|
|-----------|-------|
|
|
730
833
|
| DI tokens live in import-free leaves (SWC/TDZ) | `tests/unit/import-cycle-invariants.spec.ts` |
|
|
731
834
|
| Internal calls forward the caller's `ServiceOptions` | `tests/unit/service-options-forwarding.spec.ts` |
|
|
732
|
-
| The parity matrix is complete and honest | `tests/unit/file-storage-parity-matrix.spec.ts` |
|
|
835
|
+
| The parity matrix is complete and honest | `tests/unit/file-storage-parity-matrix.spec.ts`, `tests/unit/persistence-parity-matrix.spec.ts`, `tests/unit/core-module-parity-matrix.spec.ts` |
|
|
733
836
|
| Regression tests carry re-runnable evidence | `tests/unit/regression-evidence.spec.ts` |
|
|
837
|
+
| The core is valid as CommonJS AND ESM (no `require()`, `__dirname`, `import x = require()`, `import.meta`, relative dynamic `import()`) | `tests/unit/module-format-invariants.spec.ts`; `pnpm run check:esm` proves the loading half |
|
|
838
|
+
| The ESM package stays loadable by `require()` (no import from a CommonJS directory into the graph, no top-level `await`) and its CommonJS islands (`bin/`, `migrate/helpers/`) load in place | `tests/unit/module-format-invariants.spec.ts`, `tests/unit/package-format-contracts.spec.ts`; `pnpm run check:manifest` repeats it against the packed build |
|
|
839
|
+
| Type-aware lint is armed (flag, `oxlint-tsgolint`, `no-floating-promises: error`) | `tests/unit/lint-type-aware.spec.ts` |
|
|
840
|
+
| The core needs no MongoDB library (12.1.0+): no static value import of `mongoose` / `@nestjs/mongoose` / `mongodb`, both model-description sources agree | `pnpm run check:without-mongodb` (dist, packages unresolvable; `:package` installs the tarball without them); `tests/unit/persistence-model-descriptor.spec.ts`; `tests/unit/import-cycle-invariants.spec.ts` (the compat leaf) |
|
|
734
841
|
|
|
735
842
|
`service-options-forwarding` is 11.33.1 generalised: inside `src/core/`, a method that HAS the
|
|
736
843
|
caller's context must pass it to every internal call that accepts one. Passing a local derived from
|
package/CLAUDE.md
CHANGED
|
@@ -71,6 +71,20 @@ compatible with either downstream layout:
|
|
|
71
71
|
repo's. The `src/server/` here is a framework-testing example, not
|
|
72
72
|
a shipping component.
|
|
73
73
|
|
|
74
|
+
- **ESM package (`"type": "module"`), source valid as CommonJS AND ESM
|
|
75
|
+
(12.0.0+).** CommonJS projects load the package through
|
|
76
|
+
`require(esm)` like every `@nestjs/*` package — so no top-level
|
|
77
|
+
`await` anywhere in it. `helpers/` (the TypeScript loader) and `bin/`
|
|
78
|
+
stay CommonJS through a directory `package.json`. A vendor-mode
|
|
79
|
+
project compiles the core with its own format. So in `src/core/`: relative imports end in `.js` / `/index.js`,
|
|
80
|
+
no `require()` / `__dirname` / `import x = require()` / `import.meta`
|
|
81
|
+
(use `createRequire()` for project files, `callerDirectory()` for
|
|
82
|
+
"this file's directory"), `import type` for types (`isolatedModules`),
|
|
83
|
+
no deep imports into `@nestjs/*` root-only packages, no relative
|
|
84
|
+
dynamic `import()`, and a dual package is lazy everywhere or static
|
|
85
|
+
everywhere. `pnpm run check:esm` proves it. See
|
|
86
|
+
`.claude/rules/architecture.md` → "Module Format".
|
|
87
|
+
|
|
74
88
|
- **Keep top-level `src/index.ts` and `src/core.module.ts` consistent**
|
|
75
89
|
with the core directory structure. The flatten-fix strips `./core/`
|
|
76
90
|
from specifiers in these two files, so if you add re-exports there,
|
|
@@ -93,6 +107,15 @@ compatible with either downstream layout:
|
|
|
93
107
|
other entry on that list, was never imported by framework code — only by the
|
|
94
108
|
pre-commit hook's `extras/sync-version.ts` — and left together with `husky`
|
|
95
109
|
in 11.41.8; its list entry is now inert.
|
|
110
|
+
**Since 12.1.0 `mongoose`, `@nestjs/mongoose` and `mongodb` are OPTIONAL peers** (an npm-mode project on
|
|
111
|
+
PostgreSQL alone installs none of them): a vendor-mode project that keeps data in MongoDB must declare them
|
|
112
|
+
itself — the CLI's vendoring step has to add them for a MongoDB project (lt CLI ticket of the db-agnostic
|
|
113
|
+
epic). **Every vendor project — on whatever database — declares the SQL packages the core names in a literal
|
|
114
|
+
`import()`: `pg` (with `@types/pg`), `mysql2`, `typeorm`, `kysely`, `drizzle-orm`** (at least as `devDependencies`): the vendored core
|
|
115
|
+
is the project's own source, and `tsc` fails with TS2307 on a dynamic `import()` of a missing package. A SQL vendor
|
|
116
|
+
project also keeps the three MongoDB packages as `devDependencies`: the
|
|
117
|
+
vendored core is the project's own source and imports their TYPES (`import type { Connection } from
|
|
118
|
+
'mongoose'`), so its `tsc` fails with TS2307 without them; at runtime it loads none of them.
|
|
96
119
|
**A peer listed there must ALSO stay in `devDependencies`**: the CLI reads
|
|
97
120
|
the version from the upstream devDeps, so removing it as "redundant with
|
|
98
121
|
the peer range" silently leaves vendor consumers without the package, with
|
|
@@ -117,7 +140,7 @@ the update-agent contract.
|
|
|
117
140
|
```bash
|
|
118
141
|
# Building & Running
|
|
119
142
|
pnpm run build # Build (outputs to dist/)
|
|
120
|
-
pnpm start # Start in local mode
|
|
143
|
+
pnpm start # Start in local mode (nodemon + SWC source loader — no type-check, `build` does that)
|
|
121
144
|
pnpm run start:dev # Development mode with watch
|
|
122
145
|
|
|
123
146
|
# Testing (ALWAYS run before completing changes)
|
|
@@ -125,11 +148,11 @@ pnpm test # Unit + E2E tests (Vitest); E2E half needs MongoDB
|
|
|
125
148
|
pnpm run vitest:unit # Unit tests only (fast, no MongoDB)
|
|
126
149
|
pnpm run test:e2e # E2E tests only
|
|
127
150
|
pnpm run test:cov # Both suites with coverage (coverage/unit + coverage/e2e)
|
|
128
|
-
npx vitest run --config vitest-e2e.config.
|
|
151
|
+
npx vitest run --config vitest-e2e.config.mts --reporter=hanging-process # Debug open handles
|
|
129
152
|
pnpm run test:cleanup # Remove leftover test artifacts (.txt, .bin, .png) — Node, runs on Windows too
|
|
130
153
|
|
|
131
154
|
# Linting & Formatting
|
|
132
|
-
pnpm run lint # oxlint
|
|
155
|
+
pnpm run lint # oxlint --type-aware (no-floating-promises is an error, as in NestJS 12's template)
|
|
133
156
|
pnpm run lint:fix # Auto-fix
|
|
134
157
|
pnpm run format # oxfmt format
|
|
135
158
|
|
|
@@ -145,6 +168,18 @@ pnpm run check:overrides # Cross-checks every pnpm override and every auditConfi
|
|
|
145
168
|
# See .claude/rules/package-management.md → "Overrides AGE"
|
|
146
169
|
pnpm peers check # pnpm 11 builtin: unmet/missing peer dependencies, read from the lockfile
|
|
147
170
|
|
|
171
|
+
pnpm run typecheck:vendor # src/ under `module: commonjs`, declarations EMITTED and scanned — how a
|
|
172
|
+
# vendor-mode project compiles the core. Fails on type errors and on
|
|
173
|
+
# declarations naming a type via `typeof import()` or a package's /dist/ path
|
|
174
|
+
# (break in a consumer's isolated pnpm layout). The nodenext build sees
|
|
175
|
+
# neither; see .claude/rules/architecture.md → "Module Format"
|
|
176
|
+
pnpm run check:esm # Compiles what a vendor project receives as a "type": "module" package and
|
|
177
|
+
# imports EVERY module — the proof that the core runs as ESM. Catches a
|
|
178
|
+
# named import Node cannot see in a CJS package, a type imported as a value,
|
|
179
|
+
# a missing `.js`; see .claude/rules/architecture.md → "Module Format"
|
|
180
|
+
pnpm run check:without-mongodb # dist/ with mongoose, @nestjs/mongoose and mongodb unresolvable: loads, boots on
|
|
181
|
+
# PostgreSQL, CRUD, Better-Auth sign-up/in, file storage. `:package` installs the packed
|
|
182
|
+
# tarball into a project WITHOUT them (publish path). See .claude/rules/persistence.md
|
|
148
183
|
pnpm run check:swc-tdz # SWC→CJS build, loads EVERY module as its own entry point.
|
|
149
184
|
# The only step that catches a temporal-dead-zone crash from an
|
|
150
185
|
# import cycle — tsc, vitest and oxlint are all blind to it.
|
|
@@ -167,7 +202,7 @@ pnpm run reinit # Clean reinstall + tests + build
|
|
|
167
202
|
- `src/core/common/` - Decorators, helpers, interceptors, services
|
|
168
203
|
- `src/core/modules/` - ApiToken, Auth, BetterAuth, ErrorCode, File, HealthCheck, Hub, Migrate, Permissions, SystemSetup, Tus, User
|
|
169
204
|
- **ApiToken** - Opt-in (`apiTokens`) USER and TENANT tokens + signed assertions. Denied on every route without `@ApiTokenScopes()`; all three guards share `enforceApiTokenRoute()`. See `src/core/modules/api-token/README.md`.
|
|
170
|
-
- **Hub** - Build-free ADMIN-gated operator cockpit at `/hub` (config-gated per environment;
|
|
205
|
+
- **Hub** - Build-free ADMIN-gated operator cockpit at `/hub` (config-gated per environment; 17 panels, runtime collectors, mailbox, admin actions). See `src/core/modules/hub/README.md`.
|
|
171
206
|
- **Permissions** - ADMIN-gated security-map report (routes + roles + `@Restricted` fields); also surfaced in the Hub's "Routes / Permissions" panel.
|
|
172
207
|
- **Optional central infrastructure** (11.33.0+) - `CoreRedisService` (`redis` config) and `CoreS3Service` (`s3` config) turn process-local state into shared state for multi-replica deployments: rate-limit counters, cron deduplication, GraphQL subscriptions, tenant-cache invalidation, Hub collectors, file storage (`file.storage: 's3'`; the driver is otherwise derived — S3 → GridFS → filesystem — and an unavailable one fails the boot rather than falling back) and TUS staging. Both are inert without their config, and their client libraries are **optional peer dependencies** (`ioredis`, `bullmq`, `@aws-sdk/client-s3`, `@aws-sdk/lib-storage`, `@aws-sdk/s3-request-presigner`, `@tus/s3-store`) — a project that uses neither installs nothing extra. When adding a distributed feature, always keep the non-configured fallback path.
|
|
173
208
|
|
|
@@ -236,7 +271,9 @@ boundary under `adminBypass: false`. User-entered URLs (webhooks, export targets
|
|
|
236
271
|
Since 11.42.3 an **open GraphQL WebSocket** is re-checked, not trusted for its lifetime: at once on an
|
|
237
272
|
invalidation (tenant guard, role change, password reset, sign-out), otherwise every
|
|
238
273
|
`graphQl.subscriptionRevalidationMs` (30 s); changed rights close it with 4403 and the client
|
|
239
|
-
reconnects. A custom `onConnect` must call `registerWsConnection()` to keep that
|
|
274
|
+
reconnects. A custom `onConnect` must call `registerWsConnection()` to keep that, and refuses a credential
|
|
275
|
+
with `return refuseWsHandshake(extra.socket, reason)` (4401) — never by throwing (graphql-ws: 4500 + an
|
|
276
|
+
"internal error" log line) or a bare `false` (4403, which the client retries) (12.0.0).
|
|
240
277
|
|
|
241
278
|
See `.claude/rules/role-system.md` for complete documentation.
|
|
242
279
|
|
|
@@ -331,6 +368,7 @@ Detailed documentation in `.claude/rules/`:
|
|
|
331
368
|
| `migration-guides.md` | Process for creating version migration guides |
|
|
332
369
|
| `configurable-features.md` | Configuration patterns: "Presence implies enabled" and "Boolean shorthand" (`true` / `{}`) |
|
|
333
370
|
| `package-management.md` | Fixed package versions only - no `^`, `~`, or ranges |
|
|
371
|
+
| `persistence.md` | MongoDB and PostgreSQL: the data store, `forFeature()`, optional MongoDB libraries, native tiers, hot paths per database |
|
|
334
372
|
| `framework-compatibility.md` | Maintenance obligations for FRAMEWORK-API.md, shipped docs, cross-repo dependencies |
|
|
335
373
|
|
|
336
374
|
## Native MongoDB Driver — Security Rules
|
|
@@ -420,6 +458,12 @@ These alternatives bypass `process()` but keep Mongoose plugins (Tenant, Audit,
|
|
|
420
458
|
|
|
421
459
|
### High-Frequency Path Design Rules
|
|
422
460
|
|
|
461
|
+
**Per database (12.1.0+):** the rules below name Mongoose APIs because on MongoDB the Mongoose plugins still fire on
|
|
462
|
+
`Model.create()` / `findByIdAndUpdate()`. On PostgreSQL there is no Mongoose model to call (a model routed to SQL
|
|
463
|
+
refuses every Mongoose data method), and the policies live in the store. The neutral form of every rule below is the
|
|
464
|
+
data store — `this.dataStore.insert()`, `updateById()`, `findById()`, `pushToArray()` skip `process()` and keep every
|
|
465
|
+
policy on both databases; prefer it in new code (`.claude/rules/persistence.md` → "High-frequency paths").
|
|
466
|
+
|
|
423
467
|
These rules apply when building features that execute many times per minute (monitoring, metrics, queue processors). These paths are always system-internal — no user context, no authorization needed.
|
|
424
468
|
|
|
425
469
|
1. **`Model.create(doc)` over `new Model().save()`** for single documents — `create()` is ~3x faster and uses ~9x less memory. For batch inserts (N>1), use `Model.insertMany(docs)` — a single call with N documents is ~2.5x faster than N parallel `save()` calls.
|
|
@@ -483,7 +527,7 @@ Details: [`docs/process-performance-optimization.md`](docs/process-performance-o
|
|
|
483
527
|
| [`docs/REQUEST-LIFECYCLE.md`](docs/REQUEST-LIFECYCLE.md) | Complete request lifecycle, security architecture, interceptor chain, decorator reference, CrudService pipeline, Safety Net, diagrams |
|
|
484
528
|
| [`docs/native-driver-security.md`](docs/native-driver-security.md) | Native MongoDB Driver restrictions, secure alternatives, review checklist |
|
|
485
529
|
| [`docs/process-performance-optimization.md`](docs/process-performance-optimization.md) | process() pipeline performance optimizations, SubDocument array handling (pushToArray/pullFromArray) |
|
|
486
|
-
| [`docs/security-overrides.md`](docs/security-overrides.md) | Why pnpm `overrides:` do NOT reach consumers, which
|
|
530
|
+
| [`docs/security-overrides.md`](docs/security-overrides.md) | Why pnpm `overrides:` do NOT reach consumers, which entries a project still needs (none on 12.1 with the declared `@nestjs/*` versions), and the rules for writing your own |
|
|
487
531
|
| [`docs/brevo-manual-test.md`](docs/brevo-manual-test.md) | Manual smoke test for `BrevoService` against the live Brevo API (framework repo only) |
|
|
488
532
|
|
|
489
533
|
<!-- lt-dev:url-block:start -->
|