inversify 6.0.1 → 6.0.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.
Files changed (490) hide show
  1. package/.nyc_output/16b95af9-19b9-451c-8475-9a8585677128.json +1 -0
  2. package/.nyc_output/processinfo/16b95af9-19b9-451c-8475-9a8585677128.json +1 -0
  3. package/.nyc_output/processinfo/index.json +1 -1
  4. package/CHANGELOG.md +81 -56
  5. package/LICENSE +22 -22
  6. package/README.md +309 -308
  7. package/amd/annotation/decorator_utils.js +114 -115
  8. package/amd/annotation/inject.js +27 -28
  9. package/amd/annotation/inject_base.js +17 -18
  10. package/amd/annotation/injectable.js +37 -38
  11. package/amd/annotation/lazy_service_identifier.js +15 -16
  12. package/amd/annotation/multi_inject.js +27 -28
  13. package/amd/annotation/named.js +29 -30
  14. package/amd/annotation/optional.js +29 -30
  15. package/amd/annotation/post_construct.js +28 -29
  16. package/amd/annotation/pre_destroy.js +28 -29
  17. package/amd/annotation/property_event_decorator.js +17 -18
  18. package/amd/annotation/tagged.js +9 -10
  19. package/amd/annotation/target_name.js +32 -33
  20. package/amd/annotation/unmanaged.js +32 -33
  21. package/amd/bindings/binding.js +39 -40
  22. package/amd/bindings/binding_count.js +10 -12
  23. package/amd/constants/error_msgs.js +64 -65
  24. package/amd/constants/literal_types.js +28 -29
  25. package/amd/constants/metadata_keys.js +28 -29
  26. package/amd/container/container.js +719 -714
  27. package/amd/container/container_module.js +21 -22
  28. package/amd/container/container_snapshot.js +20 -21
  29. package/amd/container/lookup.js +127 -128
  30. package/amd/container/module_activation_store.js +53 -54
  31. package/amd/interfaces/interfaces.js +10 -11
  32. package/amd/inversify.js +55 -55
  33. package/amd/planning/context.js +19 -20
  34. package/amd/planning/metadata.js +41 -42
  35. package/amd/planning/metadata_reader.js +43 -44
  36. package/amd/planning/plan.js +13 -14
  37. package/amd/planning/planner.js +163 -164
  38. package/amd/planning/queryable_string.js +30 -31
  39. package/amd/planning/reflection_utils.js +157 -158
  40. package/amd/planning/request.js +26 -27
  41. package/amd/planning/target.js +101 -102
  42. package/amd/resolution/instantiation.js +211 -208
  43. package/amd/resolution/resolver.js +222 -223
  44. package/amd/scope/scope.js +93 -94
  45. package/amd/syntax/binding_in_syntax.js +24 -25
  46. package/amd/syntax/binding_in_when_on_syntax.js +75 -76
  47. package/amd/syntax/binding_on_syntax.js +20 -21
  48. package/amd/syntax/binding_to_syntax.js +105 -106
  49. package/amd/syntax/binding_when_on_syntax.js +65 -66
  50. package/amd/syntax/binding_when_syntax.js +102 -103
  51. package/amd/syntax/constraint_helpers.js +61 -62
  52. package/amd/utils/async.js +17 -18
  53. package/amd/utils/binding_utils.js +77 -78
  54. package/amd/utils/clonable.js +12 -13
  55. package/amd/utils/exceptions.js +42 -43
  56. package/amd/utils/factory_type.js +11 -12
  57. package/amd/utils/id.js +10 -11
  58. package/amd/utils/js.js +19 -20
  59. package/amd/utils/serialization.js +129 -130
  60. package/es/annotation/decorator_utils.js +88 -89
  61. package/es/annotation/inject.js +4 -5
  62. package/es/annotation/inject_base.js +14 -15
  63. package/es/annotation/injectable.js +13 -14
  64. package/es/annotation/lazy_service_identifier.js +10 -11
  65. package/es/annotation/multi_inject.js +4 -5
  66. package/es/annotation/named.js +7 -8
  67. package/es/annotation/optional.js +7 -8
  68. package/es/annotation/post_construct.js +5 -6
  69. package/es/annotation/pre_destroy.js +5 -6
  70. package/es/annotation/property_event_decorator.js +13 -14
  71. package/es/annotation/tagged.js +6 -7
  72. package/es/annotation/target_name.js +10 -11
  73. package/es/annotation/unmanaged.js +10 -11
  74. package/es/bindings/binding.js +36 -37
  75. package/es/bindings/binding_count.js +5 -7
  76. package/es/constants/error_msgs.js +52 -53
  77. package/es/constants/literal_types.js +21 -22
  78. package/es/constants/metadata_keys.js +23 -24
  79. package/es/container/container.js +707 -702
  80. package/es/container/container_module.js +17 -18
  81. package/es/container/container_snapshot.js +15 -16
  82. package/es/container/lookup.js +104 -105
  83. package/es/container/module_activation_store.js +49 -50
  84. package/es/interfaces/interfaces.js +5 -6
  85. package/es/inversify.js +25 -25
  86. package/es/planning/context.js +15 -16
  87. package/es/planning/metadata.js +17 -18
  88. package/es/planning/metadata_reader.js +19 -20
  89. package/es/planning/plan.js +8 -9
  90. package/es/planning/planner.js +147 -148
  91. package/es/planning/queryable_string.js +25 -26
  92. package/es/planning/reflection_utils.js +135 -136
  93. package/es/planning/request.js +22 -23
  94. package/es/planning/target.js +81 -82
  95. package/es/resolution/instantiation.js +190 -187
  96. package/es/resolution/resolver.js +205 -206
  97. package/es/scope/scope.js +88 -89
  98. package/es/syntax/binding_in_syntax.js +21 -22
  99. package/es/syntax/binding_in_when_on_syntax.js +73 -74
  100. package/es/syntax/binding_on_syntax.js +16 -17
  101. package/es/syntax/binding_to_syntax.js +84 -85
  102. package/es/syntax/binding_when_on_syntax.js +62 -63
  103. package/es/syntax/binding_when_syntax.js +99 -100
  104. package/es/syntax/constraint_helpers.js +35 -36
  105. package/es/utils/async.js +11 -12
  106. package/es/utils/binding_utils.js +53 -54
  107. package/es/utils/clonable.js +7 -8
  108. package/es/utils/exceptions.js +16 -17
  109. package/es/utils/factory_type.js +6 -7
  110. package/es/utils/id.js +5 -6
  111. package/es/utils/js.js +13 -14
  112. package/es/utils/serialization.js +100 -101
  113. package/es6/annotation/decorator_utils.js +109 -110
  114. package/es6/annotation/inject.js +26 -27
  115. package/es6/annotation/inject_base.js +18 -19
  116. package/es6/annotation/injectable.js +35 -36
  117. package/es6/annotation/lazy_service_identifier.js +12 -13
  118. package/es6/annotation/multi_inject.js +26 -27
  119. package/es6/annotation/named.js +29 -30
  120. package/es6/annotation/optional.js +29 -30
  121. package/es6/annotation/post_construct.js +27 -28
  122. package/es6/annotation/pre_destroy.js +27 -28
  123. package/es6/annotation/property_event_decorator.js +16 -17
  124. package/es6/annotation/tagged.js +9 -10
  125. package/es6/annotation/target_name.js +32 -33
  126. package/es6/annotation/unmanaged.js +32 -33
  127. package/es6/bindings/binding.js +38 -39
  128. package/es6/bindings/binding_count.js +8 -10
  129. package/es6/constants/error_msgs.js +53 -54
  130. package/es6/constants/literal_types.js +26 -27
  131. package/es6/constants/metadata_keys.js +26 -27
  132. package/es6/container/container.js +520 -516
  133. package/es6/container/container_module.js +18 -19
  134. package/es6/container/container_snapshot.js +15 -16
  135. package/es6/container/lookup.js +120 -121
  136. package/es6/container/module_activation_store.js +51 -52
  137. package/es6/interfaces/interfaces.js +8 -9
  138. package/es6/inversify.js +76 -75
  139. package/es6/planning/context.js +17 -18
  140. package/es6/planning/metadata.js +38 -39
  141. package/es6/planning/metadata_reader.js +38 -39
  142. package/es6/planning/plan.js +10 -11
  143. package/es6/planning/planner.js +170 -171
  144. package/es6/planning/queryable_string.js +27 -28
  145. package/es6/planning/reflection_utils.js +155 -156
  146. package/es6/planning/request.js +24 -25
  147. package/es6/planning/target.js +99 -100
  148. package/es6/resolution/instantiation.js +151 -148
  149. package/es6/resolution/resolver.js +187 -188
  150. package/es6/scope/scope.js +57 -58
  151. package/es6/syntax/binding_in_syntax.js +23 -24
  152. package/es6/syntax/binding_in_when_on_syntax.js +75 -76
  153. package/es6/syntax/binding_on_syntax.js +18 -19
  154. package/es6/syntax/binding_to_syntax.js +105 -106
  155. package/es6/syntax/binding_when_on_syntax.js +64 -65
  156. package/es6/syntax/binding_when_syntax.js +79 -80
  157. package/es6/syntax/constraint_helpers.js +58 -59
  158. package/es6/utils/async.js +15 -16
  159. package/es6/utils/binding_utils.js +68 -69
  160. package/es6/utils/clonable.js +10 -11
  161. package/es6/utils/exceptions.js +40 -41
  162. package/es6/utils/factory_type.js +9 -10
  163. package/es6/utils/id.js +8 -9
  164. package/es6/utils/js.js +16 -17
  165. package/es6/utils/serialization.js +126 -127
  166. package/lib/annotation/decorator_utils.d.ts +16 -16
  167. package/lib/annotation/decorator_utils.js +113 -114
  168. package/lib/annotation/inject.d.ts +2 -2
  169. package/lib/annotation/inject.js +26 -27
  170. package/lib/annotation/inject_base.d.ts +3 -3
  171. package/lib/annotation/inject_base.js +18 -19
  172. package/lib/annotation/injectable.d.ts +2 -2
  173. package/lib/annotation/injectable.js +35 -36
  174. package/lib/annotation/lazy_service_identifier.d.ts +7 -7
  175. package/lib/annotation/lazy_service_identifier.js +13 -14
  176. package/lib/annotation/multi_inject.d.ts +2 -2
  177. package/lib/annotation/multi_inject.js +26 -27
  178. package/lib/annotation/named.d.ts +2 -2
  179. package/lib/annotation/named.js +29 -30
  180. package/lib/annotation/optional.d.ts +2 -2
  181. package/lib/annotation/optional.js +29 -30
  182. package/lib/annotation/post_construct.d.ts +4 -4
  183. package/lib/annotation/post_construct.js +27 -28
  184. package/lib/annotation/pre_destroy.d.ts +4 -4
  185. package/lib/annotation/pre_destroy.js +27 -28
  186. package/lib/annotation/property_event_decorator.d.ts +4 -4
  187. package/lib/annotation/property_event_decorator.js +16 -17
  188. package/lib/annotation/tagged.d.ts +2 -2
  189. package/lib/annotation/tagged.js +9 -10
  190. package/lib/annotation/target_name.d.ts +3 -3
  191. package/lib/annotation/target_name.js +32 -33
  192. package/lib/annotation/unmanaged.d.ts +3 -3
  193. package/lib/annotation/unmanaged.js +32 -33
  194. package/lib/bindings/binding.d.ts +20 -20
  195. package/lib/bindings/binding.js +39 -40
  196. package/lib/bindings/binding_count.d.ts +5 -6
  197. package/lib/bindings/binding_count.js +8 -10
  198. package/lib/constants/error_msgs.d.ts +32 -32
  199. package/lib/constants/error_msgs.js +62 -63
  200. package/lib/constants/literal_types.d.ts +5 -5
  201. package/lib/constants/literal_types.js +26 -27
  202. package/lib/constants/metadata_keys.d.ts +13 -13
  203. package/lib/constants/metadata_keys.js +26 -27
  204. package/lib/container/container.d.ts +73 -73
  205. package/lib/container/container.js +729 -724
  206. package/lib/container/container_module.d.ts +11 -11
  207. package/lib/container/container_module.js +20 -21
  208. package/lib/container/container_snapshot.d.ts +10 -10
  209. package/lib/container/container_snapshot.js +18 -19
  210. package/lib/container/lookup.d.ts +16 -16
  211. package/lib/container/lookup.js +126 -127
  212. package/lib/container/module_activation_store.d.ts +10 -10
  213. package/lib/container/module_activation_store.js +52 -53
  214. package/lib/interfaces/interfaces.d.ts +284 -283
  215. package/lib/interfaces/interfaces.js +8 -9
  216. package/lib/inversify.d.ts +25 -24
  217. package/lib/inversify.js +76 -75
  218. package/lib/planning/context.d.ts +11 -11
  219. package/lib/planning/context.js +18 -19
  220. package/lib/planning/metadata.d.ts +8 -8
  221. package/lib/planning/metadata.js +39 -40
  222. package/lib/planning/metadata_reader.d.ts +6 -6
  223. package/lib/planning/metadata_reader.js +41 -42
  224. package/lib/planning/plan.d.ts +7 -7
  225. package/lib/planning/plan.js +11 -12
  226. package/lib/planning/planner.d.ts +5 -5
  227. package/lib/planning/planner.js +171 -172
  228. package/lib/planning/queryable_string.d.ts +11 -11
  229. package/lib/planning/queryable_string.js +28 -29
  230. package/lib/planning/reflection_utils.d.ts +5 -5
  231. package/lib/planning/reflection_utils.js +159 -160
  232. package/lib/planning/request.d.ts +14 -14
  233. package/lib/planning/request.js +25 -26
  234. package/lib/planning/target.d.ts +23 -23
  235. package/lib/planning/target.js +103 -104
  236. package/lib/resolution/instantiation.d.ts +3 -3
  237. package/lib/resolution/instantiation.js +212 -209
  238. package/lib/resolution/resolver.d.ts +3 -3
  239. package/lib/resolution/resolver.js +227 -228
  240. package/lib/scope/scope.d.ts +3 -3
  241. package/lib/scope/scope.js +93 -94
  242. package/lib/syntax/binding_in_syntax.d.ts +9 -9
  243. package/lib/syntax/binding_in_syntax.js +24 -25
  244. package/lib/syntax/binding_in_when_on_syntax.d.ts +29 -29
  245. package/lib/syntax/binding_in_when_on_syntax.js +76 -77
  246. package/lib/syntax/binding_on_syntax.d.ts +8 -8
  247. package/lib/syntax/binding_on_syntax.js +19 -20
  248. package/lib/syntax/binding_to_syntax.d.ts +18 -18
  249. package/lib/syntax/binding_to_syntax.js +106 -107
  250. package/lib/syntax/binding_when_on_syntax.d.ts +25 -25
  251. package/lib/syntax/binding_when_on_syntax.js +65 -66
  252. package/lib/syntax/binding_when_syntax.d.ts +21 -21
  253. package/lib/syntax/binding_when_syntax.js +102 -103
  254. package/lib/syntax/constraint_helpers.d.ts +6 -6
  255. package/lib/syntax/constraint_helpers.js +60 -61
  256. package/lib/tsconfig.tsbuildinfo +1 -1
  257. package/lib/utils/async.d.ts +3 -3
  258. package/lib/utils/async.js +15 -16
  259. package/lib/utils/binding_utils.d.ts +4 -4
  260. package/lib/utils/binding_utils.js +78 -79
  261. package/lib/utils/clonable.d.ts +3 -3
  262. package/lib/utils/clonable.js +10 -11
  263. package/lib/utils/exceptions.d.ts +2 -2
  264. package/lib/utils/exceptions.js +40 -41
  265. package/lib/utils/factory_type.d.ts +5 -5
  266. package/lib/utils/factory_type.js +9 -10
  267. package/lib/utils/id.d.ts +2 -2
  268. package/lib/utils/id.js +8 -9
  269. package/lib/utils/js.d.ts +1 -1
  270. package/lib/utils/js.js +17 -18
  271. package/lib/utils/serialization.d.ts +10 -10
  272. package/lib/utils/serialization.js +127 -128
  273. package/package.json +61 -75
  274. package/.auditignore +0 -2
  275. package/.nyc_output/c19faffc-964b-4370-81a6-9b4942f3c35e.json +0 -1
  276. package/.nyc_output/processinfo/c19faffc-964b-4370-81a6-9b4942f3c35e.json +0 -1
  277. package/CODE_OF_CONDUCT.md +0 -46
  278. package/amd/annotation/decorator_utils.js.map +0 -1
  279. package/amd/annotation/inject.js.map +0 -1
  280. package/amd/annotation/inject_base.js.map +0 -1
  281. package/amd/annotation/injectable.js.map +0 -1
  282. package/amd/annotation/lazy_service_identifier.js.map +0 -1
  283. package/amd/annotation/multi_inject.js.map +0 -1
  284. package/amd/annotation/named.js.map +0 -1
  285. package/amd/annotation/optional.js.map +0 -1
  286. package/amd/annotation/post_construct.js.map +0 -1
  287. package/amd/annotation/pre_destroy.js.map +0 -1
  288. package/amd/annotation/property_event_decorator.js.map +0 -1
  289. package/amd/annotation/tagged.js.map +0 -1
  290. package/amd/annotation/target_name.js.map +0 -1
  291. package/amd/annotation/unmanaged.js.map +0 -1
  292. package/amd/bindings/binding.js.map +0 -1
  293. package/amd/bindings/binding_count.js.map +0 -1
  294. package/amd/constants/error_msgs.js.map +0 -1
  295. package/amd/constants/literal_types.js.map +0 -1
  296. package/amd/constants/metadata_keys.js.map +0 -1
  297. package/amd/container/container.js.map +0 -1
  298. package/amd/container/container_module.js.map +0 -1
  299. package/amd/container/container_snapshot.js.map +0 -1
  300. package/amd/container/lookup.js.map +0 -1
  301. package/amd/container/module_activation_store.js.map +0 -1
  302. package/amd/interfaces/interfaces.js.map +0 -1
  303. package/amd/inversify.js.map +0 -1
  304. package/amd/planning/context.js.map +0 -1
  305. package/amd/planning/metadata.js.map +0 -1
  306. package/amd/planning/metadata_reader.js.map +0 -1
  307. package/amd/planning/plan.js.map +0 -1
  308. package/amd/planning/planner.js.map +0 -1
  309. package/amd/planning/queryable_string.js.map +0 -1
  310. package/amd/planning/reflection_utils.js.map +0 -1
  311. package/amd/planning/request.js.map +0 -1
  312. package/amd/planning/target.js.map +0 -1
  313. package/amd/resolution/instantiation.js.map +0 -1
  314. package/amd/resolution/resolver.js.map +0 -1
  315. package/amd/scope/scope.js.map +0 -1
  316. package/amd/syntax/binding_in_syntax.js.map +0 -1
  317. package/amd/syntax/binding_in_when_on_syntax.js.map +0 -1
  318. package/amd/syntax/binding_on_syntax.js.map +0 -1
  319. package/amd/syntax/binding_to_syntax.js.map +0 -1
  320. package/amd/syntax/binding_when_on_syntax.js.map +0 -1
  321. package/amd/syntax/binding_when_syntax.js.map +0 -1
  322. package/amd/syntax/constraint_helpers.js.map +0 -1
  323. package/amd/utils/async.js.map +0 -1
  324. package/amd/utils/binding_utils.js.map +0 -1
  325. package/amd/utils/clonable.js.map +0 -1
  326. package/amd/utils/exceptions.js.map +0 -1
  327. package/amd/utils/factory_type.js.map +0 -1
  328. package/amd/utils/id.js.map +0 -1
  329. package/amd/utils/js.js.map +0 -1
  330. package/amd/utils/serialization.js.map +0 -1
  331. package/es/annotation/decorator_utils.js.map +0 -1
  332. package/es/annotation/inject.js.map +0 -1
  333. package/es/annotation/inject_base.js.map +0 -1
  334. package/es/annotation/injectable.js.map +0 -1
  335. package/es/annotation/lazy_service_identifier.js.map +0 -1
  336. package/es/annotation/multi_inject.js.map +0 -1
  337. package/es/annotation/named.js.map +0 -1
  338. package/es/annotation/optional.js.map +0 -1
  339. package/es/annotation/post_construct.js.map +0 -1
  340. package/es/annotation/pre_destroy.js.map +0 -1
  341. package/es/annotation/property_event_decorator.js.map +0 -1
  342. package/es/annotation/tagged.js.map +0 -1
  343. package/es/annotation/target_name.js.map +0 -1
  344. package/es/annotation/unmanaged.js.map +0 -1
  345. package/es/bindings/binding.js.map +0 -1
  346. package/es/bindings/binding_count.js.map +0 -1
  347. package/es/constants/error_msgs.js.map +0 -1
  348. package/es/constants/literal_types.js.map +0 -1
  349. package/es/constants/metadata_keys.js.map +0 -1
  350. package/es/container/container.js.map +0 -1
  351. package/es/container/container_module.js.map +0 -1
  352. package/es/container/container_snapshot.js.map +0 -1
  353. package/es/container/lookup.js.map +0 -1
  354. package/es/container/module_activation_store.js.map +0 -1
  355. package/es/interfaces/interfaces.js.map +0 -1
  356. package/es/inversify.js.map +0 -1
  357. package/es/planning/context.js.map +0 -1
  358. package/es/planning/metadata.js.map +0 -1
  359. package/es/planning/metadata_reader.js.map +0 -1
  360. package/es/planning/plan.js.map +0 -1
  361. package/es/planning/planner.js.map +0 -1
  362. package/es/planning/queryable_string.js.map +0 -1
  363. package/es/planning/reflection_utils.js.map +0 -1
  364. package/es/planning/request.js.map +0 -1
  365. package/es/planning/target.js.map +0 -1
  366. package/es/resolution/instantiation.js.map +0 -1
  367. package/es/resolution/resolver.js.map +0 -1
  368. package/es/scope/scope.js.map +0 -1
  369. package/es/syntax/binding_in_syntax.js.map +0 -1
  370. package/es/syntax/binding_in_when_on_syntax.js.map +0 -1
  371. package/es/syntax/binding_on_syntax.js.map +0 -1
  372. package/es/syntax/binding_to_syntax.js.map +0 -1
  373. package/es/syntax/binding_when_on_syntax.js.map +0 -1
  374. package/es/syntax/binding_when_syntax.js.map +0 -1
  375. package/es/syntax/constraint_helpers.js.map +0 -1
  376. package/es/utils/async.js.map +0 -1
  377. package/es/utils/binding_utils.js.map +0 -1
  378. package/es/utils/clonable.js.map +0 -1
  379. package/es/utils/exceptions.js.map +0 -1
  380. package/es/utils/factory_type.js.map +0 -1
  381. package/es/utils/id.js.map +0 -1
  382. package/es/utils/js.js.map +0 -1
  383. package/es/utils/serialization.js.map +0 -1
  384. package/es6/annotation/decorator_utils.js.map +0 -1
  385. package/es6/annotation/inject.js.map +0 -1
  386. package/es6/annotation/inject_base.js.map +0 -1
  387. package/es6/annotation/injectable.js.map +0 -1
  388. package/es6/annotation/lazy_service_identifier.js.map +0 -1
  389. package/es6/annotation/multi_inject.js.map +0 -1
  390. package/es6/annotation/named.js.map +0 -1
  391. package/es6/annotation/optional.js.map +0 -1
  392. package/es6/annotation/post_construct.js.map +0 -1
  393. package/es6/annotation/pre_destroy.js.map +0 -1
  394. package/es6/annotation/property_event_decorator.js.map +0 -1
  395. package/es6/annotation/tagged.js.map +0 -1
  396. package/es6/annotation/target_name.js.map +0 -1
  397. package/es6/annotation/unmanaged.js.map +0 -1
  398. package/es6/bindings/binding.js.map +0 -1
  399. package/es6/bindings/binding_count.js.map +0 -1
  400. package/es6/constants/error_msgs.js.map +0 -1
  401. package/es6/constants/literal_types.js.map +0 -1
  402. package/es6/constants/metadata_keys.js.map +0 -1
  403. package/es6/container/container.js.map +0 -1
  404. package/es6/container/container_module.js.map +0 -1
  405. package/es6/container/container_snapshot.js.map +0 -1
  406. package/es6/container/lookup.js.map +0 -1
  407. package/es6/container/module_activation_store.js.map +0 -1
  408. package/es6/interfaces/interfaces.js.map +0 -1
  409. package/es6/inversify.js.map +0 -1
  410. package/es6/planning/context.js.map +0 -1
  411. package/es6/planning/metadata.js.map +0 -1
  412. package/es6/planning/metadata_reader.js.map +0 -1
  413. package/es6/planning/plan.js.map +0 -1
  414. package/es6/planning/planner.js.map +0 -1
  415. package/es6/planning/queryable_string.js.map +0 -1
  416. package/es6/planning/reflection_utils.js.map +0 -1
  417. package/es6/planning/request.js.map +0 -1
  418. package/es6/planning/target.js.map +0 -1
  419. package/es6/resolution/instantiation.js.map +0 -1
  420. package/es6/resolution/resolver.js.map +0 -1
  421. package/es6/scope/scope.js.map +0 -1
  422. package/es6/syntax/binding_in_syntax.js.map +0 -1
  423. package/es6/syntax/binding_in_when_on_syntax.js.map +0 -1
  424. package/es6/syntax/binding_on_syntax.js.map +0 -1
  425. package/es6/syntax/binding_to_syntax.js.map +0 -1
  426. package/es6/syntax/binding_when_on_syntax.js.map +0 -1
  427. package/es6/syntax/binding_when_syntax.js.map +0 -1
  428. package/es6/syntax/constraint_helpers.js.map +0 -1
  429. package/es6/utils/async.js.map +0 -1
  430. package/es6/utils/binding_utils.js.map +0 -1
  431. package/es6/utils/clonable.js.map +0 -1
  432. package/es6/utils/exceptions.js.map +0 -1
  433. package/es6/utils/factory_type.js.map +0 -1
  434. package/es6/utils/id.js.map +0 -1
  435. package/es6/utils/js.js.map +0 -1
  436. package/es6/utils/serialization.js.map +0 -1
  437. package/lib/annotation/decorator_utils.js.map +0 -1
  438. package/lib/annotation/inject.js.map +0 -1
  439. package/lib/annotation/inject_base.js.map +0 -1
  440. package/lib/annotation/injectable.js.map +0 -1
  441. package/lib/annotation/lazy_service_identifier.js.map +0 -1
  442. package/lib/annotation/multi_inject.js.map +0 -1
  443. package/lib/annotation/named.js.map +0 -1
  444. package/lib/annotation/optional.js.map +0 -1
  445. package/lib/annotation/post_construct.js.map +0 -1
  446. package/lib/annotation/pre_destroy.js.map +0 -1
  447. package/lib/annotation/property_event_decorator.js.map +0 -1
  448. package/lib/annotation/tagged.js.map +0 -1
  449. package/lib/annotation/target_name.js.map +0 -1
  450. package/lib/annotation/unmanaged.js.map +0 -1
  451. package/lib/bindings/binding.js.map +0 -1
  452. package/lib/bindings/binding_count.js.map +0 -1
  453. package/lib/constants/error_msgs.js.map +0 -1
  454. package/lib/constants/literal_types.js.map +0 -1
  455. package/lib/constants/metadata_keys.js.map +0 -1
  456. package/lib/container/container.js.map +0 -1
  457. package/lib/container/container_module.js.map +0 -1
  458. package/lib/container/container_snapshot.js.map +0 -1
  459. package/lib/container/lookup.js.map +0 -1
  460. package/lib/container/module_activation_store.js.map +0 -1
  461. package/lib/interfaces/interfaces.js.map +0 -1
  462. package/lib/inversify.js.map +0 -1
  463. package/lib/planning/context.js.map +0 -1
  464. package/lib/planning/metadata.js.map +0 -1
  465. package/lib/planning/metadata_reader.js.map +0 -1
  466. package/lib/planning/plan.js.map +0 -1
  467. package/lib/planning/planner.js.map +0 -1
  468. package/lib/planning/queryable_string.js.map +0 -1
  469. package/lib/planning/reflection_utils.js.map +0 -1
  470. package/lib/planning/request.js.map +0 -1
  471. package/lib/planning/target.js.map +0 -1
  472. package/lib/resolution/instantiation.js.map +0 -1
  473. package/lib/resolution/resolver.js.map +0 -1
  474. package/lib/scope/scope.js.map +0 -1
  475. package/lib/syntax/binding_in_syntax.js.map +0 -1
  476. package/lib/syntax/binding_in_when_on_syntax.js.map +0 -1
  477. package/lib/syntax/binding_on_syntax.js.map +0 -1
  478. package/lib/syntax/binding_to_syntax.js.map +0 -1
  479. package/lib/syntax/binding_when_on_syntax.js.map +0 -1
  480. package/lib/syntax/binding_when_syntax.js.map +0 -1
  481. package/lib/syntax/constraint_helpers.js.map +0 -1
  482. package/lib/utils/async.js.map +0 -1
  483. package/lib/utils/binding_utils.js.map +0 -1
  484. package/lib/utils/clonable.js.map +0 -1
  485. package/lib/utils/exceptions.js.map +0 -1
  486. package/lib/utils/factory_type.js.map +0 -1
  487. package/lib/utils/id.js.map +0 -1
  488. package/lib/utils/js.js.map +0 -1
  489. package/lib/utils/serialization.js.map +0 -1
  490. package/mocha.opts +0 -3
@@ -1,283 +1,284 @@
1
- import { FactoryType } from "../utils/factory_type";
2
- declare namespace interfaces {
3
- export type DynamicValue<T> = (context: interfaces.Context) => T | Promise<T>;
4
- export type ContainerResolution<T> = T | Promise<T> | (T | Promise<T>)[];
5
- type AsyncCallback<TCallback> = TCallback extends (...args: infer TArgs) => infer TResult ? (...args: TArgs) => Promise<TResult> : never;
6
- export type BindingScope = "Singleton" | "Transient" | "Request";
7
- export type BindingType = "ConstantValue" | "Constructor" | "DynamicValue" | "Factory" | "Function" | "Instance" | "Invalid" | "Provider";
8
- export type TargetType = "ConstructorArgument" | "ClassProperty" | "Variable";
9
- export interface BindingScopeEnum {
10
- Request: interfaces.BindingScope;
11
- Singleton: interfaces.BindingScope;
12
- Transient: interfaces.BindingScope;
13
- }
14
- export interface BindingTypeEnum {
15
- ConstantValue: interfaces.BindingType;
16
- Constructor: interfaces.BindingType;
17
- DynamicValue: interfaces.BindingType;
18
- Factory: interfaces.BindingType;
19
- Function: interfaces.BindingType;
20
- Instance: interfaces.BindingType;
21
- Invalid: interfaces.BindingType;
22
- Provider: interfaces.BindingType;
23
- }
24
- export interface TargetTypeEnum {
25
- ConstructorArgument: interfaces.TargetType;
26
- ClassProperty: interfaces.TargetType;
27
- Variable: interfaces.TargetType;
28
- }
29
- export type Newable<T> = new (...args: never[]) => T;
30
- export interface Abstract<T> {
31
- prototype: T;
32
- }
33
- export type ServiceIdentifier<T = unknown> = (string | symbol | Newable<T> | Abstract<T>);
34
- export interface Clonable<T> {
35
- clone(): T;
36
- }
37
- export type BindingActivation<T> = (context: interfaces.Context, injectable: T) => T | Promise<T>;
38
- export type BindingDeactivation<T> = (injectable: T) => void | Promise<void>;
39
- export interface Binding<TActivated> extends Clonable<Binding<TActivated>> {
40
- id: number;
41
- moduleId: ContainerModuleBase["id"];
42
- activated: boolean;
43
- serviceIdentifier: ServiceIdentifier<TActivated>;
44
- constraint: ConstraintFunction;
45
- dynamicValue: DynamicValue<TActivated> | null;
46
- scope: BindingScope;
47
- type: BindingType;
48
- implementationType: Newable<TActivated> | TActivated | null;
49
- factory: FactoryCreator<unknown> | null;
50
- provider: ProviderCreator<unknown> | null;
51
- onActivation: BindingActivation<TActivated> | null;
52
- onDeactivation: BindingDeactivation<TActivated> | null;
53
- cache: null | TActivated | Promise<TActivated>;
54
- }
55
- export type SimpleFactory<T, U extends unknown[] = unknown[]> = (...args: U) => T;
56
- export type MultiFactory<T, U extends unknown[] = unknown[], V extends unknown[] = unknown[]> = (...args: U) => SimpleFactory<T, V>;
57
- export type Factory<T, U extends unknown[] = unknown[], V extends unknown[] = unknown[]> = SimpleFactory<T, U> | MultiFactory<T, U, V>;
58
- export type FactoryCreator<T, U extends unknown[] = unknown[], V extends unknown[] = unknown[]> = (context: Context) => Factory<T, U, V>;
59
- export type AutoNamedFactory<T> = SimpleFactory<T, [string]>;
60
- export type AutoFactory<T> = SimpleFactory<T, []>;
61
- export type FactoryTypeFunction<T = unknown> = (context: interfaces.Context) => T | Promise<T>;
62
- export interface FactoryDetails {
63
- factoryType: FactoryType;
64
- factory: FactoryTypeFunction | null;
65
- }
66
- export type Provider<T> = (...args: any[]) => (((...args: any[]) => Promise<T>) | Promise<T>);
67
- export type ProviderCreator<T> = (context: Context) => Provider<T>;
68
- export interface NextArgs<T = unknown> {
69
- avoidConstraints: boolean;
70
- contextInterceptor: ((contexts: Context) => Context);
71
- isMultiInject: boolean;
72
- targetType: TargetType;
73
- serviceIdentifier: interfaces.ServiceIdentifier<T>;
74
- key?: string | number | symbol;
75
- value?: unknown;
76
- }
77
- export type Next = (args: NextArgs) => (any | any[]);
78
- export type Middleware = (next: Next) => Next;
79
- export type ContextInterceptor = (context: interfaces.Context) => interfaces.Context;
80
- export interface Context {
81
- id: number;
82
- container: Container;
83
- plan: Plan;
84
- currentRequest: Request;
85
- addPlan(plan: Plan): void;
86
- setCurrentRequest(request: Request): void;
87
- }
88
- export type MetadataOrMetadataArray = Metadata | Metadata[];
89
- export interface Metadata<TValue = unknown> {
90
- key: string | number | symbol;
91
- value: TValue;
92
- }
93
- export interface Plan {
94
- parentContext: Context;
95
- rootRequest: Request;
96
- }
97
- export interface QueryableString {
98
- startsWith(searchString: string): boolean;
99
- endsWith(searchString: string): boolean;
100
- contains(searchString: string): boolean;
101
- equals(compareString: string): boolean;
102
- value(): string;
103
- }
104
- export type ResolveRequestHandler = (request: interfaces.Request) => unknown;
105
- export type RequestScope = Map<unknown, unknown>;
106
- export interface Request {
107
- id: number;
108
- serviceIdentifier: ServiceIdentifier;
109
- parentContext: Context;
110
- parentRequest: Request | null;
111
- childRequests: Request[];
112
- target: Target;
113
- bindings: Binding<unknown>[];
114
- requestScope: RequestScope | null;
115
- addChildRequest(serviceIdentifier: ServiceIdentifier, bindings: (Binding<unknown> | Binding<unknown>[]), target: Target): Request;
116
- }
117
- export interface Target {
118
- id: number;
119
- serviceIdentifier: ServiceIdentifier;
120
- type: TargetType;
121
- name: QueryableString;
122
- identifier: string | symbol;
123
- metadata: Metadata[];
124
- getNamedTag(): interfaces.Metadata<string> | null;
125
- getCustomTags(): interfaces.Metadata[] | null;
126
- hasTag(key: string | number | symbol): boolean;
127
- isArray(): boolean;
128
- matchesArray(name: interfaces.ServiceIdentifier): boolean;
129
- isNamed(): boolean;
130
- isTagged(): boolean;
131
- isOptional(): boolean;
132
- matchesNamedTag(name: string): boolean;
133
- matchesTag(key: string | number | symbol): (value: unknown) => boolean;
134
- }
135
- export interface ContainerOptions {
136
- autoBindInjectable?: boolean;
137
- defaultScope?: BindingScope;
138
- skipBaseClassChecks?: boolean;
139
- }
140
- export interface Container {
141
- id: number;
142
- parent: Container | null;
143
- options: ContainerOptions;
144
- bind<T>(serviceIdentifier: ServiceIdentifier<T>): BindingToSyntax<T>;
145
- rebind<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): interfaces.BindingToSyntax<T>;
146
- rebindAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): Promise<interfaces.BindingToSyntax<T>>;
147
- unbind(serviceIdentifier: ServiceIdentifier): void;
148
- unbindAsync(serviceIdentifier: interfaces.ServiceIdentifier): Promise<void>;
149
- unbindAll(): void;
150
- unbindAllAsync(): Promise<void>;
151
- isBound(serviceIdentifier: ServiceIdentifier): boolean;
152
- isCurrentBound<T>(serviceIdentifier: ServiceIdentifier<T>): boolean;
153
- isBoundNamed(serviceIdentifier: ServiceIdentifier, named: string | number | symbol): boolean;
154
- isBoundTagged(serviceIdentifier: ServiceIdentifier, key: string | number | symbol, value: unknown): boolean;
155
- get<T>(serviceIdentifier: ServiceIdentifier<T>): T;
156
- getNamed<T>(serviceIdentifier: ServiceIdentifier<T>, named: string | number | symbol): T;
157
- getTagged<T>(serviceIdentifier: ServiceIdentifier<T>, key: string | number | symbol, value: unknown): T;
158
- getAll<T>(serviceIdentifier: ServiceIdentifier<T>): T[];
159
- getAllTagged<T>(serviceIdentifier: ServiceIdentifier<T>, key: string | number | symbol, value: unknown): T[];
160
- getAllNamed<T>(serviceIdentifier: ServiceIdentifier<T>, named: string | number | symbol): T[];
161
- getAsync<T>(serviceIdentifier: ServiceIdentifier<T>): Promise<T>;
162
- getNamedAsync<T>(serviceIdentifier: ServiceIdentifier<T>, named: string | number | symbol): Promise<T>;
163
- getTaggedAsync<T>(serviceIdentifier: ServiceIdentifier<T>, key: string | number | symbol, value: unknown): Promise<T>;
164
- getAllAsync<T>(serviceIdentifier: ServiceIdentifier<T>): Promise<T[]>;
165
- getAllTaggedAsync<T>(serviceIdentifier: ServiceIdentifier<T>, key: string | number | symbol, value: unknown): Promise<T[]>;
166
- getAllNamedAsync<T>(serviceIdentifier: ServiceIdentifier<T>, named: string | number | symbol): Promise<T[]>;
167
- onActivation<T>(serviceIdentifier: ServiceIdentifier<T>, onActivation: BindingActivation<T>): void;
168
- onDeactivation<T>(serviceIdentifier: ServiceIdentifier<T>, onDeactivation: BindingDeactivation<T>): void;
169
- resolve<T>(constructorFunction: interfaces.Newable<T>): T;
170
- load(...modules: ContainerModule[]): void;
171
- loadAsync(...modules: AsyncContainerModule[]): Promise<void>;
172
- unload(...modules: ContainerModuleBase[]): void;
173
- unloadAsync(...modules: ContainerModuleBase[]): Promise<void>;
174
- applyCustomMetadataReader(metadataReader: MetadataReader): void;
175
- applyMiddleware(...middleware: Middleware[]): void;
176
- snapshot(): void;
177
- restore(): void;
178
- createChild(): Container;
179
- }
180
- export type Bind = <T>(serviceIdentifier: ServiceIdentifier<T>) => BindingToSyntax<T>;
181
- export type Rebind = <T>(serviceIdentifier: ServiceIdentifier<T>) => BindingToSyntax<T>;
182
- export type Unbind = <T>(serviceIdentifier: ServiceIdentifier<T>) => void;
183
- export type UnbindAsync = <T>(serviceIdentifier: ServiceIdentifier<T>) => Promise<void>;
184
- export type IsBound = <T>(serviceIdentifier: ServiceIdentifier<T>) => boolean;
185
- export interface ContainerModuleBase {
186
- id: number;
187
- }
188
- export interface ContainerModule extends ContainerModuleBase {
189
- registry: ContainerModuleCallBack;
190
- }
191
- export interface AsyncContainerModule extends ContainerModuleBase {
192
- registry: AsyncContainerModuleCallBack;
193
- }
194
- export interface ModuleActivationHandlers {
195
- onActivations: Lookup<BindingActivation<unknown>>;
196
- onDeactivations: Lookup<BindingDeactivation<unknown>>;
197
- }
198
- export interface ModuleActivationStore extends Clonable<ModuleActivationStore> {
199
- addDeactivation(moduleId: ContainerModuleBase["id"], serviceIdentifier: ServiceIdentifier<unknown>, onDeactivation: interfaces.BindingDeactivation<unknown>): void;
200
- addActivation(moduleId: ContainerModuleBase["id"], serviceIdentifier: ServiceIdentifier<unknown>, onActivation: interfaces.BindingActivation<unknown>): void;
201
- remove(moduleId: ContainerModuleBase["id"]): ModuleActivationHandlers;
202
- }
203
- 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;
204
- export type AsyncContainerModuleCallBack = AsyncCallback<ContainerModuleCallBack>;
205
- export interface ContainerSnapshot {
206
- bindings: Lookup<Binding<unknown>>;
207
- activations: Lookup<BindingActivation<unknown>>;
208
- deactivations: Lookup<BindingDeactivation<unknown>>;
209
- middleware: Next | null;
210
- moduleActivationStore: interfaces.ModuleActivationStore;
211
- }
212
- export interface Lookup<T> extends Clonable<Lookup<T>> {
213
- add(serviceIdentifier: ServiceIdentifier, value: T): void;
214
- getMap(): Map<interfaces.ServiceIdentifier, T[]>;
215
- get(serviceIdentifier: ServiceIdentifier): T[];
216
- remove(serviceIdentifier: interfaces.ServiceIdentifier): void;
217
- removeByCondition(condition: (item: T) => boolean): T[];
218
- removeIntersection(lookup: interfaces.Lookup<T>): void;
219
- hasKey(serviceIdentifier: ServiceIdentifier): boolean;
220
- clone(): Lookup<T>;
221
- traverse(func: (key: interfaces.ServiceIdentifier, value: T[]) => void): void;
222
- }
223
- export interface BindingOnSyntax<T> {
224
- onActivation(fn: (context: Context, injectable: T) => T | Promise<T>): BindingWhenSyntax<T>;
225
- onDeactivation(fn: (injectable: T) => void | Promise<void>): BindingWhenSyntax<T>;
226
- }
227
- export interface BindingWhenSyntax<T> {
228
- when(constraint: (request: Request) => boolean): BindingOnSyntax<T>;
229
- whenTargetNamed(name: string | number | symbol): BindingOnSyntax<T>;
230
- whenTargetIsDefault(): BindingOnSyntax<T>;
231
- whenTargetTagged(tag: string | number | symbol, value: unknown): BindingOnSyntax<T>;
232
- whenInjectedInto(parent: (NewableFunction | string)): BindingOnSyntax<T>;
233
- whenParentNamed(name: string | number | symbol): BindingOnSyntax<T>;
234
- whenParentTagged(tag: string | number | symbol, value: unknown): BindingOnSyntax<T>;
235
- whenAnyAncestorIs(ancestor: (NewableFunction | string)): BindingOnSyntax<T>;
236
- whenNoAncestorIs(ancestor: (NewableFunction | string)): BindingOnSyntax<T>;
237
- whenAnyAncestorNamed(name: string | number | symbol): BindingOnSyntax<T>;
238
- whenAnyAncestorTagged(tag: string | number | symbol, value: unknown): BindingOnSyntax<T>;
239
- whenNoAncestorNamed(name: string | number | symbol): BindingOnSyntax<T>;
240
- whenNoAncestorTagged(tag: string | number | symbol, value: unknown): BindingOnSyntax<T>;
241
- whenAnyAncestorMatches(constraint: (request: Request) => boolean): BindingOnSyntax<T>;
242
- whenNoAncestorMatches(constraint: (request: Request) => boolean): BindingOnSyntax<T>;
243
- }
244
- export interface BindingWhenOnSyntax<T> extends BindingWhenSyntax<T>, BindingOnSyntax<T> {
245
- }
246
- export interface BindingInSyntax<T> {
247
- inSingletonScope(): BindingWhenOnSyntax<T>;
248
- inTransientScope(): BindingWhenOnSyntax<T>;
249
- inRequestScope(): BindingWhenOnSyntax<T>;
250
- }
251
- export interface BindingInWhenOnSyntax<T> extends BindingInSyntax<T>, BindingWhenOnSyntax<T> {
252
- }
253
- export interface BindingToSyntax<T> {
254
- to(constructor: new (...args: never[]) => T): BindingInWhenOnSyntax<T>;
255
- toSelf(): BindingInWhenOnSyntax<T>;
256
- toConstantValue(value: T): BindingWhenOnSyntax<T>;
257
- toDynamicValue(func: DynamicValue<T>): BindingInWhenOnSyntax<T>;
258
- toConstructor<T2>(constructor: Newable<T2>): BindingWhenOnSyntax<T>;
259
- toFactory<T2, T3 extends unknown[] = unknown[], T4 extends unknown[] = unknown[]>(factory: FactoryCreator<T2, T3, T4>): BindingWhenOnSyntax<T>;
260
- toFunction(func: T): BindingWhenOnSyntax<T>;
261
- toAutoFactory<T2>(serviceIdentifier: ServiceIdentifier<T2>): BindingWhenOnSyntax<T>;
262
- toAutoNamedFactory<T2>(serviceIdentifier: ServiceIdentifier<T2>): BindingWhenOnSyntax<T>;
263
- toProvider<T2>(provider: ProviderCreator<T2>): BindingWhenOnSyntax<T>;
264
- toService(service: ServiceIdentifier<T>): void;
265
- }
266
- export interface ConstraintFunction {
267
- metaData?: Metadata;
268
- (request: Request | null): boolean;
269
- }
270
- export interface MetadataReader {
271
- getConstructorMetadata(constructorFunc: NewableFunction): ConstructorMetadata;
272
- getPropertiesMetadata(constructorFunc: NewableFunction): MetadataMap;
273
- }
274
- export interface MetadataMap {
275
- [propertyNameOrArgumentIndex: string | symbol]: Metadata[];
276
- }
277
- export interface ConstructorMetadata {
278
- compilerGeneratedMetadata: NewableFunction[] | undefined;
279
- userGeneratedMetadata: MetadataMap;
280
- }
281
- export {};
282
- }
283
- export { interfaces };
1
+ import { FactoryType } from '../utils/factory_type';
2
+ declare namespace interfaces {
3
+ export type DynamicValue<T> = (context: interfaces.Context) => T | Promise<T>;
4
+ export type ContainerResolution<T> = T | Promise<T> | (T | Promise<T>)[];
5
+ type AsyncCallback<TCallback> = TCallback extends (...args: infer TArgs) => infer TResult ? (...args: TArgs) => Promise<TResult> : never;
6
+ export type BindingScope = 'Singleton' | 'Transient' | 'Request';
7
+ export type BindingType = 'ConstantValue' | 'Constructor' | 'DynamicValue' | 'Factory' | 'Function' | 'Instance' | 'Invalid' | 'Provider';
8
+ export type TargetType = 'ConstructorArgument' | 'ClassProperty' | 'Variable';
9
+ export interface BindingScopeEnum {
10
+ Request: interfaces.BindingScope;
11
+ Singleton: interfaces.BindingScope;
12
+ Transient: interfaces.BindingScope;
13
+ }
14
+ export interface BindingTypeEnum {
15
+ ConstantValue: interfaces.BindingType;
16
+ Constructor: interfaces.BindingType;
17
+ DynamicValue: interfaces.BindingType;
18
+ Factory: interfaces.BindingType;
19
+ Function: interfaces.BindingType;
20
+ Instance: interfaces.BindingType;
21
+ Invalid: interfaces.BindingType;
22
+ Provider: interfaces.BindingType;
23
+ }
24
+ export interface TargetTypeEnum {
25
+ ConstructorArgument: interfaces.TargetType;
26
+ ClassProperty: interfaces.TargetType;
27
+ Variable: interfaces.TargetType;
28
+ }
29
+ export type Newable<T> = new (...args: any[]) => T;
30
+ export type Instance<T> = T & Record<string, () => void>;
31
+ export interface Abstract<T> {
32
+ prototype: T;
33
+ }
34
+ export type ServiceIdentifier<T = unknown> = (string | symbol | Newable<T> | Abstract<T>);
35
+ export interface Clonable<T> {
36
+ clone(): T;
37
+ }
38
+ export type BindingActivation<T = unknown> = (context: interfaces.Context, injectable: T) => T | Promise<T>;
39
+ export type BindingDeactivation<T = unknown> = (injectable: T) => void | Promise<void>;
40
+ export interface Binding<TActivated = unknown> extends Clonable<Binding<TActivated>> {
41
+ id: number;
42
+ moduleId: ContainerModuleBase['id'];
43
+ activated: boolean;
44
+ serviceIdentifier: ServiceIdentifier<TActivated>;
45
+ constraint: ConstraintFunction;
46
+ dynamicValue: DynamicValue<TActivated> | null;
47
+ scope: BindingScope;
48
+ type: BindingType;
49
+ implementationType: Newable<TActivated> | TActivated | null;
50
+ factory: FactoryCreator<unknown> | null;
51
+ provider: ProviderCreator<unknown> | null;
52
+ onActivation: BindingActivation<TActivated> | null;
53
+ onDeactivation: BindingDeactivation<TActivated> | null;
54
+ cache: null | TActivated | Promise<TActivated>;
55
+ }
56
+ export type SimpleFactory<T, U extends unknown[] = unknown[]> = (...args: U) => T;
57
+ export type MultiFactory<T, U extends unknown[] = unknown[], V extends unknown[] = unknown[]> = (...args: U) => SimpleFactory<T, V>;
58
+ export type Factory<T, U extends unknown[] = unknown[], V extends unknown[] = unknown[]> = SimpleFactory<T, U> | MultiFactory<T, U, V>;
59
+ export type FactoryCreator<T, U extends unknown[] = unknown[], V extends unknown[] = unknown[]> = (context: Context) => Factory<T, U, V>;
60
+ export type AutoNamedFactory<T> = SimpleFactory<T, [string]>;
61
+ export type AutoFactory<T> = SimpleFactory<T, []>;
62
+ export type FactoryTypeFunction<T = unknown> = (context: interfaces.Context) => T | Promise<T>;
63
+ export interface FactoryDetails {
64
+ factoryType: FactoryType;
65
+ factory: FactoryTypeFunction | null;
66
+ }
67
+ export type Provider<T> = (...args: any[]) => (((...args: any[]) => Promise<T>) | Promise<T>);
68
+ export type ProviderCreator<T> = (context: Context) => Provider<T>;
69
+ export interface NextArgs<T = unknown> {
70
+ avoidConstraints: boolean;
71
+ contextInterceptor: ((contexts: Context) => Context);
72
+ isMultiInject: boolean;
73
+ targetType: TargetType;
74
+ serviceIdentifier: interfaces.ServiceIdentifier<T>;
75
+ key?: string | number | symbol | undefined;
76
+ value?: unknown;
77
+ }
78
+ export type Next = (args: NextArgs) => (unknown | unknown[]);
79
+ export type Middleware = (next: Next) => Next;
80
+ export type ContextInterceptor = (context: interfaces.Context) => interfaces.Context;
81
+ export interface Context {
82
+ id: number;
83
+ container: Container;
84
+ plan: Plan;
85
+ currentRequest: Request;
86
+ addPlan(plan: Plan): void;
87
+ setCurrentRequest(request: Request): void;
88
+ }
89
+ export type MetadataOrMetadataArray = Metadata | Metadata[];
90
+ export interface Metadata<TValue = unknown> {
91
+ key: string | number | symbol;
92
+ value: TValue;
93
+ }
94
+ export interface Plan {
95
+ parentContext: Context;
96
+ rootRequest: Request;
97
+ }
98
+ export interface QueryableString {
99
+ startsWith(searchString: string): boolean;
100
+ endsWith(searchString: string): boolean;
101
+ contains(searchString: string): boolean;
102
+ equals(compareString: string): boolean;
103
+ value(): string;
104
+ }
105
+ export type ResolveRequestHandler = (request: interfaces.Request) => unknown;
106
+ export type RequestScope = Map<unknown, unknown>;
107
+ export interface Request {
108
+ id: number;
109
+ serviceIdentifier: ServiceIdentifier;
110
+ parentContext: Context;
111
+ parentRequest: Request | null;
112
+ childRequests: Request[];
113
+ target: Target;
114
+ bindings: Binding<unknown>[];
115
+ requestScope: RequestScope | null;
116
+ addChildRequest(serviceIdentifier: ServiceIdentifier, bindings: (Binding<unknown> | Binding<unknown>[]), target: Target): Request;
117
+ }
118
+ export interface Target {
119
+ id: number;
120
+ serviceIdentifier: ServiceIdentifier;
121
+ type: TargetType;
122
+ name: QueryableString;
123
+ identifier: string | symbol;
124
+ metadata: Metadata[];
125
+ getNamedTag(): interfaces.Metadata<string> | null;
126
+ getCustomTags(): interfaces.Metadata[] | null;
127
+ hasTag(key: string | number | symbol): boolean;
128
+ isArray(): boolean;
129
+ matchesArray(name: interfaces.ServiceIdentifier): boolean;
130
+ isNamed(): boolean;
131
+ isTagged(): boolean;
132
+ isOptional(): boolean;
133
+ matchesNamedTag(name: string): boolean;
134
+ matchesTag(key: string | number | symbol): (value: unknown) => boolean;
135
+ }
136
+ export interface ContainerOptions {
137
+ autoBindInjectable?: boolean;
138
+ defaultScope?: BindingScope | undefined;
139
+ skipBaseClassChecks?: boolean;
140
+ }
141
+ export interface Container {
142
+ id: number;
143
+ parent: Container | null;
144
+ options: ContainerOptions;
145
+ bind<T>(serviceIdentifier: ServiceIdentifier<T>): BindingToSyntax<T>;
146
+ rebind<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): interfaces.BindingToSyntax<T>;
147
+ rebindAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): Promise<interfaces.BindingToSyntax<T>>;
148
+ unbind(serviceIdentifier: ServiceIdentifier): void;
149
+ unbindAsync(serviceIdentifier: interfaces.ServiceIdentifier): Promise<void>;
150
+ unbindAll(): void;
151
+ unbindAllAsync(): Promise<void>;
152
+ isBound(serviceIdentifier: ServiceIdentifier): boolean;
153
+ isCurrentBound<T>(serviceIdentifier: ServiceIdentifier<T>): boolean;
154
+ isBoundNamed(serviceIdentifier: ServiceIdentifier, named: string | number | symbol): boolean;
155
+ isBoundTagged(serviceIdentifier: ServiceIdentifier, key: string | number | symbol, value: unknown): boolean;
156
+ get<T>(serviceIdentifier: ServiceIdentifier<T>): T;
157
+ getNamed<T>(serviceIdentifier: ServiceIdentifier<T>, named: string | number | symbol): T;
158
+ getTagged<T>(serviceIdentifier: ServiceIdentifier<T>, key: string | number | symbol, value: unknown): T;
159
+ getAll<T>(serviceIdentifier: ServiceIdentifier<T>): T[];
160
+ getAllTagged<T>(serviceIdentifier: ServiceIdentifier<T>, key: string | number | symbol, value: unknown): T[];
161
+ getAllNamed<T>(serviceIdentifier: ServiceIdentifier<T>, named: string | number | symbol): T[];
162
+ getAsync<T>(serviceIdentifier: ServiceIdentifier<T>): Promise<T>;
163
+ getNamedAsync<T>(serviceIdentifier: ServiceIdentifier<T>, named: string | number | symbol): Promise<T>;
164
+ getTaggedAsync<T>(serviceIdentifier: ServiceIdentifier<T>, key: string | number | symbol, value: unknown): Promise<T>;
165
+ getAllAsync<T>(serviceIdentifier: ServiceIdentifier<T>): Promise<T[]>;
166
+ getAllTaggedAsync<T>(serviceIdentifier: ServiceIdentifier<T>, key: string | number | symbol, value: unknown): Promise<T[]>;
167
+ getAllNamedAsync<T>(serviceIdentifier: ServiceIdentifier<T>, named: string | number | symbol): Promise<T[]>;
168
+ onActivation<T>(serviceIdentifier: ServiceIdentifier<T>, onActivation: BindingActivation<T>): void;
169
+ onDeactivation<T>(serviceIdentifier: ServiceIdentifier<T>, onDeactivation: BindingDeactivation<T>): void;
170
+ resolve<T>(constructorFunction: interfaces.Newable<T>): T;
171
+ load(...modules: ContainerModule[]): void;
172
+ loadAsync(...modules: AsyncContainerModule[]): Promise<void>;
173
+ unload(...modules: ContainerModuleBase[]): void;
174
+ unloadAsync(...modules: ContainerModuleBase[]): Promise<void>;
175
+ applyCustomMetadataReader(metadataReader: MetadataReader): void;
176
+ applyMiddleware(...middleware: Middleware[]): void;
177
+ snapshot(): void;
178
+ restore(): void;
179
+ createChild(): Container;
180
+ }
181
+ export type Bind = <T = unknown>(serviceIdentifier: ServiceIdentifier<T>) => BindingToSyntax<T>;
182
+ export type Rebind = <T = unknown>(serviceIdentifier: ServiceIdentifier<T>) => BindingToSyntax<T>;
183
+ export type Unbind = <T = unknown>(serviceIdentifier: ServiceIdentifier<T>) => void;
184
+ export type UnbindAsync = <T = unknown>(serviceIdentifier: ServiceIdentifier<T>) => Promise<void>;
185
+ export type IsBound = <T = unknown>(serviceIdentifier: ServiceIdentifier<T>) => boolean;
186
+ export interface ContainerModuleBase {
187
+ id: number;
188
+ }
189
+ export interface ContainerModule extends ContainerModuleBase {
190
+ registry: ContainerModuleCallBack;
191
+ }
192
+ export interface AsyncContainerModule extends ContainerModuleBase {
193
+ registry: AsyncContainerModuleCallBack;
194
+ }
195
+ export interface ModuleActivationHandlers {
196
+ onActivations: Lookup<BindingActivation<unknown>>;
197
+ onDeactivations: Lookup<BindingDeactivation<unknown>>;
198
+ }
199
+ export interface ModuleActivationStore extends Clonable<ModuleActivationStore> {
200
+ addDeactivation(moduleId: ContainerModuleBase['id'], serviceIdentifier: ServiceIdentifier<unknown>, onDeactivation: interfaces.BindingDeactivation<unknown>): void;
201
+ addActivation(moduleId: ContainerModuleBase['id'], serviceIdentifier: ServiceIdentifier<unknown>, onActivation: interfaces.BindingActivation<unknown>): void;
202
+ remove(moduleId: ContainerModuleBase['id']): ModuleActivationHandlers;
203
+ }
204
+ 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;
205
+ export type AsyncContainerModuleCallBack = AsyncCallback<ContainerModuleCallBack>;
206
+ export interface ContainerSnapshot {
207
+ bindings: Lookup<Binding<unknown>>;
208
+ activations: Lookup<BindingActivation<unknown>>;
209
+ deactivations: Lookup<BindingDeactivation<unknown>>;
210
+ middleware: Next | null;
211
+ moduleActivationStore: interfaces.ModuleActivationStore;
212
+ }
213
+ export interface Lookup<T> extends Clonable<Lookup<T>> {
214
+ add(serviceIdentifier: ServiceIdentifier, value: T): void;
215
+ getMap(): Map<interfaces.ServiceIdentifier, T[]>;
216
+ get(serviceIdentifier: ServiceIdentifier): T[];
217
+ remove(serviceIdentifier: interfaces.ServiceIdentifier): void;
218
+ removeByCondition(condition: (item: T) => boolean): T[];
219
+ removeIntersection(lookup: interfaces.Lookup<T>): void;
220
+ hasKey(serviceIdentifier: ServiceIdentifier): boolean;
221
+ clone(): Lookup<T>;
222
+ traverse(func: (key: interfaces.ServiceIdentifier, value: T[]) => void): void;
223
+ }
224
+ export interface BindingOnSyntax<T> {
225
+ onActivation(fn: (context: Context, injectable: T) => T | Promise<T>): BindingWhenSyntax<T>;
226
+ onDeactivation(fn: (injectable: T) => void | Promise<void>): BindingWhenSyntax<T>;
227
+ }
228
+ export interface BindingWhenSyntax<T> {
229
+ when(constraint: (request: Request) => boolean): BindingOnSyntax<T>;
230
+ whenTargetNamed(name: string | number | symbol): BindingOnSyntax<T>;
231
+ whenTargetIsDefault(): BindingOnSyntax<T>;
232
+ whenTargetTagged(tag: string | number | symbol, value: unknown): BindingOnSyntax<T>;
233
+ whenInjectedInto(parent: (NewableFunction | string)): BindingOnSyntax<T>;
234
+ whenParentNamed(name: string | number | symbol): BindingOnSyntax<T>;
235
+ whenParentTagged(tag: string | number | symbol, value: unknown): BindingOnSyntax<T>;
236
+ whenAnyAncestorIs(ancestor: (NewableFunction | string)): BindingOnSyntax<T>;
237
+ whenNoAncestorIs(ancestor: (NewableFunction | string)): BindingOnSyntax<T>;
238
+ whenAnyAncestorNamed(name: string | number | symbol): BindingOnSyntax<T>;
239
+ whenAnyAncestorTagged(tag: string | number | symbol, value: unknown): BindingOnSyntax<T>;
240
+ whenNoAncestorNamed(name: string | number | symbol): BindingOnSyntax<T>;
241
+ whenNoAncestorTagged(tag: string | number | symbol, value: unknown): BindingOnSyntax<T>;
242
+ whenAnyAncestorMatches(constraint: (request: Request) => boolean): BindingOnSyntax<T>;
243
+ whenNoAncestorMatches(constraint: (request: Request) => boolean): BindingOnSyntax<T>;
244
+ }
245
+ export interface BindingWhenOnSyntax<T> extends BindingWhenSyntax<T>, BindingOnSyntax<T> {
246
+ }
247
+ export interface BindingInSyntax<T> {
248
+ inSingletonScope(): BindingWhenOnSyntax<T>;
249
+ inTransientScope(): BindingWhenOnSyntax<T>;
250
+ inRequestScope(): BindingWhenOnSyntax<T>;
251
+ }
252
+ export interface BindingInWhenOnSyntax<T> extends BindingInSyntax<T>, BindingWhenOnSyntax<T> {
253
+ }
254
+ export interface BindingToSyntax<T> {
255
+ to(constructor: Newable<T>): BindingInWhenOnSyntax<T>;
256
+ toSelf(): BindingInWhenOnSyntax<T>;
257
+ toConstantValue(value: T): BindingWhenOnSyntax<T>;
258
+ toDynamicValue(func: DynamicValue<T>): BindingInWhenOnSyntax<T>;
259
+ toConstructor<T2>(constructor: Newable<T2>): BindingWhenOnSyntax<T>;
260
+ toFactory<T2, T3 extends unknown[] = unknown[], T4 extends unknown[] = unknown[]>(factory: FactoryCreator<T2, T3, T4>): BindingWhenOnSyntax<T>;
261
+ toFunction(func: T): BindingWhenOnSyntax<T>;
262
+ toAutoFactory<T2>(serviceIdentifier: ServiceIdentifier<T2>): BindingWhenOnSyntax<T>;
263
+ toAutoNamedFactory<T2>(serviceIdentifier: ServiceIdentifier<T2>): BindingWhenOnSyntax<T>;
264
+ toProvider<T2>(provider: ProviderCreator<T2>): BindingWhenOnSyntax<T>;
265
+ toService(service: ServiceIdentifier<T>): void;
266
+ }
267
+ export interface ConstraintFunction {
268
+ metaData?: Metadata;
269
+ (request: Request | null): boolean;
270
+ }
271
+ export interface MetadataReader {
272
+ getConstructorMetadata(constructorFunc: NewableFunction): ConstructorMetadata;
273
+ getPropertiesMetadata(constructorFunc: NewableFunction): MetadataMap;
274
+ }
275
+ export interface MetadataMap {
276
+ [propertyNameOrArgumentIndex: string | symbol]: Metadata[];
277
+ }
278
+ export interface ConstructorMetadata {
279
+ compilerGeneratedMetadata: NewableFunction[] | undefined;
280
+ userGeneratedMetadata: MetadataMap;
281
+ }
282
+ export {};
283
+ }
284
+ export { interfaces };
@@ -1,9 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.interfaces = void 0;
4
- var interfaces;
5
- (function (interfaces) {
6
- ;
7
- })(interfaces || (interfaces = {}));
8
- exports.interfaces = interfaces;
9
- //# sourceMappingURL=interfaces.js.map
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.interfaces = void 0;
4
+ var interfaces;
5
+ (function (interfaces) {
6
+ ;
7
+ })(interfaces || (interfaces = {}));
8
+ exports.interfaces = interfaces;