@venok/core 1.1.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (579) hide show
  1. package/dist/application/config.js +92 -0
  2. package/dist/application/context.js +252 -0
  3. package/dist/application/factory.js +136 -0
  4. package/dist/constants.js +100 -0
  5. package/dist/context/context-id.factory.js +58 -0
  6. package/dist/context/context.js +186 -0
  7. package/dist/context/creator.js +49 -0
  8. package/dist/context/execution-host.js +51 -0
  9. package/dist/context/proxy.js +55 -0
  10. package/dist/decorators/apply.decorator.js +33 -0
  11. package/dist/decorators/bind.decorator.js +28 -0
  12. package/dist/decorators/catch.decorator.js +29 -0
  13. package/dist/decorators/dependencies.decorator.js +30 -0
  14. package/dist/decorators/exception-filters.decorator.js +40 -0
  15. package/dist/decorators/global.decorator.js +28 -0
  16. package/dist/decorators/inject.decorator.js +42 -0
  17. package/dist/decorators/injectable.decorator.js +38 -0
  18. package/dist/decorators/module.decorator.js +42 -0
  19. package/dist/decorators/optional.decorator.js +35 -0
  20. package/dist/decorators/set-metadata.decorator.js +35 -0
  21. package/dist/decorators/use-guards.decorator.js +39 -0
  22. package/dist/decorators/use-interceptors.decorator.js +39 -0
  23. package/dist/decorators/use-pipes.decorator.js +38 -0
  24. package/dist/enums/scope.enum.js +28 -0
  25. package/dist/enums/shutdown-signal.enum.js +36 -0
  26. package/dist/errors/exceptions/circular-dependency.exception.js +30 -0
  27. package/dist/errors/exceptions/invalid-class-module.exception.js +30 -0
  28. package/dist/errors/exceptions/invalid-class-scope.exception.js +33 -0
  29. package/dist/errors/exceptions/invalid-class.exception.js +30 -0
  30. package/dist/errors/exceptions/invalid-exception-filter.exception.js +30 -0
  31. package/dist/errors/exceptions/invalid-module.exception.js +30 -0
  32. package/dist/errors/exceptions/runtime.exception.js +30 -0
  33. package/dist/errors/exceptions/undefined-dependency.exception.js +30 -0
  34. package/dist/errors/exceptions/undefined-forwardref.exception.js +30 -0
  35. package/dist/errors/exceptions/undefined-module.exception.js +30 -0
  36. package/dist/errors/exceptions/unknown-dependencies.exception.js +38 -0
  37. package/dist/errors/exceptions/unknown-element.exception.js +31 -0
  38. package/dist/errors/exceptions/unknown-export.exception.js +30 -0
  39. package/dist/errors/exceptions/unknown-module.exception.js +29 -0
  40. package/dist/errors/messages.js +134 -0
  41. package/dist/exceptions/handler.js +53 -0
  42. package/dist/exceptions/zone/handler.js +30 -0
  43. package/dist/exceptions/zone/zone.js +49 -0
  44. package/dist/filters/context-creator.js +65 -0
  45. package/dist/filters/context.js +58 -0
  46. package/dist/filters/filter.js +36 -0
  47. package/dist/guards/consumer.js +54 -0
  48. package/dist/guards/context-creator.js +76 -0
  49. package/dist/helpers/color.helper.js +35 -0
  50. package/dist/helpers/context-id-factory.helper.js +25 -0
  51. package/dist/helpers/context.helper.js +65 -0
  52. package/dist/helpers/create-param-decorator.helper.js +73 -0
  53. package/dist/helpers/filter-log-levels.util.js +38 -0
  54. package/dist/helpers/flatten.helper.js +26 -0
  55. package/dist/helpers/is-log-level-enabled.util.js +39 -0
  56. package/dist/helpers/is-log-level.util.js +26 -0
  57. package/dist/helpers/messages.helper.js +23 -0
  58. package/dist/helpers/metadata.helper.js +51 -0
  59. package/dist/helpers/noop.helper.js +23 -0
  60. package/dist/helpers/random-string-generator.helper.js +24 -0
  61. package/dist/helpers/rethrow.helper.js +25 -0
  62. package/dist/helpers/shared.helper.js +49 -0
  63. package/dist/helpers/silent.helper.js +34 -0
  64. package/dist/helpers/transient.helper.js +30 -0
  65. package/dist/helpers/uuid.helper.js +60 -0
  66. package/dist/helpers/validate-each.helper.js +42 -0
  67. package/dist/hooks/before-app-shutdown.hook.js +43 -0
  68. package/dist/hooks/on-app-bootstrap.hook.js +43 -0
  69. package/dist/hooks/on-app-shutdown.hook.js +43 -0
  70. package/dist/hooks/on-module-destroy.hook.js +43 -0
  71. package/dist/hooks/on-module-init.hook.js +43 -0
  72. package/dist/index.d.ts +3142 -0
  73. package/dist/index.js +115 -0
  74. package/dist/injector/constants.js +28 -0
  75. package/dist/injector/container.js +229 -0
  76. package/dist/injector/helpers/barrier.js +48 -0
  77. package/dist/injector/helpers/class-scope.helper.js +27 -0
  78. package/dist/injector/helpers/classifier.helper.js +35 -0
  79. package/dist/injector/helpers/is-durable.helper.js +27 -0
  80. package/dist/injector/injector.js +490 -0
  81. package/dist/injector/instance/links-host.js +68 -0
  82. package/dist/injector/instance/loader.js +95 -0
  83. package/dist/injector/instance/resolver.js +61 -0
  84. package/dist/injector/instance/wrapper.js +324 -0
  85. package/dist/injector/internal-core-module/core-providers.js +42 -0
  86. package/dist/injector/internal-core-module/internal-core-module-factory.js +66 -0
  87. package/dist/injector/internal-core-module/internal-core-module.js +46 -0
  88. package/dist/injector/module/compiler.js +47 -0
  89. package/dist/injector/module/container.js +33 -0
  90. package/dist/injector/module/lazy/loader.js +71 -0
  91. package/dist/injector/module/module.js +395 -0
  92. package/dist/injector/module/ref.js +78 -0
  93. package/dist/injector/module/token-factory.js +82 -0
  94. package/dist/injector/settlement-signal.js +50 -0
  95. package/dist/injector/topology-tree/topology-tree.js +68 -0
  96. package/dist/injector/topology-tree/tree-node.js +68 -0
  97. package/dist/inspector/graph-inspector.js +182 -0
  98. package/dist/inspector/initialize-on-preview.allowlist.js +31 -0
  99. package/dist/inspector/noop-graph-inspector.js +27 -0
  100. package/dist/inspector/partial-graph.host.js +34 -0
  101. package/dist/inspector/serialized-graph.js +128 -0
  102. package/dist/interceptors/consumer.js +54 -0
  103. package/dist/interceptors/context-creator.js +75 -0
  104. package/dist/interfaces/application/context-options.interface.js +31 -0
  105. package/dist/interfaces/application/context.interface.js +0 -0
  106. package/dist/interfaces/application/index.js +3 -0
  107. package/dist/interfaces/context/arguments-host.interface.js +0 -0
  108. package/dist/interfaces/context/context-id-factory.interface.js +0 -0
  109. package/dist/interfaces/context/context.interface.js +0 -0
  110. package/dist/interfaces/context/creator.interface.js +0 -0
  111. package/dist/interfaces/context/execution.interface.js +0 -0
  112. package/dist/interfaces/context/index.js +7 -0
  113. package/dist/interfaces/context/params.interface.js +0 -0
  114. package/dist/interfaces/features/exception-filter.interface.js +0 -0
  115. package/dist/interfaces/features/guards.interface.js +0 -0
  116. package/dist/interfaces/features/index.js +5 -0
  117. package/dist/interfaces/features/interceptor.interface.js +0 -0
  118. package/dist/interfaces/features/pipes.interface.js +0 -0
  119. package/dist/interfaces/helper.interface.js +0 -0
  120. package/dist/interfaces/hooks/before-application-shutdown.interface.js +0 -0
  121. package/dist/interfaces/hooks/index.js +6 -0
  122. package/dist/interfaces/hooks/on-application-bootstrap.interface.js +0 -0
  123. package/dist/interfaces/hooks/on-application-shutdown.interface.js +0 -0
  124. package/dist/interfaces/hooks/on-destroy.interface.js +0 -0
  125. package/dist/interfaces/hooks/on-init.interface.js +0 -0
  126. package/dist/interfaces/index.js +16 -0
  127. package/dist/interfaces/injectable.interface.js +0 -0
  128. package/dist/interfaces/injector/index.js +6 -0
  129. package/dist/interfaces/injector/injector.interface.js +0 -0
  130. package/dist/interfaces/injector/instance-wrapper.interface.js +0 -0
  131. package/dist/interfaces/injector/lazy-module-options.interface.js +0 -0
  132. package/dist/interfaces/injector/module-compiler.interface.js +0 -0
  133. package/dist/interfaces/injector/module-ref.interface.js +0 -0
  134. package/dist/interfaces/inspector/edge.interface.js +0 -0
  135. package/dist/interfaces/inspector/enhancer-metadata-cache-entry.interface.js +0 -0
  136. package/dist/interfaces/inspector/entrypoint.interface.js +0 -0
  137. package/dist/interfaces/inspector/extras.interface.js +0 -0
  138. package/dist/interfaces/inspector/index.js +8 -0
  139. package/dist/interfaces/inspector/node.interface.js +0 -0
  140. package/dist/interfaces/inspector/serialized-graph-json.interface.js +0 -0
  141. package/dist/interfaces/inspector/serialized-graph-metadata.interface.js +0 -0
  142. package/dist/interfaces/modules/definition.interface.js +0 -0
  143. package/dist/interfaces/modules/dynamic-module.interface.js +0 -0
  144. package/dist/interfaces/modules/forward-reference.interface.js +0 -0
  145. package/dist/interfaces/modules/index.js +10 -0
  146. package/dist/interfaces/modules/injection-token.interface.js +0 -0
  147. package/dist/interfaces/modules/introspection-result.interface.js +0 -0
  148. package/dist/interfaces/modules/module-metadata.interface.js +0 -0
  149. package/dist/interfaces/modules/module.interface.js +0 -0
  150. package/dist/interfaces/modules/optional-factory-dependency.interface.js +0 -0
  151. package/dist/interfaces/modules/override.interface.js +0 -0
  152. package/dist/interfaces/modules/provider.interface.js +0 -0
  153. package/dist/interfaces/param-decorator.interface.js +0 -0
  154. package/dist/interfaces/scope.interface.js +0 -0
  155. package/dist/interfaces/services/console.interface.js +0 -0
  156. package/dist/interfaces/services/index.js +4 -0
  157. package/dist/interfaces/services/logger.interface.js +0 -0
  158. package/dist/interfaces/services/reflector.interface.js +0 -0
  159. package/dist/interfaces/set-metadata.interface.js +0 -0
  160. package/dist/interfaces/type.interface.js +0 -0
  161. package/dist/metadata-scanner.js +50 -0
  162. package/dist/pipes/consumer.js +33 -0
  163. package/dist/pipes/context-creator.js +78 -0
  164. package/dist/scanner.js +371 -0
  165. package/dist/services/console.service.js +347 -0
  166. package/dist/services/logger.service.js +276 -0
  167. package/dist/services/reflector.service.js +82 -0
  168. package/dist/storage/handler-metadata.storage.js +42 -0
  169. package/dist/storage/meta-host.storage.js +62 -0
  170. package/package.json +52 -40
  171. package/application/config.d.ts +0 -35
  172. package/application/config.js +0 -85
  173. package/application/context.d.ts +0 -198
  174. package/application/context.js +0 -325
  175. package/application/factory.d.ts +0 -43
  176. package/application/factory.js +0 -147
  177. package/constants.d.ts +0 -44
  178. package/constants.js +0 -51
  179. package/context/context.d.ts +0 -66
  180. package/context/context.js +0 -156
  181. package/context/creator.d.ts +0 -9
  182. package/context/creator.js +0 -32
  183. package/context/execution-host.d.ts +0 -16
  184. package/context/execution-host.js +0 -30
  185. package/context/index.d.ts +0 -4
  186. package/context/index.js +0 -20
  187. package/context/proxy.d.ts +0 -6
  188. package/context/proxy.js +0 -33
  189. package/decorators/apply.decorator.d.ts +0 -10
  190. package/decorators/apply.decorator.js +0 -24
  191. package/decorators/bind.decorator.d.ts +0 -11
  192. package/decorators/bind.decorator.js +0 -20
  193. package/decorators/catch.decorator.d.ts +0 -17
  194. package/decorators/catch.decorator.js +0 -26
  195. package/decorators/create-param.decorator.d.ts +0 -29
  196. package/decorators/create-param.decorator.js +0 -51
  197. package/decorators/dependencies.decorator.d.ts +0 -6
  198. package/decorators/dependencies.decorator.js +0 -17
  199. package/decorators/exception-filters.decorator.d.ts +0 -21
  200. package/decorators/exception-filters.decorator.js +0 -41
  201. package/decorators/global.decorator.d.ts +0 -10
  202. package/decorators/global.decorator.js +0 -19
  203. package/decorators/index.d.ts +0 -15
  204. package/decorators/index.js +0 -31
  205. package/decorators/inject.decorator.d.ts +0 -26
  206. package/decorators/inject.decorator.js +0 -45
  207. package/decorators/injectable.decorator.d.ts +0 -40
  208. package/decorators/injectable.decorator.js +0 -51
  209. package/decorators/module.decorator.d.ts +0 -14
  210. package/decorators/module.decorator.js +0 -38
  211. package/decorators/optional.decorator.d.ts +0 -14
  212. package/decorators/optional.decorator.js +0 -30
  213. package/decorators/set-metadata.decorator.d.ts +0 -18
  214. package/decorators/set-metadata.decorator.js +0 -30
  215. package/decorators/use-guards.decorator.d.ts +0 -21
  216. package/decorators/use-guards.decorator.js +0 -40
  217. package/decorators/use-interceptors.decorator.d.ts +0 -21
  218. package/decorators/use-interceptors.decorator.js +0 -40
  219. package/decorators/use-pipes.decorator.d.ts +0 -21
  220. package/decorators/use-pipes.decorator.js +0 -39
  221. package/discovery/meta-host-collection.d.ts +0 -32
  222. package/discovery/meta-host-collection.js +0 -79
  223. package/discovery/module.d.ts +0 -5
  224. package/discovery/module.js +0 -24
  225. package/discovery/service.d.ts +0 -68
  226. package/discovery/service.js +0 -90
  227. package/errors/exceptions/circular-dependency.exception.d.ts +0 -4
  228. package/errors/exceptions/circular-dependency.exception.js +0 -11
  229. package/errors/exceptions/index.d.ts +0 -8
  230. package/errors/exceptions/index.js +0 -24
  231. package/errors/exceptions/invalid-class-module.exception.d.ts +0 -4
  232. package/errors/exceptions/invalid-class-module.exception.js +0 -11
  233. package/errors/exceptions/invalid-class-scope.exception.d.ts +0 -5
  234. package/errors/exceptions/invalid-class-scope.exception.js +0 -14
  235. package/errors/exceptions/invalid-class.exception.d.ts +0 -4
  236. package/errors/exceptions/invalid-class.exception.js +0 -11
  237. package/errors/exceptions/invalid-exception-filter.exception.d.ts +0 -4
  238. package/errors/exceptions/invalid-exception-filter.exception.js +0 -11
  239. package/errors/exceptions/invalid-module.exception.d.ts +0 -4
  240. package/errors/exceptions/invalid-module.exception.js +0 -11
  241. package/errors/exceptions/runtime.exception.d.ts +0 -4
  242. package/errors/exceptions/runtime.exception.js +0 -12
  243. package/errors/exceptions/undefined-dependency.exception.d.ts +0 -6
  244. package/errors/exceptions/undefined-dependency.exception.js +0 -11
  245. package/errors/exceptions/undefined-forwardref.exception.d.ts +0 -5
  246. package/errors/exceptions/undefined-forwardref.exception.js +0 -11
  247. package/errors/exceptions/undefined-module.exception.d.ts +0 -4
  248. package/errors/exceptions/undefined-module.exception.js +0 -11
  249. package/errors/exceptions/unknown-dependencies.exception.d.ts +0 -16
  250. package/errors/exceptions/unknown-dependencies.exception.js +0 -15
  251. package/errors/exceptions/unknown-element.exception.d.ts +0 -4
  252. package/errors/exceptions/unknown-element.exception.js +0 -12
  253. package/errors/exceptions/unknown-export.exception.d.ts +0 -4
  254. package/errors/exceptions/unknown-export.exception.js +0 -11
  255. package/errors/exceptions/unknown-module.exception.d.ts +0 -4
  256. package/errors/exceptions/unknown-module.exception.js +0 -10
  257. package/errors/messages.d.ts +0 -15
  258. package/errors/messages.js +0 -126
  259. package/exceptions/handler.d.ts +0 -10
  260. package/exceptions/handler.js +0 -34
  261. package/exceptions/index.d.ts +0 -2
  262. package/exceptions/index.js +0 -18
  263. package/exceptions/zone/handler.d.ts +0 -5
  264. package/exceptions/zone/handler.js +0 -15
  265. package/exceptions/zone/index.d.ts +0 -2
  266. package/exceptions/zone/index.js +0 -18
  267. package/exceptions/zone/zone.d.ts +0 -5
  268. package/exceptions/zone/zone.js +0 -32
  269. package/filters/context-creator.d.ts +0 -14
  270. package/filters/context-creator.js +0 -48
  271. package/filters/context.d.ts +0 -12
  272. package/filters/context.js +0 -41
  273. package/filters/filter.d.ts +0 -6
  274. package/filters/filter.js +0 -16
  275. package/filters/index.d.ts +0 -3
  276. package/filters/index.js +0 -19
  277. package/guards/consumer.d.ts +0 -9
  278. package/guards/consumer.js +0 -33
  279. package/guards/context-creator.d.ts +0 -17
  280. package/guards/context-creator.js +0 -69
  281. package/guards/index.d.ts +0 -2
  282. package/guards/index.js +0 -18
  283. package/helpers/color.helper.d.ts +0 -9
  284. package/helpers/color.helper.js +0 -14
  285. package/helpers/context-id-factory.helper.d.ts +0 -2
  286. package/helpers/context-id-factory.helper.js +0 -15
  287. package/helpers/context.helper.d.ts +0 -23
  288. package/helpers/context.helper.js +0 -49
  289. package/helpers/extends-metadata.helper.d.ts +0 -1
  290. package/helpers/extends-metadata.helper.js +0 -9
  291. package/helpers/flatten.helper.d.ts +0 -1
  292. package/helpers/flatten.helper.js +0 -9
  293. package/helpers/messages.helper.d.ts +0 -2
  294. package/helpers/messages.helper.js +0 -7
  295. package/helpers/noop.helper.d.ts +0 -1
  296. package/helpers/noop.helper.js +0 -5
  297. package/helpers/random-string-generator.helper.d.ts +0 -1
  298. package/helpers/random-string-generator.helper.js +0 -6
  299. package/helpers/rethrow.helper.d.ts +0 -1
  300. package/helpers/rethrow.helper.js +0 -7
  301. package/helpers/shared.helper.d.ts +0 -10
  302. package/helpers/shared.helper.js +0 -33
  303. package/helpers/silent.helper.d.ts +0 -10
  304. package/helpers/silent.helper.js +0 -18
  305. package/helpers/transient.helper.d.ts +0 -12
  306. package/helpers/transient.helper.js +0 -26
  307. package/helpers/uuid.helper.d.ts +0 -15
  308. package/helpers/uuid.helper.js +0 -54
  309. package/helpers/validate-each.helper.d.ts +0 -8
  310. package/helpers/validate-each.helper.js +0 -25
  311. package/hooks/before-app-shutdown.hook.d.ts +0 -9
  312. package/hooks/before-app-shutdown.hook.js +0 -45
  313. package/hooks/index.d.ts +0 -5
  314. package/hooks/index.js +0 -21
  315. package/hooks/on-app-bootstrap.hook.d.ts +0 -8
  316. package/hooks/on-app-bootstrap.hook.js +0 -45
  317. package/hooks/on-app-shutdown.hook.d.ts +0 -9
  318. package/hooks/on-app-shutdown.hook.js +0 -46
  319. package/hooks/on-module-destroy.hook.d.ts +0 -8
  320. package/hooks/on-module-destroy.hook.js +0 -45
  321. package/hooks/on-module-init.hook.d.ts +0 -8
  322. package/hooks/on-module-init.hook.js +0 -45
  323. package/index.d.ts +0 -10
  324. package/index.js +0 -32
  325. package/injector/constants.d.ts +0 -2
  326. package/injector/constants.js +0 -7
  327. package/injector/container.d.ts +0 -61
  328. package/injector/container.js +0 -194
  329. package/injector/helpers/class-scope.helper.d.ts +0 -2
  330. package/injector/helpers/class-scope.helper.js +0 -9
  331. package/injector/helpers/classifier.helper.d.ts +0 -4
  332. package/injector/helpers/classifier.helper.js +0 -17
  333. package/injector/helpers/is-durable.helper.d.ts +0 -2
  334. package/injector/helpers/is-durable.helper.js +0 -9
  335. package/injector/index.d.ts +0 -5
  336. package/injector/index.js +0 -20
  337. package/injector/injector.d.ts +0 -87
  338. package/injector/injector.js +0 -452
  339. package/injector/instance/links-host.d.ts +0 -22
  340. package/injector/instance/links-host.js +0 -50
  341. package/injector/instance/loader.d.ts +0 -21
  342. package/injector/instance/loader.js +0 -73
  343. package/injector/instance/resolver.d.ts +0 -16
  344. package/injector/instance/resolver.js +0 -43
  345. package/injector/instance/wrapper.d.ts +0 -90
  346. package/injector/instance/wrapper.js +0 -272
  347. package/injector/internal-core-module/core-providers.d.ts +0 -4
  348. package/injector/internal-core-module/core-providers.js +0 -21
  349. package/injector/internal-core-module/internal-core-module-factory.d.ts +0 -8
  350. package/injector/internal-core-module/internal-core-module-factory.js +0 -47
  351. package/injector/internal-core-module/internal-core-module.d.ts +0 -4
  352. package/injector/internal-core-module/internal-core-module.js +0 -31
  353. package/injector/module/compiler.d.ts +0 -19
  354. package/injector/module/compiler.js +0 -27
  355. package/injector/module/container.d.ts +0 -6
  356. package/injector/module/container.js +0 -24
  357. package/injector/module/lazy/loader.d.ts +0 -21
  358. package/injector/module/lazy/loader.js +0 -49
  359. package/injector/module/lazy/options.d.ts +0 -6
  360. package/injector/module/lazy/options.js +0 -2
  361. package/injector/module/module.d.ts +0 -74
  362. package/injector/module/module.js +0 -383
  363. package/injector/module/ref.d.ts +0 -106
  364. package/injector/module/ref.js +0 -62
  365. package/injector/module/token-factory.d.ts +0 -13
  366. package/injector/module/token-factory.js +0 -71
  367. package/injector/settlement-signal.d.ts +0 -37
  368. package/injector/settlement-signal.js +0 -55
  369. package/inspector/graph-inspector.d.ts +0 -26
  370. package/inspector/graph-inspector.js +0 -163
  371. package/inspector/initialize-on-preview.allowlist.d.ts +0 -6
  372. package/inspector/initialize-on-preview.allowlist.js +0 -13
  373. package/inspector/interfaces/edge.interface.d.ts +0 -28
  374. package/inspector/interfaces/edge.interface.js +0 -2
  375. package/inspector/interfaces/enhancer-metadata-cache-entry.interface.d.ts +0 -12
  376. package/inspector/interfaces/enhancer-metadata-cache-entry.interface.js +0 -2
  377. package/inspector/interfaces/entrypoint.interface.d.ts +0 -10
  378. package/inspector/interfaces/entrypoint.interface.js +0 -2
  379. package/inspector/interfaces/extras.interface.d.ts +0 -18
  380. package/inspector/interfaces/extras.interface.js +0 -2
  381. package/inspector/interfaces/node.interface.d.ts +0 -49
  382. package/inspector/interfaces/node.interface.js +0 -2
  383. package/inspector/interfaces/serialized-graph-json.interface.d.ts +0 -14
  384. package/inspector/interfaces/serialized-graph-json.interface.js +0 -2
  385. package/inspector/interfaces/serialized-graph-metadata.interface.d.ts +0 -10
  386. package/inspector/interfaces/serialized-graph-metadata.interface.js +0 -2
  387. package/inspector/noop-graph-inspector.d.ts +0 -2
  388. package/inspector/noop-graph-inspector.js +0 -8
  389. package/inspector/partial-graph.host.d.ts +0 -7
  390. package/inspector/partial-graph.host.js +0 -15
  391. package/inspector/serialized-graph.d.ts +0 -52
  392. package/inspector/serialized-graph.js +0 -121
  393. package/interceptors/consumer.d.ts +0 -9
  394. package/interceptors/consumer.js +0 -37
  395. package/interceptors/context-creator.d.ts +0 -17
  396. package/interceptors/context-creator.js +0 -67
  397. package/interceptors/index.d.ts +0 -2
  398. package/interceptors/index.js +0 -18
  399. package/interfaces/abstract.interface.d.ts +0 -3
  400. package/interfaces/abstract.interface.js +0 -2
  401. package/interfaces/application/context-options.interface.d.ts +0 -41
  402. package/interfaces/application/context-options.interface.js +0 -9
  403. package/interfaces/application/context.interface.d.ts +0 -162
  404. package/interfaces/application/context.interface.js +0 -2
  405. package/interfaces/application/index.d.ts +0 -1
  406. package/interfaces/application/index.js +0 -17
  407. package/interfaces/context/arguments-host.interface.d.ts +0 -22
  408. package/interfaces/context/arguments-host.interface.js +0 -2
  409. package/interfaces/context/execution.interface.d.ts +0 -18
  410. package/interfaces/context/execution.interface.js +0 -2
  411. package/interfaces/context/index.d.ts +0 -2
  412. package/interfaces/context/index.js +0 -18
  413. package/interfaces/features/exception-filter.interface.d.ts +0 -21
  414. package/interfaces/features/exception-filter.interface.js +0 -2
  415. package/interfaces/features/guards.interface.d.ts +0 -20
  416. package/interfaces/features/guards.interface.js +0 -2
  417. package/interfaces/features/index.d.ts +0 -4
  418. package/interfaces/features/index.js +0 -20
  419. package/interfaces/features/interceptor.interface.d.ts +0 -30
  420. package/interfaces/features/interceptor.interface.js +0 -2
  421. package/interfaces/features/pipes.interface.d.ts +0 -37
  422. package/interfaces/features/pipes.interface.js +0 -2
  423. package/interfaces/helper.interface.d.ts +0 -3
  424. package/interfaces/helper.interface.js +0 -2
  425. package/interfaces/hooks/before-application-shutdown.interface.d.ts +0 -3
  426. package/interfaces/hooks/before-application-shutdown.interface.js +0 -2
  427. package/interfaces/hooks/index.d.ts +0 -5
  428. package/interfaces/hooks/index.js +0 -21
  429. package/interfaces/hooks/on-application-bootstrap.interface.d.ts +0 -9
  430. package/interfaces/hooks/on-application-bootstrap.interface.js +0 -2
  431. package/interfaces/hooks/on-application-shutdown.interface.d.ts +0 -9
  432. package/interfaces/hooks/on-application-shutdown.interface.js +0 -2
  433. package/interfaces/hooks/on-destroy.interface.d.ts +0 -10
  434. package/interfaces/hooks/on-destroy.interface.js +0 -2
  435. package/interfaces/hooks/on-init.interface.d.ts +0 -8
  436. package/interfaces/hooks/on-init.interface.js +0 -2
  437. package/interfaces/index.d.ts +0 -8
  438. package/interfaces/index.js +0 -24
  439. package/interfaces/injectable.interface.d.ts +0 -1
  440. package/interfaces/injectable.interface.js +0 -2
  441. package/interfaces/modules/configurable/async-options.interface.d.ts +0 -42
  442. package/interfaces/modules/configurable/async-options.interface.js +0 -2
  443. package/interfaces/modules/configurable/cls.interface.d.ts +0 -13
  444. package/interfaces/modules/configurable/cls.interface.js +0 -2
  445. package/interfaces/modules/configurable/host.interface.d.ts +0 -62
  446. package/interfaces/modules/configurable/host.interface.js +0 -2
  447. package/interfaces/modules/configurable/index.d.ts +0 -3
  448. package/interfaces/modules/configurable/index.js +0 -19
  449. package/interfaces/modules/definition.interface.d.ts +0 -4
  450. package/interfaces/modules/definition.interface.js +0 -2
  451. package/interfaces/modules/dynamic-module.interface.d.ts +0 -23
  452. package/interfaces/modules/dynamic-module.interface.js +0 -2
  453. package/interfaces/modules/forward-reference.interface.d.ts +0 -3
  454. package/interfaces/modules/forward-reference.interface.js +0 -2
  455. package/interfaces/modules/index.d.ts +0 -9
  456. package/interfaces/modules/index.js +0 -25
  457. package/interfaces/modules/injection-token.interface.d.ts +0 -5
  458. package/interfaces/modules/injection-token.interface.js +0 -2
  459. package/interfaces/modules/introspection-result.interface.d.ts +0 -10
  460. package/interfaces/modules/introspection-result.interface.js +0 -2
  461. package/interfaces/modules/module-metadata.interface.d.ts +0 -24
  462. package/interfaces/modules/module-metadata.interface.js +0 -2
  463. package/interfaces/modules/module.interface.d.ts +0 -2
  464. package/interfaces/modules/module.interface.js +0 -2
  465. package/interfaces/modules/optional-factory-dependency.interface.d.ts +0 -8
  466. package/interfaces/modules/optional-factory-dependency.interface.js +0 -2
  467. package/interfaces/modules/override.interface.d.ts +0 -5
  468. package/interfaces/modules/override.interface.js +0 -2
  469. package/interfaces/modules/provider.interface.d.ts +0 -142
  470. package/interfaces/modules/provider.interface.js +0 -2
  471. package/interfaces/scope.interface.d.ts +0 -35
  472. package/interfaces/scope.interface.js +0 -23
  473. package/interfaces/type.interface.d.ts +0 -3
  474. package/interfaces/type.interface.js +0 -2
  475. package/metadata-scanner.d.ts +0 -4
  476. package/metadata-scanner.js +0 -34
  477. package/module/configurable-module.builder.d.ts +0 -93
  478. package/module/configurable-module.builder.js +0 -204
  479. package/module/constants.d.ts +0 -4
  480. package/module/constants.js +0 -7
  481. package/module/helpers/generate-options-injection-token.helper.d.ts +0 -1
  482. package/module/helpers/generate-options-injection-token.helper.js +0 -9
  483. package/module/helpers/get-injection-providers.helper.d.ts +0 -8
  484. package/module/helpers/get-injection-providers.helper.js +0 -36
  485. package/module/helpers/index.d.ts +0 -2
  486. package/module/helpers/index.js +0 -18
  487. package/module/index.d.ts +0 -2
  488. package/module/index.js +0 -18
  489. package/pipes/consumer.d.ts +0 -9
  490. package/pipes/consumer.js +0 -15
  491. package/pipes/context-creator.d.ts +0 -18
  492. package/pipes/context-creator.js +0 -70
  493. package/pipes/index.d.ts +0 -2
  494. package/pipes/index.js +0 -18
  495. package/scanner.d.ts +0 -81
  496. package/scanner.js +0 -374
  497. package/services/console.service.d.ts +0 -86
  498. package/services/console.service.js +0 -233
  499. package/services/index.d.ts +0 -1
  500. package/services/index.js +0 -17
  501. package/services/logger.service.d.ts +0 -157
  502. package/services/logger.service.js +0 -269
  503. package/services/reflector.service.d.ts +0 -110
  504. package/services/reflector.service.js +0 -87
  505. package/test/context/creator.spec.d.ts +0 -1
  506. package/test/context/creator.spec.js +0 -149
  507. package/test/context/execution-host.spec.d.ts +0 -1
  508. package/test/context/execution-host.spec.js +0 -31
  509. package/test/context/proxy.spec.d.ts +0 -1
  510. package/test/context/proxy.spec.js +0 -46
  511. package/test/exceptions/handler.spec.d.ts +0 -1
  512. package/test/exceptions/handler.spec.js +0 -90
  513. package/test/exceptions/messages.spec.js +0 -201
  514. package/test/exceptions/zona/handler.spec.d.ts +0 -1
  515. package/test/exceptions/zona/handler.spec.js +0 -51
  516. package/test/exceptions/zona/zone.spec.d.ts +0 -1
  517. package/test/exceptions/zona/zone.spec.js +0 -66
  518. package/test/filters/context-creator.spec.d.ts +0 -2
  519. package/test/filters/context-creator.spec.js +0 -91
  520. package/test/guards/consumer.spec.d.ts +0 -1
  521. package/test/guards/consumer.spec.js +0 -47
  522. package/test/guards/context-creator.spec.d.ts +0 -1
  523. package/test/guards/context-creator.spec.js +0 -138
  524. package/test/helpers/context-id-factory.spec.d.ts +0 -1
  525. package/test/helpers/context-id-factory.spec.js +0 -9
  526. package/test/helpers/shared.spec.d.ts +0 -1
  527. package/test/helpers/shared.spec.js +0 -122
  528. package/test/hooks/before-app-shutdown.hook.spec.d.ts +0 -1
  529. package/test/hooks/before-app-shutdown.hook.spec.js +0 -44
  530. package/test/hooks/on-app-bootstrap.hook.spec.d.ts +0 -1
  531. package/test/hooks/on-app-bootstrap.hook.spec.js +0 -43
  532. package/test/hooks/on-app-shutdown.hook.spec.d.ts +0 -1
  533. package/test/hooks/on-app-shutdown.hook.spec.js +0 -43
  534. package/test/hooks/on-module-destroy.hook.spec.d.ts +0 -1
  535. package/test/hooks/on-module-destroy.hook.spec.js +0 -43
  536. package/test/hooks/on-module-init.hook.spec.d.ts +0 -1
  537. package/test/hooks/on-module-init.hook.spec.js +0 -43
  538. package/test/injector/compiler.spec.d.ts +0 -1
  539. package/test/injector/compiler.spec.js +0 -42
  540. package/test/injector/container.spec.d.ts +0 -1
  541. package/test/injector/container.spec.js +0 -203
  542. package/test/injector/helpers/classifier.spec.d.ts +0 -1
  543. package/test/injector/helpers/classifier.spec.js +0 -102
  544. package/test/injector/injector.spec.d.ts +0 -1
  545. package/test/injector/injector.spec.js +0 -678
  546. package/test/injector/instance/loader.spec.d.ts +0 -1
  547. package/test/injector/instance/loader.spec.js +0 -108
  548. package/test/injector/instance/wrapper.spec.d.ts +0 -1
  549. package/test/injector/instance/wrapper.spec.js +0 -772
  550. package/test/injector/internal-core-module/internal-core-module-factory.spec.d.ts +0 -1
  551. package/test/injector/internal-core-module/internal-core-module-factory.spec.js +0 -27
  552. package/test/injector/module/lazy/loader.spec.d.ts +0 -1
  553. package/test/injector/module/lazy/loader.spec.js +0 -71
  554. package/test/injector/module/module.spec.d.ts +0 -1
  555. package/test/injector/module/module.spec.js +0 -410
  556. package/test/injector/module/token-factory.spec.d.ts +0 -1
  557. package/test/injector/module/token-factory.spec.js +0 -84
  558. package/test/interceptors/consumer.spec.d.ts +0 -1
  559. package/test/interceptors/consumer.spec.js +0 -136
  560. package/test/interceptors/context-creator.spec.d.ts +0 -1
  561. package/test/interceptors/context-creator.spec.js +0 -139
  562. package/test/metadata-scanner.spec.d.ts +0 -1
  563. package/test/metadata-scanner.spec.js +0 -41
  564. package/test/module/configurable-module.builder.spec.d.ts +0 -1
  565. package/test/module/configurable-module.builder.spec.js +0 -102
  566. package/test/module/helpers/get-injection-providers.helper.spec.d.ts +0 -1
  567. package/test/module/helpers/get-injection-providers.helper.spec.js +0 -49
  568. package/test/pipes/consumer.spec.d.ts +0 -1
  569. package/test/pipes/consumer.spec.js +0 -42
  570. package/test/pipes/context-creator.spec.d.ts +0 -1
  571. package/test/pipes/context-creator.spec.js +0 -108
  572. package/test/scanner.spec.d.ts +0 -1
  573. package/test/scanner.spec.js +0 -620
  574. package/test/services/logger.service.spec.d.ts +0 -1
  575. package/test/services/logger.service.spec.js +0 -487
  576. package/test/services/reflector.service.spec.d.ts +0 -1
  577. package/test/services/reflector.service.spec.js +0 -105
  578. package/tsconfig.tsbuildinfo +0 -1
  579. /package/{test/exceptions/messages.spec.d.ts → dist/interfaces/abstract.interface.js} +0 -0
package/module/index.js DELETED
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./configurable-module.builder"), exports);
18
- __exportStar(require("../interfaces/modules/configurable"), exports);
@@ -1,9 +0,0 @@
1
- import { ArgumentMetadata, PipeTransform } from "@venok/core/interfaces/features/pipes.interface";
2
- export declare class PipesConsumer {
3
- apply<TInput = unknown>(value: TInput, { metatype, type, data }: ArgumentMetadata, pipes: PipeTransform[]): Promise<TInput>;
4
- applyPipes<TInput = unknown>(value: TInput, { metatype, type, data }: {
5
- metatype: any;
6
- type?: any;
7
- data?: any;
8
- }, transforms: PipeTransform[]): Promise<TInput>;
9
- }
package/pipes/consumer.js DELETED
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PipesConsumer = void 0;
4
- class PipesConsumer {
5
- async apply(value, { metatype, type, data }, pipes) {
6
- return this.applyPipes(value, { metatype, type, data }, pipes);
7
- }
8
- async applyPipes(value, { metatype, type, data }, transforms) {
9
- return transforms.reduce(async (deferredValue, pipe) => {
10
- const val = await deferredValue;
11
- return pipe.transform(val, { metatype, type, data });
12
- }, Promise.resolve(value));
13
- }
14
- }
15
- exports.PipesConsumer = PipesConsumer;
@@ -1,18 +0,0 @@
1
- import { VenokContainer } from "@venok/core/injector/container";
2
- import { ContextCreator } from "@venok/core/context/creator";
3
- import { ApplicationConfig } from "@venok/core/application/config";
4
- import { InstanceWrapper } from "@venok/core/injector/instance/wrapper";
5
- import { PipeTransform } from "@venok/core/interfaces/features/pipes.interface";
6
- import { Type } from "@venok/core/interfaces";
7
- export declare class PipesContextCreator extends ContextCreator {
8
- private readonly container;
9
- private readonly config?;
10
- private moduleContext;
11
- constructor(container: VenokContainer, config?: ApplicationConfig | undefined);
12
- create(instance: object, callback: (...args: unknown[]) => unknown, moduleKey: string, contextId?: import("@venok/core/injector/instance/wrapper").ContextId, inquirerId?: string): PipeTransform[];
13
- createConcreteContext<T extends any[], R extends any[]>(metadata: T, contextId?: import("@venok/core/injector/instance/wrapper").ContextId, inquirerId?: string): R;
14
- getPipeInstance(pipe: Function | PipeTransform, contextId?: import("@venok/core/injector/instance/wrapper").ContextId, inquirerId?: string): PipeTransform | null;
15
- getInstanceByMetatype(metatype: Type): InstanceWrapper | undefined;
16
- getGlobalMetadata<T extends unknown[]>(contextId?: import("@venok/core/injector/instance/wrapper").ContextId, inquirerId?: string): T;
17
- setModuleContext(context: string): void;
18
- }
@@ -1,70 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PipesContextCreator = void 0;
4
- const creator_1 = require("@venok/core/context/creator");
5
- const constants_1 = require("@venok/core/injector/constants");
6
- const constants_2 = require("@venok/core/constants");
7
- const shared_helper_1 = require("@venok/core/helpers/shared.helper");
8
- class PipesContextCreator extends creator_1.ContextCreator {
9
- constructor(container, config) {
10
- super();
11
- this.container = container;
12
- this.config = config;
13
- }
14
- create(instance, callback, moduleKey, contextId = constants_1.STATIC_CONTEXT, inquirerId) {
15
- this.moduleContext = moduleKey;
16
- return this.createContext(instance, callback, constants_2.PIPES_METADATA, contextId, inquirerId);
17
- }
18
- createConcreteContext(metadata, contextId = constants_1.STATIC_CONTEXT, inquirerId) {
19
- if ((0, shared_helper_1.isEmpty)(metadata)) {
20
- return [];
21
- }
22
- return metadata
23
- .filter((pipe) => pipe && (pipe.name || pipe.transform))
24
- .map((pipe) => this.getPipeInstance(pipe, contextId, inquirerId))
25
- .filter((pipe) => pipe && pipe.transform && (0, shared_helper_1.isFunction)(pipe.transform));
26
- }
27
- getPipeInstance(pipe, contextId = constants_1.STATIC_CONTEXT, inquirerId) {
28
- const isObject = pipe.transform;
29
- // @ts-ignore
30
- if (isObject) {
31
- return pipe;
32
- }
33
- const instanceWrapper = this.getInstanceByMetatype(pipe);
34
- if (!instanceWrapper) {
35
- return null;
36
- }
37
- const instanceHost = instanceWrapper.getInstanceByContextId(this.getContextId(contextId, instanceWrapper), inquirerId);
38
- return instanceHost && instanceHost.instance;
39
- }
40
- getInstanceByMetatype(metatype) {
41
- if (!this.moduleContext) {
42
- return;
43
- }
44
- const collection = this.container.getModules();
45
- const moduleRef = collection.get(this.moduleContext);
46
- if (!moduleRef) {
47
- return;
48
- }
49
- return moduleRef.injectables.get(metatype);
50
- }
51
- getGlobalMetadata(contextId = constants_1.STATIC_CONTEXT, inquirerId) {
52
- if (!this.config) {
53
- return [];
54
- }
55
- const globalPipes = this.config.getGlobalPipes();
56
- if (contextId === constants_1.STATIC_CONTEXT && !inquirerId) {
57
- return globalPipes;
58
- }
59
- const scopedPipeWrappers = this.config.getGlobalRequestPipes();
60
- const scopedPipes = scopedPipeWrappers
61
- .map((wrapper) => wrapper.getInstanceByContextId(this.getContextId(contextId, wrapper), inquirerId))
62
- .filter((host) => !!host)
63
- .map((host) => host.instance);
64
- return globalPipes.concat(scopedPipes);
65
- }
66
- setModuleContext(context) {
67
- this.moduleContext = context;
68
- }
69
- }
70
- exports.PipesContextCreator = PipesContextCreator;
package/pipes/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from "./consumer";
2
- export * from "./context-creator";
package/pipes/index.js DELETED
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./consumer"), exports);
18
- __exportStar(require("./context-creator"), exports);
package/scanner.d.ts DELETED
@@ -1,81 +0,0 @@
1
- import { ClassProvider, DynamicModule, ExistingProvider, FactoryProvider, ForwardReference, ModuleDefinition, Provider, Type, ValueProvider } from "@venok/core/interfaces";
2
- import { ModuleOverride } from "@venok/core/interfaces/modules/override.interface";
3
- import { MetadataScanner } from "@venok/core/metadata-scanner";
4
- import { GraphInspector } from "@venok/core/inspector/graph-inspector";
5
- import { ApplicationConfig } from "@venok/core/application/config";
6
- import { VenokContainer } from "@venok/core/injector/container";
7
- import { Module } from "@venok/core/injector/module/module";
8
- import { ENHANCER_KEY_TO_SUBTYPE_MAP, EnhancerSubtype } from "@venok/core/constants";
9
- import { InstanceWrapper } from "@venok/core/injector/instance/wrapper";
10
- import { Injectable } from "@venok/core/interfaces/injectable.interface";
11
- interface ModulesScanParameters {
12
- moduleDefinition: ModuleDefinition;
13
- scope?: Type[];
14
- ctxRegistry?: (ForwardReference | DynamicModule | Type)[];
15
- overrides?: ModuleOverride[];
16
- lazy?: boolean;
17
- }
18
- export declare class DependenciesScanner {
19
- private readonly container;
20
- private readonly metadataScanner;
21
- private readonly graphInspector;
22
- private readonly applicationConfig;
23
- private readonly applicationProvidersApplyMap;
24
- constructor(container: VenokContainer, metadataScanner: MetadataScanner, graphInspector: GraphInspector, applicationConfig?: ApplicationConfig);
25
- scan(module: Type, options?: {
26
- overrides?: ModuleOverride[];
27
- }): Promise<void>;
28
- scanForModules({ moduleDefinition, lazy, scope, ctxRegistry, overrides, }: ModulesScanParameters): Promise<Module[]>;
29
- insertModule(moduleDefinition: any, scope: Type[]): Promise<{
30
- moduleRef: Module;
31
- inserted: boolean;
32
- } | undefined>;
33
- scanModulesForDependencies(modules?: Map<string, Module>): Promise<void>;
34
- reflectImports(module: Type, token: string, context: string): Promise<void>;
35
- reflectProviders(module: Type, token: string): void;
36
- reflectDynamicMetadata(cls: Type<Injectable>, token: string): void;
37
- reflectExports(module: Type, token: string): void;
38
- reflectInjectables(component: Type<Injectable>, token: string, metadataKey: keyof typeof ENHANCER_KEY_TO_SUBTYPE_MAP): void;
39
- reflectParamInjectables(component: Type<Injectable>, token: string, metadataKey: string): void;
40
- reflectKeyMetadata(component: Type<Injectable>, key: string, methodKey: string): {
41
- methodKey: string;
42
- metadata: any;
43
- } | undefined;
44
- calculateModulesDistance(): void;
45
- insertImport(related: any, token: string, context: string): Promise<void>;
46
- isCustomProvider(provider: Provider): provider is ClassProvider | ValueProvider | FactoryProvider | ExistingProvider;
47
- insertProvider(provider: Provider, token: string): string | symbol | Function | InstanceWrapper<unknown> | undefined;
48
- insertInjectable(injectable: Type<Injectable> | object, token: string, host: Type<Injectable>, subtype: EnhancerSubtype, methodKey?: string): InstanceWrapper<any> | undefined;
49
- insertExportedProvider(exportedProvider: Type<Injectable>, token: string): void;
50
- private insertOrOverrideModule;
51
- private getOverrideModuleByModule;
52
- private overrideModule;
53
- reflectMetadata<T = any>(metadataKey: string, metatype: Type): T[];
54
- registerCoreModule(overrides?: ModuleOverride[]): Promise<void>;
55
- /**
56
- * Add either request or transient globally scoped enhancers
57
- * to all controllers metadata storage
58
- */
59
- addScopedEnhancersMetadata(): void;
60
- applyApplicationProviders(): void;
61
- getApplyProvidersMap(): {
62
- [type: string]: Function;
63
- };
64
- getApplyRequestProvidersMap(): {
65
- [type: string]: Function;
66
- };
67
- isDynamicModule(module: Type | DynamicModule): module is DynamicModule;
68
- /**
69
- * @param metatype
70
- * @returns `true` if `metatype` is annotated with the `@Injectable()` decorator.
71
- */
72
- private isInjectable;
73
- /**
74
- * @param metatype
75
- * @returns `true` if `metatype` is annotated with the `@Catch()` decorator.
76
- */
77
- private isExceptionFilter;
78
- private isForwardReference;
79
- private isRequestOrTransient;
80
- }
81
- export {};
package/scanner.js DELETED
@@ -1,374 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DependenciesScanner = void 0;
4
- const interfaces_1 = require("@venok/core/interfaces");
5
- const config_1 = require("@venok/core/application/config");
6
- const constants_1 = require("@venok/core/constants");
7
- const undefined_module_exception_1 = require("@venok/core/errors/exceptions/undefined-module.exception");
8
- const invalid_module_exception_1 = require("@venok/core/errors/exceptions/invalid-module.exception");
9
- const invalid_class_module_exception_1 = require("@venok/core/errors/exceptions/invalid-class-module.exception");
10
- const shared_helper_1 = require("@venok/core/helpers/shared.helper");
11
- const exceptions_1 = require("@venok/core/errors/exceptions");
12
- const uuid_helper_1 = require("@venok/core/helpers/uuid.helper");
13
- const class_scope_helper_1 = require("@venok/core/injector/helpers/class-scope.helper");
14
- const internal_core_module_factory_1 = require("@venok/core/injector/internal-core-module/internal-core-module-factory");
15
- const flatten_helper_1 = require("@venok/core/helpers/flatten.helper");
16
- class DependenciesScanner {
17
- constructor(container, metadataScanner, graphInspector, applicationConfig = new config_1.ApplicationConfig()) {
18
- this.container = container;
19
- this.metadataScanner = metadataScanner;
20
- this.graphInspector = graphInspector;
21
- this.applicationConfig = applicationConfig;
22
- this.applicationProvidersApplyMap = [];
23
- }
24
- async scan(module, options) {
25
- await this.registerCoreModule(options?.overrides);
26
- await this.scanForModules({
27
- moduleDefinition: module,
28
- overrides: options?.overrides,
29
- });
30
- await this.scanModulesForDependencies();
31
- this.calculateModulesDistance();
32
- this.addScopedEnhancersMetadata();
33
- this.container.bindGlobalScope();
34
- }
35
- async scanForModules({ moduleDefinition, lazy, scope = [], ctxRegistry = [], overrides = [], }) {
36
- const { moduleRef: moduleInstance, inserted: moduleInserted } = (await this.insertOrOverrideModule(moduleDefinition, overrides, scope)) ?? {};
37
- moduleDefinition = this.getOverrideModuleByModule(moduleDefinition, overrides)?.newModule ?? moduleDefinition;
38
- moduleDefinition = moduleDefinition instanceof Promise ? await moduleDefinition : moduleDefinition;
39
- ctxRegistry.push(moduleDefinition);
40
- if (this.isForwardReference(moduleDefinition)) {
41
- moduleDefinition = moduleDefinition.forwardRef();
42
- }
43
- const modules = !this.isDynamicModule(moduleDefinition)
44
- ? this.reflectMetadata(constants_1.MODULE_METADATA.IMPORTS, moduleDefinition)
45
- : [
46
- ...this.reflectMetadata(constants_1.MODULE_METADATA.IMPORTS, moduleDefinition.module),
47
- ...(moduleDefinition.imports || []),
48
- ];
49
- let registeredModuleRefs = [];
50
- for (const [index, innerModule] of modules.entries()) {
51
- // In case of a circular dependency (ES module system), JavaScript will resolve the type to `undefined`.
52
- if (innerModule === undefined) {
53
- throw new undefined_module_exception_1.UndefinedModuleException(moduleDefinition, index, scope);
54
- }
55
- if (!innerModule) {
56
- throw new invalid_module_exception_1.InvalidModuleException(moduleDefinition, index, scope);
57
- }
58
- if (ctxRegistry.includes(innerModule)) {
59
- continue;
60
- }
61
- const moduleRefs = await this.scanForModules({
62
- moduleDefinition: innerModule,
63
- // Maybe Error
64
- scope: scope.concat(moduleDefinition),
65
- ctxRegistry,
66
- overrides,
67
- lazy,
68
- });
69
- registeredModuleRefs = registeredModuleRefs.concat(moduleRefs);
70
- }
71
- if (!moduleInstance) {
72
- return registeredModuleRefs;
73
- }
74
- if (lazy && moduleInserted) {
75
- this.container.bindGlobalsToImports(moduleInstance);
76
- }
77
- return [moduleInstance].concat(registeredModuleRefs);
78
- }
79
- async insertModule(moduleDefinition, scope) {
80
- const moduleToAdd = this.isForwardReference(moduleDefinition) ? moduleDefinition.forwardRef() : moduleDefinition;
81
- if (this.isInjectable(moduleToAdd) || this.isExceptionFilter(moduleToAdd)) {
82
- throw new invalid_class_module_exception_1.InvalidClassModuleException(moduleDefinition, scope);
83
- }
84
- return this.container.addModule(moduleToAdd, scope);
85
- }
86
- async scanModulesForDependencies(modules = this.container.getModules()) {
87
- for (const [token, { metatype }] of modules) {
88
- await this.reflectImports(metatype, token, metatype.name);
89
- this.reflectProviders(metatype, token);
90
- this.reflectExports(metatype, token);
91
- }
92
- }
93
- async reflectImports(module, token, context) {
94
- const modules = [
95
- ...this.reflectMetadata(constants_1.MODULE_METADATA.IMPORTS, module),
96
- ...this.container.getDynamicMetadataByToken(token, constants_1.MODULE_METADATA.IMPORTS),
97
- ];
98
- for (const related of modules) {
99
- await this.insertImport(related, token, context);
100
- }
101
- }
102
- reflectProviders(module, token) {
103
- const providers = [
104
- ...this.reflectMetadata(constants_1.MODULE_METADATA.PROVIDERS, module),
105
- ...this.container.getDynamicMetadataByToken(token, constants_1.MODULE_METADATA.PROVIDERS),
106
- ];
107
- providers.forEach((provider) => {
108
- this.insertProvider(provider, token);
109
- this.reflectDynamicMetadata(provider, token);
110
- });
111
- }
112
- reflectDynamicMetadata(cls, token) {
113
- if (!cls || !cls.prototype) {
114
- return;
115
- }
116
- this.reflectInjectables(cls, token, constants_1.GUARDS_METADATA);
117
- this.reflectInjectables(cls, token, constants_1.INTERCEPTORS_METADATA);
118
- this.reflectInjectables(cls, token, constants_1.EXCEPTION_FILTERS_METADATA);
119
- this.reflectInjectables(cls, token, constants_1.PIPES_METADATA);
120
- this.reflectParamInjectables(cls, token, constants_1.ROUTE_ARGS_METADATA);
121
- }
122
- reflectExports(module, token) {
123
- const exports = [
124
- ...this.reflectMetadata(constants_1.MODULE_METADATA.EXPORTS, module),
125
- ...this.container.getDynamicMetadataByToken(token, constants_1.MODULE_METADATA.EXPORTS),
126
- ];
127
- exports.forEach((exportedProvider) => this.insertExportedProvider(exportedProvider, token));
128
- }
129
- reflectInjectables(component, token, metadataKey) {
130
- const Injectables = this.reflectMetadata(metadataKey, component);
131
- const methodInjectables = this.metadataScanner.getAllMethodNames(component.prototype).reduce((acc, method) => {
132
- const methodInjectable = this.reflectKeyMetadata(component, metadataKey, method);
133
- if (methodInjectable) {
134
- acc.push(methodInjectable);
135
- }
136
- return acc;
137
- }, []);
138
- Injectables.forEach((injectable) => this.insertInjectable(injectable, token, component, constants_1.ENHANCER_KEY_TO_SUBTYPE_MAP[metadataKey]));
139
- methodInjectables.forEach((methodInjectable) => {
140
- methodInjectable.metadata.forEach((injectable) => this.insertInjectable(injectable, token, component, constants_1.ENHANCER_KEY_TO_SUBTYPE_MAP[metadataKey], methodInjectable.methodKey));
141
- });
142
- }
143
- reflectParamInjectables(component, token, metadataKey) {
144
- const paramsMethods = this.metadataScanner.getAllMethodNames(component.prototype);
145
- paramsMethods.forEach((methodKey) => {
146
- const metadata = Reflect.getMetadata(metadataKey, component, methodKey);
147
- if (!metadata) {
148
- return;
149
- }
150
- const params = Object.values(metadata);
151
- params
152
- .map((item) => item.pipes)
153
- .flat(1)
154
- .forEach((injectable) => this.insertInjectable(injectable, token, component, "pipe", methodKey));
155
- });
156
- }
157
- reflectKeyMetadata(component, key, methodKey) {
158
- let prototype = component.prototype;
159
- do {
160
- const descriptor = Reflect.getOwnPropertyDescriptor(prototype, methodKey);
161
- if (!descriptor) {
162
- continue;
163
- }
164
- const metadata = Reflect.getMetadata(key, descriptor.value);
165
- if (!metadata) {
166
- return;
167
- }
168
- return { methodKey, metadata };
169
- } while ((prototype = Reflect.getPrototypeOf(prototype)) && prototype !== Object.prototype && prototype);
170
- return undefined;
171
- }
172
- calculateModulesDistance() {
173
- const modulesGenerator = this.container.getModules().values();
174
- // Skip "InternalCoreModule" from calculating distance
175
- modulesGenerator.next();
176
- const modulesStack = [];
177
- const calculateDistance = (moduleRef, distance = 1) => {
178
- if (!moduleRef || modulesStack.includes(moduleRef)) {
179
- return;
180
- }
181
- modulesStack.push(moduleRef);
182
- const moduleImports = moduleRef.imports;
183
- moduleImports.forEach((importedModuleRef) => {
184
- if (importedModuleRef) {
185
- if (distance > importedModuleRef.distance) {
186
- importedModuleRef.distance = distance;
187
- }
188
- calculateDistance(importedModuleRef, distance + 1);
189
- }
190
- });
191
- };
192
- const rootModule = modulesGenerator.next().value;
193
- calculateDistance(rootModule);
194
- }
195
- async insertImport(related, token, context) {
196
- if ((0, shared_helper_1.isUndefined)(related)) {
197
- throw new exceptions_1.CircularDependencyException(context);
198
- }
199
- if (this.isForwardReference(related)) {
200
- return this.container.addImport(related.forwardRef(), token);
201
- }
202
- await this.container.addImport(related, token);
203
- }
204
- isCustomProvider(provider) {
205
- return provider && !(0, shared_helper_1.isNull)(provider.provide);
206
- }
207
- insertProvider(provider, token) {
208
- const isCustomProvider = this.isCustomProvider(provider);
209
- if (!isCustomProvider) {
210
- return this.container.addProvider(provider, token);
211
- }
212
- const applyProvidersMap = this.getApplyProvidersMap();
213
- const providersKeys = Object.keys(applyProvidersMap);
214
- const type = provider.provide;
215
- if (!providersKeys.includes(type)) {
216
- return this.container.addProvider(provider, token);
217
- }
218
- const uuid = uuid_helper_1.UuidFactory.get(type.toString());
219
- const providerToken = `${type} (UUID: ${uuid})`;
220
- let scope = provider.scope;
221
- if ((0, shared_helper_1.isNull)(scope) && provider.useClass) {
222
- scope = (0, class_scope_helper_1.getClassScope)(provider.useClass);
223
- }
224
- this.applicationProvidersApplyMap.push({
225
- type,
226
- moduleKey: token,
227
- providerKey: providerToken,
228
- scope,
229
- });
230
- const newProvider = {
231
- ...provider,
232
- provide: providerToken,
233
- scope,
234
- };
235
- const enhancerSubtype = constants_1.ENHANCER_TOKEN_TO_SUBTYPE_MAP[type];
236
- const factoryOrClassProvider = newProvider;
237
- if (this.isRequestOrTransient(factoryOrClassProvider.scope)) {
238
- return this.container.addInjectable(newProvider, token, enhancerSubtype);
239
- }
240
- this.container.addProvider(newProvider, token, enhancerSubtype);
241
- }
242
- insertInjectable(injectable, token, host, subtype, methodKey) {
243
- if ((0, shared_helper_1.isFunction)(injectable)) {
244
- const instanceWrapper = this.container.addInjectable(injectable, token, subtype, host);
245
- this.graphInspector.insertEnhancerMetadataCache({
246
- moduleToken: token,
247
- classRef: host,
248
- enhancerInstanceWrapper: instanceWrapper,
249
- targetNodeId: instanceWrapper.id,
250
- subtype,
251
- methodKey,
252
- });
253
- return instanceWrapper;
254
- }
255
- else {
256
- this.graphInspector.insertEnhancerMetadataCache({
257
- moduleToken: token,
258
- classRef: host,
259
- enhancerRef: injectable,
260
- methodKey,
261
- subtype,
262
- });
263
- }
264
- }
265
- insertExportedProvider(exportedProvider, token) {
266
- this.container.addExportedProvider(exportedProvider, token);
267
- }
268
- insertOrOverrideModule(moduleDefinition, overrides, scope) {
269
- const overrideModule = this.getOverrideModuleByModule(moduleDefinition, overrides);
270
- if (overrideModule !== undefined) {
271
- return this.overrideModule(moduleDefinition, overrideModule.newModule, scope);
272
- }
273
- return this.insertModule(moduleDefinition, scope);
274
- }
275
- getOverrideModuleByModule(module, overrides) {
276
- if (this.isForwardReference(module)) {
277
- return overrides.find((moduleToOverride) => {
278
- return (moduleToOverride.moduleToReplace === module.forwardRef() ||
279
- moduleToOverride.moduleToReplace.forwardRef?.() === module.forwardRef());
280
- });
281
- }
282
- return overrides.find((moduleToOverride) => moduleToOverride.moduleToReplace === module);
283
- }
284
- async overrideModule(moduleToOverride, newModule, scope) {
285
- return this.container.replaceModule(this.isForwardReference(moduleToOverride) ? moduleToOverride.forwardRef() : moduleToOverride, this.isForwardReference(newModule) ? newModule.forwardRef() : newModule, scope);
286
- }
287
- reflectMetadata(metadataKey, metatype) {
288
- return Reflect.getMetadata(metadataKey, metatype) || [];
289
- }
290
- async registerCoreModule(overrides) {
291
- const moduleDefinition = internal_core_module_factory_1.InternalCoreModuleFactory.create(this.container, this, this.container.getModuleCompiler(), this.graphInspector, overrides);
292
- const [instance] = await this.scanForModules({
293
- moduleDefinition,
294
- overrides,
295
- });
296
- this.container.registerCoreModuleRef(instance);
297
- }
298
- /**
299
- * Add either request or transient globally scoped enhancers
300
- * to all controllers metadata storage
301
- */
302
- addScopedEnhancersMetadata() {
303
- this.applicationProvidersApplyMap
304
- .filter((wrapper) => this.isRequestOrTransient(wrapper.scope))
305
- .forEach(({ moduleKey, providerKey }) => {
306
- const modulesContainer = this.container.getModules();
307
- const { injectables } = modulesContainer.get(moduleKey);
308
- const instanceWrapper = injectables.get(providerKey);
309
- const iterableIterator = modulesContainer.values();
310
- (0, flatten_helper_1.flatten)([...iterableIterator].map((moduleRef) => moduleRef.entryProviders)).forEach((EntryProvider) => EntryProvider.addEnhancerMetadata(instanceWrapper));
311
- });
312
- }
313
- applyApplicationProviders() {
314
- const applyProvidersMap = this.getApplyProvidersMap();
315
- const applyRequestProvidersMap = this.getApplyRequestProvidersMap();
316
- const getInstanceWrapper = (moduleKey, providerKey, collectionKey) => {
317
- const modules = this.container.getModules();
318
- const collection = modules.get(moduleKey)[collectionKey];
319
- return collection.get(providerKey);
320
- };
321
- // Add global enhancers to the application config
322
- this.applicationProvidersApplyMap.forEach(({ moduleKey, providerKey, type, scope }) => {
323
- let instanceWrapper;
324
- if (this.isRequestOrTransient(scope)) {
325
- instanceWrapper = getInstanceWrapper(moduleKey, providerKey, "injectables");
326
- this.graphInspector.insertAttachedEnhancer(instanceWrapper);
327
- return applyRequestProvidersMap[type](instanceWrapper);
328
- }
329
- instanceWrapper = getInstanceWrapper(moduleKey, providerKey, "providers");
330
- this.graphInspector.insertAttachedEnhancer(instanceWrapper);
331
- applyProvidersMap[type](instanceWrapper.instance);
332
- });
333
- }
334
- getApplyProvidersMap() {
335
- return {
336
- [constants_1.APP_INTERCEPTOR]: (interceptor) => this.applicationConfig.addGlobalInterceptor(interceptor),
337
- [constants_1.APP_PIPE]: (pipe) => this.applicationConfig.addGlobalPipe(pipe),
338
- [constants_1.APP_GUARD]: (guard) => this.applicationConfig.addGlobalGuard(guard),
339
- [constants_1.APP_FILTER]: (filter) => this.applicationConfig.addGlobalFilter(filter),
340
- };
341
- }
342
- getApplyRequestProvidersMap() {
343
- return {
344
- [constants_1.APP_INTERCEPTOR]: (interceptor) => this.applicationConfig.addGlobalRequestInterceptor(interceptor),
345
- [constants_1.APP_PIPE]: (pipe) => this.applicationConfig.addGlobalRequestPipe(pipe),
346
- [constants_1.APP_GUARD]: (guard) => this.applicationConfig.addGlobalRequestGuard(guard),
347
- [constants_1.APP_FILTER]: (filter) => this.applicationConfig.addGlobalRequestFilter(filter),
348
- };
349
- }
350
- isDynamicModule(module) {
351
- return module && !!module.module;
352
- }
353
- /**
354
- * @param metatype
355
- * @returns `true` if `metatype` is annotated with the `@Injectable()` decorator.
356
- */
357
- isInjectable(metatype) {
358
- return !!Reflect.getMetadata(constants_1.INJECTABLE_WATERMARK, metatype);
359
- }
360
- /**
361
- * @param metatype
362
- * @returns `true` if `metatype` is annotated with the `@Catch()` decorator.
363
- */
364
- isExceptionFilter(metatype) {
365
- return !!Reflect.getMetadata(constants_1.CATCH_WATERMARK, metatype);
366
- }
367
- isForwardReference(module) {
368
- return module && !!module.forwardRef;
369
- }
370
- isRequestOrTransient(scope) {
371
- return scope === interfaces_1.Scope.REQUEST || scope === interfaces_1.Scope.TRANSIENT;
372
- }
373
- }
374
- exports.DependenciesScanner = DependenciesScanner;