@nexus-ioc/core 0.4.2 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/README.md +20 -9
  2. package/dist/cjs/browser.js.map +1 -0
  3. package/dist/cjs/core/graph/analyze-module.js.map +1 -0
  4. package/dist/cjs/core/graph/analyze-provider.js.map +1 -0
  5. package/dist/cjs/core/graph/helpers/index.js.map +1 -0
  6. package/dist/{core → cjs/core}/graph/module-graph.js +28 -21
  7. package/dist/cjs/core/graph/module-graph.js.map +1 -0
  8. package/dist/cjs/core/graph/providers/analyze-class-provider.js.map +1 -0
  9. package/dist/cjs/core/graph/providers/analyze-factory-provider.js.map +1 -0
  10. package/dist/cjs/core/graph/providers/analyze-function-provider.js.map +1 -0
  11. package/dist/cjs/core/graph/providers/analyze-value-provider.js.map +1 -0
  12. package/dist/cjs/core/graph/providers/provider-factory.js.map +1 -0
  13. package/dist/cjs/core/modules/container.js +182 -0
  14. package/dist/cjs/core/modules/container.js.map +1 -0
  15. package/dist/cjs/core/modules/module-container-factory.js.map +1 -0
  16. package/dist/{core → cjs/core}/modules/module-container.js +0 -1
  17. package/dist/cjs/core/modules/module-container.js.map +1 -0
  18. package/dist/cjs/core/modules/module-token-factory.js.map +1 -0
  19. package/dist/cjs/core/modules/modules-container.js.map +1 -0
  20. package/dist/{core → cjs/core}/nexus-applications.browser.js +19 -2
  21. package/dist/cjs/core/nexus-applications.browser.js.map +1 -0
  22. package/dist/cjs/core/nexus-applications.js +204 -0
  23. package/dist/cjs/core/nexus-applications.js.map +1 -0
  24. package/dist/{core → cjs/core}/nexus-applications.server.js +19 -2
  25. package/dist/cjs/core/nexus-applications.server.js.map +1 -0
  26. package/dist/{core → cjs/core}/resolver/providers-container.js +1 -1
  27. package/dist/cjs/core/resolver/providers-container.js.map +1 -0
  28. package/dist/{core → cjs/core}/resolver/resolver.js +53 -14
  29. package/dist/cjs/core/resolver/resolver.js.map +1 -0
  30. package/dist/{decorators → cjs/decorators}/global.js +1 -1
  31. package/dist/cjs/decorators/global.js.map +1 -0
  32. package/dist/{decorators → cjs/decorators}/inject.js +39 -0
  33. package/dist/cjs/decorators/inject.js.map +1 -0
  34. package/dist/cjs/decorators/injectable.js +46 -0
  35. package/dist/cjs/decorators/injectable.js.map +1 -0
  36. package/dist/cjs/decorators/nsModule.js +57 -0
  37. package/dist/cjs/decorators/nsModule.js.map +1 -0
  38. package/dist/cjs/decorators/optional.js +60 -0
  39. package/dist/cjs/decorators/optional.js.map +1 -0
  40. package/dist/{index.js → cjs/index.js} +13 -6
  41. package/dist/cjs/index.js.map +1 -0
  42. package/dist/cjs/interfaces/abstract.interface.js.map +1 -0
  43. package/dist/cjs/interfaces/constants.js.map +1 -0
  44. package/dist/cjs/interfaces/dynamic-module.interface.js.map +1 -0
  45. package/dist/{interfaces → cjs/interfaces}/index.js +6 -6
  46. package/dist/cjs/interfaces/index.js.map +1 -0
  47. package/dist/cjs/interfaces/injectable.interface.js.map +1 -0
  48. package/dist/cjs/interfaces/injection-token.interface.js.map +1 -0
  49. package/dist/cjs/interfaces/module-metadata.interface.js.map +1 -0
  50. package/dist/cjs/interfaces/module-types.interface.js.map +1 -0
  51. package/dist/cjs/interfaces/modules/container.interface.js.map +1 -0
  52. package/dist/{interfaces → cjs/interfaces}/modules/index.js +1 -1
  53. package/dist/cjs/interfaces/modules/index.js.map +1 -0
  54. package/dist/cjs/interfaces/modules/module-container-factory.interface.js.map +1 -0
  55. package/dist/cjs/interfaces/modules/module-container.interface.js.map +1 -0
  56. package/dist/cjs/interfaces/modules/module-graph.interface.js.map +1 -0
  57. package/dist/cjs/interfaces/modules/module-token-factory.interface.js.map +1 -0
  58. package/dist/cjs/interfaces/modules/modules-container.interface.js.map +1 -0
  59. package/dist/cjs/interfaces/modules/provider-token-factory.interface.js.map +1 -0
  60. package/dist/cjs/interfaces/nexus-application.interface.js.map +1 -0
  61. package/dist/cjs/interfaces/on-module-init.interface.js.map +1 -0
  62. package/dist/{interfaces → cjs/interfaces}/plugins/index.js +1 -1
  63. package/dist/cjs/interfaces/plugins/index.js.map +1 -0
  64. package/dist/cjs/interfaces/plugins/module-plugin.interface.js.map +1 -0
  65. package/dist/cjs/interfaces/plugins/scanner-plugin.interface.js.map +1 -0
  66. package/dist/cjs/interfaces/scope.interface.js +59 -0
  67. package/dist/cjs/interfaces/scope.interface.js.map +1 -0
  68. package/dist/cjs/interfaces/type.interface.js.map +1 -0
  69. package/dist/cjs/interfaces/utils/hash-utils.interface.js.map +1 -0
  70. package/dist/cjs/interfaces/utils/index.js.map +1 -0
  71. package/dist/{interfaces → cjs/interfaces}/validate-module-keys.js +1 -1
  72. package/dist/cjs/interfaces/validate-module-keys.js.map +1 -0
  73. package/dist/cjs/server.js.map +1 -0
  74. package/dist/cjs/utils/hash-utils.browser.js.map +1 -0
  75. package/dist/cjs/utils/hash-utils.js +25 -0
  76. package/dist/cjs/utils/hash-utils.js.map +1 -0
  77. package/dist/cjs/utils/hash-utils.server.js.map +1 -0
  78. package/dist/{utils → cjs/utils}/helpers.js +2 -1
  79. package/dist/cjs/utils/helpers.js.map +1 -0
  80. package/dist/{utils → cjs/utils}/shared.utils.js +15 -16
  81. package/dist/cjs/utils/shared.utils.js.map +1 -0
  82. package/dist/esm/browser.js +2 -0
  83. package/dist/esm/browser.js.map +1 -0
  84. package/dist/esm/core/graph/analyze-module.js +78 -0
  85. package/dist/esm/core/graph/analyze-module.js.map +1 -0
  86. package/dist/esm/core/graph/analyze-provider.js +53 -0
  87. package/dist/esm/core/graph/analyze-provider.js.map +1 -0
  88. package/dist/esm/core/graph/helpers/index.js +17 -0
  89. package/dist/esm/core/graph/helpers/index.js.map +1 -0
  90. package/dist/esm/core/graph/module-graph.js +402 -0
  91. package/dist/esm/core/graph/module-graph.js.map +1 -0
  92. package/dist/esm/core/graph/providers/analyze-class-provider.js +13 -0
  93. package/dist/esm/core/graph/providers/analyze-class-provider.js.map +1 -0
  94. package/dist/esm/core/graph/providers/analyze-factory-provider.js +13 -0
  95. package/dist/esm/core/graph/providers/analyze-factory-provider.js.map +1 -0
  96. package/dist/esm/core/graph/providers/analyze-function-provider.js +7 -0
  97. package/dist/esm/core/graph/providers/analyze-function-provider.js.map +1 -0
  98. package/dist/esm/core/graph/providers/analyze-value-provider.js +13 -0
  99. package/dist/esm/core/graph/providers/analyze-value-provider.js.map +1 -0
  100. package/dist/esm/core/graph/providers/provider-factory.js +21 -0
  101. package/dist/esm/core/graph/providers/provider-factory.js.map +1 -0
  102. package/dist/esm/core/modules/container.js +178 -0
  103. package/dist/esm/core/modules/container.js.map +1 -0
  104. package/dist/esm/core/modules/module-container-factory.js +21 -0
  105. package/dist/esm/core/modules/module-container-factory.js.map +1 -0
  106. package/dist/esm/core/modules/module-container.js +58 -0
  107. package/dist/esm/core/modules/module-container.js.map +1 -0
  108. package/dist/esm/core/modules/module-token-factory.js +43 -0
  109. package/dist/esm/core/modules/module-token-factory.js.map +1 -0
  110. package/dist/esm/core/modules/modules-container.js +39 -0
  111. package/dist/esm/core/modules/modules-container.js.map +1 -0
  112. package/dist/esm/core/nexus-applications.browser.js +49 -0
  113. package/dist/esm/core/nexus-applications.browser.js.map +1 -0
  114. package/dist/esm/core/nexus-applications.js +200 -0
  115. package/dist/esm/core/nexus-applications.js.map +1 -0
  116. package/dist/esm/core/nexus-applications.server.js +49 -0
  117. package/dist/esm/core/nexus-applications.server.js.map +1 -0
  118. package/dist/esm/core/resolver/providers-container.js +4 -0
  119. package/dist/esm/core/resolver/providers-container.js.map +1 -0
  120. package/dist/esm/core/resolver/resolver.js +161 -0
  121. package/dist/esm/core/resolver/resolver.js.map +1 -0
  122. package/dist/esm/decorators/global.js +9 -0
  123. package/dist/esm/decorators/global.js.map +1 -0
  124. package/dist/esm/decorators/inject.js +63 -0
  125. package/dist/esm/decorators/inject.js.map +1 -0
  126. package/dist/esm/decorators/injectable.js +43 -0
  127. package/dist/esm/decorators/injectable.js.map +1 -0
  128. package/dist/esm/decorators/nsModule.js +54 -0
  129. package/dist/esm/decorators/nsModule.js.map +1 -0
  130. package/dist/esm/decorators/optional.js +57 -0
  131. package/dist/esm/decorators/optional.js.map +1 -0
  132. package/dist/esm/index.js +12 -0
  133. package/dist/esm/index.js.map +1 -0
  134. package/dist/esm/interfaces/abstract.interface.js +2 -0
  135. package/dist/esm/interfaces/abstract.interface.js.map +1 -0
  136. package/dist/esm/interfaces/constants.js +13 -0
  137. package/dist/esm/interfaces/constants.js.map +1 -0
  138. package/dist/esm/interfaces/dynamic-module.interface.js +2 -0
  139. package/dist/esm/interfaces/dynamic-module.interface.js.map +1 -0
  140. package/dist/esm/interfaces/index.js +16 -0
  141. package/dist/esm/interfaces/index.js.map +1 -0
  142. package/dist/esm/interfaces/injectable.interface.js +2 -0
  143. package/dist/esm/interfaces/injectable.interface.js.map +1 -0
  144. package/dist/esm/interfaces/injection-token.interface.js +2 -0
  145. package/dist/esm/interfaces/injection-token.interface.js.map +1 -0
  146. package/dist/esm/interfaces/module-metadata.interface.js +2 -0
  147. package/dist/esm/interfaces/module-metadata.interface.js.map +1 -0
  148. package/dist/esm/interfaces/module-types.interface.js +2 -0
  149. package/dist/esm/interfaces/module-types.interface.js.map +1 -0
  150. package/dist/esm/interfaces/modules/container.interface.js +2 -0
  151. package/dist/esm/interfaces/modules/container.interface.js.map +1 -0
  152. package/dist/esm/interfaces/modules/index.js +8 -0
  153. package/dist/esm/interfaces/modules/index.js.map +1 -0
  154. package/dist/esm/interfaces/modules/module-container-factory.interface.js +2 -0
  155. package/dist/esm/interfaces/modules/module-container-factory.interface.js.map +1 -0
  156. package/dist/esm/interfaces/modules/module-container.interface.js +2 -0
  157. package/dist/esm/interfaces/modules/module-container.interface.js.map +1 -0
  158. package/dist/esm/interfaces/modules/module-graph.interface.js +13 -0
  159. package/dist/esm/interfaces/modules/module-graph.interface.js.map +1 -0
  160. package/dist/esm/interfaces/modules/module-token-factory.interface.js +2 -0
  161. package/dist/esm/interfaces/modules/module-token-factory.interface.js.map +1 -0
  162. package/dist/esm/interfaces/modules/modules-container.interface.js +2 -0
  163. package/dist/esm/interfaces/modules/modules-container.interface.js.map +1 -0
  164. package/dist/esm/interfaces/modules/provider-token-factory.interface.js +2 -0
  165. package/dist/esm/interfaces/modules/provider-token-factory.interface.js.map +1 -0
  166. package/dist/esm/interfaces/nexus-application.interface.js +2 -0
  167. package/dist/esm/interfaces/nexus-application.interface.js.map +1 -0
  168. package/dist/esm/interfaces/on-module-init.interface.js +2 -0
  169. package/dist/esm/interfaces/on-module-init.interface.js.map +1 -0
  170. package/dist/esm/interfaces/plugins/index.js +3 -0
  171. package/dist/esm/interfaces/plugins/index.js.map +1 -0
  172. package/dist/esm/interfaces/plugins/module-plugin.interface.js +2 -0
  173. package/dist/esm/interfaces/plugins/module-plugin.interface.js.map +1 -0
  174. package/dist/esm/interfaces/plugins/scanner-plugin.interface.js +2 -0
  175. package/dist/esm/interfaces/plugins/scanner-plugin.interface.js.map +1 -0
  176. package/dist/esm/interfaces/scope.interface.js +56 -0
  177. package/dist/esm/interfaces/scope.interface.js.map +1 -0
  178. package/dist/esm/interfaces/type.interface.js +2 -0
  179. package/dist/esm/interfaces/type.interface.js.map +1 -0
  180. package/dist/esm/interfaces/utils/hash-utils.interface.js +2 -0
  181. package/dist/esm/interfaces/utils/hash-utils.interface.js.map +1 -0
  182. package/dist/esm/interfaces/utils/index.js +2 -0
  183. package/dist/esm/interfaces/utils/index.js.map +1 -0
  184. package/dist/esm/interfaces/validate-module-keys.js +21 -0
  185. package/dist/esm/interfaces/validate-module-keys.js.map +1 -0
  186. package/dist/esm/package.json +1 -0
  187. package/dist/esm/server.js +2 -0
  188. package/dist/esm/server.js.map +1 -0
  189. package/dist/esm/utils/hash-utils.browser.js +20 -0
  190. package/dist/esm/utils/hash-utils.browser.js.map +1 -0
  191. package/dist/esm/utils/hash-utils.js +21 -0
  192. package/dist/esm/utils/hash-utils.js.map +1 -0
  193. package/dist/esm/utils/hash-utils.server.js +17 -0
  194. package/dist/esm/utils/hash-utils.server.js.map +1 -0
  195. package/dist/esm/utils/helpers.js +63 -0
  196. package/dist/esm/utils/helpers.js.map +1 -0
  197. package/dist/esm/utils/shared.utils.js +49 -0
  198. package/dist/esm/utils/shared.utils.js.map +1 -0
  199. package/dist/{core → types/core}/graph/analyze-module.d.ts +4 -4
  200. package/dist/{core → types/core}/graph/analyze-provider.d.ts +4 -4
  201. package/dist/{core → types/core}/graph/module-graph.d.ts +1 -1
  202. package/dist/{core → types/core}/graph/providers/analyze-class-provider.d.ts +2 -2
  203. package/dist/{core → types/core}/graph/providers/analyze-factory-provider.d.ts +2 -2
  204. package/dist/{core → types/core}/graph/providers/analyze-value-provider.d.ts +1 -1
  205. package/dist/{core → types/core}/graph/providers/provider-factory.d.ts +1 -1
  206. package/dist/types/core/modules/container.d.ts +154 -0
  207. package/dist/{core → types/core}/modules/module-container.d.ts +1 -1
  208. package/dist/{core → types/core}/nexus-applications.browser.d.ts +9 -1
  209. package/dist/types/core/nexus-applications.d.ts +160 -0
  210. package/dist/{core → types/core}/nexus-applications.server.d.ts +9 -1
  211. package/dist/types/decorators/inject.d.ts +42 -0
  212. package/dist/types/decorators/injectable.d.ts +37 -0
  213. package/dist/types/decorators/nsModule.d.ts +44 -0
  214. package/dist/types/decorators/optional.d.ts +42 -0
  215. package/dist/{index.d.ts → types/index.d.ts} +6 -3
  216. package/dist/types/interfaces/module-types.interface.d.ts +158 -0
  217. package/dist/types/interfaces/modules/container.interface.d.ts +8 -0
  218. package/dist/types/interfaces/modules/module-container.interface.d.ts +1 -0
  219. package/dist/{interfaces → types/interfaces}/modules/module-graph.interface.d.ts +3 -23
  220. package/dist/{interfaces → types/interfaces}/nexus-application.interface.d.ts +2 -0
  221. package/dist/types/interfaces/on-module-init.interface.d.ts +51 -0
  222. package/dist/types/interfaces/scope.interface.d.ts +54 -0
  223. package/dist/types/interfaces/utils/hash-utils.interface.d.ts +1 -0
  224. package/dist/{interfaces → types/interfaces}/validate-module-keys.d.ts +1 -1
  225. package/dist/types/utils/hash-utils.d.ts +7 -0
  226. package/package.json +82 -60
  227. package/dist/browser.js.map +0 -1
  228. package/dist/core/graph/analyze-module.js.map +0 -1
  229. package/dist/core/graph/analyze-provider.js.map +0 -1
  230. package/dist/core/graph/helpers/index.js.map +0 -1
  231. package/dist/core/graph/module-graph.js.map +0 -1
  232. package/dist/core/graph/providers/analyze-class-provider.js.map +0 -1
  233. package/dist/core/graph/providers/analyze-factory-provider.js.map +0 -1
  234. package/dist/core/graph/providers/analyze-function-provider.js.map +0 -1
  235. package/dist/core/graph/providers/analyze-value-provider.js.map +0 -1
  236. package/dist/core/graph/providers/provider-factory.js.map +0 -1
  237. package/dist/core/modules/container.d.ts +0 -15
  238. package/dist/core/modules/container.js +0 -40
  239. package/dist/core/modules/container.js.map +0 -1
  240. package/dist/core/modules/module-container-factory.js.map +0 -1
  241. package/dist/core/modules/module-container.js.map +0 -1
  242. package/dist/core/modules/module-token-factory.js.map +0 -1
  243. package/dist/core/modules/modules-container.js.map +0 -1
  244. package/dist/core/nexus-applications.browser.js.map +0 -1
  245. package/dist/core/nexus-applications.server.js.map +0 -1
  246. package/dist/core/resolver/providers-container.js.map +0 -1
  247. package/dist/core/resolver/resolver.js.map +0 -1
  248. package/dist/decorators/global.js.map +0 -1
  249. package/dist/decorators/inject.d.ts +0 -3
  250. package/dist/decorators/inject.js.map +0 -1
  251. package/dist/decorators/injectable.d.ts +0 -3
  252. package/dist/decorators/injectable.js +0 -12
  253. package/dist/decorators/injectable.js.map +0 -1
  254. package/dist/decorators/nsModule.d.ts +0 -3
  255. package/dist/decorators/nsModule.js +0 -16
  256. package/dist/decorators/nsModule.js.map +0 -1
  257. package/dist/decorators/optional.d.ts +0 -2
  258. package/dist/decorators/optional.js +0 -20
  259. package/dist/decorators/optional.js.map +0 -1
  260. package/dist/errors/container-not-compiled.error.d.ts +0 -3
  261. package/dist/errors/container-not-compiled.error.js +0 -12
  262. package/dist/errors/container-not-compiled.error.js.map +0 -1
  263. package/dist/index.js.map +0 -1
  264. package/dist/interfaces/abstract.interface.js.map +0 -1
  265. package/dist/interfaces/constants.js.map +0 -1
  266. package/dist/interfaces/dynamic-module.interface.js.map +0 -1
  267. package/dist/interfaces/index.js.map +0 -1
  268. package/dist/interfaces/injectable.interface.js.map +0 -1
  269. package/dist/interfaces/injection-token.interface.js.map +0 -1
  270. package/dist/interfaces/module-metadata.interface.js.map +0 -1
  271. package/dist/interfaces/module-types.interface.d.ts +0 -20
  272. package/dist/interfaces/module-types.interface.js.map +0 -1
  273. package/dist/interfaces/modules/container.interface.d.ts +0 -16
  274. package/dist/interfaces/modules/container.interface.js.map +0 -1
  275. package/dist/interfaces/modules/index.js.map +0 -1
  276. package/dist/interfaces/modules/module-container-factory.interface.js.map +0 -1
  277. package/dist/interfaces/modules/module-container.interface.d.ts +0 -13
  278. package/dist/interfaces/modules/module-container.interface.js.map +0 -1
  279. package/dist/interfaces/modules/module-graph.interface.js.map +0 -1
  280. package/dist/interfaces/modules/module-token-factory.interface.js.map +0 -1
  281. package/dist/interfaces/modules/modules-container.interface.js.map +0 -1
  282. package/dist/interfaces/modules/provider-token-factory.interface.js.map +0 -1
  283. package/dist/interfaces/nexus-application.interface.js.map +0 -1
  284. package/dist/interfaces/on-module-init.interface.d.ts +0 -3
  285. package/dist/interfaces/on-module-init.interface.js.map +0 -1
  286. package/dist/interfaces/plugins/index.js.map +0 -1
  287. package/dist/interfaces/plugins/module-plugin.interface.js.map +0 -1
  288. package/dist/interfaces/plugins/scanner-plugin.interface.js.map +0 -1
  289. package/dist/interfaces/scope.interface.d.ts +0 -4
  290. package/dist/interfaces/scope.interface.js +0 -9
  291. package/dist/interfaces/scope.interface.js.map +0 -1
  292. package/dist/interfaces/type.interface.js.map +0 -1
  293. package/dist/interfaces/utils/hash-utils.interface.d.ts +0 -5
  294. package/dist/interfaces/utils/hash-utils.interface.js.map +0 -1
  295. package/dist/interfaces/utils/index.js.map +0 -1
  296. package/dist/interfaces/validate-module-keys.js.map +0 -1
  297. package/dist/server.js.map +0 -1
  298. package/dist/utils/hash-utils.browser.js.map +0 -1
  299. package/dist/utils/hash-utils.server.js.map +0 -1
  300. package/dist/utils/helpers.js.map +0 -1
  301. package/dist/utils/random-string-generator.util.d.ts +0 -1
  302. package/dist/utils/random-string-generator.util.js +0 -7
  303. package/dist/utils/random-string-generator.util.js.map +0 -1
  304. package/dist/utils/shared.utils.js.map +0 -1
  305. package/dist/{browser.js → cjs/browser.js} +0 -0
  306. package/dist/{core → cjs/core}/graph/analyze-module.js +0 -0
  307. package/dist/{core → cjs/core}/graph/analyze-provider.js +0 -0
  308. package/dist/{core → cjs/core}/graph/helpers/index.js +0 -0
  309. package/dist/{core → cjs/core}/graph/providers/analyze-class-provider.js +0 -0
  310. package/dist/{core → cjs/core}/graph/providers/analyze-factory-provider.js +0 -0
  311. package/dist/{core → cjs/core}/graph/providers/analyze-function-provider.js +0 -0
  312. package/dist/{core → cjs/core}/graph/providers/analyze-value-provider.js +0 -0
  313. package/dist/{core → cjs/core}/graph/providers/provider-factory.js +0 -0
  314. package/dist/{core → cjs/core}/modules/module-container-factory.js +0 -0
  315. package/dist/{core → cjs/core}/modules/module-token-factory.js +0 -0
  316. package/dist/{core → cjs/core}/modules/modules-container.js +0 -0
  317. package/dist/{interfaces → cjs/interfaces}/abstract.interface.js +0 -0
  318. package/dist/{interfaces → cjs/interfaces}/constants.js +0 -0
  319. package/dist/{interfaces → cjs/interfaces}/dynamic-module.interface.js +0 -0
  320. package/dist/{interfaces → cjs/interfaces}/injectable.interface.js +0 -0
  321. package/dist/{interfaces → cjs/interfaces}/injection-token.interface.js +0 -0
  322. package/dist/{interfaces → cjs/interfaces}/module-metadata.interface.js +0 -0
  323. package/dist/{interfaces → cjs/interfaces}/module-types.interface.js +0 -0
  324. package/dist/{interfaces → cjs/interfaces}/modules/container.interface.js +0 -0
  325. package/dist/{interfaces → cjs/interfaces}/modules/module-container-factory.interface.js +0 -0
  326. package/dist/{interfaces → cjs/interfaces}/modules/module-container.interface.js +0 -0
  327. package/dist/{interfaces → cjs/interfaces}/modules/module-graph.interface.js +0 -0
  328. package/dist/{interfaces → cjs/interfaces}/modules/module-token-factory.interface.js +0 -0
  329. package/dist/{interfaces → cjs/interfaces}/modules/modules-container.interface.js +0 -0
  330. package/dist/{interfaces → cjs/interfaces}/modules/provider-token-factory.interface.js +0 -0
  331. package/dist/{interfaces → cjs/interfaces}/nexus-application.interface.js +0 -0
  332. package/dist/{interfaces → cjs/interfaces}/on-module-init.interface.js +0 -0
  333. package/dist/{interfaces → cjs/interfaces}/plugins/module-plugin.interface.js +0 -0
  334. package/dist/{interfaces → cjs/interfaces}/plugins/scanner-plugin.interface.js +0 -0
  335. package/dist/{interfaces → cjs/interfaces}/type.interface.js +0 -0
  336. package/dist/{interfaces → cjs/interfaces}/utils/hash-utils.interface.js +0 -0
  337. package/dist/{interfaces → cjs/interfaces}/utils/index.js +0 -0
  338. package/dist/{server.js → cjs/server.js} +0 -0
  339. package/dist/{utils → cjs/utils}/hash-utils.browser.js +0 -0
  340. package/dist/{utils → cjs/utils}/hash-utils.server.js +0 -0
  341. package/dist/{browser.d.ts → types/browser.d.ts} +0 -0
  342. package/dist/{core → types/core}/graph/helpers/index.d.ts +0 -0
  343. package/dist/{core → types/core}/graph/providers/analyze-function-provider.d.ts +0 -0
  344. package/dist/{core → types/core}/modules/module-container-factory.d.ts +0 -0
  345. package/dist/{core → types/core}/modules/module-token-factory.d.ts +0 -0
  346. package/dist/{core → types/core}/modules/modules-container.d.ts +0 -0
  347. package/dist/{core → types/core}/resolver/providers-container.d.ts +0 -0
  348. package/dist/{core → types/core}/resolver/resolver.d.ts +0 -0
  349. package/dist/{decorators → types/decorators}/global.d.ts +0 -0
  350. package/dist/{interfaces → types/interfaces}/abstract.interface.d.ts +0 -0
  351. package/dist/{interfaces → types/interfaces}/constants.d.ts +0 -0
  352. package/dist/{interfaces → types/interfaces}/dynamic-module.interface.d.ts +0 -0
  353. package/dist/{interfaces → types/interfaces}/index.d.ts +6 -6
  354. package/dist/{interfaces → types/interfaces}/injectable.interface.d.ts +0 -0
  355. package/dist/{interfaces → types/interfaces}/injection-token.interface.d.ts +0 -0
  356. package/dist/{interfaces → types/interfaces}/module-metadata.interface.d.ts +0 -0
  357. package/dist/{interfaces → types/interfaces}/modules/index.d.ts +1 -1
  358. package/dist/{interfaces → types/interfaces}/modules/module-container-factory.interface.d.ts +0 -0
  359. package/dist/{interfaces → types/interfaces}/modules/module-token-factory.interface.d.ts +0 -0
  360. package/dist/{interfaces → types/interfaces}/modules/modules-container.interface.d.ts +0 -0
  361. package/dist/{interfaces → types/interfaces}/modules/provider-token-factory.interface.d.ts +0 -0
  362. package/dist/{interfaces → types/interfaces}/plugins/index.d.ts +1 -1
  363. /package/dist/{interfaces → types/interfaces}/plugins/module-plugin.interface.d.ts +0 -0
  364. /package/dist/{interfaces → types/interfaces}/plugins/scanner-plugin.interface.d.ts +0 -0
  365. /package/dist/{interfaces → types/interfaces}/type.interface.d.ts +0 -0
  366. /package/dist/{interfaces → types/interfaces}/utils/index.d.ts +0 -0
  367. /package/dist/{server.d.ts → types/server.d.ts} +0 -0
  368. /package/dist/{utils → types/utils}/hash-utils.browser.d.ts +0 -0
  369. /package/dist/{utils → types/utils}/hash-utils.server.d.ts +0 -0
  370. /package/dist/{utils → types/utils}/helpers.d.ts +0 -0
  371. /package/dist/{utils → types/utils}/shared.utils.d.ts +0 -0
@@ -0,0 +1,154 @@
1
+ import type { ContainerInterface, DynamicModule, HashUtilInterface, InjectionToken, Module, ModuleContainerInterface, ModuleGraphInterface } from "../../interfaces";
2
+ /**
3
+ * Container is the core IoC (Inversion of Control) container that manages
4
+ * modules, providers, and dependency injection.
5
+ *
6
+ * The Container is responsible for:
7
+ * - Registering and managing modules
8
+ * - Building the dependency graph
9
+ * - Resolving dependencies and creating instances
10
+ * - Managing the lifecycle of providers
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const container = new Container(hashUtils);
15
+ * await container.run(AppModule);
16
+ * const service = await container.get(MyService);
17
+ * ```
18
+ */
19
+ export declare class Container implements ContainerInterface {
20
+ private readonly hashUtils;
21
+ private readonly modulesContainer;
22
+ private _graph;
23
+ private moduleGraphResolver;
24
+ /**
25
+ * Creates a new Container instance.
26
+ *
27
+ * @param hashUtils - Utility for generating unique hashes for modules
28
+ */
29
+ constructor(hashUtils: HashUtilInterface);
30
+ /**
31
+ * Adds a module to the container.
32
+ *
33
+ * This method registers a module and all its providers, imports, and exports
34
+ * in the container. The module can be either a static module class or a
35
+ * dynamic module with runtime configuration.
36
+ *
37
+ * @param module - The module to add (static or dynamic)
38
+ * @returns A promise that resolves to the module container
39
+ *
40
+ * @example
41
+ * ```typescript
42
+ * await container.addModule(AppModule);
43
+ * await container.addModule(DatabaseModule.forRoot({ host: 'localhost' }));
44
+ * ```
45
+ */
46
+ addModule(module: Module | DynamicModule): Promise<ModuleContainerInterface>;
47
+ /**
48
+ * Replaces an existing module with a new module.
49
+ *
50
+ * This is useful for hot module replacement or testing scenarios where
51
+ * you need to swap out a module implementation.
52
+ *
53
+ * @param moduleToReplace - The module to be replaced
54
+ * @param newModule - The new module to use instead
55
+ * @returns A promise that resolves to the new module container
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * await container.replaceModule(OldDatabaseModule, NewDatabaseModule);
60
+ * ```
61
+ */
62
+ replaceModule(moduleToReplace: Module, newModule: Module): Promise<ModuleContainerInterface>;
63
+ /**
64
+ * Retrieves a module container by its module class.
65
+ *
66
+ * @param module - The module class to look up
67
+ * @returns A promise that resolves to the module container, or undefined if not found
68
+ *
69
+ * @example
70
+ * ```typescript
71
+ * const moduleContainer = await container.getModule(DatabaseModule);
72
+ * ```
73
+ */
74
+ getModule(module: Module): Promise<ModuleContainerInterface | undefined>;
75
+ /**
76
+ * Resolves and returns an instance of a provider by its injection token.
77
+ *
78
+ * This is the main method for retrieving dependencies from the container.
79
+ * The instance is created according to its scope:
80
+ * - Singleton: Same instance returned every time
81
+ * - Request: New instance for each get() call
82
+ * - Transient: New instance every time, even within the same dependency tree
83
+ *
84
+ * @template T - The type of the provider to resolve
85
+ * @param token - The injection token (class, string, or symbol)
86
+ * @returns A promise that resolves to the provider instance, or undefined if not found
87
+ *
88
+ * @example
89
+ * ```typescript
90
+ * const userService = await container.get(UserService);
91
+ * const config = await container.get('CONFIG');
92
+ * ```
93
+ */
94
+ get<T>(token: InjectionToken): Promise<T | undefined>;
95
+ /**
96
+ * Initializes and runs the container with the specified root module.
97
+ *
98
+ * This method:
99
+ * 1. Registers the root module and all its dependencies
100
+ * 2. Builds the dependency graph
101
+ * 3. Validates the graph for circular dependencies and missing providers
102
+ * 4. Initializes all providers with lifecycle hooks
103
+ *
104
+ * This method must be called before using get() to resolve dependencies.
105
+ *
106
+ * @param rootModule - The root module of the application
107
+ * @returns A promise that resolves when initialization is complete
108
+ * @throws {Error} If there are circular dependencies or missing providers
109
+ *
110
+ * @example
111
+ * ```typescript
112
+ * const container = new Container(hashUtils);
113
+ * await container.run(AppModule);
114
+ * // Now you can use container.get() to resolve dependencies
115
+ * ```
116
+ */
117
+ run(rootModule: Module): Promise<void>;
118
+ /**
119
+ * Gets the dependency graph.
120
+ *
121
+ * The graph contains all modules, providers, and their dependencies.
122
+ * It can be used for introspection and debugging.
123
+ *
124
+ * @returns The module graph
125
+ * @throws {Error} If the graph is not initialized (run() not called yet)
126
+ *
127
+ * @example
128
+ * ```typescript
129
+ * await container.run(AppModule);
130
+ * const graph = container.graph;
131
+ * console.log(graph.getAllNodes());
132
+ * ```
133
+ */
134
+ get graph(): ModuleGraphInterface;
135
+ /**
136
+ * Gets all errors that occurred during graph compilation.
137
+ *
138
+ * Errors can include:
139
+ * - Circular dependencies
140
+ * - Missing providers
141
+ * - Unreachable dependencies
142
+ *
143
+ * @returns An array of graph errors
144
+ *
145
+ * @example
146
+ * ```typescript
147
+ * await container.run(AppModule);
148
+ * if (container.errors.length > 0) {
149
+ * console.error('Graph errors:', container.errors);
150
+ * }
151
+ * ```
152
+ */
153
+ get errors(): import("@nexus-ioc/shared").GraphError[];
154
+ }
@@ -12,5 +12,5 @@ export declare class ModuleContainer implements ModuleContainerInterface {
12
12
  get providers(): Provider[];
13
13
  get exports(): InjectionToken[];
14
14
  get<T>(token: InjectionToken): Promise<T | undefined>;
15
- get errors(): import("../../interfaces").GraphError[];
15
+ get errors(): import("@nexus-ioc/shared").GraphError[];
16
16
  }
@@ -1,13 +1,21 @@
1
1
  import type { InjectionToken, Module, NexusApplicationInterface, ScannerPluginInterface } from "../interfaces";
2
+ /**
3
+ * @deprecated
4
+ * It will be removed in version 1.0.0.
5
+ * these classes work the same way. For the new behavior, use @NexusApplications
6
+ */
2
7
  export declare class NexusApplicationsBrowser implements NexusApplicationInterface {
3
8
  private readonly rootModule;
4
9
  private readonly hashUtil;
5
10
  private readonly scannerPlugins;
6
11
  private readonly container;
12
+ private _parentContainer;
7
13
  private constructor();
8
14
  static create(rootModule: Module): NexusApplicationsBrowser;
9
15
  bootstrap(): Promise<this>;
10
16
  addScannerPlugin(scanner: ScannerPluginInterface | ScannerPluginInterface[]): this;
11
17
  get<T>(token: InjectionToken): Promise<T | undefined>;
12
- get errors(): import("../interfaces").GraphError[];
18
+ get errors(): import("@nexus-ioc/shared").GraphError[];
19
+ async(): this;
20
+ setParent(parentContainer: NexusApplicationInterface): this;
13
21
  }
@@ -0,0 +1,160 @@
1
+ import { type HashUtilInterface, type InjectionToken, type Module, type NexusApplicationInterface, type ScannerPluginInterface } from "../interfaces";
2
+ /**
3
+ * NexusApplications is the main application class that provides a high-level
4
+ * API for creating and managing IoC containers.
5
+ *
6
+ * This class wraps the Container and provides additional features:
7
+ * - Automatic singleton initialization
8
+ * - Scanner plugin support for custom metadata processing
9
+ * - Parent-child container hierarchies
10
+ * - Async/sync container modes
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const app = NexusApplications.create(AppModule);
15
+ * await app.bootstrap();
16
+ * const service = await app.get(MyService);
17
+ * ```
18
+ */
19
+ export declare class NexusApplications implements NexusApplicationInterface {
20
+ private readonly rootModule;
21
+ private hashUtil;
22
+ private isAsyncContainer;
23
+ private readonly container;
24
+ private readonly scannerPlugins;
25
+ private _parentContainer;
26
+ /**
27
+ * Creates a new NexusApplications instance.
28
+ *
29
+ * @param rootModule - The root module of the application
30
+ * @param options - Optional configuration
31
+ * @param options.hashFn - Custom hash function for module identification
32
+ */
33
+ private constructor();
34
+ /**
35
+ * Creates a new NexusApplications instance.
36
+ *
37
+ * This is the main entry point for creating an application.
38
+ *
39
+ * @param rootModule - The root module of the application
40
+ * @param options - Optional configuration
41
+ * @param options.hashFn - Custom hash function for module identification
42
+ * @returns A new NexusApplications instance
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * const app = NexusApplications.create(AppModule);
47
+ * await app.bootstrap();
48
+ * ```
49
+ */
50
+ static create(rootModule: Module, options?: {
51
+ hashFn: new () => HashUtilInterface;
52
+ }): NexusApplications;
53
+ /**
54
+ * Bootstraps the application by initializing the container and all providers.
55
+ *
56
+ * This method:
57
+ * 1. Runs the container with the root module
58
+ * 2. Executes all registered scanner plugins
59
+ * 3. Pre-instantiates all singleton providers (unless async mode is enabled)
60
+ *
61
+ * @returns A promise that resolves to this instance for method chaining
62
+ * @throws {Error} If there are circular dependencies or missing providers
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * const app = NexusApplications.create(AppModule);
67
+ * await app.bootstrap();
68
+ * // Application is now ready to use
69
+ * ```
70
+ */
71
+ bootstrap(): Promise<this>;
72
+ /**
73
+ * Adds one or more scanner plugins to the application.
74
+ *
75
+ * Scanner plugins are executed after the dependency graph is built
76
+ * and can be used to process custom metadata, validate the graph,
77
+ * or perform other initialization tasks.
78
+ *
79
+ * @param scanner - A single scanner plugin or an array of scanner plugins
80
+ * @returns This instance for method chaining
81
+ *
82
+ * @example
83
+ * ```typescript
84
+ * const app = NexusApplications.create(AppModule)
85
+ * .addScannerPlugin(new CustomScanner())
86
+ * .addScannerPlugin([new Scanner1(), new Scanner2()]);
87
+ * await app.bootstrap();
88
+ * ```
89
+ */
90
+ addScannerPlugin(scanner: ScannerPluginInterface | ScannerPluginInterface[]): this;
91
+ /**
92
+ * Resolves and returns an instance of a provider by its injection token.
93
+ *
94
+ * If the provider is not found in this container, it will attempt to
95
+ * resolve it from the parent container (if set).
96
+ *
97
+ * @template T - The type of the provider to resolve
98
+ * @param token - The injection token (class, string, or symbol)
99
+ * @returns A promise that resolves to the provider instance, or undefined if not found
100
+ *
101
+ * @example
102
+ * ```typescript
103
+ * const app = await NexusApplications.create(AppModule).bootstrap();
104
+ * const userService = await app.get(UserService);
105
+ * const config = await app.get('CONFIG');
106
+ * ```
107
+ */
108
+ get<T>(token: InjectionToken): Promise<T | undefined>;
109
+ /**
110
+ * Gets all errors that occurred during graph compilation.
111
+ *
112
+ * @returns An array of graph errors
113
+ *
114
+ * @example
115
+ * ```typescript
116
+ * const app = await NexusApplications.create(AppModule).bootstrap();
117
+ * if (app.errors.length > 0) {
118
+ * console.error('Application errors:', app.errors);
119
+ * }
120
+ * ```
121
+ */
122
+ get errors(): import("@nexus-ioc/shared").GraphError[];
123
+ /**
124
+ * Enables async mode for the container.
125
+ *
126
+ * In async mode, singleton providers are NOT pre-instantiated during
127
+ * bootstrap. They will be created lazily on first access via get().
128
+ * This can improve startup time for large applications.
129
+ *
130
+ * @returns This instance for method chaining
131
+ *
132
+ * @example
133
+ * ```typescript
134
+ * const app = NexusApplications.create(AppModule)
135
+ * .async();
136
+ * await app.bootstrap(); // Singletons are NOT created yet
137
+ * const service = await app.get(MyService); // Created on first access
138
+ * ```
139
+ */
140
+ async(): this;
141
+ /**
142
+ * Sets a parent container for this application.
143
+ *
144
+ * When a provider is not found in this container, it will be looked up
145
+ * in the parent container. This enables hierarchical container structures.
146
+ *
147
+ * @param parentContainer - The parent container
148
+ * @returns This instance for method chaining
149
+ *
150
+ * @example
151
+ * ```typescript
152
+ * const parentApp = await NexusApplications.create(ParentModule).bootstrap();
153
+ * const childApp = await NexusApplications.create(ChildModule)
154
+ * .setParent(parentApp)
155
+ * .bootstrap();
156
+ * // childApp can access providers from parentApp
157
+ * ```
158
+ */
159
+ setParent(parentContainer: NexusApplicationInterface): this;
160
+ }
@@ -1,13 +1,21 @@
1
1
  import type { InjectionToken, Module, NexusApplicationInterface, ScannerPluginInterface } from "../interfaces";
2
+ /**
3
+ * @deprecated
4
+ * It will be removed in version 1.0.0.
5
+ * these classes work the same way. For the new behavior, use @NexusApplications
6
+ */
2
7
  export declare class NexusApplicationsServer implements NexusApplicationInterface {
3
8
  private readonly rootModule;
4
9
  private readonly hashUtil;
5
10
  private readonly container;
6
11
  private readonly scannerPlugins;
12
+ private _parentContainer;
7
13
  private constructor();
8
14
  static create(rootModule: Module): NexusApplicationsServer;
9
15
  bootstrap(): Promise<this>;
10
16
  addScannerPlugin(scanner: ScannerPluginInterface | ScannerPluginInterface[]): this;
11
17
  get<T>(token: InjectionToken): Promise<T | undefined>;
12
- get errors(): import("../interfaces").GraphError[];
18
+ get errors(): import("@nexus-ioc/shared").GraphError[];
19
+ async(): this;
20
+ setParent(parentContainer: NexusApplicationInterface): this;
13
21
  }
@@ -0,0 +1,42 @@
1
+ import "reflect-metadata";
2
+ import { type Type } from "../interfaces";
3
+ /**
4
+ * Explicitly specifies the injection token for a constructor parameter or property.
5
+ *
6
+ * This decorator is used when:
7
+ * - You need to inject a provider by a string or symbol token
8
+ * - TypeScript's reflection cannot determine the type (e.g., interfaces, circular dependencies)
9
+ * - You want to inject a different implementation than the declared type
10
+ *
11
+ * @param token - The injection token (class, string, or symbol)
12
+ * @returns A decorator that can be applied to constructor parameters or properties
13
+ * @throws {Error} If the token is undefined (often due to circular dependencies)
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * // Constructor parameter injection
18
+ * @Injectable()
19
+ * class UserService {
20
+ * constructor(
21
+ * @Inject('DATABASE_CONFIG') private config: DatabaseConfig,
22
+ * @Inject(Logger) private logger: Logger
23
+ * ) {}
24
+ * }
25
+ *
26
+ * // Property injection
27
+ * @Injectable()
28
+ * class ProductService {
29
+ * @Inject('CACHE_MANAGER')
30
+ * private cache: CacheManager;
31
+ * }
32
+ *
33
+ * // Resolving circular dependencies
34
+ * @Injectable()
35
+ * class ServiceA {
36
+ * constructor(
37
+ * @Inject(forwardRef(() => ServiceB)) private serviceB: ServiceB
38
+ * ) {}
39
+ * }
40
+ * ```
41
+ */
42
+ export declare function Inject(token: Type | symbol | string): PropertyDecorator & ParameterDecorator;
@@ -0,0 +1,37 @@
1
+ import "reflect-metadata";
2
+ import type { InjectableOptions } from "../interfaces";
3
+ /**
4
+ * Marks a class as injectable, making it available for dependency injection.
5
+ *
6
+ * This decorator must be applied to any class that you want to use as a provider
7
+ * in the IoC container. It configures the scope and other options for the provider.
8
+ *
9
+ * @param options - Configuration options for the injectable
10
+ * @param options.scope - The lifecycle scope of the provider:
11
+ * - `Scope.Singleton` (default): One instance shared across the entire application
12
+ * - `Scope.Request`: New instance for each container.get() call
13
+ * - `Scope.Transient`: New instance every time, even within the same dependency tree
14
+ * @returns A class decorator
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * // Singleton scope (default)
19
+ * @Injectable()
20
+ * class UserService {
21
+ * constructor(private db: Database) {}
22
+ * }
23
+ *
24
+ * // Request scope
25
+ * @Injectable({ scope: Scope.Request })
26
+ * class RequestContext {
27
+ * requestId = Math.random();
28
+ * }
29
+ *
30
+ * // Transient scope
31
+ * @Injectable({ scope: Scope.Transient })
32
+ * class Logger {
33
+ * timestamp = Date.now();
34
+ * }
35
+ * ```
36
+ */
37
+ export declare function Injectable(options?: InjectableOptions): ClassDecorator;
@@ -0,0 +1,44 @@
1
+ import "reflect-metadata";
2
+ import type { ModuleMetadata } from "../interfaces";
3
+ /**
4
+ * Defines a module in the application.
5
+ *
6
+ * A module is a class annotated with @NsModule() decorator that organizes
7
+ * the application structure. Modules can:
8
+ * - Declare providers that will be instantiated by the container
9
+ * - Import other modules to use their exported providers
10
+ * - Export providers to make them available to other modules
11
+ *
12
+ * @param metadata - Module configuration
13
+ * @param metadata.imports - Modules whose exported providers should be available in this module
14
+ * @param metadata.providers - Providers that belong to this module
15
+ * @param metadata.exports - Providers or modules to export (make available to importing modules)
16
+ * @returns A class decorator
17
+ * @throws {Error} If invalid metadata keys are provided
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * // Basic module
22
+ * @NsModule({
23
+ * providers: [UserService, UserRepository],
24
+ * exports: [UserService]
25
+ * })
26
+ * class UserModule {}
27
+ *
28
+ * // Module with imports
29
+ * @NsModule({
30
+ * imports: [DatabaseModule, LoggerModule],
31
+ * providers: [ProductService],
32
+ * exports: [ProductService]
33
+ * })
34
+ * class ProductModule {}
35
+ *
36
+ * // Root module
37
+ * @NsModule({
38
+ * imports: [UserModule, ProductModule],
39
+ * providers: [AppService]
40
+ * })
41
+ * class AppModule {}
42
+ * ```
43
+ */
44
+ export declare function NsModule(metadata: ModuleMetadata): ClassDecorator;
@@ -0,0 +1,42 @@
1
+ import "reflect-metadata";
2
+ /**
3
+ * Marks a dependency as optional.
4
+ *
5
+ * When a dependency is marked as optional, the container will not throw an error
6
+ * if the provider is not found. Instead, it will inject `undefined`.
7
+ *
8
+ * This is useful for:
9
+ * - Optional features that may not be available in all configurations
10
+ * - Graceful degradation when certain services are not registered
11
+ * - Testing scenarios where you want to omit certain dependencies
12
+ *
13
+ * @returns A decorator that can be applied to constructor parameters or properties
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * // Optional constructor parameter
18
+ * @Injectable()
19
+ * class UserService {
20
+ * constructor(
21
+ * private db: Database,
22
+ * @Optional() private cache?: CacheService
23
+ * ) {
24
+ * // cache will be undefined if CacheService is not registered
25
+ * }
26
+ * }
27
+ *
28
+ * // Optional property injection
29
+ * @Injectable()
30
+ * class ProductService {
31
+ * @Optional()
32
+ * @Inject('ANALYTICS')
33
+ * private analytics?: AnalyticsService;
34
+ *
35
+ * trackEvent(event: string) {
36
+ * // Only track if analytics service is available
37
+ * this.analytics?.track(event);
38
+ * }
39
+ * }
40
+ * ```
41
+ */
42
+ export declare function Optional(): PropertyDecorator & ParameterDecorator;
@@ -1,7 +1,10 @@
1
- export * from "./interfaces";
2
- export { NsModule } from "./decorators/nsModule";
1
+ export { ContainerNotCompiledError } from "@nexus-ioc/shared";
2
+ export { Container } from "./core/modules/container";
3
+ export { NexusApplications } from "./core/nexus-applications";
4
+ export { Global } from "./decorators/global";
3
5
  export { Inject } from "./decorators/inject";
4
6
  export { Injectable } from "./decorators/injectable";
5
- export { Global } from "./decorators/global";
7
+ export { NsModule } from "./decorators/nsModule";
6
8
  export { Optional } from "./decorators/optional";
9
+ export * from "./interfaces";
7
10
  export * from "./utils/helpers";