@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,87 @@
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 '../../../domain/enum/provider-type.enum.js';
6
+ import { BaseError } from '../../../infrastructure/class/base/error.class.js';
7
+ import { getInjectableMetadata } from '../utility/injectable-metadata/get.utility.js';
8
+ import { setInjectableMetadata } from '../utility/injectable-metadata/set.utility.js';
9
+
10
+ const DEPENDENCY_LIFECYCLE_VALUES = new Set(Object.values(EDependencyLifecycle));
11
+ /**
12
+ * Class decorator that stores DI metadata without reflection dependencies.
13
+ * @param {IInjectableOptions} [options] Injectable metadata options.
14
+ * @returns {ClassDecorator} Class decorator.
15
+ */
16
+ function Injectable(options = {}) {
17
+ validateInjectableOptions(options);
18
+ const decorator = (target) => {
19
+ const currentMetadata = getInjectableMetadata(target) ?? {};
20
+ const mergedMetadata = {
21
+ afterResolveMethod: options.afterResolveMethod ?? currentMetadata.afterResolveMethod,
22
+ deps: options.deps ?? currentMetadata.deps,
23
+ isMultiBinding: options.isMultiBinding ?? currentMetadata.isMultiBinding,
24
+ lifecycle: options.lifecycle ?? currentMetadata.lifecycle,
25
+ onDisposeMethod: options.onDisposeMethod ?? currentMetadata.onDisposeMethod,
26
+ onInitMethod: options.onInitMethod ?? currentMetadata.onInitMethod,
27
+ token: options.token ?? currentMetadata.token,
28
+ };
29
+ setInjectableMetadata(target, mergedMetadata);
30
+ };
31
+ return decorator;
32
+ }
33
+ /**
34
+ * Validates injectable decorator options.
35
+ * @param {IInjectableOptions} options Injectable decorator options.
36
+ * @returns {void}
37
+ */
38
+ function validateInjectableOptions(options) {
39
+ const dependencies = options.deps;
40
+ if (dependencies !== undefined) {
41
+ if (!Array.isArray(dependencies)) {
42
+ throw new BaseError("Injectable options deps must be an array", {
43
+ code: "INJECTABLE_OPTIONS_DEPS_NOT_ARRAY",
44
+ source: "Injectable",
45
+ });
46
+ }
47
+ for (let dependencyIndex = 0; dependencyIndex < dependencies.length; dependencyIndex += 1) {
48
+ const hasDependencyAtIndex = Object.prototype.hasOwnProperty.call(dependencies, dependencyIndex);
49
+ if (!hasDependencyAtIndex) {
50
+ throw new BaseError("Injectable options deps has sparse dependency indexes", {
51
+ code: "INJECTABLE_OPTIONS_DEPS_SPARSE",
52
+ context: { index: dependencyIndex },
53
+ source: "Injectable",
54
+ });
55
+ }
56
+ if (typeof dependencies[dependencyIndex] !== "symbol") {
57
+ throw new BaseError("Injectable options dependency token must be a symbol", {
58
+ code: "INJECTABLE_OPTIONS_DEPS_TOKEN_INVALID",
59
+ context: { index: dependencyIndex },
60
+ source: "Injectable",
61
+ });
62
+ }
63
+ }
64
+ }
65
+ if (options.lifecycle !== undefined && !DEPENDENCY_LIFECYCLE_VALUES.has(options.lifecycle)) {
66
+ throw new BaseError("Injectable options lifecycle is invalid", {
67
+ code: "INJECTABLE_OPTIONS_LIFECYCLE_INVALID",
68
+ context: { lifecycle: options.lifecycle },
69
+ source: "Injectable",
70
+ });
71
+ }
72
+ if (options.token !== undefined && typeof options.token !== "symbol") {
73
+ throw new BaseError("Injectable options token must be a symbol", {
74
+ code: "INJECTABLE_OPTIONS_TOKEN_INVALID",
75
+ source: "Injectable",
76
+ });
77
+ }
78
+ if (options.isMultiBinding !== undefined && typeof options.isMultiBinding !== "boolean") {
79
+ throw new BaseError("Injectable options isMultiBinding must be a boolean", {
80
+ code: "INJECTABLE_OPTIONS_MULTI_BINDING_INVALID",
81
+ source: "Injectable",
82
+ });
83
+ }
84
+ }
85
+
86
+ export { Injectable };
87
+ //# sourceMappingURL=injectable.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injectable.decorator.js","sources":["../../../../../../src/presentation/ergonomics/decorator/injectable.decorator.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { IModuleDecoratorOptions } from '../interface/index';
2
+ /**
3
+ * Class decorator that stores module composition metadata.
4
+ * @param {IModuleDecoratorOptions} [options] Module metadata options.
5
+ * @returns {ClassDecorator} Class decorator.
6
+ */
7
+ export declare function Module(options?: IModuleDecoratorOptions): ClassDecorator;
8
+ //# sourceMappingURL=module.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.decorator.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/ergonomics/decorator/module.decorator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAKlF;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,OAAO,GAAE,uBAA4B,GAAG,cAAc,CAgB5E"}
@@ -0,0 +1,141 @@
1
+ import { BaseError } from '../../../infrastructure/class/base/error.class.js';
2
+ import { getModuleMetadata } from '../utility/module-metadata/get.utility.js';
3
+ import { setModuleMetadata } from '../utility/module-metadata/set.utility.js';
4
+
5
+ /**
6
+ * Class decorator that stores module composition metadata.
7
+ * @param {IModuleDecoratorOptions} [options] Module metadata options.
8
+ * @returns {ClassDecorator} Class decorator.
9
+ */
10
+ function Module(options = {}) {
11
+ validateModuleDecoratorOptions(options);
12
+ const decorator = (target) => {
13
+ const currentMetadata = getModuleMetadata(target) ?? {};
14
+ const mergedMetadata = {
15
+ exports: options.exports ?? currentMetadata.exports,
16
+ imports: options.imports ?? currentMetadata.imports,
17
+ name: options.name ?? currentMetadata.name,
18
+ providers: options.providers ?? currentMetadata.providers,
19
+ };
20
+ setModuleMetadata(target, mergedMetadata);
21
+ };
22
+ return decorator;
23
+ }
24
+ /**
25
+ * Checks whether input is constructable class constructor.
26
+ * @param {unknown} candidate Candidate value.
27
+ * @returns {boolean} True when value is a constructable class.
28
+ */
29
+ function isConstructable(candidate) {
30
+ if (typeof candidate !== "function") {
31
+ return false;
32
+ }
33
+ const candidateAsConstructor = candidate;
34
+ const prototype = candidateAsConstructor.prototype;
35
+ return !!prototype && prototype.constructor === candidate;
36
+ }
37
+ /**
38
+ * Checks whether input is module definition shape.
39
+ * @param {unknown} candidate Candidate value.
40
+ * @returns {boolean} True when candidate is module definition-like.
41
+ */
42
+ function isModuleDefinition(candidate) {
43
+ if (typeof candidate !== "object" || candidate === null) {
44
+ return false;
45
+ }
46
+ const moduleCandidate = candidate;
47
+ return Array.isArray(moduleCandidate.exports) && Array.isArray(moduleCandidate.imports) && Array.isArray(moduleCandidate.providers);
48
+ }
49
+ /**
50
+ * Checks whether input is provider definition shape.
51
+ * @param {unknown} candidate Candidate value.
52
+ * @returns {boolean} True when candidate is provider-like object.
53
+ */
54
+ function isProviderDefinition(candidate) {
55
+ if (typeof candidate !== "object" || candidate === null) {
56
+ return false;
57
+ }
58
+ const providerCandidate = candidate;
59
+ return typeof providerCandidate.provide === "symbol";
60
+ }
61
+ /**
62
+ * Validates module decorator options.
63
+ * @param {IModuleDecoratorOptions} options Module decorator options.
64
+ */
65
+ function validateModuleDecoratorOptions(options) {
66
+ validateModuleExports(options.exports);
67
+ validateModuleImports(options.imports);
68
+ validateModuleProviders(options.providers);
69
+ }
70
+ /**
71
+ * Validates module exports list.
72
+ * @param {ReadonlyArray<Token<unknown>> | undefined} exportTokens Export token list.
73
+ */
74
+ function validateModuleExports(exportTokens) {
75
+ if (exportTokens === undefined) {
76
+ return;
77
+ }
78
+ if (!Array.isArray(exportTokens)) {
79
+ throw new BaseError("Module options exports must be an array", {
80
+ code: "MODULE_OPTIONS_EXPORTS_NOT_ARRAY",
81
+ source: "Module",
82
+ });
83
+ }
84
+ for (const exportToken of exportTokens) {
85
+ if (typeof exportToken !== "symbol") {
86
+ throw new BaseError("Module export token must be a symbol", {
87
+ code: "MODULE_OPTIONS_EXPORT_TOKEN_INVALID",
88
+ source: "Module",
89
+ });
90
+ }
91
+ }
92
+ }
93
+ /**
94
+ * Validates module imports list.
95
+ * @param {ReadonlyArray<Constructor<unknown> | IDIModule> | undefined} importEntries Import entry list.
96
+ */
97
+ function validateModuleImports(importEntries) {
98
+ if (importEntries === undefined) {
99
+ return;
100
+ }
101
+ if (!Array.isArray(importEntries)) {
102
+ throw new BaseError("Module options imports must be an array", {
103
+ code: "MODULE_OPTIONS_IMPORTS_NOT_ARRAY",
104
+ source: "Module",
105
+ });
106
+ }
107
+ for (const importEntry of importEntries) {
108
+ if (!isConstructable(importEntry) && !isModuleDefinition(importEntry)) {
109
+ throw new BaseError("Module import must be a decorated module class or module definition", {
110
+ code: "MODULE_OPTIONS_IMPORT_INVALID",
111
+ source: "Module",
112
+ });
113
+ }
114
+ }
115
+ }
116
+ /**
117
+ * Validates module providers list.
118
+ * @param {ReadonlyArray<Constructor<unknown> | Provider> | undefined} providers Provider entry list.
119
+ */
120
+ function validateModuleProviders(providers) {
121
+ if (providers === undefined) {
122
+ return;
123
+ }
124
+ if (!Array.isArray(providers)) {
125
+ throw new BaseError("Module options providers must be an array", {
126
+ code: "MODULE_OPTIONS_PROVIDERS_NOT_ARRAY",
127
+ source: "Module",
128
+ });
129
+ }
130
+ for (const providerEntry of providers) {
131
+ if (!isConstructable(providerEntry) && !isProviderDefinition(providerEntry)) {
132
+ throw new BaseError("Module provider must be a decorated class or provider definition", {
133
+ code: "MODULE_OPTIONS_PROVIDER_INVALID",
134
+ source: "Module",
135
+ });
136
+ }
137
+ }
138
+ }
139
+
140
+ export { Module };
141
+ //# sourceMappingURL=module.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.decorator.js","sources":["../../../../../../src/presentation/ergonomics/decorator/module.decorator.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Method decorator that marks a class lifecycle onDispose hook.
3
+ * @returns {MethodDecorator} Method decorator.
4
+ */
5
+ export declare function OnDispose(): MethodDecorator;
6
+ //# sourceMappingURL=on-dispose.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"on-dispose.decorator.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/ergonomics/decorator/on-dispose.decorator.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,wBAAgB,SAAS,IAAI,eAAe,CA+B3C"}
@@ -0,0 +1,39 @@
1
+ import { BaseError } from '../../../infrastructure/class/base/error.class.js';
2
+ import { getInjectableMetadata } from '../utility/injectable-metadata/get.utility.js';
3
+ import { setInjectableMetadata } from '../utility/injectable-metadata/set.utility.js';
4
+
5
+ /**
6
+ * Method decorator that marks a class lifecycle onDispose hook.
7
+ * @returns {MethodDecorator} Method decorator.
8
+ */
9
+ function OnDispose() {
10
+ return (target, propertyKey, descriptor) => {
11
+ if (typeof propertyKey !== "string") {
12
+ throw new BaseError("OnDispose must target a named class method", {
13
+ code: "ON_DISPOSE_METHOD_NAME_INVALID",
14
+ source: "OnDispose",
15
+ });
16
+ }
17
+ if (!descriptor || typeof descriptor.value !== "function") {
18
+ throw new BaseError("OnDispose can only be applied to methods", {
19
+ code: "ON_DISPOSE_TARGET_INVALID",
20
+ source: "OnDispose",
21
+ });
22
+ }
23
+ const targetConstructor = target.constructor;
24
+ const metadata = getInjectableMetadata(targetConstructor) ?? {};
25
+ if (metadata.onDisposeMethod !== undefined && metadata.onDisposeMethod !== propertyKey) {
26
+ throw new BaseError("OnDispose lifecycle hook is already defined for this class", {
27
+ code: "ON_DISPOSE_METHOD_DUPLICATE",
28
+ source: "OnDispose",
29
+ });
30
+ }
31
+ setInjectableMetadata(targetConstructor, {
32
+ ...metadata,
33
+ onDisposeMethod: propertyKey,
34
+ });
35
+ };
36
+ }
37
+
38
+ export { OnDispose };
39
+ //# sourceMappingURL=on-dispose.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"on-dispose.decorator.js","sources":["../../../../../../src/presentation/ergonomics/decorator/on-dispose.decorator.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAMA;;;AAGG;SACa,SAAS,GAAA;AACxB,IAAA,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,UAA8B,KAAU;AAC7F,QAAA,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;AACpC,YAAA,MAAM,IAAI,SAAS,CAAC,4CAA4C,EAAE;AACjE,gBAAA,IAAI,EAAE,gCAAgC;AACtC,gBAAA,MAAM,EAAE,WAAW;AACnB,aAAA,CAAC;QACH;QAEA,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,UAAU,EAAE;AAC1D,YAAA,MAAM,IAAI,SAAS,CAAC,0CAA0C,EAAE;AAC/D,gBAAA,IAAI,EAAE,2BAA2B;AACjC,gBAAA,MAAM,EAAE,WAAW;AACnB,aAAA,CAAC;QACH;AAEA,QAAA,MAAM,iBAAiB,GAAyB,MAAM,CAAC,WAAmC;QAC1F,MAAM,QAAQ,GAAwB,qBAAqB,CAAC,iBAAiB,CAAC,IAAI,EAAE;AAEpF,QAAA,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,IAAI,QAAQ,CAAC,eAAe,KAAK,WAAW,EAAE;AACvF,YAAA,MAAM,IAAI,SAAS,CAAC,4DAA4D,EAAE;AACjF,gBAAA,IAAI,EAAE,6BAA6B;AACnC,gBAAA,MAAM,EAAE,WAAW;AACnB,aAAA,CAAC;QACH;QAEA,qBAAqB,CAAC,iBAAiB,EAAE;AACxC,YAAA,GAAG,QAAQ;AACX,YAAA,eAAe,EAAE,WAAW;AAC5B,SAAA,CAAC;AACH,IAAA,CAAC;AACF;;;;"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Method decorator that marks a class lifecycle onInit hook.
3
+ * @returns {MethodDecorator} Method decorator.
4
+ */
5
+ export declare function OnInit(): MethodDecorator;
6
+ //# sourceMappingURL=on-init.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"on-init.decorator.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/ergonomics/decorator/on-init.decorator.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,wBAAgB,MAAM,IAAI,eAAe,CA+BxC"}
@@ -0,0 +1,39 @@
1
+ import { BaseError } from '../../../infrastructure/class/base/error.class.js';
2
+ import { getInjectableMetadata } from '../utility/injectable-metadata/get.utility.js';
3
+ import { setInjectableMetadata } from '../utility/injectable-metadata/set.utility.js';
4
+
5
+ /**
6
+ * Method decorator that marks a class lifecycle onInit hook.
7
+ * @returns {MethodDecorator} Method decorator.
8
+ */
9
+ function OnInit() {
10
+ return (target, propertyKey, descriptor) => {
11
+ if (typeof propertyKey !== "string") {
12
+ throw new BaseError("OnInit must target a named class method", {
13
+ code: "ON_INIT_METHOD_NAME_INVALID",
14
+ source: "OnInit",
15
+ });
16
+ }
17
+ if (!descriptor || typeof descriptor.value !== "function") {
18
+ throw new BaseError("OnInit can only be applied to methods", {
19
+ code: "ON_INIT_TARGET_INVALID",
20
+ source: "OnInit",
21
+ });
22
+ }
23
+ const targetConstructor = target.constructor;
24
+ const metadata = getInjectableMetadata(targetConstructor) ?? {};
25
+ if (metadata.onInitMethod !== undefined && metadata.onInitMethod !== propertyKey) {
26
+ throw new BaseError("OnInit lifecycle hook is already defined for this class", {
27
+ code: "ON_INIT_METHOD_DUPLICATE",
28
+ source: "OnInit",
29
+ });
30
+ }
31
+ setInjectableMetadata(targetConstructor, {
32
+ ...metadata,
33
+ onInitMethod: propertyKey,
34
+ });
35
+ };
36
+ }
37
+
38
+ export { OnInit };
39
+ //# sourceMappingURL=on-init.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"on-init.decorator.js","sources":["../../../../../../src/presentation/ergonomics/decorator/on-init.decorator.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAMA;;;AAGG;SACa,MAAM,GAAA;AACrB,IAAA,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,UAA8B,KAAU;AAC7F,QAAA,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;AACpC,YAAA,MAAM,IAAI,SAAS,CAAC,yCAAyC,EAAE;AAC9D,gBAAA,IAAI,EAAE,6BAA6B;AACnC,gBAAA,MAAM,EAAE,QAAQ;AAChB,aAAA,CAAC;QACH;QAEA,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,UAAU,EAAE;AAC1D,YAAA,MAAM,IAAI,SAAS,CAAC,uCAAuC,EAAE;AAC5D,gBAAA,IAAI,EAAE,wBAAwB;AAC9B,gBAAA,MAAM,EAAE,QAAQ;AAChB,aAAA,CAAC;QACH;AAEA,QAAA,MAAM,iBAAiB,GAAyB,MAAM,CAAC,WAAmC;QAC1F,MAAM,QAAQ,GAAwB,qBAAqB,CAAC,iBAAiB,CAAC,IAAI,EAAE;AAEpF,QAAA,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS,IAAI,QAAQ,CAAC,YAAY,KAAK,WAAW,EAAE;AACjF,YAAA,MAAM,IAAI,SAAS,CAAC,yDAAyD,EAAE;AAC9E,gBAAA,IAAI,EAAE,0BAA0B;AAChC,gBAAA,MAAM,EAAE,QAAQ;AAChB,aAAA,CAAC;QACH;QAEA,qBAAqB,CAAC,iBAAiB,EAAE;AACxC,YAAA,GAAG,QAAQ;AACX,YAAA,YAAY,EAAE,WAAW;AACzB,SAAA,CAAC;AACH,IAAA,CAAC;AACF;;;;"}
@@ -0,0 +1,4 @@
1
+ export * from './decorator/index';
2
+ export type * from './interface/index';
3
+ export * from './utility/index';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/presentation/ergonomics/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,mBAAmB,aAAa,CAAC;AACjC,cAAc,WAAW,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { EDependencyLifecycle } from '../../../../domain/enum/index';
2
+ import type { Token } from '../../../../domain/type/index';
3
+ export interface ICreateAutowireProviderOptions<T, TDependencies extends ReadonlyArray<Token<unknown>> = ReadonlyArray<Token<unknown>>> {
4
+ afterResolve?(instance: T): Promise<void> | void;
5
+ deps?: TDependencies;
6
+ isMultiBinding?: boolean;
7
+ lifecycle?: EDependencyLifecycle;
8
+ onDispose?(instance: T): Promise<void> | void;
9
+ onInit?(instance: T): Promise<void> | void;
10
+ token: Token<T>;
11
+ }
12
+ //# sourceMappingURL=autowire-provider-options.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autowire-provider-options.interface.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/ergonomics/interface/create/autowire-provider-options.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,WAAW,8BAA8B,CAAC,CAAC,EAAE,aAAa,SAAS,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrI,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACjD,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9C,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3C,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;CAChB"}
@@ -0,0 +1,3 @@
1
+ export type { ICreateAutowireProviderOptions } from './autowire-provider-options.interface';
2
+ export type { ICreateModuleOptions } from './module-options.interface';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/ergonomics/interface/create/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,8BAA8B,EAAE,MAAM,uCAAuC,CAAC;AAC5F,YAAY,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { IDIModule } from '../../../../domain/interface/index';
2
+ import type { Provider, Token } from '../../../../domain/type/index';
3
+ export interface ICreateModuleOptions {
4
+ exports?: ReadonlyArray<Token<unknown>>;
5
+ imports?: ReadonlyArray<IDIModule>;
6
+ name?: string;
7
+ providers?: ReadonlyArray<Provider>;
8
+ }
9
+ //# sourceMappingURL=module-options.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-options.interface.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/ergonomics/interface/create/module-options.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,WAAW,oBAAoB;IACpC,OAAO,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;CACpC"}
@@ -0,0 +1,2 @@
1
+ export type { IModuleDecoratorOptions } from './module-options.interface';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/ergonomics/interface/decorator/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { IDIModule } from '../../../../domain/interface/index';
2
+ import type { Constructor, Provider, Token } from '../../../../domain/type/index';
3
+ export interface IModuleDecoratorOptions {
4
+ exports?: ReadonlyArray<Token<unknown>>;
5
+ imports?: ReadonlyArray<Constructor<unknown> | IDIModule>;
6
+ name?: string;
7
+ providers?: ReadonlyArray<Constructor<unknown> | Provider>;
8
+ }
9
+ //# sourceMappingURL=module-options.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-options.interface.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/ergonomics/interface/decorator/module-options.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAEjE,MAAM,WAAW,uBAAuB;IACvC,OAAO,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;CAC3D"}
@@ -0,0 +1,4 @@
1
+ export type * from './create/index';
2
+ export type * from './decorator/index';
3
+ export type * from './injectable/index';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/ergonomics/interface/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,UAAU,CAAC;AAC9B,mBAAmB,aAAa,CAAC;AACjC,mBAAmB,cAAc,CAAC"}
@@ -0,0 +1,3 @@
1
+ export type { IInjectableMetadata } from './metadata.interface';
2
+ export type { IInjectableOptions } from './options.interface';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/ergonomics/interface/injectable/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { EDependencyLifecycle } from '../../../../domain/enum/index';
2
+ import type { Token } from '../../../../domain/type/index';
3
+ export interface IInjectableMetadata {
4
+ afterResolveMethod?: string;
5
+ deps?: ReadonlyArray<Token<unknown>>;
6
+ isMultiBinding?: boolean;
7
+ lifecycle?: EDependencyLifecycle;
8
+ onDisposeMethod?: string;
9
+ onInitMethod?: string;
10
+ token?: Token<unknown>;
11
+ }
12
+ //# sourceMappingURL=metadata.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.interface.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/ergonomics/interface/injectable/metadata.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,WAAW,mBAAmB;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,IAAI,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACrC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;CACvB"}
@@ -0,0 +1,4 @@
1
+ import type { IInjectableMetadata } from './metadata.interface';
2
+ type TInjectableOptions = IInjectableMetadata;
3
+ export type { TInjectableOptions as IInjectableOptions };
4
+ //# sourceMappingURL=options.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.interface.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/ergonomics/interface/injectable/options.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,KAAK,kBAAkB,GAAG,mBAAmB,CAAC;AAE9C,YAAY,EAAE,kBAAkB,IAAI,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { IDIModule } from '../../../domain/interface/index';
2
+ import type { Constructor, IDIContainer } from '../../../domain/type/index';
3
+ /**
4
+ * Composes module graph from mixed decorated module classes and plain module definitions.
5
+ * @param {IDIContainer} container Target container.
6
+ * @param {Array<Constructor<unknown> | IDIModule>} modules Decorated module classes or plain module definitions.
7
+ */
8
+ export declare function composeDecoratedModules(container: IDIContainer, modules: Array<Constructor<unknown> | IDIModule>): void;
9
+ //# sourceMappingURL=compose-decorated-modules.utility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compose-decorated-modules.utility.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/ergonomics/utility/compose-decorated-modules.utility.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAO9D;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,GAAG,IAAI,CAGvH"}
@@ -0,0 +1,61 @@
1
+ import { BaseError } from '../../../infrastructure/class/base/error.class.js';
2
+ import { composeModules } from './compose-modules.utility.js';
3
+ import { createModuleFromDecorator } from './create/module-from-decorator.utility.js';
4
+
5
+ /**
6
+ * Composes module graph from mixed decorated module classes and plain module definitions.
7
+ * @param {IDIContainer} container Target container.
8
+ * @param {Array<Constructor<unknown> | IDIModule>} modules Decorated module classes or plain module definitions.
9
+ */
10
+ function composeDecoratedModules(container, modules) {
11
+ const resolvedModules = modules.map((moduleEntry) => resolveModuleDefinition(moduleEntry));
12
+ composeModules(container, resolvedModules);
13
+ }
14
+ /**
15
+ * Checks whether input is constructable class constructor.
16
+ * @param {unknown} candidate Candidate value.
17
+ * @returns {boolean} True when value is a constructable class.
18
+ */
19
+ function isConstructable(candidate) {
20
+ if (typeof candidate !== "function") {
21
+ return false;
22
+ }
23
+ const candidateAsConstructor = candidate;
24
+ const prototype = candidateAsConstructor.prototype;
25
+ return !!prototype && prototype.constructor === candidate;
26
+ }
27
+ /**
28
+ * Checks whether input is module definition shape.
29
+ * @param {unknown} candidate Candidate value.
30
+ * @returns {boolean} True when candidate is module definition-like.
31
+ */
32
+ function isModuleDefinition(candidate) {
33
+ if (typeof candidate !== "object" || candidate === null) {
34
+ return false;
35
+ }
36
+ const moduleCandidate = candidate;
37
+ return Array.isArray(moduleCandidate.exports) && Array.isArray(moduleCandidate.imports) && Array.isArray(moduleCandidate.providers);
38
+ }
39
+ /**
40
+ * Resolves a module entry to plain module definition.
41
+ * @param {Constructor<unknown> | IDIModule} moduleEntry Module entry.
42
+ * @returns {IDIModule} Plain module definition.
43
+ */
44
+ function resolveModuleDefinition(moduleEntry) {
45
+ if (isModuleDefinition(moduleEntry)) {
46
+ return moduleEntry;
47
+ }
48
+ if (isConstructable(moduleEntry)) {
49
+ return createModuleFromDecorator(moduleEntry);
50
+ }
51
+ throw new BaseError("Module entry must be a decorated module class or module definition", {
52
+ code: "MODULE_ENTRY_INVALID",
53
+ context: {
54
+ entryType: typeof moduleEntry,
55
+ },
56
+ source: "composeDecoratedModules",
57
+ });
58
+ }
59
+
60
+ export { composeDecoratedModules };
61
+ //# sourceMappingURL=compose-decorated-modules.utility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compose-decorated-modules.utility.js","sources":["../../../../../../src/presentation/ergonomics/utility/compose-decorated-modules.utility.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAQA;;;;AAIG;AACG,SAAU,uBAAuB,CAAC,SAAuB,EAAE,OAAgD,EAAA;AAChH,IAAA,MAAM,eAAe,GAAqB,OAAO,CAAC,GAAG,CAAC,CAAC,WAA6C,KAAK,uBAAuB,CAAC,WAAW,CAAC,CAAC;AAC9I,IAAA,cAAc,CAAC,SAAS,EAAE,eAAe,CAAC;AAC3C;AAEA;;;;AAIG;AACH,SAAS,eAAe,CAAC,SAAkB,EAAA;AAC1C,IAAA,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;AACpC,QAAA,OAAO,KAAK;IACb;IAEA,MAAM,sBAAsB,GAA8C,SAAsD;AAChI,IAAA,MAAM,SAAS,GAA0C,sBAAsB,CAAC,SAAS;IAEzF,OAAO,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,WAAW,KAAK,SAAS;AAC1D;AAEA;;;;AAIG;AACH,SAAS,kBAAkB,CAAC,SAAkB,EAAA;IAC7C,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,EAAE;AACxD,QAAA,OAAO,KAAK;IACb;IAEA,MAAM,eAAe,GAIjB,SAIH;IAED,OAAO,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC;AACpI;AAEA;;;;AAIG;AACH,SAAS,uBAAuB,CAAC,WAA6C,EAAA;AAC7E,IAAA,IAAI,kBAAkB,CAAC,WAAW,CAAC,EAAE;AACpC,QAAA,OAAO,WAAW;IACnB;AAEA,IAAA,IAAI,eAAe,CAAC,WAAW,CAAC,EAAE;AACjC,QAAA,OAAO,yBAAyB,CAAC,WAAW,CAAC;IAC9C;AAEA,IAAA,MAAM,IAAI,SAAS,CAAC,oEAAoE,EAAE;AACzF,QAAA,IAAI,EAAE,sBAAsB;AAC5B,QAAA,OAAO,EAAE;YACR,SAAS,EAAE,OAAO,WAAW;AAC7B,SAAA;AACD,QAAA,MAAM,EAAE,yBAAyB;AACjC,KAAA,CAAC;AACH;;;;"}
@@ -0,0 +1,10 @@
1
+ import type { IDIModule } from '../../../domain/interface/index';
2
+ import type { IDIContainer } from '../../../domain/type/index';
3
+ /**
4
+ * Registers module trees in deterministic order (imports first, then local providers).
5
+ * Imported modules expose providers through the `exports` contract.
6
+ * @param {IDIContainer} container Target container.
7
+ * @param {Array<IDIModule>} modules Module list to compose.
8
+ */
9
+ export declare function composeModules(container: IDIContainer, modules: Array<IDIModule>): void;
10
+ //# sourceMappingURL=compose-modules.utility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compose-modules.utility.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/ergonomics/utility/compose-modules.utility.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAmB,MAAM,cAAc,CAAC;AAalE;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CA6DvF"}