@expressots/core 3.0.0 → 4.0.0-preview.1
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/README.md +43 -95
- package/lib/CHANGELOG.md +35 -0
- package/lib/README.md +43 -95
- package/lib/cjs/application/application-container.js +467 -33
- package/lib/cjs/application/application-factory.js +105 -5
- package/lib/cjs/application/application.types.js +32 -2
- package/lib/cjs/application/bootstrap.js +812 -0
- package/lib/cjs/application/index.js +10 -7
- package/lib/cjs/authorization/authorization-config.interface.js +2 -0
- package/lib/cjs/authorization/decorators/convenience.js +80 -0
- package/lib/cjs/authorization/guard-constants.js +12 -0
- package/lib/cjs/authorization/guard-decorators.js +159 -0
- package/lib/cjs/authorization/guard-executor.js +101 -0
- package/lib/cjs/authorization/guard-registry.js +133 -0
- package/lib/cjs/authorization/guard.interface.js +75 -0
- package/lib/cjs/authorization/guards/attribute-based.guard.js +109 -0
- package/lib/cjs/authorization/guards/authenticated.guard.js +49 -0
- package/lib/cjs/authorization/guards/composition.guard.js +67 -0
- package/lib/cjs/authorization/guards/conditional.guard.js +41 -0
- package/lib/cjs/authorization/guards/index.js +24 -0
- package/lib/cjs/authorization/guards/permission.guard.js +82 -0
- package/lib/cjs/authorization/guards/resource-owner.guard.js +61 -0
- package/lib/cjs/authorization/guards/role.guard.js +64 -0
- package/lib/cjs/authorization/index.js +40 -0
- package/lib/cjs/authorization/services/guard-cache.interface.js +2 -0
- package/lib/cjs/authorization/services/guard-cache.js +56 -0
- package/lib/cjs/authorization/services/permission-hierarchy.interface.js +2 -0
- package/lib/cjs/authorization/services/permission-hierarchy.js +54 -0
- package/lib/cjs/authorization/services/permission-service.interface.js +2 -0
- package/lib/cjs/authorization/services/permission-service.js +58 -0
- package/lib/cjs/authorization/services/security-context.interface.js +2 -0
- package/lib/cjs/authorization/services/security-context.js +75 -0
- package/lib/cjs/authorization/setup.js +141 -0
- package/lib/cjs/config/config-resolver.js +719 -0
- package/lib/cjs/config/config.interfaces.js +14 -0
- package/lib/cjs/config/define-config.js +495 -0
- package/lib/cjs/config/env-field-builders.js +402 -0
- package/lib/cjs/config/index.js +83 -0
- package/lib/cjs/config/secret-value.js +201 -0
- package/lib/cjs/console/color-codes.js +4 -0
- package/lib/cjs/console/console.js +72 -9
- package/lib/cjs/console/index.js +2 -2
- package/lib/cjs/container-module/container-module.js +257 -26
- package/lib/cjs/container-module/index.js +6 -4
- package/lib/cjs/decorator/index.js +1 -1
- package/lib/cjs/decorator/scope-binding.js +307 -16
- package/lib/cjs/di/annotation/decorator_utils.js +4 -4
- package/lib/cjs/di/annotation/inject.js +3 -3
- package/lib/cjs/di/annotation/inject_base.js +5 -5
- package/lib/cjs/di/annotation/injectable.js +2 -2
- package/lib/cjs/di/annotation/multi_inject.js +3 -3
- package/lib/cjs/di/annotation/named.js +4 -4
- package/lib/cjs/di/annotation/optional.js +4 -4
- package/lib/cjs/di/annotation/post_construct.js +4 -4
- package/lib/cjs/di/annotation/pre_destroy.js +4 -4
- package/lib/cjs/di/annotation/property_event_decorator.js +2 -2
- package/lib/cjs/di/annotation/tagged.js +3 -3
- package/lib/cjs/di/annotation/target_name.js +5 -5
- package/lib/cjs/di/annotation/unmanaged.js +5 -5
- package/lib/cjs/di/binding-decorator/constants.js +3 -0
- package/lib/cjs/di/binding-decorator/decorator/fluent_provide.js +7 -7
- package/lib/cjs/di/binding-decorator/decorator/provide.js +7 -7
- package/lib/cjs/di/binding-decorator/factory/module_factory.js +23 -4
- package/lib/cjs/di/binding-decorator/index.js +11 -9
- package/lib/cjs/di/binding-decorator/syntax/provide_done_syntax.js +7 -7
- package/lib/cjs/di/binding-decorator/syntax/provide_in_syntax.js +19 -12
- package/lib/cjs/di/binding-decorator/syntax/provide_in_when_on_syntax.js +3 -0
- package/lib/cjs/di/binding-decorator/syntax/provide_on_syntax.js +4 -4
- package/lib/cjs/di/binding-decorator/syntax/provide_when_syntax.js +30 -30
- package/lib/cjs/di/binding-decorator/utils/auto_wire.js +4 -4
- package/lib/cjs/di/bindings/binding.js +5 -6
- package/lib/cjs/di/constants/error_msgs.js +6 -2
- package/lib/cjs/di/constants/literal_types.js +3 -3
- package/lib/cjs/di/container/container.js +44 -44
- package/lib/cjs/di/container/container_module.js +3 -3
- package/lib/cjs/di/container/lookup.js +3 -3
- package/lib/cjs/di/container/module_activation_store.js +3 -3
- package/lib/cjs/di/container-introspection.js +42 -0
- package/lib/cjs/di/inversify.js +85 -52
- package/lib/cjs/di/planning/context.js +2 -2
- package/lib/cjs/di/planning/metadata.js +1 -1
- package/lib/cjs/di/planning/metadata_reader.js +1 -1
- package/lib/cjs/di/planning/planner.js +37 -37
- package/lib/cjs/di/planning/reflection_utils.js +12 -12
- package/lib/cjs/di/planning/request.js +2 -2
- package/lib/cjs/di/planning/target.js +10 -10
- package/lib/cjs/di/resolution/instantiation.js +13 -13
- package/lib/cjs/di/resolution/resolver.js +22 -22
- package/lib/cjs/di/scope/scope-registry.js +115 -0
- package/lib/cjs/di/scope/scope.js +38 -8
- package/lib/cjs/di/syntax/binding_in_syntax.js +18 -8
- package/lib/cjs/di/syntax/binding_in_when_on_syntax.js +9 -6
- package/lib/cjs/di/syntax/binding_on_syntax.js +3 -3
- package/lib/cjs/di/syntax/binding_to_syntax.js +27 -27
- package/lib/cjs/di/syntax/binding_when_on_syntax.js +4 -4
- package/lib/cjs/di/syntax/binding_when_syntax.js +30 -30
- package/lib/cjs/di/syntax/constraint_helpers.js +3 -3
- package/lib/cjs/di/utils/binding_utils.js +18 -18
- package/lib/cjs/di/utils/exceptions.js +1 -1
- package/lib/cjs/di/utils/serialization.js +1 -1
- package/lib/cjs/error/app-error.js +152 -8
- package/lib/cjs/error/base-exception-filter.js +135 -0
- package/lib/cjs/error/error-handler-middleware.js +7 -7
- package/lib/cjs/error/exception-filter-constants.js +12 -0
- package/lib/cjs/error/exception-filter-decorators.js +161 -0
- package/lib/cjs/error/exception-filter-registry.js +163 -0
- package/lib/cjs/error/exception-filter.interface.js +2 -0
- package/lib/cjs/error/exception-handler-middleware.js +378 -0
- package/lib/cjs/error/filters/app-error.filter.js +31 -0
- package/lib/cjs/error/filters/global-exception.filter.js +39 -0
- package/lib/cjs/error/filters/not-found.filter.js +35 -0
- package/lib/cjs/error/filters/validation-error.filter.js +35 -0
- package/lib/cjs/error/index.js +28 -7
- package/lib/cjs/error/not-found.error.js +17 -0
- package/lib/cjs/error/report.js +104 -9
- package/lib/cjs/error/status-code.js +20 -0
- package/lib/cjs/error/utils.js +247 -33
- package/lib/cjs/error/validation.error.js +18 -0
- package/lib/cjs/event/event-decorators.js +280 -0
- package/lib/cjs/event/event-emitter.js +373 -0
- package/lib/cjs/event/event-flow-tracker.js +236 -0
- package/lib/cjs/event/event-recorder.js +289 -0
- package/lib/cjs/event/event-registry.js +207 -0
- package/lib/cjs/event/event.interfaces.js +54 -0
- package/lib/cjs/event/index.js +80 -0
- package/lib/cjs/index.js +29 -8
- package/lib/cjs/interceptor/conditional-interceptor.js +108 -0
- package/lib/cjs/interceptor/execution-context.js +66 -0
- package/lib/cjs/interceptor/index.js +64 -0
- package/lib/cjs/interceptor/interceptor-composition.js +130 -0
- package/lib/cjs/interceptor/interceptor-constants.js +20 -0
- package/lib/cjs/interceptor/interceptor-decorators.js +155 -0
- package/lib/cjs/interceptor/interceptor-executor.js +140 -0
- package/lib/cjs/interceptor/interceptor-registry.js +159 -0
- package/lib/cjs/interceptor/interceptor.interface.js +20 -0
- package/lib/cjs/interceptor/interceptors/index.js +22 -0
- package/lib/cjs/interceptor/interceptors/logging.interceptor.js +70 -0
- package/lib/cjs/interceptor/interceptors/performance.interceptor.js +251 -0
- package/lib/cjs/interceptor/interceptors/timeout.interceptor.js +66 -0
- package/lib/cjs/lazy-loading/index.js +73 -0
- package/lib/cjs/lazy-loading/lazy-load-metrics.js +355 -0
- package/lib/cjs/lazy-loading/lazy-module-loader.js +311 -0
- package/lib/cjs/lazy-loading/lazy-module-manager.js +244 -0
- package/lib/cjs/lazy-loading/lazy-module-warmup.js +294 -0
- package/lib/cjs/lazy-loading/lazy-module.js +380 -0
- package/lib/cjs/lazy-loading/lazy.interfaces.js +18 -0
- package/lib/cjs/lifecycle/index.js +15 -0
- package/lib/cjs/lifecycle/lifecycle-registry.js +301 -0
- package/lib/cjs/lifecycle/lifecycle.interface.js +37 -0
- package/lib/cjs/middleware/content-negotiation/accept-header-parser.js +110 -0
- package/lib/cjs/middleware/content-negotiation/content-negotiation-service.js +288 -0
- package/lib/cjs/middleware/content-negotiation/formatter-registry.js +168 -0
- package/lib/cjs/middleware/content-negotiation/formatters/csv-formatter.js +114 -0
- package/lib/cjs/middleware/content-negotiation/formatters/index.js +16 -0
- package/lib/cjs/middleware/content-negotiation/formatters/json-formatter.js +34 -0
- package/lib/cjs/middleware/content-negotiation/formatters/plain-text-formatter.js +44 -0
- package/lib/cjs/middleware/content-negotiation/formatters/xml-formatter.js +124 -0
- package/lib/cjs/middleware/content-negotiation/formatters/yaml-formatter.js +134 -0
- package/lib/cjs/middleware/content-negotiation/index.js +27 -0
- package/lib/cjs/middleware/index.js +59 -30
- package/lib/cjs/middleware/interfaces/content-negotiation.interface.js +7 -0
- package/lib/cjs/middleware/middleware-config.js +10 -0
- package/lib/cjs/middleware/middleware-presets.js +294 -0
- package/lib/cjs/middleware/middleware-profiler.js +310 -0
- package/lib/cjs/middleware/middleware-registry.js +160 -0
- package/lib/cjs/middleware/middleware-resolver.js +318 -57
- package/lib/cjs/middleware/middleware-service.js +1636 -308
- package/lib/cjs/middleware/middleware-utils.js +280 -0
- package/lib/cjs/middleware/upload-registry.js +91 -0
- package/lib/cjs/path-resolver/index.js +252 -0
- package/lib/cjs/provider/db-in-memory/adapter/adapter.interface.js +10 -0
- package/lib/cjs/provider/db-in-memory/adapter/in-memory.adapter.js +665 -0
- package/lib/cjs/provider/db-in-memory/adapter/index.js +10 -0
- package/lib/cjs/provider/db-in-memory/base-repo.repository.js +4 -4
- package/lib/cjs/provider/db-in-memory/db-in-memory.provider.js +14 -18
- package/lib/cjs/provider/db-in-memory/db.provider.js +402 -0
- package/lib/cjs/provider/db-in-memory/index.js +115 -9
- package/lib/cjs/provider/db-in-memory/query/index.js +24 -0
- package/lib/cjs/provider/db-in-memory/query/query-engine.js +573 -0
- package/lib/cjs/provider/db-in-memory/query/query.types.js +10 -0
- package/lib/cjs/provider/db-in-memory/schema/decorators.js +402 -0
- package/lib/cjs/provider/db-in-memory/schema/entity.interface.js +9 -0
- package/lib/cjs/provider/db-in-memory/schema/index.js +21 -0
- package/lib/cjs/provider/db-in-memory/storage/index.js +14 -0
- package/lib/cjs/provider/db-in-memory/storage/memory-store.js +706 -0
- package/lib/cjs/provider/dto-validator/dto-validator.provider.js +8 -8
- package/lib/cjs/provider/dto-validator/package-resolver.js +2 -2
- package/lib/cjs/provider/index.js +14 -10
- package/lib/cjs/provider/logger/decorators/index.js +17 -0
- package/lib/cjs/provider/logger/decorators/log-performance.decorator.js +178 -0
- package/lib/cjs/provider/logger/index.js +35 -0
- package/lib/cjs/provider/logger/logger.banner.js +473 -0
- package/lib/cjs/provider/logger/logger.config.js +22 -0
- package/lib/cjs/provider/logger/logger.context.js +341 -0
- package/lib/cjs/provider/logger/logger.flow.js +255 -0
- package/lib/cjs/provider/logger/logger.formatter.js +676 -0
- package/lib/cjs/provider/logger/logger.grouping.js +319 -0
- package/lib/cjs/provider/logger/logger.health.js +295 -0
- package/lib/cjs/provider/logger/logger.metrics-collector.js +184 -0
- package/lib/cjs/provider/logger/logger.metrics.js +91 -0
- package/lib/cjs/provider/logger/logger.performance.js +300 -0
- package/lib/cjs/provider/logger/logger.provider.js +698 -75
- package/lib/cjs/provider/logger/logger.query.js +532 -0
- package/lib/cjs/provider/logger/logger.redaction.js +456 -0
- package/lib/cjs/provider/logger/logger.suggestions.js +480 -0
- package/lib/cjs/provider/logger/transports/console.transport.js +78 -0
- package/lib/cjs/provider/logger/transports/file.transport.js +287 -0
- package/lib/cjs/provider/logger/transports/http-server.js +141 -0
- package/lib/cjs/provider/logger/transports/http.transport.js +151 -0
- package/lib/cjs/provider/logger/transports/index.js +21 -0
- package/lib/cjs/provider/logger/transports/transport.interface.js +2 -0
- package/lib/cjs/provider/logger/utils/index.js +18 -0
- package/lib/cjs/provider/logger/utils/log-entry.js +26 -0
- package/lib/cjs/provider/logger/utils/log-levels.js +106 -0
- package/lib/cjs/provider/provider-manager.js +209 -16
- package/lib/cjs/provider/provider-registry.js +414 -0
- package/lib/cjs/provider/provider.interface.js +49 -0
- package/lib/cjs/provider/validation/adapters/class-validator.adapter.js +264 -0
- package/lib/cjs/provider/validation/adapters/index.js +14 -0
- package/lib/cjs/provider/validation/helpful-error-formatter.js +228 -0
- package/lib/cjs/provider/validation/index.js +35 -0
- package/lib/cjs/provider/validation/smart-field-detector.js +543 -0
- package/lib/cjs/provider/validation/type-inference.js +192 -0
- package/lib/cjs/provider/validation/validation-registry.js +220 -0
- package/lib/cjs/provider/validation/validation.interface.js +9 -0
- package/lib/cjs/render/adapters/base-adapter.js +134 -0
- package/lib/cjs/render/adapters/ejs-adapter.js +172 -0
- package/lib/cjs/render/adapters/handlebars-adapter.js +191 -0
- package/lib/cjs/render/adapters/index.js +20 -0
- package/lib/cjs/render/adapters/pug-adapter.js +164 -0
- package/lib/cjs/render/adapters/react-adapter.js +336 -0
- package/lib/cjs/render/features/auto-detection.js +228 -0
- package/lib/cjs/render/features/hot-reload.js +155 -0
- package/lib/cjs/render/features/index.js +20 -0
- package/lib/cjs/render/features/streaming.js +106 -0
- package/lib/cjs/render/features/type-generator.js +221 -0
- package/lib/cjs/render/features/view-debugger.js +174 -0
- package/lib/cjs/render/index.js +80 -0
- package/lib/cjs/render/presets/index.js +216 -0
- package/lib/cjs/render/render-config.js +10 -0
- package/lib/cjs/render/render-interface.js +2 -0
- package/lib/cjs/render/render-registry.js +130 -0
- package/lib/cjs/render/render-service.js +418 -0
- package/lib/cjs/render/utils/cache-manager.js +199 -0
- package/lib/cjs/render/utils/index.js +20 -0
- package/lib/cjs/render/utils/package-resolver.js +121 -0
- package/lib/cjs/render/utils/view-scanner.js +208 -0
- package/lib/cjs/testing/create-test-app.js +366 -0
- package/lib/cjs/testing/create-test-database.js +416 -0
- package/lib/cjs/testing/fluent-request.js +454 -0
- package/lib/cjs/testing/index.js +142 -0
- package/lib/cjs/testing/load-test.js +484 -0
- package/lib/cjs/testing/matchers.js +444 -0
- package/lib/cjs/testing/mock-context.js +406 -0
- package/lib/cjs/testing/mock-provider.js +339 -0
- package/lib/cjs/testing/snapshot-request.js +378 -0
- package/lib/cjs/testing/testing.interfaces.js +10 -0
- package/lib/cjs/types/application/application-container.d.ts +320 -20
- package/lib/cjs/types/application/application-factory.d.ts +99 -3
- package/lib/cjs/types/application/application.types.d.ts +177 -2
- package/lib/cjs/types/application/bootstrap.d.ts +484 -0
- package/lib/cjs/types/application/index.d.ts +4 -3
- package/lib/cjs/types/authorization/authorization-config.interface.d.ts +45 -0
- package/lib/cjs/types/authorization/decorators/convenience.d.ts +64 -0
- package/lib/cjs/types/authorization/guard-constants.d.ts +9 -0
- package/lib/cjs/types/authorization/guard-decorators.d.ts +128 -0
- package/lib/cjs/types/authorization/guard-executor.d.ts +26 -0
- package/lib/cjs/types/authorization/guard-registry.d.ts +35 -0
- package/lib/cjs/types/authorization/guard.interface.d.ts +335 -0
- package/lib/cjs/types/authorization/guards/attribute-based.guard.d.ts +60 -0
- package/lib/cjs/types/authorization/guards/authenticated.guard.d.ts +26 -0
- package/lib/cjs/types/authorization/guards/composition.guard.d.ts +42 -0
- package/lib/cjs/types/authorization/guards/conditional.guard.d.ts +21 -0
- package/lib/cjs/types/authorization/guards/index.d.ts +7 -0
- package/lib/cjs/types/authorization/guards/permission.guard.d.ts +29 -0
- package/lib/cjs/types/authorization/guards/resource-owner.guard.d.ts +29 -0
- package/lib/cjs/types/authorization/guards/role.guard.d.ts +28 -0
- package/lib/cjs/types/authorization/index.d.ts +18 -0
- package/lib/cjs/types/authorization/services/guard-cache.d.ts +26 -0
- package/lib/cjs/types/authorization/services/guard-cache.interface.d.ts +29 -0
- package/lib/cjs/types/authorization/services/permission-hierarchy.d.ts +21 -0
- package/lib/cjs/types/authorization/services/permission-hierarchy.interface.d.ts +22 -0
- package/lib/cjs/types/authorization/services/permission-service.d.ts +21 -0
- package/lib/cjs/types/authorization/services/permission-service.interface.d.ts +19 -0
- package/lib/cjs/types/authorization/services/security-context.d.ts +32 -0
- package/lib/cjs/types/authorization/services/security-context.interface.d.ts +25 -0
- package/lib/cjs/types/authorization/setup.d.ts +84 -0
- package/lib/cjs/types/config/config-resolver.d.ts +40 -0
- package/lib/cjs/types/config/config.interfaces.d.ts +570 -0
- package/lib/cjs/types/config/define-config.d.ts +109 -0
- package/lib/cjs/types/config/env-field-builders.d.ts +288 -0
- package/lib/cjs/types/config/index.d.ts +61 -0
- package/lib/cjs/types/config/secret-value.d.ts +99 -0
- package/lib/cjs/types/console/color-codes.d.ts +1 -1
- package/lib/cjs/types/console/console.d.ts +65 -2
- package/lib/cjs/types/console/index.d.ts +1 -1
- package/lib/cjs/types/container-module/container-module.d.ts +215 -8
- package/lib/cjs/types/container-module/index.d.ts +1 -1
- package/lib/cjs/types/decorator/index.d.ts +1 -1
- package/lib/cjs/types/decorator/scope-binding.d.ts +339 -11
- package/lib/cjs/types/di/annotation/decorator_utils.d.ts +1 -1
- package/lib/cjs/types/di/annotation/inject.d.ts +1 -1
- package/lib/cjs/types/di/annotation/inject_base.d.ts +2 -2
- package/lib/cjs/types/di/annotation/lazy_service_identifier.d.ts +1 -1
- package/lib/cjs/types/di/annotation/multi_inject.d.ts +1 -1
- package/lib/cjs/types/di/annotation/named.d.ts +1 -1
- package/lib/cjs/types/di/annotation/target_name.d.ts +1 -1
- package/lib/cjs/types/di/annotation/unmanaged.d.ts +1 -1
- package/lib/cjs/types/di/binding-decorator/constants.d.ts +3 -0
- package/lib/cjs/types/di/binding-decorator/decorator/fluent_provide.d.ts +2 -2
- package/lib/cjs/types/di/binding-decorator/decorator/provide.d.ts +1 -1
- package/lib/cjs/types/di/binding-decorator/factory/module_factory.d.ts +20 -1
- package/lib/cjs/types/di/binding-decorator/index.d.ts +6 -4
- package/lib/cjs/types/di/binding-decorator/interfaces/interfaces.d.ts +2 -1
- package/lib/cjs/types/di/binding-decorator/syntax/provide_done_syntax.d.ts +1 -1
- package/lib/cjs/types/di/binding-decorator/syntax/provide_in_syntax.d.ts +3 -2
- package/lib/cjs/types/di/binding-decorator/syntax/provide_in_when_on_syntax.d.ts +3 -2
- package/lib/cjs/types/di/binding-decorator/syntax/provide_on_syntax.d.ts +2 -2
- package/lib/cjs/types/di/binding-decorator/syntax/provide_when_on_syntax.d.ts +2 -2
- package/lib/cjs/types/di/binding-decorator/syntax/provide_when_syntax.d.ts +2 -2
- package/lib/cjs/types/di/binding-decorator/utils/auto_wire.d.ts +1 -1
- package/lib/cjs/types/di/bindings/binding.d.ts +1 -1
- package/lib/cjs/types/di/constants/literal_types.d.ts +3 -3
- package/lib/cjs/types/di/container/container.d.ts +1 -1
- package/lib/cjs/types/di/container/container_module.d.ts +1 -1
- package/lib/cjs/types/di/container/container_snapshot.d.ts +1 -1
- package/lib/cjs/types/di/container/lookup.d.ts +1 -1
- package/lib/cjs/types/di/container/module_activation_store.d.ts +1 -1
- package/lib/cjs/types/di/container-introspection.d.ts +25 -0
- package/lib/cjs/types/di/interfaces/interfaces.d.ts +4 -3
- package/lib/cjs/types/di/inversify.d.ts +53 -24
- package/lib/cjs/types/di/planning/context.d.ts +1 -1
- package/lib/cjs/types/di/planning/metadata.d.ts +1 -1
- package/lib/cjs/types/di/planning/metadata_reader.d.ts +1 -1
- package/lib/cjs/types/di/planning/plan.d.ts +1 -1
- package/lib/cjs/types/di/planning/planner.d.ts +1 -1
- package/lib/cjs/types/di/planning/queryable_string.d.ts +1 -1
- package/lib/cjs/types/di/planning/reflection_utils.d.ts +2 -2
- package/lib/cjs/types/di/planning/request.d.ts +1 -1
- package/lib/cjs/types/di/planning/target.d.ts +2 -2
- package/lib/cjs/types/di/resolution/instantiation.d.ts +1 -1
- package/lib/cjs/types/di/resolution/resolver.d.ts +1 -1
- package/lib/cjs/types/di/scope/scope-registry.d.ts +91 -0
- package/lib/cjs/types/di/scope/scope.d.ts +1 -1
- package/lib/cjs/types/di/syntax/binding_in_syntax.d.ts +2 -1
- package/lib/cjs/types/di/syntax/binding_in_when_on_syntax.d.ts +2 -1
- package/lib/cjs/types/di/syntax/binding_on_syntax.d.ts +1 -1
- package/lib/cjs/types/di/syntax/binding_to_syntax.d.ts +2 -2
- package/lib/cjs/types/di/syntax/binding_when_on_syntax.d.ts +1 -1
- package/lib/cjs/types/di/syntax/binding_when_syntax.d.ts +1 -1
- package/lib/cjs/types/di/syntax/constraint_helpers.d.ts +1 -1
- package/lib/cjs/types/di/utils/binding_utils.d.ts +1 -1
- package/lib/cjs/types/di/utils/clonable.d.ts +1 -1
- package/lib/cjs/types/di/utils/serialization.d.ts +1 -1
- package/lib/cjs/types/error/app-error.d.ts +155 -7
- package/lib/cjs/types/error/base-exception-filter.d.ts +73 -0
- package/lib/cjs/types/error/exception-filter-constants.d.ts +9 -0
- package/lib/cjs/types/error/exception-filter-decorators.d.ts +126 -0
- package/lib/cjs/types/error/exception-filter-registry.d.ts +38 -0
- package/lib/cjs/types/error/exception-filter.interface.d.ts +82 -0
- package/lib/cjs/types/error/exception-handler-middleware.d.ts +35 -0
- package/lib/cjs/types/error/filters/app-error.filter.d.ts +10 -0
- package/lib/cjs/types/error/filters/global-exception.filter.d.ts +9 -0
- package/lib/cjs/types/error/filters/not-found.filter.d.ts +10 -0
- package/lib/cjs/types/error/filters/validation-error.filter.d.ts +10 -0
- package/lib/cjs/types/error/index.d.ts +14 -3
- package/lib/cjs/types/error/not-found.error.d.ts +7 -0
- package/lib/cjs/types/error/report.d.ts +84 -6
- package/lib/cjs/types/error/status-code.d.ts +20 -0
- package/lib/cjs/types/error/utils.d.ts +16 -0
- package/lib/cjs/types/error/validation.error.d.ts +8 -0
- package/lib/cjs/types/event/event-decorators.d.ts +199 -0
- package/lib/cjs/types/event/event-emitter.d.ts +109 -0
- package/lib/cjs/types/event/event-flow-tracker.d.ts +88 -0
- package/lib/cjs/types/event/event-recorder.d.ts +121 -0
- package/lib/cjs/types/event/event-registry.d.ts +84 -0
- package/lib/cjs/types/event/event.interfaces.d.ts +528 -0
- package/lib/cjs/types/event/index.d.ts +55 -0
- package/lib/cjs/types/index.d.ts +27 -8
- package/lib/cjs/types/interceptor/conditional-interceptor.d.ts +91 -0
- package/lib/cjs/types/interceptor/execution-context.d.ts +41 -0
- package/lib/cjs/types/interceptor/index.d.ts +41 -0
- package/lib/cjs/types/interceptor/interceptor-composition.d.ts +115 -0
- package/lib/cjs/types/interceptor/interceptor-constants.d.ts +17 -0
- package/lib/cjs/types/interceptor/interceptor-decorators.d.ts +124 -0
- package/lib/cjs/types/interceptor/interceptor-executor.d.ts +46 -0
- package/lib/cjs/types/interceptor/interceptor-registry.d.ts +65 -0
- package/lib/cjs/types/interceptor/interceptor.interface.d.ts +281 -0
- package/lib/cjs/types/interceptor/interceptors/index.d.ts +6 -0
- package/lib/cjs/types/interceptor/interceptors/logging.interceptor.d.ts +28 -0
- package/lib/cjs/types/interceptor/interceptors/performance.interceptor.d.ts +197 -0
- package/lib/cjs/types/interceptor/interceptors/timeout.interceptor.d.ts +42 -0
- package/lib/cjs/types/lazy-loading/index.d.ts +42 -0
- package/lib/cjs/types/lazy-loading/lazy-load-metrics.d.ts +139 -0
- package/lib/cjs/types/lazy-loading/lazy-module-loader.d.ts +169 -0
- package/lib/cjs/types/lazy-loading/lazy-module-manager.d.ts +148 -0
- package/lib/cjs/types/lazy-loading/lazy-module-warmup.d.ts +130 -0
- package/lib/cjs/types/lazy-loading/lazy-module.d.ts +168 -0
- package/lib/cjs/types/lazy-loading/lazy.interfaces.d.ts +480 -0
- package/lib/cjs/types/lifecycle/index.d.ts +9 -0
- package/lib/cjs/types/lifecycle/lifecycle-registry.d.ts +213 -0
- package/lib/cjs/types/lifecycle/lifecycle.interface.d.ts +191 -0
- package/lib/cjs/types/middleware/content-negotiation/accept-header-parser.d.ts +26 -0
- package/lib/cjs/types/middleware/content-negotiation/content-negotiation-service.d.ts +64 -0
- package/lib/cjs/types/middleware/content-negotiation/formatter-registry.d.ts +60 -0
- package/lib/cjs/types/middleware/content-negotiation/formatters/csv-formatter.d.ts +34 -0
- package/lib/cjs/types/middleware/content-negotiation/formatters/index.d.ts +8 -0
- package/lib/cjs/types/middleware/content-negotiation/formatters/json-formatter.d.ts +14 -0
- package/lib/cjs/types/middleware/content-negotiation/formatters/plain-text-formatter.d.ts +12 -0
- package/lib/cjs/types/middleware/content-negotiation/formatters/xml-formatter.d.ts +26 -0
- package/lib/cjs/types/middleware/content-negotiation/formatters/yaml-formatter.d.ts +26 -0
- package/lib/cjs/types/middleware/content-negotiation/index.d.ts +7 -0
- package/lib/cjs/types/middleware/index.d.ts +25 -15
- package/lib/cjs/types/middleware/interfaces/content-negotiation.interface.d.ts +142 -0
- package/lib/cjs/types/middleware/interfaces/cookie-session/cookie-session.interface.d.ts +1 -1
- package/lib/cjs/types/middleware/middleware-config.d.ts +574 -0
- package/lib/cjs/types/middleware/middleware-interface.d.ts +594 -88
- package/lib/cjs/types/middleware/middleware-presets.d.ts +90 -0
- package/lib/cjs/types/middleware/middleware-profiler.d.ts +199 -0
- package/lib/cjs/types/middleware/middleware-registry.d.ts +103 -0
- package/lib/cjs/types/middleware/middleware-resolver.d.ts +156 -8
- package/lib/cjs/types/middleware/middleware-service.d.ts +634 -112
- package/lib/cjs/types/middleware/middleware-utils.d.ts +145 -0
- package/lib/cjs/types/middleware/upload-registry.d.ts +50 -0
- package/lib/cjs/types/path-resolver/index.d.ts +80 -0
- package/lib/cjs/types/provider/db-in-memory/adapter/adapter.interface.d.ts +222 -0
- package/lib/cjs/types/provider/db-in-memory/adapter/in-memory.adapter.d.ts +239 -0
- package/lib/cjs/types/provider/db-in-memory/adapter/index.d.ts +6 -0
- package/lib/cjs/types/provider/db-in-memory/base-repo.repository.d.ts +1 -1
- package/lib/cjs/types/provider/db-in-memory/db-in-memory.interface.d.ts +1 -1
- package/lib/cjs/types/provider/db-in-memory/db-in-memory.provider.d.ts +8 -2
- package/lib/cjs/types/provider/db-in-memory/db.provider.d.ts +281 -0
- package/lib/cjs/types/provider/db-in-memory/index.d.ts +63 -4
- package/lib/cjs/types/provider/db-in-memory/query/index.d.ts +6 -0
- package/lib/cjs/types/provider/db-in-memory/query/query-engine.d.ts +101 -0
- package/lib/cjs/types/provider/db-in-memory/query/query.types.d.ts +318 -0
- package/lib/cjs/types/provider/db-in-memory/schema/decorators.d.ts +314 -0
- package/lib/cjs/types/provider/db-in-memory/schema/entity.interface.d.ts +60 -0
- package/lib/cjs/types/provider/db-in-memory/schema/index.d.ts +6 -0
- package/lib/cjs/types/provider/db-in-memory/storage/index.d.ts +5 -0
- package/lib/cjs/types/provider/db-in-memory/storage/memory-store.d.ts +326 -0
- package/lib/cjs/types/provider/index.d.ts +7 -5
- package/lib/cjs/types/provider/logger/decorators/index.d.ts +1 -0
- package/lib/cjs/types/provider/logger/decorators/log-performance.decorator.d.ts +49 -0
- package/lib/cjs/types/provider/logger/index.d.ts +17 -0
- package/lib/cjs/types/provider/logger/logger.banner.d.ts +94 -0
- package/lib/cjs/types/provider/logger/logger.config.d.ts +55 -0
- package/lib/cjs/types/provider/logger/logger.context.d.ts +189 -0
- package/lib/cjs/types/provider/logger/logger.flow.d.ts +165 -0
- package/lib/cjs/types/provider/logger/logger.formatter.d.ts +44 -0
- package/lib/cjs/types/provider/logger/logger.grouping.d.ts +124 -0
- package/lib/cjs/types/provider/logger/logger.health.d.ts +123 -0
- package/lib/cjs/types/provider/logger/logger.metrics-collector.d.ts +44 -0
- package/lib/cjs/types/provider/logger/logger.metrics.d.ts +162 -0
- package/lib/cjs/types/provider/logger/logger.performance.d.ts +179 -0
- package/lib/cjs/types/provider/logger/logger.provider.d.ts +303 -30
- package/lib/cjs/types/provider/logger/logger.query.d.ts +232 -0
- package/lib/cjs/types/provider/logger/logger.redaction.d.ts +169 -0
- package/lib/cjs/types/provider/logger/logger.suggestions.d.ts +124 -0
- package/lib/cjs/types/provider/logger/transports/console.transport.d.ts +49 -0
- package/lib/cjs/types/provider/logger/transports/file.transport.d.ts +87 -0
- package/lib/cjs/types/provider/logger/transports/http-server.d.ts +88 -0
- package/lib/cjs/types/provider/logger/transports/http.transport.d.ts +74 -0
- package/lib/cjs/types/provider/logger/transports/index.d.ts +5 -0
- package/lib/cjs/types/provider/logger/transports/transport.interface.d.ts +31 -0
- package/lib/cjs/types/provider/logger/utils/index.d.ts +2 -0
- package/lib/cjs/types/provider/logger/utils/log-entry.d.ts +82 -0
- package/lib/cjs/types/provider/logger/utils/log-levels.d.ts +53 -0
- package/lib/cjs/types/provider/provider-manager.d.ts +165 -13
- package/lib/cjs/types/provider/provider-registry.d.ts +192 -0
- package/lib/cjs/types/provider/provider.interface.d.ts +337 -0
- package/lib/cjs/types/provider/validation/adapters/class-validator.adapter.d.ts +68 -0
- package/lib/cjs/types/provider/validation/adapters/index.d.ts +10 -0
- package/lib/cjs/types/provider/validation/helpful-error-formatter.d.ts +110 -0
- package/lib/cjs/types/provider/validation/index.d.ts +19 -0
- package/lib/cjs/types/provider/validation/smart-field-detector.d.ts +91 -0
- package/lib/cjs/types/provider/validation/type-inference.d.ts +81 -0
- package/lib/cjs/types/provider/validation/validation-registry.d.ts +105 -0
- package/lib/cjs/types/provider/validation/validation.interface.d.ts +178 -0
- package/lib/cjs/types/render/adapters/base-adapter.d.ts +95 -0
- package/lib/cjs/types/render/adapters/ejs-adapter.d.ts +57 -0
- package/lib/cjs/types/render/adapters/handlebars-adapter.d.ts +74 -0
- package/lib/cjs/types/render/adapters/index.d.ts +12 -0
- package/lib/cjs/types/render/adapters/pug-adapter.d.ts +57 -0
- package/lib/cjs/types/render/adapters/react-adapter.d.ts +99 -0
- package/lib/cjs/types/render/features/auto-detection.d.ts +58 -0
- package/lib/cjs/types/render/features/hot-reload.d.ts +65 -0
- package/lib/cjs/types/render/features/index.d.ts +12 -0
- package/lib/cjs/types/render/features/streaming.d.ts +39 -0
- package/lib/cjs/types/render/features/type-generator.d.ts +64 -0
- package/lib/cjs/types/render/features/view-debugger.d.ts +42 -0
- package/lib/cjs/types/render/index.d.ts +50 -0
- package/lib/cjs/types/render/presets/index.d.ts +119 -0
- package/lib/cjs/types/render/render-config.d.ts +213 -0
- package/lib/cjs/types/render/render-interface.d.ts +126 -0
- package/lib/cjs/types/render/render-registry.d.ts +86 -0
- package/lib/cjs/types/render/render-service.d.ts +157 -0
- package/lib/cjs/types/render/utils/cache-manager.d.ts +106 -0
- package/lib/cjs/types/render/utils/index.d.ts +11 -0
- package/lib/cjs/types/render/utils/package-resolver.d.ts +57 -0
- package/lib/cjs/types/render/utils/view-scanner.d.ts +74 -0
- package/lib/cjs/types/testing/create-test-app.d.ts +71 -0
- package/lib/cjs/types/testing/create-test-database.d.ts +100 -0
- package/lib/cjs/types/testing/fluent-request.d.ts +37 -0
- package/lib/cjs/types/testing/index.d.ts +93 -0
- package/lib/cjs/types/testing/load-test.d.ts +139 -0
- package/lib/cjs/types/testing/matchers.d.ts +184 -0
- package/lib/cjs/types/testing/mock-context.d.ts +117 -0
- package/lib/cjs/types/testing/mock-provider.d.ts +93 -0
- package/lib/cjs/types/testing/snapshot-request.d.ts +46 -0
- package/lib/cjs/types/testing/testing.interfaces.d.ts +948 -0
- package/lib/cjs/types/utils/node-require.d.ts +11 -0
- package/lib/cjs/utils/node-require.js +59 -0
- package/lib/esm/application/application-container.js +526 -0
- package/lib/esm/application/application-factory.js +134 -0
- package/lib/esm/application/application.types.js +41 -0
- package/lib/esm/application/bootstrap.js +805 -0
- package/lib/esm/application/index.js +4 -0
- package/lib/esm/authorization/authorization-config.interface.js +1 -0
- package/lib/esm/authorization/decorators/convenience.js +74 -0
- package/lib/esm/authorization/guard-constants.js +9 -0
- package/lib/esm/authorization/guard-decorators.js +155 -0
- package/lib/esm/authorization/guard-executor.js +101 -0
- package/lib/esm/authorization/guard-registry.js +132 -0
- package/lib/esm/authorization/guard.interface.js +73 -0
- package/lib/esm/authorization/guards/attribute-based.guard.js +106 -0
- package/lib/esm/authorization/guards/authenticated.guard.js +45 -0
- package/lib/esm/authorization/guards/composition.guard.js +63 -0
- package/lib/esm/authorization/guards/conditional.guard.js +38 -0
- package/lib/esm/authorization/guards/index.js +8 -0
- package/lib/esm/authorization/guards/permission.guard.js +80 -0
- package/lib/esm/authorization/guards/resource-owner.guard.js +58 -0
- package/lib/esm/authorization/guards/role.guard.js +61 -0
- package/lib/esm/authorization/index.js +24 -0
- package/lib/esm/authorization/services/guard-cache.interface.js +1 -0
- package/lib/esm/authorization/services/guard-cache.js +51 -0
- package/lib/esm/authorization/services/permission-hierarchy.interface.js +1 -0
- package/lib/esm/authorization/services/permission-hierarchy.js +49 -0
- package/lib/esm/authorization/services/permission-service.interface.js +1 -0
- package/lib/esm/authorization/services/permission-service.js +56 -0
- package/lib/esm/authorization/services/security-context.interface.js +1 -0
- package/lib/esm/authorization/services/security-context.js +74 -0
- package/lib/esm/authorization/setup.js +137 -0
- package/lib/esm/config/config-resolver.js +714 -0
- package/lib/esm/config/config.interfaces.js +13 -0
- package/lib/esm/config/define-config.js +492 -0
- package/lib/esm/config/env-field-builders.js +392 -0
- package/lib/esm/config/index.js +67 -0
- package/lib/esm/config/secret-value.js +175 -0
- package/lib/esm/console/color-codes.js +46 -0
- package/lib/esm/console/console.js +107 -0
- package/lib/esm/console/index.js +1 -0
- package/lib/esm/container-module/container-module.js +322 -0
- package/lib/esm/container-module/index.js +1 -0
- package/lib/esm/decorator/index.js +1 -0
- package/lib/esm/decorator/scope-binding.js +344 -0
- package/lib/esm/di/annotation/decorator_utils.js +93 -0
- package/lib/esm/di/annotation/inject.js +18 -0
- package/lib/esm/di/annotation/inject_base.js +14 -0
- package/lib/esm/di/annotation/injectable.js +19 -0
- package/lib/esm/di/annotation/lazy_service_identifier.js +9 -0
- package/lib/esm/di/annotation/multi_inject.js +4 -0
- package/lib/esm/di/annotation/named.js +9 -0
- package/lib/esm/di/annotation/optional.js +7 -0
- package/lib/esm/di/annotation/post_construct.js +5 -0
- package/lib/esm/di/annotation/pre_destroy.js +5 -0
- package/lib/esm/di/annotation/property_event_decorator.js +13 -0
- package/lib/esm/di/annotation/tagged.js +7 -0
- package/lib/esm/di/annotation/target_name.js +10 -0
- package/lib/esm/di/annotation/unmanaged.js +10 -0
- package/lib/esm/di/binding-decorator/constants.js +7 -0
- package/lib/esm/di/binding-decorator/decorator/fluent_provide.js +15 -0
- package/lib/esm/di/binding-decorator/decorator/provide.js +35 -0
- package/lib/esm/di/binding-decorator/factory/module_factory.js +34 -0
- package/lib/esm/di/binding-decorator/index.js +10 -0
- package/lib/esm/di/binding-decorator/interfaces/interfaces.js +1 -0
- package/lib/esm/di/binding-decorator/syntax/provide_done_syntax.js +41 -0
- package/lib/esm/di/binding-decorator/syntax/provide_in_syntax.js +37 -0
- package/lib/esm/di/binding-decorator/syntax/provide_in_when_on_syntax.js +68 -0
- package/lib/esm/di/binding-decorator/syntax/provide_on_syntax.js +19 -0
- package/lib/esm/di/binding-decorator/syntax/provide_when_on_syntax.js +57 -0
- package/lib/esm/di/binding-decorator/syntax/provide_when_syntax.js +86 -0
- package/lib/esm/di/binding-decorator/utils/auto_wire.js +13 -0
- package/lib/esm/di/bindings/binding.js +64 -0
- package/lib/esm/di/bindings/binding_count.js +5 -0
- package/lib/esm/di/constants/error_msgs.js +54 -0
- package/lib/esm/di/constants/literal_types.js +21 -0
- package/lib/esm/di/constants/metadata_keys.js +35 -0
- package/lib/esm/di/container/container.js +505 -0
- package/lib/esm/di/container/container_module.js +17 -0
- package/lib/esm/di/container/container_snapshot.js +17 -0
- package/lib/esm/di/container/lookup.js +108 -0
- package/lib/esm/di/container/module_activation_store.js +43 -0
- package/lib/esm/di/container-introspection.js +38 -0
- package/lib/esm/di/interfaces/interfaces.js +1 -0
- package/lib/esm/di/inversify.js +53 -0
- package/lib/esm/di/planning/context.js +18 -0
- package/lib/esm/di/planning/metadata.js +18 -0
- package/lib/esm/di/planning/metadata_reader.js +19 -0
- package/lib/esm/di/planning/plan.js +9 -0
- package/lib/esm/di/planning/planner.js +159 -0
- package/lib/esm/di/planning/queryable_string.js +25 -0
- package/lib/esm/di/planning/reflection_utils.js +150 -0
- package/lib/esm/di/planning/request.js +28 -0
- package/lib/esm/di/planning/target.js +89 -0
- package/lib/esm/di/resolution/instantiation.js +125 -0
- package/lib/esm/di/resolution/resolver.js +163 -0
- package/lib/esm/di/scope/scope-registry.js +109 -0
- package/lib/esm/di/scope/scope.js +75 -0
- package/lib/esm/di/syntax/binding_in_syntax.js +31 -0
- package/lib/esm/di/syntax/binding_in_when_on_syntax.js +79 -0
- package/lib/esm/di/syntax/binding_on_syntax.js +16 -0
- package/lib/esm/di/syntax/binding_to_syntax.js +89 -0
- package/lib/esm/di/syntax/binding_when_on_syntax.js +64 -0
- package/lib/esm/di/syntax/binding_when_syntax.js +82 -0
- package/lib/esm/di/syntax/constraint_helpers.js +39 -0
- package/lib/esm/di/utils/async.js +12 -0
- package/lib/esm/di/utils/binding_utils.js +48 -0
- package/lib/esm/di/utils/clonable.js +7 -0
- package/lib/esm/di/utils/exceptions.js +18 -0
- package/lib/esm/di/utils/factory_type.js +6 -0
- package/lib/esm/di/utils/id.js +5 -0
- package/lib/esm/di/utils/js.js +12 -0
- package/lib/esm/di/utils/serialization.js +102 -0
- package/lib/esm/error/app-error.js +209 -0
- package/lib/esm/error/base-exception-filter.js +134 -0
- package/lib/esm/error/error-handler-middleware.js +34 -0
- package/lib/esm/error/exception-filter-constants.js +9 -0
- package/lib/esm/error/exception-filter-decorators.js +157 -0
- package/lib/esm/error/exception-filter-registry.js +162 -0
- package/lib/esm/error/exception-filter.interface.js +1 -0
- package/lib/esm/error/exception-handler-middleware.js +378 -0
- package/lib/esm/error/filters/app-error.filter.js +28 -0
- package/lib/esm/error/filters/global-exception.filter.js +36 -0
- package/lib/esm/error/filters/not-found.filter.js +32 -0
- package/lib/esm/error/filters/validation-error.filter.js +32 -0
- package/lib/esm/error/index.js +13 -0
- package/lib/esm/error/not-found.error.js +13 -0
- package/lib/esm/error/report.js +153 -0
- package/lib/esm/error/status-code.js +106 -0
- package/lib/esm/error/utils.js +252 -0
- package/lib/esm/error/validation.error.js +15 -0
- package/lib/esm/event/event-decorators.js +268 -0
- package/lib/esm/event/event-emitter.js +376 -0
- package/lib/esm/event/event-flow-tracker.js +230 -0
- package/lib/esm/event/event-recorder.js +286 -0
- package/lib/esm/event/event-registry.js +201 -0
- package/lib/esm/event/event.interfaces.js +51 -0
- package/lib/esm/event/index.js +58 -0
- package/lib/esm/index.mjs +27 -0
- package/lib/esm/interceptor/conditional-interceptor.js +104 -0
- package/lib/esm/interceptor/execution-context.js +66 -0
- package/lib/esm/interceptor/index.js +48 -0
- package/lib/esm/interceptor/interceptor-composition.js +126 -0
- package/lib/esm/interceptor/interceptor-constants.js +17 -0
- package/lib/esm/interceptor/interceptor-decorators.js +151 -0
- package/lib/esm/interceptor/interceptor-executor.js +139 -0
- package/lib/esm/interceptor/interceptor-registry.js +158 -0
- package/lib/esm/interceptor/interceptor.interface.js +16 -0
- package/lib/esm/interceptor/interceptors/index.js +6 -0
- package/lib/esm/interceptor/interceptors/logging.interceptor.js +68 -0
- package/lib/esm/interceptor/interceptors/performance.interceptor.js +253 -0
- package/lib/esm/interceptor/interceptors/timeout.interceptor.js +65 -0
- package/lib/esm/lazy-loading/index.js +56 -0
- package/lib/esm/lazy-loading/lazy-load-metrics.js +352 -0
- package/lib/esm/lazy-loading/lazy-module-loader.js +305 -0
- package/lib/esm/lazy-loading/lazy-module-manager.js +241 -0
- package/lib/esm/lazy-loading/lazy-module-warmup.js +291 -0
- package/lib/esm/lazy-loading/lazy-module.js +352 -0
- package/lib/esm/lazy-loading/lazy.interfaces.js +17 -0
- package/lib/esm/lifecycle/index.js +9 -0
- package/lib/esm/lifecycle/lifecycle-registry.js +298 -0
- package/lib/esm/lifecycle/lifecycle.interface.js +33 -0
- package/lib/esm/middleware/content-negotiation/accept-header-parser.js +106 -0
- package/lib/esm/middleware/content-negotiation/content-negotiation-service.js +286 -0
- package/lib/esm/middleware/content-negotiation/formatter-registry.js +165 -0
- package/lib/esm/middleware/content-negotiation/formatters/csv-formatter.js +111 -0
- package/lib/esm/middleware/content-negotiation/formatters/index.js +8 -0
- package/lib/esm/middleware/content-negotiation/formatters/json-formatter.js +30 -0
- package/lib/esm/middleware/content-negotiation/formatters/plain-text-formatter.js +40 -0
- package/lib/esm/middleware/content-negotiation/formatters/xml-formatter.js +121 -0
- package/lib/esm/middleware/content-negotiation/formatters/yaml-formatter.js +131 -0
- package/lib/esm/middleware/content-negotiation/index.js +7 -0
- package/lib/esm/middleware/index.js +19 -0
- package/lib/esm/middleware/interfaces/body-parser.interface.js +1 -0
- package/lib/esm/middleware/interfaces/compression.interface.js +1 -0
- package/lib/esm/middleware/interfaces/content-negotiation.interface.js +6 -0
- package/lib/esm/middleware/interfaces/cookie-parser.interface.js +1 -0
- package/lib/esm/middleware/interfaces/cookie-session/cookie-session.interface.js +1 -0
- package/lib/esm/middleware/interfaces/cookie-session/keygrip.interface.js +1 -0
- package/lib/esm/middleware/interfaces/cors.interface.js +1 -0
- package/lib/esm/middleware/interfaces/express-rate-limit.interface.js +1 -0
- package/lib/esm/middleware/interfaces/express-session.interface.js +1 -0
- package/lib/esm/middleware/interfaces/helmet.interface.js +1 -0
- package/lib/esm/middleware/interfaces/morgan.interface.js +1 -0
- package/lib/esm/middleware/interfaces/multer.interface.js +1 -0
- package/lib/esm/middleware/interfaces/serve-favicon.interface.js +1 -0
- package/lib/esm/middleware/interfaces/serve-static.interface.js +1 -0
- package/lib/esm/middleware/interfaces/url-encoded.interface.js +1 -0
- package/lib/esm/middleware/middleware-config.js +9 -0
- package/lib/esm/middleware/middleware-interface.js +1 -0
- package/lib/esm/middleware/middleware-presets.js +286 -0
- package/lib/esm/middleware/middleware-profiler.js +307 -0
- package/lib/esm/middleware/middleware-registry.js +152 -0
- package/lib/esm/middleware/middleware-resolver.js +320 -0
- package/lib/esm/middleware/middleware-service.js +1797 -0
- package/lib/esm/middleware/middleware-utils.js +273 -0
- package/lib/esm/middleware/upload-registry.js +84 -0
- package/lib/esm/package.json +3 -0
- package/lib/esm/path-resolver/index.js +224 -0
- package/lib/esm/provider/db-in-memory/adapter/adapter.interface.js +9 -0
- package/lib/esm/provider/db-in-memory/adapter/in-memory.adapter.js +667 -0
- package/lib/esm/provider/db-in-memory/adapter/index.js +5 -0
- package/lib/esm/provider/db-in-memory/base-repo.repository.js +54 -0
- package/lib/esm/provider/db-in-memory/db-in-memory.interface.js +1 -0
- package/lib/esm/provider/db-in-memory/db-in-memory.provider.js +104 -0
- package/lib/esm/provider/db-in-memory/db-in-memory.types.js +20 -0
- package/lib/esm/provider/db-in-memory/db.provider.js +405 -0
- package/lib/esm/provider/db-in-memory/index.js +90 -0
- package/lib/esm/provider/db-in-memory/query/index.js +6 -0
- package/lib/esm/provider/db-in-memory/query/query-engine.js +570 -0
- package/lib/esm/provider/db-in-memory/query/query.types.js +9 -0
- package/lib/esm/provider/db-in-memory/schema/decorators.js +387 -0
- package/lib/esm/provider/db-in-memory/schema/entity.interface.js +8 -0
- package/lib/esm/provider/db-in-memory/schema/index.js +5 -0
- package/lib/esm/provider/db-in-memory/storage/index.js +5 -0
- package/lib/esm/provider/db-in-memory/storage/memory-store.js +709 -0
- package/lib/esm/provider/dto-validator/dto-validator.provider.js +49 -0
- package/lib/esm/provider/dto-validator/package-resolver.js +30 -0
- package/lib/esm/provider/index.js +7 -0
- package/lib/esm/provider/logger/decorators/index.js +1 -0
- package/lib/esm/provider/logger/decorators/log-performance.decorator.js +175 -0
- package/lib/esm/provider/logger/index.js +17 -0
- package/lib/esm/provider/logger/logger.banner.js +471 -0
- package/lib/esm/provider/logger/logger.config.js +19 -0
- package/lib/esm/provider/logger/logger.context.js +334 -0
- package/lib/esm/provider/logger/logger.flow.js +248 -0
- package/lib/esm/provider/logger/logger.formatter.js +670 -0
- package/lib/esm/provider/logger/logger.grouping.js +314 -0
- package/lib/esm/provider/logger/logger.health.js +291 -0
- package/lib/esm/provider/logger/logger.metrics-collector.js +180 -0
- package/lib/esm/provider/logger/logger.metrics.js +85 -0
- package/lib/esm/provider/logger/logger.performance.js +299 -0
- package/lib/esm/provider/logger/logger.provider.js +746 -0
- package/lib/esm/provider/logger/logger.query.js +529 -0
- package/lib/esm/provider/logger/logger.redaction.js +450 -0
- package/lib/esm/provider/logger/logger.suggestions.js +471 -0
- package/lib/esm/provider/logger/transports/console.transport.js +81 -0
- package/lib/esm/provider/logger/transports/file.transport.js +291 -0
- package/lib/esm/provider/logger/transports/http-server.js +141 -0
- package/lib/esm/provider/logger/transports/http.transport.js +157 -0
- package/lib/esm/provider/logger/transports/index.js +5 -0
- package/lib/esm/provider/logger/transports/transport.interface.js +1 -0
- package/lib/esm/provider/logger/utils/index.js +2 -0
- package/lib/esm/provider/logger/utils/log-entry.js +23 -0
- package/lib/esm/provider/logger/utils/log-levels.js +100 -0
- package/lib/esm/provider/provider-manager.js +283 -0
- package/lib/esm/provider/provider-registry.js +411 -0
- package/lib/esm/provider/provider.interface.js +44 -0
- package/lib/esm/provider/validation/adapters/class-validator.adapter.js +258 -0
- package/lib/esm/provider/validation/adapters/index.js +10 -0
- package/lib/esm/provider/validation/helpful-error-formatter.js +225 -0
- package/lib/esm/provider/validation/index.js +21 -0
- package/lib/esm/provider/validation/smart-field-detector.js +539 -0
- package/lib/esm/provider/validation/type-inference.js +183 -0
- package/lib/esm/provider/validation/validation-registry.js +214 -0
- package/lib/esm/provider/validation/validation.interface.js +8 -0
- package/lib/esm/render/adapters/base-adapter.js +131 -0
- package/lib/esm/render/adapters/ejs-adapter.js +142 -0
- package/lib/esm/render/adapters/handlebars-adapter.js +161 -0
- package/lib/esm/render/adapters/index.js +12 -0
- package/lib/esm/render/adapters/pug-adapter.js +134 -0
- package/lib/esm/render/adapters/react-adapter.js +303 -0
- package/lib/esm/render/features/auto-detection.js +202 -0
- package/lib/esm/render/features/hot-reload.js +153 -0
- package/lib/esm/render/features/index.js +12 -0
- package/lib/esm/render/features/streaming.js +103 -0
- package/lib/esm/render/features/type-generator.js +195 -0
- package/lib/esm/render/features/view-debugger.js +172 -0
- package/lib/esm/render/index.js +54 -0
- package/lib/esm/render/presets/index.js +207 -0
- package/lib/esm/render/render-config.js +9 -0
- package/lib/esm/render/render-interface.js +1 -0
- package/lib/esm/render/render-registry.js +124 -0
- package/lib/esm/render/render-service.js +394 -0
- package/lib/esm/render/utils/cache-manager.js +196 -0
- package/lib/esm/render/utils/index.js +10 -0
- package/lib/esm/render/utils/package-resolver.js +118 -0
- package/lib/esm/render/utils/view-scanner.js +178 -0
- package/lib/esm/testing/create-test-app.js +365 -0
- package/lib/esm/testing/create-test-database.js +411 -0
- package/lib/esm/testing/fluent-request.js +452 -0
- package/lib/esm/testing/index.js +102 -0
- package/lib/esm/testing/load-test.js +479 -0
- package/lib/esm/testing/matchers.js +440 -0
- package/lib/esm/testing/mock-context.js +400 -0
- package/lib/esm/testing/mock-provider.js +333 -0
- package/lib/esm/testing/snapshot-request.js +356 -0
- package/lib/esm/testing/testing.interfaces.js +9 -0
- package/lib/esm/types/application/application-container.d.ts +352 -0
- package/lib/esm/types/application/application-factory.d.ts +118 -0
- package/lib/esm/types/application/application.types.d.ts +185 -0
- package/lib/esm/types/application/bootstrap.d.ts +484 -0
- package/lib/esm/types/application/index.d.ts +4 -0
- package/lib/esm/types/authorization/authorization-config.interface.d.ts +45 -0
- package/lib/esm/types/authorization/decorators/convenience.d.ts +64 -0
- package/lib/esm/types/authorization/guard-constants.d.ts +9 -0
- package/lib/esm/types/authorization/guard-decorators.d.ts +128 -0
- package/lib/esm/types/authorization/guard-executor.d.ts +26 -0
- package/lib/esm/types/authorization/guard-registry.d.ts +35 -0
- package/lib/esm/types/authorization/guard.interface.d.ts +335 -0
- package/lib/esm/types/authorization/guards/attribute-based.guard.d.ts +60 -0
- package/lib/esm/types/authorization/guards/authenticated.guard.d.ts +26 -0
- package/lib/esm/types/authorization/guards/composition.guard.d.ts +42 -0
- package/lib/esm/types/authorization/guards/conditional.guard.d.ts +21 -0
- package/lib/esm/types/authorization/guards/index.d.ts +7 -0
- package/lib/esm/types/authorization/guards/permission.guard.d.ts +29 -0
- package/lib/esm/types/authorization/guards/resource-owner.guard.d.ts +29 -0
- package/lib/esm/types/authorization/guards/role.guard.d.ts +28 -0
- package/lib/esm/types/authorization/index.d.ts +18 -0
- package/lib/esm/types/authorization/services/guard-cache.d.ts +26 -0
- package/lib/esm/types/authorization/services/guard-cache.interface.d.ts +29 -0
- package/lib/esm/types/authorization/services/permission-hierarchy.d.ts +21 -0
- package/lib/esm/types/authorization/services/permission-hierarchy.interface.d.ts +22 -0
- package/lib/esm/types/authorization/services/permission-service.d.ts +21 -0
- package/lib/esm/types/authorization/services/permission-service.interface.d.ts +19 -0
- package/lib/esm/types/authorization/services/security-context.d.ts +32 -0
- package/lib/esm/types/authorization/services/security-context.interface.d.ts +25 -0
- package/lib/esm/types/authorization/setup.d.ts +84 -0
- package/lib/esm/types/config/config-resolver.d.ts +40 -0
- package/lib/esm/types/config/config.interfaces.d.ts +570 -0
- package/lib/esm/types/config/define-config.d.ts +109 -0
- package/lib/esm/types/config/env-field-builders.d.ts +288 -0
- package/lib/esm/types/config/index.d.ts +61 -0
- package/lib/esm/types/config/secret-value.d.ts +99 -0
- package/lib/esm/types/console/color-codes.d.ts +29 -0
- package/lib/esm/types/console/console.d.ts +83 -0
- package/lib/esm/types/console/index.d.ts +2 -0
- package/lib/esm/types/container-module/container-module.d.ts +242 -0
- package/lib/esm/types/container-module/index.d.ts +1 -0
- package/lib/esm/types/decorator/index.d.ts +1 -0
- package/lib/esm/types/decorator/scope-binding.d.ts +374 -0
- package/lib/esm/types/di/annotation/decorator_utils.d.ts +16 -0
- package/lib/esm/types/di/annotation/inject.d.ts +16 -0
- package/lib/esm/types/di/annotation/inject_base.d.ts +3 -0
- package/lib/esm/types/di/annotation/injectable.d.ts +7 -0
- package/lib/esm/types/di/annotation/lazy_service_identifier.d.ts +7 -0
- package/lib/esm/types/di/annotation/multi_inject.d.ts +2 -0
- package/lib/esm/types/di/annotation/named.d.ts +2 -0
- package/lib/esm/types/di/annotation/optional.d.ts +2 -0
- package/lib/esm/types/di/annotation/post_construct.d.ts +4 -0
- package/lib/esm/types/di/annotation/pre_destroy.d.ts +4 -0
- package/lib/esm/types/di/annotation/property_event_decorator.d.ts +4 -0
- package/lib/esm/types/di/annotation/tagged.d.ts +2 -0
- package/lib/esm/types/di/annotation/target_name.d.ts +3 -0
- package/lib/esm/types/di/annotation/unmanaged.d.ts +3 -0
- package/lib/esm/types/di/binding-decorator/constants.d.ts +7 -0
- package/lib/esm/types/di/binding-decorator/decorator/fluent_provide.d.ts +4 -0
- package/lib/esm/types/di/binding-decorator/decorator/provide.d.ts +4 -0
- package/lib/esm/types/di/binding-decorator/factory/module_factory.d.ts +23 -0
- package/lib/esm/types/di/binding-decorator/index.d.ts +10 -0
- package/lib/esm/types/di/binding-decorator/interfaces/interfaces.d.ts +40 -0
- package/lib/esm/types/di/binding-decorator/syntax/provide_done_syntax.d.ts +7 -0
- package/lib/esm/types/di/binding-decorator/syntax/provide_in_syntax.d.ts +12 -0
- package/lib/esm/types/di/binding-decorator/syntax/provide_in_when_on_syntax.d.ts +28 -0
- package/lib/esm/types/di/binding-decorator/syntax/provide_on_syntax.d.ts +10 -0
- package/lib/esm/types/di/binding-decorator/syntax/provide_when_on_syntax.d.ts +24 -0
- package/lib/esm/types/di/binding-decorator/syntax/provide_when_syntax.d.ts +23 -0
- package/lib/esm/types/di/binding-decorator/utils/auto_wire.d.ts +3 -0
- package/lib/esm/types/di/bindings/binding.d.ts +20 -0
- package/lib/esm/types/di/bindings/binding_count.d.ts +5 -0
- package/lib/esm/types/di/constants/error_msgs.d.ts +32 -0
- package/lib/esm/types/di/constants/literal_types.d.ts +5 -0
- package/lib/esm/types/di/constants/metadata_keys.d.ts +13 -0
- package/lib/esm/types/di/container/container.d.ts +73 -0
- package/lib/esm/types/di/container/container_module.d.ts +11 -0
- package/lib/esm/types/di/container/container_snapshot.d.ts +10 -0
- package/lib/esm/types/di/container/lookup.d.ts +16 -0
- package/lib/esm/types/di/container/module_activation_store.d.ts +10 -0
- package/lib/esm/types/di/container-introspection.d.ts +25 -0
- package/lib/esm/types/di/interfaces/interfaces.d.ts +300 -0
- package/lib/esm/types/di/inversify.d.ts +54 -0
- package/lib/esm/types/di/planning/context.d.ts +11 -0
- package/lib/esm/types/di/planning/metadata.d.ts +8 -0
- package/lib/esm/types/di/planning/metadata_reader.d.ts +6 -0
- package/lib/esm/types/di/planning/plan.d.ts +7 -0
- package/lib/esm/types/di/planning/planner.d.ts +5 -0
- package/lib/esm/types/di/planning/queryable_string.d.ts +11 -0
- package/lib/esm/types/di/planning/reflection_utils.d.ts +5 -0
- package/lib/esm/types/di/planning/request.d.ts +14 -0
- package/lib/esm/types/di/planning/target.d.ts +23 -0
- package/lib/esm/types/di/resolution/instantiation.d.ts +3 -0
- package/lib/esm/types/di/resolution/resolver.d.ts +3 -0
- package/lib/esm/types/di/scope/scope-registry.d.ts +91 -0
- package/lib/esm/types/di/scope/scope.d.ts +3 -0
- package/lib/esm/types/di/syntax/binding_in_syntax.d.ts +10 -0
- package/lib/esm/types/di/syntax/binding_in_when_on_syntax.d.ts +30 -0
- package/lib/esm/types/di/syntax/binding_on_syntax.d.ts +8 -0
- package/lib/esm/types/di/syntax/binding_to_syntax.d.ts +18 -0
- package/lib/esm/types/di/syntax/binding_when_on_syntax.d.ts +25 -0
- package/lib/esm/types/di/syntax/binding_when_syntax.d.ts +21 -0
- package/lib/esm/types/di/syntax/constraint_helpers.d.ts +6 -0
- package/lib/esm/types/di/utils/async.d.ts +3 -0
- package/lib/esm/types/di/utils/binding_utils.d.ts +4 -0
- package/lib/esm/types/di/utils/clonable.d.ts +3 -0
- package/lib/esm/types/di/utils/exceptions.d.ts +2 -0
- package/lib/esm/types/di/utils/factory_type.d.ts +5 -0
- package/lib/esm/types/di/utils/id.d.ts +2 -0
- package/lib/esm/types/di/utils/js.d.ts +1 -0
- package/lib/esm/types/di/utils/serialization.d.ts +10 -0
- package/lib/esm/types/error/app-error.d.ts +177 -0
- package/lib/esm/types/error/base-exception-filter.d.ts +73 -0
- package/lib/esm/types/error/error-handler-middleware.d.ts +11 -0
- package/lib/esm/types/error/exception-filter-constants.d.ts +9 -0
- package/lib/esm/types/error/exception-filter-decorators.d.ts +126 -0
- package/lib/esm/types/error/exception-filter-registry.d.ts +38 -0
- package/lib/esm/types/error/exception-filter.interface.d.ts +82 -0
- package/lib/esm/types/error/exception-handler-middleware.d.ts +35 -0
- package/lib/esm/types/error/filters/app-error.filter.d.ts +10 -0
- package/lib/esm/types/error/filters/global-exception.filter.d.ts +9 -0
- package/lib/esm/types/error/filters/not-found.filter.d.ts +10 -0
- package/lib/esm/types/error/filters/validation-error.filter.d.ts +10 -0
- package/lib/esm/types/error/index.d.ts +14 -0
- package/lib/esm/types/error/not-found.error.d.ts +7 -0
- package/lib/esm/types/error/report.d.ts +105 -0
- package/lib/esm/types/error/status-code.d.ts +156 -0
- package/lib/esm/types/error/utils.d.ts +17 -0
- package/lib/esm/types/error/validation.error.d.ts +8 -0
- package/lib/esm/types/event/event-decorators.d.ts +199 -0
- package/lib/esm/types/event/event-emitter.d.ts +109 -0
- package/lib/esm/types/event/event-flow-tracker.d.ts +88 -0
- package/lib/esm/types/event/event-recorder.d.ts +121 -0
- package/lib/esm/types/event/event-registry.d.ts +84 -0
- package/lib/esm/types/event/event.interfaces.d.ts +528 -0
- package/lib/esm/types/event/index.d.ts +55 -0
- package/lib/esm/types/index.d.ts +27 -0
- package/lib/esm/types/interceptor/conditional-interceptor.d.ts +91 -0
- package/lib/esm/types/interceptor/execution-context.d.ts +41 -0
- package/lib/esm/types/interceptor/index.d.ts +41 -0
- package/lib/esm/types/interceptor/interceptor-composition.d.ts +115 -0
- package/lib/esm/types/interceptor/interceptor-constants.d.ts +17 -0
- package/lib/esm/types/interceptor/interceptor-decorators.d.ts +124 -0
- package/lib/esm/types/interceptor/interceptor-executor.d.ts +46 -0
- package/lib/esm/types/interceptor/interceptor-registry.d.ts +65 -0
- package/lib/esm/types/interceptor/interceptor.interface.d.ts +281 -0
- package/lib/esm/types/interceptor/interceptors/index.d.ts +6 -0
- package/lib/esm/types/interceptor/interceptors/logging.interceptor.d.ts +28 -0
- package/lib/esm/types/interceptor/interceptors/performance.interceptor.d.ts +197 -0
- package/lib/esm/types/interceptor/interceptors/timeout.interceptor.d.ts +42 -0
- package/lib/esm/types/lazy-loading/index.d.ts +42 -0
- package/lib/esm/types/lazy-loading/lazy-load-metrics.d.ts +139 -0
- package/lib/esm/types/lazy-loading/lazy-module-loader.d.ts +169 -0
- package/lib/esm/types/lazy-loading/lazy-module-manager.d.ts +148 -0
- package/lib/esm/types/lazy-loading/lazy-module-warmup.d.ts +130 -0
- package/lib/esm/types/lazy-loading/lazy-module.d.ts +168 -0
- package/lib/esm/types/lazy-loading/lazy.interfaces.d.ts +480 -0
- package/lib/esm/types/lifecycle/index.d.ts +9 -0
- package/lib/esm/types/lifecycle/lifecycle-registry.d.ts +213 -0
- package/lib/esm/types/lifecycle/lifecycle.interface.d.ts +191 -0
- package/lib/esm/types/middleware/content-negotiation/accept-header-parser.d.ts +26 -0
- package/lib/esm/types/middleware/content-negotiation/content-negotiation-service.d.ts +64 -0
- package/lib/esm/types/middleware/content-negotiation/formatter-registry.d.ts +60 -0
- package/lib/esm/types/middleware/content-negotiation/formatters/csv-formatter.d.ts +34 -0
- package/lib/esm/types/middleware/content-negotiation/formatters/index.d.ts +8 -0
- package/lib/esm/types/middleware/content-negotiation/formatters/json-formatter.d.ts +14 -0
- package/lib/esm/types/middleware/content-negotiation/formatters/plain-text-formatter.d.ts +12 -0
- package/lib/esm/types/middleware/content-negotiation/formatters/xml-formatter.d.ts +26 -0
- package/lib/esm/types/middleware/content-negotiation/formatters/yaml-formatter.d.ts +26 -0
- package/lib/esm/types/middleware/content-negotiation/index.d.ts +7 -0
- package/lib/esm/types/middleware/index.d.ts +25 -0
- package/lib/esm/types/middleware/interfaces/body-parser.interface.d.ts +31 -0
- package/lib/esm/types/middleware/interfaces/compression.interface.d.ts +98 -0
- package/lib/esm/types/middleware/interfaces/content-negotiation.interface.d.ts +142 -0
- package/lib/esm/types/middleware/interfaces/cookie-parser.interface.d.ts +9 -0
- package/lib/esm/types/middleware/interfaces/cookie-session/cookie-session.interface.d.ts +57 -0
- package/lib/esm/types/middleware/interfaces/cookie-session/keygrip.interface.d.ts +27 -0
- package/lib/esm/types/middleware/interfaces/cors.interface.d.ts +57 -0
- package/lib/esm/types/middleware/interfaces/express-rate-limit.interface.d.ts +292 -0
- package/lib/esm/types/middleware/interfaces/express-session.interface.d.ts +207 -0
- package/lib/esm/types/middleware/interfaces/helmet.interface.d.ts +210 -0
- package/lib/esm/types/middleware/interfaces/morgan.interface.d.ts +39 -0
- package/lib/esm/types/middleware/interfaces/multer.interface.d.ts +253 -0
- package/lib/esm/types/middleware/interfaces/serve-favicon.interface.d.ts +11 -0
- package/lib/esm/types/middleware/interfaces/serve-static.interface.d.ts +69 -0
- package/lib/esm/types/middleware/interfaces/url-encoded.interface.d.ts +37 -0
- package/lib/esm/types/middleware/middleware-config.d.ts +574 -0
- package/lib/esm/types/middleware/middleware-interface.d.ts +691 -0
- package/lib/esm/types/middleware/middleware-presets.d.ts +90 -0
- package/lib/esm/types/middleware/middleware-profiler.d.ts +199 -0
- package/lib/esm/types/middleware/middleware-registry.d.ts +103 -0
- package/lib/esm/types/middleware/middleware-resolver.d.ts +159 -0
- package/lib/esm/types/middleware/middleware-service.d.ts +767 -0
- package/lib/esm/types/middleware/middleware-utils.d.ts +145 -0
- package/lib/esm/types/middleware/upload-registry.d.ts +50 -0
- package/lib/esm/types/path-resolver/index.d.ts +80 -0
- package/lib/esm/types/provider/db-in-memory/adapter/adapter.interface.d.ts +222 -0
- package/lib/esm/types/provider/db-in-memory/adapter/in-memory.adapter.d.ts +239 -0
- package/lib/esm/types/provider/db-in-memory/adapter/index.d.ts +6 -0
- package/lib/esm/types/provider/db-in-memory/base-repo.repository.d.ts +18 -0
- package/lib/esm/types/provider/db-in-memory/db-in-memory.interface.d.ts +43 -0
- package/lib/esm/types/provider/db-in-memory/db-in-memory.provider.d.ts +39 -0
- package/lib/esm/types/provider/db-in-memory/db-in-memory.types.d.ts +14 -0
- package/lib/esm/types/provider/db-in-memory/db.provider.d.ts +281 -0
- package/lib/esm/types/provider/db-in-memory/index.d.ts +63 -0
- package/lib/esm/types/provider/db-in-memory/query/index.d.ts +6 -0
- package/lib/esm/types/provider/db-in-memory/query/query-engine.d.ts +101 -0
- package/lib/esm/types/provider/db-in-memory/query/query.types.d.ts +318 -0
- package/lib/esm/types/provider/db-in-memory/schema/decorators.d.ts +314 -0
- package/lib/esm/types/provider/db-in-memory/schema/entity.interface.d.ts +60 -0
- package/lib/esm/types/provider/db-in-memory/schema/index.d.ts +6 -0
- package/lib/esm/types/provider/db-in-memory/storage/index.d.ts +5 -0
- package/lib/esm/types/provider/db-in-memory/storage/memory-store.d.ts +326 -0
- package/lib/esm/types/provider/dto-validator/dto-validator.provider.d.ts +10 -0
- package/lib/esm/types/provider/dto-validator/package-resolver.d.ts +7 -0
- package/lib/esm/types/provider/index.d.ts +7 -0
- package/lib/esm/types/provider/logger/decorators/index.d.ts +1 -0
- package/lib/esm/types/provider/logger/decorators/log-performance.decorator.d.ts +49 -0
- package/lib/esm/types/provider/logger/index.d.ts +17 -0
- package/lib/esm/types/provider/logger/logger.banner.d.ts +94 -0
- package/lib/esm/types/provider/logger/logger.config.d.ts +55 -0
- package/lib/esm/types/provider/logger/logger.context.d.ts +189 -0
- package/lib/esm/types/provider/logger/logger.flow.d.ts +165 -0
- package/lib/esm/types/provider/logger/logger.formatter.d.ts +44 -0
- package/lib/esm/types/provider/logger/logger.grouping.d.ts +124 -0
- package/lib/esm/types/provider/logger/logger.health.d.ts +123 -0
- package/lib/esm/types/provider/logger/logger.metrics-collector.d.ts +44 -0
- package/lib/esm/types/provider/logger/logger.metrics.d.ts +162 -0
- package/lib/esm/types/provider/logger/logger.performance.d.ts +179 -0
- package/lib/esm/types/provider/logger/logger.provider.d.ts +332 -0
- package/lib/esm/types/provider/logger/logger.query.d.ts +232 -0
- package/lib/esm/types/provider/logger/logger.redaction.d.ts +169 -0
- package/lib/esm/types/provider/logger/logger.suggestions.d.ts +124 -0
- package/lib/esm/types/provider/logger/transports/console.transport.d.ts +49 -0
- package/lib/esm/types/provider/logger/transports/file.transport.d.ts +87 -0
- package/lib/esm/types/provider/logger/transports/http-server.d.ts +88 -0
- package/lib/esm/types/provider/logger/transports/http.transport.d.ts +74 -0
- package/lib/esm/types/provider/logger/transports/index.d.ts +5 -0
- package/lib/esm/types/provider/logger/transports/transport.interface.d.ts +31 -0
- package/lib/esm/types/provider/logger/utils/index.d.ts +2 -0
- package/lib/esm/types/provider/logger/utils/log-entry.d.ts +82 -0
- package/lib/esm/types/provider/logger/utils/log-levels.d.ts +53 -0
- package/lib/esm/types/provider/provider-manager.d.ts +208 -0
- package/lib/esm/types/provider/provider-registry.d.ts +192 -0
- package/lib/esm/types/provider/provider.interface.d.ts +337 -0
- package/lib/esm/types/provider/validation/adapters/class-validator.adapter.d.ts +68 -0
- package/lib/esm/types/provider/validation/adapters/index.d.ts +10 -0
- package/lib/esm/types/provider/validation/helpful-error-formatter.d.ts +110 -0
- package/lib/esm/types/provider/validation/index.d.ts +19 -0
- package/lib/esm/types/provider/validation/smart-field-detector.d.ts +91 -0
- package/lib/esm/types/provider/validation/type-inference.d.ts +81 -0
- package/lib/esm/types/provider/validation/validation-registry.d.ts +105 -0
- package/lib/esm/types/provider/validation/validation.interface.d.ts +178 -0
- package/lib/esm/types/render/adapters/base-adapter.d.ts +95 -0
- package/lib/esm/types/render/adapters/ejs-adapter.d.ts +57 -0
- package/lib/esm/types/render/adapters/handlebars-adapter.d.ts +74 -0
- package/lib/esm/types/render/adapters/index.d.ts +12 -0
- package/lib/esm/types/render/adapters/pug-adapter.d.ts +57 -0
- package/lib/esm/types/render/adapters/react-adapter.d.ts +99 -0
- package/lib/esm/types/render/features/auto-detection.d.ts +58 -0
- package/lib/esm/types/render/features/hot-reload.d.ts +65 -0
- package/lib/esm/types/render/features/index.d.ts +12 -0
- package/lib/esm/types/render/features/streaming.d.ts +39 -0
- package/lib/esm/types/render/features/type-generator.d.ts +64 -0
- package/lib/esm/types/render/features/view-debugger.d.ts +42 -0
- package/lib/esm/types/render/index.d.ts +50 -0
- package/lib/esm/types/render/presets/index.d.ts +119 -0
- package/lib/esm/types/render/render-config.d.ts +213 -0
- package/lib/esm/types/render/render-interface.d.ts +126 -0
- package/lib/esm/types/render/render-registry.d.ts +86 -0
- package/lib/esm/types/render/render-service.d.ts +157 -0
- package/lib/esm/types/render/utils/cache-manager.d.ts +106 -0
- package/lib/esm/types/render/utils/index.d.ts +11 -0
- package/lib/esm/types/render/utils/package-resolver.d.ts +57 -0
- package/lib/esm/types/render/utils/view-scanner.d.ts +74 -0
- package/lib/esm/types/testing/create-test-app.d.ts +71 -0
- package/lib/esm/types/testing/create-test-database.d.ts +100 -0
- package/lib/esm/types/testing/fluent-request.d.ts +37 -0
- package/lib/esm/types/testing/index.d.ts +93 -0
- package/lib/esm/types/testing/load-test.d.ts +139 -0
- package/lib/esm/types/testing/matchers.d.ts +184 -0
- package/lib/esm/types/testing/mock-context.d.ts +117 -0
- package/lib/esm/types/testing/mock-provider.d.ts +93 -0
- package/lib/esm/types/testing/snapshot-request.d.ts +46 -0
- package/lib/esm/types/testing/testing.interfaces.d.ts +948 -0
- package/lib/esm/types/utils/node-require.d.ts +11 -0
- package/lib/esm/utils/node-require.js +56 -0
- package/lib/package.json +152 -151
- package/package.json +152 -151
- package/lib/cjs/provider/environment/env-validator.provider.js +0 -100
- package/lib/cjs/types/provider/environment/env-validator.provider.d.ts +0 -39
|
@@ -1,18 +1,11 @@
|
|
|
1
1
|
import { ErrorRequestHandler, NextFunction, Request, RequestHandler, RequestParamHandler, Response } from "express";
|
|
2
|
-
import { ErrorHandlerOptions, IMiddleware } from "./middleware-interface";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { SessionOptions } from "./interfaces/express-session.interface";
|
|
10
|
-
import { OptionsHelmet } from "./interfaces/helmet.interface";
|
|
11
|
-
import { FormatFn, OptionsMorgan } from "./interfaces/morgan.interface";
|
|
12
|
-
import { multer } from "./interfaces/multer.interface";
|
|
13
|
-
import { ServeFaviconOptions } from "./interfaces/serve-favicon.interface";
|
|
14
|
-
import { ServeStaticOptions } from "./interfaces/serve-static.interface";
|
|
15
|
-
import { OptionsUrlencoded } from "./interfaces/url-encoded.interface";
|
|
2
|
+
import { ErrorHandlerOptions, IMiddleware } from "./middleware-interface.js";
|
|
3
|
+
import { MiddlewareEntry as RegistryEntry } from "./middleware-registry.js";
|
|
4
|
+
import type { ParseOptions, MiddlewareLoggerConfig, SecurityConfig, SecurityPreset, CompressConfig, SessionConfig as V4SessionConfig, UploadConfig, UploadHandler, StaticConfig, MiddlewareConfig as V4MiddlewareConfig, OptimizationConfig, PipelineAnalysis, Recommendation } from "./middleware-config.js";
|
|
5
|
+
import { ContentNegotiationService } from "./content-negotiation/content-negotiation-service.js";
|
|
6
|
+
import { ContentNegotiationOptions } from "./interfaces/content-negotiation.interface.js";
|
|
7
|
+
import type { ValidationConfig } from "../provider/validation/validation.interface.js";
|
|
8
|
+
import { MiddlewareProfiler, MiddlewareMetrics, ProfilerStats } from "./middleware-profiler.js";
|
|
16
9
|
/**
|
|
17
10
|
* ExpressHandler Type
|
|
18
11
|
*
|
|
@@ -32,8 +25,42 @@ interface IExpressoMiddleware {
|
|
|
32
25
|
}
|
|
33
26
|
/**
|
|
34
27
|
* Abstract class for creating custom Expresso middleware.
|
|
35
|
-
* Custom middleware classes should extend this class and implement the use method.
|
|
36
28
|
*
|
|
29
|
+
* @layer public
|
|
30
|
+
* @audience application-developers
|
|
31
|
+
* @concept custom-middleware
|
|
32
|
+
* @difficulty intermediate
|
|
33
|
+
*
|
|
34
|
+
* @summary Quick Start
|
|
35
|
+
* Create custom middleware classes by extending this abstract class.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* class AuthMiddleware extends ExpressoMiddleware {
|
|
40
|
+
* use(req: Request, res: Response, next: NextFunction): void {
|
|
41
|
+
* const token = req.headers.authorization;
|
|
42
|
+
* if (!token) {
|
|
43
|
+
* return res.status(401).json({ error: "Unauthorized" });
|
|
44
|
+
* }
|
|
45
|
+
* next();
|
|
46
|
+
* }
|
|
47
|
+
* }
|
|
48
|
+
*
|
|
49
|
+
* // Use in application
|
|
50
|
+
* services.Middleware.addMiddleware(new AuthMiddleware());
|
|
51
|
+
* ```
|
|
52
|
+
*
|
|
53
|
+
* @layer internal
|
|
54
|
+
* @audience framework-developers
|
|
55
|
+
*
|
|
56
|
+
* **Internal Behavior**
|
|
57
|
+
* - Provides `name` getter (returns constructor name)
|
|
58
|
+
* - Abstract `use()` method must be implemented
|
|
59
|
+
* - Compatible with Express middleware signature
|
|
60
|
+
*
|
|
61
|
+
* @see {@link IMiddleware.addMiddleware} for adding middleware
|
|
62
|
+
*
|
|
63
|
+
* @public API
|
|
37
64
|
*/
|
|
38
65
|
export declare abstract class ExpressoMiddleware implements IExpressoMiddleware {
|
|
39
66
|
get name(): string;
|
|
@@ -57,29 +84,196 @@ type MiddlewareConfig = {
|
|
|
57
84
|
path?: string;
|
|
58
85
|
middlewares: Array<ExpressHandler | IExpressoMiddleware>;
|
|
59
86
|
};
|
|
87
|
+
/**
|
|
88
|
+
* Middleware category for banner display and organization.
|
|
89
|
+
* @public API
|
|
90
|
+
*/
|
|
91
|
+
export type MiddlewareCategory = "parser" | "security" | "logging" | "validation" | "error" | "session" | "static" | "other";
|
|
92
|
+
/**
|
|
93
|
+
* Enhanced middleware entry with metadata for introspection.
|
|
94
|
+
* @public API
|
|
95
|
+
*/
|
|
96
|
+
export interface MiddlewareEntry {
|
|
97
|
+
/** Display name of the middleware */
|
|
98
|
+
name: string;
|
|
99
|
+
/** Whether this is a built-in or custom middleware */
|
|
100
|
+
type: "built-in" | "custom";
|
|
101
|
+
/** Category for organization */
|
|
102
|
+
category: MiddlewareCategory;
|
|
103
|
+
/** Order in the pipeline (0-based) */
|
|
104
|
+
order: number;
|
|
105
|
+
/** Route path (or "Global" for global middleware) */
|
|
106
|
+
path: string;
|
|
107
|
+
/** The actual middleware */
|
|
108
|
+
middleware: ExpressHandler | MiddlewareConfig | IExpressoMiddleware;
|
|
109
|
+
}
|
|
60
110
|
/**
|
|
61
111
|
* MiddlewarePipeline Interface
|
|
62
112
|
*
|
|
63
113
|
* The MiddlewarePipeline interface represents the metadata and actual middleware to be executed in a middleware pipeline.
|
|
64
|
-
* -
|
|
114
|
+
* - order: The insertion order of the middleware (for stable sorting).
|
|
65
115
|
* - middleware: Can be either an ExpressHandler function or a MiddlewareConfig object defining a more complex middleware setup.
|
|
66
116
|
*/
|
|
67
117
|
interface MiddlewarePipeline {
|
|
68
|
-
|
|
118
|
+
/** Insertion order for stable sorting */
|
|
119
|
+
order: number;
|
|
120
|
+
/** The middleware handler or config */
|
|
69
121
|
middleware: ExpressHandler | MiddlewareConfig | IExpressoMiddleware;
|
|
122
|
+
/** Middleware name for lookup */
|
|
123
|
+
name?: string;
|
|
124
|
+
/** Middleware category */
|
|
125
|
+
category?: MiddlewareCategory;
|
|
126
|
+
/** Whether this is built-in */
|
|
127
|
+
isBuiltIn?: boolean;
|
|
128
|
+
/** Condition function for conditional middleware */
|
|
129
|
+
condition?: (req: Request) => boolean;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Middleware pipeline info for banner display.
|
|
133
|
+
* @public API
|
|
134
|
+
*/
|
|
135
|
+
export interface MiddlewarePipelineInfo {
|
|
136
|
+
/** Total middleware count */
|
|
137
|
+
total: number;
|
|
138
|
+
/** Middleware entries */
|
|
139
|
+
entries: Array<MiddlewareEntry>;
|
|
140
|
+
/** Middleware count by category */
|
|
141
|
+
byCategory: Record<MiddlewareCategory, number>;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Conditional middleware configuration.
|
|
145
|
+
* @public API
|
|
146
|
+
*/
|
|
147
|
+
export interface ConditionalMiddlewareConfig {
|
|
148
|
+
/** The middleware handler */
|
|
149
|
+
middleware: ExpressHandler;
|
|
150
|
+
/** Condition function - middleware runs only if this returns true */
|
|
151
|
+
condition: (req: Request) => boolean;
|
|
152
|
+
/** Optional name for the middleware */
|
|
153
|
+
name?: string;
|
|
154
|
+
/** Optional category */
|
|
155
|
+
category?: MiddlewareCategory;
|
|
70
156
|
}
|
|
71
157
|
/**
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
158
|
+
* Middleware service for managing Express middleware pipeline.
|
|
159
|
+
*
|
|
160
|
+
* @layer public
|
|
161
|
+
* @audience application-developers
|
|
162
|
+
* @concept middleware-management
|
|
163
|
+
* @difficulty beginner
|
|
164
|
+
*
|
|
165
|
+
* @summary Quick Start
|
|
166
|
+
* Configure and manage middleware for your ExpressoTS application.
|
|
167
|
+
*
|
|
168
|
+
* @example
|
|
169
|
+
* ```typescript
|
|
170
|
+
* @provide(App)
|
|
171
|
+
* export class App extends AppFactory {
|
|
172
|
+
* configureServices(services: IService): void {
|
|
173
|
+
* // Add built-in middleware
|
|
174
|
+
* services.Middleware.addCors();
|
|
175
|
+
* services.Middleware.addBodyParser();
|
|
176
|
+
* services.Middleware.addHelmet();
|
|
177
|
+
*
|
|
178
|
+
* // Add custom middleware
|
|
179
|
+
* services.Middleware.addMiddleware((req, res, next) => {
|
|
180
|
+
* // Custom logic
|
|
181
|
+
* next();
|
|
182
|
+
* });
|
|
183
|
+
* }
|
|
184
|
+
* }
|
|
185
|
+
* ```
|
|
186
|
+
*
|
|
187
|
+
* **Features:**
|
|
188
|
+
* - Built-in middleware helpers (CORS, Helmet, Body Parser, etc.)
|
|
189
|
+
* - Custom middleware support
|
|
190
|
+
* - Middleware presets for common configurations
|
|
191
|
+
* - Conditional middleware execution
|
|
192
|
+
* - Content negotiation
|
|
193
|
+
* - Request validation
|
|
194
|
+
* - Performance profiling
|
|
195
|
+
*
|
|
196
|
+
* @layer internal
|
|
197
|
+
* @audience framework-developers
|
|
198
|
+
*
|
|
199
|
+
* **Internal Architecture**
|
|
200
|
+
*
|
|
201
|
+
* Middleware service:
|
|
202
|
+
* - Maintains ordered pipeline array
|
|
203
|
+
* - Uses Map for O(1) middleware lookup
|
|
204
|
+
* - Caches sorted pipeline for performance
|
|
205
|
+
* - Supports conditional middleware execution
|
|
206
|
+
* - Integrates with middleware resolver for auto-discovery
|
|
207
|
+
*
|
|
208
|
+
* **Design Decisions**
|
|
209
|
+
* - Singleton pattern (one instance per app)
|
|
210
|
+
* - Ordered pipeline (insertion order preserved)
|
|
211
|
+
* - Cached sorting (invalidated on changes)
|
|
212
|
+
* - Built-in middleware auto-discovery
|
|
213
|
+
*
|
|
214
|
+
* @see {@link IMiddleware} for interface definition
|
|
215
|
+
* @see {@link middlewareResolver} for middleware resolution
|
|
216
|
+
*
|
|
217
|
+
* @layer advanced
|
|
218
|
+
* @audience power-users
|
|
219
|
+
*
|
|
220
|
+
* **Advanced Usage**
|
|
221
|
+
*
|
|
222
|
+
* Conditional middleware:
|
|
223
|
+
* ```typescript
|
|
224
|
+
* services.Middleware.addConditional({
|
|
225
|
+
* middleware: rateLimiter,
|
|
226
|
+
* condition: (req) => !req.headers["x-internal-service"],
|
|
227
|
+
* name: "conditional-rate-limit"
|
|
228
|
+
* });
|
|
229
|
+
* ```
|
|
230
|
+
*
|
|
231
|
+
* Middleware presets:
|
|
232
|
+
* ```typescript
|
|
233
|
+
* services.Middleware.usePreset("api", {
|
|
234
|
+
* overrides: {
|
|
235
|
+
* Cors: { origin: "https://myapp.com" }
|
|
236
|
+
* }
|
|
237
|
+
* });
|
|
238
|
+
* ```
|
|
75
239
|
*
|
|
76
|
-
* @see IConfigure
|
|
77
240
|
* @public API
|
|
78
241
|
*/
|
|
79
242
|
export declare class Middleware implements IMiddleware {
|
|
243
|
+
private middlewareMap;
|
|
80
244
|
private middlewarePipeline;
|
|
245
|
+
private insertionOrder;
|
|
246
|
+
private sortedPipelineCache;
|
|
81
247
|
private errorHandler;
|
|
82
|
-
private
|
|
248
|
+
private _logger;
|
|
249
|
+
private contentNegotiationService;
|
|
250
|
+
private profiler;
|
|
251
|
+
private profilingEnabled;
|
|
252
|
+
private customPresets;
|
|
253
|
+
private registry;
|
|
254
|
+
private startupLogs;
|
|
255
|
+
private registeredMiddlewareNames;
|
|
256
|
+
constructor();
|
|
257
|
+
/**
|
|
258
|
+
* Buffer a startup log message to be displayed after the banner.
|
|
259
|
+
* Only buffers in development mode.
|
|
260
|
+
* @param message - The message to buffer
|
|
261
|
+
* @param type - Log type: "info" or "warn"
|
|
262
|
+
*/
|
|
263
|
+
private bufferStartupLog;
|
|
264
|
+
/**
|
|
265
|
+
* Get all buffered startup logs for display after the banner.
|
|
266
|
+
* Includes warnings from the middleware resolver (e.g., missing packages).
|
|
267
|
+
* @returns Array of startup log entries
|
|
268
|
+
*/
|
|
269
|
+
getStartupLogs(): Array<{
|
|
270
|
+
message: string;
|
|
271
|
+
type: "info" | "warn";
|
|
272
|
+
}>;
|
|
273
|
+
/**
|
|
274
|
+
* Clear all buffered startup logs.
|
|
275
|
+
*/
|
|
276
|
+
clearStartupLogs(): void;
|
|
83
277
|
/**
|
|
84
278
|
* Retrieves the type of the middleware.
|
|
85
279
|
*
|
|
@@ -89,157 +283,485 @@ export declare class Middleware implements IMiddleware {
|
|
|
89
283
|
private getMiddlewareType;
|
|
90
284
|
/**
|
|
91
285
|
* Checks if a middleware with the given name exists in the middleware collection.
|
|
286
|
+
* Uses O(1) Map lookup instead of O(n) array scan.
|
|
92
287
|
*
|
|
93
288
|
* @param middlewareName - The name of the middleware to be checked.
|
|
94
289
|
* @returns A boolean value indicating whether the middleware exists or not.
|
|
95
290
|
*/
|
|
96
291
|
private middlewareExists;
|
|
97
292
|
/**
|
|
98
|
-
*
|
|
99
|
-
* The URL Encoded Parser is responsible for parsing the URL-encoded data in the incoming request bodies.
|
|
100
|
-
*
|
|
101
|
-
* @param options - Optional configuration options for the URL Encoded Parser.
|
|
293
|
+
* Invalidate the sorted pipeline cache.
|
|
102
294
|
*/
|
|
103
|
-
|
|
104
|
-
addRateLimiter(options?: RateLimitOptions): void;
|
|
295
|
+
private invalidateCache;
|
|
105
296
|
/**
|
|
106
|
-
*
|
|
297
|
+
* Generic method to add built-in middleware with consistent pattern.
|
|
107
298
|
*
|
|
108
|
-
* @param
|
|
299
|
+
* @param name - Middleware name for lookup
|
|
300
|
+
* @param category - Middleware category
|
|
301
|
+
* @param middlewareFactory - Factory function that creates the middleware
|
|
302
|
+
* @returns True if middleware was added, false if skipped
|
|
109
303
|
*/
|
|
110
|
-
|
|
304
|
+
private addBuiltInMiddleware;
|
|
111
305
|
/**
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
* @param options - Optional configuration options for CORS. Defines the behavior of CORS requests like allowed origins, methods, headers, etc.
|
|
306
|
+
* Get middleware name from a pipeline entry.
|
|
115
307
|
*/
|
|
116
|
-
|
|
308
|
+
private getMiddlewareName;
|
|
117
309
|
/**
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
* @param options - Optional configuration options for Compression. Allows fine-tuning the compression behavior, such as setting the compression level, threshold, and filter functions to determine which requests should be compressed.
|
|
310
|
+
* Get the category of a middleware.
|
|
121
311
|
*/
|
|
122
|
-
|
|
312
|
+
private getMiddlewareCategory;
|
|
123
313
|
/**
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
* @param format - The log format. Can be a string or a function.
|
|
127
|
-
* @param options - Optional configuration options for Morgan. Defines the behavior of the logger like the output stream, buffer duration, etc.
|
|
314
|
+
* Get the path for a middleware.
|
|
128
315
|
*/
|
|
129
|
-
|
|
316
|
+
private getMiddlewarePath;
|
|
130
317
|
/**
|
|
131
|
-
*
|
|
132
|
-
*
|
|
133
|
-
* @
|
|
134
|
-
* @param options - Optional configuration options for Cookie Parser.
|
|
318
|
+
* Internal: Sets up Multer middleware for handling multipart/form-data.
|
|
319
|
+
* Used by upload() method.
|
|
320
|
+
* @internal
|
|
135
321
|
*/
|
|
136
|
-
|
|
322
|
+
private setupMulter;
|
|
137
323
|
/**
|
|
138
|
-
* Adds
|
|
139
|
-
*
|
|
140
|
-
* @
|
|
324
|
+
* Internal: Adds a middleware to serve static files.
|
|
325
|
+
* Used by static() method.
|
|
326
|
+
* @internal
|
|
141
327
|
*/
|
|
142
|
-
|
|
328
|
+
private serveStatic;
|
|
143
329
|
/**
|
|
144
|
-
*
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
*
|
|
330
|
+
* Helper method to add middleware configuration objects.
|
|
331
|
+
*/
|
|
332
|
+
private addConfigMiddleware;
|
|
333
|
+
/**
|
|
334
|
+
* Helper method to add express request handler functions.
|
|
149
335
|
*/
|
|
150
|
-
|
|
151
|
-
|
|
336
|
+
private addExpressHandlerMiddleware;
|
|
337
|
+
/**
|
|
338
|
+
* Helper method to add custom Expresso middleware.
|
|
339
|
+
*/
|
|
340
|
+
private addIExpressoMiddleware;
|
|
152
341
|
/**
|
|
153
|
-
* Adds a middleware to
|
|
342
|
+
* Adds a middleware to the middleware collection.
|
|
343
|
+
*
|
|
344
|
+
* @param options - The Express request handler function, middleware configuration object,
|
|
345
|
+
* or a custom Expresso middleware.
|
|
154
346
|
*
|
|
155
|
-
* @
|
|
347
|
+
* @example Express Handler
|
|
348
|
+
* ```typescript
|
|
349
|
+
* const middleware = (req, res, next) => {
|
|
350
|
+
* // Your middleware logic here
|
|
351
|
+
* next();
|
|
352
|
+
* }
|
|
353
|
+
* ```
|
|
354
|
+
*
|
|
355
|
+
* @example Middleware Configuration Object
|
|
356
|
+
* ```typescript
|
|
357
|
+
* const middleware = {
|
|
358
|
+
* path: "/",
|
|
359
|
+
* middlewares: [] // Array of Express Handlers
|
|
360
|
+
* }
|
|
361
|
+
* ```
|
|
156
362
|
*
|
|
363
|
+
* @example Expresso Middleware
|
|
364
|
+
* ```typescript
|
|
365
|
+
* class CustomMiddleware implements IExpressoMiddleware {
|
|
366
|
+
* use(req: Request, res: Response, next: NextFunction): Promise<void> | void {
|
|
367
|
+
* // Your middleware logic here
|
|
368
|
+
* next();
|
|
369
|
+
* }
|
|
370
|
+
* }
|
|
371
|
+
* ```
|
|
157
372
|
*/
|
|
158
|
-
|
|
373
|
+
addMiddleware(options: MiddlewareOptions): void;
|
|
159
374
|
/**
|
|
160
|
-
* Add a
|
|
375
|
+
* Add middleware that only executes when a condition is met.
|
|
376
|
+
*
|
|
377
|
+
* @param config - Conditional middleware configuration
|
|
161
378
|
*
|
|
162
|
-
* @
|
|
379
|
+
* @example
|
|
380
|
+
* ```typescript
|
|
381
|
+
* // Only apply rate limiting for non-internal requests
|
|
382
|
+
* middleware.addConditional({
|
|
383
|
+
* middleware: rateLimiter,
|
|
384
|
+
* condition: (req) => !req.headers["x-internal-service"],
|
|
385
|
+
* name: "conditional-rate-limit"
|
|
386
|
+
* });
|
|
163
387
|
*
|
|
388
|
+
* // Only apply auth for non-public routes
|
|
389
|
+
* middleware.addConditional({
|
|
390
|
+
* middleware: authMiddleware,
|
|
391
|
+
* condition: (req) => !req.path.startsWith("/public"),
|
|
392
|
+
* name: "conditional-auth"
|
|
393
|
+
* });
|
|
394
|
+
* ```
|
|
395
|
+
*
|
|
396
|
+
* @public API
|
|
164
397
|
*/
|
|
165
|
-
|
|
398
|
+
addConditional(config: ConditionalMiddlewareConfig): void;
|
|
166
399
|
/**
|
|
167
400
|
* Configures the error handling middleware for the application.
|
|
168
401
|
*
|
|
169
402
|
* @param options - The object containing the configuration options for the error handler middleware.
|
|
170
|
-
* @param errorHandler - The Express error handler function that takes care of processing errors and formulating the response.
|
|
171
|
-
* @param showStackTrace - A boolean value indicating whether to show the stack trace in the response.
|
|
172
403
|
*/
|
|
173
404
|
setErrorHandler(options?: ErrorHandlerOptions): void;
|
|
174
405
|
/**
|
|
175
|
-
*
|
|
176
|
-
* Allows the application to serve files like images, CSS, JavaScript, etc.
|
|
406
|
+
* Gets the configured error handler middleware.
|
|
177
407
|
*
|
|
178
|
-
* @
|
|
179
|
-
* @param options - Optional configuration options for serving static files. Defines behavior like cache control, custom headers, etc.
|
|
408
|
+
* @returns The error handler middleware.
|
|
180
409
|
*/
|
|
181
|
-
|
|
410
|
+
getErrorHandler(): ExpressHandler;
|
|
182
411
|
/**
|
|
183
|
-
*
|
|
184
|
-
*
|
|
185
|
-
* @
|
|
412
|
+
* Configures content negotiation middleware for automatic response format selection.
|
|
413
|
+
*
|
|
414
|
+
* @param options - Configuration options for content negotiation
|
|
415
|
+
* @public API
|
|
186
416
|
*/
|
|
187
|
-
|
|
417
|
+
addContentNegotiation(options?: ContentNegotiationOptions): void;
|
|
188
418
|
/**
|
|
189
|
-
*
|
|
190
|
-
* @
|
|
191
|
-
* @
|
|
419
|
+
* Gets the content negotiation service instance.
|
|
420
|
+
* @returns Content negotiation service or undefined if not configured
|
|
421
|
+
* @internal
|
|
192
422
|
*/
|
|
193
|
-
|
|
423
|
+
getContentNegotiationService(): ContentNegotiationService | undefined;
|
|
424
|
+
private validationServiceFactory?;
|
|
194
425
|
/**
|
|
195
|
-
*
|
|
196
|
-
*
|
|
197
|
-
* @
|
|
426
|
+
* Configures validation for automatic request parameter validation.
|
|
427
|
+
*
|
|
428
|
+
* @param options - Configuration options for validation
|
|
429
|
+
* @public API
|
|
198
430
|
*/
|
|
199
|
-
|
|
431
|
+
addValidation(options?: ValidationConfig): void;
|
|
200
432
|
/**
|
|
201
|
-
*
|
|
433
|
+
* Gets the validation configuration.
|
|
434
|
+
* @internal
|
|
435
|
+
*/
|
|
436
|
+
getValidationConfig(): ValidationConfig | undefined;
|
|
437
|
+
/**
|
|
438
|
+
* Sets the validation service factory (called by adapter-express).
|
|
439
|
+
* @internal
|
|
440
|
+
*/
|
|
441
|
+
setValidationServiceFactory(factory: () => unknown): void;
|
|
442
|
+
/**
|
|
443
|
+
* Gets the validation service instance.
|
|
444
|
+
* @internal
|
|
445
|
+
*/
|
|
446
|
+
getValidationService(): unknown;
|
|
447
|
+
/**
|
|
448
|
+
* Enable middleware profiling to track execution times.
|
|
202
449
|
*
|
|
203
|
-
* @param options -
|
|
204
|
-
*
|
|
450
|
+
* @param options - Profiler options
|
|
451
|
+
* @returns The profiler instance
|
|
205
452
|
*
|
|
206
|
-
* @example
|
|
207
|
-
*
|
|
208
|
-
*
|
|
209
|
-
* next();
|
|
210
|
-
* }
|
|
453
|
+
* @example
|
|
454
|
+
* ```typescript
|
|
455
|
+
* const profiler = middleware.enableProfiling();
|
|
211
456
|
*
|
|
212
|
-
*
|
|
213
|
-
*
|
|
214
|
-
*
|
|
215
|
-
*
|
|
216
|
-
* }
|
|
457
|
+
* // Later, get metrics
|
|
458
|
+
* const stats = profiler.getStats();
|
|
459
|
+
* console.log(stats.metrics);
|
|
460
|
+
* ```
|
|
217
461
|
*
|
|
218
|
-
* @
|
|
219
|
-
* class CustomMiddleware implements IExpressoMiddleware {
|
|
220
|
-
* use(req: Request, res: Response, next: NextFunction): Promise<void> | void {
|
|
221
|
-
* // Your middleware logic here
|
|
222
|
-
* next();
|
|
223
|
-
* }
|
|
224
|
-
* }
|
|
462
|
+
* @public API
|
|
225
463
|
*/
|
|
226
|
-
|
|
464
|
+
enableProfiling(options?: {
|
|
465
|
+
maxSamples?: number;
|
|
466
|
+
}): MiddlewareProfiler;
|
|
467
|
+
/**
|
|
468
|
+
* Disable middleware profiling.
|
|
469
|
+
* @public API
|
|
470
|
+
*/
|
|
471
|
+
disableProfiling(): void;
|
|
472
|
+
/**
|
|
473
|
+
* Get the profiler instance.
|
|
474
|
+
* @returns The profiler or null if not enabled
|
|
475
|
+
* @public API
|
|
476
|
+
*/
|
|
477
|
+
getProfiler(): MiddlewareProfiler | null;
|
|
478
|
+
/**
|
|
479
|
+
* Get profiling metrics for all middleware.
|
|
480
|
+
*
|
|
481
|
+
* @returns Array of middleware metrics or empty array if profiling is disabled
|
|
482
|
+
* @public API
|
|
483
|
+
*/
|
|
484
|
+
getProfilingMetrics(): Array<MiddlewareMetrics>;
|
|
485
|
+
/**
|
|
486
|
+
* Get profiling statistics.
|
|
487
|
+
*
|
|
488
|
+
* @returns Profiler statistics or null if profiling is disabled
|
|
489
|
+
* @public API
|
|
490
|
+
*/
|
|
491
|
+
getProfilingStats(): ProfilerStats | null;
|
|
492
|
+
/**
|
|
493
|
+
* Add a health check endpoint that reports middleware status.
|
|
494
|
+
*
|
|
495
|
+
* @param options - Health check options
|
|
496
|
+
*
|
|
497
|
+
* @example
|
|
498
|
+
* ```typescript
|
|
499
|
+
* middleware.addHealthCheck({
|
|
500
|
+
* path: "/health/middleware",
|
|
501
|
+
* includeMetrics: true
|
|
502
|
+
* });
|
|
503
|
+
* ```
|
|
504
|
+
*
|
|
505
|
+
* @public API
|
|
506
|
+
*/
|
|
507
|
+
addHealthCheck(options?: {
|
|
508
|
+
path?: string;
|
|
509
|
+
includeMetrics?: boolean;
|
|
510
|
+
detailed?: boolean;
|
|
511
|
+
}): void;
|
|
227
512
|
/**
|
|
228
513
|
* Retrieves middleware pipeline in the order they were added.
|
|
514
|
+
* Uses cached sorting for performance.
|
|
229
515
|
*
|
|
230
|
-
* @returns An array of
|
|
516
|
+
* @returns An array of middleware pipeline entries.
|
|
231
517
|
*/
|
|
232
518
|
getMiddlewarePipeline(): Array<MiddlewarePipeline>;
|
|
233
519
|
/**
|
|
234
|
-
* View middleware pipeline formatted.
|
|
235
|
-
* @returns void
|
|
520
|
+
* View middleware pipeline formatted as a table.
|
|
236
521
|
*/
|
|
237
522
|
viewMiddlewarePipeline(): void;
|
|
238
523
|
/**
|
|
239
|
-
*
|
|
524
|
+
* Get a visual ASCII representation of the middleware pipeline.
|
|
240
525
|
*
|
|
241
|
-
* @returns
|
|
526
|
+
* @returns ASCII art diagram of the pipeline
|
|
527
|
+
*
|
|
528
|
+
* @example
|
|
529
|
+
* ```typescript
|
|
530
|
+
* console.log(middleware.visualizePipeline());
|
|
531
|
+
* // ╔══════════════════════════════════════════════════════════════╗
|
|
532
|
+
* // ║ MIDDLEWARE PIPELINE ║
|
|
533
|
+
* // ╠══════════════════════════════════════════════════════════════╣
|
|
534
|
+
* // ║ 📦 jsonParser [parser] ║
|
|
535
|
+
* // ║ ↓ ║
|
|
536
|
+
* // ║ 🔒 cors [security] ║
|
|
537
|
+
* // ║ ↓ ║
|
|
538
|
+
* // ║ 🔒 helmet [security] ║
|
|
539
|
+
* // ╚══════════════════════════════════════════════════════════════╝
|
|
540
|
+
* ```
|
|
541
|
+
*
|
|
542
|
+
* @public API
|
|
242
543
|
*/
|
|
243
|
-
|
|
544
|
+
visualizePipeline(): string;
|
|
545
|
+
/**
|
|
546
|
+
* Get a compact summary of the middleware pipeline.
|
|
547
|
+
*
|
|
548
|
+
* @returns Single-line summary
|
|
549
|
+
* @public API
|
|
550
|
+
*/
|
|
551
|
+
getPipelineSummary(): string;
|
|
552
|
+
/**
|
|
553
|
+
* Get structured pipeline info for banner display and introspection.
|
|
554
|
+
* @returns Middleware pipeline information
|
|
555
|
+
* @public API
|
|
556
|
+
*/
|
|
557
|
+
getPipelineInfo(): MiddlewarePipelineInfo;
|
|
558
|
+
/**
|
|
559
|
+
* Get a formatted view for banner display.
|
|
560
|
+
* @param maxDisplay - Maximum number of middleware to show
|
|
561
|
+
* @returns Formatted middleware view
|
|
562
|
+
* @public API
|
|
563
|
+
*/
|
|
564
|
+
getFormattedView(maxDisplay?: number): {
|
|
565
|
+
entries: Array<{
|
|
566
|
+
name: string;
|
|
567
|
+
category: MiddlewareCategory;
|
|
568
|
+
type: "built-in" | "custom";
|
|
569
|
+
}>;
|
|
570
|
+
total: number;
|
|
571
|
+
remaining: number;
|
|
572
|
+
};
|
|
573
|
+
/**
|
|
574
|
+
* Get middleware count by category.
|
|
575
|
+
* @returns Record of category to count
|
|
576
|
+
* @public API
|
|
577
|
+
*/
|
|
578
|
+
getCountByCategory(): Record<MiddlewareCategory, number>;
|
|
579
|
+
/**
|
|
580
|
+
* Get middleware by name.
|
|
581
|
+
* @param name - The middleware name
|
|
582
|
+
* @returns The middleware entry or undefined
|
|
583
|
+
* @public API
|
|
584
|
+
*/
|
|
585
|
+
getByName(name: string): MiddlewareEntry | undefined;
|
|
586
|
+
/**
|
|
587
|
+
* Remove a middleware from the pipeline by name.
|
|
588
|
+
*
|
|
589
|
+
* @param name - The middleware name to remove
|
|
590
|
+
* @returns True if removed, false if not found
|
|
591
|
+
* @public API
|
|
592
|
+
*/
|
|
593
|
+
remove(name: string): boolean;
|
|
594
|
+
/**
|
|
595
|
+
* Clear all middleware from the pipeline.
|
|
596
|
+
* @public API
|
|
597
|
+
*/
|
|
598
|
+
clear(): void;
|
|
599
|
+
/**
|
|
600
|
+
* Get the total number of middleware in the pipeline.
|
|
601
|
+
* @returns Number of middleware
|
|
602
|
+
* @public API
|
|
603
|
+
*/
|
|
604
|
+
count(): number;
|
|
605
|
+
/**
|
|
606
|
+
* Configure request parsing (unified method).
|
|
607
|
+
* Replaces: addBodyParser, addUrlEncodedParser, addCookieParser
|
|
608
|
+
*/
|
|
609
|
+
parse(options?: ParseOptions): void;
|
|
610
|
+
/**
|
|
611
|
+
* Configure logging with any implementation.
|
|
612
|
+
* Replaces: addMorgan
|
|
613
|
+
*/
|
|
614
|
+
logger(config?: MiddlewareLoggerConfig): void;
|
|
615
|
+
private get loggerInstance();
|
|
616
|
+
/**
|
|
617
|
+
* Detect the best available logger.
|
|
618
|
+
*/
|
|
619
|
+
private detectBestLogger;
|
|
620
|
+
/**
|
|
621
|
+
* Resolve logger implementation.
|
|
622
|
+
*/
|
|
623
|
+
private resolveLoggerImplementation;
|
|
624
|
+
/**
|
|
625
|
+
* Unified security configuration.
|
|
626
|
+
* Replaces: addHelmet, addCors, addRateLimiter
|
|
627
|
+
*/
|
|
628
|
+
security(config?: SecurityConfig | SecurityPreset): void;
|
|
629
|
+
/**
|
|
630
|
+
* Get security preset configuration.
|
|
631
|
+
*/
|
|
632
|
+
private getSecurityPreset;
|
|
633
|
+
/**
|
|
634
|
+
* Configure compression.
|
|
635
|
+
* Replaces: addCompression
|
|
636
|
+
*/
|
|
637
|
+
compress(config?: CompressConfig): void;
|
|
638
|
+
/**
|
|
639
|
+
* Unified session management.
|
|
640
|
+
* Replaces: addSession, addCookieSession
|
|
641
|
+
*/
|
|
642
|
+
session(config: V4SessionConfig): void;
|
|
643
|
+
/**
|
|
644
|
+
* Enhanced file upload handling.
|
|
645
|
+
* Configures global upload settings and returns upload handlers.
|
|
646
|
+
*
|
|
647
|
+
* When called, this stores the configuration globally so that
|
|
648
|
+
* @FileUpload decorators can use these settings as defaults.
|
|
649
|
+
*
|
|
650
|
+
* @param config - Upload configuration
|
|
651
|
+
* @returns Upload handler with single, array, fields, any, none methods
|
|
652
|
+
*
|
|
653
|
+
* @example
|
|
654
|
+
* ```typescript
|
|
655
|
+
* // In app.ts - configure globally
|
|
656
|
+
* this.Middleware.upload({
|
|
657
|
+
* destination: './uploads',
|
|
658
|
+
* limits: { fileSize: 10 * 1024 * 1024 }
|
|
659
|
+
* });
|
|
660
|
+
*
|
|
661
|
+
* // In controller - @FileUpload uses global config
|
|
662
|
+
* @FileUpload({ fieldName: 'avatar' })
|
|
663
|
+
* uploadAvatar(req: Request) { }
|
|
664
|
+
* ```
|
|
665
|
+
*
|
|
666
|
+
* @public API
|
|
667
|
+
*/
|
|
668
|
+
upload(config?: UploadConfig): UploadHandler;
|
|
669
|
+
/**
|
|
670
|
+
* Enhanced static file serving.
|
|
671
|
+
* Replaces: serveStatic, addServeFavicon
|
|
672
|
+
*/
|
|
673
|
+
static(config: StaticConfig | string | Array<StaticConfig | string>): void;
|
|
674
|
+
/**
|
|
675
|
+
* Register a named middleware for use in routes.
|
|
676
|
+
*/
|
|
677
|
+
register(name: string, handler: RequestHandler | Array<RequestHandler> | RegistryEntry): void;
|
|
678
|
+
/**
|
|
679
|
+
* Get a registered middleware by name.
|
|
680
|
+
*/
|
|
681
|
+
get(name: string): RequestHandler | Array<RequestHandler> | undefined;
|
|
682
|
+
/**
|
|
683
|
+
* Check if a middleware is registered.
|
|
684
|
+
*/
|
|
685
|
+
has(name: string): boolean;
|
|
686
|
+
/**
|
|
687
|
+
* Get all registered middleware names.
|
|
688
|
+
*/
|
|
689
|
+
getRegisteredNames(): Array<string>;
|
|
690
|
+
/**
|
|
691
|
+
* Define a custom reusable preset.
|
|
692
|
+
*/
|
|
693
|
+
definePreset(name: string, config: V4MiddlewareConfig): void;
|
|
694
|
+
/**
|
|
695
|
+
* Apply a preset configuration.
|
|
696
|
+
*/
|
|
697
|
+
applyPreset(preset: string, overrides?: Partial<V4MiddlewareConfig>): void;
|
|
698
|
+
/**
|
|
699
|
+
* Get all available presets.
|
|
700
|
+
*/
|
|
701
|
+
getAllPresets(): Record<string, V4MiddlewareConfig>;
|
|
702
|
+
/**
|
|
703
|
+
* Get built-in presets.
|
|
704
|
+
*/
|
|
705
|
+
private getBuiltInPresets;
|
|
706
|
+
/**
|
|
707
|
+
* Get preset config by name.
|
|
708
|
+
*/
|
|
709
|
+
private getPresetConfig;
|
|
710
|
+
/**
|
|
711
|
+
* Get available preset names.
|
|
712
|
+
*/
|
|
713
|
+
private getAvailablePresetNames;
|
|
714
|
+
/**
|
|
715
|
+
* Merge two configs.
|
|
716
|
+
*/
|
|
717
|
+
private mergeConfigs;
|
|
718
|
+
/**
|
|
719
|
+
* Conditional middleware application.
|
|
720
|
+
*/
|
|
721
|
+
when(condition: boolean | (() => boolean), handler: RequestHandler | (() => void)): void;
|
|
722
|
+
/**
|
|
723
|
+
* Auto-optimize middleware pipeline.
|
|
724
|
+
*/
|
|
725
|
+
optimize(config?: OptimizationConfig): void;
|
|
726
|
+
/**
|
|
727
|
+
* Reorder middleware for optimal performance.
|
|
728
|
+
*/
|
|
729
|
+
private reorderForPerformance;
|
|
730
|
+
/**
|
|
731
|
+
* Analyze middleware pipeline.
|
|
732
|
+
*/
|
|
733
|
+
analyze(): PipelineAnalysis;
|
|
734
|
+
/**
|
|
735
|
+
* Get recommendations for improvement.
|
|
736
|
+
*/
|
|
737
|
+
getRecommendations(): Array<Recommendation>;
|
|
738
|
+
/**
|
|
739
|
+
* Add custom middleware to global pipeline.
|
|
740
|
+
* Alias for addMiddleware() with shorter name.
|
|
741
|
+
*/
|
|
742
|
+
add(middleware: MiddlewareOptions): void;
|
|
743
|
+
/** Render service instance (lazy initialized) */
|
|
744
|
+
private renderService;
|
|
745
|
+
/** Express app reference for render service */
|
|
746
|
+
private expressApp;
|
|
747
|
+
/**
|
|
748
|
+
* Set the Express app reference for render service initialization.
|
|
749
|
+
* Called internally by AppExpress.
|
|
750
|
+
* @internal
|
|
751
|
+
*/
|
|
752
|
+
setExpressApp(app: import("express").Application): void;
|
|
753
|
+
/**
|
|
754
|
+
* Configure view rendering with unified API.
|
|
755
|
+
* Supports traditional engines (EJS, Pug, Handlebars) and modern frameworks (React, Vue, Svelte).
|
|
756
|
+
*
|
|
757
|
+
* @param config - Render configuration or preset name
|
|
758
|
+
*/
|
|
759
|
+
render(config?: import("../render/render-config.js").RenderConfig | import("../render/render-config.js").PresetName): Promise<void>;
|
|
760
|
+
/**
|
|
761
|
+
* Get the render service instance.
|
|
762
|
+
*
|
|
763
|
+
* @returns Render service or null if not configured
|
|
764
|
+
*/
|
|
765
|
+
getRenderService(): import("../render/render-service.js").RenderService | null;
|
|
244
766
|
}
|
|
245
767
|
export {};
|