@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,41 @@
|
|
|
1
|
+
import type { ILogger } from '../../../../domain/interface/index';
|
|
2
|
+
import type { Provider, Token } from '../../../../domain/type/index';
|
|
3
|
+
import type { IProviderRegistration } from '../interface/provider/index';
|
|
4
|
+
import { EDiContainerDuplicateProviderPolicy } from '../../../../domain/enum/index';
|
|
5
|
+
export declare class RegistrationCoordinator {
|
|
6
|
+
private readonly ASSERT_KEY;
|
|
7
|
+
private readonly DESCRIBE_KEY;
|
|
8
|
+
private readonly DUPLICATE_PROVIDER_POLICY;
|
|
9
|
+
private readonly GET_PROVIDER_REGISTRATION_COUNT;
|
|
10
|
+
private readonly GET_REGISTRATIONS_FOR_PROVIDER_KEY;
|
|
11
|
+
private readonly GET_SCOPE_ID;
|
|
12
|
+
private readonly LOGGER;
|
|
13
|
+
private readonly ON_AFTER_SINGLE_BINDING_REGISTERED;
|
|
14
|
+
private readonly ON_BEFORE_OVERWRITE;
|
|
15
|
+
private readonly SET_REGISTRATIONS_FOR_PROVIDER_KEY;
|
|
16
|
+
constructor(options: {
|
|
17
|
+
assertKey: <T>(dependencyKey: Token<T>) => symbol;
|
|
18
|
+
describeKey: (dependencyKeySymbol: symbol) => string;
|
|
19
|
+
duplicateProviderPolicy: EDiContainerDuplicateProviderPolicy;
|
|
20
|
+
getProviderRegistrationCount: () => number;
|
|
21
|
+
getRegistrationsForProviderKey: (providerKey: symbol) => Array<IProviderRegistration<unknown>>;
|
|
22
|
+
getScopeId: () => string;
|
|
23
|
+
logger: ILogger;
|
|
24
|
+
onAfterSingleBindingRegistered: (providerKey: symbol, existingRegistrations: ReadonlyArray<IProviderRegistration<unknown>>, registration: IProviderRegistration<unknown>) => void;
|
|
25
|
+
onBeforeOverwrite: (providerKey: symbol, existingRegistrations: ReadonlyArray<IProviderRegistration<unknown>>) => void;
|
|
26
|
+
setRegistrationsForProviderKey: (providerKey: symbol, registrations: Array<IProviderRegistration<unknown>>) => void;
|
|
27
|
+
});
|
|
28
|
+
registerProvider(provider: Provider): void;
|
|
29
|
+
private createProviderRegistration;
|
|
30
|
+
private defaultLifecycle;
|
|
31
|
+
private ensureDependenciesAreValid;
|
|
32
|
+
private getProviderType;
|
|
33
|
+
private handleDuplicateProviderRegistration;
|
|
34
|
+
private handleMultiBindingConflict;
|
|
35
|
+
private isAsyncFactoryFunction;
|
|
36
|
+
private isConstructable;
|
|
37
|
+
private isMultiBindingProvider;
|
|
38
|
+
private validateProvider;
|
|
39
|
+
private warnOnArityMismatch;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=coordinator.class.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coordinator.class.d.ts","sourceRoot":"","sources":["../../../../../../src/infrastructure/class/di/registration/coordinator.class.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAClH,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAEzF,OAAO,EAAwB,mCAAmC,EAAiB,MAAM,cAAc,CAAC;AAGxG,qBAAa,uBAAuB;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyC;IAEpE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0C;IAEvE,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAsC;IAEhF,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAe;IAE/D,OAAO,CAAC,QAAQ,CAAC,kCAAkC,CAAiE;IAEpH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAE5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAEjC,OAAO,CAAC,QAAQ,CAAC,kCAAkC,CAAoJ;IAEvM,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsG;IAE1I,OAAO,CAAC,QAAQ,CAAC,kCAAkC,CAAsF;gBAE7H,OAAO,EAAE;QACpB,SAAS,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;QAClD,WAAW,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,MAAM,CAAC;QACrD,uBAAuB,EAAE,mCAAmC,CAAC;QAC7D,4BAA4B,EAAE,MAAM,MAAM,CAAC;QAC3C,8BAA8B,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/F,UAAU,EAAE,MAAM,MAAM,CAAC;QACzB,MAAM,EAAE,OAAO,CAAC;QAChB,8BAA8B,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,qBAAqB,EAAE,aAAa,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,qBAAqB,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;QAClL,iBAAiB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,qBAAqB,EAAE,aAAa,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC;QACvH,8BAA8B,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC;KACpH;IAaM,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAoCjD,OAAO,CAAC,0BAA0B;IAelC,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,0BAA0B;IA0BlC,OAAO,CAAC,eAAe;IA4BvB,OAAO,CAAC,mCAAmC;IA0B3C,OAAO,CAAC,0BAA0B;IAWlC,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,gBAAgB;IAsExB,OAAO,CAAC,mBAAmB;CAgB3B"}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
import '../../../../domain/enum/captive-dependency-policy.enum.js';
|
|
2
|
+
import { EDependencyLifecycle } from '../../../../domain/enum/dependency-lifecycle.enum.js';
|
|
3
|
+
import { EDiContainerDuplicateProviderPolicy } from '../../../../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 RegistrationCoordinator {
|
|
9
|
+
ASSERT_KEY;
|
|
10
|
+
DESCRIBE_KEY;
|
|
11
|
+
DUPLICATE_PROVIDER_POLICY;
|
|
12
|
+
GET_PROVIDER_REGISTRATION_COUNT;
|
|
13
|
+
GET_REGISTRATIONS_FOR_PROVIDER_KEY;
|
|
14
|
+
GET_SCOPE_ID;
|
|
15
|
+
LOGGER;
|
|
16
|
+
ON_AFTER_SINGLE_BINDING_REGISTERED;
|
|
17
|
+
ON_BEFORE_OVERWRITE;
|
|
18
|
+
SET_REGISTRATIONS_FOR_PROVIDER_KEY;
|
|
19
|
+
constructor(options) {
|
|
20
|
+
this.ASSERT_KEY = options.assertKey;
|
|
21
|
+
this.DESCRIBE_KEY = options.describeKey;
|
|
22
|
+
this.DUPLICATE_PROVIDER_POLICY = options.duplicateProviderPolicy;
|
|
23
|
+
this.GET_PROVIDER_REGISTRATION_COUNT = options.getProviderRegistrationCount;
|
|
24
|
+
this.GET_REGISTRATIONS_FOR_PROVIDER_KEY = options.getRegistrationsForProviderKey;
|
|
25
|
+
this.GET_SCOPE_ID = options.getScopeId;
|
|
26
|
+
this.LOGGER = options.logger;
|
|
27
|
+
this.ON_AFTER_SINGLE_BINDING_REGISTERED = options.onAfterSingleBindingRegistered;
|
|
28
|
+
this.ON_BEFORE_OVERWRITE = options.onBeforeOverwrite;
|
|
29
|
+
this.SET_REGISTRATIONS_FOR_PROVIDER_KEY = options.setRegistrationsForProviderKey;
|
|
30
|
+
}
|
|
31
|
+
registerProvider(provider) {
|
|
32
|
+
const providerKey = this.ASSERT_KEY(provider.provide);
|
|
33
|
+
const providerType = this.getProviderType(provider);
|
|
34
|
+
const existingRegistrations = this.GET_REGISTRATIONS_FOR_PROVIDER_KEY(providerKey);
|
|
35
|
+
const isMultiBindingProvider = this.isMultiBindingProvider(provider);
|
|
36
|
+
if (isMultiBindingProvider && existingRegistrations.some((registration) => !registration.isMultiBinding)) {
|
|
37
|
+
this.handleMultiBindingConflict(providerKey);
|
|
38
|
+
}
|
|
39
|
+
if (!isMultiBindingProvider && existingRegistrations.some((registration) => registration.isMultiBinding)) {
|
|
40
|
+
this.handleMultiBindingConflict(providerKey);
|
|
41
|
+
}
|
|
42
|
+
if (!isMultiBindingProvider) {
|
|
43
|
+
this.handleDuplicateProviderRegistration(providerKey, existingRegistrations);
|
|
44
|
+
}
|
|
45
|
+
this.validateProvider(provider, providerType);
|
|
46
|
+
const lifecycle = provider.lifecycle ?? this.defaultLifecycle(providerType);
|
|
47
|
+
const registration = this.createProviderRegistration(provider, lifecycle, providerType, providerKey);
|
|
48
|
+
if (isMultiBindingProvider) {
|
|
49
|
+
this.SET_REGISTRATIONS_FOR_PROVIDER_KEY(providerKey, [...existingRegistrations, registration]);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
if (existingRegistrations.length > 0) {
|
|
53
|
+
this.ON_BEFORE_OVERWRITE(providerKey, existingRegistrations);
|
|
54
|
+
}
|
|
55
|
+
this.SET_REGISTRATIONS_FOR_PROVIDER_KEY(providerKey, [registration]);
|
|
56
|
+
this.ON_AFTER_SINGLE_BINDING_REGISTERED(providerKey, existingRegistrations, registration);
|
|
57
|
+
}
|
|
58
|
+
createProviderRegistration(provider, lifecycle, providerType, providerKey) {
|
|
59
|
+
const isAsyncFactory = providerType === EProviderType.FACTORY ? this.isAsyncFactoryFunction(provider.useFactory) : false;
|
|
60
|
+
const isMultiBinding = this.isMultiBindingProvider(provider);
|
|
61
|
+
const cacheKey = isMultiBinding ? Symbol(`${String(providerKey)}:multi:${String(this.GET_PROVIDER_REGISTRATION_COUNT())}`) : providerKey;
|
|
62
|
+
return {
|
|
63
|
+
cacheKey,
|
|
64
|
+
isAsyncFactory,
|
|
65
|
+
isMultiBinding,
|
|
66
|
+
lifecycle,
|
|
67
|
+
provider,
|
|
68
|
+
type: providerType,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
defaultLifecycle(providerType) {
|
|
72
|
+
if (providerType === EProviderType.VALUE) {
|
|
73
|
+
return EDependencyLifecycle.SINGLETON;
|
|
74
|
+
}
|
|
75
|
+
return EDependencyLifecycle.TRANSIENT;
|
|
76
|
+
}
|
|
77
|
+
ensureDependenciesAreValid(dependencies, providerKey) {
|
|
78
|
+
if (dependencies === undefined) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (!Array.isArray(dependencies)) {
|
|
82
|
+
throw new BaseError("Provider deps must be an array", {
|
|
83
|
+
code: "PROVIDER_DEPS_NOT_ARRAY",
|
|
84
|
+
context: { token: this.DESCRIBE_KEY(this.ASSERT_KEY(providerKey)) },
|
|
85
|
+
source: "DIContainer",
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
for (let dependencyIndex = 0; dependencyIndex < dependencies.length; dependencyIndex += 1) {
|
|
89
|
+
if (!Object.prototype.hasOwnProperty.call(dependencies, dependencyIndex)) {
|
|
90
|
+
throw new BaseError("Provider deps has sparse dependency indexes", {
|
|
91
|
+
code: "PROVIDER_DEPS_SPARSE",
|
|
92
|
+
context: { index: dependencyIndex, token: this.DESCRIBE_KEY(this.ASSERT_KEY(providerKey)) },
|
|
93
|
+
source: "DIContainer",
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
this.ASSERT_KEY(dependencies[dependencyIndex]);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
getProviderType(provider) {
|
|
100
|
+
const isAliasProvider = "useExisting" in provider;
|
|
101
|
+
const isClassProvider = "useClass" in provider;
|
|
102
|
+
const isFactoryProvider = "useFactory" in provider;
|
|
103
|
+
const isLazyProvider = "useLazy" in provider;
|
|
104
|
+
const isValueProvider = "useValue" in provider;
|
|
105
|
+
const strategyCount = Number(isAliasProvider) + Number(isClassProvider) + Number(isFactoryProvider) + Number(isLazyProvider) + Number(isValueProvider);
|
|
106
|
+
if (strategyCount !== 1) {
|
|
107
|
+
throw new BaseError("Provider must define exactly one strategy", {
|
|
108
|
+
code: "PROVIDER_INVALID_STRATEGY",
|
|
109
|
+
context: { token: this.DESCRIBE_KEY(this.ASSERT_KEY(provider.provide)) },
|
|
110
|
+
source: "DIContainer",
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
if (isValueProvider)
|
|
114
|
+
return EProviderType.VALUE;
|
|
115
|
+
if (isFactoryProvider)
|
|
116
|
+
return EProviderType.FACTORY;
|
|
117
|
+
if (isLazyProvider)
|
|
118
|
+
return EProviderType.LAZY;
|
|
119
|
+
if (isClassProvider)
|
|
120
|
+
return EProviderType.CLASS;
|
|
121
|
+
return EProviderType.ALIAS;
|
|
122
|
+
}
|
|
123
|
+
handleDuplicateProviderRegistration(providerKey, existingRegistrations) {
|
|
124
|
+
if (existingRegistrations.length === 0) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
const providerKeyDescription = this.DESCRIBE_KEY(providerKey);
|
|
128
|
+
const duplicateRegistrationMessage = `Provider with token already registered in scope: ${providerKeyDescription}`;
|
|
129
|
+
if (this.DUPLICATE_PROVIDER_POLICY === EDiContainerDuplicateProviderPolicy.ERROR) {
|
|
130
|
+
throw new BaseError("Provider with token already registered in scope", {
|
|
131
|
+
code: "PROVIDER_DUPLICATE_REGISTRATION",
|
|
132
|
+
context: {
|
|
133
|
+
scopeId: this.GET_SCOPE_ID(),
|
|
134
|
+
token: providerKeyDescription,
|
|
135
|
+
},
|
|
136
|
+
source: "DIContainer",
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
if (this.DUPLICATE_PROVIDER_POLICY === EDiContainerDuplicateProviderPolicy.WARN) {
|
|
140
|
+
this.LOGGER.warn(duplicateRegistrationMessage, {
|
|
141
|
+
source: "DIContainer",
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
handleMultiBindingConflict(providerKey) {
|
|
146
|
+
throw new BaseError("Token cannot mix multi-binding and single-binding providers", {
|
|
147
|
+
code: "PROVIDER_MULTI_BINDING_CONFLICT",
|
|
148
|
+
context: {
|
|
149
|
+
scopeId: this.GET_SCOPE_ID(),
|
|
150
|
+
token: this.DESCRIBE_KEY(providerKey),
|
|
151
|
+
},
|
|
152
|
+
source: "DIContainer",
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
isAsyncFactoryFunction(factoryFunction) {
|
|
156
|
+
const functionConstructor = factoryFunction.constructor;
|
|
157
|
+
if (typeof functionConstructor === "function" && functionConstructor.name === "AsyncFunction") {
|
|
158
|
+
return true;
|
|
159
|
+
}
|
|
160
|
+
return Object.prototype.toString.call(factoryFunction) === "[object AsyncFunction]";
|
|
161
|
+
}
|
|
162
|
+
isConstructable(candidate) {
|
|
163
|
+
if (typeof candidate !== "function") {
|
|
164
|
+
return false;
|
|
165
|
+
}
|
|
166
|
+
const candidateAsConstructor = candidate;
|
|
167
|
+
const prototype = candidateAsConstructor.prototype;
|
|
168
|
+
if (!prototype || typeof prototype !== "object") {
|
|
169
|
+
return false;
|
|
170
|
+
}
|
|
171
|
+
return prototype.constructor === candidate;
|
|
172
|
+
}
|
|
173
|
+
isMultiBindingProvider(provider) {
|
|
174
|
+
return provider.isMultiBinding === true;
|
|
175
|
+
}
|
|
176
|
+
validateProvider(provider, providerType) {
|
|
177
|
+
if (provider.afterResolve && typeof provider.afterResolve !== "function") {
|
|
178
|
+
throw new BaseError("Provider afterResolve must be a function", {
|
|
179
|
+
code: "PROVIDER_AFTER_RESOLVE_INVALID",
|
|
180
|
+
context: { token: this.DESCRIBE_KEY(this.ASSERT_KEY(provider.provide)) },
|
|
181
|
+
source: "DIContainer",
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
if (provider.onInit && typeof provider.onInit !== "function") {
|
|
185
|
+
throw new BaseError("Provider onInit must be a function", {
|
|
186
|
+
code: "PROVIDER_ON_INIT_INVALID",
|
|
187
|
+
context: { token: this.DESCRIBE_KEY(this.ASSERT_KEY(provider.provide)) },
|
|
188
|
+
source: "DIContainer",
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
if (provider.onDispose && typeof provider.onDispose !== "function") {
|
|
192
|
+
throw new BaseError("Provider onDispose must be a function", {
|
|
193
|
+
code: "PROVIDER_ON_DISPOSE_INVALID",
|
|
194
|
+
context: { token: this.DESCRIBE_KEY(this.ASSERT_KEY(provider.provide)) },
|
|
195
|
+
source: "DIContainer",
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
if (providerType === EProviderType.ALIAS) {
|
|
199
|
+
this.ASSERT_KEY(provider.useExisting);
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
if (providerType === EProviderType.CLASS) {
|
|
203
|
+
const classProvider = provider;
|
|
204
|
+
if (!this.isConstructable(classProvider.useClass)) {
|
|
205
|
+
throw new BaseError("Class provider useClass must be a constructable class", {
|
|
206
|
+
code: "PROVIDER_CLASS_INVALID",
|
|
207
|
+
context: { token: this.DESCRIBE_KEY(this.ASSERT_KEY(provider.provide)) },
|
|
208
|
+
source: "DIContainer",
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
this.ensureDependenciesAreValid(classProvider.deps, provider.provide);
|
|
212
|
+
this.warnOnArityMismatch(classProvider.deps, classProvider.useClass.length, provider.provide);
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
if (providerType === EProviderType.LAZY) {
|
|
216
|
+
this.ASSERT_KEY(provider.useLazy);
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
if (providerType === EProviderType.FACTORY) {
|
|
220
|
+
const factoryProvider = provider;
|
|
221
|
+
if (typeof factoryProvider.useFactory !== "function") {
|
|
222
|
+
throw new BaseError("Factory provider useFactory must be a function", {
|
|
223
|
+
code: "PROVIDER_FACTORY_INVALID",
|
|
224
|
+
context: { token: this.DESCRIBE_KEY(this.ASSERT_KEY(provider.provide)) },
|
|
225
|
+
source: "DIContainer",
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
this.ensureDependenciesAreValid(factoryProvider.deps, provider.provide);
|
|
229
|
+
this.warnOnArityMismatch(factoryProvider.deps, factoryProvider.useFactory.length, provider.provide);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
warnOnArityMismatch(dependencies, expectedArity, providerKey) {
|
|
233
|
+
const depsLength = dependencies?.length ?? 0;
|
|
234
|
+
if (depsLength === expectedArity || expectedArity === 0) {
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
this.LOGGER.warn(`Provider deps count (${String(depsLength)}) does not match function parameter count (${String(expectedArity)})`, {
|
|
238
|
+
context: {
|
|
239
|
+
depsCount: depsLength,
|
|
240
|
+
expectedArity,
|
|
241
|
+
token: this.DESCRIBE_KEY(this.ASSERT_KEY(providerKey)),
|
|
242
|
+
},
|
|
243
|
+
source: "DIContainer",
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
export { RegistrationCoordinator };
|
|
249
|
+
//# sourceMappingURL=coordinator.class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coordinator.class.js","sources":["../../../../../../../src/infrastructure/class/di/registration/coordinator.class.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { Provider, Token } from '../../../../domain/type/index';
|
|
2
|
+
import type { DIContainer } from '../container.class';
|
|
3
|
+
import type { IProviderLookup, IProviderRegistration } from '../interface/provider/index';
|
|
4
|
+
import { EDependencyLifecycle } from '../../../../domain/enum/index';
|
|
5
|
+
export declare class ResolutionCoordinator {
|
|
6
|
+
private readonly ASSERT_KEY;
|
|
7
|
+
private readonly ASSERT_SINGLE_BINDING_LOOKUP;
|
|
8
|
+
private readonly DESCRIBE_KEY;
|
|
9
|
+
private readonly ENSURE_ACTIVE;
|
|
10
|
+
private readonly FIND_PROVIDER;
|
|
11
|
+
private readonly GET_SCOPED_CACHE_FOR_LIFECYCLE;
|
|
12
|
+
private readonly IS_PROVIDER_CLEANUP_PENDING;
|
|
13
|
+
private readonly IS_REGISTRATION_CURRENT;
|
|
14
|
+
private readonly REGISTER_DISPOSER;
|
|
15
|
+
private readonly VALIDATE_CAPTIVE_DEPENDENCY;
|
|
16
|
+
private readonly WAIT_FOR_PROVIDER_CLEANUP;
|
|
17
|
+
constructor(options: {
|
|
18
|
+
assertKey: <T>(dependencyKey: Token<T>) => symbol;
|
|
19
|
+
assertSingleBindingLookup: (tokenSymbol: symbol, lookup: IProviderLookup<DIContainer>) => IProviderRegistration<unknown>;
|
|
20
|
+
describeKey: (dependencyKeySymbol: symbol) => string;
|
|
21
|
+
ensureActive: () => void;
|
|
22
|
+
findProvider: (requestScope: DIContainer, dependencyKeySymbol: symbol) => IProviderLookup<DIContainer>;
|
|
23
|
+
getScopedCacheForLifecycle: (lifecycle: EDependencyLifecycle, requestScope: DIContainer, providerOwner: DIContainer) => Map<symbol, unknown> | undefined;
|
|
24
|
+
isProviderCleanupPending: (ownerScope: DIContainer, dependencyKeySymbol: symbol) => boolean;
|
|
25
|
+
isRegistrationCurrent: (ownerScope: DIContainer, dependencyKeySymbol: symbol, registration: IProviderRegistration<unknown>) => boolean;
|
|
26
|
+
registerDisposer: (disposerScope: DIContainer, provider: Provider, instance: unknown, dependencyKeySymbol: symbol, options?: {
|
|
27
|
+
shouldTrack?: boolean;
|
|
28
|
+
}) => (() => Promise<void>) | undefined;
|
|
29
|
+
validateCaptiveDependency: (parentRegistration: IProviderRegistration<unknown>, dependencyToken: Token<unknown>, resolutionScope: DIContainer) => void;
|
|
30
|
+
waitForProviderCleanup: (ownerScope: DIContainer, dependencyKeySymbol: symbol) => Promise<void>;
|
|
31
|
+
});
|
|
32
|
+
resolveAllAsyncInternal(dependencyKeySymbol: symbol, requestScope: DIContainer, path: Array<symbol>, visitedTokens: ReadonlySet<symbol>): Promise<Array<unknown>>;
|
|
33
|
+
resolveAllSyncInternal(dependencyKeySymbol: symbol, requestScope: DIContainer, path: Array<symbol>, visitedTokens: ReadonlySet<symbol>): Array<unknown>;
|
|
34
|
+
resolveAsyncInternal(dependencyKeySymbol: symbol, requestScope: DIContainer, path: Array<symbol>, visitedTokens: ReadonlySet<symbol>): Promise<unknown>;
|
|
35
|
+
resolveSyncInternal(dependencyKeySymbol: symbol, requestScope: DIContainer, path: Array<symbol>, visitedTokens: ReadonlySet<symbol>): unknown;
|
|
36
|
+
private createAsyncProviderError;
|
|
37
|
+
private createAsyncProviderHookError;
|
|
38
|
+
private createLazyResolver;
|
|
39
|
+
private createLazyScopeDisposedError;
|
|
40
|
+
private createProviderCleanupPendingError;
|
|
41
|
+
private createProviderHookFailedError;
|
|
42
|
+
private createStaleRegistrationError;
|
|
43
|
+
private createTokenNotFoundError;
|
|
44
|
+
private getDisposerScope;
|
|
45
|
+
private instantiateAsync;
|
|
46
|
+
private instantiateSync;
|
|
47
|
+
private invokeAfterResolveAsync;
|
|
48
|
+
private invokeAfterResolveSync;
|
|
49
|
+
private invokeOnInitAsync;
|
|
50
|
+
private invokeOnInitSync;
|
|
51
|
+
private isPromiseLike;
|
|
52
|
+
private resolveRegistrationAsync;
|
|
53
|
+
private resolveRegistrationSync;
|
|
54
|
+
private resolveSingleRegistrationAsync;
|
|
55
|
+
private resolveSingleRegistrationSync;
|
|
56
|
+
private runLifecycleHookAsync;
|
|
57
|
+
private runLifecycleHookSync;
|
|
58
|
+
private throwIfCircularDependency;
|
|
59
|
+
private tryDisposeAfterOnInitFailureAsync;
|
|
60
|
+
private tryDisposeAfterOnInitFailureSync;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=coordinator.class.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coordinator.class.d.ts","sourceRoot":"","sources":["../../../../../../src/infrastructure/class/di/resolution/coordinator.class.ts"],"names":[],"mappings":"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"}
|