inversify 6.1.5-beta.0 → 6.1.5-beta.2
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/CHANGELOG.md +10 -0
- package/{es → lib/cjs}/annotation/decorator_utils.d.ts +1 -0
- package/lib/cjs/annotation/decorator_utils.d.ts.map +1 -0
- package/lib/{annotation → cjs/annotation}/decorator_utils.js +8 -0
- package/lib/cjs/annotation/decorator_utils.js.map +1 -0
- package/{es → lib/cjs}/annotation/inject.d.ts +1 -0
- package/lib/cjs/annotation/inject.d.ts.map +1 -0
- package/lib/{annotation → cjs/annotation}/inject.js +1 -0
- package/lib/cjs/annotation/inject.js.map +1 -0
- package/{es → lib/cjs}/annotation/inject_base.d.ts +1 -0
- package/lib/cjs/annotation/inject_base.d.ts.map +1 -0
- package/lib/{annotation → cjs/annotation}/inject_base.js +2 -0
- package/lib/cjs/annotation/inject_base.js.map +1 -0
- package/{es → lib/cjs}/annotation/injectable.d.ts +1 -0
- package/lib/cjs/annotation/injectable.d.ts.map +1 -0
- package/lib/{annotation → cjs/annotation}/injectable.js +2 -0
- package/lib/cjs/annotation/injectable.js.map +1 -0
- package/lib/{annotation → cjs/annotation}/multi_inject.d.ts +1 -0
- package/lib/cjs/annotation/multi_inject.d.ts.map +1 -0
- package/lib/{annotation → cjs/annotation}/multi_inject.js +1 -0
- package/lib/cjs/annotation/multi_inject.js.map +1 -0
- package/{es → lib/cjs}/annotation/named.d.ts +1 -0
- package/lib/cjs/annotation/named.d.ts.map +1 -0
- package/lib/{annotation → cjs/annotation}/named.js +2 -0
- package/lib/cjs/annotation/named.js.map +1 -0
- package/{es → lib/cjs}/annotation/optional.d.ts +1 -0
- package/lib/cjs/annotation/optional.d.ts.map +1 -0
- package/lib/{annotation → cjs/annotation}/optional.js +1 -0
- package/lib/cjs/annotation/optional.js.map +1 -0
- package/{es → lib/cjs}/annotation/post_construct.d.ts +1 -0
- package/lib/cjs/annotation/post_construct.d.ts.map +1 -0
- package/lib/{annotation → cjs/annotation}/post_construct.js +1 -0
- package/lib/cjs/annotation/post_construct.js.map +1 -0
- package/{es → lib/cjs}/annotation/pre_destroy.d.ts +1 -0
- package/lib/cjs/annotation/pre_destroy.d.ts.map +1 -0
- package/lib/{annotation → cjs/annotation}/pre_destroy.js +1 -0
- package/lib/cjs/annotation/pre_destroy.js.map +1 -0
- package/lib/{annotation → cjs/annotation}/property_event_decorator.d.ts +1 -0
- package/lib/cjs/annotation/property_event_decorator.d.ts.map +1 -0
- package/lib/{annotation → cjs/annotation}/property_event_decorator.js +1 -0
- package/lib/cjs/annotation/property_event_decorator.js.map +1 -0
- package/{es → lib/cjs}/annotation/tagged.d.ts +1 -0
- package/lib/cjs/annotation/tagged.d.ts.map +1 -0
- package/lib/{annotation → cjs/annotation}/tagged.js +2 -0
- package/lib/cjs/annotation/tagged.js.map +1 -0
- package/lib/{annotation → cjs/annotation}/target_name.d.ts +1 -0
- package/lib/cjs/annotation/target_name.d.ts.map +1 -0
- package/lib/{annotation → cjs/annotation}/target_name.js +1 -0
- package/lib/cjs/annotation/target_name.js.map +1 -0
- package/lib/{annotation → cjs/annotation}/unmanaged.d.ts +1 -0
- package/lib/cjs/annotation/unmanaged.d.ts.map +1 -0
- package/lib/{annotation → cjs/annotation}/unmanaged.js +1 -0
- package/lib/cjs/annotation/unmanaged.js.map +1 -0
- package/lib/{bindings → cjs/bindings}/binding.d.ts +1 -0
- package/lib/cjs/bindings/binding.d.ts.map +1 -0
- package/lib/{bindings → cjs/bindings}/binding.js +15 -0
- package/lib/cjs/bindings/binding.js.map +1 -0
- package/lib/{bindings → cjs/bindings}/binding_count.d.ts +1 -0
- package/lib/cjs/bindings/binding_count.d.ts.map +1 -0
- package/lib/{bindings → cjs/bindings}/binding_count.js +1 -0
- package/lib/cjs/bindings/binding_count.js.map +1 -0
- package/{es → lib/cjs}/constants/error_msgs.d.ts +1 -0
- package/lib/cjs/constants/error_msgs.d.ts.map +1 -0
- package/lib/{constants → cjs/constants}/error_msgs.js +2 -0
- package/lib/cjs/constants/error_msgs.js.map +1 -0
- package/lib/{constants → cjs/constants}/literal_types.d.ts +1 -0
- package/lib/cjs/constants/literal_types.d.ts.map +1 -0
- package/lib/{constants → cjs/constants}/literal_types.js +4 -0
- package/lib/cjs/constants/literal_types.js.map +1 -0
- package/{es → lib/cjs}/constants/metadata_keys.d.ts +1 -0
- package/lib/cjs/constants/metadata_keys.d.ts.map +1 -0
- package/lib/{constants → cjs/constants}/metadata_keys.js +13 -0
- package/lib/cjs/constants/metadata_keys.js.map +1 -0
- package/lib/{container → cjs/container}/container.d.ts +1 -0
- package/lib/cjs/container/container.d.ts.map +1 -0
- package/lib/{container → cjs/container}/container.js +29 -1
- package/lib/cjs/container/container.js.map +1 -0
- package/{es → lib/cjs}/container/container_module.d.ts +1 -0
- package/lib/cjs/container/container_module.d.ts.map +1 -0
- package/lib/{container → cjs/container}/container_module.js +1 -0
- package/lib/cjs/container/container_module.js.map +1 -0
- package/lib/{container → cjs/container}/container_snapshot.d.ts +1 -0
- package/lib/cjs/container/container_snapshot.d.ts.map +1 -0
- package/lib/{container → cjs/container}/container_snapshot.js +1 -0
- package/lib/cjs/container/container_snapshot.js.map +1 -0
- package/lib/{container → cjs/container}/lookup.d.ts +1 -0
- package/lib/cjs/container/lookup.d.ts.map +1 -0
- package/lib/{container → cjs/container}/lookup.js +8 -0
- package/lib/cjs/container/lookup.js.map +1 -0
- package/{es → lib/cjs}/container/module_activation_store.d.ts +1 -0
- package/lib/cjs/container/module_activation_store.d.ts.map +1 -0
- package/lib/{container → cjs/container}/module_activation_store.js +1 -0
- package/lib/cjs/container/module_activation_store.js.map +1 -0
- package/{es/inversify.d.ts → lib/cjs/index.d.ts} +1 -0
- package/lib/cjs/index.d.ts.map +1 -0
- package/lib/{inversify.js → cjs/index.js} +2 -0
- package/lib/cjs/index.js.map +1 -0
- package/{es → lib/cjs}/interfaces/interfaces.d.ts +2 -1
- package/lib/cjs/interfaces/interfaces.d.ts.map +1 -0
- package/lib/{interfaces → cjs/interfaces}/interfaces.js +1 -0
- package/lib/cjs/interfaces/interfaces.js.map +1 -0
- package/lib/cjs/interfaces/interfaces_common_exports.d.ts +4 -0
- package/lib/cjs/interfaces/interfaces_common_exports.d.ts.map +1 -0
- package/lib/{annotation/lazy_service_identifier.js → cjs/interfaces/interfaces_common_exports.js} +1 -0
- package/lib/cjs/interfaces/interfaces_common_exports.js.map +1 -0
- package/lib/cjs/package.json +3 -0
- package/{es → lib/cjs}/planning/context.d.ts +1 -0
- package/lib/cjs/planning/context.d.ts.map +1 -0
- package/lib/{planning → cjs/planning}/context.js +1 -0
- package/lib/cjs/planning/context.js.map +1 -0
- package/lib/{planning → cjs/planning}/metadata.d.ts +1 -0
- package/lib/cjs/planning/metadata.d.ts.map +1 -0
- package/lib/{planning → cjs/planning}/metadata.js +1 -0
- package/lib/cjs/planning/metadata.js.map +1 -0
- package/lib/{planning → cjs/planning}/metadata_reader.d.ts +1 -0
- package/lib/cjs/planning/metadata_reader.d.ts.map +1 -0
- package/lib/{planning → cjs/planning}/metadata_reader.js +4 -0
- package/lib/cjs/planning/metadata_reader.js.map +1 -0
- package/{es → lib/cjs}/planning/plan.d.ts +1 -0
- package/lib/cjs/planning/plan.d.ts.map +1 -0
- package/lib/{planning → cjs/planning}/plan.js +1 -0
- package/lib/cjs/planning/plan.js.map +1 -0
- package/{es → lib/cjs}/planning/planner.d.ts +1 -0
- package/lib/cjs/planning/planner.d.ts.map +1 -0
- package/lib/{planning → cjs/planning}/planner.js +10 -0
- package/lib/cjs/planning/planner.js.map +1 -0
- package/{es → lib/cjs}/planning/queryable_string.d.ts +1 -0
- package/lib/cjs/planning/queryable_string.d.ts.map +1 -0
- package/lib/{planning → cjs/planning}/queryable_string.js +2 -0
- package/lib/cjs/planning/queryable_string.js.map +1 -0
- package/{es → lib/cjs}/planning/reflection_utils.d.ts +1 -0
- package/lib/cjs/planning/reflection_utils.d.ts.map +1 -0
- package/lib/{planning → cjs/planning}/reflection_utils.js +8 -1
- package/lib/cjs/planning/reflection_utils.js.map +1 -0
- package/{es → lib/cjs}/planning/request.d.ts +1 -0
- package/lib/cjs/planning/request.d.ts.map +1 -0
- package/lib/{planning → cjs/planning}/request.js +5 -1
- package/lib/cjs/planning/request.js.map +1 -0
- package/lib/{resolution → cjs/resolution}/instantiation.d.ts +1 -0
- package/lib/cjs/resolution/instantiation.d.ts.map +1 -0
- package/lib/{resolution → cjs/resolution}/instantiation.js +1 -0
- package/lib/cjs/resolution/instantiation.js.map +1 -0
- package/{es → lib/cjs}/resolution/resolver.d.ts +1 -0
- package/lib/cjs/resolution/resolver.d.ts.map +1 -0
- package/lib/{resolution → cjs/resolution}/resolver.js +18 -0
- package/lib/cjs/resolution/resolver.js.map +1 -0
- package/{es → lib/cjs}/scope/scope.d.ts +1 -0
- package/lib/cjs/scope/scope.d.ts.map +1 -0
- package/lib/{scope → cjs/scope}/scope.js +7 -0
- package/lib/cjs/scope/scope.js.map +1 -0
- package/{es → lib/cjs}/syntax/binding_in_syntax.d.ts +1 -0
- package/lib/cjs/syntax/binding_in_syntax.d.ts.map +1 -0
- package/lib/{syntax → cjs/syntax}/binding_in_syntax.js +1 -0
- package/lib/cjs/syntax/binding_in_syntax.js.map +1 -0
- package/{es → lib/cjs}/syntax/binding_in_when_on_syntax.d.ts +1 -0
- package/lib/cjs/syntax/binding_in_when_on_syntax.d.ts.map +1 -0
- package/lib/{syntax → cjs/syntax}/binding_in_when_on_syntax.js +1 -0
- package/lib/cjs/syntax/binding_in_when_on_syntax.js.map +1 -0
- package/{es → lib/cjs}/syntax/binding_on_syntax.d.ts +1 -0
- package/lib/cjs/syntax/binding_on_syntax.d.ts.map +1 -0
- package/lib/{syntax → cjs/syntax}/binding_on_syntax.js +1 -0
- package/lib/cjs/syntax/binding_on_syntax.js.map +1 -0
- package/lib/{syntax → cjs/syntax}/binding_to_syntax.d.ts +1 -0
- package/lib/cjs/syntax/binding_to_syntax.d.ts.map +1 -0
- package/lib/{syntax → cjs/syntax}/binding_to_syntax.js +7 -0
- package/lib/cjs/syntax/binding_to_syntax.js.map +1 -0
- package/{es → lib/cjs}/syntax/binding_when_on_syntax.d.ts +1 -0
- package/lib/cjs/syntax/binding_when_on_syntax.d.ts.map +1 -0
- package/lib/{syntax → cjs/syntax}/binding_when_on_syntax.js +1 -0
- package/lib/cjs/syntax/binding_when_on_syntax.js.map +1 -0
- package/lib/{syntax → cjs/syntax}/binding_when_syntax.d.ts +1 -0
- package/lib/cjs/syntax/binding_when_syntax.d.ts.map +1 -0
- package/lib/{syntax → cjs/syntax}/binding_when_syntax.js +4 -1
- package/lib/cjs/syntax/binding_when_syntax.js.map +1 -0
- package/{es → lib/cjs}/syntax/constraint_helpers.d.ts +1 -0
- package/lib/cjs/syntax/constraint_helpers.d.ts.map +1 -0
- package/lib/{syntax → cjs/syntax}/constraint_helpers.js +5 -0
- package/lib/cjs/syntax/constraint_helpers.js.map +1 -0
- package/{es → lib/cjs}/utils/async.d.ts +1 -0
- package/lib/cjs/utils/async.d.ts.map +1 -0
- package/lib/{utils → cjs/utils}/async.js +1 -0
- package/lib/cjs/utils/async.js.map +1 -0
- package/{es → lib/cjs}/utils/binding_utils.d.ts +1 -0
- package/lib/cjs/utils/binding_utils.d.ts.map +1 -0
- package/lib/{utils → cjs/utils}/binding_utils.js +4 -0
- package/lib/cjs/utils/binding_utils.js.map +1 -0
- package/{es → lib/cjs}/utils/clonable.d.ts +1 -0
- package/lib/cjs/utils/clonable.d.ts.map +1 -0
- package/lib/{utils → cjs/utils}/clonable.js +1 -0
- package/lib/cjs/utils/clonable.js.map +1 -0
- package/{es → lib/cjs}/utils/exceptions.d.ts +1 -0
- package/lib/cjs/utils/exceptions.d.ts.map +1 -0
- package/lib/{utils → cjs/utils}/exceptions.js +1 -0
- package/lib/cjs/utils/exceptions.js.map +1 -0
- package/lib/{utils → cjs/utils}/factory_type.d.ts +1 -0
- package/lib/cjs/utils/factory_type.d.ts.map +1 -0
- package/lib/{utils → cjs/utils}/factory_type.js +1 -0
- package/lib/cjs/utils/factory_type.js.map +1 -0
- package/{es → lib/cjs}/utils/id.d.ts +1 -0
- package/lib/cjs/utils/id.d.ts.map +1 -0
- package/lib/{utils → cjs/utils}/id.js +1 -0
- package/lib/cjs/utils/id.js.map +1 -0
- package/{es → lib/cjs}/utils/js.d.ts +1 -0
- package/lib/cjs/utils/js.d.ts.map +1 -0
- package/lib/{utils → cjs/utils}/js.js +1 -0
- package/lib/cjs/utils/js.js.map +1 -0
- package/{es → lib/cjs}/utils/serialization.d.ts +1 -0
- package/lib/cjs/utils/serialization.d.ts.map +1 -0
- package/lib/{utils → cjs/utils}/serialization.js +6 -0
- package/lib/cjs/utils/serialization.js.map +1 -0
- package/lib/{interfaces/interfaces.d.ts → esm/index.d.ts} +206 -4
- package/lib/esm/index.d.ts.map +1 -0
- package/lib/esm/index.js +2 -0
- package/lib/esm/index.js.map +1 -0
- package/package.json +21 -24
- package/es/annotation/decorator_utils.js +0 -90
- package/es/annotation/inject.js +0 -4
- package/es/annotation/inject_base.js +0 -14
- package/es/annotation/injectable.js +0 -13
- package/es/annotation/lazy_service_identifier.js +0 -1
- package/es/annotation/multi_inject.d.ts +0 -5
- package/es/annotation/multi_inject.js +0 -4
- package/es/annotation/named.js +0 -7
- package/es/annotation/optional.js +0 -7
- package/es/annotation/post_construct.js +0 -5
- package/es/annotation/pre_destroy.js +0 -5
- package/es/annotation/property_event_decorator.d.ts +0 -4
- package/es/annotation/property_event_decorator.js +0 -13
- package/es/annotation/tagged.js +0 -6
- package/es/annotation/target_name.d.ts +0 -3
- package/es/annotation/target_name.js +0 -10
- package/es/annotation/unmanaged.d.ts +0 -3
- package/es/annotation/unmanaged.js +0 -10
- package/es/bindings/binding.d.ts +0 -20
- package/es/bindings/binding.js +0 -37
- package/es/bindings/binding_count.d.ts +0 -5
- package/es/bindings/binding_count.js +0 -6
- package/es/constants/error_msgs.js +0 -62
- package/es/constants/literal_types.d.ts +0 -5
- package/es/constants/literal_types.js +0 -21
- package/es/constants/metadata_keys.js +0 -23
- package/es/container/container.d.ts +0 -75
- package/es/container/container.js +0 -750
- package/es/container/container_module.js +0 -17
- package/es/container/container_snapshot.d.ts +0 -10
- package/es/container/container_snapshot.js +0 -15
- package/es/container/lookup.d.ts +0 -17
- package/es/container/lookup.js +0 -105
- package/es/container/module_activation_store.js +0 -47
- package/es/interfaces/interfaces.js +0 -1
- package/es/inversify.js +0 -3
- package/es/inversify.js.LICENSE.txt +0 -14
- package/es/planning/context.js +0 -15
- package/es/planning/metadata.d.ts +0 -8
- package/es/planning/metadata.js +0 -17
- package/es/planning/metadata_reader.d.ts +0 -6
- package/es/planning/metadata_reader.js +0 -21
- package/es/planning/plan.js +0 -8
- package/es/planning/planner.js +0 -168
- package/es/planning/queryable_string.js +0 -28
- package/es/planning/reflection_utils.js +0 -27
- package/es/planning/request.js +0 -20
- package/es/planning/target.js +0 -87
- package/es/resolution/instantiation.d.ts +0 -3
- package/es/resolution/instantiation.js +0 -195
- package/es/resolution/resolver.js +0 -214
- package/es/scope/scope.js +0 -88
- package/es/syntax/binding_in_syntax.js +0 -21
- package/es/syntax/binding_in_when_on_syntax.js +0 -73
- package/es/syntax/binding_on_syntax.js +0 -16
- package/es/syntax/binding_to_syntax.d.ts +0 -18
- package/es/syntax/binding_to_syntax.js +0 -91
- package/es/syntax/binding_when_on_syntax.js +0 -62
- package/es/syntax/binding_when_syntax.d.ts +0 -21
- package/es/syntax/binding_when_syntax.js +0 -104
- package/es/syntax/constraint_helpers.js +0 -36
- package/es/utils/async.js +0 -12
- package/es/utils/binding_utils.js +0 -58
- package/es/utils/clonable.js +0 -7
- package/es/utils/exceptions.js +0 -16
- package/es/utils/factory_type.d.ts +0 -5
- package/es/utils/factory_type.js +0 -6
- package/es/utils/id.js +0 -5
- package/es/utils/js.js +0 -13
- package/es/utils/serialization.js +0 -103
- package/lib/annotation/decorator_utils.d.ts +0 -16
- package/lib/annotation/inject.d.ts +0 -5
- package/lib/annotation/inject_base.d.ts +0 -4
- package/lib/annotation/injectable.d.ts +0 -2
- package/lib/annotation/lazy_service_identifier.d.ts +0 -3
- package/lib/annotation/named.d.ts +0 -2
- package/lib/annotation/optional.d.ts +0 -2
- package/lib/annotation/post_construct.d.ts +0 -4
- package/lib/annotation/pre_destroy.d.ts +0 -4
- package/lib/annotation/tagged.d.ts +0 -2
- package/lib/constants/error_msgs.d.ts +0 -30
- package/lib/constants/metadata_keys.d.ts +0 -13
- package/lib/container/container_module.d.ts +0 -11
- package/lib/container/module_activation_store.d.ts +0 -10
- package/lib/inversify.d.ts +0 -25
- package/lib/planning/context.d.ts +0 -11
- package/lib/planning/plan.d.ts +0 -7
- package/lib/planning/planner.d.ts +0 -5
- package/lib/planning/queryable_string.d.ts +0 -10
- package/lib/planning/reflection_utils.d.ts +0 -5
- package/lib/planning/request.d.ts +0 -14
- package/lib/planning/target.d.ts +0 -23
- package/lib/planning/target.js +0 -113
- package/lib/resolution/resolver.d.ts +0 -3
- package/lib/scope/scope.d.ts +0 -3
- package/lib/syntax/binding_in_syntax.d.ts +0 -9
- package/lib/syntax/binding_in_when_on_syntax.d.ts +0 -29
- package/lib/syntax/binding_on_syntax.d.ts +0 -8
- package/lib/syntax/binding_when_on_syntax.d.ts +0 -25
- package/lib/syntax/constraint_helpers.d.ts +0 -6
- package/lib/tsconfig.tsbuildinfo +0 -1
- package/lib/utils/async.d.ts +0 -3
- package/lib/utils/binding_utils.d.ts +0 -4
- package/lib/utils/clonable.d.ts +0 -3
- package/lib/utils/exceptions.d.ts +0 -2
- package/lib/utils/id.d.ts +0 -2
- package/lib/utils/js.d.ts +0 -1
- package/lib/utils/serialization.d.ts +0 -10
- /package/{es → lib/esm}/package.json +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async.js","sourceRoot":"","sources":["../../../src/utils/async.ts"],"names":[],"mappings":";;AAoBS,8BAAS;AAAE,gEAA0B;AApB9C,SAAS,SAAS,CAAI,MAAe;IACnC,MAAM,kBAAkB,GACtB,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC;QAC/C,OAAO,MAAM,KAAK,UAAU,CAAC;IAE/B,OAAO,CACL,kBAAkB,IAAI,OAAQ,MAAyB,CAAC,IAAI,KAAK,UAAU,CAC5E,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CACjC,MAAe;IAEf,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -2,3 +2,4 @@ import type { interfaces } from '../interfaces/interfaces';
|
|
|
2
2
|
export declare const multiBindToService: (container: interfaces.Container) => (service: interfaces.ServiceIdentifier) => (...types: interfaces.ServiceIdentifier[]) => void;
|
|
3
3
|
export declare const ensureFullyBound: <T = unknown>(binding: interfaces.Binding<T>) => void;
|
|
4
4
|
export declare const getFactoryDetails: <T = unknown>(binding: interfaces.Binding<T>) => interfaces.FactoryDetails;
|
|
5
|
+
//# sourceMappingURL=binding_utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binding_utils.d.ts","sourceRoot":"","sources":["../../../src/utils/binding_utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAI3D,eAAO,MAAM,kBAAkB,EAAE,CAC/B,SAAS,EAAE,UAAU,CAAC,SAAS,KAC5B,CACH,OAAO,EAAE,UAAU,CAAC,iBAAiB,KAClC,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC,iBAAiB,EAAE,KAAK,IAOhD,CAAC;AAEJ,eAAO,MAAM,gBAAgB,EAAE,CAAC,CAAC,GAAG,OAAO,EACzC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,KAC3B,IAiCJ,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,CAAC,CAAC,GAAG,OAAO,EAC1C,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,KAC3B,UAAU,CAAC,cAgBf,CAAC"}
|
|
@@ -46,6 +46,7 @@ const multiBindToService = (container) => (service) => (...types) => {
|
|
|
46
46
|
exports.multiBindToService = multiBindToService;
|
|
47
47
|
const ensureFullyBound = (binding) => {
|
|
48
48
|
let boundValue = null;
|
|
49
|
+
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
|
|
49
50
|
switch (binding.type) {
|
|
50
51
|
case literal_types_1.BindingTypeEnum.ConstantValue:
|
|
51
52
|
case literal_types_1.BindingTypeEnum.Function:
|
|
@@ -66,6 +67,8 @@ const ensureFullyBound = (binding) => {
|
|
|
66
67
|
break;
|
|
67
68
|
}
|
|
68
69
|
if (boundValue === null) {
|
|
70
|
+
// The user probably created a binding but didn't finish it
|
|
71
|
+
// e.g. container.bind<T>('Something'); missing BindingToSyntax
|
|
69
72
|
const serviceIdentifierAsString = (0, serialization_1.getServiceIdentifierAsString)(binding.serviceIdentifier);
|
|
70
73
|
throw new Error(`${ERROR_MSGS.INVALID_BINDING_TYPE} ${serviceIdentifierAsString}`);
|
|
71
74
|
}
|
|
@@ -87,3 +90,4 @@ const getFactoryDetails = (binding) => {
|
|
|
87
90
|
}
|
|
88
91
|
};
|
|
89
92
|
exports.getFactoryDetails = getFactoryDetails;
|
|
93
|
+
//# sourceMappingURL=binding_utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binding_utils.js","sourceRoot":"","sources":["../../../src/utils/binding_utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oEAAsD;AACtD,8DAA6D;AAE7D,0DAAsE;AACtE,iDAA6C;AAEtC,MAAM,kBAAkB,GAK7B,CAAC,SAA+B,EAAE,EAAE,CACpC,CAAC,OAAqC,EAAE,EAAE,CAC1C,CAAC,GAAG,KAAqC,EAAE,EAAE;IAC3C,KAAK,CAAC,OAAO,CAAC,CAAC,CAA+B,EAAE,EAAE;QAChD,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAXS,QAAA,kBAAkB,sBAW3B;AAEG,MAAM,gBAAgB,GAEjB,CAAc,OAA8B,EAAQ,EAAE;IAChE,IAAI,UAAU,GAAY,IAAI,CAAC;IAE/B,0EAA0E;IAC1E,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,+BAAe,CAAC,aAAa,CAAC;QACnC,KAAK,+BAAe,CAAC,QAAQ;YAC3B,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC;YAC3B,MAAM;QACR,KAAK,+BAAe,CAAC,WAAW,CAAC;QACjC,KAAK,+BAAe,CAAC,QAAQ;YAC3B,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC;YACxC,MAAM;QACR,KAAK,+BAAe,CAAC,YAAY;YAC/B,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;YAClC,MAAM;QACR,KAAK,+BAAe,CAAC,QAAQ;YAC3B,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC;YAC9B,MAAM;QACR,KAAK,+BAAe,CAAC,OAAO;YAC1B,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;YAC7B,MAAM;IACV,CAAC;IACD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,2DAA2D;QAC3D,+DAA+D;QAC/D,MAAM,yBAAyB,GAAW,IAAA,4CAA4B,EACpE,OAAO,CAAC,iBAAiB,CAC1B,CAAC;QACF,MAAM,IAAI,KAAK,CACb,GAAG,UAAU,CAAC,oBAAoB,IAAI,yBAAyB,EAAE,CAClE,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAnCW,QAAA,gBAAgB,oBAmC3B;AAEK,MAAM,iBAAiB,GAEG,CAC/B,OAA8B,EACH,EAAE;IAC7B,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,+BAAe,CAAC,OAAO;YAC1B,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,0BAAW,CAAC,OAAO,EAAE,CAAC;QACxE,KAAK,+BAAe,CAAC,QAAQ;YAC3B,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,0BAAW,CAAC,QAAQ,EAAE,CAAC;QAC1E,KAAK,+BAAe,CAAC,YAAY;YAC/B,OAAO;gBACL,OAAO,EAAE,OAAO,CAAC,YAAY;gBAC7B,WAAW,EAAE,0BAAW,CAAC,YAAY;aACtC,CAAC;QACJ;YACE,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC,CAAC;AAlBW,QAAA,iBAAiB,qBAkB5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clonable.d.ts","sourceRoot":"","sources":["../../../src/utils/clonable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,iBAAS,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAOlE;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clonable.js","sourceRoot":"","sources":["../../../src/utils/clonable.ts"],"names":[],"mappings":";;AAWS,gCAAU;AATnB,SAAS,UAAU,CAAI,GAAY;IACjC,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,OAAO,IAAI,GAAG;QACd,OAAQ,GAA8B,CAAC,KAAK,KAAK,UAAU,CAC5D,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exceptions.d.ts","sourceRoot":"","sources":["../../../src/utils/exceptions.ts"],"names":[],"mappings":"AAEA,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAK5E;AAED,eAAO,MAAM,+BAA+B,EAAE,CAAC,CAAC,EAC9C,EAAE,EAAE,MAAM,CAAC,EACX,aAAa,EAAE,MAAM,KAAK,KACvB,CAUJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../../../src/utils/exceptions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,4DAKC;AAPD,oEAAsD;AAEtD,SAAgB,wBAAwB,CAAC,KAAc;IACrD,OAAO,CACL,KAAK,YAAY,UAAU;QAC1B,KAAe,CAAC,OAAO,KAAK,UAAU,CAAC,cAAc,CACvD,CAAC;AACJ,CAAC;AAEM,MAAM,+BAA+B,GAGnC,CAAI,EAAW,EAAE,aAA0B,EAAE,EAAE;IACtD,IAAI,CAAC;QACH,OAAO,EAAE,EAAE,CAAC;IACd,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,MAAM,aAAa,EAAE,CAAC;QACxB,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAbW,QAAA,+BAA+B,mCAa1C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory_type.d.ts","sourceRoot":"","sources":["../../../src/utils/factory_type.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW;IACrB,YAAY,mBAAmB;IAC/B,OAAO,cAAc;IACrB,QAAQ,eAAe;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory_type.js","sourceRoot":"","sources":["../../../src/utils/factory_type.ts"],"names":[],"mappings":";;;AAAA,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,8CAA+B,CAAA;IAC/B,oCAAqB,CAAA;IACrB,sCAAuB,CAAA;AACzB,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../../src/utils/id.ts"],"names":[],"mappings":"AAEA,iBAAS,EAAE,IAAI,MAAM,CAEpB;AAED,OAAO,EAAE,EAAE,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id.js","sourceRoot":"","sources":["../../../src/utils/id.ts"],"names":[],"mappings":";;AAMS,gBAAE;AANX,IAAI,SAAS,GAAW,CAAC,CAAC;AAE1B,SAAS,EAAE;IACT,OAAO,SAAS,EAAE,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"js.d.ts","sourceRoot":"","sources":["../../../src/utils/js.ts"],"names":[],"mappings":"AAAA,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,CAWnE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"js.js","sourceRoot":"","sources":["../../../src/utils/js.ts"],"names":[],"mappings":";;AAAA,wDAWC;AAXD,SAAgB,sBAAsB,CAAI,KAAU;IAClD,MAAM,UAAU,GAAW,IAAI,GAAG,EAAK,CAAC;IAExC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -8,3 +8,4 @@ declare function getFunctionName(func: {
|
|
|
8
8
|
}): string;
|
|
9
9
|
declare function getSymbolDescription(symbol: symbol): string;
|
|
10
10
|
export { getFunctionName, getServiceIdentifierAsString, listRegisteredBindingsForServiceIdentifier, listMetadataForTarget, circularDependencyToException, getSymbolDescription, };
|
|
11
|
+
//# sourceMappingURL=serialization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../../../src/utils/serialization.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,iBAAS,4BAA4B,CACnC,iBAAiB,EAAE,UAAU,CAAC,iBAAiB,GAC9C,MAAM,CAQR;AAED,iBAAS,0CAA0C,CACjD,SAAS,EAAE,UAAU,CAAC,SAAS,EAC/B,iBAAiB,EAAE,MAAM,EACzB,WAAW,EAAE,CAAC,CAAC,EACb,SAAS,EAAE,UAAU,CAAC,SAAS,EAC/B,iBAAiB,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAC/C,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAC3B,MAAM,CA+BR;AAkCD,iBAAS,6BAA6B,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,QASjE;AAED,iBAAS,qBAAqB,CAC5B,uBAAuB,EAAE,MAAM,EAC/B,MAAM,EAAE,UAAU,CAAC,MAAM,GACxB,MAAM,CAuBR;AAED,iBAAS,eAAe,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CAAE,GAAG,MAAM,CAW1E;AAED,iBAAS,oBAAoB,CAAC,MAAM,EAAE,MAAM,UAG3C;AAMD,OAAO,EACL,eAAe,EACf,4BAA4B,EAC5B,0CAA0C,EAC1C,qBAAqB,EACrB,6BAA6B,EAC7B,oBAAoB,GACrB,CAAC"}
|
|
@@ -57,12 +57,15 @@ function listRegisteredBindingsForServiceIdentifier(container, serviceIdentifier
|
|
|
57
57
|
if (registeredBindings.length !== 0) {
|
|
58
58
|
registeredBindingsList = '\nRegistered bindings:';
|
|
59
59
|
registeredBindings.forEach((binding) => {
|
|
60
|
+
// Use 'Object as name of constant value injections'
|
|
60
61
|
let name = 'Object';
|
|
62
|
+
// Use function name if available
|
|
61
63
|
if (binding.implementationType !== null) {
|
|
62
64
|
name = getFunctionName(binding.implementationType);
|
|
63
65
|
}
|
|
64
66
|
registeredBindingsList = `${registeredBindingsList}\n ${name}`;
|
|
65
67
|
if (binding.constraint.metaData) {
|
|
68
|
+
// eslint-disable-next-line @typescript-eslint/no-base-to-string, @typescript-eslint/restrict-template-expressions
|
|
66
69
|
registeredBindingsList = `${registeredBindingsList} - ${binding.constraint.metaData}`;
|
|
67
70
|
}
|
|
68
71
|
});
|
|
@@ -127,6 +130,7 @@ function getFunctionName(func) {
|
|
|
127
130
|
return func.name;
|
|
128
131
|
}
|
|
129
132
|
else {
|
|
133
|
+
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
130
134
|
const name = func.toString();
|
|
131
135
|
const match = name.match(/^function\s*([^\s(]+)/);
|
|
132
136
|
return match === null
|
|
@@ -135,8 +139,10 @@ function getFunctionName(func) {
|
|
|
135
139
|
}
|
|
136
140
|
}
|
|
137
141
|
function getSymbolDescription(symbol) {
|
|
142
|
+
// eslint-disable-next-line @typescript-eslint/no-magic-numbers
|
|
138
143
|
return symbol.toString().slice(7, -1);
|
|
139
144
|
}
|
|
140
145
|
function stringifyMetadata(metadata) {
|
|
141
146
|
return `{"key":"${metadata.key.toString()}","value":"${metadata.value.toString()}"}`;
|
|
142
147
|
}
|
|
148
|
+
//# sourceMappingURL=serialization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialization.js","sourceRoot":"","sources":["../../../src/utils/serialization.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,47 @@
|
|
|
1
|
-
import { Newable
|
|
1
|
+
import { Newable, ServiceIdentifier, LazyServiceIdentifier } from '@inversifyjs/common';
|
|
2
|
+
export { LazyServiceIdentifier } from '@inversifyjs/common';
|
|
2
3
|
import { LegacyTarget } from '@inversifyjs/core';
|
|
3
|
-
|
|
4
|
+
|
|
5
|
+
declare const NAMED_TAG: string;
|
|
6
|
+
declare const NAME_TAG: string;
|
|
7
|
+
declare const UNMANAGED_TAG: string;
|
|
8
|
+
declare const OPTIONAL_TAG: string;
|
|
9
|
+
declare const INJECT_TAG: string;
|
|
10
|
+
declare const MULTI_INJECT_TAG: string;
|
|
11
|
+
declare const TAGGED: string;
|
|
12
|
+
declare const TAGGED_PROP: string;
|
|
13
|
+
declare const PARAM_TYPES: string;
|
|
14
|
+
declare const DESIGN_PARAM_TYPES: string;
|
|
15
|
+
declare const POST_CONSTRUCT: string;
|
|
16
|
+
declare const PRE_DESTROY: string;
|
|
17
|
+
declare const NON_CUSTOM_TAG_KEYS: string[];
|
|
18
|
+
|
|
19
|
+
declare const keys_DESIGN_PARAM_TYPES: typeof DESIGN_PARAM_TYPES;
|
|
20
|
+
declare const keys_INJECT_TAG: typeof INJECT_TAG;
|
|
21
|
+
declare const keys_MULTI_INJECT_TAG: typeof MULTI_INJECT_TAG;
|
|
22
|
+
declare const keys_NAMED_TAG: typeof NAMED_TAG;
|
|
23
|
+
declare const keys_NAME_TAG: typeof NAME_TAG;
|
|
24
|
+
declare const keys_NON_CUSTOM_TAG_KEYS: typeof NON_CUSTOM_TAG_KEYS;
|
|
25
|
+
declare const keys_OPTIONAL_TAG: typeof OPTIONAL_TAG;
|
|
26
|
+
declare const keys_PARAM_TYPES: typeof PARAM_TYPES;
|
|
27
|
+
declare const keys_POST_CONSTRUCT: typeof POST_CONSTRUCT;
|
|
28
|
+
declare const keys_PRE_DESTROY: typeof PRE_DESTROY;
|
|
29
|
+
declare const keys_TAGGED: typeof TAGGED;
|
|
30
|
+
declare const keys_TAGGED_PROP: typeof TAGGED_PROP;
|
|
31
|
+
declare const keys_UNMANAGED_TAG: typeof UNMANAGED_TAG;
|
|
32
|
+
declare namespace keys {
|
|
33
|
+
export { keys_DESIGN_PARAM_TYPES as DESIGN_PARAM_TYPES, keys_INJECT_TAG as INJECT_TAG, keys_MULTI_INJECT_TAG as MULTI_INJECT_TAG, keys_NAMED_TAG as NAMED_TAG, keys_NAME_TAG as NAME_TAG, keys_NON_CUSTOM_TAG_KEYS as NON_CUSTOM_TAG_KEYS, keys_OPTIONAL_TAG as OPTIONAL_TAG, keys_PARAM_TYPES as PARAM_TYPES, keys_POST_CONSTRUCT as POST_CONSTRUCT, keys_PRE_DESTROY as PRE_DESTROY, keys_TAGGED as TAGGED, keys_TAGGED_PROP as TAGGED_PROP, keys_UNMANAGED_TAG as UNMANAGED_TAG };
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
declare enum FactoryType {
|
|
37
|
+
DynamicValue = "toDynamicValue",
|
|
38
|
+
Factory = "toFactory",
|
|
39
|
+
Provider = "toProvider"
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
type CommonNewable<TInstance = unknown, TArgs extends unknown[] = any[]> = Newable<TInstance, TArgs>;
|
|
43
|
+
type CommonServiceIdentifier<TInstance = unknown> = ServiceIdentifier<TInstance>;
|
|
44
|
+
|
|
4
45
|
declare namespace interfaces {
|
|
5
46
|
export type DynamicValue<T> = (context: interfaces.Context) => T | Promise<T>;
|
|
6
47
|
export type ContainerResolution<T> = T | Promise<T> | (T | Promise<T>)[];
|
|
@@ -264,6 +305,167 @@ declare namespace interfaces {
|
|
|
264
305
|
compilerGeneratedMetadata: NewableFunction[] | undefined;
|
|
265
306
|
userGeneratedMetadata: MetadataMap;
|
|
266
307
|
}
|
|
267
|
-
export {};
|
|
308
|
+
export { };
|
|
309
|
+
}
|
|
310
|
+
//# sourceMappingURL=interfaces.d.ts.map
|
|
311
|
+
|
|
312
|
+
declare class Container implements interfaces.Container {
|
|
313
|
+
id: number;
|
|
314
|
+
parent: interfaces.Container | null;
|
|
315
|
+
readonly options: interfaces.ContainerOptions;
|
|
316
|
+
private _middleware;
|
|
317
|
+
private _bindingDictionary;
|
|
318
|
+
private _activations;
|
|
319
|
+
private _deactivations;
|
|
320
|
+
private readonly _snapshots;
|
|
321
|
+
private _metadataReader;
|
|
322
|
+
private _moduleActivationStore;
|
|
323
|
+
constructor(containerOptions?: interfaces.ContainerOptions);
|
|
324
|
+
static merge(container1: interfaces.Container, container2: interfaces.Container, ...containers: interfaces.Container[]): interfaces.Container;
|
|
325
|
+
load(...modules: interfaces.ContainerModule[]): void;
|
|
326
|
+
loadAsync(...modules: interfaces.AsyncContainerModule[]): Promise<void>;
|
|
327
|
+
unload(...modules: interfaces.ContainerModuleBase[]): void;
|
|
328
|
+
unloadAsync(...modules: interfaces.ContainerModuleBase[]): Promise<void>;
|
|
329
|
+
bind<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): interfaces.BindingToSyntax<T>;
|
|
330
|
+
rebind<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): interfaces.BindingToSyntax<T>;
|
|
331
|
+
rebindAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): Promise<interfaces.BindingToSyntax<T>>;
|
|
332
|
+
unbind(serviceIdentifier: interfaces.ServiceIdentifier): void;
|
|
333
|
+
unbindAsync(serviceIdentifier: interfaces.ServiceIdentifier): Promise<void>;
|
|
334
|
+
unbindAll(): void;
|
|
335
|
+
unbindAllAsync(): Promise<void>;
|
|
336
|
+
onActivation<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, onActivation: interfaces.BindingActivation<T>): void;
|
|
337
|
+
onDeactivation<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, onDeactivation: interfaces.BindingDeactivation<T>): void;
|
|
338
|
+
isBound(serviceIdentifier: interfaces.ServiceIdentifier<unknown>): boolean;
|
|
339
|
+
isCurrentBound<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): boolean;
|
|
340
|
+
isBoundNamed(serviceIdentifier: interfaces.ServiceIdentifier, named: string | number | symbol): boolean;
|
|
341
|
+
isBoundTagged(serviceIdentifier: interfaces.ServiceIdentifier, key: string | number | symbol, value: unknown): boolean;
|
|
342
|
+
snapshot(): void;
|
|
343
|
+
restore(): void;
|
|
344
|
+
createChild(containerOptions?: interfaces.ContainerOptions): Container;
|
|
345
|
+
applyMiddleware(...middlewares: interfaces.Middleware[]): void;
|
|
346
|
+
applyCustomMetadataReader(metadataReader: interfaces.MetadataReader): void;
|
|
347
|
+
get<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): T;
|
|
348
|
+
getAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): Promise<T>;
|
|
349
|
+
getTagged<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: unknown): T;
|
|
350
|
+
getTaggedAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: unknown): Promise<T>;
|
|
351
|
+
getNamed<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): T;
|
|
352
|
+
getNamedAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): Promise<T>;
|
|
353
|
+
getAll<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): T[];
|
|
354
|
+
getAllAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): Promise<T[]>;
|
|
355
|
+
getAllTagged<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: unknown): T[];
|
|
356
|
+
getAllTaggedAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: unknown): Promise<T[]>;
|
|
357
|
+
getAllNamed<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): T[];
|
|
358
|
+
getAllNamedAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): Promise<T[]>;
|
|
359
|
+
resolve<T>(constructorFunction: interfaces.Newable<T>): T;
|
|
360
|
+
private _preDestroy;
|
|
361
|
+
private _removeModuleHandlers;
|
|
362
|
+
private _removeModuleBindings;
|
|
363
|
+
private _deactivate;
|
|
364
|
+
private _handleDeactivationError;
|
|
365
|
+
private _deactivateContainer;
|
|
366
|
+
private _deactivateContainerAsync;
|
|
367
|
+
private _getContainerModuleHelpersFactory;
|
|
368
|
+
private _bind;
|
|
369
|
+
private _buildBinding;
|
|
370
|
+
private _getAll;
|
|
371
|
+
private _get;
|
|
372
|
+
private _getButThrowIfAsync;
|
|
373
|
+
private _getAllArgs;
|
|
374
|
+
private _getNotAllArgs;
|
|
375
|
+
private _planAndResolve;
|
|
376
|
+
private _deactivateIfSingleton;
|
|
377
|
+
private _deactivateSingletons;
|
|
378
|
+
private _deactivateSingletonsAsync;
|
|
379
|
+
private _propagateContainerDeactivationThenBindingAndPreDestroy;
|
|
380
|
+
private _propagateContainerDeactivationThenBindingAndPreDestroyAsync;
|
|
381
|
+
private _removeServiceFromDictionary;
|
|
382
|
+
private _bindingDeactivationAndPreDestroy;
|
|
383
|
+
private _bindingDeactivationAndPreDestroyAsync;
|
|
384
|
+
}
|
|
385
|
+
//# sourceMappingURL=container.d.ts.map
|
|
386
|
+
|
|
387
|
+
declare const BindingScopeEnum: interfaces.BindingScopeEnum;
|
|
388
|
+
declare const BindingTypeEnum: interfaces.BindingTypeEnum;
|
|
389
|
+
declare const TargetTypeEnum: interfaces.TargetTypeEnum;
|
|
390
|
+
//# sourceMappingURL=literal_types.d.ts.map
|
|
391
|
+
|
|
392
|
+
declare class ContainerModule implements interfaces.ContainerModule {
|
|
393
|
+
id: number;
|
|
394
|
+
registry: interfaces.ContainerModuleCallBack;
|
|
395
|
+
constructor(registry: interfaces.ContainerModuleCallBack);
|
|
396
|
+
}
|
|
397
|
+
declare class AsyncContainerModule implements interfaces.AsyncContainerModule {
|
|
398
|
+
id: number;
|
|
399
|
+
registry: interfaces.AsyncContainerModuleCallBack;
|
|
400
|
+
constructor(registry: interfaces.AsyncContainerModuleCallBack);
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
type Prototype<T> = {
|
|
404
|
+
[Property in keyof T]: T[Property] extends NewableFunction ? T[Property] : T[Property] | undefined;
|
|
405
|
+
} & {
|
|
406
|
+
constructor: NewableFunction;
|
|
407
|
+
};
|
|
408
|
+
interface ConstructorFunction<T = Record<string, unknown>> {
|
|
409
|
+
prototype: Prototype<T>;
|
|
410
|
+
new (...args: unknown[]): T;
|
|
411
|
+
}
|
|
412
|
+
type DecoratorTarget<T = unknown> = ConstructorFunction<T> | Prototype<T>;
|
|
413
|
+
declare function createTaggedDecorator(metadata: interfaces.MetadataOrMetadataArray): <T>(target: DecoratorTarget, targetKey?: string | symbol, indexOrPropertyDescriptor?: number | TypedPropertyDescriptor<T>) => void;
|
|
414
|
+
declare function decorate(decorator: DecoratorTarget | ParameterDecorator | MethodDecorator, target: object, parameterIndexOrProperty?: number | string): void;
|
|
415
|
+
|
|
416
|
+
declare function injectable(): <T extends abstract new (...args: any) => unknown>(target: T) => T;
|
|
417
|
+
//# sourceMappingURL=injectable.d.ts.map
|
|
418
|
+
|
|
419
|
+
declare function tagged(metadataKey: string | number | symbol, metadataValue: unknown): <T>(target: DecoratorTarget, targetKey?: string | symbol, indexOrPropertyDescriptor?: number | TypedPropertyDescriptor<T>) => void;
|
|
420
|
+
//# sourceMappingURL=tagged.d.ts.map
|
|
421
|
+
|
|
422
|
+
declare function named(name: string | number | symbol): <T>(target: DecoratorTarget, targetKey?: string | symbol, indexOrPropertyDescriptor?: number | TypedPropertyDescriptor<T>) => void;
|
|
423
|
+
//# sourceMappingURL=named.d.ts.map
|
|
424
|
+
|
|
425
|
+
declare const inject: <T = unknown>(serviceIdentifier: interfaces.ServiceIdentifier<T> | LazyServiceIdentifier<T>) => (target: DecoratorTarget, targetKey?: string | symbol, indexOrPropertyDescriptor?: number | TypedPropertyDescriptor<T>) => void;
|
|
426
|
+
//# sourceMappingURL=inject.d.ts.map
|
|
427
|
+
|
|
428
|
+
declare function optional(): <T>(target: DecoratorTarget, targetKey?: string | symbol, indexOrPropertyDescriptor?: number | TypedPropertyDescriptor<T>) => void;
|
|
429
|
+
//# sourceMappingURL=optional.d.ts.map
|
|
430
|
+
|
|
431
|
+
declare function unmanaged(): (target: DecoratorTarget, targetKey: string | undefined, index: number) => void;
|
|
432
|
+
//# sourceMappingURL=unmanaged.d.ts.map
|
|
433
|
+
|
|
434
|
+
declare const multiInject: <T = unknown>(serviceIdentifier: interfaces.ServiceIdentifier<T> | LazyServiceIdentifier<T>) => (target: DecoratorTarget, targetKey?: string | symbol, indexOrPropertyDescriptor?: number | TypedPropertyDescriptor<T>) => void;
|
|
435
|
+
//# sourceMappingURL=multi_inject.d.ts.map
|
|
436
|
+
|
|
437
|
+
declare function targetName(name: string): (target: DecoratorTarget, targetKey: string | undefined, index: number) => void;
|
|
438
|
+
//# sourceMappingURL=target_name.d.ts.map
|
|
439
|
+
|
|
440
|
+
declare const postConstruct: () => (target: {
|
|
441
|
+
constructor: NewableFunction;
|
|
442
|
+
}, propertyKey: string) => void;
|
|
443
|
+
//# sourceMappingURL=post_construct.d.ts.map
|
|
444
|
+
|
|
445
|
+
declare const preDestroy: () => (target: {
|
|
446
|
+
constructor: NewableFunction;
|
|
447
|
+
}, propertyKey: string) => void;
|
|
448
|
+
//# sourceMappingURL=pre_destroy.d.ts.map
|
|
449
|
+
|
|
450
|
+
declare class MetadataReader implements interfaces.MetadataReader {
|
|
451
|
+
getConstructorMetadata(constructorFunc: NewableFunction): interfaces.ConstructorMetadata;
|
|
452
|
+
getPropertiesMetadata(constructorFunc: NewableFunction): interfaces.MetadataMap;
|
|
268
453
|
}
|
|
269
|
-
|
|
454
|
+
//# sourceMappingURL=metadata_reader.d.ts.map
|
|
455
|
+
|
|
456
|
+
declare function id(): number;
|
|
457
|
+
//# sourceMappingURL=id.d.ts.map
|
|
458
|
+
|
|
459
|
+
declare const traverseAncerstors: (request: interfaces.Request, constraint: interfaces.ConstraintFunction) => boolean;
|
|
460
|
+
declare const taggedConstraint: (key: string | number | symbol) => (value: unknown) => interfaces.ConstraintFunction;
|
|
461
|
+
declare const namedConstraint: (value: unknown) => interfaces.ConstraintFunction;
|
|
462
|
+
declare const typeConstraint: (type: NewableFunction | string) => (request: interfaces.Request | null) => boolean;
|
|
463
|
+
//# sourceMappingURL=constraint_helpers.d.ts.map
|
|
464
|
+
|
|
465
|
+
declare function getServiceIdentifierAsString(serviceIdentifier: interfaces.ServiceIdentifier): string;//# sourceMappingURL=serialization.d.ts.map
|
|
466
|
+
|
|
467
|
+
declare const multiBindToService: (container: interfaces.Container) => (service: interfaces.ServiceIdentifier) => (...types: interfaces.ServiceIdentifier[]) => void;
|
|
468
|
+
|
|
469
|
+
declare const METADATA_KEY: typeof keys;
|
|
470
|
+
|
|
471
|
+
export { AsyncContainerModule, BindingScopeEnum, BindingTypeEnum, Container, ContainerModule, METADATA_KEY, MetadataReader, TargetTypeEnum, createTaggedDecorator, decorate, getServiceIdentifierAsString, id, inject, injectable, interfaces, multiBindToService, multiInject, named, namedConstraint, optional, postConstruct, preDestroy, tagged, taggedConstraint, targetName, traverseAncerstors, typeConstraint, unmanaged };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,IAAI,MAAM,2BAA2B,CAAC;AAElD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,eAAO,MAAM,YAAY,aAAO,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,cAAc,GACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,oBAAoB,EACpB,eAAe,GAChB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAChC,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,cAAc,GACf,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
|
package/lib/esm/index.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"reflect-metadata";export{LazyServiceIdentifier}from"@inversifyjs/common";import{getTargets as n,getClassElementMetadataFromLegacyMetadata as t,ClassElementMetadataKind as e,LegacyTargetImpl as i}from"@inversifyjs/core";const r="named",o="name",s="unmanaged",a="optional",c="inject",d="multi_inject",u="inversify:tagged",h="inversify:tagged_props",l="inversify:paramtypes",g="design:paramtypes",y="post_construct",p="pre_destroy";const f=[c,d,o,s,r,a];var _=Object.freeze({__proto__:null,DESIGN_PARAM_TYPES:g,INJECT_TAG:c,MULTI_INJECT_TAG:d,NAMED_TAG:r,NAME_TAG:o,NON_CUSTOM_TAG_KEYS:f,OPTIONAL_TAG:a,PARAM_TYPES:l,POST_CONSTRUCT:y,PRE_DESTROY:p,TAGGED:u,TAGGED_PROP:h,UNMANAGED_TAG:s});const v={Request:"Request",Singleton:"Singleton",Transient:"Transient"},b={ConstantValue:"ConstantValue",Constructor:"Constructor",DynamicValue:"DynamicValue",Factory:"Factory",Function:"Function",Instance:"Instance",Invalid:"Invalid",Provider:"Provider"},w={ClassProperty:"ClassProperty",ConstructorArgument:"ConstructorArgument",Variable:"Variable"};let m=0;function A(){return m++}class S{id;moduleId;activated;serviceIdentifier;implementationType;cache;dynamicValue;scope;type;factory;provider;constraint;onActivation;onDeactivation;constructor(n,t){this.id=A(),this.activated=!1,this.serviceIdentifier=n,this.scope=t,this.type=b.Invalid,this.constraint=n=>!0,this.implementationType=null,this.cache=null,this.factory=null,this.provider=null,this.onActivation=null,this.onDeactivation=null,this.dynamicValue=null}clone(){const n=new S(this.serviceIdentifier,this.scope);return n.activated=n.scope===v.Singleton&&this.activated,n.implementationType=this.implementationType,n.dynamicValue=this.dynamicValue,n.scope=this.scope,n.type=this.type,n.factory=this.factory,n.provider=this.provider,n.constraint=this.constraint,n.onActivation=this.onActivation,n.onDeactivation=this.onDeactivation,n.cache=this.cache,n}}const I="Metadata key was used more than once in a parameter:",T="NULL argument",D="Key Not Found",N="Ambiguous match found for serviceIdentifier:",C="No matching bindings found for serviceIdentifier:",R="The @inject @multiInject @tagged and @named decorators must be applied to the parameters of a class constructor or a class property.",x=(n,t)=>`onDeactivation() error in class ${n}: ${t}`;class E{getConstructorMetadata(n){return{compilerGeneratedMetadata:Reflect.getMetadata(g,n)??[],userGeneratedMetadata:Reflect.getMetadata(u,n)??{}}}getPropertiesMetadata(n){return Reflect.getMetadata(h,n)??{}}}var M;function q(n){return n instanceof RangeError||"Maximum call stack size exceeded"===n.message}!function(n){n[n.MultipleBindingsAvailable=2]="MultipleBindingsAvailable",n[n.NoBindingsAvailable=0]="NoBindingsAvailable",n[n.OnlyOneBindingAvailable=1]="OnlyOneBindingAvailable"}(M||(M={}));function P(n){return"function"==typeof n?n.name:"symbol"==typeof n?n.toString():n}function B(n,t,e){let i="";const r=e(n,t);return 0!==r.length&&(i="\nRegistered bindings:",r.forEach((n=>{let t="Object";null!==n.implementationType&&(t=j(n.implementationType)),i=`${i}\n ${t}`,n.constraint.metaData&&(i=`${i} - ${n.constraint.metaData}`)}))),i}function F(n,t){return null!==n.parentRequest&&(n.parentRequest.serviceIdentifier===t||F(n.parentRequest,t))}function k(n){n.childRequests.forEach((t=>{if(F(n,t.serviceIdentifier)){const n=function(n){const t=function n(t,e=[]){const i=P(t.serviceIdentifier);return e.push(i),null!==t.parentRequest?n(t.parentRequest,e):e}(n);return t.reverse().join(" --\x3e ")}(t);throw new Error(`Circular dependency found: ${n}`)}k(t)}))}function j(n){if(null!=n.name&&""!==n.name)return n.name;{const t=n.toString(),e=t.match(/^function\s*([^\s(]+)/);return null===e?`Anonymous function: ${t}`:e[1]}}function $(n){return`{"key":"${n.key.toString()}","value":"${n.value.toString()}"}`}class O{id;container;plan;currentRequest;constructor(n){this.id=A(),this.container=n}addPlan(n){this.plan=n}setCurrentRequest(n){this.currentRequest=n}}class V{key;value;constructor(n,t){this.key=n,this.value=t}toString(){return this.key===r?`named: ${String(this.value).toString()} `:`tagged: { key:${this.key.toString()}, value: ${String(this.value)} }`}}class W{parentContext;rootRequest;constructor(n,t){this.parentContext=n,this.rootRequest=t}}function G(t,e){const i=Object.getPrototypeOf(e.prototype).constructor;if(i!==Object){const e=n(t)(i),r=e.map((n=>n.metadata.filter((n=>n.key===s)))),o=[].concat.apply([],r).length,a=e.length-o;return a>0?a:G(t,i)}return 0}class K{id;serviceIdentifier;parentContext;parentRequest;bindings;childRequests;target;requestScope;constructor(n,t,e,i,r){this.id=A(),this.serviceIdentifier=n,this.parentContext=t,this.parentRequest=e,this.target=r,this.childRequests=[],this.bindings=Array.isArray(i)?i:[i],this.requestScope=null===e?new Map:null}addChildRequest(n,t,e){const i=new K(n,this.parentContext,this,t,e);return this.childRequests.push(i),i}}function H(n){return n._bindingDictionary}function U(n,t,e,i,r){let o=z(e.container,r.serviceIdentifier),s=[];return o.length===M.NoBindingsAvailable&&!0===e.container.options.autoBindInjectable&&"function"==typeof r.serviceIdentifier&&n.getConstructorMetadata(r.serviceIdentifier).compilerGeneratedMetadata&&(e.container.bind(r.serviceIdentifier).toSelf(),o=z(e.container,r.serviceIdentifier)),s=t?o:o.filter((n=>{const t=new K(n.serviceIdentifier,e,i,n,r);return n.constraint(t)})),function(n,t,e,i,r){switch(t.length){case M.NoBindingsAvailable:if(i.isOptional())return t;{const t=P(n);let o=C;throw o+=function(n,t){if(t.isTagged()||t.isNamed()){let e="";const i=t.getNamedTag(),r=t.getCustomTags();return null!==i&&(e+=$(i)+"\n"),null!==r&&r.forEach((n=>{e+=$(n)+"\n"})),` ${n}\n ${n} - ${e}`}return` ${n}`}(t,i),o+=B(r,t,z),null!==e&&(o+="\n"+`Trying to resolve bindings for "${P(e.serviceIdentifier)}"`),new Error(o)}case M.OnlyOneBindingAvailable:return t;case M.MultipleBindingsAvailable:default:if(i.isArray())return t;{const t=P(n);let e=`${N} ${t}`;throw e+=B(r,t,z),new Error(e)}}}(r.serviceIdentifier,s,i,r,e.container),s}function L(n,t,e,i){const r=[new V(n?d:c,t)];return void 0!==e&&r.push(new V(e,i)),r}function Y(t,e,i,r,o,s){let a,c;if(null===o){a=U(t,e,r,null,s),c=new K(i,r,null,a,s);const n=new W(r,c);r.addPlan(n)}else a=U(t,e,r,o,s),c=o.addChildRequest(s.serviceIdentifier,a,s);a.forEach((e=>{let i=null;if(s.isArray())i=c.addChildRequest(e.serviceIdentifier,e,s);else{if(null!==e.cache)return;i=c}if(e.type===b.Instance&&null!==e.implementationType){const o=function(t,e){return n(t)(e)}(t,e.implementationType);if(!0!==r.container.options.skipBaseClassChecks){const n=G(t,e.implementationType);if(o.length<n){const n=`The number of constructor arguments in the derived class ${j(e.implementationType)} must be >= than the number of constructor arguments of its base class.`;throw new Error(n)}}o.forEach((n=>{Y(t,!1,n.serviceIdentifier,r,i,n)}))}}))}function z(n,t){let e=[];const i=H(n);return i.hasKey(t)?e=i.get(t):null!==n.parent&&(e=z(n.parent,t)),e}function J(n,r,o,s,a,c,d,u=!1){const h=new O(r),l=function(n,r,o,s,a,c){const d=L(n,o,a,c),u=t(d);if(u.kind===e.unmanaged)throw new Error("Unexpected metadata when creating target");return new i(s,u,r)}(o,s,a,"",c,d);try{return Y(n,u,a,h,null,l),h}catch(n){throw q(n)&&k(h.plan.rootRequest),n}}function Q(n){return("object"==typeof n&&null!==n||"function"==typeof n)&&"function"==typeof n.then}function X(n){return!!Q(n)||Array.isArray(n)&&n.some(Q)}const Z=(n,t,e)=>{n.has(t.id)||n.set(t.id,e)},nn=(n,t)=>{n.cache=t,n.activated=!0,Q(t)&&tn(n,t)},tn=async(n,t)=>{try{const e=await t;n.cache=e}catch(t){throw n.cache=null,n.activated=!1,t}};var en;!function(n){n.DynamicValue="toDynamicValue",n.Factory="toFactory",n.Provider="toProvider"}(en||(en={}));const rn=n=>t=>(...e)=>{e.forEach((e=>{n.bind(e).toService(t)}))};function on(n,t,e){let i;if(t.length>0){const r=function(n,t){return n.reduce(((n,e)=>{const i=t(e);return e.target.type===w.ConstructorArgument?n.constructorInjections.push(i):(n.propertyRequests.push(e),n.propertyInjections.push(i)),n.isAsync||(n.isAsync=X(i)),n}),{constructorInjections:[],isAsync:!1,propertyInjections:[],propertyRequests:[]})}(t,e),o={...r,constr:n};i=r.isAsync?async function(n){const t=await an(n.constructorInjections),e=await an(n.propertyInjections);return sn({...n,constructorInjections:t,propertyInjections:e})}(o):sn(o)}else i=new n;return i}function sn(n){const t=new n.constr(...n.constructorInjections);return n.propertyRequests.forEach(((e,i)=>{const r=e.target.identifier,o=n.propertyInjections[i];e.target.isOptional()&&void 0===o||(t[r]=o)})),t}async function an(n){const t=[];for(const e of n)Array.isArray(e)?t.push(Promise.all(e)):t.push(e);return Promise.all(t)}function cn(n,t){const e=function(n,t){if(Reflect.hasMetadata(y,n)){const r=Reflect.getMetadata(y,n);try{return t[r.value]?.()}catch(t){if(t instanceof Error)throw new Error((e=n.name,i=t.message,`@postConstruct error in class ${e}: ${i}`))}}var e,i}(n,t);return Q(e)?e.then((()=>t)):t}function dn(n,t){n.scope!==v.Singleton&&function(n,t){const e=`Class cannot be instantiated in ${n.scope===v.Request?"request":"transient"} scope.`;if("function"==typeof n.onDeactivation)throw new Error(x(t.name,e));if(Reflect.hasMetadata(p,t))throw new Error(`@preDestroy error in class ${t.name}: ${e}`)}(n,t)}const un=n=>t=>{t.parentContext.setCurrentRequest(t);const e=t.bindings,i=t.childRequests,r=t.target&&t.target.isArray(),o=!(t.parentRequest&&t.parentRequest.target&&t.target&&t.parentRequest.target.matchesArray(t.target.serviceIdentifier));if(r&&o)return i.map((t=>un(n)(t)));{if(t.target.isOptional()&&0===e.length)return;const i=e[0];return yn(n,t,i)}},hn=(n,t)=>{const e=(n=>{switch(n.type){case b.Factory:return{factory:n.factory,factoryType:en.Factory};case b.Provider:return{factory:n.provider,factoryType:en.Provider};case b.DynamicValue:return{factory:n.dynamicValue,factoryType:en.DynamicValue};default:throw new Error(`Unexpected factory type ${n.type}`)}})(n);return((n,t)=>{try{return n()}catch(n){if(q(n))throw t();throw n}})((()=>e.factory.bind(n)(t)),(()=>{return new Error((n=e.factoryType,i=t.currentRequest.serviceIdentifier.toString(),`It looks like there is a circular dependency in one of the '${n}' bindings. Please investigate bindings with service identifier '${i}'.`));var n,i}))},ln=(n,t,e)=>{let i;const r=t.childRequests;switch((n=>{let t=null;switch(n.type){case b.ConstantValue:case b.Function:t=n.cache;break;case b.Constructor:case b.Instance:t=n.implementationType;break;case b.DynamicValue:t=n.dynamicValue;break;case b.Provider:t=n.provider;break;case b.Factory:t=n.factory}if(null===t){const t=P(n.serviceIdentifier);throw new Error(`Invalid binding type: ${t}`)}})(e),e.type){case b.ConstantValue:case b.Function:i=e.cache;break;case b.Constructor:i=e.implementationType;break;case b.Instance:i=function(n,t,e,i){dn(n,t);const r=on(t,e,i);return Q(r)?r.then((n=>cn(t,n))):cn(t,r)}(e,e.implementationType,r,un(n));break;default:i=hn(e,t.parentContext)}return i},gn=(n,t,e)=>{let i=((n,t)=>t.scope===v.Singleton&&t.activated?t.cache:t.scope===v.Request&&n.has(t.id)?n.get(t.id):null)(n,t);return null!==i||(i=e(),((n,t,e)=>{t.scope===v.Singleton&&nn(t,e),t.scope===v.Request&&Z(n,t,e)})(n,t,i)),i},yn=(n,t,e)=>gn(n,e,(()=>{let i=ln(n,t,e);return i=Q(i)?i.then((n=>pn(t,e,n))):pn(t,e,i),i}));function pn(n,t,e){let i=fn(n.parentContext,t,e);const r=wn(n.parentContext.container);let o,s=r.next();do{o=s.value;const t=n.parentContext,e=n.serviceIdentifier,a=bn(o,e);i=Q(i)?vn(a,t,i):_n(a,t,i),s=r.next()}while(!0!==s.done&&!H(o).hasKey(n.serviceIdentifier));return i}const fn=(n,t,e)=>{let i;return i="function"==typeof t.onActivation?t.onActivation(n,e):e,i},_n=(n,t,e)=>{let i=n.next();for(;!0!==i.done;){if(Q(e=i.value(t,e)))return vn(n,t,e);i=n.next()}return e},vn=async(n,t,e)=>{let i=await e,r=n.next();for(;!0!==r.done;)i=await r.value(t,i),r=n.next();return i},bn=(n,t)=>{const e=n._activations;return e.hasKey(t)?e.get(t).values():[].values()},wn=n=>{const t=[n];let e=n.parent;for(;null!==e;)t.push(e),e=e.parent;return{next:()=>{const n=t.pop();return void 0!==n?{done:!1,value:n}:{done:!0,value:void 0}}}};const mn=(n,t)=>{const e=n.parentRequest;return null!==e&&(!!t(e)||mn(e,t))},An=n=>t=>{const e=e=>null!==e&&null!==e.target&&e.target.matchesTag(n)(t);return e.metaData=new V(n,t),e},Sn=An(r),In=n=>t=>{let e=null;if(null!==t){if(e=t.bindings[0],"string"==typeof n)return e.serviceIdentifier===n;{const e=t.bindings[0].implementationType;return n===e}}return!1};class Tn{_binding;constructor(n){this._binding=n}when(n){return this._binding.constraint=n,new Dn(this._binding)}whenTargetNamed(n){return this._binding.constraint=Sn(n),new Dn(this._binding)}whenTargetIsDefault(){return this._binding.constraint=n=>{if(null===n)return!1;return null!==n.target&&!n.target.isNamed()&&!n.target.isTagged()},new Dn(this._binding)}whenTargetTagged(n,t){return this._binding.constraint=An(n)(t),new Dn(this._binding)}whenInjectedInto(n){return this._binding.constraint=t=>null!==t&&In(n)(t.parentRequest),new Dn(this._binding)}whenParentNamed(n){return this._binding.constraint=t=>null!==t&&Sn(n)(t.parentRequest),new Dn(this._binding)}whenParentTagged(n,t){return this._binding.constraint=e=>null!==e&&An(n)(t)(e.parentRequest),new Dn(this._binding)}whenAnyAncestorIs(n){return this._binding.constraint=t=>null!==t&&mn(t,In(n)),new Dn(this._binding)}whenNoAncestorIs(n){return this._binding.constraint=t=>null!==t&&!mn(t,In(n)),new Dn(this._binding)}whenAnyAncestorNamed(n){return this._binding.constraint=t=>null!==t&&mn(t,Sn(n)),new Dn(this._binding)}whenNoAncestorNamed(n){return this._binding.constraint=t=>null!==t&&!mn(t,Sn(n)),new Dn(this._binding)}whenAnyAncestorTagged(n,t){return this._binding.constraint=e=>null!==e&&mn(e,An(n)(t)),new Dn(this._binding)}whenNoAncestorTagged(n,t){return this._binding.constraint=e=>null!==e&&!mn(e,An(n)(t)),new Dn(this._binding)}whenAnyAncestorMatches(n){return this._binding.constraint=t=>null!==t&&mn(t,n),new Dn(this._binding)}whenNoAncestorMatches(n){return this._binding.constraint=t=>null!==t&&!mn(t,n),new Dn(this._binding)}}class Dn{_binding;constructor(n){this._binding=n}onActivation(n){return this._binding.onActivation=n,new Tn(this._binding)}onDeactivation(n){return this._binding.onDeactivation=n,new Tn(this._binding)}}class Nn{_bindingWhenSyntax;_bindingOnSyntax;_binding;constructor(n){this._binding=n,this._bindingWhenSyntax=new Tn(this._binding),this._bindingOnSyntax=new Dn(this._binding)}when(n){return this._bindingWhenSyntax.when(n)}whenTargetNamed(n){return this._bindingWhenSyntax.whenTargetNamed(n)}whenTargetIsDefault(){return this._bindingWhenSyntax.whenTargetIsDefault()}whenTargetTagged(n,t){return this._bindingWhenSyntax.whenTargetTagged(n,t)}whenInjectedInto(n){return this._bindingWhenSyntax.whenInjectedInto(n)}whenParentNamed(n){return this._bindingWhenSyntax.whenParentNamed(n)}whenParentTagged(n,t){return this._bindingWhenSyntax.whenParentTagged(n,t)}whenAnyAncestorIs(n){return this._bindingWhenSyntax.whenAnyAncestorIs(n)}whenNoAncestorIs(n){return this._bindingWhenSyntax.whenNoAncestorIs(n)}whenAnyAncestorNamed(n){return this._bindingWhenSyntax.whenAnyAncestorNamed(n)}whenAnyAncestorTagged(n,t){return this._bindingWhenSyntax.whenAnyAncestorTagged(n,t)}whenNoAncestorNamed(n){return this._bindingWhenSyntax.whenNoAncestorNamed(n)}whenNoAncestorTagged(n,t){return this._bindingWhenSyntax.whenNoAncestorTagged(n,t)}whenAnyAncestorMatches(n){return this._bindingWhenSyntax.whenAnyAncestorMatches(n)}whenNoAncestorMatches(n){return this._bindingWhenSyntax.whenNoAncestorMatches(n)}onActivation(n){return this._bindingOnSyntax.onActivation(n)}onDeactivation(n){return this._bindingOnSyntax.onDeactivation(n)}}class Cn{_binding;constructor(n){this._binding=n}inRequestScope(){return this._binding.scope=v.Request,new Nn(this._binding)}inSingletonScope(){return this._binding.scope=v.Singleton,new Nn(this._binding)}inTransientScope(){return this._binding.scope=v.Transient,new Nn(this._binding)}}class Rn{_bindingInSyntax;_bindingWhenSyntax;_bindingOnSyntax;_binding;constructor(n){this._binding=n,this._bindingWhenSyntax=new Tn(this._binding),this._bindingOnSyntax=new Dn(this._binding),this._bindingInSyntax=new Cn(n)}inRequestScope(){return this._bindingInSyntax.inRequestScope()}inSingletonScope(){return this._bindingInSyntax.inSingletonScope()}inTransientScope(){return this._bindingInSyntax.inTransientScope()}when(n){return this._bindingWhenSyntax.when(n)}whenTargetNamed(n){return this._bindingWhenSyntax.whenTargetNamed(n)}whenTargetIsDefault(){return this._bindingWhenSyntax.whenTargetIsDefault()}whenTargetTagged(n,t){return this._bindingWhenSyntax.whenTargetTagged(n,t)}whenInjectedInto(n){return this._bindingWhenSyntax.whenInjectedInto(n)}whenParentNamed(n){return this._bindingWhenSyntax.whenParentNamed(n)}whenParentTagged(n,t){return this._bindingWhenSyntax.whenParentTagged(n,t)}whenAnyAncestorIs(n){return this._bindingWhenSyntax.whenAnyAncestorIs(n)}whenNoAncestorIs(n){return this._bindingWhenSyntax.whenNoAncestorIs(n)}whenAnyAncestorNamed(n){return this._bindingWhenSyntax.whenAnyAncestorNamed(n)}whenAnyAncestorTagged(n,t){return this._bindingWhenSyntax.whenAnyAncestorTagged(n,t)}whenNoAncestorNamed(n){return this._bindingWhenSyntax.whenNoAncestorNamed(n)}whenNoAncestorTagged(n,t){return this._bindingWhenSyntax.whenNoAncestorTagged(n,t)}whenAnyAncestorMatches(n){return this._bindingWhenSyntax.whenAnyAncestorMatches(n)}whenNoAncestorMatches(n){return this._bindingWhenSyntax.whenNoAncestorMatches(n)}onActivation(n){return this._bindingOnSyntax.onActivation(n)}onDeactivation(n){return this._bindingOnSyntax.onDeactivation(n)}}class xn{_binding;constructor(n){this._binding=n}to(n){return this._binding.type=b.Instance,this._binding.implementationType=n,new Rn(this._binding)}toSelf(){if("function"!=typeof this._binding.serviceIdentifier)throw new Error("The toSelf function can only be applied when a constructor is used as service identifier");const n=this._binding.serviceIdentifier;return this.to(n)}toConstantValue(n){return this._binding.type=b.ConstantValue,this._binding.cache=n,this._binding.dynamicValue=null,this._binding.implementationType=null,this._binding.scope=v.Singleton,new Nn(this._binding)}toDynamicValue(n){return this._binding.type=b.DynamicValue,this._binding.cache=null,this._binding.dynamicValue=n,this._binding.implementationType=null,new Rn(this._binding)}toConstructor(n){return this._binding.type=b.Constructor,this._binding.implementationType=n,this._binding.scope=v.Singleton,new Nn(this._binding)}toFactory(n){return this._binding.type=b.Factory,this._binding.factory=n,this._binding.scope=v.Singleton,new Nn(this._binding)}toFunction(n){if("function"!=typeof n)throw new Error("Value provided to function binding must be a function!");const t=this.toConstantValue(n);return this._binding.type=b.Function,this._binding.scope=v.Singleton,t}toAutoFactory(n){return this._binding.type=b.Factory,this._binding.factory=t=>()=>t.container.get(n),this._binding.scope=v.Singleton,new Nn(this._binding)}toAutoNamedFactory(n){return this._binding.type=b.Factory,this._binding.factory=t=>e=>t.container.getNamed(n,e),new Nn(this._binding)}toProvider(n){return this._binding.type=b.Provider,this._binding.provider=n,this._binding.scope=v.Singleton,new Nn(this._binding)}toService(n){this._binding.type=b.DynamicValue,Object.defineProperty(this._binding,"cache",{configurable:!0,enumerable:!0,get:()=>null,set(n){}}),this._binding.dynamicValue=t=>{try{return t.container.get(n)}catch(e){return t.container.getAsync(n)}},this._binding.implementationType=null}}class En{bindings;activations;deactivations;middleware;moduleActivationStore;static of(n,t,e,i,r){const o=new En;return o.bindings=n,o.middleware=t,o.deactivations=i,o.activations=e,o.moduleActivationStore=r,o}}class Mn{_map;constructor(){this._map=new Map}getMap(){return this._map}add(n,t){if(this._checkNonNulish(n),null==t)throw new Error(T);const e=this._map.get(n);void 0!==e?e.push(t):this._map.set(n,[t])}get(n){this._checkNonNulish(n);const t=this._map.get(n);if(void 0!==t)return t;throw new Error(D)}remove(n){if(this._checkNonNulish(n),!this._map.delete(n))throw new Error(D)}removeIntersection(n){this.traverse(((t,e)=>{const i=n.hasKey(t)?n.get(t):void 0;if(void 0!==i){const n=e.filter((n=>!i.some((t=>n===t))));this._setValue(t,n)}}))}removeByCondition(n){const t=[];return this._map.forEach(((e,i)=>{const r=[];for(const i of e){n(i)?t.push(i):r.push(i)}this._setValue(i,r)})),t}hasKey(n){return this._checkNonNulish(n),this._map.has(n)}clone(){const n=new Mn;return this._map.forEach(((t,e)=>{t.forEach((t=>{var i;n.add(e,"object"==typeof(i=t)&&null!==i&&"clone"in i&&"function"==typeof i.clone?t.clone():t)}))})),n}traverse(n){this._map.forEach(((t,e)=>{n(e,t)}))}_checkNonNulish(n){if(null==n)throw new Error(T)}_setValue(n,t){t.length>0?this._map.set(n,t):this._map.delete(n)}}class qn{_map=new Map;remove(n){const t=this._map.get(n);return void 0===t?this._getEmptyHandlersStore():(this._map.delete(n),t)}addDeactivation(n,t,e){this._getModuleActivationHandlers(n).onDeactivations.add(t,e)}addActivation(n,t,e){this._getModuleActivationHandlers(n).onActivations.add(t,e)}clone(){const n=new qn;return this._map.forEach(((t,e)=>{n._map.set(e,{onActivations:t.onActivations.clone(),onDeactivations:t.onDeactivations.clone()})})),n}_getModuleActivationHandlers(n){let t=this._map.get(n);return void 0===t&&(t=this._getEmptyHandlersStore(),this._map.set(n,t)),t}_getEmptyHandlersStore(){return{onActivations:new Mn,onDeactivations:new Mn}}}class Pn{id;parent;options;_middleware;_bindingDictionary;_activations;_deactivations;_snapshots;_metadataReader;_moduleActivationStore;constructor(n){const t=n||{};if("object"!=typeof t)throw new Error("Invalid Container constructor argument. Container options must be an object.");if(void 0===t.defaultScope)t.defaultScope=v.Transient;else if(t.defaultScope!==v.Singleton&&t.defaultScope!==v.Transient&&t.defaultScope!==v.Request)throw new Error('Invalid Container option. Default scope must be a string ("singleton" or "transient").');if(void 0===t.autoBindInjectable)t.autoBindInjectable=!1;else if("boolean"!=typeof t.autoBindInjectable)throw new Error("Invalid Container option. Auto bind injectable must be a boolean");if(void 0===t.skipBaseClassChecks)t.skipBaseClassChecks=!1;else if("boolean"!=typeof t.skipBaseClassChecks)throw new Error("Invalid Container option. Skip base check must be a boolean");this.options={autoBindInjectable:t.autoBindInjectable,defaultScope:t.defaultScope,skipBaseClassChecks:t.skipBaseClassChecks},this.id=A(),this._bindingDictionary=new Mn,this._snapshots=[],this._middleware=null,this._activations=new Mn,this._deactivations=new Mn,this.parent=null,this._metadataReader=new E,this._moduleActivationStore=new qn}static merge(n,t,...e){const i=new Pn,r=[n,t,...e].map((n=>H(n))),o=H(i);return r.forEach((n=>{var t;t=o,n.traverse(((n,e)=>{e.forEach((n=>{t.add(n.serviceIdentifier,n.clone())}))}))})),i}load(...n){const t=this._getContainerModuleHelpersFactory();for(const e of n){const n=t(e.id);e.registry(n.bindFunction,n.unbindFunction,n.isboundFunction,n.rebindFunction,n.unbindAsyncFunction,n.onActivationFunction,n.onDeactivationFunction)}}async loadAsync(...n){const t=this._getContainerModuleHelpersFactory();for(const e of n){const n=t(e.id);await e.registry(n.bindFunction,n.unbindFunction,n.isboundFunction,n.rebindFunction,n.unbindAsyncFunction,n.onActivationFunction,n.onDeactivationFunction)}}unload(...n){n.forEach((n=>{const t=this._removeModuleBindings(n.id);this._deactivateSingletons(t),this._removeModuleHandlers(n.id)}))}async unloadAsync(...n){for(const t of n){const n=this._removeModuleBindings(t.id);await this._deactivateSingletonsAsync(n),this._removeModuleHandlers(t.id)}}bind(n){return this._bind(this._buildBinding(n))}rebind(n){return this.unbind(n),this.bind(n)}async rebindAsync(n){return await this.unbindAsync(n),this.bind(n)}unbind(n){if(this._bindingDictionary.hasKey(n)){const t=this._bindingDictionary.get(n);this._deactivateSingletons(t)}this._removeServiceFromDictionary(n)}async unbindAsync(n){if(this._bindingDictionary.hasKey(n)){const t=this._bindingDictionary.get(n);await this._deactivateSingletonsAsync(t)}this._removeServiceFromDictionary(n)}unbindAll(){this._bindingDictionary.traverse(((n,t)=>{this._deactivateSingletons(t)})),this._bindingDictionary=new Mn}async unbindAllAsync(){const n=[];this._bindingDictionary.traverse(((t,e)=>{n.push(this._deactivateSingletonsAsync(e))})),await Promise.all(n),this._bindingDictionary=new Mn}onActivation(n,t){this._activations.add(n,t)}onDeactivation(n,t){this._deactivations.add(n,t)}isBound(n){let t=this._bindingDictionary.hasKey(n);return!t&&this.parent&&(t=this.parent.isBound(n)),t}isCurrentBound(n){return this._bindingDictionary.hasKey(n)}isBoundNamed(n,t){return this.isBoundTagged(n,r,t)}isBoundTagged(n,r,o){let s=!1;if(this._bindingDictionary.hasKey(n)){const a=this._bindingDictionary.get(n),c=function(n,r,o,s){const a=L(!1,r,o,s),c=t(a);if(c.kind===e.unmanaged)throw new Error("Unexpected metadata when creating target");const d=new i("",c,"Variable"),u=new O(n);return new K(r,u,null,[],d)}(this,n,r,o);s=a.some((n=>n.constraint(c)))}return!s&&this.parent&&(s=this.parent.isBoundTagged(n,r,o)),s}snapshot(){this._snapshots.push(En.of(this._bindingDictionary.clone(),this._middleware,this._activations.clone(),this._deactivations.clone(),this._moduleActivationStore.clone()))}restore(){const n=this._snapshots.pop();if(void 0===n)throw new Error("No snapshot available to restore.");this._bindingDictionary=n.bindings,this._activations=n.activations,this._deactivations=n.deactivations,this._middleware=n.middleware,this._moduleActivationStore=n.moduleActivationStore}createChild(n){const t=new Pn(n||this.options);return t.parent=this,t}applyMiddleware(...n){const t=this._middleware?this._middleware:this._planAndResolve();this._middleware=n.reduce(((n,t)=>t(n)),t)}applyCustomMetadataReader(n){this._metadataReader=n}get(n){const t=this._getNotAllArgs(n,!1);return this._getButThrowIfAsync(t)}async getAsync(n){const t=this._getNotAllArgs(n,!1);return this._get(t)}getTagged(n,t,e){const i=this._getNotAllArgs(n,!1,t,e);return this._getButThrowIfAsync(i)}async getTaggedAsync(n,t,e){const i=this._getNotAllArgs(n,!1,t,e);return this._get(i)}getNamed(n,t){return this.getTagged(n,r,t)}async getNamedAsync(n,t){return this.getTaggedAsync(n,r,t)}getAll(n){const t=this._getAllArgs(n);return this._getButThrowIfAsync(t)}async getAllAsync(n){const t=this._getAllArgs(n);return this._getAll(t)}getAllTagged(n,t,e){const i=this._getNotAllArgs(n,!0,t,e);return this._getButThrowIfAsync(i)}async getAllTaggedAsync(n,t,e){const i=this._getNotAllArgs(n,!0,t,e);return this._getAll(i)}getAllNamed(n,t){return this.getAllTagged(n,r,t)}async getAllNamedAsync(n,t){return this.getAllTaggedAsync(n,r,t)}resolve(n){const t=this.isBound(n);t||this.bind(n).toSelf();const e=this.get(n);return t||this.unbind(n),e}_preDestroy(n,t){if(void 0!==n&&Reflect.hasMetadata(p,n)){const e=Reflect.getMetadata(p,n);return t[e.value]?.()}}_removeModuleHandlers(n){const t=this._moduleActivationStore.remove(n);this._activations.removeIntersection(t.onActivations),this._deactivations.removeIntersection(t.onDeactivations)}_removeModuleBindings(n){return this._bindingDictionary.removeByCondition((t=>t.moduleId===n))}_deactivate(n,t){const e=null==t?void 0:Object.getPrototypeOf(t).constructor;try{if(this._deactivations.hasKey(n.serviceIdentifier)){const i=this._deactivateContainer(t,this._deactivations.get(n.serviceIdentifier).values());if(Q(i))return this._handleDeactivationError(i.then((async()=>this._propagateContainerDeactivationThenBindingAndPreDestroyAsync(n,t,e))),n.serviceIdentifier)}const i=this._propagateContainerDeactivationThenBindingAndPreDestroy(n,t,e);if(Q(i))return this._handleDeactivationError(i,n.serviceIdentifier)}catch(t){if(t instanceof Error)throw new Error(x(P(n.serviceIdentifier),t.message))}}async _handleDeactivationError(n,t){try{await n}catch(n){if(n instanceof Error)throw new Error(x(P(t),n.message))}}_deactivateContainer(n,t){let e=t.next();for(;"function"==typeof e.value;){const i=e.value(n);if(Q(i))return i.then((async()=>this._deactivateContainerAsync(n,t)));e=t.next()}}async _deactivateContainerAsync(n,t){let e=t.next();for(;"function"==typeof e.value;)await e.value(n),e=t.next()}_getContainerModuleHelpersFactory(){const n=n=>t=>{const e=this._buildBinding(t);return e.moduleId=n,this._bind(e)},t=()=>n=>{this.unbind(n)},e=()=>async n=>this.unbindAsync(n),i=()=>n=>this.isBound(n),r=t=>{const e=n(t);return n=>(this.unbind(n),e(n))},o=n=>(t,e)=>{this._moduleActivationStore.addActivation(n,t,e),this.onActivation(t,e)},s=n=>(t,e)=>{this._moduleActivationStore.addDeactivation(n,t,e),this.onDeactivation(t,e)};return a=>({bindFunction:n(a),isboundFunction:i(),onActivationFunction:o(a),onDeactivationFunction:s(a),rebindFunction:r(a),unbindAsyncFunction:e(),unbindFunction:t()})}_bind(n){return this._bindingDictionary.add(n.serviceIdentifier,n),new xn(n)}_buildBinding(n){const t=this.options.defaultScope||v.Transient;return new S(n,t)}async _getAll(n){return Promise.all(this._get(n))}_get(n){const t={...n,contextInterceptor:n=>n,targetType:w.Variable};if(this._middleware){const n=this._middleware(t);if(null==n)throw new Error("Invalid return type in middleware. Middleware must return!");return n}return this._planAndResolve()(t)}_getButThrowIfAsync(n){const t=this._get(n);if(X(t))throw new Error(`You are attempting to construct ${function(n){return"function"==typeof n?`[function/class ${n.name||"<anonymous>"}]`:"symbol"==typeof n?n.toString():`'${n}'`}(n.serviceIdentifier)} in a synchronous way but it has asynchronous dependencies.`);return t}_getAllArgs(n){return{avoidConstraints:!0,isMultiInject:!0,serviceIdentifier:n}}_getNotAllArgs(n,t,e,i){return{avoidConstraints:!1,isMultiInject:t,key:e,serviceIdentifier:n,value:i}}_planAndResolve(){return n=>{let t=J(this._metadataReader,this,n.isMultiInject,n.targetType,n.serviceIdentifier,n.key,n.value,n.avoidConstraints);t=n.contextInterceptor(t);const e=function(n){return un(n.plan.rootRequest.requestScope)(n.plan.rootRequest)}(t);return e}}_deactivateIfSingleton(n){if(n.activated)return Q(n.cache)?n.cache.then((t=>this._deactivate(n,t))):this._deactivate(n,n.cache)}_deactivateSingletons(n){for(const t of n){if(Q(this._deactivateIfSingleton(t)))throw new Error("Attempting to unbind dependency with asynchronous destruction (@preDestroy or onDeactivation)")}}async _deactivateSingletonsAsync(n){await Promise.all(n.map((async n=>this._deactivateIfSingleton(n))))}_propagateContainerDeactivationThenBindingAndPreDestroy(n,t,e){return this.parent?this._deactivate.bind(this.parent)(n,t):this._bindingDeactivationAndPreDestroy(n,t,e)}async _propagateContainerDeactivationThenBindingAndPreDestroyAsync(n,t,e){this.parent?await this._deactivate.bind(this.parent)(n,t):await this._bindingDeactivationAndPreDestroyAsync(n,t,e)}_removeServiceFromDictionary(n){try{this._bindingDictionary.remove(n)}catch(t){throw new Error(`Could not unbind serviceIdentifier: ${P(n)}`)}}_bindingDeactivationAndPreDestroy(n,t,e){if("function"==typeof n.onDeactivation){const i=n.onDeactivation(t);if(Q(i))return i.then((()=>this._preDestroy(e,t)))}return this._preDestroy(e,t)}async _bindingDeactivationAndPreDestroyAsync(n,t,e){"function"==typeof n.onDeactivation&&await n.onDeactivation(t),await this._preDestroy(e,t)}}class Bn{id;registry;constructor(n){this.id=A(),this.registry=n}}class Fn{id;registry;constructor(n){this.id=A(),this.registry=n}}function kn(n,t,e,i){!function(n){if(void 0!==n)throw new Error(R)}(t),$n(u,n,e.toString(),i)}function jn(n){let t=[];if(Array.isArray(n)){t=n;const e=function(n){const t=new Set;for(const e of n){if(t.has(e))return e;t.add(e)}}(t.map((n=>n.key)));if(void 0!==e)throw new Error(`${I} ${e.toString()}`)}else t=[n];return t}function $n(n,t,e,i){const r=jn(i);let o={};Reflect.hasOwnMetadata(n,t)&&(o=Reflect.getMetadata(n,t));let s=o[e];if(void 0===s)s=[];else for(const n of s)if(r.some((t=>t.key===n.key)))throw new Error(`${I} ${n.key.toString()}`);s.push(...r),o[e]=s,Reflect.defineMetadata(n,o,t)}function On(n){return(t,e,i)=>{"number"==typeof i?kn(t,e,i,n):function(n,t,e){if(void 0!==n.prototype)throw new Error(R);$n(h,n.constructor,t,e)}(t,e,n)}}function Vn(n,t){Reflect.decorate(n,t)}function Wn(n,t){return function(e,i){t(e,i,n)}}function Gn(n,t,e){"number"==typeof e?Vn([Wn(e,n)],t):"string"==typeof e?Reflect.decorate([n],t,e):Vn([n],t)}function Kn(){return function(n){if(Reflect.hasOwnMetadata(l,n))throw new Error("Cannot apply @injectable decorator multiple times.");const t=Reflect.getMetadata(g,n)||[];return Reflect.defineMetadata(l,t,n),n}}function Hn(n,t){return On(new V(n,t))}function Un(n){return On(new V(r,n))}function Ln(n){return t=>(e,i,r)=>{if(void 0===t){const n="function"==typeof e?e.name:e.constructor.name;throw new Error(`@inject called with undefined this could mean that the class ${n} has a circular dependency problem. You can use a LazyServiceIdentifer to overcome this limitation.`)}On(new V(n,t))(e,i,r)}}const Yn=Ln(c);function zn(){return On(new V(a,!0))}function Jn(){return function(n,t,e){kn(n,t,e,new V(s,!0))}}const Qn=Ln(d);function Xn(n){return function(t,e,i){kn(t,e,i,new V(o,n))}}function Zn(n,t){return()=>(e,i)=>{const r=new V(n,i);if(Reflect.hasOwnMetadata(n,e.constructor))throw new Error(t);Reflect.defineMetadata(n,r,e.constructor)}}const nt=Zn(y,"Cannot apply @postConstruct decorator multiple times in the same class"),tt=Zn(p,"Cannot apply @preDestroy decorator multiple times in the same class"),et=_;export{Fn as AsyncContainerModule,v as BindingScopeEnum,b as BindingTypeEnum,Pn as Container,Bn as ContainerModule,et as METADATA_KEY,E as MetadataReader,w as TargetTypeEnum,On as createTaggedDecorator,Gn as decorate,P as getServiceIdentifierAsString,A as id,Yn as inject,Kn as injectable,rn as multiBindToService,Qn as multiInject,Un as named,Sn as namedConstraint,zn as optional,nt as postConstruct,tt as preDestroy,Hn as tagged,An as taggedConstraint,Xn as targetName,mn as traverseAncerstors,In as typeConstraint,Jn as unmanaged};
|
|
2
|
+
//# sourceMappingURL=index.js.map
|