inversify 6.2.0 → 7.0.0-alpha.0

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.
Files changed (219) hide show
  1. package/CHANGELOG.md +65 -1
  2. package/README.md +3 -0
  3. package/lib/cjs/index.d.ts +3 -24
  4. package/lib/cjs/index.d.ts.map +1 -1
  5. package/lib/cjs/index.js +17 -82
  6. package/lib/cjs/index.js.map +1 -1
  7. package/lib/esm/index.d.ts +3 -500
  8. package/lib/esm/index.d.ts.map +1 -1
  9. package/lib/esm/index.js +1 -1
  10. package/lib/esm/index.js.map +1 -1
  11. package/package.json +14 -13
  12. package/lib/cjs/annotation/decorator_utils.d.ts +0 -17
  13. package/lib/cjs/annotation/decorator_utils.d.ts.map +0 -1
  14. package/lib/cjs/annotation/decorator_utils.js +0 -132
  15. package/lib/cjs/annotation/decorator_utils.js.map +0 -1
  16. package/lib/cjs/annotation/inject.d.ts +0 -6
  17. package/lib/cjs/annotation/inject.d.ts.map +0 -1
  18. package/lib/cjs/annotation/inject.js +0 -41
  19. package/lib/cjs/annotation/inject.js.map +0 -1
  20. package/lib/cjs/annotation/inject_base.d.ts +0 -5
  21. package/lib/cjs/annotation/inject_base.d.ts.map +0 -1
  22. package/lib/cjs/annotation/inject_base.js +0 -19
  23. package/lib/cjs/annotation/inject_base.js.map +0 -1
  24. package/lib/cjs/annotation/injectable.d.ts +0 -3
  25. package/lib/cjs/annotation/injectable.d.ts.map +0 -1
  26. package/lib/cjs/annotation/injectable.js +0 -50
  27. package/lib/cjs/annotation/injectable.js.map +0 -1
  28. package/lib/cjs/annotation/multi_inject.d.ts +0 -6
  29. package/lib/cjs/annotation/multi_inject.d.ts.map +0 -1
  30. package/lib/cjs/annotation/multi_inject.js +0 -41
  31. package/lib/cjs/annotation/multi_inject.js.map +0 -1
  32. package/lib/cjs/annotation/named.d.ts +0 -3
  33. package/lib/cjs/annotation/named.d.ts.map +0 -1
  34. package/lib/cjs/annotation/named.js +0 -44
  35. package/lib/cjs/annotation/named.js.map +0 -1
  36. package/lib/cjs/annotation/optional.d.ts +0 -3
  37. package/lib/cjs/annotation/optional.d.ts.map +0 -1
  38. package/lib/cjs/annotation/optional.js +0 -43
  39. package/lib/cjs/annotation/optional.js.map +0 -1
  40. package/lib/cjs/annotation/post_construct.d.ts +0 -5
  41. package/lib/cjs/annotation/post_construct.d.ts.map +0 -1
  42. package/lib/cjs/annotation/post_construct.js +0 -42
  43. package/lib/cjs/annotation/post_construct.js.map +0 -1
  44. package/lib/cjs/annotation/pre_destroy.d.ts +0 -5
  45. package/lib/cjs/annotation/pre_destroy.d.ts.map +0 -1
  46. package/lib/cjs/annotation/pre_destroy.js +0 -42
  47. package/lib/cjs/annotation/pre_destroy.js.map +0 -1
  48. package/lib/cjs/annotation/property_event_decorator.d.ts +0 -5
  49. package/lib/cjs/annotation/property_event_decorator.d.ts.map +0 -1
  50. package/lib/cjs/annotation/property_event_decorator.js +0 -16
  51. package/lib/cjs/annotation/property_event_decorator.js.map +0 -1
  52. package/lib/cjs/annotation/tagged.d.ts +0 -3
  53. package/lib/cjs/annotation/tagged.d.ts.map +0 -1
  54. package/lib/cjs/annotation/tagged.js +0 -10
  55. package/lib/cjs/annotation/tagged.js.map +0 -1
  56. package/lib/cjs/annotation/target_name.d.ts +0 -4
  57. package/lib/cjs/annotation/target_name.d.ts.map +0 -1
  58. package/lib/cjs/annotation/target_name.js +0 -46
  59. package/lib/cjs/annotation/target_name.js.map +0 -1
  60. package/lib/cjs/annotation/unmanaged.d.ts +0 -4
  61. package/lib/cjs/annotation/unmanaged.d.ts.map +0 -1
  62. package/lib/cjs/annotation/unmanaged.js +0 -46
  63. package/lib/cjs/annotation/unmanaged.js.map +0 -1
  64. package/lib/cjs/bindings/binding.d.ts +0 -21
  65. package/lib/cjs/bindings/binding.d.ts.map +0 -1
  66. package/lib/cjs/bindings/binding.js +0 -68
  67. package/lib/cjs/bindings/binding.js.map +0 -1
  68. package/lib/cjs/bindings/binding_count.d.ts +0 -6
  69. package/lib/cjs/bindings/binding_count.d.ts.map +0 -1
  70. package/lib/cjs/bindings/binding_count.js +0 -10
  71. package/lib/cjs/bindings/binding_count.js.map +0 -1
  72. package/lib/cjs/constants/error_msgs.d.ts +0 -31
  73. package/lib/cjs/constants/error_msgs.d.ts.map +0 -1
  74. package/lib/cjs/constants/error_msgs.js +0 -61
  75. package/lib/cjs/constants/error_msgs.js.map +0 -1
  76. package/lib/cjs/constants/literal_types.d.ts +0 -6
  77. package/lib/cjs/constants/literal_types.d.ts.map +0 -1
  78. package/lib/cjs/constants/literal_types.js +0 -30
  79. package/lib/cjs/constants/literal_types.js.map +0 -1
  80. package/lib/cjs/constants/metadata_keys.d.ts +0 -14
  81. package/lib/cjs/constants/metadata_keys.d.ts.map +0 -1
  82. package/lib/cjs/constants/metadata_keys.js +0 -39
  83. package/lib/cjs/constants/metadata_keys.js.map +0 -1
  84. package/lib/cjs/container/container.d.ts +0 -89
  85. package/lib/cjs/container/container.d.ts.map +0 -1
  86. package/lib/cjs/container/container.js +0 -622
  87. package/lib/cjs/container/container.js.map +0 -1
  88. package/lib/cjs/container/container_module.d.ts +0 -12
  89. package/lib/cjs/container/container_module.d.ts.map +0 -1
  90. package/lib/cjs/container/container_module.js +0 -23
  91. package/lib/cjs/container/container_module.js.map +0 -1
  92. package/lib/cjs/container/container_snapshot.d.ts +0 -11
  93. package/lib/cjs/container/container_snapshot.d.ts.map +0 -1
  94. package/lib/cjs/container/container_snapshot.js +0 -21
  95. package/lib/cjs/container/container_snapshot.js.map +0 -1
  96. package/lib/cjs/container/lookup.d.ts +0 -18
  97. package/lib/cjs/container/lookup.d.ts.map +0 -1
  98. package/lib/cjs/container/lookup.js +0 -144
  99. package/lib/cjs/container/lookup.js.map +0 -1
  100. package/lib/cjs/container/module_activation_store.d.ts +0 -11
  101. package/lib/cjs/container/module_activation_store.d.ts.map +0 -1
  102. package/lib/cjs/container/module_activation_store.js +0 -48
  103. package/lib/cjs/container/module_activation_store.js.map +0 -1
  104. package/lib/cjs/interfaces/interfaces.d.ts +0 -286
  105. package/lib/cjs/interfaces/interfaces.d.ts.map +0 -1
  106. package/lib/cjs/interfaces/interfaces.js +0 -3
  107. package/lib/cjs/interfaces/interfaces.js.map +0 -1
  108. package/lib/cjs/interfaces/interfaces_common_exports.d.ts +0 -4
  109. package/lib/cjs/interfaces/interfaces_common_exports.d.ts.map +0 -1
  110. package/lib/cjs/interfaces/interfaces_common_exports.js +0 -3
  111. package/lib/cjs/interfaces/interfaces_common_exports.js.map +0 -1
  112. package/lib/cjs/planning/context.d.ts +0 -12
  113. package/lib/cjs/planning/context.d.ts.map +0 -1
  114. package/lib/cjs/planning/context.js +0 -22
  115. package/lib/cjs/planning/context.js.map +0 -1
  116. package/lib/cjs/planning/metadata.d.ts +0 -9
  117. package/lib/cjs/planning/metadata.d.ts.map +0 -1
  118. package/lib/cjs/planning/metadata.js +0 -55
  119. package/lib/cjs/planning/metadata.js.map +0 -1
  120. package/lib/cjs/planning/metadata_reader.d.ts +0 -7
  121. package/lib/cjs/planning/metadata_reader.d.ts.map +0 -1
  122. package/lib/cjs/planning/metadata_reader.js +0 -56
  123. package/lib/cjs/planning/metadata_reader.js.map +0 -1
  124. package/lib/cjs/planning/plan.d.ts +0 -8
  125. package/lib/cjs/planning/plan.d.ts.map +0 -1
  126. package/lib/cjs/planning/plan.js +0 -13
  127. package/lib/cjs/planning/plan.js.map +0 -1
  128. package/lib/cjs/planning/planner.d.ts +0 -13
  129. package/lib/cjs/planning/planner.d.ts.map +0 -1
  130. package/lib/cjs/planning/planner.js +0 -217
  131. package/lib/cjs/planning/planner.js.map +0 -1
  132. package/lib/cjs/planning/queryable_string.d.ts +0 -11
  133. package/lib/cjs/planning/queryable_string.d.ts.map +0 -1
  134. package/lib/cjs/planning/queryable_string.js +0 -33
  135. package/lib/cjs/planning/queryable_string.js.map +0 -1
  136. package/lib/cjs/planning/reflection_utils.d.ts +0 -6
  137. package/lib/cjs/planning/reflection_utils.d.ts.map +0 -1
  138. package/lib/cjs/planning/reflection_utils.js +0 -67
  139. package/lib/cjs/planning/reflection_utils.js.map +0 -1
  140. package/lib/cjs/planning/request.d.ts +0 -15
  141. package/lib/cjs/planning/request.d.ts.map +0 -1
  142. package/lib/cjs/planning/request.js +0 -34
  143. package/lib/cjs/planning/request.js.map +0 -1
  144. package/lib/cjs/resolution/instantiation.d.ts +0 -4
  145. package/lib/cjs/resolution/instantiation.d.ts.map +0 -1
  146. package/lib/cjs/resolution/instantiation.js +0 -161
  147. package/lib/cjs/resolution/instantiation.js.map +0 -1
  148. package/lib/cjs/resolution/resolver.d.ts +0 -4
  149. package/lib/cjs/resolution/resolver.d.ts.map +0 -1
  150. package/lib/cjs/resolution/resolver.js +0 -212
  151. package/lib/cjs/resolution/resolver.js.map +0 -1
  152. package/lib/cjs/scope/scope.d.ts +0 -4
  153. package/lib/cjs/scope/scope.d.ts.map +0 -1
  154. package/lib/cjs/scope/scope.js +0 -55
  155. package/lib/cjs/scope/scope.js.map +0 -1
  156. package/lib/cjs/syntax/binding_in_syntax.d.ts +0 -10
  157. package/lib/cjs/syntax/binding_in_syntax.d.ts.map +0 -1
  158. package/lib/cjs/syntax/binding_in_syntax.js +0 -25
  159. package/lib/cjs/syntax/binding_in_syntax.js.map +0 -1
  160. package/lib/cjs/syntax/binding_in_when_on_syntax.d.ts +0 -30
  161. package/lib/cjs/syntax/binding_in_when_on_syntax.d.ts.map +0 -1
  162. package/lib/cjs/syntax/binding_in_when_on_syntax.js +0 -80
  163. package/lib/cjs/syntax/binding_in_when_on_syntax.js.map +0 -1
  164. package/lib/cjs/syntax/binding_on_syntax.d.ts +0 -9
  165. package/lib/cjs/syntax/binding_on_syntax.d.ts.map +0 -1
  166. package/lib/cjs/syntax/binding_on_syntax.js +0 -20
  167. package/lib/cjs/syntax/binding_on_syntax.js.map +0 -1
  168. package/lib/cjs/syntax/binding_to_syntax.d.ts +0 -19
  169. package/lib/cjs/syntax/binding_to_syntax.d.ts.map +0 -1
  170. package/lib/cjs/syntax/binding_to_syntax.js +0 -145
  171. package/lib/cjs/syntax/binding_to_syntax.js.map +0 -1
  172. package/lib/cjs/syntax/binding_when_on_syntax.d.ts +0 -26
  173. package/lib/cjs/syntax/binding_when_on_syntax.d.ts.map +0 -1
  174. package/lib/cjs/syntax/binding_when_on_syntax.js +0 -68
  175. package/lib/cjs/syntax/binding_when_on_syntax.js.map +0 -1
  176. package/lib/cjs/syntax/binding_when_syntax.d.ts +0 -22
  177. package/lib/cjs/syntax/binding_when_syntax.d.ts.map +0 -1
  178. package/lib/cjs/syntax/binding_when_syntax.js +0 -88
  179. package/lib/cjs/syntax/binding_when_syntax.js.map +0 -1
  180. package/lib/cjs/syntax/constraint_helpers.d.ts +0 -7
  181. package/lib/cjs/syntax/constraint_helpers.d.ts.map +0 -1
  182. package/lib/cjs/syntax/constraint_helpers.js +0 -78
  183. package/lib/cjs/syntax/constraint_helpers.js.map +0 -1
  184. package/lib/cjs/utils/async.d.ts +0 -4
  185. package/lib/cjs/utils/async.d.ts.map +0 -1
  186. package/lib/cjs/utils/async.js +0 -16
  187. package/lib/cjs/utils/async.js.map +0 -1
  188. package/lib/cjs/utils/binding_utils.d.ts +0 -5
  189. package/lib/cjs/utils/binding_utils.d.ts.map +0 -1
  190. package/lib/cjs/utils/binding_utils.js +0 -93
  191. package/lib/cjs/utils/binding_utils.js.map +0 -1
  192. package/lib/cjs/utils/clonable.d.ts +0 -4
  193. package/lib/cjs/utils/clonable.d.ts.map +0 -1
  194. package/lib/cjs/utils/clonable.js +0 -10
  195. package/lib/cjs/utils/clonable.js.map +0 -1
  196. package/lib/cjs/utils/exceptions.d.ts +0 -3
  197. package/lib/cjs/utils/exceptions.d.ts.map +0 -1
  198. package/lib/cjs/utils/exceptions.js +0 -55
  199. package/lib/cjs/utils/exceptions.js.map +0 -1
  200. package/lib/cjs/utils/factory_type.d.ts +0 -6
  201. package/lib/cjs/utils/factory_type.d.ts.map +0 -1
  202. package/lib/cjs/utils/factory_type.js +0 -10
  203. package/lib/cjs/utils/factory_type.js.map +0 -1
  204. package/lib/cjs/utils/get_base_type.d.ts +0 -3
  205. package/lib/cjs/utils/get_base_type.d.ts.map +0 -1
  206. package/lib/cjs/utils/get_base_type.js +0 -10
  207. package/lib/cjs/utils/get_base_type.js.map +0 -1
  208. package/lib/cjs/utils/id.d.ts +0 -3
  209. package/lib/cjs/utils/id.d.ts.map +0 -1
  210. package/lib/cjs/utils/id.js +0 -8
  211. package/lib/cjs/utils/id.js.map +0 -1
  212. package/lib/cjs/utils/js.d.ts +0 -2
  213. package/lib/cjs/utils/js.d.ts.map +0 -1
  214. package/lib/cjs/utils/js.js +0 -16
  215. package/lib/cjs/utils/js.js.map +0 -1
  216. package/lib/cjs/utils/serialization.d.ts +0 -11
  217. package/lib/cjs/utils/serialization.d.ts.map +0 -1
  218. package/lib/cjs/utils/serialization.js +0 -148
  219. package/lib/cjs/utils/serialization.js.map +0 -1
@@ -1,500 +1,3 @@
1
- import { Newable, ServiceIdentifier, LazyServiceIdentifier } from '@inversifyjs/common';
2
- export { LazyServiceIdentifier } from '@inversifyjs/common';
3
- import { LegacyTarget } from '@inversifyjs/core';
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
-
45
- declare namespace interfaces {
46
- export type DynamicValue<T> = (context: interfaces.Context) => T | Promise<T>;
47
- export type ContainerResolution<T> = undefined | T | Promise<T> | (T | Promise<T>)[];
48
- type AsyncCallback<TCallback> = TCallback extends (...args: infer TArgs) => infer TResult ? (...args: TArgs) => Promise<TResult> : never;
49
- export type BindingScope = 'Singleton' | 'Transient' | 'Request';
50
- export type BindingType = 'ConstantValue' | 'Constructor' | 'DynamicValue' | 'Factory' | 'Function' | 'Instance' | 'Invalid' | 'Provider';
51
- export type TargetType = 'ConstructorArgument' | 'ClassProperty' | 'Variable';
52
- export interface BindingScopeEnum {
53
- Request: interfaces.BindingScope;
54
- Singleton: interfaces.BindingScope;
55
- Transient: interfaces.BindingScope;
56
- }
57
- export interface BindingTypeEnum {
58
- ConstantValue: interfaces.BindingType;
59
- Constructor: interfaces.BindingType;
60
- DynamicValue: interfaces.BindingType;
61
- Factory: interfaces.BindingType;
62
- Function: interfaces.BindingType;
63
- Instance: interfaces.BindingType;
64
- Invalid: interfaces.BindingType;
65
- Provider: interfaces.BindingType;
66
- }
67
- export interface TargetTypeEnum {
68
- ConstructorArgument: interfaces.TargetType;
69
- ClassProperty: interfaces.TargetType;
70
- Variable: interfaces.TargetType;
71
- }
72
- export type Newable<TInstance = unknown> = CommonNewable<TInstance>;
73
- export type Instance<T> = T & Record<string, () => void>;
74
- export interface Abstract<T> {
75
- prototype: T;
76
- }
77
- export type ServiceIdentifier<T = unknown> = CommonServiceIdentifier<T>;
78
- export interface Clonable<T> {
79
- clone(): T;
80
- }
81
- export type BindingActivation<T = unknown> = (context: interfaces.Context, injectable: T) => T | Promise<T>;
82
- export type BindingDeactivation<T = unknown> = (injectable: T) => void | Promise<void>;
83
- export interface Binding<TActivated = unknown> extends Clonable<Binding<TActivated>> {
84
- id: number;
85
- moduleId: ContainerModuleBase['id'];
86
- activated: boolean;
87
- serviceIdentifier: ServiceIdentifier<TActivated>;
88
- constraint: ConstraintFunction;
89
- dynamicValue: DynamicValue<TActivated> | null;
90
- scope: BindingScope;
91
- type: BindingType;
92
- implementationType: Newable<TActivated> | TActivated | null;
93
- factory: FactoryCreator<unknown> | null;
94
- provider: ProviderCreator<unknown> | null;
95
- onActivation: BindingActivation<TActivated> | null;
96
- onDeactivation: BindingDeactivation<TActivated> | null;
97
- cache: null | TActivated | Promise<TActivated>;
98
- }
99
- export type SimpleFactory<T, U extends unknown[] = unknown[]> = (...args: U) => T;
100
- export type MultiFactory<T, U extends unknown[] = unknown[], V extends unknown[] = unknown[]> = (...args: U) => SimpleFactory<T, V>;
101
- export type Factory<T, U extends unknown[] = unknown[], V extends unknown[] = unknown[]> = SimpleFactory<T, U> | MultiFactory<T, U, V>;
102
- export type FactoryCreator<T, U extends unknown[] = unknown[], V extends unknown[] = unknown[]> = (context: Context) => Factory<T, U, V>;
103
- export type AutoNamedFactory<T> = SimpleFactory<T, [string]>;
104
- export type AutoFactory<T> = SimpleFactory<T, []>;
105
- export type FactoryTypeFunction<T = unknown> = (context: interfaces.Context) => T | Promise<T>;
106
- export interface FactoryDetails {
107
- factoryType: FactoryType;
108
- factory: FactoryTypeFunction | null;
109
- }
110
- export type Provider<T> = (...args: any[]) => ((...args: any[]) => Promise<T>) | Promise<T>;
111
- export type ProviderCreator<T> = (context: Context) => Provider<T>;
112
- export interface NextArgs<T = unknown> {
113
- avoidConstraints: boolean;
114
- contextInterceptor: (contexts: Context) => Context;
115
- isMultiInject: boolean;
116
- isOptional?: boolean;
117
- targetType: TargetType;
118
- serviceIdentifier: interfaces.ServiceIdentifier<T>;
119
- key?: string | number | symbol | undefined;
120
- value?: unknown;
121
- }
122
- export type Next = (args: NextArgs) => unknown | unknown[];
123
- export type Middleware = (next: Next) => Next;
124
- export type ContextInterceptor = (context: interfaces.Context) => interfaces.Context;
125
- export interface Context {
126
- id: number;
127
- container: Container;
128
- plan: Plan;
129
- currentRequest: Request;
130
- addPlan(plan: Plan): void;
131
- setCurrentRequest(request: Request): void;
132
- }
133
- export type MetadataOrMetadataArray = Metadata | Metadata[];
134
- export interface Metadata<TValue = unknown> {
135
- key: string | number | symbol;
136
- value: TValue;
137
- }
138
- export interface Plan {
139
- parentContext: Context;
140
- rootRequest: Request;
141
- }
142
- export interface QueryableString {
143
- startsWith(searchString: string): boolean;
144
- endsWith(searchString: string): boolean;
145
- contains(searchString: string): boolean;
146
- equals(compareString: string): boolean;
147
- value(): string;
148
- }
149
- export type ResolveRequestHandler = (request: interfaces.Request) => unknown;
150
- export type RequestScope = Map<unknown, unknown>;
151
- export interface Request {
152
- id: number;
153
- serviceIdentifier: ServiceIdentifier;
154
- parentContext: Context;
155
- parentRequest: Request | null;
156
- childRequests: Request[];
157
- target: Target;
158
- bindings: Binding<unknown>[];
159
- requestScope: RequestScope | null;
160
- addChildRequest(serviceIdentifier: ServiceIdentifier, bindings: Binding<unknown> | Binding<unknown>[], target: Target): Request;
161
- }
162
- export type Target = LegacyTarget;
163
- export interface ContainerOptions {
164
- autoBindInjectable?: boolean;
165
- defaultScope?: BindingScope | undefined;
166
- skipBaseClassChecks?: boolean;
167
- }
168
- export interface GetAllOptions {
169
- enforceBindingConstraints?: boolean;
170
- }
171
- export interface Container {
172
- id: number;
173
- parent: Container | null;
174
- options: ContainerOptions;
175
- bind<T>(serviceIdentifier: ServiceIdentifier<T>): BindingToSyntax<T>;
176
- rebind<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): interfaces.BindingToSyntax<T>;
177
- rebindAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): Promise<interfaces.BindingToSyntax<T>>;
178
- unbind(serviceIdentifier: ServiceIdentifier): void;
179
- unbindAsync(serviceIdentifier: interfaces.ServiceIdentifier): Promise<void>;
180
- unbindAll(): void;
181
- unbindAllAsync(): Promise<void>;
182
- isBound(serviceIdentifier: ServiceIdentifier): boolean;
183
- isCurrentBound<T>(serviceIdentifier: ServiceIdentifier<T>): boolean;
184
- isBoundNamed(serviceIdentifier: ServiceIdentifier, named: string | number | symbol): boolean;
185
- isBoundTagged(serviceIdentifier: ServiceIdentifier, key: string | number | symbol, value: unknown): boolean;
186
- get<T>(serviceIdentifier: ServiceIdentifier<T>): T;
187
- getNamed<T>(serviceIdentifier: ServiceIdentifier<T>, named: string | number | symbol): T;
188
- getTagged<T>(serviceIdentifier: ServiceIdentifier<T>, key: string | number | symbol, value: unknown): T;
189
- getAll<T>(serviceIdentifier: ServiceIdentifier<T>, options?: GetAllOptions): T[];
190
- getAllTagged<T>(serviceIdentifier: ServiceIdentifier<T>, key: string | number | symbol, value: unknown): T[];
191
- getAllNamed<T>(serviceIdentifier: ServiceIdentifier<T>, named: string | number | symbol): T[];
192
- getAsync<T>(serviceIdentifier: ServiceIdentifier<T>): Promise<T>;
193
- getNamedAsync<T>(serviceIdentifier: ServiceIdentifier<T>, named: string | number | symbol): Promise<T>;
194
- getTaggedAsync<T>(serviceIdentifier: ServiceIdentifier<T>, key: string | number | symbol, value: unknown): Promise<T>;
195
- getAllAsync<T>(serviceIdentifier: ServiceIdentifier<T>, options?: GetAllOptions): Promise<T[]>;
196
- getAllTaggedAsync<T>(serviceIdentifier: ServiceIdentifier<T>, key: string | number | symbol, value: unknown): Promise<T[]>;
197
- getAllNamedAsync<T>(serviceIdentifier: ServiceIdentifier<T>, named: string | number | symbol): Promise<T[]>;
198
- onActivation<T>(serviceIdentifier: ServiceIdentifier<T>, onActivation: BindingActivation<T>): void;
199
- onDeactivation<T>(serviceIdentifier: ServiceIdentifier<T>, onDeactivation: BindingDeactivation<T>): void;
200
- resolve<T>(constructorFunction: interfaces.Newable<T>): T;
201
- tryGet<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): T | undefined;
202
- tryGetAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): Promise<T | undefined>;
203
- tryGetTagged<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: unknown): T | undefined;
204
- tryGetTaggedAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: unknown): Promise<T | undefined>;
205
- tryGetNamed<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): T | undefined;
206
- tryGetNamedAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): Promise<T | undefined>;
207
- tryGetAll<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, options?: interfaces.GetAllOptions): T[];
208
- tryGetAllAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, options?: interfaces.GetAllOptions): Promise<T[]>;
209
- tryGetAllTagged<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: unknown): T[];
210
- tryGetAllTaggedAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: unknown): Promise<T[]>;
211
- tryGetAllNamed<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): T[];
212
- tryGetAllNamedAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): Promise<T[]>;
213
- load(...modules: ContainerModule[]): void;
214
- loadAsync(...modules: AsyncContainerModule[]): Promise<void>;
215
- unload(...modules: ContainerModuleBase[]): void;
216
- unloadAsync(...modules: ContainerModuleBase[]): Promise<void>;
217
- applyCustomMetadataReader(metadataReader: MetadataReader): void;
218
- applyMiddleware(...middleware: Middleware[]): void;
219
- snapshot(): void;
220
- restore(): void;
221
- createChild(): Container;
222
- }
223
- export type Bind = <T = unknown>(serviceIdentifier: ServiceIdentifier<T>) => BindingToSyntax<T>;
224
- export type Rebind = <T = unknown>(serviceIdentifier: ServiceIdentifier<T>) => BindingToSyntax<T>;
225
- export type Unbind = <T = unknown>(serviceIdentifier: ServiceIdentifier<T>) => void;
226
- export type UnbindAsync = <T = unknown>(serviceIdentifier: ServiceIdentifier<T>) => Promise<void>;
227
- export type IsBound = <T = unknown>(serviceIdentifier: ServiceIdentifier<T>) => boolean;
228
- export interface ContainerModuleBase {
229
- id: number;
230
- }
231
- export interface ContainerModule extends ContainerModuleBase {
232
- registry: ContainerModuleCallBack;
233
- }
234
- export interface AsyncContainerModule extends ContainerModuleBase {
235
- registry: AsyncContainerModuleCallBack;
236
- }
237
- export interface ModuleActivationHandlers {
238
- onActivations: Lookup<BindingActivation<unknown>>;
239
- onDeactivations: Lookup<BindingDeactivation<unknown>>;
240
- }
241
- export interface ModuleActivationStore extends Clonable<ModuleActivationStore> {
242
- addDeactivation<T>(moduleId: ContainerModuleBase['id'], serviceIdentifier: ServiceIdentifier<T>, onDeactivation: interfaces.BindingDeactivation<T>): void;
243
- addActivation<T>(moduleId: ContainerModuleBase['id'], serviceIdentifier: ServiceIdentifier<T>, onActivation: interfaces.BindingActivation<T>): void;
244
- remove(moduleId: ContainerModuleBase['id']): ModuleActivationHandlers;
245
- }
246
- export type ContainerModuleCallBack = (bind: interfaces.Bind, unbind: interfaces.Unbind, isBound: interfaces.IsBound, rebind: interfaces.Rebind, unbindAsync: interfaces.UnbindAsync, onActivation: interfaces.Container['onActivation'], onDeactivation: interfaces.Container['onDeactivation']) => void;
247
- export type AsyncContainerModuleCallBack = AsyncCallback<ContainerModuleCallBack>;
248
- export interface ContainerSnapshot {
249
- bindings: Lookup<Binding<unknown>>;
250
- activations: Lookup<BindingActivation<unknown>>;
251
- deactivations: Lookup<BindingDeactivation<unknown>>;
252
- middleware: Next | null;
253
- moduleActivationStore: interfaces.ModuleActivationStore;
254
- }
255
- export interface Lookup<T> extends Clonable<Lookup<T>> {
256
- add(serviceIdentifier: ServiceIdentifier, value: T): void;
257
- getMap(): Map<interfaces.ServiceIdentifier, T[]>;
258
- get(serviceIdentifier: ServiceIdentifier): T[];
259
- remove(serviceIdentifier: interfaces.ServiceIdentifier): void;
260
- removeByCondition(condition: (item: T) => boolean): T[];
261
- removeIntersection(lookup: interfaces.Lookup<T>): void;
262
- hasKey(serviceIdentifier: ServiceIdentifier): boolean;
263
- clone(): Lookup<T>;
264
- traverse(func: (key: interfaces.ServiceIdentifier, value: T[]) => void): void;
265
- }
266
- export interface BindingOnSyntax<T> {
267
- onActivation(fn: (context: Context, injectable: T) => T | Promise<T>): BindingWhenSyntax<T>;
268
- onDeactivation(fn: (injectable: T) => void | Promise<void>): BindingWhenSyntax<T>;
269
- }
270
- export interface BindingWhenSyntax<T> {
271
- when(constraint: (request: Request) => boolean): BindingOnSyntax<T>;
272
- whenTargetNamed(name: string | number | symbol): BindingOnSyntax<T>;
273
- whenTargetIsDefault(): BindingOnSyntax<T>;
274
- whenTargetTagged(tag: string | number | symbol, value: unknown): BindingOnSyntax<T>;
275
- whenInjectedInto(parent: NewableFunction | string): BindingOnSyntax<T>;
276
- whenParentNamed(name: string | number | symbol): BindingOnSyntax<T>;
277
- whenParentTagged(tag: string | number | symbol, value: unknown): BindingOnSyntax<T>;
278
- whenAnyAncestorIs(ancestor: NewableFunction | string): BindingOnSyntax<T>;
279
- whenNoAncestorIs(ancestor: NewableFunction | string): BindingOnSyntax<T>;
280
- whenAnyAncestorNamed(name: string | number | symbol): BindingOnSyntax<T>;
281
- whenAnyAncestorTagged(tag: string | number | symbol, value: unknown): BindingOnSyntax<T>;
282
- whenNoAncestorNamed(name: string | number | symbol): BindingOnSyntax<T>;
283
- whenNoAncestorTagged(tag: string | number | symbol, value: unknown): BindingOnSyntax<T>;
284
- whenAnyAncestorMatches(constraint: (request: Request) => boolean): BindingOnSyntax<T>;
285
- whenNoAncestorMatches(constraint: (request: Request) => boolean): BindingOnSyntax<T>;
286
- }
287
- export interface BindingWhenOnSyntax<T> extends BindingWhenSyntax<T>, BindingOnSyntax<T> {
288
- }
289
- export interface BindingInSyntax<T> {
290
- inSingletonScope(): BindingWhenOnSyntax<T>;
291
- inTransientScope(): BindingWhenOnSyntax<T>;
292
- inRequestScope(): BindingWhenOnSyntax<T>;
293
- }
294
- export interface BindingInWhenOnSyntax<T> extends BindingInSyntax<T>, BindingWhenOnSyntax<T> {
295
- }
296
- export interface BindingToSyntax<T> {
297
- to(constructor: Newable<T>): BindingInWhenOnSyntax<T>;
298
- toSelf(): BindingInWhenOnSyntax<T>;
299
- toConstantValue(value: T): BindingWhenOnSyntax<T>;
300
- toDynamicValue(func: DynamicValue<T>): BindingInWhenOnSyntax<T>;
301
- toConstructor<T2>(constructor: Newable<T2>): BindingWhenOnSyntax<T>;
302
- toFactory<T2, T3 extends unknown[] = unknown[], T4 extends unknown[] = unknown[]>(factory: FactoryCreator<T2, T3, T4>): BindingWhenOnSyntax<T>;
303
- toFunction(func: T): BindingWhenOnSyntax<T>;
304
- toAutoFactory<T2>(serviceIdentifier: ServiceIdentifier<T2>): BindingWhenOnSyntax<T>;
305
- toAutoNamedFactory<T2>(serviceIdentifier: ServiceIdentifier<T2>): BindingWhenOnSyntax<T>;
306
- toProvider<T2>(provider: ProviderCreator<T2>): BindingWhenOnSyntax<T>;
307
- toService(service: ServiceIdentifier<T>): void;
308
- }
309
- export interface ConstraintFunction {
310
- (request: Request | null): boolean;
311
- metaData?: Metadata;
312
- }
313
- export interface MetadataReader {
314
- getConstructorMetadata(constructorFunc: NewableFunction): ConstructorMetadata;
315
- getPropertiesMetadata(constructorFunc: NewableFunction): MetadataMap;
316
- }
317
- export interface MetadataMap {
318
- [propertyNameOrArgumentIndex: string | symbol]: Metadata[];
319
- }
320
- export interface ConstructorMetadata {
321
- compilerGeneratedMetadata: NewableFunction[] | undefined;
322
- userGeneratedMetadata: MetadataMap;
323
- }
324
- export { };
325
- }
326
- //# sourceMappingURL=interfaces.d.ts.map
327
-
328
- declare class Container implements interfaces.Container {
329
- id: number;
330
- parent: interfaces.Container | null;
331
- readonly options: interfaces.ContainerOptions;
332
- private _middleware;
333
- private _bindingDictionary;
334
- private _activations;
335
- private _deactivations;
336
- private readonly _snapshots;
337
- private _metadataReader;
338
- private _moduleActivationStore;
339
- constructor(containerOptions?: interfaces.ContainerOptions);
340
- static merge(container1: interfaces.Container, container2: interfaces.Container, ...containers: interfaces.Container[]): interfaces.Container;
341
- load(...modules: interfaces.ContainerModule[]): void;
342
- loadAsync(...modules: interfaces.AsyncContainerModule[]): Promise<void>;
343
- unload(...modules: interfaces.ContainerModuleBase[]): void;
344
- unloadAsync(...modules: interfaces.ContainerModuleBase[]): Promise<void>;
345
- bind<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): interfaces.BindingToSyntax<T>;
346
- rebind<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): interfaces.BindingToSyntax<T>;
347
- rebindAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): Promise<interfaces.BindingToSyntax<T>>;
348
- unbind(serviceIdentifier: interfaces.ServiceIdentifier): void;
349
- unbindAsync(serviceIdentifier: interfaces.ServiceIdentifier): Promise<void>;
350
- unbindAll(): void;
351
- unbindAllAsync(): Promise<void>;
352
- onActivation<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, onActivation: interfaces.BindingActivation<T>): void;
353
- onDeactivation<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, onDeactivation: interfaces.BindingDeactivation<T>): void;
354
- isBound(serviceIdentifier: interfaces.ServiceIdentifier<unknown>): boolean;
355
- isCurrentBound<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): boolean;
356
- isBoundNamed(serviceIdentifier: interfaces.ServiceIdentifier, named: string | number | symbol): boolean;
357
- isBoundTagged(serviceIdentifier: interfaces.ServiceIdentifier, key: string | number | symbol, value: unknown): boolean;
358
- snapshot(): void;
359
- restore(): void;
360
- createChild(containerOptions?: interfaces.ContainerOptions): Container;
361
- applyMiddleware(...middlewares: interfaces.Middleware[]): void;
362
- applyCustomMetadataReader(metadataReader: interfaces.MetadataReader): void;
363
- get<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): T;
364
- getAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): Promise<T>;
365
- getTagged<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: unknown): T;
366
- getTaggedAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: unknown): Promise<T>;
367
- getNamed<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): T;
368
- getNamedAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): Promise<T>;
369
- getAll<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, options?: interfaces.GetAllOptions): T[];
370
- getAllAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, options?: interfaces.GetAllOptions): Promise<T[]>;
371
- getAllTagged<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: unknown): T[];
372
- getAllTaggedAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: unknown): Promise<T[]>;
373
- getAllNamed<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): T[];
374
- getAllNamedAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): Promise<T[]>;
375
- resolve<T>(constructorFunction: interfaces.Newable<T>): T;
376
- tryGet<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): T | undefined;
377
- tryGetAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): Promise<T | undefined>;
378
- tryGetTagged<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: unknown): T | undefined;
379
- tryGetTaggedAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: unknown): Promise<T | undefined>;
380
- tryGetNamed<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): T | undefined;
381
- tryGetNamedAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): Promise<T | undefined>;
382
- tryGetAll<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, options?: interfaces.GetAllOptions): T[];
383
- tryGetAllAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, options?: interfaces.GetAllOptions): Promise<T[]>;
384
- tryGetAllTagged<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: unknown): T[];
385
- tryGetAllTaggedAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: unknown): Promise<T[]>;
386
- tryGetAllNamed<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): T[];
387
- tryGetAllNamedAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): Promise<T[]>;
388
- private _preDestroy;
389
- private _removeModuleHandlers;
390
- private _removeModuleBindings;
391
- private _deactivate;
392
- private _handleDeactivationError;
393
- private _deactivateContainer;
394
- private _deactivateContainerAsync;
395
- private _getContainerModuleHelpersFactory;
396
- private _bind;
397
- private _buildBinding;
398
- private _getAll;
399
- private _get;
400
- private _getButThrowIfAsync;
401
- private _getAllArgs;
402
- private _getNotAllArgs;
403
- private _getPlanMetadataFromNextArgs;
404
- private _planAndResolve;
405
- private _deactivateIfSingleton;
406
- private _deactivateSingletons;
407
- private _deactivateSingletonsAsync;
408
- private _propagateContainerDeactivationThenBindingAndPreDestroy;
409
- private _propagateContainerDeactivationThenBindingAndPreDestroyAsync;
410
- private _removeServiceFromDictionary;
411
- private _bindingDeactivationAndPreDestroy;
412
- private _bindingDeactivationAndPreDestroyAsync;
413
- }
414
- //# sourceMappingURL=container.d.ts.map
415
-
416
- declare const BindingScopeEnum: interfaces.BindingScopeEnum;
417
- declare const BindingTypeEnum: interfaces.BindingTypeEnum;
418
- declare const TargetTypeEnum: interfaces.TargetTypeEnum;
419
- //# sourceMappingURL=literal_types.d.ts.map
420
-
421
- declare class ContainerModule implements interfaces.ContainerModule {
422
- id: number;
423
- registry: interfaces.ContainerModuleCallBack;
424
- constructor(registry: interfaces.ContainerModuleCallBack);
425
- }
426
- declare class AsyncContainerModule implements interfaces.AsyncContainerModule {
427
- id: number;
428
- registry: interfaces.AsyncContainerModuleCallBack;
429
- constructor(registry: interfaces.AsyncContainerModuleCallBack);
430
- }
431
-
432
- type Prototype<T> = {
433
- [Property in keyof T]: T[Property] extends NewableFunction ? T[Property] : T[Property] | undefined;
434
- } & {
435
- constructor: NewableFunction;
436
- };
437
- interface ConstructorFunction<T = Record<string, unknown>> {
438
- prototype: Prototype<T>;
439
- new (...args: unknown[]): T;
440
- }
441
- type DecoratorTarget<T = unknown> = ConstructorFunction<T> | Prototype<T>;
442
- declare function createTaggedDecorator(metadata: interfaces.MetadataOrMetadataArray): <T>(target: DecoratorTarget, targetKey?: string | symbol, indexOrPropertyDescriptor?: number | TypedPropertyDescriptor<T>) => void;
443
- declare function decorate(decorator: DecoratorTarget | ParameterDecorator | MethodDecorator, target: object, parameterIndexOrProperty?: number | string): void;
444
-
445
- declare function injectable(): <T extends abstract new (...args: any) => unknown>(target: T) => T;
446
- //# sourceMappingURL=injectable.d.ts.map
447
-
448
- declare function tagged(metadataKey: string | number | symbol, metadataValue: unknown): <T>(target: DecoratorTarget, targetKey?: string | symbol, indexOrPropertyDescriptor?: number | TypedPropertyDescriptor<T>) => void;
449
- //# sourceMappingURL=tagged.d.ts.map
450
-
451
- declare function named(name: string | number | symbol): <T>(target: DecoratorTarget, targetKey?: string | symbol, indexOrPropertyDescriptor?: number | TypedPropertyDescriptor<T>) => void;
452
- //# sourceMappingURL=named.d.ts.map
453
-
454
- declare const inject: <T = unknown>(serviceIdentifier: interfaces.ServiceIdentifier<T> | LazyServiceIdentifier<T>) => (target: DecoratorTarget, targetKey?: string | symbol, indexOrPropertyDescriptor?: number | TypedPropertyDescriptor<T>) => void;
455
- //# sourceMappingURL=inject.d.ts.map
456
-
457
- declare function optional(): <T>(target: DecoratorTarget, targetKey?: string | symbol, indexOrPropertyDescriptor?: number | TypedPropertyDescriptor<T>) => void;
458
- //# sourceMappingURL=optional.d.ts.map
459
-
460
- declare function unmanaged(): (target: DecoratorTarget, targetKey: string | undefined, index: number) => void;
461
- //# sourceMappingURL=unmanaged.d.ts.map
462
-
463
- declare const multiInject: <T = unknown>(serviceIdentifier: interfaces.ServiceIdentifier<T> | LazyServiceIdentifier<T>) => (target: DecoratorTarget, targetKey?: string | symbol, indexOrPropertyDescriptor?: number | TypedPropertyDescriptor<T>) => void;
464
- //# sourceMappingURL=multi_inject.d.ts.map
465
-
466
- declare function targetName(name: string): (target: DecoratorTarget, targetKey: string | undefined, index: number) => void;
467
- //# sourceMappingURL=target_name.d.ts.map
468
-
469
- declare const postConstruct: () => (target: {
470
- constructor: NewableFunction;
471
- }, propertyKey: string) => void;
472
- //# sourceMappingURL=post_construct.d.ts.map
473
-
474
- declare const preDestroy: () => (target: {
475
- constructor: NewableFunction;
476
- }, propertyKey: string) => void;
477
- //# sourceMappingURL=pre_destroy.d.ts.map
478
-
479
- declare class MetadataReader implements interfaces.MetadataReader {
480
- getConstructorMetadata(constructorFunc: NewableFunction): interfaces.ConstructorMetadata;
481
- getPropertiesMetadata(constructorFunc: NewableFunction): interfaces.MetadataMap;
482
- }
483
- //# sourceMappingURL=metadata_reader.d.ts.map
484
-
485
- declare function id(): number;
486
- //# sourceMappingURL=id.d.ts.map
487
-
488
- declare const traverseAncerstors: (request: interfaces.Request, constraint: interfaces.ConstraintFunction) => boolean;
489
- declare const taggedConstraint: (key: string | number | symbol) => (value: unknown) => interfaces.ConstraintFunction;
490
- declare const namedConstraint: (value: unknown) => interfaces.ConstraintFunction;
491
- declare const typeConstraint: (type: NewableFunction | string) => (request: interfaces.Request | null) => boolean;
492
- //# sourceMappingURL=constraint_helpers.d.ts.map
493
-
494
- declare function getServiceIdentifierAsString(serviceIdentifier: interfaces.ServiceIdentifier): string;//# sourceMappingURL=serialization.d.ts.map
495
-
496
- declare const multiBindToService: (container: interfaces.Container) => (service: interfaces.ServiceIdentifier) => (...types: interfaces.ServiceIdentifier[]) => void;
497
-
498
- declare const METADATA_KEY: typeof keys;
499
-
500
- 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 };
1
+ export { LazyServiceIdentifier, Newable, ServiceIdentifier } from '@inversifyjs/common';
2
+ export { BindInFluentSyntax, BindInWhenOnFluentSyntax, BindOnFluentSyntax, BindToFluentSyntax, BindWhenFluentSyntax, BindWhenOnFluentSyntax, Container, ContainerModule, ContainerModuleLoadOptions, ContainerOptions, IsBoundOptions } from '@inversifyjs/container';
3
+ export { BindingMetadata, BindingScope, DynamicValueBuilder, Factory, GetOptions, GetOptionsTagConstraint, MetadataName, MetadataTag, OptionalGetOptions, Provider, ResolutionContext, bindingScopeValues, bindingTypeValues, decorate, inject, injectFromBase, injectable, multiInject, named, optional, postConstruct, preDestroy, tagged, unmanaged } from '@inversifyjs/core';
@@ -1 +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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EACL,OAAO,EACP,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,SAAS,EACT,eAAe,EACf,0BAA0B,EAC1B,gBAAgB,EAChB,cAAc,GACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,OAAO,EACP,UAAU,EACV,uBAAuB,EACvB,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,QAAQ,EACR,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,QAAQ,EACR,MAAM,EACN,cAAc,EACd,UAAU,EACV,WAAW,EACX,KAAK,EACL,QAAQ,EACR,SAAS,EACT,MAAM,EACN,aAAa,EACb,UAAU,GACX,MAAM,mBAAmB,CAAC"}
package/lib/esm/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import"reflect-metadata";export{LazyServiceIdentifier}from"@inversifyjs/common";import{getTargets as t,getClassElementMetadataFromLegacyMetadata as n,ClassElementMetadataKind as e,LegacyTargetImpl as i}from"@inversifyjs/core";const r="named",s="name",o="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,s,o,r,a];var _=Object.freeze({__proto__:null,DESIGN_PARAM_TYPES:g,INJECT_TAG:c,MULTI_INJECT_TAG:d,NAMED_TAG:r,NAME_TAG:s,NON_CUSTOM_TAG_KEYS:f,OPTIONAL_TAG:a,PARAM_TYPES:l,POST_CONSTRUCT:y,PRE_DESTROY:p,TAGGED:u,TAGGED_PROP:h,UNMANAGED_TAG:o});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(t,n){this.id=A(),this.activated=!1,this.serviceIdentifier=t,this.scope=n,this.type=b.Invalid,this.constraint=t=>!0,this.implementationType=null,this.cache=null,this.factory=null,this.provider=null,this.onActivation=null,this.onDeactivation=null,this.dynamicValue=null}clone(){const t=new S(this.serviceIdentifier,this.scope);return t.activated=t.scope===v.Singleton&&this.activated,t.implementationType=this.implementationType,t.dynamicValue=this.dynamicValue,t.scope=this.scope,t.type=this.type,t.factory=this.factory,t.provider=this.provider,t.constraint=this.constraint,t.onActivation=this.onActivation,t.onDeactivation=this.onDeactivation,t.cache=this.cache,t}}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:",x="The @inject @multiInject @tagged and @named decorators must be applied to the parameters of a class constructor or a class property.",R=(t,n)=>`onDeactivation() error in class ${t}: ${n}`;class E{getConstructorMetadata(t){return{compilerGeneratedMetadata:Reflect.getMetadata(g,t)??[],userGeneratedMetadata:Reflect.getMetadata(u,t)??{}}}getPropertiesMetadata(t){return Reflect.getMetadata(h,t)??{}}}var M;function B(t){return t instanceof RangeError||"Maximum call stack size exceeded"===t.message}!function(t){t[t.MultipleBindingsAvailable=2]="MultipleBindingsAvailable",t[t.NoBindingsAvailable=0]="NoBindingsAvailable",t[t.OnlyOneBindingAvailable=1]="OnlyOneBindingAvailable"}(M||(M={}));function P(t){return"function"==typeof t?t.name:"symbol"==typeof t?t.toString():t}function k(t,n,e){let i="";const r=e(t,n);return 0!==r.length&&(i="\nRegistered bindings:",r.forEach((t=>{let n="Object";null!==t.implementationType&&(n=j(t.implementationType)),i=`${i}\n ${n}`,t.constraint.metaData&&(i=`${i} - ${t.constraint.metaData}`)}))),i}function q(t,n){return null!==t.parentRequest&&(t.parentRequest.serviceIdentifier===n||q(t.parentRequest,n))}function F(t){t.childRequests.forEach((n=>{if(q(t,n.serviceIdentifier)){const t=function(t){const n=function t(n,e=[]){const i=P(n.serviceIdentifier);return e.push(i),null!==n.parentRequest?t(n.parentRequest,e):e}(t);return n.reverse().join(" --\x3e ")}(n);throw new Error(`Circular dependency found: ${t}`)}F(n)}))}function j(t){if(null!=t.name&&""!==t.name)return t.name;{const n=t.toString(),e=n.match(/^function\s*([^\s(]+)/);return null===e?`Anonymous function: ${n}`:e[1]}}function O(t){return`{"key":"${t.key.toString()}","value":"${t.value.toString()}"}`}class ${id;container;plan;currentRequest;constructor(t){this.id=A(),this.container=t}addPlan(t){this.plan=t}setCurrentRequest(t){this.currentRequest=t}}class V{key;value;constructor(t,n){this.key=t,this.value=n}toString(){return this.key===r?`named: ${String(this.value).toString()} `:`tagged: { key:${this.key.toString()}, value: ${String(this.value)} }`}}class W{parentContext;rootRequest;constructor(t,n){this.parentContext=t,this.rootRequest=n}}function G(n,e){const i=function(t){const n=Object.getPrototypeOf(t.prototype),e=n?.constructor;return e}(e);if(void 0===i||i===Object)return 0;const r=t(n)(i),s=r.map((t=>t.metadata.filter((t=>t.key===o)))),a=[].concat.apply([],s).length,c=r.length-a;return c>0?c:G(n,i)}class K{id;serviceIdentifier;parentContext;parentRequest;bindings;childRequests;target;requestScope;constructor(t,n,e,i,r){this.id=A(),this.serviceIdentifier=t,this.parentContext=n,this.parentRequest=e,this.target=r,this.childRequests=[],this.bindings=Array.isArray(i)?i:[i],this.requestScope=null===e?new Map:null}addChildRequest(t,n,e){const i=new K(t,this.parentContext,this,n,e);return this.childRequests.push(i),i}}function H(t){return t._bindingDictionary}function U(t,n,e,i,r){let s=z(e.container,r.serviceIdentifier),o=[];return s.length===M.NoBindingsAvailable&&!0===e.container.options.autoBindInjectable&&"function"==typeof r.serviceIdentifier&&t.getConstructorMetadata(r.serviceIdentifier).compilerGeneratedMetadata&&(e.container.bind(r.serviceIdentifier).toSelf(),s=z(e.container,r.serviceIdentifier)),o=n?s:s.filter((t=>{const n=new K(t.serviceIdentifier,e,i,t,r);return t.constraint(n)})),function(t,n,e,i,r){switch(n.length){case M.NoBindingsAvailable:if(i.isOptional())return n;{const n=P(t);let s=C;throw s+=function(t,n){if(n.isTagged()||n.isNamed()){let e="";const i=n.getNamedTag(),r=n.getCustomTags();return null!==i&&(e+=O(i)+"\n"),null!==r&&r.forEach((t=>{e+=O(t)+"\n"})),` ${t}\n ${t} - ${e}`}return` ${t}`}(n,i),s+=k(r,n,z),null!==e&&(s+="\n"+`Trying to resolve bindings for "${P(e.serviceIdentifier)}"`),new Error(s)}case M.OnlyOneBindingAvailable:return n;case M.MultipleBindingsAvailable:default:if(i.isArray())return n;{const n=P(t);let e=`${N} ${n}`;throw e+=k(r,n,z),new Error(e)}}}(r.serviceIdentifier,o,i,r,e.container),o}function L(t,n){const e=n.isMultiInject?d:c,i=[new V(e,t)];return void 0!==n.customTag&&i.push(new V(n.customTag.key,n.customTag.value)),!0===n.isOptional&&i.push(new V(a,!0)),i}function Y(n,e,i,r,s,o){let a,c;if(null===s){a=U(n,e,r,null,o),c=new K(i,r,null,a,o);const t=new W(r,c);r.addPlan(t)}else a=U(n,e,r,s,o),c=s.addChildRequest(o.serviceIdentifier,a,o);a.forEach((e=>{let i=null;if(o.isArray())i=c.addChildRequest(e.serviceIdentifier,e,o);else{if(null!==e.cache)return;i=c}if(e.type===b.Instance&&null!==e.implementationType){const s=function(n,e){return t(n)(e)}(n,e.implementationType);if(!0!==r.container.options.skipBaseClassChecks){const t=G(n,e.implementationType);if(s.length<t){const t=`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(t)}}s.forEach((t=>{Y(n,!1,t.serviceIdentifier,r,i,t)}))}}))}function z(t,n){let e=[];const i=H(t);return i.hasKey(n)?e=i.get(n):null!==t.parent&&(e=z(t.parent,n)),e}function J(t,r,s,o,a,c=!1){const d=new $(r),u=function(t,r,s){const o=L(r,s),a=n(o);if(a.kind===e.unmanaged)throw new Error("Unexpected metadata when creating target");return new i("",a,t)}(s,o,a);try{return Y(t,c,o,d,null,u),d}catch(t){throw B(t)&&F(d.plan.rootRequest),t}}function Q(t){return("object"==typeof t&&null!==t||"function"==typeof t)&&"function"==typeof t.then}function X(t){return!!Q(t)||Array.isArray(t)&&t.some(Q)}const Z=(t,n,e)=>{t.has(n.id)||t.set(n.id,e)},tt=(t,n)=>{t.cache=n,t.activated=!0,Q(n)&&nt(t,n)},nt=async(t,n)=>{try{const e=await n;t.cache=e}catch(n){throw t.cache=null,t.activated=!1,n}};var et;!function(t){t.DynamicValue="toDynamicValue",t.Factory="toFactory",t.Provider="toProvider"}(et||(et={}));const it=t=>n=>(...e)=>{e.forEach((e=>{t.bind(e).toService(n)}))};function rt(t,n,e){let i;if(n.length>0){const r=function(t,n){return t.reduce(((t,e)=>{const i=n(e);return e.target.type===w.ConstructorArgument?t.constructorInjections.push(i):(t.propertyRequests.push(e),t.propertyInjections.push(i)),t.isAsync||(t.isAsync=X(i)),t}),{constructorInjections:[],isAsync:!1,propertyInjections:[],propertyRequests:[]})}(n,e),s={...r,constr:t};i=r.isAsync?async function(t){const n=await ot(t.constructorInjections),e=await ot(t.propertyInjections);return st({...t,constructorInjections:n,propertyInjections:e})}(s):st(s)}else i=new t;return i}function st(t){const n=new t.constr(...t.constructorInjections);return t.propertyRequests.forEach(((e,i)=>{const r=e.target.identifier,s=t.propertyInjections[i];e.target.isOptional()&&void 0===s||(n[r]=s)})),n}async function ot(t){const n=[];for(const e of t)Array.isArray(e)?n.push(Promise.all(e)):n.push(e);return Promise.all(n)}function at(t,n){const e=function(t,n){if(Reflect.hasMetadata(y,t)){const r=Reflect.getMetadata(y,t);try{return n[r.value]?.()}catch(n){if(n instanceof Error)throw new Error((e=t.name,i=n.message,`@postConstruct error in class ${e}: ${i}`))}}var e,i}(t,n);return Q(e)?e.then((()=>n)):n}function ct(t,n){t.scope!==v.Singleton&&function(t,n){const e=`Class cannot be instantiated in ${t.scope===v.Request?"request":"transient"} scope.`;if("function"==typeof t.onDeactivation)throw new Error(R(n.name,e));if(Reflect.hasMetadata(p,n))throw new Error(`@preDestroy error in class ${n.name}: ${e}`)}(t,n)}const dt=t=>n=>{n.parentContext.setCurrentRequest(n);const e=n.bindings,i=n.childRequests,r=n.target&&n.target.isArray(),s=!(n.parentRequest&&n.parentRequest.target&&n.target&&n.parentRequest.target.matchesArray(n.target.serviceIdentifier));if(r&&s)return i.map((n=>dt(t)(n)));{if(n.target.isOptional()&&0===e.length)return;const i=e[0];return gt(t,n,i)}},ut=(t,n)=>{const e=(t=>{switch(t.type){case b.Factory:return{factory:t.factory,factoryType:et.Factory};case b.Provider:return{factory:t.provider,factoryType:et.Provider};case b.DynamicValue:return{factory:t.dynamicValue,factoryType:et.DynamicValue};default:throw new Error(`Unexpected factory type ${t.type}`)}})(t);return((t,n)=>{try{return t()}catch(t){if(B(t))throw n();throw t}})((()=>e.factory.bind(t)(n)),(()=>{return new Error((t=e.factoryType,i=n.currentRequest.serviceIdentifier.toString(),`It looks like there is a circular dependency in one of the '${t}' bindings. Please investigate bindings with service identifier '${i}'.`));var t,i}))},ht=(t,n,e)=>{let i;const r=n.childRequests;switch((t=>{let n=null;switch(t.type){case b.ConstantValue:case b.Function:n=t.cache;break;case b.Constructor:case b.Instance:n=t.implementationType;break;case b.DynamicValue:n=t.dynamicValue;break;case b.Provider:n=t.provider;break;case b.Factory:n=t.factory}if(null===n){const n=P(t.serviceIdentifier);throw new Error(`Invalid binding type: ${n}`)}})(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(t,n,e,i){ct(t,n);const r=rt(n,e,i);return Q(r)?r.then((t=>at(n,t))):at(n,r)}(e,e.implementationType,r,dt(t));break;default:i=ut(e,n.parentContext)}return i},lt=(t,n,e)=>{let i=((t,n)=>n.scope===v.Singleton&&n.activated?n.cache:n.scope===v.Request&&t.has(n.id)?t.get(n.id):null)(t,n);return null!==i||(i=e(),((t,n,e)=>{n.scope===v.Singleton&&tt(n,e),n.scope===v.Request&&Z(t,n,e)})(t,n,i)),i},gt=(t,n,e)=>lt(t,e,(()=>{let i=ht(t,n,e);return i=Q(i)?i.then((t=>yt(n,e,t))):yt(n,e,i),i}));function yt(t,n,e){let i=pt(t.parentContext,n,e);const r=bt(t.parentContext.container);let s,o=r.next();do{s=o.value;const n=t.parentContext,e=t.serviceIdentifier,a=vt(s,e);i=Q(i)?_t(a,n,i):ft(a,n,i),o=r.next()}while(!0!==o.done&&!H(s).hasKey(t.serviceIdentifier));return i}const pt=(t,n,e)=>{let i;return i="function"==typeof n.onActivation?n.onActivation(t,e):e,i},ft=(t,n,e)=>{let i=t.next();for(;!0!==i.done;){if(Q(e=i.value(n,e)))return _t(t,n,e);i=t.next()}return e},_t=async(t,n,e)=>{let i=await e,r=t.next();for(;!0!==r.done;)i=await r.value(n,i),r=t.next();return i},vt=(t,n)=>{const e=t._activations;return e.hasKey(n)?e.get(n).values():[].values()},bt=t=>{const n=[t];let e=t.parent;for(;null!==e;)n.push(e),e=e.parent;return{next:()=>{const t=n.pop();return void 0!==t?{done:!1,value:t}:{done:!0,value:void 0}}}};const wt=(t,n)=>{const e=t.parentRequest;return null!==e&&(!!n(e)||wt(e,n))},mt=t=>n=>{const e=e=>null!==e&&null!==e.target&&e.target.matchesTag(t)(n);return e.metaData=new V(t,n),e},At=mt(r),St=t=>n=>{let e=null;if(null!==n){if(e=n.bindings[0],"string"==typeof t)return e.serviceIdentifier===t;{const e=n.bindings[0].implementationType;return t===e}}return!1};class It{_binding;constructor(t){this._binding=t}when(t){return this._binding.constraint=t,new Tt(this._binding)}whenTargetNamed(t){return this._binding.constraint=At(t),new Tt(this._binding)}whenTargetIsDefault(){return this._binding.constraint=t=>{if(null===t)return!1;return null!==t.target&&!t.target.isNamed()&&!t.target.isTagged()},new Tt(this._binding)}whenTargetTagged(t,n){return this._binding.constraint=mt(t)(n),new Tt(this._binding)}whenInjectedInto(t){return this._binding.constraint=n=>null!==n&&St(t)(n.parentRequest),new Tt(this._binding)}whenParentNamed(t){return this._binding.constraint=n=>null!==n&&At(t)(n.parentRequest),new Tt(this._binding)}whenParentTagged(t,n){return this._binding.constraint=e=>null!==e&&mt(t)(n)(e.parentRequest),new Tt(this._binding)}whenAnyAncestorIs(t){return this._binding.constraint=n=>null!==n&&wt(n,St(t)),new Tt(this._binding)}whenNoAncestorIs(t){return this._binding.constraint=n=>null!==n&&!wt(n,St(t)),new Tt(this._binding)}whenAnyAncestorNamed(t){return this._binding.constraint=n=>null!==n&&wt(n,At(t)),new Tt(this._binding)}whenNoAncestorNamed(t){return this._binding.constraint=n=>null!==n&&!wt(n,At(t)),new Tt(this._binding)}whenAnyAncestorTagged(t,n){return this._binding.constraint=e=>null!==e&&wt(e,mt(t)(n)),new Tt(this._binding)}whenNoAncestorTagged(t,n){return this._binding.constraint=e=>null!==e&&!wt(e,mt(t)(n)),new Tt(this._binding)}whenAnyAncestorMatches(t){return this._binding.constraint=n=>null!==n&&wt(n,t),new Tt(this._binding)}whenNoAncestorMatches(t){return this._binding.constraint=n=>null!==n&&!wt(n,t),new Tt(this._binding)}}class Tt{_binding;constructor(t){this._binding=t}onActivation(t){return this._binding.onActivation=t,new It(this._binding)}onDeactivation(t){return this._binding.onDeactivation=t,new It(this._binding)}}class Dt{_bindingWhenSyntax;_bindingOnSyntax;_binding;constructor(t){this._binding=t,this._bindingWhenSyntax=new It(this._binding),this._bindingOnSyntax=new Tt(this._binding)}when(t){return this._bindingWhenSyntax.when(t)}whenTargetNamed(t){return this._bindingWhenSyntax.whenTargetNamed(t)}whenTargetIsDefault(){return this._bindingWhenSyntax.whenTargetIsDefault()}whenTargetTagged(t,n){return this._bindingWhenSyntax.whenTargetTagged(t,n)}whenInjectedInto(t){return this._bindingWhenSyntax.whenInjectedInto(t)}whenParentNamed(t){return this._bindingWhenSyntax.whenParentNamed(t)}whenParentTagged(t,n){return this._bindingWhenSyntax.whenParentTagged(t,n)}whenAnyAncestorIs(t){return this._bindingWhenSyntax.whenAnyAncestorIs(t)}whenNoAncestorIs(t){return this._bindingWhenSyntax.whenNoAncestorIs(t)}whenAnyAncestorNamed(t){return this._bindingWhenSyntax.whenAnyAncestorNamed(t)}whenAnyAncestorTagged(t,n){return this._bindingWhenSyntax.whenAnyAncestorTagged(t,n)}whenNoAncestorNamed(t){return this._bindingWhenSyntax.whenNoAncestorNamed(t)}whenNoAncestorTagged(t,n){return this._bindingWhenSyntax.whenNoAncestorTagged(t,n)}whenAnyAncestorMatches(t){return this._bindingWhenSyntax.whenAnyAncestorMatches(t)}whenNoAncestorMatches(t){return this._bindingWhenSyntax.whenNoAncestorMatches(t)}onActivation(t){return this._bindingOnSyntax.onActivation(t)}onDeactivation(t){return this._bindingOnSyntax.onDeactivation(t)}}class Nt{_binding;constructor(t){this._binding=t}inRequestScope(){return this._binding.scope=v.Request,new Dt(this._binding)}inSingletonScope(){return this._binding.scope=v.Singleton,new Dt(this._binding)}inTransientScope(){return this._binding.scope=v.Transient,new Dt(this._binding)}}class Ct{_bindingInSyntax;_bindingWhenSyntax;_bindingOnSyntax;_binding;constructor(t){this._binding=t,this._bindingWhenSyntax=new It(this._binding),this._bindingOnSyntax=new Tt(this._binding),this._bindingInSyntax=new Nt(t)}inRequestScope(){return this._bindingInSyntax.inRequestScope()}inSingletonScope(){return this._bindingInSyntax.inSingletonScope()}inTransientScope(){return this._bindingInSyntax.inTransientScope()}when(t){return this._bindingWhenSyntax.when(t)}whenTargetNamed(t){return this._bindingWhenSyntax.whenTargetNamed(t)}whenTargetIsDefault(){return this._bindingWhenSyntax.whenTargetIsDefault()}whenTargetTagged(t,n){return this._bindingWhenSyntax.whenTargetTagged(t,n)}whenInjectedInto(t){return this._bindingWhenSyntax.whenInjectedInto(t)}whenParentNamed(t){return this._bindingWhenSyntax.whenParentNamed(t)}whenParentTagged(t,n){return this._bindingWhenSyntax.whenParentTagged(t,n)}whenAnyAncestorIs(t){return this._bindingWhenSyntax.whenAnyAncestorIs(t)}whenNoAncestorIs(t){return this._bindingWhenSyntax.whenNoAncestorIs(t)}whenAnyAncestorNamed(t){return this._bindingWhenSyntax.whenAnyAncestorNamed(t)}whenAnyAncestorTagged(t,n){return this._bindingWhenSyntax.whenAnyAncestorTagged(t,n)}whenNoAncestorNamed(t){return this._bindingWhenSyntax.whenNoAncestorNamed(t)}whenNoAncestorTagged(t,n){return this._bindingWhenSyntax.whenNoAncestorTagged(t,n)}whenAnyAncestorMatches(t){return this._bindingWhenSyntax.whenAnyAncestorMatches(t)}whenNoAncestorMatches(t){return this._bindingWhenSyntax.whenNoAncestorMatches(t)}onActivation(t){return this._bindingOnSyntax.onActivation(t)}onDeactivation(t){return this._bindingOnSyntax.onDeactivation(t)}}class xt{_binding;constructor(t){this._binding=t}to(t){return this._binding.type=b.Instance,this._binding.implementationType=t,new Ct(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 t=this._binding.serviceIdentifier;return this.to(t)}toConstantValue(t){return this._binding.type=b.ConstantValue,this._binding.cache=t,this._binding.dynamicValue=null,this._binding.implementationType=null,this._binding.scope=v.Singleton,new Dt(this._binding)}toDynamicValue(t){return this._binding.type=b.DynamicValue,this._binding.cache=null,this._binding.dynamicValue=t,this._binding.implementationType=null,new Ct(this._binding)}toConstructor(t){return this._binding.type=b.Constructor,this._binding.implementationType=t,this._binding.scope=v.Singleton,new Dt(this._binding)}toFactory(t){return this._binding.type=b.Factory,this._binding.factory=t,this._binding.scope=v.Singleton,new Dt(this._binding)}toFunction(t){if("function"!=typeof t)throw new Error("Value provided to function binding must be a function!");const n=this.toConstantValue(t);return this._binding.type=b.Function,this._binding.scope=v.Singleton,n}toAutoFactory(t){return this._binding.type=b.Factory,this._binding.factory=n=>()=>n.container.get(t),this._binding.scope=v.Singleton,new Dt(this._binding)}toAutoNamedFactory(t){return this._binding.type=b.Factory,this._binding.factory=n=>e=>n.container.getNamed(t,e),new Dt(this._binding)}toProvider(t){return this._binding.type=b.Provider,this._binding.provider=t,this._binding.scope=v.Singleton,new Dt(this._binding)}toService(t){this._binding.type=b.DynamicValue,Object.defineProperty(this._binding,"cache",{configurable:!0,enumerable:!0,get:()=>null,set(t){}}),this._binding.dynamicValue=n=>{try{return n.container.get(t)}catch(e){return n.container.getAsync(t)}},this._binding.implementationType=null}}class Rt{bindings;activations;deactivations;middleware;moduleActivationStore;static of(t,n,e,i,r){const s=new Rt;return s.bindings=t,s.middleware=n,s.deactivations=i,s.activations=e,s.moduleActivationStore=r,s}}class Et{_map;constructor(){this._map=new Map}getMap(){return this._map}add(t,n){if(this._checkNonNulish(t),null==n)throw new Error(T);const e=this._map.get(t);void 0!==e?e.push(n):this._map.set(t,[n])}get(t){this._checkNonNulish(t);const n=this._map.get(t);if(void 0!==n)return n;throw new Error(D)}remove(t){if(this._checkNonNulish(t),!this._map.delete(t))throw new Error(D)}removeIntersection(t){this.traverse(((n,e)=>{const i=t.hasKey(n)?t.get(n):void 0;if(void 0!==i){const t=e.filter((t=>!i.some((n=>t===n))));this._setValue(n,t)}}))}removeByCondition(t){const n=[];return this._map.forEach(((e,i)=>{const r=[];for(const i of e){t(i)?n.push(i):r.push(i)}this._setValue(i,r)})),n}hasKey(t){return this._checkNonNulish(t),this._map.has(t)}clone(){const t=new Et;return this._map.forEach(((n,e)=>{n.forEach((n=>{var i;t.add(e,"object"==typeof(i=n)&&null!==i&&"clone"in i&&"function"==typeof i.clone?n.clone():n)}))})),t}traverse(t){this._map.forEach(((n,e)=>{t(e,n)}))}_checkNonNulish(t){if(null==t)throw new Error(T)}_setValue(t,n){n.length>0?this._map.set(t,n):this._map.delete(t)}}class Mt{_map=new Map;remove(t){const n=this._map.get(t);return void 0===n?this._getEmptyHandlersStore():(this._map.delete(t),n)}addDeactivation(t,n,e){this._getModuleActivationHandlers(t).onDeactivations.add(n,e)}addActivation(t,n,e){this._getModuleActivationHandlers(t).onActivations.add(n,e)}clone(){const t=new Mt;return this._map.forEach(((n,e)=>{t._map.set(e,{onActivations:n.onActivations.clone(),onDeactivations:n.onDeactivations.clone()})})),t}_getModuleActivationHandlers(t){let n=this._map.get(t);return void 0===n&&(n=this._getEmptyHandlersStore(),this._map.set(t,n)),n}_getEmptyHandlersStore(){return{onActivations:new Et,onDeactivations:new Et}}}class Bt{id;parent;options;_middleware;_bindingDictionary;_activations;_deactivations;_snapshots;_metadataReader;_moduleActivationStore;constructor(t){const n=t||{};if("object"!=typeof n)throw new Error("Invalid Container constructor argument. Container options must be an object.");if(void 0===n.defaultScope)n.defaultScope=v.Transient;else if(n.defaultScope!==v.Singleton&&n.defaultScope!==v.Transient&&n.defaultScope!==v.Request)throw new Error('Invalid Container option. Default scope must be a string ("singleton" or "transient").');if(void 0===n.autoBindInjectable)n.autoBindInjectable=!1;else if("boolean"!=typeof n.autoBindInjectable)throw new Error("Invalid Container option. Auto bind injectable must be a boolean");if(void 0===n.skipBaseClassChecks)n.skipBaseClassChecks=!1;else if("boolean"!=typeof n.skipBaseClassChecks)throw new Error("Invalid Container option. Skip base check must be a boolean");this.options={autoBindInjectable:n.autoBindInjectable,defaultScope:n.defaultScope,skipBaseClassChecks:n.skipBaseClassChecks},this.id=A(),this._bindingDictionary=new Et,this._snapshots=[],this._middleware=null,this._activations=new Et,this._deactivations=new Et,this.parent=null,this._metadataReader=new E,this._moduleActivationStore=new Mt}static merge(t,n,...e){const i=new Bt,r=[t,n,...e].map((t=>H(t))),s=H(i);return r.forEach((t=>{var n;n=s,t.traverse(((t,e)=>{e.forEach((t=>{n.add(t.serviceIdentifier,t.clone())}))}))})),i}load(...t){const n=this._getContainerModuleHelpersFactory();for(const e of t){const t=n(e.id);e.registry(t.bindFunction,t.unbindFunction,t.isboundFunction,t.rebindFunction,t.unbindAsyncFunction,t.onActivationFunction,t.onDeactivationFunction)}}async loadAsync(...t){const n=this._getContainerModuleHelpersFactory();for(const e of t){const t=n(e.id);await e.registry(t.bindFunction,t.unbindFunction,t.isboundFunction,t.rebindFunction,t.unbindAsyncFunction,t.onActivationFunction,t.onDeactivationFunction)}}unload(...t){t.forEach((t=>{const n=this._removeModuleBindings(t.id);this._deactivateSingletons(n),this._removeModuleHandlers(t.id)}))}async unloadAsync(...t){for(const n of t){const t=this._removeModuleBindings(n.id);await this._deactivateSingletonsAsync(t),this._removeModuleHandlers(n.id)}}bind(t){return this._bind(this._buildBinding(t))}rebind(t){return this.unbind(t),this.bind(t)}async rebindAsync(t){return await this.unbindAsync(t),this.bind(t)}unbind(t){if(this._bindingDictionary.hasKey(t)){const n=this._bindingDictionary.get(t);this._deactivateSingletons(n)}this._removeServiceFromDictionary(t)}async unbindAsync(t){if(this._bindingDictionary.hasKey(t)){const n=this._bindingDictionary.get(t);await this._deactivateSingletonsAsync(n)}this._removeServiceFromDictionary(t)}unbindAll(){this._bindingDictionary.traverse(((t,n)=>{this._deactivateSingletons(n)})),this._bindingDictionary=new Et}async unbindAllAsync(){const t=[];this._bindingDictionary.traverse(((n,e)=>{t.push(this._deactivateSingletonsAsync(e))})),await Promise.all(t),this._bindingDictionary=new Et}onActivation(t,n){this._activations.add(t,n)}onDeactivation(t,n){this._deactivations.add(t,n)}isBound(t){let n=this._bindingDictionary.hasKey(t);return!n&&this.parent&&(n=this.parent.isBound(t)),n}isCurrentBound(t){return this._bindingDictionary.hasKey(t)}isBoundNamed(t,n){return this.isBoundTagged(t,r,n)}isBoundTagged(t,r,s){let o=!1;if(this._bindingDictionary.hasKey(t)){const a=this._bindingDictionary.get(t),c=function(t,r,s){const o=L(r,s),a=n(o);if(a.kind===e.unmanaged)throw new Error("Unexpected metadata when creating target");const c=new i("",a,"Variable"),d=new $(t);return new K(r,d,null,[],c)}(this,t,{customTag:{key:r,value:s},isMultiInject:!1});o=a.some((t=>t.constraint(c)))}return!o&&this.parent&&(o=this.parent.isBoundTagged(t,r,s)),o}snapshot(){this._snapshots.push(Rt.of(this._bindingDictionary.clone(),this._middleware,this._activations.clone(),this._deactivations.clone(),this._moduleActivationStore.clone()))}restore(){const t=this._snapshots.pop();if(void 0===t)throw new Error("No snapshot available to restore.");this._bindingDictionary=t.bindings,this._activations=t.activations,this._deactivations=t.deactivations,this._middleware=t.middleware,this._moduleActivationStore=t.moduleActivationStore}createChild(t){const n=new Bt(t||this.options);return n.parent=this,n}applyMiddleware(...t){const n=this._middleware?this._middleware:this._planAndResolve();this._middleware=t.reduce(((t,n)=>n(t)),n)}applyCustomMetadataReader(t){this._metadataReader=t}get(t){const n=this._getNotAllArgs(t,!1,!1);return this._getButThrowIfAsync(n)}async getAsync(t){const n=this._getNotAllArgs(t,!1,!1);return this._get(n)}getTagged(t,n,e){const i=this._getNotAllArgs(t,!1,!1,n,e);return this._getButThrowIfAsync(i)}async getTaggedAsync(t,n,e){const i=this._getNotAllArgs(t,!1,!1,n,e);return this._get(i)}getNamed(t,n){return this.getTagged(t,r,n)}async getNamedAsync(t,n){return this.getTaggedAsync(t,r,n)}getAll(t,n){const e=this._getAllArgs(t,n,!1);return this._getButThrowIfAsync(e)}async getAllAsync(t,n){const e=this._getAllArgs(t,n,!1);return this._getAll(e)}getAllTagged(t,n,e){const i=this._getNotAllArgs(t,!0,!1,n,e);return this._getButThrowIfAsync(i)}async getAllTaggedAsync(t,n,e){const i=this._getNotAllArgs(t,!0,!1,n,e);return this._getAll(i)}getAllNamed(t,n){return this.getAllTagged(t,r,n)}async getAllNamedAsync(t,n){return this.getAllTaggedAsync(t,r,n)}resolve(t){const n=this.isBound(t);n||this.bind(t).toSelf();const e=this.get(t);return n||this.unbind(t),e}tryGet(t){const n=this._getNotAllArgs(t,!1,!0);return this._getButThrowIfAsync(n)}async tryGetAsync(t){const n=this._getNotAllArgs(t,!1,!0);return this._get(n)}tryGetTagged(t,n,e){const i=this._getNotAllArgs(t,!1,!0,n,e);return this._getButThrowIfAsync(i)}async tryGetTaggedAsync(t,n,e){const i=this._getNotAllArgs(t,!1,!0,n,e);return this._get(i)}tryGetNamed(t,n){return this.tryGetTagged(t,r,n)}async tryGetNamedAsync(t,n){return this.tryGetTaggedAsync(t,r,n)}tryGetAll(t,n){const e=this._getAllArgs(t,n,!0);return this._getButThrowIfAsync(e)}async tryGetAllAsync(t,n){const e=this._getAllArgs(t,n,!0);return this._getAll(e)}tryGetAllTagged(t,n,e){const i=this._getNotAllArgs(t,!0,!0,n,e);return this._getButThrowIfAsync(i)}async tryGetAllTaggedAsync(t,n,e){const i=this._getNotAllArgs(t,!0,!0,n,e);return this._getAll(i)}tryGetAllNamed(t,n){return this.tryGetAllTagged(t,r,n)}async tryGetAllNamedAsync(t,n){return this.tryGetAllTaggedAsync(t,r,n)}_preDestroy(t,n){if(void 0!==t&&Reflect.hasMetadata(p,t)){const e=Reflect.getMetadata(p,t);return n[e.value]?.()}}_removeModuleHandlers(t){const n=this._moduleActivationStore.remove(t);this._activations.removeIntersection(n.onActivations),this._deactivations.removeIntersection(n.onDeactivations)}_removeModuleBindings(t){return this._bindingDictionary.removeByCondition((n=>n.moduleId===t))}_deactivate(t,n){const e=null==n?void 0:Object.getPrototypeOf(n).constructor;try{if(this._deactivations.hasKey(t.serviceIdentifier)){const i=this._deactivateContainer(n,this._deactivations.get(t.serviceIdentifier).values());if(Q(i))return this._handleDeactivationError(i.then((async()=>this._propagateContainerDeactivationThenBindingAndPreDestroyAsync(t,n,e))),t.serviceIdentifier)}const i=this._propagateContainerDeactivationThenBindingAndPreDestroy(t,n,e);if(Q(i))return this._handleDeactivationError(i,t.serviceIdentifier)}catch(n){if(n instanceof Error)throw new Error(R(P(t.serviceIdentifier),n.message))}}async _handleDeactivationError(t,n){try{await t}catch(t){if(t instanceof Error)throw new Error(R(P(n),t.message))}}_deactivateContainer(t,n){let e=n.next();for(;"function"==typeof e.value;){const i=e.value(t);if(Q(i))return i.then((async()=>this._deactivateContainerAsync(t,n)));e=n.next()}}async _deactivateContainerAsync(t,n){let e=n.next();for(;"function"==typeof e.value;)await e.value(t),e=n.next()}_getContainerModuleHelpersFactory(){const t=t=>n=>{const e=this._buildBinding(n);return e.moduleId=t,this._bind(e)},n=()=>t=>{this.unbind(t)},e=()=>async t=>this.unbindAsync(t),i=()=>t=>this.isBound(t),r=n=>{const e=t(n);return t=>(this.unbind(t),e(t))},s=t=>(n,e)=>{this._moduleActivationStore.addActivation(t,n,e),this.onActivation(n,e)},o=t=>(n,e)=>{this._moduleActivationStore.addDeactivation(t,n,e),this.onDeactivation(n,e)};return a=>({bindFunction:t(a),isboundFunction:i(),onActivationFunction:s(a),onDeactivationFunction:o(a),rebindFunction:r(a),unbindAsyncFunction:e(),unbindFunction:n()})}_bind(t){return this._bindingDictionary.add(t.serviceIdentifier,t),new xt(t)}_buildBinding(t){const n=this.options.defaultScope||v.Transient;return new S(t,n)}async _getAll(t){return Promise.all(this._get(t))}_get(t){const n={...t,contextInterceptor:t=>t,targetType:w.Variable};if(this._middleware){const t=this._middleware(n);if(null==t)throw new Error("Invalid return type in middleware. Middleware must return!");return t}return this._planAndResolve()(n)}_getButThrowIfAsync(t){const n=this._get(t);if(X(n))throw new Error(`You are attempting to construct ${function(t){return"function"==typeof t?`[function/class ${t.name||"<anonymous>"}]`:"symbol"==typeof t?t.toString():`'${t}'`}(t.serviceIdentifier)} in a synchronous way but it has asynchronous dependencies.`);return n}_getAllArgs(t,n,e){return{avoidConstraints:!n?.enforceBindingConstraints,isMultiInject:!0,isOptional:e,serviceIdentifier:t}}_getNotAllArgs(t,n,e,i,r){return{avoidConstraints:!1,isMultiInject:n,isOptional:e,key:i,serviceIdentifier:t,value:r}}_getPlanMetadataFromNextArgs(t){const n={isMultiInject:t.isMultiInject};return void 0!==t.key&&(n.customTag={key:t.key,value:t.value}),!0===t.isOptional&&(n.isOptional=!0),n}_planAndResolve(){return t=>{let n=J(this._metadataReader,this,t.targetType,t.serviceIdentifier,this._getPlanMetadataFromNextArgs(t),t.avoidConstraints);n=t.contextInterceptor(n);const e=function(t){return dt(t.plan.rootRequest.requestScope)(t.plan.rootRequest)}(n);return e}}_deactivateIfSingleton(t){if(t.activated)return Q(t.cache)?t.cache.then((n=>this._deactivate(t,n))):this._deactivate(t,t.cache)}_deactivateSingletons(t){for(const n of t){if(Q(this._deactivateIfSingleton(n)))throw new Error("Attempting to unbind dependency with asynchronous destruction (@preDestroy or onDeactivation)")}}async _deactivateSingletonsAsync(t){await Promise.all(t.map((async t=>this._deactivateIfSingleton(t))))}_propagateContainerDeactivationThenBindingAndPreDestroy(t,n,e){return this.parent?this._deactivate.bind(this.parent)(t,n):this._bindingDeactivationAndPreDestroy(t,n,e)}async _propagateContainerDeactivationThenBindingAndPreDestroyAsync(t,n,e){this.parent?await this._deactivate.bind(this.parent)(t,n):await this._bindingDeactivationAndPreDestroyAsync(t,n,e)}_removeServiceFromDictionary(t){try{this._bindingDictionary.remove(t)}catch(n){throw new Error(`Could not unbind serviceIdentifier: ${P(t)}`)}}_bindingDeactivationAndPreDestroy(t,n,e){if("function"==typeof t.onDeactivation){const i=t.onDeactivation(n);if(Q(i))return i.then((()=>this._preDestroy(e,n)))}return this._preDestroy(e,n)}async _bindingDeactivationAndPreDestroyAsync(t,n,e){"function"==typeof t.onDeactivation&&await t.onDeactivation(n),await this._preDestroy(e,n)}}class Pt{id;registry;constructor(t){this.id=A(),this.registry=t}}class kt{id;registry;constructor(t){this.id=A(),this.registry=t}}function qt(t,n,e,i){!function(t){if(void 0!==t)throw new Error(x)}(n),jt(u,t,e.toString(),i)}function Ft(t){let n=[];if(Array.isArray(t)){n=t;const e=function(t){const n=new Set;for(const e of t){if(n.has(e))return e;n.add(e)}}(n.map((t=>t.key)));if(void 0!==e)throw new Error(`${I} ${e.toString()}`)}else n=[t];return n}function jt(t,n,e,i){const r=Ft(i);let s={};Reflect.hasOwnMetadata(t,n)&&(s=Reflect.getMetadata(t,n));let o=s[e];if(void 0===o)o=[];else for(const t of o)if(r.some((n=>n.key===t.key)))throw new Error(`${I} ${t.key.toString()}`);o.push(...r),s[e]=o,Reflect.defineMetadata(t,s,n)}function Ot(t){return(n,e,i)=>{"number"==typeof i?qt(n,e,i,t):function(t,n,e){if(void 0!==t.prototype)throw new Error(x);jt(h,t.constructor,n,e)}(n,e,t)}}function $t(t,n){Reflect.decorate(t,n)}function Vt(t,n){return function(e,i){n(e,i,t)}}function Wt(t,n,e){"number"==typeof e?$t([Vt(e,t)],n):"string"==typeof e?Reflect.decorate([t],n,e):$t([t],n)}function Gt(){return function(t){if(Reflect.hasOwnMetadata(l,t))throw new Error("Cannot apply @injectable decorator multiple times.");const n=Reflect.getMetadata(g,t)||[];return Reflect.defineMetadata(l,n,t),t}}function Kt(t,n){return Ot(new V(t,n))}function Ht(t){return Ot(new V(r,t))}function Ut(t){return n=>(e,i,r)=>{if(void 0===n){const t="function"==typeof e?e.name:e.constructor.name;throw new Error(`@inject called with undefined this could mean that the class ${t} has a circular dependency problem. You can use a LazyServiceIdentifer to overcome this limitation.`)}Ot(new V(t,n))(e,i,r)}}const Lt=Ut(c);function Yt(){return Ot(new V(a,!0))}function zt(){return function(t,n,e){qt(t,n,e,new V(o,!0))}}const Jt=Ut(d);function Qt(t){return function(n,e,i){qt(n,e,i,new V(s,t))}}function Xt(t,n){return()=>(e,i)=>{const r=new V(t,i);if(Reflect.hasOwnMetadata(t,e.constructor))throw new Error(n);Reflect.defineMetadata(t,r,e.constructor)}}const Zt=Xt(y,"Cannot apply @postConstruct decorator multiple times in the same class"),tn=Xt(p,"Cannot apply @preDestroy decorator multiple times in the same class"),nn=_;export{kt as AsyncContainerModule,v as BindingScopeEnum,b as BindingTypeEnum,Bt as Container,Pt as ContainerModule,nn as METADATA_KEY,E as MetadataReader,w as TargetTypeEnum,Ot as createTaggedDecorator,Wt as decorate,P as getServiceIdentifierAsString,A as id,Lt as inject,Gt as injectable,it as multiBindToService,Jt as multiInject,Ht as named,At as namedConstraint,Yt as optional,Zt as postConstruct,tn as preDestroy,Kt as tagged,mt as taggedConstraint,Qt as targetName,wt as traverseAncerstors,St as typeConstraint,zt as unmanaged};
1
+ import"reflect-metadata";export{LazyServiceIdentifier}from"@inversifyjs/common";export{Container,ContainerModule}from"@inversifyjs/container";export{bindingScopeValues,bindingTypeValues,decorate,inject,injectFromBase,injectable,multiInject,named,optional,postConstruct,preDestroy,tagged,unmanaged}from"@inversifyjs/core";
2
2
  //# sourceMappingURL=index.js.map