@elsikora/cladi 2.0.2-dev.1 → 2.1.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (644) hide show
  1. package/README.md +598 -211
  2. package/dist/cjs/application/utility/safe-deep-clone.utility.d.ts.map +1 -1
  3. package/dist/cjs/application/utility/safe-deep-clone.utility.js +104 -10
  4. package/dist/cjs/application/utility/safe-deep-clone.utility.js.map +1 -1
  5. package/dist/cjs/domain/enum/captive-dependency-policy.enum.d.ts +6 -0
  6. package/dist/cjs/domain/enum/captive-dependency-policy.enum.d.ts.map +1 -0
  7. package/dist/cjs/domain/enum/captive-dependency-policy.enum.js +9 -0
  8. package/dist/cjs/domain/enum/captive-dependency-policy.enum.js.map +1 -0
  9. package/dist/cjs/domain/enum/dependency-lifecycle.enum.d.ts +6 -0
  10. package/dist/cjs/domain/enum/dependency-lifecycle.enum.d.ts.map +1 -0
  11. package/dist/cjs/domain/enum/dependency-lifecycle.enum.js +9 -0
  12. package/dist/cjs/domain/enum/dependency-lifecycle.enum.js.map +1 -0
  13. package/dist/cjs/domain/enum/di-container-duplicate-provider-policy.enum.d.ts +6 -0
  14. package/dist/cjs/domain/enum/di-container-duplicate-provider-policy.enum.d.ts.map +1 -0
  15. package/dist/cjs/domain/enum/di-container-duplicate-provider-policy.enum.js +9 -0
  16. package/dist/cjs/domain/enum/di-container-duplicate-provider-policy.enum.js.map +1 -0
  17. package/dist/cjs/domain/enum/index.d.ts +4 -0
  18. package/dist/cjs/domain/enum/index.d.ts.map +1 -1
  19. package/dist/cjs/domain/enum/logger-log-level.enum.js.map +1 -1
  20. package/dist/cjs/domain/enum/provider-type.enum.d.ts +8 -0
  21. package/dist/cjs/domain/enum/provider-type.enum.d.ts.map +1 -0
  22. package/dist/cjs/domain/enum/provider-type.enum.js +11 -0
  23. package/dist/cjs/domain/enum/provider-type.enum.js.map +1 -0
  24. package/dist/cjs/domain/index.d.ts +1 -0
  25. package/dist/cjs/domain/index.d.ts.map +1 -1
  26. package/dist/cjs/domain/interface/di/alias-provider.interface.d.ts +6 -0
  27. package/dist/cjs/domain/interface/di/alias-provider.interface.d.ts.map +1 -0
  28. package/dist/cjs/domain/interface/di/class-provider.interface.d.ts +9 -0
  29. package/dist/cjs/domain/interface/di/class-provider.interface.d.ts.map +1 -0
  30. package/dist/cjs/domain/interface/di/container-snapshot.interface.d.ts +19 -0
  31. package/dist/cjs/domain/interface/di/container-snapshot.interface.d.ts.map +1 -0
  32. package/dist/cjs/domain/interface/di/dependency-graph.interface.d.ts +19 -0
  33. package/dist/cjs/domain/interface/di/dependency-graph.interface.d.ts.map +1 -0
  34. package/dist/cjs/domain/interface/di/factory-provider.interface.d.ts +9 -0
  35. package/dist/cjs/domain/interface/di/factory-provider.interface.d.ts.map +1 -0
  36. package/dist/cjs/domain/interface/di/index.d.ts +15 -0
  37. package/dist/cjs/domain/interface/di/index.d.ts.map +1 -0
  38. package/dist/cjs/domain/interface/di/lazy-provider.interface.d.ts +6 -0
  39. package/dist/cjs/domain/interface/di/lazy-provider.interface.d.ts.map +1 -0
  40. package/dist/cjs/domain/interface/di/module.interface.d.ts +8 -0
  41. package/dist/cjs/domain/interface/di/module.interface.d.ts.map +1 -0
  42. package/dist/cjs/domain/interface/di/provider-base.interface.d.ts +11 -0
  43. package/dist/cjs/domain/interface/di/provider-base.interface.d.ts.map +1 -0
  44. package/dist/cjs/domain/interface/di/resolution-explanation.interface.d.ts +14 -0
  45. package/dist/cjs/domain/interface/di/resolution-explanation.interface.d.ts.map +1 -0
  46. package/dist/cjs/domain/interface/di/resolve-interceptor.interface.d.ts +26 -0
  47. package/dist/cjs/domain/interface/di/resolve-interceptor.interface.d.ts.map +1 -0
  48. package/dist/cjs/domain/interface/di/resolver.interface.d.ts +10 -0
  49. package/dist/cjs/domain/interface/di/resolver.interface.d.ts.map +1 -0
  50. package/dist/cjs/domain/interface/di/scope-create-options.interface.d.ts +9 -0
  51. package/dist/cjs/domain/interface/di/scope-create-options.interface.d.ts.map +1 -0
  52. package/dist/cjs/domain/interface/di/scope.interface.d.ts +23 -0
  53. package/dist/cjs/domain/interface/di/scope.interface.d.ts.map +1 -0
  54. package/dist/cjs/domain/interface/di/value-provider.interface.d.ts +5 -0
  55. package/dist/cjs/domain/interface/di/value-provider.interface.d.ts.map +1 -0
  56. package/dist/cjs/domain/interface/error.interface.d.ts +6 -2
  57. package/dist/cjs/domain/interface/error.interface.d.ts.map +1 -1
  58. package/dist/cjs/domain/interface/index.d.ts +1 -3
  59. package/dist/cjs/domain/interface/index.d.ts.map +1 -1
  60. package/dist/cjs/domain/interface/logger/index.d.ts +2 -2
  61. package/dist/cjs/domain/interface/logger/index.d.ts.map +1 -1
  62. package/dist/cjs/domain/type/di/constructor.type.d.ts +2 -0
  63. package/dist/cjs/domain/type/di/constructor.type.d.ts.map +1 -0
  64. package/dist/cjs/domain/type/di/di-container.type.d.ts +3 -0
  65. package/dist/cjs/domain/type/di/di-container.type.d.ts.map +1 -0
  66. package/dist/cjs/domain/type/di/index.d.ts +5 -0
  67. package/dist/cjs/domain/type/di/index.d.ts.map +1 -0
  68. package/dist/cjs/domain/type/di/provider.type.d.ts +7 -0
  69. package/dist/cjs/domain/type/di/provider.type.d.ts.map +1 -0
  70. package/dist/cjs/domain/type/di/token.type.d.ts +4 -0
  71. package/dist/cjs/domain/type/di/token.type.d.ts.map +1 -0
  72. package/dist/cjs/domain/type/index.d.ts +2 -0
  73. package/dist/cjs/domain/type/index.d.ts.map +1 -0
  74. package/dist/cjs/index.d.ts +1 -0
  75. package/dist/cjs/index.d.ts.map +1 -1
  76. package/dist/cjs/index.js +60 -12
  77. package/dist/cjs/index.js.map +1 -1
  78. package/dist/cjs/infrastructure/class/base/error.class.d.ts +7 -4
  79. package/dist/cjs/infrastructure/class/base/error.class.d.ts.map +1 -1
  80. package/dist/cjs/infrastructure/class/base/error.class.js +13 -3
  81. package/dist/cjs/infrastructure/class/base/error.class.js.map +1 -1
  82. package/dist/cjs/infrastructure/class/base/index.d.ts +0 -3
  83. package/dist/cjs/infrastructure/class/base/index.d.ts.map +1 -1
  84. package/dist/cjs/infrastructure/class/di/cache/coordinator.class.d.ts +14 -0
  85. package/dist/cjs/infrastructure/class/di/cache/coordinator.class.d.ts.map +1 -0
  86. package/dist/cjs/infrastructure/class/di/cache/coordinator.class.js +126 -0
  87. package/dist/cjs/infrastructure/class/di/cache/coordinator.class.js.map +1 -0
  88. package/dist/cjs/infrastructure/class/di/captive/coordinator.class.d.ts +17 -0
  89. package/dist/cjs/infrastructure/class/di/captive/coordinator.class.d.ts.map +1 -0
  90. package/dist/cjs/infrastructure/class/di/captive/coordinator.class.js +62 -0
  91. package/dist/cjs/infrastructure/class/di/captive/coordinator.class.js.map +1 -0
  92. package/dist/cjs/infrastructure/class/di/container.class.d.ts +75 -0
  93. package/dist/cjs/infrastructure/class/di/container.class.d.ts.map +1 -0
  94. package/dist/cjs/infrastructure/class/di/container.class.js +632 -0
  95. package/dist/cjs/infrastructure/class/di/container.class.js.map +1 -0
  96. package/dist/cjs/infrastructure/class/di/disposal/coordinator.class.d.ts +34 -0
  97. package/dist/cjs/infrastructure/class/di/disposal/coordinator.class.d.ts.map +1 -0
  98. package/dist/cjs/infrastructure/class/di/disposal/coordinator.class.js +93 -0
  99. package/dist/cjs/infrastructure/class/di/disposal/coordinator.class.js.map +1 -0
  100. package/dist/cjs/infrastructure/class/di/disposal/manager.class.d.ts +28 -0
  101. package/dist/cjs/infrastructure/class/di/disposal/manager.class.d.ts.map +1 -0
  102. package/dist/cjs/infrastructure/class/di/disposal/manager.class.js +104 -0
  103. package/dist/cjs/infrastructure/class/di/disposal/manager.class.js.map +1 -0
  104. package/dist/cjs/infrastructure/class/di/disposer/coordinator.class.d.ts +41 -0
  105. package/dist/cjs/infrastructure/class/di/disposer/coordinator.class.d.ts.map +1 -0
  106. package/dist/cjs/infrastructure/class/di/disposer/coordinator.class.js +140 -0
  107. package/dist/cjs/infrastructure/class/di/disposer/coordinator.class.js.map +1 -0
  108. package/dist/cjs/infrastructure/class/di/engine/resolution.class.d.ts +38 -0
  109. package/dist/cjs/infrastructure/class/di/engine/resolution.class.d.ts.map +1 -0
  110. package/dist/cjs/infrastructure/class/di/engine/resolution.class.js +153 -0
  111. package/dist/cjs/infrastructure/class/di/engine/resolution.class.js.map +1 -0
  112. package/dist/cjs/infrastructure/class/di/graph/coordinator.class.d.ts +42 -0
  113. package/dist/cjs/infrastructure/class/di/graph/coordinator.class.d.ts.map +1 -0
  114. package/dist/cjs/infrastructure/class/di/graph/coordinator.class.js +121 -0
  115. package/dist/cjs/infrastructure/class/di/graph/coordinator.class.js.map +1 -0
  116. package/dist/cjs/infrastructure/class/di/index.d.ts +3 -0
  117. package/dist/cjs/infrastructure/class/di/index.d.ts.map +1 -0
  118. package/dist/cjs/infrastructure/class/di/interceptor/dispatcher.class.d.ts +17 -0
  119. package/dist/cjs/infrastructure/class/di/interceptor/dispatcher.class.d.ts.map +1 -0
  120. package/dist/cjs/infrastructure/class/di/interceptor/dispatcher.class.js +91 -0
  121. package/dist/cjs/infrastructure/class/di/interceptor/dispatcher.class.js.map +1 -0
  122. package/dist/cjs/infrastructure/class/di/interface/index.d.ts +3 -0
  123. package/dist/cjs/infrastructure/class/di/interface/index.d.ts.map +1 -0
  124. package/dist/cjs/infrastructure/class/di/interface/internal-container-options.interface.d.ts +7 -0
  125. package/dist/cjs/infrastructure/class/di/interface/internal-container-options.interface.d.ts.map +1 -0
  126. package/dist/cjs/infrastructure/class/di/interface/provider/index.d.ts +3 -0
  127. package/dist/cjs/infrastructure/class/di/interface/provider/index.d.ts.map +1 -0
  128. package/dist/cjs/infrastructure/class/di/interface/provider/lookup.interface.d.ts +8 -0
  129. package/dist/cjs/infrastructure/class/di/interface/provider/lookup.interface.d.ts.map +1 -0
  130. package/dist/cjs/infrastructure/class/di/interface/provider/registration.interface.d.ts +11 -0
  131. package/dist/cjs/infrastructure/class/di/interface/provider/registration.interface.d.ts.map +1 -0
  132. package/dist/cjs/infrastructure/class/di/lookup/coordinator.class.d.ts +10 -0
  133. package/dist/cjs/infrastructure/class/di/lookup/coordinator.class.d.ts.map +1 -0
  134. package/dist/cjs/infrastructure/class/di/lookup/coordinator.class.js +78 -0
  135. package/dist/cjs/infrastructure/class/di/lookup/coordinator.class.js.map +1 -0
  136. package/dist/cjs/infrastructure/class/di/registration/coordinator.class.d.ts +41 -0
  137. package/dist/cjs/infrastructure/class/di/registration/coordinator.class.d.ts.map +1 -0
  138. package/dist/cjs/infrastructure/class/di/registration/coordinator.class.js +251 -0
  139. package/dist/cjs/infrastructure/class/di/registration/coordinator.class.js.map +1 -0
  140. package/dist/cjs/infrastructure/class/di/resolution/coordinator.class.d.ts +62 -0
  141. package/dist/cjs/infrastructure/class/di/resolution/coordinator.class.d.ts.map +1 -0
  142. package/dist/cjs/infrastructure/class/di/resolution/coordinator.class.js +599 -0
  143. package/dist/cjs/infrastructure/class/di/resolution/coordinator.class.js.map +1 -0
  144. package/dist/cjs/infrastructure/constant/console-logger-default-options.constant.js +4 -0
  145. package/dist/cjs/infrastructure/constant/console-logger-default-options.constant.js.map +1 -1
  146. package/dist/cjs/infrastructure/factory/core.factory.d.ts +11 -31
  147. package/dist/cjs/infrastructure/factory/core.factory.d.ts.map +1 -1
  148. package/dist/cjs/infrastructure/factory/core.factory.js +13 -47
  149. package/dist/cjs/infrastructure/factory/core.factory.js.map +1 -1
  150. package/dist/cjs/infrastructure/index.d.ts +1 -0
  151. package/dist/cjs/infrastructure/index.d.ts.map +1 -1
  152. package/dist/cjs/infrastructure/interface/base/error-options.interface.d.ts +1 -1
  153. package/dist/cjs/infrastructure/interface/base/index.d.ts +0 -3
  154. package/dist/cjs/infrastructure/interface/base/index.d.ts.map +1 -1
  155. package/dist/cjs/infrastructure/interface/console-logger-options.interface.d.ts +1 -1
  156. package/dist/cjs/infrastructure/interface/core-factory-options.interface.d.ts +1 -1
  157. package/dist/cjs/infrastructure/interface/di-container-options.interface.d.ts +12 -0
  158. package/dist/cjs/infrastructure/interface/di-container-options.interface.d.ts.map +1 -0
  159. package/dist/cjs/infrastructure/interface/index.d.ts +1 -0
  160. package/dist/cjs/infrastructure/interface/index.d.ts.map +1 -1
  161. package/dist/cjs/infrastructure/service/console-logger.service.d.ts.map +1 -1
  162. package/dist/cjs/infrastructure/service/console-logger.service.js +10 -6
  163. package/dist/cjs/infrastructure/service/console-logger.service.js.map +1 -1
  164. package/dist/cjs/infrastructure/utility/to-error.utility.d.ts +7 -0
  165. package/dist/cjs/infrastructure/utility/to-error.utility.d.ts.map +1 -0
  166. package/dist/cjs/infrastructure/utility/to-error.utility.js +22 -0
  167. package/dist/cjs/infrastructure/utility/to-error.utility.js.map +1 -0
  168. package/dist/cjs/presentation/ergonomics/constant/injectable-metadata-key.constant.d.ts +2 -0
  169. package/dist/cjs/presentation/ergonomics/constant/injectable-metadata-key.constant.d.ts.map +1 -0
  170. package/dist/cjs/presentation/ergonomics/constant/injectable-metadata-key.constant.js +6 -0
  171. package/dist/cjs/presentation/ergonomics/constant/injectable-metadata-key.constant.js.map +1 -0
  172. package/dist/cjs/presentation/ergonomics/constant/module-metadata-key.constant.d.ts +2 -0
  173. package/dist/cjs/presentation/ergonomics/constant/module-metadata-key.constant.d.ts.map +1 -0
  174. package/dist/cjs/presentation/ergonomics/constant/module-metadata-key.constant.js +6 -0
  175. package/dist/cjs/presentation/ergonomics/constant/module-metadata-key.constant.js.map +1 -0
  176. package/dist/cjs/presentation/ergonomics/decorator/after-resolve.decorator.d.ts +6 -0
  177. package/dist/cjs/presentation/ergonomics/decorator/after-resolve.decorator.d.ts.map +1 -0
  178. package/dist/cjs/presentation/ergonomics/decorator/after-resolve.decorator.js +41 -0
  179. package/dist/cjs/presentation/ergonomics/decorator/after-resolve.decorator.js.map +1 -0
  180. package/dist/cjs/presentation/ergonomics/decorator/index.d.ts +7 -0
  181. package/dist/cjs/presentation/ergonomics/decorator/index.d.ts.map +1 -0
  182. package/dist/cjs/presentation/ergonomics/decorator/inject.decorator.d.ts +8 -0
  183. package/dist/cjs/presentation/ergonomics/decorator/inject.decorator.d.ts.map +1 -0
  184. package/dist/cjs/presentation/ergonomics/decorator/inject.decorator.js +35 -0
  185. package/dist/cjs/presentation/ergonomics/decorator/inject.decorator.js.map +1 -0
  186. package/dist/cjs/presentation/ergonomics/decorator/injectable.decorator.d.ts +8 -0
  187. package/dist/cjs/presentation/ergonomics/decorator/injectable.decorator.d.ts.map +1 -0
  188. package/dist/cjs/presentation/ergonomics/decorator/injectable.decorator.js +89 -0
  189. package/dist/cjs/presentation/ergonomics/decorator/injectable.decorator.js.map +1 -0
  190. package/dist/cjs/presentation/ergonomics/decorator/module.decorator.d.ts +8 -0
  191. package/dist/cjs/presentation/ergonomics/decorator/module.decorator.d.ts.map +1 -0
  192. package/dist/cjs/presentation/ergonomics/decorator/module.decorator.js +143 -0
  193. package/dist/cjs/presentation/ergonomics/decorator/module.decorator.js.map +1 -0
  194. package/dist/cjs/presentation/ergonomics/decorator/on-dispose.decorator.d.ts +6 -0
  195. package/dist/cjs/presentation/ergonomics/decorator/on-dispose.decorator.d.ts.map +1 -0
  196. package/dist/cjs/presentation/ergonomics/decorator/on-dispose.decorator.js +41 -0
  197. package/dist/cjs/presentation/ergonomics/decorator/on-dispose.decorator.js.map +1 -0
  198. package/dist/cjs/presentation/ergonomics/decorator/on-init.decorator.d.ts +6 -0
  199. package/dist/cjs/presentation/ergonomics/decorator/on-init.decorator.d.ts.map +1 -0
  200. package/dist/cjs/presentation/ergonomics/decorator/on-init.decorator.js +41 -0
  201. package/dist/cjs/presentation/ergonomics/decorator/on-init.decorator.js.map +1 -0
  202. package/dist/cjs/presentation/ergonomics/index.d.ts +4 -0
  203. package/dist/cjs/presentation/ergonomics/index.d.ts.map +1 -0
  204. package/dist/cjs/presentation/ergonomics/interface/create/autowire-provider-options.interface.d.ts +12 -0
  205. package/dist/cjs/presentation/ergonomics/interface/create/autowire-provider-options.interface.d.ts.map +1 -0
  206. package/dist/cjs/presentation/ergonomics/interface/create/index.d.ts +3 -0
  207. package/dist/cjs/presentation/ergonomics/interface/create/index.d.ts.map +1 -0
  208. package/dist/cjs/presentation/ergonomics/interface/create/module-options.interface.d.ts +9 -0
  209. package/dist/cjs/presentation/ergonomics/interface/create/module-options.interface.d.ts.map +1 -0
  210. package/dist/cjs/presentation/ergonomics/interface/decorator/index.d.ts +2 -0
  211. package/dist/cjs/presentation/ergonomics/interface/decorator/index.d.ts.map +1 -0
  212. package/dist/cjs/presentation/ergonomics/interface/decorator/module-options.interface.d.ts +9 -0
  213. package/dist/cjs/presentation/ergonomics/interface/decorator/module-options.interface.d.ts.map +1 -0
  214. package/dist/cjs/presentation/ergonomics/interface/index.d.ts +4 -0
  215. package/dist/cjs/presentation/ergonomics/interface/index.d.ts.map +1 -0
  216. package/dist/cjs/presentation/ergonomics/interface/injectable/index.d.ts +3 -0
  217. package/dist/cjs/presentation/ergonomics/interface/injectable/index.d.ts.map +1 -0
  218. package/dist/cjs/presentation/ergonomics/interface/injectable/metadata.interface.d.ts +12 -0
  219. package/dist/cjs/presentation/ergonomics/interface/injectable/metadata.interface.d.ts.map +1 -0
  220. package/dist/cjs/presentation/ergonomics/interface/injectable/options.interface.d.ts +4 -0
  221. package/dist/cjs/presentation/ergonomics/interface/injectable/options.interface.d.ts.map +1 -0
  222. package/dist/cjs/presentation/ergonomics/utility/compose-decorated-modules.utility.d.ts +9 -0
  223. package/dist/cjs/presentation/ergonomics/utility/compose-decorated-modules.utility.d.ts.map +1 -0
  224. package/dist/cjs/presentation/ergonomics/utility/compose-decorated-modules.utility.js +63 -0
  225. package/dist/cjs/presentation/ergonomics/utility/compose-decorated-modules.utility.js.map +1 -0
  226. package/dist/cjs/presentation/ergonomics/utility/compose-modules.utility.d.ts +10 -0
  227. package/dist/cjs/presentation/ergonomics/utility/compose-modules.utility.d.ts.map +1 -0
  228. package/dist/cjs/presentation/ergonomics/utility/compose-modules.utility.js +188 -0
  229. package/dist/cjs/presentation/ergonomics/utility/compose-modules.utility.js.map +1 -0
  230. package/dist/cjs/presentation/ergonomics/utility/create/autowire-provider.utility.d.ts +14 -0
  231. package/dist/cjs/presentation/ergonomics/utility/create/autowire-provider.utility.d.ts.map +1 -0
  232. package/dist/cjs/presentation/ergonomics/utility/create/autowire-provider.utility.js +110 -0
  233. package/dist/cjs/presentation/ergonomics/utility/create/autowire-provider.utility.js.map +1 -0
  234. package/dist/cjs/presentation/ergonomics/utility/create/autowire.utility.d.ts +15 -0
  235. package/dist/cjs/presentation/ergonomics/utility/create/autowire.utility.d.ts.map +1 -0
  236. package/dist/cjs/presentation/ergonomics/utility/create/autowire.utility.js +34 -0
  237. package/dist/cjs/presentation/ergonomics/utility/create/autowire.utility.js.map +1 -0
  238. package/dist/cjs/presentation/ergonomics/utility/create/index.d.ts +5 -0
  239. package/dist/cjs/presentation/ergonomics/utility/create/index.d.ts.map +1 -0
  240. package/dist/cjs/presentation/ergonomics/utility/create/module-from-decorator.utility.d.ts +9 -0
  241. package/dist/cjs/presentation/ergonomics/utility/create/module-from-decorator.utility.d.ts.map +1 -0
  242. package/dist/cjs/presentation/ergonomics/utility/create/module-from-decorator.utility.js +135 -0
  243. package/dist/cjs/presentation/ergonomics/utility/create/module-from-decorator.utility.js.map +1 -0
  244. package/dist/cjs/presentation/ergonomics/utility/create/module.utility.d.ts +9 -0
  245. package/dist/cjs/presentation/ergonomics/utility/create/module.utility.d.ts.map +1 -0
  246. package/dist/cjs/presentation/ergonomics/utility/create/module.utility.js +19 -0
  247. package/dist/cjs/presentation/ergonomics/utility/create/module.utility.js.map +1 -0
  248. package/dist/cjs/presentation/ergonomics/utility/index.d.ts +6 -0
  249. package/dist/cjs/presentation/ergonomics/utility/index.d.ts.map +1 -0
  250. package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/get.utility.d.ts +9 -0
  251. package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/get.utility.d.ts.map +1 -0
  252. package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/get.utility.js +20 -0
  253. package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/get.utility.js.map +1 -0
  254. package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/index.d.ts +3 -0
  255. package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/index.d.ts.map +1 -0
  256. package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/set.utility.d.ts +9 -0
  257. package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/set.utility.d.ts.map +1 -0
  258. package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/set.utility.js +15 -0
  259. package/dist/cjs/presentation/ergonomics/utility/injectable-metadata/set.utility.js.map +1 -0
  260. package/dist/cjs/presentation/ergonomics/utility/module-metadata/get.utility.d.ts +9 -0
  261. package/dist/cjs/presentation/ergonomics/utility/module-metadata/get.utility.d.ts.map +1 -0
  262. package/dist/cjs/presentation/ergonomics/utility/module-metadata/get.utility.js +20 -0
  263. package/dist/cjs/presentation/ergonomics/utility/module-metadata/get.utility.js.map +1 -0
  264. package/dist/cjs/presentation/ergonomics/utility/module-metadata/index.d.ts +3 -0
  265. package/dist/cjs/presentation/ergonomics/utility/module-metadata/index.d.ts.map +1 -0
  266. package/dist/cjs/presentation/ergonomics/utility/module-metadata/set.utility.d.ts +9 -0
  267. package/dist/cjs/presentation/ergonomics/utility/module-metadata/set.utility.d.ts.map +1 -0
  268. package/dist/cjs/presentation/ergonomics/utility/module-metadata/set.utility.js +15 -0
  269. package/dist/cjs/presentation/ergonomics/utility/module-metadata/set.utility.js.map +1 -0
  270. package/dist/cjs/presentation/utility/create/di-container.utility.d.ts +9 -0
  271. package/dist/cjs/presentation/utility/create/di-container.utility.d.ts.map +1 -0
  272. package/dist/cjs/presentation/utility/create/di-container.utility.js +15 -0
  273. package/dist/cjs/presentation/utility/create/di-container.utility.js.map +1 -0
  274. package/dist/cjs/presentation/utility/create/index.d.ts +3 -3
  275. package/dist/cjs/presentation/utility/create/index.d.ts.map +1 -1
  276. package/dist/cjs/presentation/utility/create/lazy-provider.utility.d.ts +24 -0
  277. package/dist/cjs/presentation/utility/create/lazy-provider.utility.d.ts.map +1 -0
  278. package/dist/cjs/presentation/utility/create/lazy-provider.utility.js +29 -0
  279. package/dist/cjs/presentation/utility/create/lazy-provider.utility.js.map +1 -0
  280. package/dist/cjs/presentation/utility/create/logger.utility.d.ts +1 -1
  281. package/dist/cjs/presentation/utility/create/logger.utility.js +1 -1
  282. package/dist/cjs/presentation/utility/create/logger.utility.js.map +1 -1
  283. package/dist/cjs/presentation/utility/create/token.utility.d.ts +9 -0
  284. package/dist/cjs/presentation/utility/create/token.utility.d.ts.map +1 -0
  285. package/dist/cjs/presentation/utility/create/token.utility.js +14 -0
  286. package/dist/cjs/presentation/utility/create/token.utility.js.map +1 -0
  287. package/dist/esm/application/utility/safe-deep-clone.utility.d.ts.map +1 -1
  288. package/dist/esm/application/utility/safe-deep-clone.utility.js +104 -10
  289. package/dist/esm/application/utility/safe-deep-clone.utility.js.map +1 -1
  290. package/dist/esm/domain/enum/captive-dependency-policy.enum.d.ts +6 -0
  291. package/dist/esm/domain/enum/captive-dependency-policy.enum.d.ts.map +1 -0
  292. package/dist/esm/domain/enum/captive-dependency-policy.enum.js +9 -0
  293. package/dist/esm/domain/enum/captive-dependency-policy.enum.js.map +1 -0
  294. package/dist/esm/domain/enum/dependency-lifecycle.enum.d.ts +6 -0
  295. package/dist/esm/domain/enum/dependency-lifecycle.enum.d.ts.map +1 -0
  296. package/dist/esm/domain/enum/dependency-lifecycle.enum.js +9 -0
  297. package/dist/esm/domain/enum/dependency-lifecycle.enum.js.map +1 -0
  298. package/dist/esm/domain/enum/di-container-duplicate-provider-policy.enum.d.ts +6 -0
  299. package/dist/esm/domain/enum/di-container-duplicate-provider-policy.enum.d.ts.map +1 -0
  300. package/dist/esm/domain/enum/di-container-duplicate-provider-policy.enum.js +9 -0
  301. package/dist/esm/domain/enum/di-container-duplicate-provider-policy.enum.js.map +1 -0
  302. package/dist/esm/domain/enum/index.d.ts +4 -0
  303. package/dist/esm/domain/enum/index.d.ts.map +1 -1
  304. package/dist/esm/domain/enum/logger-log-level.enum.js.map +1 -1
  305. package/dist/esm/domain/enum/provider-type.enum.d.ts +8 -0
  306. package/dist/esm/domain/enum/provider-type.enum.d.ts.map +1 -0
  307. package/dist/esm/domain/enum/provider-type.enum.js +11 -0
  308. package/dist/esm/domain/enum/provider-type.enum.js.map +1 -0
  309. package/dist/esm/domain/index.d.ts +1 -0
  310. package/dist/esm/domain/index.d.ts.map +1 -1
  311. package/dist/esm/domain/interface/di/alias-provider.interface.d.ts +6 -0
  312. package/dist/esm/domain/interface/di/alias-provider.interface.d.ts.map +1 -0
  313. package/dist/esm/domain/interface/di/class-provider.interface.d.ts +9 -0
  314. package/dist/esm/domain/interface/di/class-provider.interface.d.ts.map +1 -0
  315. package/dist/esm/domain/interface/di/container-snapshot.interface.d.ts +19 -0
  316. package/dist/esm/domain/interface/di/container-snapshot.interface.d.ts.map +1 -0
  317. package/dist/esm/domain/interface/di/dependency-graph.interface.d.ts +19 -0
  318. package/dist/esm/domain/interface/di/dependency-graph.interface.d.ts.map +1 -0
  319. package/dist/esm/domain/interface/di/factory-provider.interface.d.ts +9 -0
  320. package/dist/esm/domain/interface/di/factory-provider.interface.d.ts.map +1 -0
  321. package/dist/esm/domain/interface/di/index.d.ts +15 -0
  322. package/dist/esm/domain/interface/di/index.d.ts.map +1 -0
  323. package/dist/esm/domain/interface/di/lazy-provider.interface.d.ts +6 -0
  324. package/dist/esm/domain/interface/di/lazy-provider.interface.d.ts.map +1 -0
  325. package/dist/esm/domain/interface/di/module.interface.d.ts +8 -0
  326. package/dist/esm/domain/interface/di/module.interface.d.ts.map +1 -0
  327. package/dist/esm/domain/interface/di/provider-base.interface.d.ts +11 -0
  328. package/dist/esm/domain/interface/di/provider-base.interface.d.ts.map +1 -0
  329. package/dist/esm/domain/interface/di/resolution-explanation.interface.d.ts +14 -0
  330. package/dist/esm/domain/interface/di/resolution-explanation.interface.d.ts.map +1 -0
  331. package/dist/esm/domain/interface/di/resolve-interceptor.interface.d.ts +26 -0
  332. package/dist/esm/domain/interface/di/resolve-interceptor.interface.d.ts.map +1 -0
  333. package/dist/esm/domain/interface/di/resolver.interface.d.ts +10 -0
  334. package/dist/esm/domain/interface/di/resolver.interface.d.ts.map +1 -0
  335. package/dist/esm/domain/interface/di/scope-create-options.interface.d.ts +9 -0
  336. package/dist/esm/domain/interface/di/scope-create-options.interface.d.ts.map +1 -0
  337. package/dist/esm/domain/interface/di/scope.interface.d.ts +23 -0
  338. package/dist/esm/domain/interface/di/scope.interface.d.ts.map +1 -0
  339. package/dist/esm/domain/interface/di/value-provider.interface.d.ts +5 -0
  340. package/dist/esm/domain/interface/di/value-provider.interface.d.ts.map +1 -0
  341. package/dist/esm/domain/interface/error.interface.d.ts +6 -2
  342. package/dist/esm/domain/interface/error.interface.d.ts.map +1 -1
  343. package/dist/esm/domain/interface/index.d.ts +1 -3
  344. package/dist/esm/domain/interface/index.d.ts.map +1 -1
  345. package/dist/esm/domain/interface/logger/index.d.ts +2 -2
  346. package/dist/esm/domain/interface/logger/index.d.ts.map +1 -1
  347. package/dist/esm/domain/type/di/constructor.type.d.ts +2 -0
  348. package/dist/esm/domain/type/di/constructor.type.d.ts.map +1 -0
  349. package/dist/esm/domain/type/di/di-container.type.d.ts +3 -0
  350. package/dist/esm/domain/type/di/di-container.type.d.ts.map +1 -0
  351. package/dist/esm/domain/type/di/index.d.ts +5 -0
  352. package/dist/esm/domain/type/di/index.d.ts.map +1 -0
  353. package/dist/esm/domain/type/di/provider.type.d.ts +7 -0
  354. package/dist/esm/domain/type/di/provider.type.d.ts.map +1 -0
  355. package/dist/esm/domain/type/di/token.type.d.ts +4 -0
  356. package/dist/esm/domain/type/di/token.type.d.ts.map +1 -0
  357. package/dist/esm/domain/type/index.d.ts +2 -0
  358. package/dist/esm/domain/type/index.d.ts.map +1 -0
  359. package/dist/esm/index.d.ts +1 -0
  360. package/dist/esm/index.d.ts.map +1 -1
  361. package/dist/esm/index.js +24 -6
  362. package/dist/esm/index.js.map +1 -1
  363. package/dist/esm/infrastructure/class/base/error.class.d.ts +7 -4
  364. package/dist/esm/infrastructure/class/base/error.class.d.ts.map +1 -1
  365. package/dist/esm/infrastructure/class/base/error.class.js +13 -3
  366. package/dist/esm/infrastructure/class/base/error.class.js.map +1 -1
  367. package/dist/esm/infrastructure/class/base/index.d.ts +0 -3
  368. package/dist/esm/infrastructure/class/base/index.d.ts.map +1 -1
  369. package/dist/esm/infrastructure/class/di/cache/coordinator.class.d.ts +14 -0
  370. package/dist/esm/infrastructure/class/di/cache/coordinator.class.d.ts.map +1 -0
  371. package/dist/esm/infrastructure/class/di/cache/coordinator.class.js +124 -0
  372. package/dist/esm/infrastructure/class/di/cache/coordinator.class.js.map +1 -0
  373. package/dist/esm/infrastructure/class/di/captive/coordinator.class.d.ts +17 -0
  374. package/dist/esm/infrastructure/class/di/captive/coordinator.class.d.ts.map +1 -0
  375. package/dist/esm/infrastructure/class/di/captive/coordinator.class.js +60 -0
  376. package/dist/esm/infrastructure/class/di/captive/coordinator.class.js.map +1 -0
  377. package/dist/esm/infrastructure/class/di/container.class.d.ts +75 -0
  378. package/dist/esm/infrastructure/class/di/container.class.d.ts.map +1 -0
  379. package/dist/esm/infrastructure/class/di/container.class.js +630 -0
  380. package/dist/esm/infrastructure/class/di/container.class.js.map +1 -0
  381. package/dist/esm/infrastructure/class/di/disposal/coordinator.class.d.ts +34 -0
  382. package/dist/esm/infrastructure/class/di/disposal/coordinator.class.d.ts.map +1 -0
  383. package/dist/esm/infrastructure/class/di/disposal/coordinator.class.js +91 -0
  384. package/dist/esm/infrastructure/class/di/disposal/coordinator.class.js.map +1 -0
  385. package/dist/esm/infrastructure/class/di/disposal/manager.class.d.ts +28 -0
  386. package/dist/esm/infrastructure/class/di/disposal/manager.class.d.ts.map +1 -0
  387. package/dist/esm/infrastructure/class/di/disposal/manager.class.js +102 -0
  388. package/dist/esm/infrastructure/class/di/disposal/manager.class.js.map +1 -0
  389. package/dist/esm/infrastructure/class/di/disposer/coordinator.class.d.ts +41 -0
  390. package/dist/esm/infrastructure/class/di/disposer/coordinator.class.d.ts.map +1 -0
  391. package/dist/esm/infrastructure/class/di/disposer/coordinator.class.js +138 -0
  392. package/dist/esm/infrastructure/class/di/disposer/coordinator.class.js.map +1 -0
  393. package/dist/esm/infrastructure/class/di/engine/resolution.class.d.ts +38 -0
  394. package/dist/esm/infrastructure/class/di/engine/resolution.class.d.ts.map +1 -0
  395. package/dist/esm/infrastructure/class/di/engine/resolution.class.js +151 -0
  396. package/dist/esm/infrastructure/class/di/engine/resolution.class.js.map +1 -0
  397. package/dist/esm/infrastructure/class/di/graph/coordinator.class.d.ts +42 -0
  398. package/dist/esm/infrastructure/class/di/graph/coordinator.class.d.ts.map +1 -0
  399. package/dist/esm/infrastructure/class/di/graph/coordinator.class.js +119 -0
  400. package/dist/esm/infrastructure/class/di/graph/coordinator.class.js.map +1 -0
  401. package/dist/esm/infrastructure/class/di/index.d.ts +3 -0
  402. package/dist/esm/infrastructure/class/di/index.d.ts.map +1 -0
  403. package/dist/esm/infrastructure/class/di/interceptor/dispatcher.class.d.ts +17 -0
  404. package/dist/esm/infrastructure/class/di/interceptor/dispatcher.class.d.ts.map +1 -0
  405. package/dist/esm/infrastructure/class/di/interceptor/dispatcher.class.js +89 -0
  406. package/dist/esm/infrastructure/class/di/interceptor/dispatcher.class.js.map +1 -0
  407. package/dist/esm/infrastructure/class/di/interface/index.d.ts +3 -0
  408. package/dist/esm/infrastructure/class/di/interface/index.d.ts.map +1 -0
  409. package/dist/esm/infrastructure/class/di/interface/internal-container-options.interface.d.ts +7 -0
  410. package/dist/esm/infrastructure/class/di/interface/internal-container-options.interface.d.ts.map +1 -0
  411. package/dist/esm/infrastructure/class/di/interface/provider/index.d.ts +3 -0
  412. package/dist/esm/infrastructure/class/di/interface/provider/index.d.ts.map +1 -0
  413. package/dist/esm/infrastructure/class/di/interface/provider/lookup.interface.d.ts +8 -0
  414. package/dist/esm/infrastructure/class/di/interface/provider/lookup.interface.d.ts.map +1 -0
  415. package/dist/esm/infrastructure/class/di/interface/provider/registration.interface.d.ts +11 -0
  416. package/dist/esm/infrastructure/class/di/interface/provider/registration.interface.d.ts.map +1 -0
  417. package/dist/esm/infrastructure/class/di/lookup/coordinator.class.d.ts +10 -0
  418. package/dist/esm/infrastructure/class/di/lookup/coordinator.class.d.ts.map +1 -0
  419. package/dist/esm/infrastructure/class/di/lookup/coordinator.class.js +76 -0
  420. package/dist/esm/infrastructure/class/di/lookup/coordinator.class.js.map +1 -0
  421. package/dist/esm/infrastructure/class/di/registration/coordinator.class.d.ts +41 -0
  422. package/dist/esm/infrastructure/class/di/registration/coordinator.class.d.ts.map +1 -0
  423. package/dist/esm/infrastructure/class/di/registration/coordinator.class.js +249 -0
  424. package/dist/esm/infrastructure/class/di/registration/coordinator.class.js.map +1 -0
  425. package/dist/esm/infrastructure/class/di/resolution/coordinator.class.d.ts +62 -0
  426. package/dist/esm/infrastructure/class/di/resolution/coordinator.class.d.ts.map +1 -0
  427. package/dist/esm/infrastructure/class/di/resolution/coordinator.class.js +597 -0
  428. package/dist/esm/infrastructure/class/di/resolution/coordinator.class.js.map +1 -0
  429. package/dist/esm/infrastructure/constant/console-logger-default-options.constant.js +4 -0
  430. package/dist/esm/infrastructure/constant/console-logger-default-options.constant.js.map +1 -1
  431. package/dist/esm/infrastructure/factory/core.factory.d.ts +11 -31
  432. package/dist/esm/infrastructure/factory/core.factory.d.ts.map +1 -1
  433. package/dist/esm/infrastructure/factory/core.factory.js +13 -47
  434. package/dist/esm/infrastructure/factory/core.factory.js.map +1 -1
  435. package/dist/esm/infrastructure/index.d.ts +1 -0
  436. package/dist/esm/infrastructure/index.d.ts.map +1 -1
  437. package/dist/esm/infrastructure/interface/base/error-options.interface.d.ts +1 -1
  438. package/dist/esm/infrastructure/interface/base/index.d.ts +0 -3
  439. package/dist/esm/infrastructure/interface/base/index.d.ts.map +1 -1
  440. package/dist/esm/infrastructure/interface/console-logger-options.interface.d.ts +1 -1
  441. package/dist/esm/infrastructure/interface/core-factory-options.interface.d.ts +1 -1
  442. package/dist/esm/infrastructure/interface/di-container-options.interface.d.ts +12 -0
  443. package/dist/esm/infrastructure/interface/di-container-options.interface.d.ts.map +1 -0
  444. package/dist/esm/infrastructure/interface/index.d.ts +1 -0
  445. package/dist/esm/infrastructure/interface/index.d.ts.map +1 -1
  446. package/dist/esm/infrastructure/service/console-logger.service.d.ts.map +1 -1
  447. package/dist/esm/infrastructure/service/console-logger.service.js +10 -6
  448. package/dist/esm/infrastructure/service/console-logger.service.js.map +1 -1
  449. package/dist/esm/infrastructure/utility/to-error.utility.d.ts +7 -0
  450. package/dist/esm/infrastructure/utility/to-error.utility.d.ts.map +1 -0
  451. package/dist/esm/infrastructure/utility/to-error.utility.js +20 -0
  452. package/dist/esm/infrastructure/utility/to-error.utility.js.map +1 -0
  453. package/dist/esm/presentation/ergonomics/constant/injectable-metadata-key.constant.d.ts +2 -0
  454. package/dist/esm/presentation/ergonomics/constant/injectable-metadata-key.constant.d.ts.map +1 -0
  455. package/dist/esm/presentation/ergonomics/constant/injectable-metadata-key.constant.js +4 -0
  456. package/dist/esm/presentation/ergonomics/constant/injectable-metadata-key.constant.js.map +1 -0
  457. package/dist/esm/presentation/ergonomics/constant/module-metadata-key.constant.d.ts +2 -0
  458. package/dist/esm/presentation/ergonomics/constant/module-metadata-key.constant.d.ts.map +1 -0
  459. package/dist/esm/presentation/ergonomics/constant/module-metadata-key.constant.js +4 -0
  460. package/dist/esm/presentation/ergonomics/constant/module-metadata-key.constant.js.map +1 -0
  461. package/dist/esm/presentation/ergonomics/decorator/after-resolve.decorator.d.ts +6 -0
  462. package/dist/esm/presentation/ergonomics/decorator/after-resolve.decorator.d.ts.map +1 -0
  463. package/dist/esm/presentation/ergonomics/decorator/after-resolve.decorator.js +39 -0
  464. package/dist/esm/presentation/ergonomics/decorator/after-resolve.decorator.js.map +1 -0
  465. package/dist/esm/presentation/ergonomics/decorator/index.d.ts +7 -0
  466. package/dist/esm/presentation/ergonomics/decorator/index.d.ts.map +1 -0
  467. package/dist/esm/presentation/ergonomics/decorator/inject.decorator.d.ts +8 -0
  468. package/dist/esm/presentation/ergonomics/decorator/inject.decorator.d.ts.map +1 -0
  469. package/dist/esm/presentation/ergonomics/decorator/inject.decorator.js +33 -0
  470. package/dist/esm/presentation/ergonomics/decorator/inject.decorator.js.map +1 -0
  471. package/dist/esm/presentation/ergonomics/decorator/injectable.decorator.d.ts +8 -0
  472. package/dist/esm/presentation/ergonomics/decorator/injectable.decorator.d.ts.map +1 -0
  473. package/dist/esm/presentation/ergonomics/decorator/injectable.decorator.js +87 -0
  474. package/dist/esm/presentation/ergonomics/decorator/injectable.decorator.js.map +1 -0
  475. package/dist/esm/presentation/ergonomics/decorator/module.decorator.d.ts +8 -0
  476. package/dist/esm/presentation/ergonomics/decorator/module.decorator.d.ts.map +1 -0
  477. package/dist/esm/presentation/ergonomics/decorator/module.decorator.js +141 -0
  478. package/dist/esm/presentation/ergonomics/decorator/module.decorator.js.map +1 -0
  479. package/dist/esm/presentation/ergonomics/decorator/on-dispose.decorator.d.ts +6 -0
  480. package/dist/esm/presentation/ergonomics/decorator/on-dispose.decorator.d.ts.map +1 -0
  481. package/dist/esm/presentation/ergonomics/decorator/on-dispose.decorator.js +39 -0
  482. package/dist/esm/presentation/ergonomics/decorator/on-dispose.decorator.js.map +1 -0
  483. package/dist/esm/presentation/ergonomics/decorator/on-init.decorator.d.ts +6 -0
  484. package/dist/esm/presentation/ergonomics/decorator/on-init.decorator.d.ts.map +1 -0
  485. package/dist/esm/presentation/ergonomics/decorator/on-init.decorator.js +39 -0
  486. package/dist/esm/presentation/ergonomics/decorator/on-init.decorator.js.map +1 -0
  487. package/dist/esm/presentation/ergonomics/index.d.ts +4 -0
  488. package/dist/esm/presentation/ergonomics/index.d.ts.map +1 -0
  489. package/dist/esm/presentation/ergonomics/interface/create/autowire-provider-options.interface.d.ts +12 -0
  490. package/dist/esm/presentation/ergonomics/interface/create/autowire-provider-options.interface.d.ts.map +1 -0
  491. package/dist/esm/presentation/ergonomics/interface/create/index.d.ts +3 -0
  492. package/dist/esm/presentation/ergonomics/interface/create/index.d.ts.map +1 -0
  493. package/dist/esm/presentation/ergonomics/interface/create/module-options.interface.d.ts +9 -0
  494. package/dist/esm/presentation/ergonomics/interface/create/module-options.interface.d.ts.map +1 -0
  495. package/dist/esm/presentation/ergonomics/interface/decorator/index.d.ts +2 -0
  496. package/dist/esm/presentation/ergonomics/interface/decorator/index.d.ts.map +1 -0
  497. package/dist/esm/presentation/ergonomics/interface/decorator/module-options.interface.d.ts +9 -0
  498. package/dist/esm/presentation/ergonomics/interface/decorator/module-options.interface.d.ts.map +1 -0
  499. package/dist/esm/presentation/ergonomics/interface/index.d.ts +4 -0
  500. package/dist/esm/presentation/ergonomics/interface/index.d.ts.map +1 -0
  501. package/dist/esm/presentation/ergonomics/interface/injectable/index.d.ts +3 -0
  502. package/dist/esm/presentation/ergonomics/interface/injectable/index.d.ts.map +1 -0
  503. package/dist/esm/presentation/ergonomics/interface/injectable/metadata.interface.d.ts +12 -0
  504. package/dist/esm/presentation/ergonomics/interface/injectable/metadata.interface.d.ts.map +1 -0
  505. package/dist/esm/presentation/ergonomics/interface/injectable/options.interface.d.ts +4 -0
  506. package/dist/esm/presentation/ergonomics/interface/injectable/options.interface.d.ts.map +1 -0
  507. package/dist/esm/presentation/ergonomics/utility/compose-decorated-modules.utility.d.ts +9 -0
  508. package/dist/esm/presentation/ergonomics/utility/compose-decorated-modules.utility.d.ts.map +1 -0
  509. package/dist/esm/presentation/ergonomics/utility/compose-decorated-modules.utility.js +61 -0
  510. package/dist/esm/presentation/ergonomics/utility/compose-decorated-modules.utility.js.map +1 -0
  511. package/dist/esm/presentation/ergonomics/utility/compose-modules.utility.d.ts +10 -0
  512. package/dist/esm/presentation/ergonomics/utility/compose-modules.utility.d.ts.map +1 -0
  513. package/dist/esm/presentation/ergonomics/utility/compose-modules.utility.js +186 -0
  514. package/dist/esm/presentation/ergonomics/utility/compose-modules.utility.js.map +1 -0
  515. package/dist/esm/presentation/ergonomics/utility/create/autowire-provider.utility.d.ts +14 -0
  516. package/dist/esm/presentation/ergonomics/utility/create/autowire-provider.utility.d.ts.map +1 -0
  517. package/dist/esm/presentation/ergonomics/utility/create/autowire-provider.utility.js +108 -0
  518. package/dist/esm/presentation/ergonomics/utility/create/autowire-provider.utility.js.map +1 -0
  519. package/dist/esm/presentation/ergonomics/utility/create/autowire.utility.d.ts +15 -0
  520. package/dist/esm/presentation/ergonomics/utility/create/autowire.utility.d.ts.map +1 -0
  521. package/dist/esm/presentation/ergonomics/utility/create/autowire.utility.js +32 -0
  522. package/dist/esm/presentation/ergonomics/utility/create/autowire.utility.js.map +1 -0
  523. package/dist/esm/presentation/ergonomics/utility/create/index.d.ts +5 -0
  524. package/dist/esm/presentation/ergonomics/utility/create/index.d.ts.map +1 -0
  525. package/dist/esm/presentation/ergonomics/utility/create/module-from-decorator.utility.d.ts +9 -0
  526. package/dist/esm/presentation/ergonomics/utility/create/module-from-decorator.utility.d.ts.map +1 -0
  527. package/dist/esm/presentation/ergonomics/utility/create/module-from-decorator.utility.js +133 -0
  528. package/dist/esm/presentation/ergonomics/utility/create/module-from-decorator.utility.js.map +1 -0
  529. package/dist/esm/presentation/ergonomics/utility/create/module.utility.d.ts +9 -0
  530. package/dist/esm/presentation/ergonomics/utility/create/module.utility.d.ts.map +1 -0
  531. package/dist/esm/presentation/ergonomics/utility/create/module.utility.js +17 -0
  532. package/dist/esm/presentation/ergonomics/utility/create/module.utility.js.map +1 -0
  533. package/dist/esm/presentation/ergonomics/utility/index.d.ts +6 -0
  534. package/dist/esm/presentation/ergonomics/utility/index.d.ts.map +1 -0
  535. package/dist/esm/presentation/ergonomics/utility/injectable-metadata/get.utility.d.ts +9 -0
  536. package/dist/esm/presentation/ergonomics/utility/injectable-metadata/get.utility.d.ts.map +1 -0
  537. package/dist/esm/presentation/ergonomics/utility/injectable-metadata/get.utility.js +18 -0
  538. package/dist/esm/presentation/ergonomics/utility/injectable-metadata/get.utility.js.map +1 -0
  539. package/dist/esm/presentation/ergonomics/utility/injectable-metadata/index.d.ts +3 -0
  540. package/dist/esm/presentation/ergonomics/utility/injectable-metadata/index.d.ts.map +1 -0
  541. package/dist/esm/presentation/ergonomics/utility/injectable-metadata/set.utility.d.ts +9 -0
  542. package/dist/esm/presentation/ergonomics/utility/injectable-metadata/set.utility.d.ts.map +1 -0
  543. package/dist/esm/presentation/ergonomics/utility/injectable-metadata/set.utility.js +13 -0
  544. package/dist/esm/presentation/ergonomics/utility/injectable-metadata/set.utility.js.map +1 -0
  545. package/dist/esm/presentation/ergonomics/utility/module-metadata/get.utility.d.ts +9 -0
  546. package/dist/esm/presentation/ergonomics/utility/module-metadata/get.utility.d.ts.map +1 -0
  547. package/dist/esm/presentation/ergonomics/utility/module-metadata/get.utility.js +18 -0
  548. package/dist/esm/presentation/ergonomics/utility/module-metadata/get.utility.js.map +1 -0
  549. package/dist/esm/presentation/ergonomics/utility/module-metadata/index.d.ts +3 -0
  550. package/dist/esm/presentation/ergonomics/utility/module-metadata/index.d.ts.map +1 -0
  551. package/dist/esm/presentation/ergonomics/utility/module-metadata/set.utility.d.ts +9 -0
  552. package/dist/esm/presentation/ergonomics/utility/module-metadata/set.utility.d.ts.map +1 -0
  553. package/dist/esm/presentation/ergonomics/utility/module-metadata/set.utility.js +13 -0
  554. package/dist/esm/presentation/ergonomics/utility/module-metadata/set.utility.js.map +1 -0
  555. package/dist/esm/presentation/utility/create/di-container.utility.d.ts +9 -0
  556. package/dist/esm/presentation/utility/create/di-container.utility.d.ts.map +1 -0
  557. package/dist/esm/presentation/utility/create/di-container.utility.js +13 -0
  558. package/dist/esm/presentation/utility/create/di-container.utility.js.map +1 -0
  559. package/dist/esm/presentation/utility/create/index.d.ts +3 -3
  560. package/dist/esm/presentation/utility/create/index.d.ts.map +1 -1
  561. package/dist/esm/presentation/utility/create/lazy-provider.utility.d.ts +24 -0
  562. package/dist/esm/presentation/utility/create/lazy-provider.utility.d.ts.map +1 -0
  563. package/dist/esm/presentation/utility/create/lazy-provider.utility.js +27 -0
  564. package/dist/esm/presentation/utility/create/lazy-provider.utility.js.map +1 -0
  565. package/dist/esm/presentation/utility/create/logger.utility.d.ts +1 -1
  566. package/dist/esm/presentation/utility/create/logger.utility.js +1 -1
  567. package/dist/esm/presentation/utility/create/logger.utility.js.map +1 -1
  568. package/dist/esm/presentation/utility/create/token.utility.d.ts +9 -0
  569. package/dist/esm/presentation/utility/create/token.utility.d.ts.map +1 -0
  570. package/dist/esm/presentation/utility/create/token.utility.js +12 -0
  571. package/dist/esm/presentation/utility/create/token.utility.js.map +1 -0
  572. package/package.json +37 -29
  573. package/dist/cjs/domain/interface/container.interface.d.ts +0 -56
  574. package/dist/cjs/domain/interface/container.interface.d.ts.map +0 -1
  575. package/dist/cjs/domain/interface/factory.interface.d.ts +0 -20
  576. package/dist/cjs/domain/interface/factory.interface.d.ts.map +0 -1
  577. package/dist/cjs/domain/interface/registry.interface.d.ts +0 -55
  578. package/dist/cjs/domain/interface/registry.interface.d.ts.map +0 -1
  579. package/dist/cjs/infrastructure/class/base/container.class.d.ts +0 -68
  580. package/dist/cjs/infrastructure/class/base/container.class.d.ts.map +0 -1
  581. package/dist/cjs/infrastructure/class/base/container.class.js +0 -194
  582. package/dist/cjs/infrastructure/class/base/container.class.js.map +0 -1
  583. package/dist/cjs/infrastructure/class/base/factory.class.d.ts +0 -49
  584. package/dist/cjs/infrastructure/class/base/factory.class.d.ts.map +0 -1
  585. package/dist/cjs/infrastructure/class/base/factory.class.js +0 -88
  586. package/dist/cjs/infrastructure/class/base/factory.class.js.map +0 -1
  587. package/dist/cjs/infrastructure/class/base/registry.class.d.ts +0 -74
  588. package/dist/cjs/infrastructure/class/base/registry.class.d.ts.map +0 -1
  589. package/dist/cjs/infrastructure/class/base/registry.class.js +0 -222
  590. package/dist/cjs/infrastructure/class/base/registry.class.js.map +0 -1
  591. package/dist/cjs/infrastructure/interface/base/container-options.interface.d.ts +0 -13
  592. package/dist/cjs/infrastructure/interface/base/container-options.interface.d.ts.map +0 -1
  593. package/dist/cjs/infrastructure/interface/base/factory-options.interface.d.ts +0 -22
  594. package/dist/cjs/infrastructure/interface/base/factory-options.interface.d.ts.map +0 -1
  595. package/dist/cjs/infrastructure/interface/base/registry-options.interface.d.ts +0 -13
  596. package/dist/cjs/infrastructure/interface/base/registry-options.interface.d.ts.map +0 -1
  597. package/dist/cjs/presentation/utility/create/container.utility.d.ts +0 -10
  598. package/dist/cjs/presentation/utility/create/container.utility.d.ts.map +0 -1
  599. package/dist/cjs/presentation/utility/create/container.utility.js +0 -18
  600. package/dist/cjs/presentation/utility/create/container.utility.js.map +0 -1
  601. package/dist/cjs/presentation/utility/create/factory.utility.d.ts +0 -11
  602. package/dist/cjs/presentation/utility/create/factory.utility.d.ts.map +0 -1
  603. package/dist/cjs/presentation/utility/create/factory.utility.js +0 -19
  604. package/dist/cjs/presentation/utility/create/factory.utility.js.map +0 -1
  605. package/dist/cjs/presentation/utility/create/registry.utility.d.ts +0 -13
  606. package/dist/cjs/presentation/utility/create/registry.utility.d.ts.map +0 -1
  607. package/dist/cjs/presentation/utility/create/registry.utility.js +0 -19
  608. package/dist/cjs/presentation/utility/create/registry.utility.js.map +0 -1
  609. package/dist/esm/domain/interface/container.interface.d.ts +0 -56
  610. package/dist/esm/domain/interface/container.interface.d.ts.map +0 -1
  611. package/dist/esm/domain/interface/factory.interface.d.ts +0 -20
  612. package/dist/esm/domain/interface/factory.interface.d.ts.map +0 -1
  613. package/dist/esm/domain/interface/registry.interface.d.ts +0 -55
  614. package/dist/esm/domain/interface/registry.interface.d.ts.map +0 -1
  615. package/dist/esm/infrastructure/class/base/container.class.d.ts +0 -68
  616. package/dist/esm/infrastructure/class/base/container.class.d.ts.map +0 -1
  617. package/dist/esm/infrastructure/class/base/container.class.js +0 -192
  618. package/dist/esm/infrastructure/class/base/container.class.js.map +0 -1
  619. package/dist/esm/infrastructure/class/base/factory.class.d.ts +0 -49
  620. package/dist/esm/infrastructure/class/base/factory.class.d.ts.map +0 -1
  621. package/dist/esm/infrastructure/class/base/factory.class.js +0 -86
  622. package/dist/esm/infrastructure/class/base/factory.class.js.map +0 -1
  623. package/dist/esm/infrastructure/class/base/registry.class.d.ts +0 -74
  624. package/dist/esm/infrastructure/class/base/registry.class.d.ts.map +0 -1
  625. package/dist/esm/infrastructure/class/base/registry.class.js +0 -220
  626. package/dist/esm/infrastructure/class/base/registry.class.js.map +0 -1
  627. package/dist/esm/infrastructure/interface/base/container-options.interface.d.ts +0 -13
  628. package/dist/esm/infrastructure/interface/base/container-options.interface.d.ts.map +0 -1
  629. package/dist/esm/infrastructure/interface/base/factory-options.interface.d.ts +0 -22
  630. package/dist/esm/infrastructure/interface/base/factory-options.interface.d.ts.map +0 -1
  631. package/dist/esm/infrastructure/interface/base/registry-options.interface.d.ts +0 -13
  632. package/dist/esm/infrastructure/interface/base/registry-options.interface.d.ts.map +0 -1
  633. package/dist/esm/presentation/utility/create/container.utility.d.ts +0 -10
  634. package/dist/esm/presentation/utility/create/container.utility.d.ts.map +0 -1
  635. package/dist/esm/presentation/utility/create/container.utility.js +0 -16
  636. package/dist/esm/presentation/utility/create/container.utility.js.map +0 -1
  637. package/dist/esm/presentation/utility/create/factory.utility.d.ts +0 -11
  638. package/dist/esm/presentation/utility/create/factory.utility.d.ts.map +0 -1
  639. package/dist/esm/presentation/utility/create/factory.utility.js +0 -17
  640. package/dist/esm/presentation/utility/create/factory.utility.js.map +0 -1
  641. package/dist/esm/presentation/utility/create/registry.utility.d.ts +0 -13
  642. package/dist/esm/presentation/utility/create/registry.utility.d.ts.map +0 -1
  643. package/dist/esm/presentation/utility/create/registry.utility.js +0 -17
  644. package/dist/esm/presentation/utility/create/registry.utility.js.map +0 -1
@@ -0,0 +1,597 @@
1
+ import '../../../../domain/enum/captive-dependency-policy.enum.js';
2
+ import { EDependencyLifecycle } from '../../../../domain/enum/dependency-lifecycle.enum.js';
3
+ import '../../../../domain/enum/di-container-duplicate-provider-policy.enum.js';
4
+ import '../../../../domain/enum/logger-log-level.enum.js';
5
+ import { EProviderType } from '../../../../domain/enum/provider-type.enum.js';
6
+ import { BaseError } from '../../base/error.class.js';
7
+ import { toError } from '../../../utility/to-error.utility.js';
8
+
9
+ const MAX_STALE_REGISTRATION_RETRIES = 10;
10
+ class ResolutionCoordinator {
11
+ ASSERT_KEY;
12
+ ASSERT_SINGLE_BINDING_LOOKUP;
13
+ DESCRIBE_KEY;
14
+ ENSURE_ACTIVE;
15
+ FIND_PROVIDER;
16
+ GET_SCOPED_CACHE_FOR_LIFECYCLE;
17
+ IS_PROVIDER_CLEANUP_PENDING;
18
+ IS_REGISTRATION_CURRENT;
19
+ REGISTER_DISPOSER;
20
+ VALIDATE_CAPTIVE_DEPENDENCY;
21
+ WAIT_FOR_PROVIDER_CLEANUP;
22
+ constructor(options) {
23
+ this.ASSERT_KEY = options.assertKey;
24
+ this.ASSERT_SINGLE_BINDING_LOOKUP = options.assertSingleBindingLookup;
25
+ this.DESCRIBE_KEY = options.describeKey;
26
+ this.ENSURE_ACTIVE = options.ensureActive;
27
+ this.FIND_PROVIDER = options.findProvider;
28
+ this.GET_SCOPED_CACHE_FOR_LIFECYCLE = options.getScopedCacheForLifecycle;
29
+ this.IS_REGISTRATION_CURRENT = options.isRegistrationCurrent;
30
+ this.IS_PROVIDER_CLEANUP_PENDING = options.isProviderCleanupPending;
31
+ this.REGISTER_DISPOSER = options.registerDisposer;
32
+ this.VALIDATE_CAPTIVE_DEPENDENCY = options.validateCaptiveDependency;
33
+ this.WAIT_FOR_PROVIDER_CLEANUP = options.waitForProviderCleanup;
34
+ }
35
+ async resolveAllAsyncInternal(dependencyKeySymbol, requestScope, path, visitedTokens) {
36
+ this.ENSURE_ACTIVE();
37
+ this.throwIfCircularDependency(dependencyKeySymbol, path, visitedTokens);
38
+ let lookup = this.FIND_PROVIDER(requestScope, dependencyKeySymbol);
39
+ if (lookup.registration && this.IS_PROVIDER_CLEANUP_PENDING(lookup.owner, dependencyKeySymbol)) {
40
+ await this.WAIT_FOR_PROVIDER_CLEANUP(lookup.owner, dependencyKeySymbol);
41
+ lookup = this.FIND_PROVIDER(requestScope, dependencyKeySymbol);
42
+ }
43
+ if (!lookup.registration) {
44
+ throw this.createTokenNotFoundError(dependencyKeySymbol, lookup.lookupPath);
45
+ }
46
+ const registrations = lookup.registrations ?? [];
47
+ const providerOwner = lookup.owner;
48
+ const nextVisitedTokens = new Set(visitedTokens);
49
+ nextVisitedTokens.add(dependencyKeySymbol);
50
+ const nextPath = [...path, dependencyKeySymbol];
51
+ return await Promise.all(registrations.map(async (registration) => await this.resolveRegistrationAsync(registration, providerOwner, requestScope, dependencyKeySymbol, nextPath, nextVisitedTokens)));
52
+ }
53
+ resolveAllSyncInternal(dependencyKeySymbol, requestScope, path, visitedTokens) {
54
+ this.ENSURE_ACTIVE();
55
+ this.throwIfCircularDependency(dependencyKeySymbol, path, visitedTokens);
56
+ const lookup = this.FIND_PROVIDER(requestScope, dependencyKeySymbol);
57
+ if (lookup.registration && this.IS_PROVIDER_CLEANUP_PENDING(lookup.owner, dependencyKeySymbol)) {
58
+ throw this.createProviderCleanupPendingError(dependencyKeySymbol, lookup.owner.id);
59
+ }
60
+ if (!lookup.registration) {
61
+ throw this.createTokenNotFoundError(dependencyKeySymbol, lookup.lookupPath);
62
+ }
63
+ const registrations = lookup.registrations ?? [];
64
+ const providerOwner = lookup.owner;
65
+ const nextVisitedTokens = new Set(visitedTokens);
66
+ nextVisitedTokens.add(dependencyKeySymbol);
67
+ const nextPath = [...path, dependencyKeySymbol];
68
+ return registrations.map((registration) => this.resolveRegistrationSync(registration, providerOwner, requestScope, dependencyKeySymbol, nextPath, nextVisitedTokens));
69
+ }
70
+ async resolveAsyncInternal(dependencyKeySymbol, requestScope, path, visitedTokens) {
71
+ this.ENSURE_ACTIVE();
72
+ this.throwIfCircularDependency(dependencyKeySymbol, path, visitedTokens);
73
+ let lookup = this.FIND_PROVIDER(requestScope, dependencyKeySymbol);
74
+ if (lookup.registration && this.IS_PROVIDER_CLEANUP_PENDING(lookup.owner, dependencyKeySymbol)) {
75
+ await this.WAIT_FOR_PROVIDER_CLEANUP(lookup.owner, dependencyKeySymbol);
76
+ lookup = this.FIND_PROVIDER(requestScope, dependencyKeySymbol);
77
+ }
78
+ return await this.resolveSingleRegistrationAsync(dependencyKeySymbol, lookup, path, requestScope, visitedTokens);
79
+ }
80
+ resolveSyncInternal(dependencyKeySymbol, requestScope, path, visitedTokens) {
81
+ this.ENSURE_ACTIVE();
82
+ this.throwIfCircularDependency(dependencyKeySymbol, path, visitedTokens);
83
+ const lookup = this.FIND_PROVIDER(requestScope, dependencyKeySymbol);
84
+ if (lookup.registration && this.IS_PROVIDER_CLEANUP_PENDING(lookup.owner, dependencyKeySymbol)) {
85
+ throw this.createProviderCleanupPendingError(dependencyKeySymbol, lookup.owner.id);
86
+ }
87
+ return this.resolveSingleRegistrationSync(dependencyKeySymbol, lookup, path, requestScope, visitedTokens);
88
+ }
89
+ createAsyncProviderError(dependencyKeySymbol) {
90
+ return new BaseError("Use resolveAsync() for async providers", {
91
+ code: "ASYNC_PROVIDER_ERROR",
92
+ context: {
93
+ token: this.DESCRIBE_KEY(dependencyKeySymbol),
94
+ },
95
+ source: "DIContainer",
96
+ });
97
+ }
98
+ createAsyncProviderHookError(dependencyKeySymbol, hookName) {
99
+ return new BaseError(`Provider ${hookName} hook requires resolveAsync()`, {
100
+ code: "ASYNC_PROVIDER_HOOK_ERROR",
101
+ context: {
102
+ hook: hookName,
103
+ token: this.DESCRIBE_KEY(dependencyKeySymbol),
104
+ },
105
+ source: "DIContainer",
106
+ });
107
+ }
108
+ createLazyResolver(lazyDependencyKeySymbol, dependencyResolutionScope) {
109
+ const scopeReference = new WeakRef(dependencyResolutionScope);
110
+ const scopeId = dependencyResolutionScope.id;
111
+ return async () => {
112
+ const resolutionScope = scopeReference.deref();
113
+ if (!resolutionScope) {
114
+ throw this.createLazyScopeDisposedError(lazyDependencyKeySymbol, scopeId);
115
+ }
116
+ try {
117
+ return await this.resolveAsyncInternal(lazyDependencyKeySymbol, resolutionScope, [], new Set());
118
+ }
119
+ catch (error) {
120
+ const normalizedError = toError(error);
121
+ if (normalizedError instanceof BaseError && normalizedError.code === "SCOPE_DISPOSED") {
122
+ throw this.createLazyScopeDisposedError(lazyDependencyKeySymbol, scopeId, normalizedError);
123
+ }
124
+ throw normalizedError;
125
+ }
126
+ };
127
+ }
128
+ createLazyScopeDisposedError(dependencyKeySymbol, scopeId, cause) {
129
+ return new BaseError("Lazy provider invoked after scope disposal", {
130
+ cause,
131
+ code: "LAZY_SCOPE_DISPOSED",
132
+ context: {
133
+ scopeId,
134
+ token: this.DESCRIBE_KEY(dependencyKeySymbol),
135
+ },
136
+ source: "DIContainer",
137
+ });
138
+ }
139
+ createProviderCleanupPendingError(dependencyKeySymbol, scopeId) {
140
+ return new BaseError("Provider cleanup is in progress after overwrite", {
141
+ code: "PROVIDER_CLEANUP_PENDING",
142
+ context: {
143
+ scopeId,
144
+ token: this.DESCRIBE_KEY(dependencyKeySymbol),
145
+ },
146
+ source: "DIContainer",
147
+ });
148
+ }
149
+ createProviderHookFailedError(dependencyKeySymbol, hookName, error) {
150
+ return new BaseError(`Provider ${hookName} hook failed`, {
151
+ cause: toError(error),
152
+ code: "PROVIDER_HOOK_FAILED",
153
+ context: {
154
+ hook: hookName,
155
+ token: this.DESCRIBE_KEY(dependencyKeySymbol),
156
+ },
157
+ source: "DIContainer",
158
+ });
159
+ }
160
+ createStaleRegistrationError(ownerScope, dependencyKeySymbol) {
161
+ return new BaseError("Provider registration changed during multi-resolution", {
162
+ code: "PROVIDER_STALE_REGISTRATION",
163
+ context: {
164
+ scopeId: ownerScope.id,
165
+ token: this.DESCRIBE_KEY(dependencyKeySymbol),
166
+ },
167
+ source: "DIContainer",
168
+ });
169
+ }
170
+ createTokenNotFoundError(dependencyKeySymbol, lookupPath) {
171
+ return new BaseError("Token not found in container", {
172
+ code: "TOKEN_NOT_FOUND",
173
+ context: {
174
+ lookupPath,
175
+ token: this.DESCRIBE_KEY(dependencyKeySymbol),
176
+ },
177
+ source: "DIContainer",
178
+ });
179
+ }
180
+ getDisposerScope(registration, providerOwner, requestScope) {
181
+ return registration.lifecycle === EDependencyLifecycle.SINGLETON ? providerOwner : requestScope;
182
+ }
183
+ async instantiateAsync(registration, dependencyResolutionScope, path, visitedTokens) {
184
+ if (registration.type === EProviderType.VALUE) {
185
+ return registration.provider.useValue;
186
+ }
187
+ if (registration.type === EProviderType.ALIAS) {
188
+ const aliasProvider = registration.provider;
189
+ this.VALIDATE_CAPTIVE_DEPENDENCY(registration, aliasProvider.useExisting, dependencyResolutionScope);
190
+ return await this.resolveAsyncInternal(this.ASSERT_KEY(aliasProvider.useExisting), dependencyResolutionScope, path, visitedTokens);
191
+ }
192
+ if (registration.type === EProviderType.LAZY) {
193
+ const lazyProvider = registration.provider;
194
+ this.VALIDATE_CAPTIVE_DEPENDENCY(registration, lazyProvider.useLazy, dependencyResolutionScope);
195
+ const lazyDependencyKeySymbol = this.ASSERT_KEY(lazyProvider.useLazy);
196
+ return this.createLazyResolver(lazyDependencyKeySymbol, dependencyResolutionScope);
197
+ }
198
+ if (registration.type === EProviderType.CLASS) {
199
+ const classProvider = registration.provider;
200
+ const dependencies = classProvider.deps ?? [];
201
+ for (const dependencyToken of dependencies) {
202
+ this.VALIDATE_CAPTIVE_DEPENDENCY(registration, dependencyToken, dependencyResolutionScope);
203
+ }
204
+ const dependencyInstances = await Promise.all(dependencies.map(async (dependencyToken) => await this.resolveAsyncInternal(this.ASSERT_KEY(dependencyToken), dependencyResolutionScope, path, visitedTokens)));
205
+ return new classProvider.useClass(...dependencyInstances);
206
+ }
207
+ const factoryProvider = registration.provider;
208
+ const dependencies = factoryProvider.deps ?? [];
209
+ for (const dependencyToken of dependencies) {
210
+ this.VALIDATE_CAPTIVE_DEPENDENCY(registration, dependencyToken, dependencyResolutionScope);
211
+ }
212
+ const dependencyInstances = await Promise.all(dependencies.map(async (dependencyToken) => await this.resolveAsyncInternal(this.ASSERT_KEY(dependencyToken), dependencyResolutionScope, path, visitedTokens)));
213
+ return factoryProvider.useFactory(...dependencyInstances);
214
+ }
215
+ instantiateSync(registration, dependencyResolutionScope, path, visitedTokens) {
216
+ if (registration.type === EProviderType.VALUE) {
217
+ return registration.provider.useValue;
218
+ }
219
+ if (registration.type === EProviderType.ALIAS) {
220
+ const aliasProvider = registration.provider;
221
+ this.VALIDATE_CAPTIVE_DEPENDENCY(registration, aliasProvider.useExisting, dependencyResolutionScope);
222
+ return this.resolveSyncInternal(this.ASSERT_KEY(aliasProvider.useExisting), dependencyResolutionScope, path, visitedTokens);
223
+ }
224
+ if (registration.type === EProviderType.LAZY) {
225
+ const lazyProvider = registration.provider;
226
+ this.VALIDATE_CAPTIVE_DEPENDENCY(registration, lazyProvider.useLazy, dependencyResolutionScope);
227
+ const lazyDependencyKeySymbol = this.ASSERT_KEY(lazyProvider.useLazy);
228
+ return this.createLazyResolver(lazyDependencyKeySymbol, dependencyResolutionScope);
229
+ }
230
+ if (registration.type === EProviderType.CLASS) {
231
+ const classProvider = registration.provider;
232
+ const dependencies = classProvider.deps ?? [];
233
+ for (const dependencyToken of dependencies) {
234
+ this.VALIDATE_CAPTIVE_DEPENDENCY(registration, dependencyToken, dependencyResolutionScope);
235
+ }
236
+ const dependencyInstances = dependencies.map((dependencyToken) => this.resolveSyncInternal(this.ASSERT_KEY(dependencyToken), dependencyResolutionScope, path, visitedTokens));
237
+ return new classProvider.useClass(...dependencyInstances);
238
+ }
239
+ const factoryProvider = registration.provider;
240
+ if (registration.isAsyncFactory) {
241
+ throw this.createAsyncProviderError(this.ASSERT_KEY(factoryProvider.provide));
242
+ }
243
+ const dependencies = factoryProvider.deps ?? [];
244
+ for (const dependencyToken of dependencies) {
245
+ this.VALIDATE_CAPTIVE_DEPENDENCY(registration, dependencyToken, dependencyResolutionScope);
246
+ }
247
+ const dependencyInstances = dependencies.map((dependencyToken) => this.resolveSyncInternal(this.ASSERT_KEY(dependencyToken), dependencyResolutionScope, path, visitedTokens));
248
+ const result = factoryProvider.useFactory(...dependencyInstances);
249
+ if (this.isPromiseLike(result)) {
250
+ throw this.createAsyncProviderError(this.ASSERT_KEY(factoryProvider.provide));
251
+ }
252
+ return result;
253
+ }
254
+ async invokeAfterResolveAsync(registration, dependencyKeySymbol, instance) {
255
+ await this.runLifecycleHookAsync(registration.provider, "afterResolve", instance, dependencyKeySymbol);
256
+ return instance;
257
+ }
258
+ invokeAfterResolveSync(registration, dependencyKeySymbol, instance) {
259
+ this.runLifecycleHookSync(registration.provider, "afterResolve", instance, dependencyKeySymbol);
260
+ return instance;
261
+ }
262
+ async invokeOnInitAsync(registration, dependencyKeySymbol, instance) {
263
+ await this.runLifecycleHookAsync(registration.provider, "onInit", instance, dependencyKeySymbol);
264
+ }
265
+ invokeOnInitSync(registration, dependencyKeySymbol, instance) {
266
+ this.runLifecycleHookSync(registration.provider, "onInit", instance, dependencyKeySymbol);
267
+ }
268
+ isPromiseLike(value) {
269
+ if (value === null || value === undefined) {
270
+ return false;
271
+ }
272
+ const valueType = typeof value;
273
+ if (valueType !== "function" && valueType !== "object") {
274
+ return false;
275
+ }
276
+ return typeof value.then === "function";
277
+ }
278
+ async resolveRegistrationAsync(registration, providerOwner, requestScope, dependencyKeySymbol, path, visitedTokens) {
279
+ if (this.IS_PROVIDER_CLEANUP_PENDING(providerOwner, dependencyKeySymbol)) {
280
+ await this.WAIT_FOR_PROVIDER_CLEANUP(providerOwner, dependencyKeySymbol);
281
+ if (!this.IS_REGISTRATION_CURRENT(providerOwner, dependencyKeySymbol, registration)) {
282
+ throw this.createStaleRegistrationError(providerOwner, dependencyKeySymbol);
283
+ }
284
+ }
285
+ const dependencyResolutionScope = registration.lifecycle === EDependencyLifecycle.SINGLETON ? providerOwner : requestScope;
286
+ const cache = this.GET_SCOPED_CACHE_FOR_LIFECYCLE(registration.lifecycle, requestScope, providerOwner);
287
+ const cacheKey = registration.cacheKey;
288
+ if (cache) {
289
+ if (cache.has(cacheKey)) {
290
+ const cachedValue = cache.get(cacheKey);
291
+ const resolvedCachedValue = await Promise.resolve(cachedValue);
292
+ const isCurrentRegistration = this.IS_REGISTRATION_CURRENT(providerOwner, dependencyKeySymbol, registration);
293
+ if (!isCurrentRegistration) {
294
+ throw this.createStaleRegistrationError(providerOwner, dependencyKeySymbol);
295
+ }
296
+ return await this.invokeAfterResolveAsync(registration, dependencyKeySymbol, resolvedCachedValue);
297
+ }
298
+ const creationPromise = this.instantiateAsync(registration, dependencyResolutionScope, path, visitedTokens);
299
+ cache.set(cacheKey, creationPromise);
300
+ try {
301
+ const createdValue = await creationPromise;
302
+ const isCurrentRegistration = this.IS_REGISTRATION_CURRENT(providerOwner, dependencyKeySymbol, registration);
303
+ if (!isCurrentRegistration) {
304
+ if (cache.get(cacheKey) === creationPromise) {
305
+ cache.delete(cacheKey);
306
+ }
307
+ await this.tryDisposeAfterOnInitFailureAsync(registration, providerOwner, requestScope, dependencyKeySymbol, createdValue);
308
+ throw this.createStaleRegistrationError(providerOwner, dependencyKeySymbol);
309
+ }
310
+ try {
311
+ await this.invokeOnInitAsync(registration, dependencyKeySymbol, createdValue);
312
+ }
313
+ catch (error) {
314
+ await this.tryDisposeAfterOnInitFailureAsync(registration, providerOwner, requestScope, dependencyKeySymbol, createdValue);
315
+ throw error;
316
+ }
317
+ cache.set(cacheKey, createdValue);
318
+ const disposerScope = this.getDisposerScope(registration, providerOwner, requestScope);
319
+ this.REGISTER_DISPOSER(disposerScope, registration.provider, createdValue, dependencyKeySymbol);
320
+ return await this.invokeAfterResolveAsync(registration, dependencyKeySymbol, createdValue);
321
+ }
322
+ catch (error) {
323
+ if (cache.get(cacheKey) === creationPromise) {
324
+ cache.delete(cacheKey);
325
+ }
326
+ throw error;
327
+ }
328
+ }
329
+ const createdValue = await this.instantiateAsync(registration, dependencyResolutionScope, path, visitedTokens);
330
+ try {
331
+ await this.invokeOnInitAsync(registration, dependencyKeySymbol, createdValue);
332
+ }
333
+ catch (error) {
334
+ await this.tryDisposeAfterOnInitFailureAsync(registration, providerOwner, requestScope, dependencyKeySymbol, createdValue);
335
+ throw error;
336
+ }
337
+ const disposerScope = this.getDisposerScope(registration, providerOwner, requestScope);
338
+ this.REGISTER_DISPOSER(disposerScope, registration.provider, createdValue, dependencyKeySymbol);
339
+ return await this.invokeAfterResolveAsync(registration, dependencyKeySymbol, createdValue);
340
+ }
341
+ resolveRegistrationSync(registration, providerOwner, requestScope, dependencyKeySymbol, path, visitedTokens) {
342
+ if (this.IS_PROVIDER_CLEANUP_PENDING(providerOwner, dependencyKeySymbol)) {
343
+ throw this.createProviderCleanupPendingError(dependencyKeySymbol, providerOwner.id);
344
+ }
345
+ const dependencyResolutionScope = registration.lifecycle === EDependencyLifecycle.SINGLETON ? providerOwner : requestScope;
346
+ const cache = this.GET_SCOPED_CACHE_FOR_LIFECYCLE(registration.lifecycle, requestScope, providerOwner);
347
+ const cacheKey = registration.cacheKey;
348
+ if (cache?.has(cacheKey)) {
349
+ const cachedValue = cache.get(cacheKey);
350
+ if (this.isPromiseLike(cachedValue)) {
351
+ throw this.createAsyncProviderError(dependencyKeySymbol);
352
+ }
353
+ const isCurrentRegistration = this.IS_REGISTRATION_CURRENT(providerOwner, dependencyKeySymbol, registration);
354
+ if (!isCurrentRegistration) {
355
+ throw this.createStaleRegistrationError(providerOwner, dependencyKeySymbol);
356
+ }
357
+ return this.invokeAfterResolveSync(registration, dependencyKeySymbol, cachedValue);
358
+ }
359
+ const createdValue = this.instantiateSync(registration, dependencyResolutionScope, path, visitedTokens);
360
+ if (cache) {
361
+ const isCurrentRegistration = this.IS_REGISTRATION_CURRENT(providerOwner, dependencyKeySymbol, registration);
362
+ if (!isCurrentRegistration) {
363
+ this.tryDisposeAfterOnInitFailureSync(registration, providerOwner, requestScope, dependencyKeySymbol, createdValue);
364
+ throw this.createStaleRegistrationError(providerOwner, dependencyKeySymbol);
365
+ }
366
+ try {
367
+ this.invokeOnInitSync(registration, dependencyKeySymbol, createdValue);
368
+ }
369
+ catch (error) {
370
+ this.tryDisposeAfterOnInitFailureSync(registration, providerOwner, requestScope, dependencyKeySymbol, createdValue);
371
+ throw error;
372
+ }
373
+ cache.set(cacheKey, createdValue);
374
+ const disposerScope = this.getDisposerScope(registration, providerOwner, requestScope);
375
+ this.REGISTER_DISPOSER(disposerScope, registration.provider, createdValue, dependencyKeySymbol);
376
+ return this.invokeAfterResolveSync(registration, dependencyKeySymbol, createdValue);
377
+ }
378
+ try {
379
+ this.invokeOnInitSync(registration, dependencyKeySymbol, createdValue);
380
+ }
381
+ catch (error) {
382
+ this.tryDisposeAfterOnInitFailureSync(registration, providerOwner, requestScope, dependencyKeySymbol, createdValue);
383
+ throw error;
384
+ }
385
+ const disposerScope = this.getDisposerScope(registration, providerOwner, requestScope);
386
+ this.REGISTER_DISPOSER(disposerScope, registration.provider, createdValue, dependencyKeySymbol);
387
+ return this.invokeAfterResolveSync(registration, dependencyKeySymbol, createdValue);
388
+ }
389
+ async resolveSingleRegistrationAsync(dependencyKeySymbol, lookup, path, requestScope, visitedTokens, staleRetryCount = 0) {
390
+ const registration = this.ASSERT_SINGLE_BINDING_LOOKUP(dependencyKeySymbol, lookup);
391
+ const nextVisitedTokens = new Set(visitedTokens);
392
+ nextVisitedTokens.add(dependencyKeySymbol);
393
+ const nextPath = [...path, dependencyKeySymbol];
394
+ const providerOwner = lookup.owner;
395
+ if (this.IS_PROVIDER_CLEANUP_PENDING(providerOwner, dependencyKeySymbol)) {
396
+ await this.WAIT_FOR_PROVIDER_CLEANUP(providerOwner, dependencyKeySymbol);
397
+ if (staleRetryCount >= MAX_STALE_REGISTRATION_RETRIES) {
398
+ throw this.createStaleRegistrationError(providerOwner, dependencyKeySymbol);
399
+ }
400
+ const retryLookup = this.FIND_PROVIDER(requestScope, dependencyKeySymbol);
401
+ return await this.resolveSingleRegistrationAsync(dependencyKeySymbol, retryLookup, path, requestScope, visitedTokens, staleRetryCount + 1);
402
+ }
403
+ const dependencyResolutionScope = registration.lifecycle === EDependencyLifecycle.SINGLETON ? providerOwner : requestScope;
404
+ const cache = this.GET_SCOPED_CACHE_FOR_LIFECYCLE(registration.lifecycle, requestScope, providerOwner);
405
+ const cacheKey = registration.cacheKey;
406
+ if (cache) {
407
+ if (cache.has(cacheKey)) {
408
+ const cachedValue = cache.get(cacheKey);
409
+ const resolvedCachedValue = await Promise.resolve(cachedValue);
410
+ const isCurrentRegistration = this.IS_REGISTRATION_CURRENT(providerOwner, dependencyKeySymbol, registration);
411
+ if (!isCurrentRegistration) {
412
+ if (staleRetryCount >= MAX_STALE_REGISTRATION_RETRIES) {
413
+ throw this.createStaleRegistrationError(providerOwner, dependencyKeySymbol);
414
+ }
415
+ const retryLookup = this.FIND_PROVIDER(requestScope, dependencyKeySymbol);
416
+ return await this.resolveSingleRegistrationAsync(dependencyKeySymbol, retryLookup, path, requestScope, visitedTokens, staleRetryCount + 1);
417
+ }
418
+ return await this.invokeAfterResolveAsync(registration, dependencyKeySymbol, resolvedCachedValue);
419
+ }
420
+ const creationPromise = this.instantiateAsync(registration, dependencyResolutionScope, nextPath, nextVisitedTokens);
421
+ cache.set(cacheKey, creationPromise);
422
+ try {
423
+ const createdValue = await creationPromise;
424
+ const isCurrentRegistration = this.IS_REGISTRATION_CURRENT(providerOwner, dependencyKeySymbol, registration);
425
+ if (!isCurrentRegistration) {
426
+ if (cache.get(cacheKey) === creationPromise) {
427
+ cache.delete(cacheKey);
428
+ }
429
+ await this.tryDisposeAfterOnInitFailureAsync(registration, providerOwner, requestScope, dependencyKeySymbol, createdValue);
430
+ if (staleRetryCount >= MAX_STALE_REGISTRATION_RETRIES) {
431
+ throw this.createStaleRegistrationError(providerOwner, dependencyKeySymbol);
432
+ }
433
+ const retryLookup = this.FIND_PROVIDER(requestScope, dependencyKeySymbol);
434
+ return await this.resolveSingleRegistrationAsync(dependencyKeySymbol, retryLookup, path, requestScope, visitedTokens, staleRetryCount + 1);
435
+ }
436
+ try {
437
+ await this.invokeOnInitAsync(registration, dependencyKeySymbol, createdValue);
438
+ }
439
+ catch (error) {
440
+ await this.tryDisposeAfterOnInitFailureAsync(registration, providerOwner, requestScope, dependencyKeySymbol, createdValue);
441
+ throw error;
442
+ }
443
+ cache.set(cacheKey, createdValue);
444
+ const disposerScope = this.getDisposerScope(registration, providerOwner, requestScope);
445
+ this.REGISTER_DISPOSER(disposerScope, registration.provider, createdValue, dependencyKeySymbol);
446
+ return await this.invokeAfterResolveAsync(registration, dependencyKeySymbol, createdValue);
447
+ }
448
+ catch (error) {
449
+ if (cache.get(cacheKey) === creationPromise) {
450
+ cache.delete(cacheKey);
451
+ }
452
+ throw error;
453
+ }
454
+ }
455
+ const createdValue = await this.instantiateAsync(registration, dependencyResolutionScope, nextPath, nextVisitedTokens);
456
+ try {
457
+ await this.invokeOnInitAsync(registration, dependencyKeySymbol, createdValue);
458
+ }
459
+ catch (error) {
460
+ await this.tryDisposeAfterOnInitFailureAsync(registration, providerOwner, requestScope, dependencyKeySymbol, createdValue);
461
+ throw error;
462
+ }
463
+ const disposerScope = this.getDisposerScope(registration, providerOwner, requestScope);
464
+ this.REGISTER_DISPOSER(disposerScope, registration.provider, createdValue, dependencyKeySymbol);
465
+ return await this.invokeAfterResolveAsync(registration, dependencyKeySymbol, createdValue);
466
+ }
467
+ resolveSingleRegistrationSync(dependencyKeySymbol, lookup, path, requestScope, visitedTokens, staleRetryCount = 0) {
468
+ const registration = this.ASSERT_SINGLE_BINDING_LOOKUP(dependencyKeySymbol, lookup);
469
+ const nextVisitedTokens = new Set(visitedTokens);
470
+ nextVisitedTokens.add(dependencyKeySymbol);
471
+ const nextPath = [...path, dependencyKeySymbol];
472
+ const providerOwner = lookup.owner;
473
+ if (this.IS_PROVIDER_CLEANUP_PENDING(providerOwner, dependencyKeySymbol)) {
474
+ throw this.createProviderCleanupPendingError(dependencyKeySymbol, providerOwner.id);
475
+ }
476
+ const dependencyResolutionScope = registration.lifecycle === EDependencyLifecycle.SINGLETON ? providerOwner : requestScope;
477
+ const cache = this.GET_SCOPED_CACHE_FOR_LIFECYCLE(registration.lifecycle, requestScope, providerOwner);
478
+ const cacheKey = registration.cacheKey;
479
+ if (cache?.has(cacheKey)) {
480
+ const cachedValue = cache.get(cacheKey);
481
+ if (this.isPromiseLike(cachedValue)) {
482
+ throw this.createAsyncProviderError(dependencyKeySymbol);
483
+ }
484
+ const isCurrentRegistration = this.IS_REGISTRATION_CURRENT(providerOwner, dependencyKeySymbol, registration);
485
+ if (!isCurrentRegistration) {
486
+ if (staleRetryCount >= MAX_STALE_REGISTRATION_RETRIES) {
487
+ throw this.createStaleRegistrationError(providerOwner, dependencyKeySymbol);
488
+ }
489
+ const retryLookup = this.FIND_PROVIDER(requestScope, dependencyKeySymbol);
490
+ return this.resolveSingleRegistrationSync(dependencyKeySymbol, retryLookup, path, requestScope, visitedTokens, staleRetryCount + 1);
491
+ }
492
+ return this.invokeAfterResolveSync(registration, dependencyKeySymbol, cachedValue);
493
+ }
494
+ const createdValue = this.instantiateSync(registration, dependencyResolutionScope, nextPath, nextVisitedTokens);
495
+ if (cache) {
496
+ const isCurrentRegistration = this.IS_REGISTRATION_CURRENT(providerOwner, dependencyKeySymbol, registration);
497
+ if (!isCurrentRegistration) {
498
+ this.tryDisposeAfterOnInitFailureSync(registration, providerOwner, requestScope, dependencyKeySymbol, createdValue);
499
+ if (staleRetryCount >= MAX_STALE_REGISTRATION_RETRIES) {
500
+ throw this.createStaleRegistrationError(providerOwner, dependencyKeySymbol);
501
+ }
502
+ const retryLookup = this.FIND_PROVIDER(requestScope, dependencyKeySymbol);
503
+ return this.resolveSingleRegistrationSync(dependencyKeySymbol, retryLookup, path, requestScope, visitedTokens, staleRetryCount + 1);
504
+ }
505
+ try {
506
+ this.invokeOnInitSync(registration, dependencyKeySymbol, createdValue);
507
+ }
508
+ catch (error) {
509
+ this.tryDisposeAfterOnInitFailureSync(registration, providerOwner, requestScope, dependencyKeySymbol, createdValue);
510
+ throw error;
511
+ }
512
+ cache.set(cacheKey, createdValue);
513
+ const disposerScope = this.getDisposerScope(registration, providerOwner, requestScope);
514
+ this.REGISTER_DISPOSER(disposerScope, registration.provider, createdValue, dependencyKeySymbol);
515
+ return this.invokeAfterResolveSync(registration, dependencyKeySymbol, createdValue);
516
+ }
517
+ try {
518
+ this.invokeOnInitSync(registration, dependencyKeySymbol, createdValue);
519
+ }
520
+ catch (error) {
521
+ this.tryDisposeAfterOnInitFailureSync(registration, providerOwner, requestScope, dependencyKeySymbol, createdValue);
522
+ throw error;
523
+ }
524
+ const disposerScope = this.getDisposerScope(registration, providerOwner, requestScope);
525
+ this.REGISTER_DISPOSER(disposerScope, registration.provider, createdValue, dependencyKeySymbol);
526
+ return this.invokeAfterResolveSync(registration, dependencyKeySymbol, createdValue);
527
+ }
528
+ async runLifecycleHookAsync(provider, hookName, instance, dependencyKeySymbol) {
529
+ const hook = provider[hookName];
530
+ if (!hook) {
531
+ return;
532
+ }
533
+ try {
534
+ await hook(instance);
535
+ }
536
+ catch (error) {
537
+ throw this.createProviderHookFailedError(dependencyKeySymbol, hookName, error);
538
+ }
539
+ }
540
+ runLifecycleHookSync(provider, hookName, instance, dependencyKeySymbol) {
541
+ const hook = provider[hookName];
542
+ if (!hook) {
543
+ return;
544
+ }
545
+ try {
546
+ const hookResult = hook(instance);
547
+ if (this.isPromiseLike(hookResult)) {
548
+ throw this.createAsyncProviderHookError(dependencyKeySymbol, hookName);
549
+ }
550
+ }
551
+ catch (error) {
552
+ if (error instanceof BaseError && error.code === "ASYNC_PROVIDER_HOOK_ERROR") {
553
+ throw error;
554
+ }
555
+ throw this.createProviderHookFailedError(dependencyKeySymbol, hookName, error);
556
+ }
557
+ }
558
+ throwIfCircularDependency(dependencyKeySymbol, path, visitedTokens) {
559
+ if (visitedTokens.has(dependencyKeySymbol)) {
560
+ throw new BaseError("Circular dependency detected", {
561
+ code: "CIRCULAR_DEPENDENCY",
562
+ context: {
563
+ chain: [...path, dependencyKeySymbol].map((token) => this.DESCRIBE_KEY(token)),
564
+ },
565
+ source: "DIContainer",
566
+ });
567
+ }
568
+ }
569
+ async tryDisposeAfterOnInitFailureAsync(registration, providerOwner, requestScope, dependencyKeySymbol, instance) {
570
+ const disposer = this.REGISTER_DISPOSER(this.getDisposerScope(registration, providerOwner, requestScope), registration.provider, instance, dependencyKeySymbol, {
571
+ shouldTrack: false,
572
+ });
573
+ if (!disposer) {
574
+ return;
575
+ }
576
+ try {
577
+ await disposer();
578
+ }
579
+ catch {
580
+ // Preserve the original onInit error if rollback cleanup fails.
581
+ }
582
+ }
583
+ tryDisposeAfterOnInitFailureSync(registration, providerOwner, requestScope, dependencyKeySymbol, instance) {
584
+ const disposer = this.REGISTER_DISPOSER(this.getDisposerScope(registration, providerOwner, requestScope), registration.provider, instance, dependencyKeySymbol, {
585
+ shouldTrack: false,
586
+ });
587
+ if (!disposer) {
588
+ return;
589
+ }
590
+ void disposer().catch(() => {
591
+ // Preserve the original onInit error if rollback cleanup fails.
592
+ });
593
+ }
594
+ }
595
+
596
+ export { ResolutionCoordinator };
597
+ //# sourceMappingURL=coordinator.class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coordinator.class.js","sources":["../../../../../../../src/infrastructure/class/di/resolution/coordinator.class.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,4 +1,8 @@
1
+ import '../../domain/enum/captive-dependency-policy.enum.js';
2
+ import '../../domain/enum/dependency-lifecycle.enum.js';
3
+ import '../../domain/enum/di-container-duplicate-provider-policy.enum.js';
1
4
  import { ELoggerLogLevel } from '../../domain/enum/logger-log-level.enum.js';
5
+ import '../../domain/enum/provider-type.enum.js';
2
6
 
3
7
  /**
4
8
  * The default options for the console logger.