@expressots/core 3.0.0 → 4.0.0-preview.3
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/LICENSE.md +21 -21
- package/README.md +66 -118
- package/lib/CHANGELOG.md +774 -739
- package/lib/README.md +66 -118
- package/lib/cjs/application/application-container.js +467 -33
- package/lib/cjs/application/application-factory.js +111 -5
- package/lib/cjs/application/application.types.js +32 -2
- package/lib/cjs/application/bootstrap.js +716 -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 +449 -0
- package/lib/cjs/config/index.js +89 -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/framework-version.js +10 -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 +77 -0
- package/lib/cjs/lazy-loading/lazy-load-metrics.js +355 -0
- package/lib/cjs/lazy-loading/lazy-module-helpers.js +49 -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 +58 -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-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 +1692 -308
- package/lib/cjs/middleware/middleware-utils.js +280 -0
- package/lib/cjs/middleware/presets-standalone.js +93 -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 +688 -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 +125 -9
- package/lib/cjs/provider/db-in-memory/query/index.js +24 -0
- package/lib/cjs/provider/db-in-memory/query/query-engine.js +601 -0
- package/lib/cjs/provider/db-in-memory/query/query.types.js +10 -0
- package/lib/cjs/provider/db-in-memory/schema/decorators.js +420 -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 +16 -0
- package/lib/cjs/provider/db-in-memory/storage/memory-store.js +777 -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 +482 -0
- package/lib/cjs/provider/logger/logger.config.js +32 -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 +697 -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 +746 -73
- 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 +141 -0
- package/lib/cjs/provider/logger/transports/file.transport.js +296 -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 +107 -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 +21 -0
- package/lib/cjs/provider/validation/adapters/yup.adapter.js +118 -0
- package/lib/cjs/provider/validation/adapters/zod.adapter.js +137 -0
- package/lib/cjs/provider/validation/helpful-error-formatter.js +228 -0
- package/lib/cjs/provider/validation/index.js +39 -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 +194 -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 +461 -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 +380 -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 +105 -3
- package/lib/cjs/types/application/application.types.d.ts +177 -2
- package/lib/cjs/types/application/bootstrap.d.ts +656 -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 +576 -0
- package/lib/cjs/types/config/define-config.d.ts +109 -0
- package/lib/cjs/types/config/env-field-builders.d.ts +327 -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/framework-version.d.ts +7 -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 +43 -0
- package/lib/cjs/types/lazy-loading/lazy-load-metrics.d.ts +139 -0
- package/lib/cjs/types/lazy-loading/lazy-module-helpers.d.ts +42 -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-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 +654 -111
- package/lib/cjs/types/middleware/middleware-utils.d.ts +145 -0
- package/lib/cjs/types/middleware/presets-standalone.d.ts +75 -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 +241 -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 +71 -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 +114 -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 +328 -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 +360 -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 +62 -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 +54 -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 +332 -28
- 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 +56 -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 +13 -0
- package/lib/cjs/types/provider/validation/adapters/yup.adapter.d.ts +65 -0
- package/lib/cjs/types/provider/validation/adapters/zod.adapter.d.ts +84 -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 +52 -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 +973 -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 +140 -0
- package/lib/esm/application/application.types.js +41 -0
- package/lib/esm/application/bootstrap.js +709 -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 +440 -0
- package/lib/esm/config/index.js +72 -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/framework-version.js +7 -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 +58 -0
- package/lib/esm/lazy-loading/lazy-load-metrics.js +352 -0
- package/lib/esm/lazy-loading/lazy-module-helpers.js +45 -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 +20 -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-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 +1853 -0
- package/lib/esm/middleware/middleware-utils.js +273 -0
- package/lib/esm/middleware/presets-standalone.js +87 -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 +690 -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 +98 -0
- package/lib/esm/provider/db-in-memory/query/index.js +6 -0
- package/lib/esm/provider/db-in-memory/query/query-engine.js +598 -0
- package/lib/esm/provider/db-in-memory/query/query.types.js +9 -0
- package/lib/esm/provider/db-in-memory/schema/decorators.js +405 -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 +784 -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 +480 -0
- package/lib/esm/provider/logger/logger.config.js +29 -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 +691 -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 +797 -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 +144 -0
- package/lib/esm/provider/logger/transports/file.transport.js +300 -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 +101 -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 +13 -0
- package/lib/esm/provider/validation/adapters/yup.adapter.js +111 -0
- package/lib/esm/provider/validation/adapters/zod.adapter.js +130 -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 +192 -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 +459 -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 +358 -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 +124 -0
- package/lib/esm/types/application/application.types.d.ts +185 -0
- package/lib/esm/types/application/bootstrap.d.ts +656 -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 +576 -0
- package/lib/esm/types/config/define-config.d.ts +109 -0
- package/lib/esm/types/config/env-field-builders.d.ts +327 -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/framework-version.d.ts +7 -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 +43 -0
- package/lib/esm/types/lazy-loading/lazy-load-metrics.d.ts +139 -0
- package/lib/esm/types/lazy-loading/lazy-module-helpers.d.ts +42 -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-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 +788 -0
- package/lib/esm/types/middleware/middleware-utils.d.ts +145 -0
- package/lib/esm/types/middleware/presets-standalone.d.ts +75 -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 +241 -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 +71 -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 +114 -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 +328 -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 +360 -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 +62 -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 +54 -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 +363 -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 +56 -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 +13 -0
- package/lib/esm/types/provider/validation/adapters/yup.adapter.d.ts +65 -0
- package/lib/esm/types/provider/validation/adapters/zod.adapter.d.ts +84 -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 +52 -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 +973 -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 +167 -151
- package/package.json +167 -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
|
@@ -8,115 +8,788 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
+
var Logger_1;
|
|
11
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
13
|
exports.Logger = void 0;
|
|
13
|
-
const
|
|
14
|
-
const
|
|
14
|
+
const scope_binding_js_1 = require("../../decorator/scope-binding.js");
|
|
15
|
+
const log_levels_js_1 = require("./utils/log-levels.js");
|
|
16
|
+
const log_entry_js_1 = require("./utils/log-entry.js");
|
|
17
|
+
const logger_config_js_1 = require("./logger.config.js");
|
|
18
|
+
const console_transport_js_1 = require("./transports/console.transport.js");
|
|
19
|
+
const logger_formatter_js_1 = require("./logger.formatter.js");
|
|
20
|
+
const logger_context_js_1 = require("./logger.context.js");
|
|
21
|
+
const logger_performance_js_1 = require("./logger.performance.js");
|
|
22
|
+
const logger_grouping_js_1 = require("./logger.grouping.js");
|
|
23
|
+
const logger_health_js_1 = require("./logger.health.js");
|
|
24
|
+
const logger_query_js_1 = require("./logger.query.js");
|
|
15
25
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
return `${color_codes_1.colorCodes[color]}${text}\x1b[0m`;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Class that provides logging functionality with colorized text.
|
|
26
|
+
* Enhanced Logger provider with structured logging, multiple levels, and pluggable transports.
|
|
27
|
+
* Features:
|
|
28
|
+
* - Automatic context detection (class/method names)
|
|
29
|
+
* - Request-scoped context via AsyncLocalStorage
|
|
30
|
+
* - Child logger creation with inherited context
|
|
31
|
+
* - Multiple log levels (ALL, DEBUG, INFO, WARN, ERROR, FATAL, SILENT)
|
|
32
|
+
* - Pluggable transports (console, file, HTTP)
|
|
27
33
|
* @public API
|
|
28
34
|
*/
|
|
29
|
-
let Logger = class Logger {
|
|
35
|
+
let Logger = Logger_1 = class Logger {
|
|
30
36
|
constructor() {
|
|
37
|
+
this.transports = [];
|
|
38
|
+
this.autoDetectContext = true;
|
|
39
|
+
this.groupingManager = null;
|
|
40
|
+
this.healthMonitor = null;
|
|
41
|
+
this.queryManager = null;
|
|
31
42
|
this.name = "Logger Provider";
|
|
32
|
-
this.version = "
|
|
43
|
+
this.version = "4.1.0";
|
|
33
44
|
this.author = "Richard Zampieri";
|
|
34
45
|
this.repo = "https://github.com/expressots/expressots";
|
|
35
46
|
this.pid = process.pid;
|
|
47
|
+
// Merge module-level overrides on top of the built-in defaults so values
|
|
48
|
+
// set via Logger.configure(...) before container creation propagate to
|
|
49
|
+
// every instance. Caller-supplied transports replace the defaults, level
|
|
50
|
+
// is forwarded to the auto-installed console transport below.
|
|
51
|
+
const baseConfig = (0, logger_config_js_1.getDefaultLoggerConfig)();
|
|
52
|
+
this.config = {
|
|
53
|
+
...baseConfig,
|
|
54
|
+
...Logger_1.defaultOverrides,
|
|
55
|
+
};
|
|
56
|
+
// Initialize with default console transport if none provided.
|
|
57
|
+
// Aligning the transport's level with the resolved logger level
|
|
58
|
+
// (which already honours `process.env.LOG_LEVEL`) keeps both
|
|
59
|
+
// filters consistent for messages emitted before any explicit
|
|
60
|
+
// `logger.configure({ level })` call.
|
|
61
|
+
if (this.config.transports.length === 0) {
|
|
62
|
+
const isDevelopment = process.env.NODE_ENV !== "production";
|
|
63
|
+
const transport = isDevelopment
|
|
64
|
+
? console_transport_js_1.ConsoleTransport.forDevelopment()
|
|
65
|
+
: console_transport_js_1.ConsoleTransport.forProduction();
|
|
66
|
+
transport.level = (0, log_levels_js_1.parseLogLevel)(this.config.level);
|
|
67
|
+
this.config.transports = [transport];
|
|
68
|
+
}
|
|
69
|
+
this.transports = this.config.transports;
|
|
70
|
+
// Initialize grouping manager with default config
|
|
71
|
+
this.groupingManager = new logger_grouping_js_1.LogGroupingManager(this.config.grouping);
|
|
72
|
+
// Initialize query manager with default config
|
|
73
|
+
this.queryManager = new logger_query_js_1.LogQueryManager(this.config.query);
|
|
36
74
|
}
|
|
37
75
|
/**
|
|
38
|
-
*
|
|
76
|
+
* Configure the default LoggerConfig used by every future `Logger`
|
|
77
|
+
* instance constructed in this process.
|
|
78
|
+
*
|
|
79
|
+
* Use this from application config files **before** bootstrap so the DI
|
|
80
|
+
* container's Logger picks up the correct level / transports / grouping /
|
|
81
|
+
* health / redaction settings without needing to inject and reconfigure it.
|
|
82
|
+
* Calls are merged: later calls override earlier ones, but unspecified
|
|
83
|
+
* keys keep their previously-set values.
|
|
84
|
+
*
|
|
85
|
+
* Already-constructed Logger instances are NOT mutated by this call —
|
|
86
|
+
* use the instance method `logger.configure(...)` to update a live one.
|
|
39
87
|
*
|
|
40
|
-
* @param
|
|
41
|
-
* @
|
|
42
|
-
* @param module - Optional module name.
|
|
43
|
-
* @returns The formatted log message.
|
|
88
|
+
* @param config - Partial configuration to merge with the defaults.
|
|
89
|
+
* @public API
|
|
44
90
|
*/
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
month: "2-digit",
|
|
50
|
-
day: "2-digit",
|
|
51
|
-
hour: "2-digit",
|
|
52
|
-
minute: "2-digit",
|
|
53
|
-
second: "2-digit",
|
|
91
|
+
static configure(config) {
|
|
92
|
+
Logger_1.defaultOverrides = {
|
|
93
|
+
...Logger_1.defaultOverrides,
|
|
94
|
+
...config,
|
|
54
95
|
};
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
logColor = "blue";
|
|
60
|
-
break;
|
|
61
|
-
case "WARN":
|
|
62
|
-
logColor = "yellow";
|
|
63
|
-
break;
|
|
64
|
-
case "ERROR":
|
|
65
|
-
logColor = "red";
|
|
66
|
-
break;
|
|
67
|
-
default:
|
|
68
|
-
logColor = "none";
|
|
69
|
-
break;
|
|
70
|
-
}
|
|
71
|
-
const formattedLogLevel = colorText(logLevel.padEnd(5, " "), logColor);
|
|
72
|
-
if (logLevel === "NONE") {
|
|
73
|
-
return `${colorText("[ExpressoTS]", "none")} ${timestamp} ${colorText("[PID:" + this.pid + "]", "none")} ${formattedLogLevel} [${colorText(module || "", "none")}] ${colorText(message, logColor)}\n`;
|
|
74
|
-
}
|
|
75
|
-
return `${colorText("[ExpressoTS]", "green")} ${timestamp} ${colorText("[PID:" + this.pid + "]", "green")} ${formattedLogLevel} [${colorText(module || "", "green")}] ${colorText(message, logColor)}\n`;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Logs a generic message.
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Reset the module-level overrides set by `Logger.configure`. Useful in
|
|
99
|
+
* tests to undo cross-test pollution.
|
|
79
100
|
*
|
|
80
|
-
* @
|
|
81
|
-
|
|
101
|
+
* @public API
|
|
102
|
+
*/
|
|
103
|
+
static resetConfigure() {
|
|
104
|
+
Logger_1.defaultOverrides = {};
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Configure the logger.
|
|
108
|
+
* @param config - Partial configuration to merge with defaults
|
|
109
|
+
* @public API
|
|
110
|
+
*/
|
|
111
|
+
configure(config) {
|
|
112
|
+
// Merge with existing config
|
|
113
|
+
this.config = {
|
|
114
|
+
...this.config,
|
|
115
|
+
...config,
|
|
116
|
+
};
|
|
117
|
+
// Update level if provided
|
|
118
|
+
if (config.level !== undefined) {
|
|
119
|
+
const newLevel = (0, log_levels_js_1.parseLogLevel)(config.level);
|
|
120
|
+
this.config.level = newLevel;
|
|
121
|
+
// Update all existing transports to use the new level
|
|
122
|
+
// This ensures transports respect the logger's configured level
|
|
123
|
+
// Only update transports that were created with default levels (DEBUG/INFO)
|
|
124
|
+
// to avoid overriding explicit transport configurations
|
|
125
|
+
for (const transport of this.transports) {
|
|
126
|
+
const currentLevel = transport.level;
|
|
127
|
+
// Update if it's a default level (DEBUG for dev, INFO for prod)
|
|
128
|
+
// This allows dynamic level changes while preserving custom transport configs
|
|
129
|
+
if (currentLevel === log_levels_js_1.LogLevel.DEBUG || currentLevel === log_levels_js_1.LogLevel.INFO) {
|
|
130
|
+
transport.level = newLevel;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
// Update transports if provided
|
|
135
|
+
if (config.transports !== undefined) {
|
|
136
|
+
this.transports = config.transports;
|
|
137
|
+
this.config.transports = config.transports;
|
|
138
|
+
}
|
|
139
|
+
// Initialize or update health monitor if health config is provided
|
|
140
|
+
if (config.health !== undefined) {
|
|
141
|
+
if (this.healthMonitor) {
|
|
142
|
+
// Stop existing monitor
|
|
143
|
+
this.healthMonitor.stop();
|
|
144
|
+
}
|
|
145
|
+
// Create new monitor with updated config
|
|
146
|
+
this.healthMonitor = new logger_health_js_1.HealthMonitor(this, config.health);
|
|
147
|
+
// Start monitoring if enabled
|
|
148
|
+
if (config.health.enabled !== false) {
|
|
149
|
+
this.healthMonitor.start();
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// Initialize or update query manager if query config is provided
|
|
153
|
+
if (config.query !== undefined) {
|
|
154
|
+
if (this.queryManager) {
|
|
155
|
+
this.queryManager.configure(config.query);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
this.queryManager = new logger_query_js_1.LogQueryManager(config.query);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Get the current logger configuration.
|
|
164
|
+
* @returns Current logger configuration
|
|
165
|
+
* @public API
|
|
166
|
+
*/
|
|
167
|
+
getConfig() {
|
|
168
|
+
return this.config;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Log a trace message (ultra-detailed diagnostic).
|
|
172
|
+
* @param message - The message to log
|
|
173
|
+
* @param data - Optional structured data
|
|
174
|
+
* @public API
|
|
175
|
+
*/
|
|
176
|
+
trace(message, data) {
|
|
177
|
+
this.log(log_levels_js_1.LogLevel.ALL, message, { data });
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Log a debug message (detailed diagnostic).
|
|
181
|
+
* @param message - The message to log
|
|
182
|
+
* @param data - Optional structured data
|
|
183
|
+
* @public API
|
|
184
|
+
*/
|
|
185
|
+
debug(message, data) {
|
|
186
|
+
this.log(log_levels_js_1.LogLevel.DEBUG, message, { data });
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Log an informational message.
|
|
190
|
+
* @param message - The message to log
|
|
191
|
+
* @param module - Optional module/context name (legacy API)
|
|
192
|
+
* @param data - Optional structured data (new API)
|
|
193
|
+
* @public API
|
|
194
|
+
*/
|
|
195
|
+
info(message, module, data) {
|
|
196
|
+
// Support both legacy (module) and new (data) API
|
|
197
|
+
if (module && typeof module === "string" && data === undefined) {
|
|
198
|
+
// Legacy API: info(message, module)
|
|
199
|
+
this.log(log_levels_js_1.LogLevel.INFO, message, { context: module });
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
// New API: info(message, data) or info(message, module, data)
|
|
203
|
+
const context = typeof module === "string" ? module : this.currentContext;
|
|
204
|
+
this.log(log_levels_js_1.LogLevel.INFO, message, {
|
|
205
|
+
context,
|
|
206
|
+
data: typeof module === "object" ? module : data,
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Log a warning message.
|
|
212
|
+
* @param message - The message to log
|
|
213
|
+
* @param module - Optional module/context name (legacy API)
|
|
214
|
+
* @param data - Optional structured data (new API)
|
|
215
|
+
* @public API
|
|
216
|
+
*/
|
|
217
|
+
warn(message, module, data) {
|
|
218
|
+
// Support both legacy (module) and new (data) API
|
|
219
|
+
if (module && typeof module === "string" && data === undefined) {
|
|
220
|
+
// Legacy API: warn(message, module)
|
|
221
|
+
this.log(log_levels_js_1.LogLevel.WARN, message, { context: module });
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
// New API: warn(message, data) or warn(message, module, data)
|
|
225
|
+
const context = typeof module === "string" ? module : this.currentContext;
|
|
226
|
+
this.log(log_levels_js_1.LogLevel.WARN, message, {
|
|
227
|
+
context,
|
|
228
|
+
data: typeof module === "object" ? module : data,
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Log an error message.
|
|
234
|
+
* @param message - The message to log
|
|
235
|
+
* @param module - Optional module/context name (legacy API)
|
|
236
|
+
* @param error - Optional error object (new API)
|
|
237
|
+
* @public API
|
|
238
|
+
*/
|
|
239
|
+
error(message, module, error) {
|
|
240
|
+
// Support both legacy (module) and new (error) API
|
|
241
|
+
if (module && typeof module === "string" && error === undefined) {
|
|
242
|
+
// Legacy API: error(message, module)
|
|
243
|
+
this.log(log_levels_js_1.LogLevel.ERROR, message, { context: module });
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
// New API: error(message, error) or error(message, module, error)
|
|
247
|
+
// Handle case where module might be an Error object (new API: error(message, error))
|
|
248
|
+
let context;
|
|
249
|
+
let errorObj;
|
|
250
|
+
if (typeof module === "string") {
|
|
251
|
+
// module is a string, error is the error object
|
|
252
|
+
context = module;
|
|
253
|
+
errorObj = error;
|
|
254
|
+
}
|
|
255
|
+
else if (module && typeof module === "object" && module !== null) {
|
|
256
|
+
// module is actually an error object (new API: error(message, error))
|
|
257
|
+
context = this.currentContext;
|
|
258
|
+
errorObj = module;
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
// module is undefined, use current context
|
|
262
|
+
context = this.currentContext;
|
|
263
|
+
errorObj = error;
|
|
264
|
+
}
|
|
265
|
+
this.log(log_levels_js_1.LogLevel.ERROR, message, {
|
|
266
|
+
context,
|
|
267
|
+
error: errorObj,
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Log a fatal error message.
|
|
273
|
+
* @param message - The message to log
|
|
274
|
+
* @param error - Optional error object
|
|
275
|
+
* @public API
|
|
276
|
+
*/
|
|
277
|
+
fatal(message, error) {
|
|
278
|
+
this.log(log_levels_js_1.LogLevel.FATAL, message, { error });
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Log a generic message (legacy API - maps to INFO).
|
|
282
|
+
* @param message - The message to log
|
|
283
|
+
* @param module - Optional module name
|
|
82
284
|
* @public API
|
|
83
285
|
*/
|
|
84
286
|
msg(message, module) {
|
|
85
|
-
|
|
287
|
+
this.log(log_levels_js_1.LogLevel.INFO, message, { context: module });
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Create a child logger with inherited context.
|
|
291
|
+
* @param context - Context name for the child logger
|
|
292
|
+
* @returns New Logger instance with context
|
|
293
|
+
* @public API
|
|
294
|
+
*/
|
|
295
|
+
child(context) {
|
|
296
|
+
const childLogger = new Logger_1();
|
|
297
|
+
childLogger.configure(this.config);
|
|
298
|
+
childLogger.currentContext = context;
|
|
299
|
+
childLogger.contextObject = { ...this.contextObject, label: context };
|
|
300
|
+
childLogger.autoDetectContext = this.autoDetectContext;
|
|
301
|
+
return childLogger;
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Set context for subsequent logs.
|
|
305
|
+
* @param context - Context name, object, or LogContext
|
|
306
|
+
* @returns Logger instance for chaining
|
|
307
|
+
* @public API
|
|
308
|
+
*
|
|
309
|
+
* @example
|
|
310
|
+
* // String context
|
|
311
|
+
* logger.withContext("UserService").info("User created");
|
|
312
|
+
*
|
|
313
|
+
* @example
|
|
314
|
+
* // Object context
|
|
315
|
+
* logger.withContext({ className: "UserService", methodName: "create" }).info("User created");
|
|
316
|
+
*
|
|
317
|
+
* @example
|
|
318
|
+
* // Request context (typically set by middleware)
|
|
319
|
+
* logger.withContext({ requestId: "req_123", userId: "user_456" }).info("Processing request");
|
|
320
|
+
*/
|
|
321
|
+
withContext(context) {
|
|
322
|
+
// Create a new logger instance to avoid mutating the original
|
|
323
|
+
const contextLogger = new Logger_1();
|
|
324
|
+
contextLogger.configure(this.config);
|
|
325
|
+
contextLogger.transports = this.transports;
|
|
326
|
+
contextLogger.autoDetectContext = this.autoDetectContext;
|
|
327
|
+
if (typeof context === "string") {
|
|
328
|
+
contextLogger.currentContext = context;
|
|
329
|
+
contextLogger.contextObject = { ...this.contextObject, label: context };
|
|
330
|
+
}
|
|
331
|
+
else {
|
|
332
|
+
// Merge context objects
|
|
333
|
+
contextLogger.contextObject = { ...this.contextObject, ...context };
|
|
334
|
+
contextLogger.currentContext =
|
|
335
|
+
context.className || context.label || this.currentContext;
|
|
336
|
+
}
|
|
337
|
+
return contextLogger;
|
|
86
338
|
}
|
|
87
339
|
/**
|
|
88
|
-
*
|
|
340
|
+
* Disable automatic context detection for this logger.
|
|
341
|
+
* @returns Logger instance for chaining
|
|
342
|
+
* @public API
|
|
343
|
+
*/
|
|
344
|
+
noAutoContext() {
|
|
345
|
+
this.autoDetectContext = false;
|
|
346
|
+
return this;
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* Enable automatic context detection for this logger.
|
|
350
|
+
* @returns Logger instance for chaining
|
|
351
|
+
* @public API
|
|
352
|
+
*/
|
|
353
|
+
enableAutoContext() {
|
|
354
|
+
this.autoDetectContext = true;
|
|
355
|
+
return this;
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Run a function with request-scoped context.
|
|
359
|
+
* All logs within the function (including async operations) will include this context.
|
|
360
|
+
* @param context - Context to use for the duration of the function
|
|
361
|
+
* @param fn - Function to run
|
|
362
|
+
* @returns Result of the function
|
|
363
|
+
* @public API
|
|
89
364
|
*
|
|
90
|
-
* @
|
|
91
|
-
*
|
|
365
|
+
* @example
|
|
366
|
+
* await logger.runWithContext({ requestId: "req_123" }, async () => {
|
|
367
|
+
* logger.info("Processing..."); // Will include requestId
|
|
368
|
+
* await someAsyncOperation(); // Nested logs also include requestId
|
|
369
|
+
* });
|
|
370
|
+
*/
|
|
371
|
+
runWithContext(context, fn) {
|
|
372
|
+
const fullContext = { ...this.contextObject, ...context };
|
|
373
|
+
return logger_context_js_1.ContextManager.runWithContext(fullContext, fn);
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* Core logging method.
|
|
377
|
+
* Supports automatic context detection, request-scoped context, and manual context.
|
|
378
|
+
* @param level - Log level
|
|
379
|
+
* @param message - Log message
|
|
380
|
+
* @param options - Additional options
|
|
381
|
+
*/
|
|
382
|
+
log(level, message, options) {
|
|
383
|
+
const configuredLevel = (0, log_levels_js_1.parseLogLevel)(this.config.level);
|
|
384
|
+
if (!(0, log_levels_js_1.shouldLog)(level, configuredLevel)) {
|
|
385
|
+
return;
|
|
386
|
+
}
|
|
387
|
+
// Build context from multiple sources (in priority order):
|
|
388
|
+
// 1. Explicit context in options (highest priority)
|
|
389
|
+
// 2. Manual context set via withContext()
|
|
390
|
+
// 3. Request-scoped context from AsyncLocalStorage
|
|
391
|
+
// 4. Auto-detected context from call stack (lowest priority)
|
|
392
|
+
let finalContext = options?.context || this.currentContext;
|
|
393
|
+
// Get request-scoped context if available
|
|
394
|
+
const requestContext = logger_context_js_1.ContextManager.getCurrentContext();
|
|
395
|
+
let mergedContextObject = { ...this.contextObject };
|
|
396
|
+
if (requestContext) {
|
|
397
|
+
mergedContextObject = { ...mergedContextObject, ...requestContext };
|
|
398
|
+
if (!finalContext && requestContext.className) {
|
|
399
|
+
finalContext = requestContext.className;
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
// Auto-detect context if enabled and no manual context is set
|
|
403
|
+
if (this.autoDetectContext && !finalContext) {
|
|
404
|
+
const autoContext = logger_context_js_1.ContextManager.autoDetectContext();
|
|
405
|
+
if (autoContext.className) {
|
|
406
|
+
finalContext = autoContext.className;
|
|
407
|
+
mergedContextObject = { ...mergedContextObject, ...autoContext };
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
// Apply filters
|
|
411
|
+
if (this.config.filters && finalContext) {
|
|
412
|
+
if (this.config.filters.exclude?.includes(finalContext)) {
|
|
413
|
+
return;
|
|
414
|
+
}
|
|
415
|
+
if (this.config.filters.include &&
|
|
416
|
+
this.config.filters.include.length > 0) {
|
|
417
|
+
if (!this.config.filters.include.includes(finalContext)) {
|
|
418
|
+
return;
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
// Extract flow from data if present (for backward compatibility)
|
|
423
|
+
let flowData = options?.flow;
|
|
424
|
+
let dataWithoutFlow = options?.data;
|
|
425
|
+
if (!flowData &&
|
|
426
|
+
typeof options?.data === "object" &&
|
|
427
|
+
options.data !== null &&
|
|
428
|
+
!Array.isArray(options.data) &&
|
|
429
|
+
"flow" in options.data) {
|
|
430
|
+
// Extract flow from data object
|
|
431
|
+
const dataObj = options.data;
|
|
432
|
+
flowData = dataObj.flow;
|
|
433
|
+
// Remove flow from data object
|
|
434
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
435
|
+
const { flow: _, ...rest } = dataObj;
|
|
436
|
+
dataWithoutFlow = Object.keys(rest).length > 0 ? rest : undefined;
|
|
437
|
+
}
|
|
438
|
+
// Merge all data sources
|
|
439
|
+
// Preserve arrays as arrays, don't convert to objects
|
|
440
|
+
let finalData = dataWithoutFlow;
|
|
441
|
+
if (Array.isArray(dataWithoutFlow)) {
|
|
442
|
+
// Keep arrays as arrays
|
|
443
|
+
finalData = dataWithoutFlow;
|
|
444
|
+
}
|
|
445
|
+
else if (dataWithoutFlow || Object.keys(mergedContextObject).length > 0) {
|
|
446
|
+
finalData = {
|
|
447
|
+
...(typeof dataWithoutFlow === "object" && dataWithoutFlow !== null
|
|
448
|
+
? dataWithoutFlow
|
|
449
|
+
: {}),
|
|
450
|
+
// Include request context metadata if present
|
|
451
|
+
...(mergedContextObject.requestId
|
|
452
|
+
? { requestId: mergedContextObject.requestId }
|
|
453
|
+
: {}),
|
|
454
|
+
...(mergedContextObject.userId
|
|
455
|
+
? { userId: mergedContextObject.userId }
|
|
456
|
+
: {}),
|
|
457
|
+
...(mergedContextObject.tenantId
|
|
458
|
+
? { tenantId: mergedContextObject.tenantId }
|
|
459
|
+
: {}),
|
|
460
|
+
...(mergedContextObject.correlationId
|
|
461
|
+
? { correlationId: mergedContextObject.correlationId }
|
|
462
|
+
: {}),
|
|
463
|
+
};
|
|
464
|
+
// Only use merged object if it has keys
|
|
465
|
+
if (Object.keys(finalData).length === 0) {
|
|
466
|
+
finalData = undefined;
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
const entry = (0, log_entry_js_1.createLogEntry)(level, message, {
|
|
470
|
+
context: finalContext,
|
|
471
|
+
data: finalData,
|
|
472
|
+
error: options?.error,
|
|
473
|
+
trace: options?.trace,
|
|
474
|
+
performance: options?.performance,
|
|
475
|
+
flow: flowData,
|
|
476
|
+
pid: this.pid,
|
|
477
|
+
});
|
|
478
|
+
// Add entry to query buffer BEFORE grouping (so all entries are captured)
|
|
479
|
+
if (this.queryManager) {
|
|
480
|
+
this.queryManager.addEntry(entry);
|
|
481
|
+
}
|
|
482
|
+
// Process through grouping manager if enabled
|
|
483
|
+
if (this.groupingManager) {
|
|
484
|
+
const processed = this.groupingManager.processEntry(entry);
|
|
485
|
+
// If it's a grouped entry, format and send it
|
|
486
|
+
if (this.isGroupedLogEntry(processed)) {
|
|
487
|
+
this.sendGroupedEntry(processed);
|
|
488
|
+
return; // Don't send individual entry
|
|
489
|
+
}
|
|
490
|
+
// If it's not grouped yet (count < minOccurrences), send as normal
|
|
491
|
+
// The grouping manager will track it and group it later
|
|
492
|
+
}
|
|
493
|
+
// Send to all enabled transports
|
|
494
|
+
this.sendEntry(entry);
|
|
495
|
+
}
|
|
496
|
+
/**
|
|
497
|
+
* Check if a log entry is a grouped entry.
|
|
498
|
+
* @param entry - Log entry or grouped entry
|
|
499
|
+
* @returns True if grouped entry
|
|
500
|
+
*/
|
|
501
|
+
isGroupedLogEntry(entry) {
|
|
502
|
+
return (typeof entry === "object" &&
|
|
503
|
+
entry !== null &&
|
|
504
|
+
"count" in entry &&
|
|
505
|
+
"representative" in entry &&
|
|
506
|
+
"firstOccurrence" in entry &&
|
|
507
|
+
"lastOccurrence" in entry);
|
|
508
|
+
}
|
|
509
|
+
/**
|
|
510
|
+
* Send a grouped log entry to transports.
|
|
511
|
+
* Formats grouped entries and writes them directly to stdout/stderr.
|
|
512
|
+
* @param groupedEntry - Grouped log entry
|
|
513
|
+
*/
|
|
514
|
+
sendGroupedEntry(groupedEntry) {
|
|
515
|
+
const isStructured = this.config.structured ?? process.env.NODE_ENV === "production";
|
|
516
|
+
const formatOptions = {
|
|
517
|
+
redact: this.config.redaction?.enabled ?? process.env.NODE_ENV === "production",
|
|
518
|
+
};
|
|
519
|
+
const formatted = isStructured
|
|
520
|
+
? (0, logger_formatter_js_1.formatGroupedProd)(groupedEntry, formatOptions)
|
|
521
|
+
: (0, logger_formatter_js_1.formatGroupedDev)(groupedEntry, formatOptions);
|
|
522
|
+
// Write formatted grouped entry directly to stdout/stderr
|
|
523
|
+
// This bypasses normal transport formatting since grouped entries are already formatted
|
|
524
|
+
const stream = groupedEntry.representative.level >= log_levels_js_1.LogLevel.ERROR
|
|
525
|
+
? process.stderr
|
|
526
|
+
: process.stdout;
|
|
527
|
+
stream.write(formatted);
|
|
528
|
+
}
|
|
529
|
+
/**
|
|
530
|
+
* Send a regular log entry to transports.
|
|
531
|
+
* @param entry - Log entry
|
|
532
|
+
*/
|
|
533
|
+
sendEntry(entry) {
|
|
534
|
+
// Note: Entry is already added to query buffer before grouping
|
|
535
|
+
// This method only sends to transports
|
|
536
|
+
for (const transport of this.transports) {
|
|
537
|
+
if (transport.enabled) {
|
|
538
|
+
try {
|
|
539
|
+
const result = transport.log(entry);
|
|
540
|
+
if (result instanceof Promise) {
|
|
541
|
+
// Fire and forget for async transports
|
|
542
|
+
result.catch((err) => {
|
|
543
|
+
// Silently fail to avoid log loops
|
|
544
|
+
console.error(`[Logger] Transport ${transport.name} failed:`, err);
|
|
545
|
+
});
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
catch (err) {
|
|
549
|
+
// Silently fail to avoid log loops
|
|
550
|
+
console.error(`[Logger] Transport ${transport.name} failed:`, err);
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
/**
|
|
556
|
+
* Start a high-resolution timer.
|
|
557
|
+
* @param label - Label for this timer
|
|
558
|
+
* @param logLevel - Log level when timer ends (default: "debug")
|
|
559
|
+
* @returns Timer object with end() method
|
|
92
560
|
* @public API
|
|
561
|
+
*
|
|
562
|
+
* @example
|
|
563
|
+
* ```typescript
|
|
564
|
+
* const timer = logger.startTimer("database-query");
|
|
565
|
+
* // ... do work ...
|
|
566
|
+
* timer.end(); // Logs: "Timer 'database-query' completed in 45.23ms"
|
|
567
|
+
* ```
|
|
93
568
|
*/
|
|
94
|
-
|
|
95
|
-
|
|
569
|
+
startTimer(label, logLevel = "debug") {
|
|
570
|
+
return new logger_performance_js_1.Timer(label, this, logLevel);
|
|
96
571
|
}
|
|
97
572
|
/**
|
|
98
|
-
*
|
|
573
|
+
* Get a metrics collector for tracking multiple operations.
|
|
574
|
+
* @returns PerformanceMetricsCollector instance
|
|
575
|
+
* @public API
|
|
99
576
|
*
|
|
100
|
-
* @
|
|
101
|
-
*
|
|
577
|
+
* @example
|
|
578
|
+
* ```typescript
|
|
579
|
+
* const metrics = logger.metrics();
|
|
580
|
+
* metrics.start("db-query").end("db-query");
|
|
581
|
+
* metrics.start("api-call").end("api-call");
|
|
582
|
+
* metrics.summary(); // Logs detailed breakdown
|
|
583
|
+
* ```
|
|
584
|
+
*/
|
|
585
|
+
metrics() {
|
|
586
|
+
return new logger_performance_js_1.PerformanceMetricsCollector(this);
|
|
587
|
+
}
|
|
588
|
+
/**
|
|
589
|
+
* Measure performance of an async function.
|
|
590
|
+
* @param fn - Async function to measure
|
|
591
|
+
* @param label - Label for this measurement
|
|
592
|
+
* @returns Promise with result and performance data
|
|
102
593
|
* @public API
|
|
594
|
+
*
|
|
595
|
+
* @example
|
|
596
|
+
* ```typescript
|
|
597
|
+
* const { result, performance } = await logger.measure(
|
|
598
|
+
* async () => await fetchData(),
|
|
599
|
+
* "fetch-data"
|
|
600
|
+
* );
|
|
601
|
+
* // Logs: "fetch-data took 123.45ms"
|
|
602
|
+
* ```
|
|
103
603
|
*/
|
|
104
|
-
|
|
105
|
-
|
|
604
|
+
async measure(fn, label) {
|
|
605
|
+
return (0, logger_performance_js_1.measurePerformance)(fn, label, this);
|
|
106
606
|
}
|
|
107
607
|
/**
|
|
108
|
-
*
|
|
608
|
+
* Measure performance of a synchronous function.
|
|
609
|
+
* @param fn - Function to measure
|
|
610
|
+
* @param label - Label for this measurement
|
|
611
|
+
* @returns Result and performance data
|
|
612
|
+
* @public API
|
|
109
613
|
*
|
|
110
|
-
* @
|
|
111
|
-
*
|
|
614
|
+
* @example
|
|
615
|
+
* ```typescript
|
|
616
|
+
* const { result, performance } = logger.measureSync(
|
|
617
|
+
* () => processData(),
|
|
618
|
+
* "process-data"
|
|
619
|
+
* );
|
|
620
|
+
* ```
|
|
621
|
+
*/
|
|
622
|
+
measureSync(fn, label) {
|
|
623
|
+
return (0, logger_performance_js_1.measurePerformanceSync)(fn, label, this);
|
|
624
|
+
}
|
|
625
|
+
/**
|
|
626
|
+
* Flush all transports.
|
|
627
|
+
* @returns Promise that resolves when all transports are flushed
|
|
112
628
|
* @public API
|
|
113
629
|
*/
|
|
114
|
-
|
|
115
|
-
|
|
630
|
+
async flush() {
|
|
631
|
+
const flushPromises = this.transports.map((transport) => {
|
|
632
|
+
if (transport.enabled && transport.flush) {
|
|
633
|
+
return transport.flush();
|
|
634
|
+
}
|
|
635
|
+
return Promise.resolve();
|
|
636
|
+
});
|
|
637
|
+
await Promise.all(flushPromises);
|
|
638
|
+
}
|
|
639
|
+
/**
|
|
640
|
+
* Close all transports.
|
|
641
|
+
* @returns Promise that resolves when all transports are closed
|
|
642
|
+
* @public API
|
|
643
|
+
*/
|
|
644
|
+
async close() {
|
|
645
|
+
// Stop health monitoring
|
|
646
|
+
if (this.healthMonitor) {
|
|
647
|
+
this.healthMonitor.stop();
|
|
648
|
+
this.healthMonitor = null;
|
|
649
|
+
}
|
|
650
|
+
const closePromises = this.transports.map((transport) => {
|
|
651
|
+
if (transport.enabled && transport.close) {
|
|
652
|
+
return transport.close();
|
|
653
|
+
}
|
|
654
|
+
return Promise.resolve();
|
|
655
|
+
});
|
|
656
|
+
await Promise.all(closePromises);
|
|
657
|
+
}
|
|
658
|
+
/**
|
|
659
|
+
* Get current health status.
|
|
660
|
+
* @returns Current health status
|
|
661
|
+
* @public API
|
|
662
|
+
*/
|
|
663
|
+
async getHealth() {
|
|
664
|
+
if (this.healthMonitor) {
|
|
665
|
+
return await this.healthMonitor.getCurrentHealth();
|
|
666
|
+
}
|
|
667
|
+
// If health monitor not initialized, collect status directly
|
|
668
|
+
return await (0, logger_health_js_1.collectHealthStatus)();
|
|
669
|
+
}
|
|
670
|
+
/**
|
|
671
|
+
* Query logs from the in-memory buffer.
|
|
672
|
+
* @param options - Query options
|
|
673
|
+
* @returns Array of matching log entries
|
|
674
|
+
* @public API
|
|
675
|
+
*/
|
|
676
|
+
queryLogs(options = {}) {
|
|
677
|
+
if (!this.queryManager) {
|
|
678
|
+
return [];
|
|
679
|
+
}
|
|
680
|
+
return this.queryManager.query(options);
|
|
681
|
+
}
|
|
682
|
+
/**
|
|
683
|
+
* Create a chainable query builder for logs.
|
|
684
|
+
* @returns LogQuery instance
|
|
685
|
+
* @public API
|
|
686
|
+
*/
|
|
687
|
+
query() {
|
|
688
|
+
if (!this.queryManager) {
|
|
689
|
+
// Return empty query if query manager not enabled
|
|
690
|
+
return new logger_query_js_1.LogQuery([]);
|
|
691
|
+
}
|
|
692
|
+
return this.queryManager.createQuery();
|
|
693
|
+
}
|
|
694
|
+
/**
|
|
695
|
+
* Get all logs from the buffer.
|
|
696
|
+
* @returns Array of all log entries
|
|
697
|
+
* @public API
|
|
698
|
+
*/
|
|
699
|
+
getAllLogs() {
|
|
700
|
+
if (!this.queryManager) {
|
|
701
|
+
return [];
|
|
702
|
+
}
|
|
703
|
+
return this.queryManager.getAll();
|
|
704
|
+
}
|
|
705
|
+
/**
|
|
706
|
+
* Get statistics about logs in the buffer.
|
|
707
|
+
* @returns Log statistics
|
|
708
|
+
* @public API
|
|
709
|
+
*/
|
|
710
|
+
getLogStats() {
|
|
711
|
+
if (!this.queryManager) {
|
|
712
|
+
return {
|
|
713
|
+
total: 0,
|
|
714
|
+
byLevel: {},
|
|
715
|
+
byContext: {},
|
|
716
|
+
oldest: null,
|
|
717
|
+
newest: null,
|
|
718
|
+
};
|
|
719
|
+
}
|
|
720
|
+
return this.queryManager.getStats();
|
|
721
|
+
}
|
|
722
|
+
/**
|
|
723
|
+
* Clear all logs from the query buffer.
|
|
724
|
+
* @public API
|
|
725
|
+
*/
|
|
726
|
+
clearLogs() {
|
|
727
|
+
if (this.queryManager) {
|
|
728
|
+
this.queryManager.clear();
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
/**
|
|
732
|
+
* Export logs to markdown format.
|
|
733
|
+
* @param options - Export options
|
|
734
|
+
* @returns Markdown string
|
|
735
|
+
* @public API
|
|
736
|
+
*/
|
|
737
|
+
exportLogsToMarkdown(options = {}) {
|
|
738
|
+
const entries = options.query
|
|
739
|
+
? this.queryLogs(options.query)
|
|
740
|
+
: this.getAllLogs();
|
|
741
|
+
return (0, logger_query_js_1.exportToMarkdown)(entries, {
|
|
742
|
+
title: options.title,
|
|
743
|
+
includeStats: options.includeStats,
|
|
744
|
+
groupBy: options.groupBy,
|
|
745
|
+
});
|
|
746
|
+
}
|
|
747
|
+
/**
|
|
748
|
+
* Start health monitoring (if configured).
|
|
749
|
+
* @public API
|
|
750
|
+
*/
|
|
751
|
+
startHealthMonitoring() {
|
|
752
|
+
if (this.healthMonitor) {
|
|
753
|
+
this.healthMonitor.start();
|
|
754
|
+
}
|
|
755
|
+
}
|
|
756
|
+
/**
|
|
757
|
+
* Stop health monitoring.
|
|
758
|
+
* @public API
|
|
759
|
+
*/
|
|
760
|
+
stopHealthMonitoring() {
|
|
761
|
+
if (this.healthMonitor) {
|
|
762
|
+
this.healthMonitor.stop();
|
|
763
|
+
this.healthMonitor = null;
|
|
764
|
+
}
|
|
765
|
+
}
|
|
766
|
+
/**
|
|
767
|
+
* Legacy formatMessage method for backward compatibility.
|
|
768
|
+
* @deprecated Use the new structured logging API instead
|
|
769
|
+
* @param logLevel - The level of the log
|
|
770
|
+
* @param message - The main log message
|
|
771
|
+
* @param module - Optional module name
|
|
772
|
+
* @returns The formatted log message
|
|
773
|
+
*/
|
|
774
|
+
formatMessage(logLevel = "NONE", message, module) {
|
|
775
|
+
const level = (0, log_levels_js_1.parseLogLevel)(logLevel);
|
|
776
|
+
const entry = (0, log_entry_js_1.createLogEntry)(level, message, {
|
|
777
|
+
context: module,
|
|
778
|
+
pid: this.pid,
|
|
779
|
+
});
|
|
780
|
+
// Use dev formatter for legacy format
|
|
781
|
+
return (0, logger_formatter_js_1.formatDev)(entry);
|
|
116
782
|
}
|
|
117
783
|
};
|
|
118
784
|
exports.Logger = Logger;
|
|
119
|
-
|
|
120
|
-
|
|
785
|
+
/**
|
|
786
|
+
* Module-level overrides applied by `Logger.configure(...)` on top of the
|
|
787
|
+
* built-in defaults. Used by the constructor of every future `Logger`
|
|
788
|
+
* instance so application-wide config (e.g. log level, transports) can be
|
|
789
|
+
* set once before bootstrap, before any DI container exists.
|
|
790
|
+
*/
|
|
791
|
+
Logger.defaultOverrides = {};
|
|
792
|
+
exports.Logger = Logger = Logger_1 = __decorate([
|
|
793
|
+
(0, scope_binding_js_1.provideSingleton)(Logger, "builtin"),
|
|
121
794
|
__metadata("design:paramtypes", [])
|
|
122
795
|
], Logger);
|