@elsikora/cladi 2.0.2-dev.1 → 2.1.0-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +598 -211
- package/dist/cjs/application/utility/safe-deep-clone.utility.d.ts.map +1 -1
- package/dist/cjs/application/utility/safe-deep-clone.utility.js +104 -10
- package/dist/cjs/application/utility/safe-deep-clone.utility.js.map +1 -1
- package/dist/cjs/domain/enum/captive-dependency-policy.enum.d.ts +6 -0
- package/dist/cjs/domain/enum/captive-dependency-policy.enum.d.ts.map +1 -0
- package/dist/cjs/domain/enum/captive-dependency-policy.enum.js +9 -0
- package/dist/cjs/domain/enum/captive-dependency-policy.enum.js.map +1 -0
- package/dist/cjs/domain/enum/dependency-lifecycle.enum.d.ts +6 -0
- package/dist/cjs/domain/enum/dependency-lifecycle.enum.d.ts.map +1 -0
- package/dist/cjs/domain/enum/dependency-lifecycle.enum.js +9 -0
- package/dist/cjs/domain/enum/dependency-lifecycle.enum.js.map +1 -0
- package/dist/cjs/domain/enum/di-container-duplicate-provider-policy.enum.d.ts +6 -0
- package/dist/cjs/domain/enum/di-container-duplicate-provider-policy.enum.d.ts.map +1 -0
- package/dist/cjs/domain/enum/di-container-duplicate-provider-policy.enum.js +9 -0
- package/dist/cjs/domain/enum/di-container-duplicate-provider-policy.enum.js.map +1 -0
- package/dist/cjs/domain/enum/index.d.ts +4 -0
- package/dist/cjs/domain/enum/index.d.ts.map +1 -1
- package/dist/cjs/domain/enum/logger-log-level.enum.js.map +1 -1
- package/dist/cjs/domain/enum/provider-type.enum.d.ts +8 -0
- package/dist/cjs/domain/enum/provider-type.enum.d.ts.map +1 -0
- package/dist/cjs/domain/enum/provider-type.enum.js +11 -0
- package/dist/cjs/domain/enum/provider-type.enum.js.map +1 -0
- package/dist/cjs/domain/index.d.ts +1 -0
- package/dist/cjs/domain/index.d.ts.map +1 -1
- package/dist/cjs/domain/interface/di/alias-provider.interface.d.ts +6 -0
- package/dist/cjs/domain/interface/di/alias-provider.interface.d.ts.map +1 -0
- package/dist/cjs/domain/interface/di/class-provider.interface.d.ts +9 -0
- package/dist/cjs/domain/interface/di/class-provider.interface.d.ts.map +1 -0
- package/dist/cjs/domain/interface/di/container-snapshot.interface.d.ts +19 -0
- package/dist/cjs/domain/interface/di/container-snapshot.interface.d.ts.map +1 -0
- package/dist/cjs/domain/interface/di/dependency-graph.interface.d.ts +19 -0
- package/dist/cjs/domain/interface/di/dependency-graph.interface.d.ts.map +1 -0
- package/dist/cjs/domain/interface/di/factory-provider.interface.d.ts +9 -0
- package/dist/cjs/domain/interface/di/factory-provider.interface.d.ts.map +1 -0
- package/dist/cjs/domain/interface/di/index.d.ts +15 -0
- package/dist/cjs/domain/interface/di/index.d.ts.map +1 -0
- package/dist/cjs/domain/interface/di/lazy-provider.interface.d.ts +6 -0
- package/dist/cjs/domain/interface/di/lazy-provider.interface.d.ts.map +1 -0
- package/dist/cjs/domain/interface/di/module.interface.d.ts +8 -0
- package/dist/cjs/domain/interface/di/module.interface.d.ts.map +1 -0
- package/dist/cjs/domain/interface/di/provider-base.interface.d.ts +11 -0
- package/dist/cjs/domain/interface/di/provider-base.interface.d.ts.map +1 -0
- package/dist/cjs/domain/interface/di/resolution-explanation.interface.d.ts +14 -0
- package/dist/cjs/domain/interface/di/resolution-explanation.interface.d.ts.map +1 -0
- package/dist/cjs/domain/interface/di/resolve-interceptor.interface.d.ts +26 -0
- package/dist/cjs/domain/interface/di/resolve-interceptor.interface.d.ts.map +1 -0
- package/dist/cjs/domain/interface/di/resolver.interface.d.ts +10 -0
- package/dist/cjs/domain/interface/di/resolver.interface.d.ts.map +1 -0
- package/dist/cjs/domain/interface/di/scope-create-options.interface.d.ts +9 -0
- package/dist/cjs/domain/interface/di/scope-create-options.interface.d.ts.map +1 -0
- package/dist/cjs/domain/interface/di/scope.interface.d.ts +23 -0
- package/dist/cjs/domain/interface/di/scope.interface.d.ts.map +1 -0
- package/dist/cjs/domain/interface/di/value-provider.interface.d.ts +5 -0
- package/dist/cjs/domain/interface/di/value-provider.interface.d.ts.map +1 -0
- package/dist/cjs/domain/interface/error.interface.d.ts +6 -2
- package/dist/cjs/domain/interface/error.interface.d.ts.map +1 -1
- package/dist/cjs/domain/interface/index.d.ts +1 -3
- package/dist/cjs/domain/interface/index.d.ts.map +1 -1
- package/dist/cjs/domain/interface/logger/index.d.ts +2 -2
- package/dist/cjs/domain/interface/logger/index.d.ts.map +1 -1
- package/dist/cjs/domain/type/di/constructor.type.d.ts +2 -0
- package/dist/cjs/domain/type/di/constructor.type.d.ts.map +1 -0
- package/dist/cjs/domain/type/di/di-container.type.d.ts +3 -0
- package/dist/cjs/domain/type/di/di-container.type.d.ts.map +1 -0
- package/dist/cjs/domain/type/di/index.d.ts +5 -0
- package/dist/cjs/domain/type/di/index.d.ts.map +1 -0
- package/dist/cjs/domain/type/di/provider.type.d.ts +7 -0
- package/dist/cjs/domain/type/di/provider.type.d.ts.map +1 -0
- package/dist/cjs/domain/type/di/token.type.d.ts +4 -0
- package/dist/cjs/domain/type/di/token.type.d.ts.map +1 -0
- package/dist/cjs/domain/type/index.d.ts +2 -0
- package/dist/cjs/domain/type/index.d.ts.map +1 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +60 -12
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/infrastructure/class/base/error.class.d.ts +7 -4
- package/dist/cjs/infrastructure/class/base/error.class.d.ts.map +1 -1
- package/dist/cjs/infrastructure/class/base/error.class.js +13 -3
- package/dist/cjs/infrastructure/class/base/error.class.js.map +1 -1
- package/dist/cjs/infrastructure/class/base/index.d.ts +0 -3
- package/dist/cjs/infrastructure/class/base/index.d.ts.map +1 -1
- package/dist/cjs/infrastructure/class/di/cache/coordinator.class.d.ts +14 -0
- package/dist/cjs/infrastructure/class/di/cache/coordinator.class.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/cache/coordinator.class.js +126 -0
- package/dist/cjs/infrastructure/class/di/cache/coordinator.class.js.map +1 -0
- package/dist/cjs/infrastructure/class/di/captive/coordinator.class.d.ts +17 -0
- package/dist/cjs/infrastructure/class/di/captive/coordinator.class.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/captive/coordinator.class.js +62 -0
- package/dist/cjs/infrastructure/class/di/captive/coordinator.class.js.map +1 -0
- package/dist/cjs/infrastructure/class/di/container.class.d.ts +75 -0
- package/dist/cjs/infrastructure/class/di/container.class.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/container.class.js +632 -0
- package/dist/cjs/infrastructure/class/di/container.class.js.map +1 -0
- package/dist/cjs/infrastructure/class/di/disposal/coordinator.class.d.ts +34 -0
- package/dist/cjs/infrastructure/class/di/disposal/coordinator.class.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/disposal/coordinator.class.js +93 -0
- package/dist/cjs/infrastructure/class/di/disposal/coordinator.class.js.map +1 -0
- package/dist/cjs/infrastructure/class/di/disposal/manager.class.d.ts +28 -0
- package/dist/cjs/infrastructure/class/di/disposal/manager.class.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/disposal/manager.class.js +104 -0
- package/dist/cjs/infrastructure/class/di/disposal/manager.class.js.map +1 -0
- package/dist/cjs/infrastructure/class/di/disposer/coordinator.class.d.ts +41 -0
- package/dist/cjs/infrastructure/class/di/disposer/coordinator.class.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/disposer/coordinator.class.js +140 -0
- package/dist/cjs/infrastructure/class/di/disposer/coordinator.class.js.map +1 -0
- package/dist/cjs/infrastructure/class/di/engine/resolution.class.d.ts +38 -0
- package/dist/cjs/infrastructure/class/di/engine/resolution.class.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/engine/resolution.class.js +153 -0
- package/dist/cjs/infrastructure/class/di/engine/resolution.class.js.map +1 -0
- package/dist/cjs/infrastructure/class/di/graph/coordinator.class.d.ts +42 -0
- package/dist/cjs/infrastructure/class/di/graph/coordinator.class.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/graph/coordinator.class.js +121 -0
- package/dist/cjs/infrastructure/class/di/graph/coordinator.class.js.map +1 -0
- package/dist/cjs/infrastructure/class/di/index.d.ts +3 -0
- package/dist/cjs/infrastructure/class/di/index.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/interceptor/dispatcher.class.d.ts +17 -0
- package/dist/cjs/infrastructure/class/di/interceptor/dispatcher.class.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/interceptor/dispatcher.class.js +91 -0
- package/dist/cjs/infrastructure/class/di/interceptor/dispatcher.class.js.map +1 -0
- package/dist/cjs/infrastructure/class/di/interface/index.d.ts +3 -0
- package/dist/cjs/infrastructure/class/di/interface/index.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/interface/internal-container-options.interface.d.ts +7 -0
- package/dist/cjs/infrastructure/class/di/interface/internal-container-options.interface.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/interface/provider/index.d.ts +3 -0
- package/dist/cjs/infrastructure/class/di/interface/provider/index.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/interface/provider/lookup.interface.d.ts +8 -0
- package/dist/cjs/infrastructure/class/di/interface/provider/lookup.interface.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/interface/provider/registration.interface.d.ts +11 -0
- package/dist/cjs/infrastructure/class/di/interface/provider/registration.interface.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/lookup/coordinator.class.d.ts +10 -0
- package/dist/cjs/infrastructure/class/di/lookup/coordinator.class.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/lookup/coordinator.class.js +78 -0
- package/dist/cjs/infrastructure/class/di/lookup/coordinator.class.js.map +1 -0
- package/dist/cjs/infrastructure/class/di/registration/coordinator.class.d.ts +41 -0
- package/dist/cjs/infrastructure/class/di/registration/coordinator.class.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/registration/coordinator.class.js +251 -0
- package/dist/cjs/infrastructure/class/di/registration/coordinator.class.js.map +1 -0
- package/dist/cjs/infrastructure/class/di/resolution/coordinator.class.d.ts +62 -0
- package/dist/cjs/infrastructure/class/di/resolution/coordinator.class.d.ts.map +1 -0
- package/dist/cjs/infrastructure/class/di/resolution/coordinator.class.js +599 -0
- package/dist/cjs/infrastructure/class/di/resolution/coordinator.class.js.map +1 -0
- package/dist/cjs/infrastructure/constant/console-logger-default-options.constant.js +4 -0
- package/dist/cjs/infrastructure/constant/console-logger-default-options.constant.js.map +1 -1
- package/dist/cjs/infrastructure/factory/core.factory.d.ts +11 -31
- package/dist/cjs/infrastructure/factory/core.factory.d.ts.map +1 -1
- package/dist/cjs/infrastructure/factory/core.factory.js +13 -47
- package/dist/cjs/infrastructure/factory/core.factory.js.map +1 -1
- package/dist/cjs/infrastructure/index.d.ts +1 -0
- package/dist/cjs/infrastructure/index.d.ts.map +1 -1
- package/dist/cjs/infrastructure/interface/base/error-options.interface.d.ts +1 -1
- package/dist/cjs/infrastructure/interface/base/index.d.ts +0 -3
- package/dist/cjs/infrastructure/interface/base/index.d.ts.map +1 -1
- package/dist/cjs/infrastructure/interface/console-logger-options.interface.d.ts +1 -1
- package/dist/cjs/infrastructure/interface/core-factory-options.interface.d.ts +1 -1
- package/dist/cjs/infrastructure/interface/di-container-options.interface.d.ts +12 -0
- package/dist/cjs/infrastructure/interface/di-container-options.interface.d.ts.map +1 -0
- package/dist/cjs/infrastructure/interface/index.d.ts +1 -0
- package/dist/cjs/infrastructure/interface/index.d.ts.map +1 -1
- package/dist/cjs/infrastructure/service/console-logger.service.d.ts.map +1 -1
- package/dist/cjs/infrastructure/service/console-logger.service.js +10 -6
- package/dist/cjs/infrastructure/service/console-logger.service.js.map +1 -1
- package/dist/cjs/infrastructure/utility/to-error.utility.d.ts +7 -0
- package/dist/cjs/infrastructure/utility/to-error.utility.d.ts.map +1 -0
- package/dist/cjs/infrastructure/utility/to-error.utility.js +22 -0
- package/dist/cjs/infrastructure/utility/to-error.utility.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/constant/injectable-metadata-key.constant.d.ts +2 -0
- package/dist/cjs/presentation/ergonomics/constant/injectable-metadata-key.constant.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/constant/injectable-metadata-key.constant.js +6 -0
- package/dist/cjs/presentation/ergonomics/constant/injectable-metadata-key.constant.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/constant/module-metadata-key.constant.d.ts +2 -0
- package/dist/cjs/presentation/ergonomics/constant/module-metadata-key.constant.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/constant/module-metadata-key.constant.js +6 -0
- package/dist/cjs/presentation/ergonomics/constant/module-metadata-key.constant.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/decorator/after-resolve.decorator.d.ts +6 -0
- package/dist/cjs/presentation/ergonomics/decorator/after-resolve.decorator.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/decorator/after-resolve.decorator.js +41 -0
- package/dist/cjs/presentation/ergonomics/decorator/after-resolve.decorator.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/decorator/index.d.ts +7 -0
- package/dist/cjs/presentation/ergonomics/decorator/index.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/decorator/inject.decorator.d.ts +8 -0
- package/dist/cjs/presentation/ergonomics/decorator/inject.decorator.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/decorator/inject.decorator.js +35 -0
- package/dist/cjs/presentation/ergonomics/decorator/inject.decorator.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/decorator/injectable.decorator.d.ts +8 -0
- package/dist/cjs/presentation/ergonomics/decorator/injectable.decorator.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/decorator/injectable.decorator.js +89 -0
- package/dist/cjs/presentation/ergonomics/decorator/injectable.decorator.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/decorator/module.decorator.d.ts +8 -0
- package/dist/cjs/presentation/ergonomics/decorator/module.decorator.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/decorator/module.decorator.js +143 -0
- package/dist/cjs/presentation/ergonomics/decorator/module.decorator.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/decorator/on-dispose.decorator.d.ts +6 -0
- package/dist/cjs/presentation/ergonomics/decorator/on-dispose.decorator.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/decorator/on-dispose.decorator.js +41 -0
- package/dist/cjs/presentation/ergonomics/decorator/on-dispose.decorator.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/decorator/on-init.decorator.d.ts +6 -0
- package/dist/cjs/presentation/ergonomics/decorator/on-init.decorator.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/decorator/on-init.decorator.js +41 -0
- package/dist/cjs/presentation/ergonomics/decorator/on-init.decorator.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/index.d.ts +4 -0
- package/dist/cjs/presentation/ergonomics/index.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/interface/create/autowire-provider-options.interface.d.ts +12 -0
- package/dist/cjs/presentation/ergonomics/interface/create/autowire-provider-options.interface.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/interface/create/index.d.ts +3 -0
- package/dist/cjs/presentation/ergonomics/interface/create/index.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/interface/create/module-options.interface.d.ts +9 -0
- package/dist/cjs/presentation/ergonomics/interface/create/module-options.interface.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/interface/decorator/index.d.ts +2 -0
- package/dist/cjs/presentation/ergonomics/interface/decorator/index.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/interface/decorator/module-options.interface.d.ts +9 -0
- package/dist/cjs/presentation/ergonomics/interface/decorator/module-options.interface.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/interface/index.d.ts +4 -0
- package/dist/cjs/presentation/ergonomics/interface/index.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/interface/injectable/index.d.ts +3 -0
- package/dist/cjs/presentation/ergonomics/interface/injectable/index.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/interface/injectable/metadata.interface.d.ts +12 -0
- package/dist/cjs/presentation/ergonomics/interface/injectable/metadata.interface.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/interface/injectable/options.interface.d.ts +4 -0
- package/dist/cjs/presentation/ergonomics/interface/injectable/options.interface.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/compose-decorated-modules.utility.d.ts +9 -0
- package/dist/cjs/presentation/ergonomics/utility/compose-decorated-modules.utility.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/compose-decorated-modules.utility.js +63 -0
- package/dist/cjs/presentation/ergonomics/utility/compose-decorated-modules.utility.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/compose-modules.utility.d.ts +10 -0
- package/dist/cjs/presentation/ergonomics/utility/compose-modules.utility.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/compose-modules.utility.js +188 -0
- package/dist/cjs/presentation/ergonomics/utility/compose-modules.utility.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/create/autowire-provider.utility.d.ts +14 -0
- package/dist/cjs/presentation/ergonomics/utility/create/autowire-provider.utility.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/create/autowire-provider.utility.js +110 -0
- package/dist/cjs/presentation/ergonomics/utility/create/autowire-provider.utility.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/create/autowire.utility.d.ts +15 -0
- package/dist/cjs/presentation/ergonomics/utility/create/autowire.utility.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/create/autowire.utility.js +34 -0
- package/dist/cjs/presentation/ergonomics/utility/create/autowire.utility.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/create/index.d.ts +5 -0
- package/dist/cjs/presentation/ergonomics/utility/create/index.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/create/module-from-decorator.utility.d.ts +9 -0
- package/dist/cjs/presentation/ergonomics/utility/create/module-from-decorator.utility.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/create/module-from-decorator.utility.js +135 -0
- package/dist/cjs/presentation/ergonomics/utility/create/module-from-decorator.utility.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/create/module.utility.d.ts +9 -0
- package/dist/cjs/presentation/ergonomics/utility/create/module.utility.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/create/module.utility.js +19 -0
- package/dist/cjs/presentation/ergonomics/utility/create/module.utility.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/index.d.ts +6 -0
- package/dist/cjs/presentation/ergonomics/utility/index.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/get.utility.d.ts +9 -0
- package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/get.utility.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/get.utility.js +20 -0
- package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/get.utility.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/index.d.ts +3 -0
- package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/index.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/set.utility.d.ts +9 -0
- package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/set.utility.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/set.utility.js +15 -0
- package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/set.utility.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/module-metadata/get.utility.d.ts +9 -0
- package/dist/cjs/presentation/ergonomics/utility/module-metadata/get.utility.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/module-metadata/get.utility.js +20 -0
- package/dist/cjs/presentation/ergonomics/utility/module-metadata/get.utility.js.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/module-metadata/index.d.ts +3 -0
- package/dist/cjs/presentation/ergonomics/utility/module-metadata/index.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/module-metadata/set.utility.d.ts +9 -0
- package/dist/cjs/presentation/ergonomics/utility/module-metadata/set.utility.d.ts.map +1 -0
- package/dist/cjs/presentation/ergonomics/utility/module-metadata/set.utility.js +15 -0
- package/dist/cjs/presentation/ergonomics/utility/module-metadata/set.utility.js.map +1 -0
- package/dist/cjs/presentation/utility/create/di-container.utility.d.ts +9 -0
- package/dist/cjs/presentation/utility/create/di-container.utility.d.ts.map +1 -0
- package/dist/cjs/presentation/utility/create/di-container.utility.js +15 -0
- package/dist/cjs/presentation/utility/create/di-container.utility.js.map +1 -0
- package/dist/cjs/presentation/utility/create/index.d.ts +3 -3
- package/dist/cjs/presentation/utility/create/index.d.ts.map +1 -1
- package/dist/cjs/presentation/utility/create/lazy-provider.utility.d.ts +24 -0
- package/dist/cjs/presentation/utility/create/lazy-provider.utility.d.ts.map +1 -0
- package/dist/cjs/presentation/utility/create/lazy-provider.utility.js +29 -0
- package/dist/cjs/presentation/utility/create/lazy-provider.utility.js.map +1 -0
- package/dist/cjs/presentation/utility/create/logger.utility.d.ts +1 -1
- package/dist/cjs/presentation/utility/create/logger.utility.js +1 -1
- package/dist/cjs/presentation/utility/create/logger.utility.js.map +1 -1
- package/dist/cjs/presentation/utility/create/token.utility.d.ts +9 -0
- package/dist/cjs/presentation/utility/create/token.utility.d.ts.map +1 -0
- package/dist/cjs/presentation/utility/create/token.utility.js +14 -0
- package/dist/cjs/presentation/utility/create/token.utility.js.map +1 -0
- package/dist/esm/application/utility/safe-deep-clone.utility.d.ts.map +1 -1
- package/dist/esm/application/utility/safe-deep-clone.utility.js +104 -10
- package/dist/esm/application/utility/safe-deep-clone.utility.js.map +1 -1
- package/dist/esm/domain/enum/captive-dependency-policy.enum.d.ts +6 -0
- package/dist/esm/domain/enum/captive-dependency-policy.enum.d.ts.map +1 -0
- package/dist/esm/domain/enum/captive-dependency-policy.enum.js +9 -0
- package/dist/esm/domain/enum/captive-dependency-policy.enum.js.map +1 -0
- package/dist/esm/domain/enum/dependency-lifecycle.enum.d.ts +6 -0
- package/dist/esm/domain/enum/dependency-lifecycle.enum.d.ts.map +1 -0
- package/dist/esm/domain/enum/dependency-lifecycle.enum.js +9 -0
- package/dist/esm/domain/enum/dependency-lifecycle.enum.js.map +1 -0
- package/dist/esm/domain/enum/di-container-duplicate-provider-policy.enum.d.ts +6 -0
- package/dist/esm/domain/enum/di-container-duplicate-provider-policy.enum.d.ts.map +1 -0
- package/dist/esm/domain/enum/di-container-duplicate-provider-policy.enum.js +9 -0
- package/dist/esm/domain/enum/di-container-duplicate-provider-policy.enum.js.map +1 -0
- package/dist/esm/domain/enum/index.d.ts +4 -0
- package/dist/esm/domain/enum/index.d.ts.map +1 -1
- package/dist/esm/domain/enum/logger-log-level.enum.js.map +1 -1
- package/dist/esm/domain/enum/provider-type.enum.d.ts +8 -0
- package/dist/esm/domain/enum/provider-type.enum.d.ts.map +1 -0
- package/dist/esm/domain/enum/provider-type.enum.js +11 -0
- package/dist/esm/domain/enum/provider-type.enum.js.map +1 -0
- package/dist/esm/domain/index.d.ts +1 -0
- package/dist/esm/domain/index.d.ts.map +1 -1
- package/dist/esm/domain/interface/di/alias-provider.interface.d.ts +6 -0
- package/dist/esm/domain/interface/di/alias-provider.interface.d.ts.map +1 -0
- package/dist/esm/domain/interface/di/class-provider.interface.d.ts +9 -0
- package/dist/esm/domain/interface/di/class-provider.interface.d.ts.map +1 -0
- package/dist/esm/domain/interface/di/container-snapshot.interface.d.ts +19 -0
- package/dist/esm/domain/interface/di/container-snapshot.interface.d.ts.map +1 -0
- package/dist/esm/domain/interface/di/dependency-graph.interface.d.ts +19 -0
- package/dist/esm/domain/interface/di/dependency-graph.interface.d.ts.map +1 -0
- package/dist/esm/domain/interface/di/factory-provider.interface.d.ts +9 -0
- package/dist/esm/domain/interface/di/factory-provider.interface.d.ts.map +1 -0
- package/dist/esm/domain/interface/di/index.d.ts +15 -0
- package/dist/esm/domain/interface/di/index.d.ts.map +1 -0
- package/dist/esm/domain/interface/di/lazy-provider.interface.d.ts +6 -0
- package/dist/esm/domain/interface/di/lazy-provider.interface.d.ts.map +1 -0
- package/dist/esm/domain/interface/di/module.interface.d.ts +8 -0
- package/dist/esm/domain/interface/di/module.interface.d.ts.map +1 -0
- package/dist/esm/domain/interface/di/provider-base.interface.d.ts +11 -0
- package/dist/esm/domain/interface/di/provider-base.interface.d.ts.map +1 -0
- package/dist/esm/domain/interface/di/resolution-explanation.interface.d.ts +14 -0
- package/dist/esm/domain/interface/di/resolution-explanation.interface.d.ts.map +1 -0
- package/dist/esm/domain/interface/di/resolve-interceptor.interface.d.ts +26 -0
- package/dist/esm/domain/interface/di/resolve-interceptor.interface.d.ts.map +1 -0
- package/dist/esm/domain/interface/di/resolver.interface.d.ts +10 -0
- package/dist/esm/domain/interface/di/resolver.interface.d.ts.map +1 -0
- package/dist/esm/domain/interface/di/scope-create-options.interface.d.ts +9 -0
- package/dist/esm/domain/interface/di/scope-create-options.interface.d.ts.map +1 -0
- package/dist/esm/domain/interface/di/scope.interface.d.ts +23 -0
- package/dist/esm/domain/interface/di/scope.interface.d.ts.map +1 -0
- package/dist/esm/domain/interface/di/value-provider.interface.d.ts +5 -0
- package/dist/esm/domain/interface/di/value-provider.interface.d.ts.map +1 -0
- package/dist/esm/domain/interface/error.interface.d.ts +6 -2
- package/dist/esm/domain/interface/error.interface.d.ts.map +1 -1
- package/dist/esm/domain/interface/index.d.ts +1 -3
- package/dist/esm/domain/interface/index.d.ts.map +1 -1
- package/dist/esm/domain/interface/logger/index.d.ts +2 -2
- package/dist/esm/domain/interface/logger/index.d.ts.map +1 -1
- package/dist/esm/domain/type/di/constructor.type.d.ts +2 -0
- package/dist/esm/domain/type/di/constructor.type.d.ts.map +1 -0
- package/dist/esm/domain/type/di/di-container.type.d.ts +3 -0
- package/dist/esm/domain/type/di/di-container.type.d.ts.map +1 -0
- package/dist/esm/domain/type/di/index.d.ts +5 -0
- package/dist/esm/domain/type/di/index.d.ts.map +1 -0
- package/dist/esm/domain/type/di/provider.type.d.ts +7 -0
- package/dist/esm/domain/type/di/provider.type.d.ts.map +1 -0
- package/dist/esm/domain/type/di/token.type.d.ts +4 -0
- package/dist/esm/domain/type/di/token.type.d.ts.map +1 -0
- package/dist/esm/domain/type/index.d.ts +2 -0
- package/dist/esm/domain/type/index.d.ts.map +1 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +24 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/infrastructure/class/base/error.class.d.ts +7 -4
- package/dist/esm/infrastructure/class/base/error.class.d.ts.map +1 -1
- package/dist/esm/infrastructure/class/base/error.class.js +13 -3
- package/dist/esm/infrastructure/class/base/error.class.js.map +1 -1
- package/dist/esm/infrastructure/class/base/index.d.ts +0 -3
- package/dist/esm/infrastructure/class/base/index.d.ts.map +1 -1
- package/dist/esm/infrastructure/class/di/cache/coordinator.class.d.ts +14 -0
- package/dist/esm/infrastructure/class/di/cache/coordinator.class.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/cache/coordinator.class.js +124 -0
- package/dist/esm/infrastructure/class/di/cache/coordinator.class.js.map +1 -0
- package/dist/esm/infrastructure/class/di/captive/coordinator.class.d.ts +17 -0
- package/dist/esm/infrastructure/class/di/captive/coordinator.class.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/captive/coordinator.class.js +60 -0
- package/dist/esm/infrastructure/class/di/captive/coordinator.class.js.map +1 -0
- package/dist/esm/infrastructure/class/di/container.class.d.ts +75 -0
- package/dist/esm/infrastructure/class/di/container.class.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/container.class.js +630 -0
- package/dist/esm/infrastructure/class/di/container.class.js.map +1 -0
- package/dist/esm/infrastructure/class/di/disposal/coordinator.class.d.ts +34 -0
- package/dist/esm/infrastructure/class/di/disposal/coordinator.class.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/disposal/coordinator.class.js +91 -0
- package/dist/esm/infrastructure/class/di/disposal/coordinator.class.js.map +1 -0
- package/dist/esm/infrastructure/class/di/disposal/manager.class.d.ts +28 -0
- package/dist/esm/infrastructure/class/di/disposal/manager.class.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/disposal/manager.class.js +102 -0
- package/dist/esm/infrastructure/class/di/disposal/manager.class.js.map +1 -0
- package/dist/esm/infrastructure/class/di/disposer/coordinator.class.d.ts +41 -0
- package/dist/esm/infrastructure/class/di/disposer/coordinator.class.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/disposer/coordinator.class.js +138 -0
- package/dist/esm/infrastructure/class/di/disposer/coordinator.class.js.map +1 -0
- package/dist/esm/infrastructure/class/di/engine/resolution.class.d.ts +38 -0
- package/dist/esm/infrastructure/class/di/engine/resolution.class.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/engine/resolution.class.js +151 -0
- package/dist/esm/infrastructure/class/di/engine/resolution.class.js.map +1 -0
- package/dist/esm/infrastructure/class/di/graph/coordinator.class.d.ts +42 -0
- package/dist/esm/infrastructure/class/di/graph/coordinator.class.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/graph/coordinator.class.js +119 -0
- package/dist/esm/infrastructure/class/di/graph/coordinator.class.js.map +1 -0
- package/dist/esm/infrastructure/class/di/index.d.ts +3 -0
- package/dist/esm/infrastructure/class/di/index.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/interceptor/dispatcher.class.d.ts +17 -0
- package/dist/esm/infrastructure/class/di/interceptor/dispatcher.class.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/interceptor/dispatcher.class.js +89 -0
- package/dist/esm/infrastructure/class/di/interceptor/dispatcher.class.js.map +1 -0
- package/dist/esm/infrastructure/class/di/interface/index.d.ts +3 -0
- package/dist/esm/infrastructure/class/di/interface/index.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/interface/internal-container-options.interface.d.ts +7 -0
- package/dist/esm/infrastructure/class/di/interface/internal-container-options.interface.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/interface/provider/index.d.ts +3 -0
- package/dist/esm/infrastructure/class/di/interface/provider/index.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/interface/provider/lookup.interface.d.ts +8 -0
- package/dist/esm/infrastructure/class/di/interface/provider/lookup.interface.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/interface/provider/registration.interface.d.ts +11 -0
- package/dist/esm/infrastructure/class/di/interface/provider/registration.interface.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/lookup/coordinator.class.d.ts +10 -0
- package/dist/esm/infrastructure/class/di/lookup/coordinator.class.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/lookup/coordinator.class.js +76 -0
- package/dist/esm/infrastructure/class/di/lookup/coordinator.class.js.map +1 -0
- package/dist/esm/infrastructure/class/di/registration/coordinator.class.d.ts +41 -0
- package/dist/esm/infrastructure/class/di/registration/coordinator.class.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/registration/coordinator.class.js +249 -0
- package/dist/esm/infrastructure/class/di/registration/coordinator.class.js.map +1 -0
- package/dist/esm/infrastructure/class/di/resolution/coordinator.class.d.ts +62 -0
- package/dist/esm/infrastructure/class/di/resolution/coordinator.class.d.ts.map +1 -0
- package/dist/esm/infrastructure/class/di/resolution/coordinator.class.js +597 -0
- package/dist/esm/infrastructure/class/di/resolution/coordinator.class.js.map +1 -0
- package/dist/esm/infrastructure/constant/console-logger-default-options.constant.js +4 -0
- package/dist/esm/infrastructure/constant/console-logger-default-options.constant.js.map +1 -1
- package/dist/esm/infrastructure/factory/core.factory.d.ts +11 -31
- package/dist/esm/infrastructure/factory/core.factory.d.ts.map +1 -1
- package/dist/esm/infrastructure/factory/core.factory.js +13 -47
- package/dist/esm/infrastructure/factory/core.factory.js.map +1 -1
- package/dist/esm/infrastructure/index.d.ts +1 -0
- package/dist/esm/infrastructure/index.d.ts.map +1 -1
- package/dist/esm/infrastructure/interface/base/error-options.interface.d.ts +1 -1
- package/dist/esm/infrastructure/interface/base/index.d.ts +0 -3
- package/dist/esm/infrastructure/interface/base/index.d.ts.map +1 -1
- package/dist/esm/infrastructure/interface/console-logger-options.interface.d.ts +1 -1
- package/dist/esm/infrastructure/interface/core-factory-options.interface.d.ts +1 -1
- package/dist/esm/infrastructure/interface/di-container-options.interface.d.ts +12 -0
- package/dist/esm/infrastructure/interface/di-container-options.interface.d.ts.map +1 -0
- package/dist/esm/infrastructure/interface/index.d.ts +1 -0
- package/dist/esm/infrastructure/interface/index.d.ts.map +1 -1
- package/dist/esm/infrastructure/service/console-logger.service.d.ts.map +1 -1
- package/dist/esm/infrastructure/service/console-logger.service.js +10 -6
- package/dist/esm/infrastructure/service/console-logger.service.js.map +1 -1
- package/dist/esm/infrastructure/utility/to-error.utility.d.ts +7 -0
- package/dist/esm/infrastructure/utility/to-error.utility.d.ts.map +1 -0
- package/dist/esm/infrastructure/utility/to-error.utility.js +20 -0
- package/dist/esm/infrastructure/utility/to-error.utility.js.map +1 -0
- package/dist/esm/presentation/ergonomics/constant/injectable-metadata-key.constant.d.ts +2 -0
- package/dist/esm/presentation/ergonomics/constant/injectable-metadata-key.constant.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/constant/injectable-metadata-key.constant.js +4 -0
- package/dist/esm/presentation/ergonomics/constant/injectable-metadata-key.constant.js.map +1 -0
- package/dist/esm/presentation/ergonomics/constant/module-metadata-key.constant.d.ts +2 -0
- package/dist/esm/presentation/ergonomics/constant/module-metadata-key.constant.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/constant/module-metadata-key.constant.js +4 -0
- package/dist/esm/presentation/ergonomics/constant/module-metadata-key.constant.js.map +1 -0
- package/dist/esm/presentation/ergonomics/decorator/after-resolve.decorator.d.ts +6 -0
- package/dist/esm/presentation/ergonomics/decorator/after-resolve.decorator.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/decorator/after-resolve.decorator.js +39 -0
- package/dist/esm/presentation/ergonomics/decorator/after-resolve.decorator.js.map +1 -0
- package/dist/esm/presentation/ergonomics/decorator/index.d.ts +7 -0
- package/dist/esm/presentation/ergonomics/decorator/index.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/decorator/inject.decorator.d.ts +8 -0
- package/dist/esm/presentation/ergonomics/decorator/inject.decorator.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/decorator/inject.decorator.js +33 -0
- package/dist/esm/presentation/ergonomics/decorator/inject.decorator.js.map +1 -0
- package/dist/esm/presentation/ergonomics/decorator/injectable.decorator.d.ts +8 -0
- package/dist/esm/presentation/ergonomics/decorator/injectable.decorator.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/decorator/injectable.decorator.js +87 -0
- package/dist/esm/presentation/ergonomics/decorator/injectable.decorator.js.map +1 -0
- package/dist/esm/presentation/ergonomics/decorator/module.decorator.d.ts +8 -0
- package/dist/esm/presentation/ergonomics/decorator/module.decorator.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/decorator/module.decorator.js +141 -0
- package/dist/esm/presentation/ergonomics/decorator/module.decorator.js.map +1 -0
- package/dist/esm/presentation/ergonomics/decorator/on-dispose.decorator.d.ts +6 -0
- package/dist/esm/presentation/ergonomics/decorator/on-dispose.decorator.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/decorator/on-dispose.decorator.js +39 -0
- package/dist/esm/presentation/ergonomics/decorator/on-dispose.decorator.js.map +1 -0
- package/dist/esm/presentation/ergonomics/decorator/on-init.decorator.d.ts +6 -0
- package/dist/esm/presentation/ergonomics/decorator/on-init.decorator.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/decorator/on-init.decorator.js +39 -0
- package/dist/esm/presentation/ergonomics/decorator/on-init.decorator.js.map +1 -0
- package/dist/esm/presentation/ergonomics/index.d.ts +4 -0
- package/dist/esm/presentation/ergonomics/index.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/interface/create/autowire-provider-options.interface.d.ts +12 -0
- package/dist/esm/presentation/ergonomics/interface/create/autowire-provider-options.interface.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/interface/create/index.d.ts +3 -0
- package/dist/esm/presentation/ergonomics/interface/create/index.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/interface/create/module-options.interface.d.ts +9 -0
- package/dist/esm/presentation/ergonomics/interface/create/module-options.interface.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/interface/decorator/index.d.ts +2 -0
- package/dist/esm/presentation/ergonomics/interface/decorator/index.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/interface/decorator/module-options.interface.d.ts +9 -0
- package/dist/esm/presentation/ergonomics/interface/decorator/module-options.interface.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/interface/index.d.ts +4 -0
- package/dist/esm/presentation/ergonomics/interface/index.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/interface/injectable/index.d.ts +3 -0
- package/dist/esm/presentation/ergonomics/interface/injectable/index.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/interface/injectable/metadata.interface.d.ts +12 -0
- package/dist/esm/presentation/ergonomics/interface/injectable/metadata.interface.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/interface/injectable/options.interface.d.ts +4 -0
- package/dist/esm/presentation/ergonomics/interface/injectable/options.interface.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/compose-decorated-modules.utility.d.ts +9 -0
- package/dist/esm/presentation/ergonomics/utility/compose-decorated-modules.utility.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/compose-decorated-modules.utility.js +61 -0
- package/dist/esm/presentation/ergonomics/utility/compose-decorated-modules.utility.js.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/compose-modules.utility.d.ts +10 -0
- package/dist/esm/presentation/ergonomics/utility/compose-modules.utility.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/compose-modules.utility.js +186 -0
- package/dist/esm/presentation/ergonomics/utility/compose-modules.utility.js.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/create/autowire-provider.utility.d.ts +14 -0
- package/dist/esm/presentation/ergonomics/utility/create/autowire-provider.utility.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/create/autowire-provider.utility.js +108 -0
- package/dist/esm/presentation/ergonomics/utility/create/autowire-provider.utility.js.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/create/autowire.utility.d.ts +15 -0
- package/dist/esm/presentation/ergonomics/utility/create/autowire.utility.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/create/autowire.utility.js +32 -0
- package/dist/esm/presentation/ergonomics/utility/create/autowire.utility.js.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/create/index.d.ts +5 -0
- package/dist/esm/presentation/ergonomics/utility/create/index.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/create/module-from-decorator.utility.d.ts +9 -0
- package/dist/esm/presentation/ergonomics/utility/create/module-from-decorator.utility.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/create/module-from-decorator.utility.js +133 -0
- package/dist/esm/presentation/ergonomics/utility/create/module-from-decorator.utility.js.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/create/module.utility.d.ts +9 -0
- package/dist/esm/presentation/ergonomics/utility/create/module.utility.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/create/module.utility.js +17 -0
- package/dist/esm/presentation/ergonomics/utility/create/module.utility.js.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/index.d.ts +6 -0
- package/dist/esm/presentation/ergonomics/utility/index.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/injectable-metadata/get.utility.d.ts +9 -0
- package/dist/esm/presentation/ergonomics/utility/injectable-metadata/get.utility.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/injectable-metadata/get.utility.js +18 -0
- package/dist/esm/presentation/ergonomics/utility/injectable-metadata/get.utility.js.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/injectable-metadata/index.d.ts +3 -0
- package/dist/esm/presentation/ergonomics/utility/injectable-metadata/index.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/injectable-metadata/set.utility.d.ts +9 -0
- package/dist/esm/presentation/ergonomics/utility/injectable-metadata/set.utility.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/injectable-metadata/set.utility.js +13 -0
- package/dist/esm/presentation/ergonomics/utility/injectable-metadata/set.utility.js.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/module-metadata/get.utility.d.ts +9 -0
- package/dist/esm/presentation/ergonomics/utility/module-metadata/get.utility.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/module-metadata/get.utility.js +18 -0
- package/dist/esm/presentation/ergonomics/utility/module-metadata/get.utility.js.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/module-metadata/index.d.ts +3 -0
- package/dist/esm/presentation/ergonomics/utility/module-metadata/index.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/module-metadata/set.utility.d.ts +9 -0
- package/dist/esm/presentation/ergonomics/utility/module-metadata/set.utility.d.ts.map +1 -0
- package/dist/esm/presentation/ergonomics/utility/module-metadata/set.utility.js +13 -0
- package/dist/esm/presentation/ergonomics/utility/module-metadata/set.utility.js.map +1 -0
- package/dist/esm/presentation/utility/create/di-container.utility.d.ts +9 -0
- package/dist/esm/presentation/utility/create/di-container.utility.d.ts.map +1 -0
- package/dist/esm/presentation/utility/create/di-container.utility.js +13 -0
- package/dist/esm/presentation/utility/create/di-container.utility.js.map +1 -0
- package/dist/esm/presentation/utility/create/index.d.ts +3 -3
- package/dist/esm/presentation/utility/create/index.d.ts.map +1 -1
- package/dist/esm/presentation/utility/create/lazy-provider.utility.d.ts +24 -0
- package/dist/esm/presentation/utility/create/lazy-provider.utility.d.ts.map +1 -0
- package/dist/esm/presentation/utility/create/lazy-provider.utility.js +27 -0
- package/dist/esm/presentation/utility/create/lazy-provider.utility.js.map +1 -0
- package/dist/esm/presentation/utility/create/logger.utility.d.ts +1 -1
- package/dist/esm/presentation/utility/create/logger.utility.js +1 -1
- package/dist/esm/presentation/utility/create/logger.utility.js.map +1 -1
- package/dist/esm/presentation/utility/create/token.utility.d.ts +9 -0
- package/dist/esm/presentation/utility/create/token.utility.d.ts.map +1 -0
- package/dist/esm/presentation/utility/create/token.utility.js +12 -0
- package/dist/esm/presentation/utility/create/token.utility.js.map +1 -0
- package/package.json +37 -29
- package/dist/cjs/domain/interface/container.interface.d.ts +0 -56
- package/dist/cjs/domain/interface/container.interface.d.ts.map +0 -1
- package/dist/cjs/domain/interface/factory.interface.d.ts +0 -20
- package/dist/cjs/domain/interface/factory.interface.d.ts.map +0 -1
- package/dist/cjs/domain/interface/registry.interface.d.ts +0 -55
- package/dist/cjs/domain/interface/registry.interface.d.ts.map +0 -1
- package/dist/cjs/infrastructure/class/base/container.class.d.ts +0 -68
- package/dist/cjs/infrastructure/class/base/container.class.d.ts.map +0 -1
- package/dist/cjs/infrastructure/class/base/container.class.js +0 -194
- package/dist/cjs/infrastructure/class/base/container.class.js.map +0 -1
- package/dist/cjs/infrastructure/class/base/factory.class.d.ts +0 -49
- package/dist/cjs/infrastructure/class/base/factory.class.d.ts.map +0 -1
- package/dist/cjs/infrastructure/class/base/factory.class.js +0 -88
- package/dist/cjs/infrastructure/class/base/factory.class.js.map +0 -1
- package/dist/cjs/infrastructure/class/base/registry.class.d.ts +0 -74
- package/dist/cjs/infrastructure/class/base/registry.class.d.ts.map +0 -1
- package/dist/cjs/infrastructure/class/base/registry.class.js +0 -222
- package/dist/cjs/infrastructure/class/base/registry.class.js.map +0 -1
- package/dist/cjs/infrastructure/interface/base/container-options.interface.d.ts +0 -13
- package/dist/cjs/infrastructure/interface/base/container-options.interface.d.ts.map +0 -1
- package/dist/cjs/infrastructure/interface/base/factory-options.interface.d.ts +0 -22
- package/dist/cjs/infrastructure/interface/base/factory-options.interface.d.ts.map +0 -1
- package/dist/cjs/infrastructure/interface/base/registry-options.interface.d.ts +0 -13
- package/dist/cjs/infrastructure/interface/base/registry-options.interface.d.ts.map +0 -1
- package/dist/cjs/presentation/utility/create/container.utility.d.ts +0 -10
- package/dist/cjs/presentation/utility/create/container.utility.d.ts.map +0 -1
- package/dist/cjs/presentation/utility/create/container.utility.js +0 -18
- package/dist/cjs/presentation/utility/create/container.utility.js.map +0 -1
- package/dist/cjs/presentation/utility/create/factory.utility.d.ts +0 -11
- package/dist/cjs/presentation/utility/create/factory.utility.d.ts.map +0 -1
- package/dist/cjs/presentation/utility/create/factory.utility.js +0 -19
- package/dist/cjs/presentation/utility/create/factory.utility.js.map +0 -1
- package/dist/cjs/presentation/utility/create/registry.utility.d.ts +0 -13
- package/dist/cjs/presentation/utility/create/registry.utility.d.ts.map +0 -1
- package/dist/cjs/presentation/utility/create/registry.utility.js +0 -19
- package/dist/cjs/presentation/utility/create/registry.utility.js.map +0 -1
- package/dist/esm/domain/interface/container.interface.d.ts +0 -56
- package/dist/esm/domain/interface/container.interface.d.ts.map +0 -1
- package/dist/esm/domain/interface/factory.interface.d.ts +0 -20
- package/dist/esm/domain/interface/factory.interface.d.ts.map +0 -1
- package/dist/esm/domain/interface/registry.interface.d.ts +0 -55
- package/dist/esm/domain/interface/registry.interface.d.ts.map +0 -1
- package/dist/esm/infrastructure/class/base/container.class.d.ts +0 -68
- package/dist/esm/infrastructure/class/base/container.class.d.ts.map +0 -1
- package/dist/esm/infrastructure/class/base/container.class.js +0 -192
- package/dist/esm/infrastructure/class/base/container.class.js.map +0 -1
- package/dist/esm/infrastructure/class/base/factory.class.d.ts +0 -49
- package/dist/esm/infrastructure/class/base/factory.class.d.ts.map +0 -1
- package/dist/esm/infrastructure/class/base/factory.class.js +0 -86
- package/dist/esm/infrastructure/class/base/factory.class.js.map +0 -1
- package/dist/esm/infrastructure/class/base/registry.class.d.ts +0 -74
- package/dist/esm/infrastructure/class/base/registry.class.d.ts.map +0 -1
- package/dist/esm/infrastructure/class/base/registry.class.js +0 -220
- package/dist/esm/infrastructure/class/base/registry.class.js.map +0 -1
- package/dist/esm/infrastructure/interface/base/container-options.interface.d.ts +0 -13
- package/dist/esm/infrastructure/interface/base/container-options.interface.d.ts.map +0 -1
- package/dist/esm/infrastructure/interface/base/factory-options.interface.d.ts +0 -22
- package/dist/esm/infrastructure/interface/base/factory-options.interface.d.ts.map +0 -1
- package/dist/esm/infrastructure/interface/base/registry-options.interface.d.ts +0 -13
- package/dist/esm/infrastructure/interface/base/registry-options.interface.d.ts.map +0 -1
- package/dist/esm/presentation/utility/create/container.utility.d.ts +0 -10
- package/dist/esm/presentation/utility/create/container.utility.d.ts.map +0 -1
- package/dist/esm/presentation/utility/create/container.utility.js +0 -16
- package/dist/esm/presentation/utility/create/container.utility.js.map +0 -1
- package/dist/esm/presentation/utility/create/factory.utility.d.ts +0 -11
- package/dist/esm/presentation/utility/create/factory.utility.d.ts.map +0 -1
- package/dist/esm/presentation/utility/create/factory.utility.js +0 -17
- package/dist/esm/presentation/utility/create/factory.utility.js.map +0 -1
- package/dist/esm/presentation/utility/create/registry.utility.d.ts +0 -13
- package/dist/esm/presentation/utility/create/registry.utility.d.ts.map +0 -1
- package/dist/esm/presentation/utility/create/registry.utility.js +0 -17
- package/dist/esm/presentation/utility/create/registry.utility.js.map +0 -1
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { toError } from '../../../utility/to-error.utility.js';
|
|
2
|
+
|
|
3
|
+
class ResolutionEngine {
|
|
4
|
+
ASSERT_KEY;
|
|
5
|
+
ENSURE_ACTIVE;
|
|
6
|
+
ENSURE_NOT_DISPOSING;
|
|
7
|
+
GET_SCOPE_ID;
|
|
8
|
+
NOTIFY_ON_ERROR;
|
|
9
|
+
NOTIFY_ON_START;
|
|
10
|
+
NOTIFY_ON_SUCCESS;
|
|
11
|
+
ON_ASYNC_RESOLUTION_END;
|
|
12
|
+
ON_ASYNC_RESOLUTION_START;
|
|
13
|
+
RESOLVE_ALL_ASYNC_INTERNAL;
|
|
14
|
+
RESOLVE_ALL_SYNC_INTERNAL;
|
|
15
|
+
RESOLVE_ASYNC_INTERNAL;
|
|
16
|
+
RESOLVE_SYNC_INTERNAL;
|
|
17
|
+
constructor(options) {
|
|
18
|
+
this.ASSERT_KEY = options.assertKey;
|
|
19
|
+
this.ENSURE_ACTIVE = options.ensureActive;
|
|
20
|
+
this.ENSURE_NOT_DISPOSING = options.ensureNotDisposing;
|
|
21
|
+
this.GET_SCOPE_ID = options.getScopeId;
|
|
22
|
+
this.NOTIFY_ON_ERROR = options.notifyOnError;
|
|
23
|
+
this.NOTIFY_ON_START = options.notifyOnStart;
|
|
24
|
+
this.NOTIFY_ON_SUCCESS = options.notifyOnSuccess;
|
|
25
|
+
this.ON_ASYNC_RESOLUTION_END = options.onAsyncResolutionEnd;
|
|
26
|
+
this.ON_ASYNC_RESOLUTION_START = options.onAsyncResolutionStart;
|
|
27
|
+
this.RESOLVE_ALL_ASYNC_INTERNAL = options.resolveAllAsyncInternal;
|
|
28
|
+
this.RESOLVE_ALL_SYNC_INTERNAL = options.resolveAllSyncInternal;
|
|
29
|
+
this.RESOLVE_ASYNC_INTERNAL = options.resolveAsyncInternal;
|
|
30
|
+
this.RESOLVE_SYNC_INTERNAL = options.resolveSyncInternal;
|
|
31
|
+
}
|
|
32
|
+
resolve(dependencyKey) {
|
|
33
|
+
this.ENSURE_NOT_DISPOSING();
|
|
34
|
+
this.ENSURE_ACTIVE();
|
|
35
|
+
const dependencyKeySymbol = this.ASSERT_KEY(dependencyKey);
|
|
36
|
+
const scopeId = this.GET_SCOPE_ID();
|
|
37
|
+
this.NOTIFY_ON_START(dependencyKeySymbol, false, false, false, scopeId);
|
|
38
|
+
try {
|
|
39
|
+
const resolvedValue = this.RESOLVE_SYNC_INTERNAL(dependencyKeySymbol, [], new Set());
|
|
40
|
+
this.NOTIFY_ON_SUCCESS(dependencyKeySymbol, false, false, false, scopeId, resolvedValue);
|
|
41
|
+
return resolvedValue;
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
this.NOTIFY_ON_ERROR(dependencyKeySymbol, false, false, false, scopeId, toError(error));
|
|
45
|
+
throw error;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
resolveAll(dependencyKey) {
|
|
49
|
+
this.ENSURE_NOT_DISPOSING();
|
|
50
|
+
this.ENSURE_ACTIVE();
|
|
51
|
+
const dependencyKeySymbol = this.ASSERT_KEY(dependencyKey);
|
|
52
|
+
const scopeId = this.GET_SCOPE_ID();
|
|
53
|
+
this.NOTIFY_ON_START(dependencyKeySymbol, false, true, false, scopeId);
|
|
54
|
+
try {
|
|
55
|
+
const resolvedValues = this.RESOLVE_ALL_SYNC_INTERNAL(dependencyKeySymbol, [], new Set());
|
|
56
|
+
this.NOTIFY_ON_SUCCESS(dependencyKeySymbol, false, true, false, scopeId, resolvedValues);
|
|
57
|
+
return resolvedValues;
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
this.NOTIFY_ON_ERROR(dependencyKeySymbol, false, true, false, scopeId, toError(error));
|
|
61
|
+
throw error;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
async resolveAllAsync(dependencyKey) {
|
|
65
|
+
this.ENSURE_NOT_DISPOSING();
|
|
66
|
+
this.ENSURE_ACTIVE();
|
|
67
|
+
const dependencyKeySymbol = this.ASSERT_KEY(dependencyKey);
|
|
68
|
+
const scopeId = this.GET_SCOPE_ID();
|
|
69
|
+
this.NOTIFY_ON_START(dependencyKeySymbol, true, true, false, scopeId);
|
|
70
|
+
this.ON_ASYNC_RESOLUTION_START();
|
|
71
|
+
try {
|
|
72
|
+
const resolvedValues = (await this.RESOLVE_ALL_ASYNC_INTERNAL(dependencyKeySymbol, [], new Set()));
|
|
73
|
+
this.NOTIFY_ON_SUCCESS(dependencyKeySymbol, true, true, false, scopeId, resolvedValues);
|
|
74
|
+
return resolvedValues;
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
this.NOTIFY_ON_ERROR(dependencyKeySymbol, true, true, false, scopeId, toError(error));
|
|
78
|
+
throw error;
|
|
79
|
+
}
|
|
80
|
+
finally {
|
|
81
|
+
this.ON_ASYNC_RESOLUTION_END();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
async resolveAsync(dependencyKey) {
|
|
85
|
+
this.ENSURE_NOT_DISPOSING();
|
|
86
|
+
this.ENSURE_ACTIVE();
|
|
87
|
+
const dependencyKeySymbol = this.ASSERT_KEY(dependencyKey);
|
|
88
|
+
const scopeId = this.GET_SCOPE_ID();
|
|
89
|
+
this.NOTIFY_ON_START(dependencyKeySymbol, true, false, false, scopeId);
|
|
90
|
+
this.ON_ASYNC_RESOLUTION_START();
|
|
91
|
+
try {
|
|
92
|
+
const resolvedValue = (await this.RESOLVE_ASYNC_INTERNAL(dependencyKeySymbol, [], new Set()));
|
|
93
|
+
this.NOTIFY_ON_SUCCESS(dependencyKeySymbol, true, false, false, scopeId, resolvedValue);
|
|
94
|
+
return resolvedValue;
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
this.NOTIFY_ON_ERROR(dependencyKeySymbol, true, false, false, scopeId, toError(error));
|
|
98
|
+
throw error;
|
|
99
|
+
}
|
|
100
|
+
finally {
|
|
101
|
+
this.ON_ASYNC_RESOLUTION_END();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
resolveOptional(dependencyKey, hasRegistration) {
|
|
105
|
+
this.ENSURE_NOT_DISPOSING();
|
|
106
|
+
this.ENSURE_ACTIVE();
|
|
107
|
+
const dependencyKeySymbol = this.ASSERT_KEY(dependencyKey);
|
|
108
|
+
const scopeId = this.GET_SCOPE_ID();
|
|
109
|
+
this.NOTIFY_ON_START(dependencyKeySymbol, false, false, true, scopeId);
|
|
110
|
+
if (!hasRegistration(dependencyKeySymbol)) {
|
|
111
|
+
this.NOTIFY_ON_SUCCESS(dependencyKeySymbol, false, false, true, scopeId);
|
|
112
|
+
return undefined;
|
|
113
|
+
}
|
|
114
|
+
try {
|
|
115
|
+
const resolvedValue = this.RESOLVE_SYNC_INTERNAL(dependencyKeySymbol, [], new Set());
|
|
116
|
+
this.NOTIFY_ON_SUCCESS(dependencyKeySymbol, false, false, true, scopeId, resolvedValue);
|
|
117
|
+
return resolvedValue;
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
this.NOTIFY_ON_ERROR(dependencyKeySymbol, false, false, true, scopeId, toError(error));
|
|
121
|
+
throw error;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
async resolveOptionalAsync(dependencyKey, hasRegistration) {
|
|
125
|
+
this.ENSURE_NOT_DISPOSING();
|
|
126
|
+
this.ENSURE_ACTIVE();
|
|
127
|
+
const dependencyKeySymbol = this.ASSERT_KEY(dependencyKey);
|
|
128
|
+
const scopeId = this.GET_SCOPE_ID();
|
|
129
|
+
this.NOTIFY_ON_START(dependencyKeySymbol, true, false, true, scopeId);
|
|
130
|
+
if (!hasRegistration(dependencyKeySymbol)) {
|
|
131
|
+
this.NOTIFY_ON_SUCCESS(dependencyKeySymbol, true, false, true, scopeId);
|
|
132
|
+
return undefined;
|
|
133
|
+
}
|
|
134
|
+
this.ON_ASYNC_RESOLUTION_START();
|
|
135
|
+
try {
|
|
136
|
+
const resolvedValue = (await this.RESOLVE_ASYNC_INTERNAL(dependencyKeySymbol, [], new Set()));
|
|
137
|
+
this.NOTIFY_ON_SUCCESS(dependencyKeySymbol, true, false, true, scopeId, resolvedValue);
|
|
138
|
+
return resolvedValue;
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
this.NOTIFY_ON_ERROR(dependencyKeySymbol, true, false, true, scopeId, toError(error));
|
|
142
|
+
throw error;
|
|
143
|
+
}
|
|
144
|
+
finally {
|
|
145
|
+
this.ON_ASYNC_RESOLUTION_END();
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
export { ResolutionEngine };
|
|
151
|
+
//# sourceMappingURL=resolution.class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolution.class.js","sources":["../../../../../../../src/infrastructure/class/di/engine/resolution.class.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { EDiContainerCaptiveDependencyPolicy } from '../../../../domain/enum/index';
|
|
2
|
+
import type { ILogger } from '../../../../domain/interface/index';
|
|
3
|
+
import type { Token } from '../../../../domain/type/index';
|
|
4
|
+
import type { DIContainer } from '../container.class';
|
|
5
|
+
import type { IProviderLookup, IProviderRegistration } from '../interface/provider/index';
|
|
6
|
+
import { LookupCoordinator } from '../lookup/coordinator.class';
|
|
7
|
+
export declare class DependencyGraphCoordinator {
|
|
8
|
+
private readonly ASSERT_KEY;
|
|
9
|
+
private readonly CAPTIVE_COORDINATOR;
|
|
10
|
+
private readonly DESCRIBE_KEY;
|
|
11
|
+
private readonly GET_CHILD_SCOPES;
|
|
12
|
+
private readonly GET_CURRENT_SCOPE_ID;
|
|
13
|
+
private readonly GET_PARENT;
|
|
14
|
+
private readonly GET_REGISTRATIONS_BY_TOKEN;
|
|
15
|
+
private readonly GET_REGISTRATIONS_FOR_SCOPE;
|
|
16
|
+
private readonly GET_SCOPE_ID;
|
|
17
|
+
private readonly LOOKUP_COORDINATOR;
|
|
18
|
+
constructor(options: {
|
|
19
|
+
assertKey: <T>(dependencyKey: Token<T>) => symbol;
|
|
20
|
+
captiveDependencyPolicy: EDiContainerCaptiveDependencyPolicy;
|
|
21
|
+
describeKey: (dependencyKeySymbol: symbol) => string;
|
|
22
|
+
getChildScopes: (scopeNode: DIContainer) => ReadonlyArray<DIContainer>;
|
|
23
|
+
getCurrentScopeId: () => string;
|
|
24
|
+
getParent: (scopeNode: DIContainer) => DIContainer | undefined;
|
|
25
|
+
getRegistrationsByToken: (scopeNode: DIContainer) => ReadonlyMap<symbol, ReadonlyArray<IProviderRegistration<unknown>>>;
|
|
26
|
+
getRegistrationsForScope: (scopeNode: DIContainer, dependencyKeySymbol: symbol) => Array<IProviderRegistration<unknown>> | undefined;
|
|
27
|
+
getScopeId: (scopeNode: DIContainer) => string;
|
|
28
|
+
logger: ILogger;
|
|
29
|
+
lookupCoordinator?: LookupCoordinator;
|
|
30
|
+
});
|
|
31
|
+
assertSingleBindingLookup(dependencyKeySymbol: symbol, lookup: IProviderLookup<DIContainer>): IProviderRegistration<unknown>;
|
|
32
|
+
findProvider(scope: DIContainer, dependencyKeySymbol: symbol): IProviderLookup<DIContainer>;
|
|
33
|
+
getDependencyTokens(registration: IProviderRegistration<unknown>): ReadonlyArray<Token<unknown>>;
|
|
34
|
+
validateCaptiveDependency(parentRegistration: IProviderRegistration<unknown>, dependencyToken: Token<unknown>, resolutionScope: DIContainer): void;
|
|
35
|
+
validateScopeTree(scope: DIContainer): void;
|
|
36
|
+
private createMultiBindingError;
|
|
37
|
+
private createTokenNotFoundError;
|
|
38
|
+
private throwIfCircularDependency;
|
|
39
|
+
private validateRegistrationGraph;
|
|
40
|
+
private validateScope;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=coordinator.class.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coordinator.class.d.ts","sourceRoot":"","sources":["../../../../../../src/infrastructure/class/di/graph/coordinator.class.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAK1G,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AAEtF,qBAAa,0BAA0B;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyC;IAEpE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA+B;IAEnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0C;IAEvE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAyD;IAE1F,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAe;IAEpD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsD;IAEjF,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAiG;IAE5I,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAA6G;IAEzJ,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqC;IAElE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;gBAE3C,OAAO,EAAE;QACpB,SAAS,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;QAClD,uBAAuB,EAAE,mCAAmC,CAAC;QAC7D,WAAW,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,MAAM,CAAC;QACrD,cAAc,EAAE,CAAC,SAAS,EAAE,WAAW,KAAK,aAAa,CAAC,WAAW,CAAC,CAAC;QACvE,iBAAiB,EAAE,MAAM,MAAM,CAAC;QAChC,SAAS,EAAE,CAAC,SAAS,EAAE,WAAW,KAAK,WAAW,GAAG,SAAS,CAAC;QAC/D,uBAAuB,EAAE,CAAC,SAAS,EAAE,WAAW,KAAK,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACxH,wBAAwB,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,KAAK,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;QACrI,UAAU,EAAE,CAAC,SAAS,EAAE,WAAW,KAAK,MAAM,CAAC;QAC/C,MAAM,EAAE,OAAO,CAAC;QAChB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;KACtC;IAiBM,yBAAyB,CAAC,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,WAAW,CAAC,GAAG,qBAAqB,CAAC,OAAO,CAAC;IAI5H,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,GAAG,eAAe,CAAC,WAAW,CAAC;IAI3F,mBAAmB,CAAC,YAAY,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAIhG,yBAAyB,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,OAAO,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,eAAe,EAAE,WAAW,GAAG,IAAI;IAIlJ,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAQlD,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,yBAAyB;IAYjC,OAAO,CAAC,yBAAyB;IA4BjC,OAAO,CAAC,aAAa;CAOrB"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import '../../../../domain/enum/captive-dependency-policy.enum.js';
|
|
2
|
+
import { EDependencyLifecycle } from '../../../../domain/enum/dependency-lifecycle.enum.js';
|
|
3
|
+
import '../../../../domain/enum/di-container-duplicate-provider-policy.enum.js';
|
|
4
|
+
import '../../../../domain/enum/logger-log-level.enum.js';
|
|
5
|
+
import '../../../../domain/enum/provider-type.enum.js';
|
|
6
|
+
import { BaseError } from '../../base/error.class.js';
|
|
7
|
+
import { CaptiveDependencyCoordinator } from '../captive/coordinator.class.js';
|
|
8
|
+
import { LookupCoordinator } from '../lookup/coordinator.class.js';
|
|
9
|
+
|
|
10
|
+
class DependencyGraphCoordinator {
|
|
11
|
+
ASSERT_KEY;
|
|
12
|
+
CAPTIVE_COORDINATOR;
|
|
13
|
+
DESCRIBE_KEY;
|
|
14
|
+
GET_CHILD_SCOPES;
|
|
15
|
+
GET_CURRENT_SCOPE_ID;
|
|
16
|
+
GET_PARENT;
|
|
17
|
+
GET_REGISTRATIONS_BY_TOKEN;
|
|
18
|
+
GET_REGISTRATIONS_FOR_SCOPE;
|
|
19
|
+
GET_SCOPE_ID;
|
|
20
|
+
LOOKUP_COORDINATOR;
|
|
21
|
+
constructor(options) {
|
|
22
|
+
this.ASSERT_KEY = options.assertKey;
|
|
23
|
+
this.CAPTIVE_COORDINATOR = new CaptiveDependencyCoordinator({
|
|
24
|
+
captiveDependencyPolicy: options.captiveDependencyPolicy,
|
|
25
|
+
logger: options.logger,
|
|
26
|
+
stringifyKey: options.describeKey,
|
|
27
|
+
});
|
|
28
|
+
this.DESCRIBE_KEY = options.describeKey;
|
|
29
|
+
this.GET_CHILD_SCOPES = options.getChildScopes;
|
|
30
|
+
this.GET_CURRENT_SCOPE_ID = options.getCurrentScopeId;
|
|
31
|
+
this.GET_PARENT = options.getParent;
|
|
32
|
+
this.GET_REGISTRATIONS_BY_TOKEN = options.getRegistrationsByToken;
|
|
33
|
+
this.GET_REGISTRATIONS_FOR_SCOPE = options.getRegistrationsForScope;
|
|
34
|
+
this.GET_SCOPE_ID = options.getScopeId;
|
|
35
|
+
this.LOOKUP_COORDINATOR = options.lookupCoordinator ?? new LookupCoordinator();
|
|
36
|
+
}
|
|
37
|
+
assertSingleBindingLookup(dependencyKeySymbol, lookup) {
|
|
38
|
+
return this.LOOKUP_COORDINATOR.assertSingleBindingLookup(dependencyKeySymbol, lookup, this.DESCRIBE_KEY);
|
|
39
|
+
}
|
|
40
|
+
findProvider(scope, dependencyKeySymbol) {
|
|
41
|
+
return this.LOOKUP_COORDINATOR.findProvider(scope, dependencyKeySymbol, this.GET_PARENT, this.GET_SCOPE_ID, this.GET_REGISTRATIONS_FOR_SCOPE);
|
|
42
|
+
}
|
|
43
|
+
getDependencyTokens(registration) {
|
|
44
|
+
return this.LOOKUP_COORDINATOR.getDependencyTokens(registration);
|
|
45
|
+
}
|
|
46
|
+
validateCaptiveDependency(parentRegistration, dependencyToken, resolutionScope) {
|
|
47
|
+
this.CAPTIVE_COORDINATOR.validateCaptiveDependency(parentRegistration, dependencyToken, resolutionScope, this.ASSERT_KEY, (scopeNode, dependencyKeySymbol) => this.findProvider(scopeNode, dependencyKeySymbol), this.GET_CURRENT_SCOPE_ID());
|
|
48
|
+
}
|
|
49
|
+
validateScopeTree(scope) {
|
|
50
|
+
this.validateScope(scope);
|
|
51
|
+
for (const childScope of this.GET_CHILD_SCOPES(scope)) {
|
|
52
|
+
this.validateScopeTree(childScope);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
createMultiBindingError(dependencyKeySymbol, lookupPath, requestedByKeySymbol) {
|
|
56
|
+
return new BaseError("Token has multiple providers; use resolveAll() or resolveAllAsync()", {
|
|
57
|
+
code: "TOKEN_MULTI_BINDING",
|
|
58
|
+
context: {
|
|
59
|
+
lookupPath,
|
|
60
|
+
requestedBy: this.DESCRIBE_KEY(requestedByKeySymbol),
|
|
61
|
+
token: this.DESCRIBE_KEY(dependencyKeySymbol),
|
|
62
|
+
},
|
|
63
|
+
source: "DIContainer",
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
createTokenNotFoundError(dependencyKeySymbol, lookupPath, requestedByKeySymbol) {
|
|
67
|
+
return new BaseError("Token not found in container", {
|
|
68
|
+
code: "TOKEN_NOT_FOUND",
|
|
69
|
+
context: {
|
|
70
|
+
lookupPath,
|
|
71
|
+
requestedBy: this.DESCRIBE_KEY(requestedByKeySymbol),
|
|
72
|
+
token: this.DESCRIBE_KEY(dependencyKeySymbol),
|
|
73
|
+
},
|
|
74
|
+
source: "DIContainer",
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
throwIfCircularDependency(dependencyKeySymbol, path, visitedTokens) {
|
|
78
|
+
if (visitedTokens.has(dependencyKeySymbol)) {
|
|
79
|
+
throw new BaseError("Circular dependency detected", {
|
|
80
|
+
code: "CIRCULAR_DEPENDENCY",
|
|
81
|
+
context: {
|
|
82
|
+
chain: [...path, dependencyKeySymbol].map((token) => this.DESCRIBE_KEY(token)),
|
|
83
|
+
},
|
|
84
|
+
source: "DIContainer",
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
validateRegistrationGraph(registration, providerOwnerScope, requestScope, path, visitedTokens) {
|
|
89
|
+
const providerKeySymbol = this.ASSERT_KEY(registration.provider.provide);
|
|
90
|
+
this.throwIfCircularDependency(providerKeySymbol, path, visitedTokens);
|
|
91
|
+
const nextVisitedTokens = new Set(visitedTokens);
|
|
92
|
+
nextVisitedTokens.add(providerKeySymbol);
|
|
93
|
+
const nextPath = [...path, providerKeySymbol];
|
|
94
|
+
const dependencyResolutionScope = registration.lifecycle === EDependencyLifecycle.SINGLETON ? providerOwnerScope : requestScope;
|
|
95
|
+
for (const dependencyToken of this.getDependencyTokens(registration)) {
|
|
96
|
+
const dependencyKeySymbol = this.ASSERT_KEY(dependencyToken);
|
|
97
|
+
const dependencyLookup = this.findProvider(dependencyResolutionScope, dependencyKeySymbol);
|
|
98
|
+
if (!dependencyLookup.registration) {
|
|
99
|
+
throw this.createTokenNotFoundError(dependencyKeySymbol, dependencyLookup.lookupPath, providerKeySymbol);
|
|
100
|
+
}
|
|
101
|
+
const dependencyRegistrations = dependencyLookup.registrations ?? [dependencyLookup.registration];
|
|
102
|
+
const hasMultiBindingRegistrations = dependencyRegistrations.length > 1 || dependencyRegistrations.some((dependencyRegistration) => dependencyRegistration.isMultiBinding);
|
|
103
|
+
if (hasMultiBindingRegistrations) {
|
|
104
|
+
throw this.createMultiBindingError(dependencyKeySymbol, dependencyLookup.lookupPath, providerKeySymbol);
|
|
105
|
+
}
|
|
106
|
+
this.validateRegistrationGraph(dependencyLookup.registration, dependencyLookup.owner, dependencyResolutionScope, nextPath, nextVisitedTokens);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
validateScope(scope) {
|
|
110
|
+
for (const registrations of this.GET_REGISTRATIONS_BY_TOKEN(scope).values()) {
|
|
111
|
+
for (const registration of registrations) {
|
|
112
|
+
this.validateRegistrationGraph(registration, scope, scope, [], new Set());
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
export { DependencyGraphCoordinator };
|
|
119
|
+
//# sourceMappingURL=coordinator.class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coordinator.class.js","sources":["../../../../../../../src/infrastructure/class/di/graph/coordinator.class.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;MAWa,0BAA0B,CAAA;AACrB,IAAA,UAAU;AAEV,IAAA,mBAAmB;AAEnB,IAAA,YAAY;AAEZ,IAAA,gBAAgB;AAEhB,IAAA,oBAAoB;AAEpB,IAAA,UAAU;AAEV,IAAA,0BAA0B;AAE1B,IAAA,2BAA2B;AAE3B,IAAA,YAAY;AAEZ,IAAA,kBAAkB;AAEnC,IAAA,WAAA,CAAY,OAYX,EAAA;AACA,QAAA,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS;AACnC,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,4BAA4B,CAAC;YAC3D,uBAAuB,EAAE,OAAO,CAAC,uBAAuB;YACxD,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,YAAY,EAAE,OAAO,CAAC,WAAW;AACjC,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW;AACvC,QAAA,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,cAAc;AAC9C,QAAA,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,iBAAiB;AACrD,QAAA,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS;AACnC,QAAA,IAAI,CAAC,0BAA0B,GAAG,OAAO,CAAC,uBAAuB;AACjE,QAAA,IAAI,CAAC,2BAA2B,GAAG,OAAO,CAAC,wBAAwB;AACnE,QAAA,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,UAAU;QACtC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,IAAI,IAAI,iBAAiB,EAAE;IAC/E;IAEO,yBAAyB,CAAC,mBAA2B,EAAE,MAAoC,EAAA;AACjG,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,yBAAyB,CAAC,mBAAmB,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC;IACzG;IAEO,YAAY,CAAC,KAAkB,EAAE,mBAA2B,EAAA;QAClE,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,KAAK,EAAE,mBAAmB,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,2BAA2B,CAAC;IAC9I;AAEO,IAAA,mBAAmB,CAAC,YAA4C,EAAA;QACtE,OAAO,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,YAAY,CAAC;IACjE;AAEO,IAAA,yBAAyB,CAAC,kBAAkD,EAAE,eAA+B,EAAE,eAA4B,EAAA;AACjJ,QAAA,IAAI,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,kBAAkB,EAAE,eAAe,EAAE,eAAe,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,SAAsB,EAAE,mBAA2B,KAAmC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,mBAAmB,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC;IACjS;AAEO,IAAA,iBAAiB,CAAC,KAAkB,EAAA;AAC1C,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAEzB,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE;AACtD,YAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC;QACnC;IACD;AAEQ,IAAA,uBAAuB,CAAC,mBAA2B,EAAE,UAAiC,EAAE,oBAA4B,EAAA;AAC3H,QAAA,OAAO,IAAI,SAAS,CAAC,qEAAqE,EAAE;AAC3F,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,OAAO,EAAE;gBACR,UAAU;AACV,gBAAA,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC;AACpD,gBAAA,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC;AAC7C,aAAA;AACD,YAAA,MAAM,EAAE,aAAa;AACrB,SAAA,CAAC;IACH;AAEQ,IAAA,wBAAwB,CAAC,mBAA2B,EAAE,UAAiC,EAAE,oBAA4B,EAAA;AAC5H,QAAA,OAAO,IAAI,SAAS,CAAC,8BAA8B,EAAE;AACpD,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,OAAO,EAAE;gBACR,UAAU;AACV,gBAAA,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC;AACpD,gBAAA,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC;AAC7C,aAAA;AACD,YAAA,MAAM,EAAE,aAAa;AACrB,SAAA,CAAC;IACH;AAEQ,IAAA,yBAAyB,CAAC,mBAA2B,EAAE,IAAmB,EAAE,aAAkC,EAAA;AACrH,QAAA,IAAI,aAAa,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE;AAC3C,YAAA,MAAM,IAAI,SAAS,CAAC,8BAA8B,EAAE;AACnD,gBAAA,IAAI,EAAE,qBAAqB;AAC3B,gBAAA,OAAO,EAAE;oBACR,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,KAAa,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACtF,iBAAA;AACD,gBAAA,MAAM,EAAE,aAAa;AACrB,aAAA,CAAC;QACH;IACD;IAEQ,yBAAyB,CAAC,YAA4C,EAAE,kBAA+B,EAAE,YAAyB,EAAE,IAAmB,EAAE,aAAkC,EAAA;AAClM,QAAA,MAAM,iBAAiB,GAAW,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC;QAChF,IAAI,CAAC,yBAAyB,CAAC,iBAAiB,EAAE,IAAI,EAAE,aAAa,CAAC;AACtE,QAAA,MAAM,iBAAiB,GAAgB,IAAI,GAAG,CAAS,aAAa,CAAC;AACrE,QAAA,iBAAiB,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACxC,MAAM,QAAQ,GAAkB,CAAC,GAAG,IAAI,EAAE,iBAAiB,CAAC;AAC5D,QAAA,MAAM,yBAAyB,GAAgB,YAAY,CAAC,SAAS,KAAK,oBAAoB,CAAC,SAAS,GAAG,kBAAkB,GAAG,YAAY;QAE5I,KAAK,MAAM,eAAe,IAAI,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE;YACrE,MAAM,mBAAmB,GAAW,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;YACpE,MAAM,gBAAgB,GAAiC,IAAI,CAAC,YAAY,CAAC,yBAAyB,EAAE,mBAAmB,CAAC;AAExH,YAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE;AACnC,gBAAA,MAAM,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,UAAU,EAAE,iBAAiB,CAAC;YACzG;YAEA,MAAM,uBAAuB,GAAkD,gBAAgB,CAAC,aAAa,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC;YAEhJ,MAAM,4BAA4B,GAAY,uBAAuB,CAAC,MAAM,GAAG,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC,sBAAsD,KAAK,sBAAsB,CAAC,cAAc,CAAC;YAEnN,IAAI,4BAA4B,EAAE;AACjC,gBAAA,MAAM,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,UAAU,EAAE,iBAAiB,CAAC;YACxG;AAEA,YAAA,IAAI,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,CAAC,KAAK,EAAE,yBAAyB,EAAE,QAAQ,EAAE,iBAAiB,CAAC;QAC9I;IACD;AAEQ,IAAA,aAAa,CAAC,KAAkB,EAAA;AACvC,QAAA,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE;AAC5E,YAAA,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE;AACzC,gBAAA,IAAI,CAAC,yBAAyB,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,GAAG,EAAU,CAAC;YAClF;QACD;IACD;AACA;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/class/di/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,mBAAmB,aAAa,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ILogger, IResolveInterceptor } from '../../../../domain/interface/index';
|
|
2
|
+
export declare class ResolveInterceptorDispatcher {
|
|
3
|
+
private readonly LOGGER;
|
|
4
|
+
private readonly RESOLVE_INTERCEPTORS;
|
|
5
|
+
private readonly STRINGIFY_KEY;
|
|
6
|
+
private readonly TO_ERROR;
|
|
7
|
+
constructor(options: {
|
|
8
|
+
logger: ILogger;
|
|
9
|
+
resolveInterceptors: ReadonlyArray<IResolveInterceptor>;
|
|
10
|
+
stringifyKey: (dependencyKeySymbol: symbol) => string;
|
|
11
|
+
toError: (error: unknown) => Error;
|
|
12
|
+
});
|
|
13
|
+
notifyOnError(dependencyKeySymbol: symbol, isAsync: boolean, isResolveAll: boolean, isOptional: boolean, scopeId: string, error: Error): void;
|
|
14
|
+
notifyOnStart(dependencyKeySymbol: symbol, isAsync: boolean, isResolveAll: boolean, isOptional: boolean, scopeId: string): void;
|
|
15
|
+
notifyOnSuccess(dependencyKeySymbol: symbol, isAsync: boolean, isResolveAll: boolean, isOptional: boolean, scopeId: string, result?: unknown): void;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=dispatcher.class.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatcher.class.d.ts","sourceRoot":"","sources":["../../../../../../src/infrastructure/class/di/interceptor/dispatcher.class.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEtE,qBAAa,4BAA4B;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAEjC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAqC;IAE1E,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0C;IAExE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;gBAEzC,OAAO,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,mBAAmB,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;QAAC,YAAY,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAA;KAAE;IAOrL,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IA0B7I,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAyB/H,eAAe,CAAC,mBAAmB,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI;CAyB1J"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
class ResolveInterceptorDispatcher {
|
|
2
|
+
LOGGER;
|
|
3
|
+
RESOLVE_INTERCEPTORS;
|
|
4
|
+
STRINGIFY_KEY;
|
|
5
|
+
TO_ERROR;
|
|
6
|
+
constructor(options) {
|
|
7
|
+
this.LOGGER = options.logger;
|
|
8
|
+
this.RESOLVE_INTERCEPTORS = options.resolveInterceptors;
|
|
9
|
+
this.STRINGIFY_KEY = options.stringifyKey;
|
|
10
|
+
this.TO_ERROR = options.toError;
|
|
11
|
+
}
|
|
12
|
+
notifyOnError(dependencyKeySymbol, isAsync, isResolveAll, isOptional, scopeId, error) {
|
|
13
|
+
const providerKeyDescription = this.STRINGIFY_KEY(dependencyKeySymbol);
|
|
14
|
+
for (const resolveInterceptor of this.RESOLVE_INTERCEPTORS) {
|
|
15
|
+
try {
|
|
16
|
+
resolveInterceptor.onError?.({
|
|
17
|
+
error,
|
|
18
|
+
isAsync,
|
|
19
|
+
isOptional,
|
|
20
|
+
isResolveAll,
|
|
21
|
+
scopeId,
|
|
22
|
+
tokenDescription: providerKeyDescription,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
catch (callbackError) {
|
|
26
|
+
this.LOGGER.warn("Resolve interceptor onError callback failed", {
|
|
27
|
+
context: {
|
|
28
|
+
callbackError: this.TO_ERROR(callbackError).message,
|
|
29
|
+
scopeId,
|
|
30
|
+
token: providerKeyDescription,
|
|
31
|
+
},
|
|
32
|
+
source: "DIContainer",
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
notifyOnStart(dependencyKeySymbol, isAsync, isResolveAll, isOptional, scopeId) {
|
|
38
|
+
const providerKeyDescription = this.STRINGIFY_KEY(dependencyKeySymbol);
|
|
39
|
+
for (const resolveInterceptor of this.RESOLVE_INTERCEPTORS) {
|
|
40
|
+
try {
|
|
41
|
+
resolveInterceptor.onStart?.({
|
|
42
|
+
isAsync,
|
|
43
|
+
isOptional,
|
|
44
|
+
isResolveAll,
|
|
45
|
+
scopeId,
|
|
46
|
+
tokenDescription: providerKeyDescription,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
catch (callbackError) {
|
|
50
|
+
this.LOGGER.warn("Resolve interceptor onStart callback failed", {
|
|
51
|
+
context: {
|
|
52
|
+
callbackError: this.TO_ERROR(callbackError).message,
|
|
53
|
+
scopeId,
|
|
54
|
+
token: providerKeyDescription,
|
|
55
|
+
},
|
|
56
|
+
source: "DIContainer",
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
notifyOnSuccess(dependencyKeySymbol, isAsync, isResolveAll, isOptional, scopeId, result) {
|
|
62
|
+
const providerKeyDescription = this.STRINGIFY_KEY(dependencyKeySymbol);
|
|
63
|
+
for (const resolveInterceptor of this.RESOLVE_INTERCEPTORS) {
|
|
64
|
+
try {
|
|
65
|
+
resolveInterceptor.onSuccess?.({
|
|
66
|
+
isAsync,
|
|
67
|
+
isOptional,
|
|
68
|
+
isResolveAll,
|
|
69
|
+
result,
|
|
70
|
+
scopeId,
|
|
71
|
+
tokenDescription: providerKeyDescription,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
catch (callbackError) {
|
|
75
|
+
this.LOGGER.warn("Resolve interceptor onSuccess callback failed", {
|
|
76
|
+
context: {
|
|
77
|
+
callbackError: this.TO_ERROR(callbackError).message,
|
|
78
|
+
scopeId,
|
|
79
|
+
token: providerKeyDescription,
|
|
80
|
+
},
|
|
81
|
+
source: "DIContainer",
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export { ResolveInterceptorDispatcher };
|
|
89
|
+
//# sourceMappingURL=dispatcher.class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatcher.class.js","sources":["../../../../../../../src/infrastructure/class/di/interceptor/dispatcher.class.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/infrastructure/class/di/interface/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACxF,mBAAmB,YAAY,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { DIContainer } from '../container.class';
|
|
2
|
+
import type { IDIContainerOptions } from '../../../interface/index';
|
|
3
|
+
export interface IInternalContainerOptions extends IDIContainerOptions {
|
|
4
|
+
parent?: DIContainer;
|
|
5
|
+
root?: DIContainer;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=internal-container-options.interface.d.ts.map
|
package/dist/esm/infrastructure/class/di/interface/internal-container-options.interface.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal-container-options.interface.d.ts","sourceRoot":"","sources":["../../../../../../src/infrastructure/class/di/interface/internal-container-options.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,MAAM,WAAW,yBAA0B,SAAQ,mBAAmB;IACrE,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,WAAW,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/infrastructure/class/di/interface/provider/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,YAAY,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { IProviderRegistration } from './registration.interface';
|
|
2
|
+
export interface IProviderLookup<TOwnerScope = unknown> {
|
|
3
|
+
lookupPath: Array<string>;
|
|
4
|
+
owner: TOwnerScope;
|
|
5
|
+
registration?: IProviderRegistration<unknown>;
|
|
6
|
+
registrations?: ReadonlyArray<IProviderRegistration<unknown>>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=lookup.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lookup.interface.d.ts","sourceRoot":"","sources":["../../../../../../../src/infrastructure/class/di/interface/provider/lookup.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oEAAoE,CAAC;AAEhH,MAAM,WAAW,eAAe,CAAC,WAAW,GAAG,OAAO;IACrD,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,KAAK,EAAE,WAAW,CAAC;IACnB,YAAY,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC9C,aAAa,CAAC,EAAE,aAAa,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;CAC9D"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { EDependencyLifecycle, EProviderType } from '../../../../../domain/enum/index';
|
|
2
|
+
import type { Provider } from '../../../../../domain/type/index';
|
|
3
|
+
export interface IProviderRegistration<T> {
|
|
4
|
+
cacheKey: symbol;
|
|
5
|
+
isAsyncFactory: boolean;
|
|
6
|
+
isMultiBinding: boolean;
|
|
7
|
+
lifecycle: EDependencyLifecycle;
|
|
8
|
+
provider: Provider<T>;
|
|
9
|
+
type: EProviderType;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=registration.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registration.interface.d.ts","sourceRoot":"","sources":["../../../../../../../src/infrastructure/class/di/interface/provider/registration.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,oBAAoB,CAAC;IAChC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,EAAE,aAAa,CAAC;CACpB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Token } from '../../../../domain/type/index';
|
|
2
|
+
import type { DIContainer } from '../container.class';
|
|
3
|
+
import type { IProviderLookup, IProviderRegistration } from '../interface/provider/index';
|
|
4
|
+
export declare class LookupCoordinator {
|
|
5
|
+
assertSingleBindingLookup(dependencyKeySymbol: symbol, lookup: IProviderLookup<DIContainer>, describeKey: (dependencyKeySymbol: symbol) => string): IProviderRegistration<unknown>;
|
|
6
|
+
findProvider(requestScope: DIContainer, dependencyKeySymbol: symbol, getParent: (scope: DIContainer) => DIContainer | undefined, getScopeId: (scope: DIContainer) => string, getRegistrationsForScope: (scope: DIContainer, dependencyKeySymbol: symbol) => Array<IProviderRegistration<unknown>> | undefined): IProviderLookup<DIContainer>;
|
|
7
|
+
getDependencyTokens(registration: IProviderRegistration<unknown>): ReadonlyArray<Token<unknown>>;
|
|
8
|
+
private findProviderInHierarchy;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=coordinator.class.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coordinator.class.d.ts","sourceRoot":"","sources":["../../../../../../src/infrastructure/class/di/lookup/coordinator.class.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAK1G,qBAAa,iBAAiB;IACtB,yBAAyB,CAAC,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC;IA6BlL,YAAY,CAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,WAAW,GAAG,SAAS,EAAE,UAAU,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,MAAM,EAAE,wBAAwB,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,KAAK,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,eAAe,CAAC,WAAW,CAAC;IAI5U,mBAAmB,CAAC,YAAY,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAoBvG,OAAO,CAAC,uBAAuB;CAyB/B"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import '../../../../domain/enum/captive-dependency-policy.enum.js';
|
|
2
|
+
import '../../../../domain/enum/dependency-lifecycle.enum.js';
|
|
3
|
+
import '../../../../domain/enum/di-container-duplicate-provider-policy.enum.js';
|
|
4
|
+
import '../../../../domain/enum/logger-log-level.enum.js';
|
|
5
|
+
import { EProviderType } from '../../../../domain/enum/provider-type.enum.js';
|
|
6
|
+
import { BaseError } from '../../base/error.class.js';
|
|
7
|
+
|
|
8
|
+
class LookupCoordinator {
|
|
9
|
+
assertSingleBindingLookup(dependencyKeySymbol, lookup, describeKey) {
|
|
10
|
+
const registrations = lookup.registrations ?? [];
|
|
11
|
+
const hasMultiBindingRegistrations = registrations.some((registration) => registration.isMultiBinding);
|
|
12
|
+
if (!lookup.registration) {
|
|
13
|
+
throw new BaseError("Token not found in container", {
|
|
14
|
+
code: "TOKEN_NOT_FOUND",
|
|
15
|
+
context: {
|
|
16
|
+
lookupPath: lookup.lookupPath,
|
|
17
|
+
token: describeKey(dependencyKeySymbol),
|
|
18
|
+
},
|
|
19
|
+
source: "DIContainer",
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
if (hasMultiBindingRegistrations || registrations.length > 1) {
|
|
23
|
+
throw new BaseError("Token has multiple providers; use resolveAll() or resolveAllAsync()", {
|
|
24
|
+
code: "TOKEN_MULTI_BINDING",
|
|
25
|
+
context: {
|
|
26
|
+
lookupPath: lookup.lookupPath,
|
|
27
|
+
token: describeKey(dependencyKeySymbol),
|
|
28
|
+
},
|
|
29
|
+
source: "DIContainer",
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
return lookup.registration;
|
|
33
|
+
}
|
|
34
|
+
findProvider(requestScope, dependencyKeySymbol, getParent, getScopeId, getRegistrationsForScope) {
|
|
35
|
+
return this.findProviderInHierarchy(requestScope, requestScope, dependencyKeySymbol, [], getParent, getScopeId, getRegistrationsForScope);
|
|
36
|
+
}
|
|
37
|
+
getDependencyTokens(registration) {
|
|
38
|
+
if (registration.type === EProviderType.CLASS) {
|
|
39
|
+
return registration.provider.deps ?? [];
|
|
40
|
+
}
|
|
41
|
+
if (registration.type === EProviderType.FACTORY) {
|
|
42
|
+
return registration.provider.deps ?? [];
|
|
43
|
+
}
|
|
44
|
+
if (registration.type === EProviderType.LAZY) {
|
|
45
|
+
return [registration.provider.useLazy];
|
|
46
|
+
}
|
|
47
|
+
if (registration.type === EProviderType.ALIAS) {
|
|
48
|
+
return [registration.provider.useExisting];
|
|
49
|
+
}
|
|
50
|
+
return [];
|
|
51
|
+
}
|
|
52
|
+
findProviderInHierarchy(requestScope, currentScope, dependencyKeySymbol, lookupPath, getParent, getScopeId, getRegistrationsForScope) {
|
|
53
|
+
lookupPath.push(getScopeId(currentScope));
|
|
54
|
+
const registrations = getRegistrationsForScope(currentScope, dependencyKeySymbol);
|
|
55
|
+
const registration = registrations?.[registrations.length - 1];
|
|
56
|
+
if (registration) {
|
|
57
|
+
return {
|
|
58
|
+
lookupPath,
|
|
59
|
+
owner: currentScope,
|
|
60
|
+
registration,
|
|
61
|
+
registrations,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
const parentScope = getParent(currentScope);
|
|
65
|
+
if (!parentScope) {
|
|
66
|
+
return {
|
|
67
|
+
lookupPath,
|
|
68
|
+
owner: requestScope,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
return this.findProviderInHierarchy(requestScope, parentScope, dependencyKeySymbol, lookupPath, getParent, getScopeId, getRegistrationsForScope);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export { LookupCoordinator };
|
|
76
|
+
//# sourceMappingURL=coordinator.class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coordinator.class.js","sources":["../../../../../../../src/infrastructure/class/di/lookup/coordinator.class.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|