@venok/core 1.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 (400) hide show
  1. package/application/config.d.ts +35 -0
  2. package/application/config.js +85 -0
  3. package/application/context.d.ts +198 -0
  4. package/application/context.js +325 -0
  5. package/application/factory.d.ts +43 -0
  6. package/application/factory.js +147 -0
  7. package/constants.d.ts +46 -0
  8. package/constants.js +53 -0
  9. package/context/creator.d.ts +9 -0
  10. package/context/creator.js +32 -0
  11. package/context/execution-host.d.ts +16 -0
  12. package/context/execution-host.js +30 -0
  13. package/context/external/creator.d.ts +63 -0
  14. package/context/external/creator.js +159 -0
  15. package/context/external/proxy.d.ts +5 -0
  16. package/context/external/proxy.js +19 -0
  17. package/decorators/apply.decorator.d.ts +10 -0
  18. package/decorators/apply.decorator.js +24 -0
  19. package/decorators/bind.decorator.d.ts +11 -0
  20. package/decorators/bind.decorator.js +20 -0
  21. package/decorators/catch.decorator.d.ts +17 -0
  22. package/decorators/catch.decorator.js +26 -0
  23. package/decorators/create-param.decorator.d.ts +29 -0
  24. package/decorators/create-param.decorator.js +51 -0
  25. package/decorators/dependencies.decorator.d.ts +6 -0
  26. package/decorators/dependencies.decorator.js +17 -0
  27. package/decorators/exception-filters.decorator.d.ts +21 -0
  28. package/decorators/exception-filters.decorator.js +41 -0
  29. package/decorators/global.decorator.d.ts +10 -0
  30. package/decorators/global.decorator.js +19 -0
  31. package/decorators/index.d.ts +15 -0
  32. package/decorators/index.js +31 -0
  33. package/decorators/inject.decorator.d.ts +26 -0
  34. package/decorators/inject.decorator.js +45 -0
  35. package/decorators/injectable.decorator.d.ts +40 -0
  36. package/decorators/injectable.decorator.js +51 -0
  37. package/decorators/module.decorator.d.ts +14 -0
  38. package/decorators/module.decorator.js +38 -0
  39. package/decorators/optional.decorator.d.ts +14 -0
  40. package/decorators/optional.decorator.js +30 -0
  41. package/decorators/set-metadata.decorator.d.ts +18 -0
  42. package/decorators/set-metadata.decorator.js +30 -0
  43. package/decorators/use-guards.decorator.d.ts +21 -0
  44. package/decorators/use-guards.decorator.js +40 -0
  45. package/decorators/use-interceptors.decorator.d.ts +21 -0
  46. package/decorators/use-interceptors.decorator.js +40 -0
  47. package/decorators/use-pipes.decorator.d.ts +21 -0
  48. package/decorators/use-pipes.decorator.js +39 -0
  49. package/discovery/meta-host-collection.d.ts +32 -0
  50. package/discovery/meta-host-collection.js +79 -0
  51. package/discovery/module.d.ts +5 -0
  52. package/discovery/module.js +24 -0
  53. package/discovery/service.d.ts +68 -0
  54. package/discovery/service.js +90 -0
  55. package/errors/exceptions/circular-dependency.exception.d.ts +4 -0
  56. package/errors/exceptions/circular-dependency.exception.js +11 -0
  57. package/errors/exceptions/index.d.ts +8 -0
  58. package/errors/exceptions/index.js +24 -0
  59. package/errors/exceptions/invalid-class-module.exception.d.ts +4 -0
  60. package/errors/exceptions/invalid-class-module.exception.js +11 -0
  61. package/errors/exceptions/invalid-class-scope.exception.d.ts +5 -0
  62. package/errors/exceptions/invalid-class-scope.exception.js +14 -0
  63. package/errors/exceptions/invalid-class.exception.d.ts +4 -0
  64. package/errors/exceptions/invalid-class.exception.js +11 -0
  65. package/errors/exceptions/invalid-exception-filter.exception.d.ts +4 -0
  66. package/errors/exceptions/invalid-exception-filter.exception.js +11 -0
  67. package/errors/exceptions/invalid-module.exception.d.ts +4 -0
  68. package/errors/exceptions/invalid-module.exception.js +11 -0
  69. package/errors/exceptions/runtime.exception.d.ts +4 -0
  70. package/errors/exceptions/runtime.exception.js +12 -0
  71. package/errors/exceptions/undefined-dependency.exception.d.ts +6 -0
  72. package/errors/exceptions/undefined-dependency.exception.js +11 -0
  73. package/errors/exceptions/undefined-forwardref.exception.d.ts +5 -0
  74. package/errors/exceptions/undefined-forwardref.exception.js +11 -0
  75. package/errors/exceptions/undefined-module.exception.d.ts +4 -0
  76. package/errors/exceptions/undefined-module.exception.js +11 -0
  77. package/errors/exceptions/unknown-dependencies.exception.d.ts +16 -0
  78. package/errors/exceptions/unknown-dependencies.exception.js +15 -0
  79. package/errors/exceptions/unknown-element.exception.d.ts +4 -0
  80. package/errors/exceptions/unknown-element.exception.js +12 -0
  81. package/errors/exceptions/unknown-export.exception.d.ts +4 -0
  82. package/errors/exceptions/unknown-export.exception.js +11 -0
  83. package/errors/exceptions/unknown-module.exception.d.ts +4 -0
  84. package/errors/exceptions/unknown-module.exception.js +10 -0
  85. package/errors/messages.d.ts +15 -0
  86. package/errors/messages.js +126 -0
  87. package/exceptions/external/filter-context.d.ts +10 -0
  88. package/exceptions/external/filter-context.js +37 -0
  89. package/exceptions/external/filter.d.ts +5 -0
  90. package/exceptions/external/filter.js +16 -0
  91. package/exceptions/external/handler.d.ts +9 -0
  92. package/exceptions/external/handler.js +31 -0
  93. package/exceptions/filter-context.d.ts +14 -0
  94. package/exceptions/filter-context.js +55 -0
  95. package/exceptions/select-exception-filter-metadata.d.ts +2 -0
  96. package/exceptions/select-exception-filter-metadata.js +6 -0
  97. package/exceptions/zone/handler.d.ts +5 -0
  98. package/exceptions/zone/handler.js +15 -0
  99. package/exceptions/zone/zone.d.ts +5 -0
  100. package/exceptions/zone/zone.js +32 -0
  101. package/guards/consumer.d.ts +9 -0
  102. package/guards/consumer.js +33 -0
  103. package/guards/context-creator.d.ts +17 -0
  104. package/guards/context-creator.js +69 -0
  105. package/guards/index.d.ts +2 -0
  106. package/guards/index.js +18 -0
  107. package/helpers/color.helper.d.ts +9 -0
  108. package/helpers/color.helper.js +14 -0
  109. package/helpers/context-id-factory.helper.d.ts +2 -0
  110. package/helpers/context-id-factory.helper.js +15 -0
  111. package/helpers/context.helper.d.ts +23 -0
  112. package/helpers/context.helper.js +49 -0
  113. package/helpers/extends-metadata.helper.d.ts +1 -0
  114. package/helpers/extends-metadata.helper.js +9 -0
  115. package/helpers/flatten.helper.d.ts +1 -0
  116. package/helpers/flatten.helper.js +9 -0
  117. package/helpers/messages.helper.d.ts +2 -0
  118. package/helpers/messages.helper.js +7 -0
  119. package/helpers/noop.helper.d.ts +1 -0
  120. package/helpers/noop.helper.js +5 -0
  121. package/helpers/random-string-generator.helper.d.ts +1 -0
  122. package/helpers/random-string-generator.helper.js +6 -0
  123. package/helpers/rethrow.helper.d.ts +1 -0
  124. package/helpers/rethrow.helper.js +7 -0
  125. package/helpers/shared.helper.d.ts +10 -0
  126. package/helpers/shared.helper.js +33 -0
  127. package/helpers/silent.helper.d.ts +10 -0
  128. package/helpers/silent.helper.js +18 -0
  129. package/helpers/transient.helper.d.ts +12 -0
  130. package/helpers/transient.helper.js +26 -0
  131. package/helpers/uuid.helper.d.ts +15 -0
  132. package/helpers/uuid.helper.js +54 -0
  133. package/helpers/validate-each.helper.d.ts +8 -0
  134. package/helpers/validate-each.helper.js +25 -0
  135. package/hooks/before-app-shutdown.hook.d.ts +9 -0
  136. package/hooks/before-app-shutdown.hook.js +45 -0
  137. package/hooks/index.d.ts +5 -0
  138. package/hooks/index.js +21 -0
  139. package/hooks/on-app-bootstrap.hook.d.ts +8 -0
  140. package/hooks/on-app-bootstrap.hook.js +45 -0
  141. package/hooks/on-app-shutdown.hook.d.ts +9 -0
  142. package/hooks/on-app-shutdown.hook.js +46 -0
  143. package/hooks/on-module-destroy.hook.d.ts +8 -0
  144. package/hooks/on-module-destroy.hook.js +45 -0
  145. package/hooks/on-module-init.hook.d.ts +8 -0
  146. package/hooks/on-module-init.hook.js +45 -0
  147. package/index.d.ts +10 -0
  148. package/index.js +32 -0
  149. package/injector/constants.d.ts +2 -0
  150. package/injector/constants.js +7 -0
  151. package/injector/container.d.ts +61 -0
  152. package/injector/container.js +194 -0
  153. package/injector/helpers/class-scope.helper.d.ts +2 -0
  154. package/injector/helpers/class-scope.helper.js +9 -0
  155. package/injector/helpers/classifier.helper.d.ts +4 -0
  156. package/injector/helpers/classifier.helper.js +17 -0
  157. package/injector/helpers/is-durable.helper.d.ts +2 -0
  158. package/injector/helpers/is-durable.helper.js +9 -0
  159. package/injector/index.d.ts +5 -0
  160. package/injector/index.js +20 -0
  161. package/injector/injector.d.ts +87 -0
  162. package/injector/injector.js +452 -0
  163. package/injector/instance/links-host.d.ts +22 -0
  164. package/injector/instance/links-host.js +50 -0
  165. package/injector/instance/loader.d.ts +21 -0
  166. package/injector/instance/loader.js +73 -0
  167. package/injector/instance/resolver.d.ts +16 -0
  168. package/injector/instance/resolver.js +43 -0
  169. package/injector/instance/wrapper.d.ts +90 -0
  170. package/injector/instance/wrapper.js +272 -0
  171. package/injector/internal-core-module/core-providers.d.ts +4 -0
  172. package/injector/internal-core-module/core-providers.js +21 -0
  173. package/injector/internal-core-module/internal-core-module-factory.d.ts +8 -0
  174. package/injector/internal-core-module/internal-core-module-factory.js +42 -0
  175. package/injector/internal-core-module/internal-core-module.d.ts +4 -0
  176. package/injector/internal-core-module/internal-core-module.js +31 -0
  177. package/injector/module/compiler.d.ts +19 -0
  178. package/injector/module/compiler.js +27 -0
  179. package/injector/module/container.d.ts +6 -0
  180. package/injector/module/container.js +24 -0
  181. package/injector/module/lazy/loader.d.ts +21 -0
  182. package/injector/module/lazy/loader.js +49 -0
  183. package/injector/module/lazy/options.d.ts +6 -0
  184. package/injector/module/lazy/options.js +2 -0
  185. package/injector/module/module.d.ts +74 -0
  186. package/injector/module/module.js +383 -0
  187. package/injector/module/ref.d.ts +106 -0
  188. package/injector/module/ref.js +62 -0
  189. package/injector/module/token-factory.d.ts +13 -0
  190. package/injector/module/token-factory.js +71 -0
  191. package/injector/settlement-signal.d.ts +37 -0
  192. package/injector/settlement-signal.js +55 -0
  193. package/inspector/graph-inspector.d.ts +26 -0
  194. package/inspector/graph-inspector.js +163 -0
  195. package/inspector/initialize-on-preview.allowlist.d.ts +6 -0
  196. package/inspector/initialize-on-preview.allowlist.js +13 -0
  197. package/inspector/interfaces/edge.interface.d.ts +28 -0
  198. package/inspector/interfaces/edge.interface.js +2 -0
  199. package/inspector/interfaces/enhancer-metadata-cache-entry.interface.d.ts +12 -0
  200. package/inspector/interfaces/enhancer-metadata-cache-entry.interface.js +2 -0
  201. package/inspector/interfaces/entrypoint.interface.d.ts +10 -0
  202. package/inspector/interfaces/entrypoint.interface.js +2 -0
  203. package/inspector/interfaces/extras.interface.d.ts +18 -0
  204. package/inspector/interfaces/extras.interface.js +2 -0
  205. package/inspector/interfaces/node.interface.d.ts +49 -0
  206. package/inspector/interfaces/node.interface.js +2 -0
  207. package/inspector/interfaces/serialized-graph-json.interface.d.ts +14 -0
  208. package/inspector/interfaces/serialized-graph-json.interface.js +2 -0
  209. package/inspector/interfaces/serialized-graph-metadata.interface.d.ts +10 -0
  210. package/inspector/interfaces/serialized-graph-metadata.interface.js +2 -0
  211. package/inspector/noop-graph-inspector.d.ts +2 -0
  212. package/inspector/noop-graph-inspector.js +8 -0
  213. package/inspector/partial-graph.host.d.ts +7 -0
  214. package/inspector/partial-graph.host.js +15 -0
  215. package/inspector/serialized-graph.d.ts +52 -0
  216. package/inspector/serialized-graph.js +121 -0
  217. package/interceptors/consumer.d.ts +9 -0
  218. package/interceptors/consumer.js +37 -0
  219. package/interceptors/context-creator.d.ts +17 -0
  220. package/interceptors/context-creator.js +67 -0
  221. package/interceptors/index.d.ts +2 -0
  222. package/interceptors/index.js +18 -0
  223. package/interfaces/abstract.interface.d.ts +3 -0
  224. package/interfaces/abstract.interface.js +2 -0
  225. package/interfaces/application/context-options.interface.d.ts +41 -0
  226. package/interfaces/application/context-options.interface.js +9 -0
  227. package/interfaces/application/context.interface.d.ts +162 -0
  228. package/interfaces/application/context.interface.js +2 -0
  229. package/interfaces/application/index.d.ts +1 -0
  230. package/interfaces/application/index.js +17 -0
  231. package/interfaces/context/arguments-host.interface.d.ts +22 -0
  232. package/interfaces/context/arguments-host.interface.js +2 -0
  233. package/interfaces/context/execution.interface.d.ts +18 -0
  234. package/interfaces/context/execution.interface.js +2 -0
  235. package/interfaces/features/exception-filter.interface.d.ts +21 -0
  236. package/interfaces/features/exception-filter.interface.js +2 -0
  237. package/interfaces/features/guards.interface.d.ts +20 -0
  238. package/interfaces/features/guards.interface.js +2 -0
  239. package/interfaces/features/interceptor.interface.d.ts +30 -0
  240. package/interfaces/features/interceptor.interface.js +2 -0
  241. package/interfaces/features/pipes.interface.d.ts +37 -0
  242. package/interfaces/features/pipes.interface.js +2 -0
  243. package/interfaces/helper.interface.d.ts +3 -0
  244. package/interfaces/helper.interface.js +2 -0
  245. package/interfaces/hooks/before-application-shutdown.interface.d.ts +3 -0
  246. package/interfaces/hooks/before-application-shutdown.interface.js +2 -0
  247. package/interfaces/hooks/index.d.ts +5 -0
  248. package/interfaces/hooks/index.js +21 -0
  249. package/interfaces/hooks/on-application-bootstrap.interface.d.ts +9 -0
  250. package/interfaces/hooks/on-application-bootstrap.interface.js +2 -0
  251. package/interfaces/hooks/on-application-shutdown.interface.d.ts +9 -0
  252. package/interfaces/hooks/on-application-shutdown.interface.js +2 -0
  253. package/interfaces/hooks/on-destroy.interface.d.ts +10 -0
  254. package/interfaces/hooks/on-destroy.interface.js +2 -0
  255. package/interfaces/hooks/on-init.interface.d.ts +8 -0
  256. package/interfaces/hooks/on-init.interface.js +2 -0
  257. package/interfaces/index.d.ts +6 -0
  258. package/interfaces/index.js +22 -0
  259. package/interfaces/injectable.interface.d.ts +1 -0
  260. package/interfaces/injectable.interface.js +2 -0
  261. package/interfaces/modules/configurable/async-options.interface.d.ts +42 -0
  262. package/interfaces/modules/configurable/async-options.interface.js +2 -0
  263. package/interfaces/modules/configurable/cls.interface.d.ts +13 -0
  264. package/interfaces/modules/configurable/cls.interface.js +2 -0
  265. package/interfaces/modules/configurable/host.interface.d.ts +62 -0
  266. package/interfaces/modules/configurable/host.interface.js +2 -0
  267. package/interfaces/modules/configurable/index.d.ts +3 -0
  268. package/interfaces/modules/configurable/index.js +19 -0
  269. package/interfaces/modules/definition.interface.d.ts +4 -0
  270. package/interfaces/modules/definition.interface.js +2 -0
  271. package/interfaces/modules/dynamic-module.interface.d.ts +23 -0
  272. package/interfaces/modules/dynamic-module.interface.js +2 -0
  273. package/interfaces/modules/forward-reference.interface.d.ts +3 -0
  274. package/interfaces/modules/forward-reference.interface.js +2 -0
  275. package/interfaces/modules/index.d.ts +9 -0
  276. package/interfaces/modules/index.js +25 -0
  277. package/interfaces/modules/injection-token.interface.d.ts +5 -0
  278. package/interfaces/modules/injection-token.interface.js +2 -0
  279. package/interfaces/modules/introspection-result.interface.d.ts +10 -0
  280. package/interfaces/modules/introspection-result.interface.js +2 -0
  281. package/interfaces/modules/module-metadata.interface.d.ts +24 -0
  282. package/interfaces/modules/module-metadata.interface.js +2 -0
  283. package/interfaces/modules/module.interface.d.ts +2 -0
  284. package/interfaces/modules/module.interface.js +2 -0
  285. package/interfaces/modules/optional-factory-dependency.interface.d.ts +8 -0
  286. package/interfaces/modules/optional-factory-dependency.interface.js +2 -0
  287. package/interfaces/modules/override.interface.d.ts +5 -0
  288. package/interfaces/modules/override.interface.js +2 -0
  289. package/interfaces/modules/provider.interface.d.ts +142 -0
  290. package/interfaces/modules/provider.interface.js +2 -0
  291. package/interfaces/scope.interface.d.ts +35 -0
  292. package/interfaces/scope.interface.js +23 -0
  293. package/interfaces/type.interface.d.ts +3 -0
  294. package/interfaces/type.interface.js +2 -0
  295. package/metadata-scanner.d.ts +4 -0
  296. package/metadata-scanner.js +34 -0
  297. package/module/configurable-module.builder.d.ts +93 -0
  298. package/module/configurable-module.builder.js +204 -0
  299. package/module/constants.d.ts +4 -0
  300. package/module/constants.js +7 -0
  301. package/module/helpers/generate-options-injection-token.helper.d.ts +1 -0
  302. package/module/helpers/generate-options-injection-token.helper.js +9 -0
  303. package/module/helpers/get-injection-providers.helper.d.ts +8 -0
  304. package/module/helpers/get-injection-providers.helper.js +36 -0
  305. package/module/helpers/index.d.ts +2 -0
  306. package/module/helpers/index.js +18 -0
  307. package/module/index.d.ts +2 -0
  308. package/module/index.js +18 -0
  309. package/package.json +35 -0
  310. package/pipes/consumer.d.ts +9 -0
  311. package/pipes/consumer.js +15 -0
  312. package/pipes/context-creator.d.ts +18 -0
  313. package/pipes/context-creator.js +70 -0
  314. package/pipes/index.d.ts +2 -0
  315. package/pipes/index.js +18 -0
  316. package/scanner.d.ts +81 -0
  317. package/scanner.js +374 -0
  318. package/services/console.service.d.ts +86 -0
  319. package/services/console.service.js +233 -0
  320. package/services/index.d.ts +1 -0
  321. package/services/index.js +17 -0
  322. package/services/logger.service.d.ts +157 -0
  323. package/services/logger.service.js +269 -0
  324. package/services/reflector.service.d.ts +110 -0
  325. package/services/reflector.service.js +87 -0
  326. package/test/context/execution-host.spec.d.ts +1 -0
  327. package/test/context/execution-host.spec.js +31 -0
  328. package/test/context/external/creator.spec.d.ts +1 -0
  329. package/test/context/external/creator.spec.js +149 -0
  330. package/test/context/external/proxy.spec.d.ts +1 -0
  331. package/test/context/external/proxy.spec.js +45 -0
  332. package/test/exceptions/external/handler.spec.d.ts +1 -0
  333. package/test/exceptions/external/handler.spec.js +89 -0
  334. package/test/exceptions/filter-context.spec.d.ts +2 -0
  335. package/test/exceptions/filter-context.spec.js +91 -0
  336. package/test/exceptions/messages.spec.d.ts +0 -0
  337. package/test/exceptions/messages.spec.js +201 -0
  338. package/test/exceptions/zona/handler.spec.d.ts +1 -0
  339. package/test/exceptions/zona/handler.spec.js +51 -0
  340. package/test/exceptions/zona/zone.spec.d.ts +1 -0
  341. package/test/exceptions/zona/zone.spec.js +66 -0
  342. package/test/guards/consumer.spec.d.ts +1 -0
  343. package/test/guards/consumer.spec.js +47 -0
  344. package/test/guards/context-creator.spec.d.ts +1 -0
  345. package/test/guards/context-creator.spec.js +138 -0
  346. package/test/helpers/context-id-factory.spec.d.ts +1 -0
  347. package/test/helpers/context-id-factory.spec.js +9 -0
  348. package/test/helpers/shared.spec.d.ts +1 -0
  349. package/test/helpers/shared.spec.js +122 -0
  350. package/test/hooks/before-app-shutdown.hook.spec.d.ts +1 -0
  351. package/test/hooks/before-app-shutdown.hook.spec.js +44 -0
  352. package/test/hooks/on-app-bootstrap.hook.spec.d.ts +1 -0
  353. package/test/hooks/on-app-bootstrap.hook.spec.js +43 -0
  354. package/test/hooks/on-app-shutdown.hook.spec.d.ts +1 -0
  355. package/test/hooks/on-app-shutdown.hook.spec.js +43 -0
  356. package/test/hooks/on-module-destroy.hook.spec.d.ts +1 -0
  357. package/test/hooks/on-module-destroy.hook.spec.js +43 -0
  358. package/test/hooks/on-module-init.hook.spec.d.ts +1 -0
  359. package/test/hooks/on-module-init.hook.spec.js +43 -0
  360. package/test/injector/compiler.spec.d.ts +1 -0
  361. package/test/injector/compiler.spec.js +42 -0
  362. package/test/injector/container.spec.d.ts +1 -0
  363. package/test/injector/container.spec.js +203 -0
  364. package/test/injector/helpers/classifier.spec.d.ts +1 -0
  365. package/test/injector/helpers/classifier.spec.js +102 -0
  366. package/test/injector/injector.spec.d.ts +1 -0
  367. package/test/injector/injector.spec.js +678 -0
  368. package/test/injector/instance/loader.spec.d.ts +1 -0
  369. package/test/injector/instance/loader.spec.js +108 -0
  370. package/test/injector/instance/wrapper.spec.d.ts +1 -0
  371. package/test/injector/instance/wrapper.spec.js +772 -0
  372. package/test/injector/internal-core-module/internal-core-module-factory.spec.d.ts +1 -0
  373. package/test/injector/internal-core-module/internal-core-module-factory.spec.js +27 -0
  374. package/test/injector/module/lazy/loader.spec.d.ts +1 -0
  375. package/test/injector/module/lazy/loader.spec.js +71 -0
  376. package/test/injector/module/module.spec.d.ts +1 -0
  377. package/test/injector/module/module.spec.js +410 -0
  378. package/test/injector/module/token-factory.spec.d.ts +1 -0
  379. package/test/injector/module/token-factory.spec.js +84 -0
  380. package/test/interceptors/consumer.spec.d.ts +1 -0
  381. package/test/interceptors/consumer.spec.js +136 -0
  382. package/test/interceptors/context-creator.spec.d.ts +1 -0
  383. package/test/interceptors/context-creator.spec.js +139 -0
  384. package/test/metadata-scanner.spec.d.ts +1 -0
  385. package/test/metadata-scanner.spec.js +41 -0
  386. package/test/module/configurable-module.builder.spec.d.ts +1 -0
  387. package/test/module/configurable-module.builder.spec.js +102 -0
  388. package/test/module/helpers/get-injection-providers.helper.spec.d.ts +1 -0
  389. package/test/module/helpers/get-injection-providers.helper.spec.js +49 -0
  390. package/test/pipes/consumer.spec.d.ts +1 -0
  391. package/test/pipes/consumer.spec.js +42 -0
  392. package/test/pipes/context-creator.spec.d.ts +1 -0
  393. package/test/pipes/context-creator.spec.js +108 -0
  394. package/test/scanner.spec.d.ts +1 -0
  395. package/test/scanner.spec.js +620 -0
  396. package/test/services/logger.service.spec.d.ts +1 -0
  397. package/test/services/logger.service.spec.js +487 -0
  398. package/test/services/reflector.service.spec.d.ts +1 -0
  399. package/test/services/reflector.service.spec.js +105 -0
  400. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.callModuleBootstrapHook = void 0;
4
+ const shared_helper_1 = require("@venok/core/helpers/shared.helper");
5
+ const transient_helper_1 = require("@venok/core/helpers/transient.helper");
6
+ /**
7
+ * Checks if the given instance has the `onApplicationBootstrap` function
8
+ *
9
+ * @param instance The instance which should be checked
10
+ */
11
+ function hasOnAppBootstrapHook(instance) {
12
+ return (0, shared_helper_1.isFunction)(instance.onApplicationBootstrap);
13
+ }
14
+ /**
15
+ * Calls the given instances
16
+ */
17
+ function callOperator(instances) {
18
+ return instances
19
+ .filter((instance) => !(0, shared_helper_1.isNull)(instance))
20
+ .filter(hasOnAppBootstrapHook)
21
+ .map(async (instance) => instance.onApplicationBootstrap());
22
+ }
23
+ /**
24
+ * Calls the `onApplicationBootstrap` function on the module and its children
25
+ * (providers / controllers).
26
+ *
27
+ * @param module The module which will be initialized
28
+ */
29
+ async function callModuleBootstrapHook(module) {
30
+ const providers = module.getNonAliasProviders();
31
+ // Module (class) instance is the first element of the providers array
32
+ // Lifecycle hook has to be called once all classes are properly initialized
33
+ const [_, moduleClassHost] = providers.shift();
34
+ const instances = [...providers, ...module.injectables];
35
+ const nonTransientInstances = (0, transient_helper_1.getNonTransientInstances)(instances);
36
+ await Promise.all(callOperator(nonTransientInstances));
37
+ const transientInstances = (0, transient_helper_1.getTransientInstances)(instances);
38
+ await Promise.all(callOperator(transientInstances));
39
+ // Call the instance itself
40
+ const moduleClassInstance = moduleClassHost.instance;
41
+ if (moduleClassInstance && hasOnAppBootstrapHook(moduleClassInstance) && moduleClassHost.isDependencyTreeStatic()) {
42
+ await moduleClassInstance.onApplicationBootstrap();
43
+ }
44
+ }
45
+ exports.callModuleBootstrapHook = callModuleBootstrapHook;
@@ -0,0 +1,9 @@
1
+ import { Module } from "@venok/core/injector/module/module";
2
+ /**
3
+ * Calls the `onApplicationShutdown` function on the module and its children
4
+ * (providers / controllers).
5
+ *
6
+ * @param module The module which will be initialized
7
+ * @param signal
8
+ */
9
+ export declare function callAppShutdownHook(module: Module, signal?: string): Promise<any>;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.callAppShutdownHook = void 0;
4
+ const transient_helper_1 = require("@venok/core/helpers/transient.helper");
5
+ const shared_helper_1 = require("@venok/core/helpers/shared.helper");
6
+ /**
7
+ * Checks if the given instance has the `onApplicationShutdown` function
8
+ *
9
+ * @param instance The instance which should be checked
10
+ */
11
+ function hasOnAppShutdownHook(instance) {
12
+ return (0, shared_helper_1.isFunction)(instance.onApplicationShutdown);
13
+ }
14
+ /**
15
+ * Calls the given instances
16
+ */
17
+ function callOperator(instances, signal) {
18
+ return instances
19
+ .filter((instance) => !(0, shared_helper_1.isNull)(instance))
20
+ .filter(hasOnAppShutdownHook)
21
+ .map(async (instance) => instance.onApplicationShutdown(signal));
22
+ }
23
+ /**
24
+ * Calls the `onApplicationShutdown` function on the module and its children
25
+ * (providers / controllers).
26
+ *
27
+ * @param module The module which will be initialized
28
+ * @param signal
29
+ */
30
+ async function callAppShutdownHook(module, signal) {
31
+ const providers = module.getNonAliasProviders();
32
+ // Module (class) instance is the first element of the providers array
33
+ // Lifecycle hook has to be called once all classes are properly initialized
34
+ const [_, moduleClassHost] = providers.shift();
35
+ const instances = [...providers, ...module.injectables];
36
+ const nonTransientInstances = (0, transient_helper_1.getNonTransientInstances)(instances);
37
+ await Promise.all(callOperator(nonTransientInstances, signal));
38
+ const transientInstances = (0, transient_helper_1.getTransientInstances)(instances);
39
+ await Promise.all(callOperator(transientInstances, signal));
40
+ // Call the instance itself
41
+ const moduleClassInstance = moduleClassHost.instance;
42
+ if (moduleClassInstance && hasOnAppShutdownHook(moduleClassInstance) && moduleClassHost.isDependencyTreeStatic()) {
43
+ await moduleClassInstance.onApplicationShutdown(signal);
44
+ }
45
+ }
46
+ exports.callAppShutdownHook = callAppShutdownHook;
@@ -0,0 +1,8 @@
1
+ import { Module } from "@venok/core/injector/module/module";
2
+ /**
3
+ * Calls the `onModuleDestroy` function on the module and its children
4
+ * (providers / controllers).
5
+ *
6
+ * @param module The module which will be initialized
7
+ */
8
+ export declare function callModuleDestroyHook(module: Module): Promise<any>;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.callModuleDestroyHook = void 0;
4
+ const transient_helper_1 = require("@venok/core/helpers/transient.helper");
5
+ const shared_helper_1 = require("@venok/core/helpers/shared.helper");
6
+ /**
7
+ * Returns true or false if the given instance has a `onModuleDestroy` function
8
+ *
9
+ * @param instance The instance which should be checked
10
+ */
11
+ function hasOnModuleDestroyHook(instance) {
12
+ return (0, shared_helper_1.isFunction)(instance.onModuleDestroy);
13
+ }
14
+ /**
15
+ * Calls the given instances onModuleDestroy hook
16
+ */
17
+ function callOperator(instances) {
18
+ return instances
19
+ .filter((instance) => !(0, shared_helper_1.isNull)(instance))
20
+ .filter(hasOnModuleDestroyHook)
21
+ .map(async (instance) => instance.onModuleDestroy());
22
+ }
23
+ /**
24
+ * Calls the `onModuleDestroy` function on the module and its children
25
+ * (providers / controllers).
26
+ *
27
+ * @param module The module which will be initialized
28
+ */
29
+ async function callModuleDestroyHook(module) {
30
+ const providers = module.getNonAliasProviders();
31
+ // Module (class) instance is the first element of the providers array
32
+ // Lifecycle hook has to be called once all classes are properly destroyed
33
+ const [_, moduleClassHost] = providers.shift();
34
+ const instances = [...providers, ...module.injectables];
35
+ const nonTransientInstances = (0, transient_helper_1.getNonTransientInstances)(instances);
36
+ await Promise.all(callOperator(nonTransientInstances));
37
+ const transientInstances = (0, transient_helper_1.getTransientInstances)(instances);
38
+ await Promise.all(callOperator(transientInstances));
39
+ // Call the module instance itself
40
+ const moduleClassInstance = moduleClassHost.instance;
41
+ if (moduleClassInstance && hasOnModuleDestroyHook(moduleClassInstance) && moduleClassHost.isDependencyTreeStatic()) {
42
+ await moduleClassInstance.onModuleDestroy();
43
+ }
44
+ }
45
+ exports.callModuleDestroyHook = callModuleDestroyHook;
@@ -0,0 +1,8 @@
1
+ import { Module } from "@venok/core/injector/module/module";
2
+ /**
3
+ * Calls the `onModuleInit` function on the module and its children
4
+ * (providers / controllers).
5
+ *
6
+ * @param module The module which will be initialized
7
+ */
8
+ export declare function callModuleInitHook(module: Module): Promise<void>;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.callModuleInitHook = void 0;
4
+ const transient_helper_1 = require("@venok/core/helpers/transient.helper");
5
+ const shared_helper_1 = require("@venok/core/helpers/shared.helper");
6
+ /**
7
+ * Returns true or false if the given instance has a `onModuleInit` function
8
+ *
9
+ * @param instance The instance which should be checked
10
+ */
11
+ function hasOnModuleInitHook(instance) {
12
+ return (0, shared_helper_1.isFunction)(instance.onModuleInit);
13
+ }
14
+ /**
15
+ * Calls the given instances
16
+ */
17
+ function callOperator(instances) {
18
+ return instances
19
+ .filter((instance) => !(0, shared_helper_1.isNull)(instance))
20
+ .filter(hasOnModuleInitHook)
21
+ .map(async (instance) => instance.onModuleInit());
22
+ }
23
+ /**
24
+ * Calls the `onModuleInit` function on the module and its children
25
+ * (providers / controllers).
26
+ *
27
+ * @param module The module which will be initialized
28
+ */
29
+ async function callModuleInitHook(module) {
30
+ const providers = module.getNonAliasProviders();
31
+ // Module (class) instance is the first element of the providers array
32
+ // Lifecycle hook has to be called once all classes are properly initialized
33
+ const [_, moduleClassHost] = providers.shift();
34
+ const instances = [...providers, ...module.injectables];
35
+ const nonTransientInstances = (0, transient_helper_1.getNonTransientInstances)(instances);
36
+ await Promise.all(callOperator(nonTransientInstances));
37
+ const transientInstances = (0, transient_helper_1.getTransientInstances)(instances);
38
+ await Promise.all(callOperator(transientInstances));
39
+ // Call the instance itself
40
+ const moduleClassInstance = moduleClassHost.instance;
41
+ if (moduleClassInstance && hasOnModuleInitHook(moduleClassInstance) && moduleClassHost.isDependencyTreeStatic()) {
42
+ await moduleClassInstance.onModuleInit();
43
+ }
44
+ }
45
+ exports.callModuleInitHook = callModuleInitHook;
package/index.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ import "reflect-metadata";
2
+ export { VenokFactory } from "./application/factory";
3
+ export * from "./application/context";
4
+ export * from "./application/config";
5
+ export * from "./interfaces";
6
+ export * from "./decorators";
7
+ export * from "./injector";
8
+ export * from "./services";
9
+ export { APP_FILTER, APP_GUARD, APP_INTERCEPTOR, APP_PIPE } from "./constants";
10
+ export * from "./metadata-scanner";
package/index.js ADDED
@@ -0,0 +1,32 @@
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
+ exports.APP_PIPE = exports.APP_INTERCEPTOR = exports.APP_GUARD = exports.APP_FILTER = exports.VenokFactory = void 0;
18
+ require("reflect-metadata");
19
+ var factory_1 = require("./application/factory");
20
+ Object.defineProperty(exports, "VenokFactory", { enumerable: true, get: function () { return factory_1.VenokFactory; } });
21
+ __exportStar(require("./application/context"), exports);
22
+ __exportStar(require("./application/config"), exports);
23
+ __exportStar(require("./interfaces"), exports);
24
+ __exportStar(require("./decorators"), exports);
25
+ __exportStar(require("./injector"), exports);
26
+ __exportStar(require("./services"), exports);
27
+ var constants_1 = require("./constants");
28
+ Object.defineProperty(exports, "APP_FILTER", { enumerable: true, get: function () { return constants_1.APP_FILTER; } });
29
+ Object.defineProperty(exports, "APP_GUARD", { enumerable: true, get: function () { return constants_1.APP_GUARD; } });
30
+ Object.defineProperty(exports, "APP_INTERCEPTOR", { enumerable: true, get: function () { return constants_1.APP_INTERCEPTOR; } });
31
+ Object.defineProperty(exports, "APP_PIPE", { enumerable: true, get: function () { return constants_1.APP_PIPE; } });
32
+ __exportStar(require("./metadata-scanner"), exports);
@@ -0,0 +1,2 @@
1
+ import { ContextId } from "@venok/core/injector/instance/wrapper";
2
+ export declare const STATIC_CONTEXT: ContextId;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.STATIC_CONTEXT = void 0;
4
+ const STATIC_CONTEXT_ID = 1;
5
+ exports.STATIC_CONTEXT = Object.freeze({
6
+ id: STATIC_CONTEXT_ID,
7
+ });
@@ -0,0 +1,61 @@
1
+ import { DynamicModule, Provider } from "@venok/core/interfaces/modules";
2
+ import { Type } from "@venok/core/interfaces";
3
+ import { Module } from "@venok/core/injector/module/module";
4
+ import { TokenFactory } from "@venok/core/injector/module/token-factory";
5
+ import { ModuleCompiler } from "@venok/core/injector/module/compiler";
6
+ import { ModulesContainer } from "@venok/core/injector/module/container";
7
+ import { EnhancerSubtype } from "@venok/core/constants";
8
+ import { ContextId } from "@venok/core/injector/instance/wrapper";
9
+ import { ApplicationConfig } from "@venok/core/application/config";
10
+ import { SerializedGraph } from "@venok/core/inspector/serialized-graph";
11
+ import { Injectable } from "@venok/core/interfaces/injectable.interface";
12
+ type ModuleMetatype = Type<any> | DynamicModule | Promise<DynamicModule>;
13
+ type ModuleScope = Type<any>[];
14
+ export declare class VenokContainer {
15
+ private readonly _applicationConfig;
16
+ private readonly globalModules;
17
+ private readonly moduleTokenFactory;
18
+ private readonly moduleCompiler;
19
+ private readonly modules;
20
+ private readonly dynamicModulesMetadata;
21
+ private readonly _serializedGraph;
22
+ private internalCoreModule;
23
+ constructor(_applicationConfig?: ApplicationConfig | undefined);
24
+ get serializedGraph(): SerializedGraph;
25
+ get applicationConfig(): ApplicationConfig | undefined;
26
+ addModule(metatype: ModuleMetatype | undefined, scope: ModuleScope): Promise<{
27
+ moduleRef: Module;
28
+ inserted: boolean;
29
+ } | undefined>;
30
+ replaceModule(metatypeToReplace: ModuleMetatype, newMetatype: ModuleMetatype, scope: ModuleScope): Promise<{
31
+ moduleRef: Module;
32
+ inserted: boolean;
33
+ } | undefined>;
34
+ private setModule;
35
+ addDynamicMetadata(token: string, dynamicModuleMetadata: Partial<DynamicModule> | undefined, scope: Type<any>[]): Promise<void>;
36
+ addDynamicModules(modules: any[] | undefined, scope: Type<any>[]): Promise<void>;
37
+ isGlobalModule(metatype: Type<any>, dynamicMetadata?: Partial<DynamicModule>): boolean;
38
+ addGlobalModule(module: Module): void;
39
+ getModules(): ModulesContainer;
40
+ getModuleCompiler(): ModuleCompiler;
41
+ getModuleByKey(moduleKey: string): Module;
42
+ getInternalCoreModuleRef(): Module | undefined;
43
+ addImport(relatedModule: Type<any> | DynamicModule, token: string): Promise<void>;
44
+ addProvider(provider: Provider, token: string, enhancerSubtype?: EnhancerSubtype): string | symbol | Function;
45
+ addInjectable(injectable: Provider, token: string, enhancerSubtype: EnhancerSubtype, host?: Type<Injectable>): string | symbol | Function | import("@venok/core/injector/instance/wrapper").InstanceWrapper<unknown>;
46
+ addExportedProvider(provider: Type<any>, token: string): void;
47
+ clear(): void;
48
+ replace(toReplace: any, options: any & {
49
+ scope: any[] | null;
50
+ }): void;
51
+ bindGlobalScope(): void;
52
+ bindGlobalsToImports(moduleRef: Module): void;
53
+ bindGlobalModuleToModule(target: Module, globalModule: Module): void;
54
+ getDynamicMetadataByToken(token: string): Partial<DynamicModule>;
55
+ getDynamicMetadataByToken<K extends Exclude<keyof DynamicModule, "global" | "module">>(token: string, metadataKey: K): DynamicModule[K];
56
+ registerCoreModuleRef(moduleRef: Module): void;
57
+ getModuleTokenFactory(): TokenFactory;
58
+ registerRequestProvider<T = any>(request: T, contextId: ContextId): void;
59
+ private shouldInitOnPreview;
60
+ }
61
+ export {};
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VenokContainer = void 0;
4
+ const module_1 = require("@venok/core/injector/module/module");
5
+ const token_factory_1 = require("@venok/core/injector/module/token-factory");
6
+ const compiler_1 = require("@venok/core/injector/module/compiler");
7
+ const container_1 = require("@venok/core/injector/module/container");
8
+ const exceptions_1 = require("@venok/core/errors/exceptions");
9
+ const constants_1 = require("@venok/core/constants");
10
+ const initialize_on_preview_allowlist_1 = require("@venok/core/inspector/initialize-on-preview.allowlist");
11
+ const meta_host_collection_1 = require("@venok/core/discovery/meta-host-collection");
12
+ const serialized_graph_1 = require("@venok/core/inspector/serialized-graph");
13
+ const internal_core_module_1 = require("@venok/core/injector/internal-core-module/internal-core-module");
14
+ class VenokContainer {
15
+ constructor(_applicationConfig = undefined) {
16
+ this._applicationConfig = _applicationConfig;
17
+ this.globalModules = new Set();
18
+ this.moduleTokenFactory = new token_factory_1.TokenFactory();
19
+ this.moduleCompiler = new compiler_1.ModuleCompiler(this.moduleTokenFactory);
20
+ this.modules = new container_1.ModulesContainer();
21
+ this.dynamicModulesMetadata = new Map();
22
+ this._serializedGraph = new serialized_graph_1.SerializedGraph();
23
+ }
24
+ get serializedGraph() {
25
+ return this._serializedGraph;
26
+ }
27
+ get applicationConfig() {
28
+ return this._applicationConfig;
29
+ }
30
+ async addModule(metatype, scope) {
31
+ // In DependenciesScanner#scanForModules we already check for undefined or invalid modules
32
+ // We still need to catch the edge-case of `forwardRef(() => undefined)`
33
+ if (!metatype) {
34
+ throw new exceptions_1.UndefinedForwardRefException(scope);
35
+ }
36
+ const { type, dynamicMetadata, token } = await this.moduleCompiler.compile(metatype);
37
+ if (this.modules.has(token)) {
38
+ return {
39
+ moduleRef: this.modules.get(token),
40
+ inserted: true,
41
+ };
42
+ }
43
+ return {
44
+ moduleRef: (await this.setModule({
45
+ token,
46
+ type,
47
+ dynamicMetadata,
48
+ }, scope)),
49
+ inserted: true,
50
+ };
51
+ }
52
+ async replaceModule(metatypeToReplace, newMetatype, scope) {
53
+ // In DependenciesScanner#scanForModules we already check for undefined or invalid modules
54
+ // We still need to catch the edge-case of `forwardRef(() => undefined)`
55
+ if (!metatypeToReplace || !newMetatype) {
56
+ throw new exceptions_1.UndefinedForwardRefException(scope);
57
+ }
58
+ const { token } = await this.moduleCompiler.compile(metatypeToReplace);
59
+ const { type, dynamicMetadata } = await this.moduleCompiler.compile(newMetatype);
60
+ return {
61
+ moduleRef: (await this.setModule({
62
+ token,
63
+ type,
64
+ dynamicMetadata,
65
+ }, scope)),
66
+ inserted: false,
67
+ };
68
+ }
69
+ async setModule({ token, dynamicMetadata, type }, scope) {
70
+ const moduleRef = new module_1.Module(type, this);
71
+ moduleRef.token = token;
72
+ moduleRef.initOnPreview = this.shouldInitOnPreview(type);
73
+ this.modules.set(token, moduleRef);
74
+ // Maybe Error
75
+ const updatedScope = scope.concat(type);
76
+ await this.addDynamicMetadata(token, dynamicMetadata, updatedScope);
77
+ if (this.isGlobalModule(type, dynamicMetadata)) {
78
+ moduleRef.isGlobal = true;
79
+ this.addGlobalModule(moduleRef);
80
+ }
81
+ return moduleRef;
82
+ }
83
+ async addDynamicMetadata(token, dynamicModuleMetadata, scope) {
84
+ if (!dynamicModuleMetadata) {
85
+ return;
86
+ }
87
+ this.dynamicModulesMetadata.set(token, dynamicModuleMetadata);
88
+ const { imports } = dynamicModuleMetadata;
89
+ await this.addDynamicModules(imports, scope);
90
+ }
91
+ async addDynamicModules(modules, scope) {
92
+ if (!modules) {
93
+ return;
94
+ }
95
+ await Promise.all(modules.map((module) => this.addModule(module, scope)));
96
+ }
97
+ isGlobalModule(metatype, dynamicMetadata) {
98
+ if (dynamicMetadata && dynamicMetadata.global) {
99
+ return true;
100
+ }
101
+ return !!Reflect.getMetadata(constants_1.GLOBAL_MODULE_METADATA, metatype);
102
+ }
103
+ addGlobalModule(module) {
104
+ this.globalModules.add(module);
105
+ }
106
+ getModules() {
107
+ return this.modules;
108
+ }
109
+ getModuleCompiler() {
110
+ return this.moduleCompiler;
111
+ }
112
+ getModuleByKey(moduleKey) {
113
+ return this.modules.get(moduleKey);
114
+ }
115
+ getInternalCoreModuleRef() {
116
+ return this.internalCoreModule;
117
+ }
118
+ async addImport(relatedModule, token) {
119
+ if (!this.modules.has(token)) {
120
+ return;
121
+ }
122
+ const moduleRef = this.modules.get(token);
123
+ const { token: relatedModuleToken } = await this.moduleCompiler.compile(relatedModule);
124
+ const related = this.modules.get(relatedModuleToken);
125
+ moduleRef.addImport(related);
126
+ }
127
+ addProvider(provider, token, enhancerSubtype) {
128
+ const moduleRef = this.modules.get(token);
129
+ if (!provider) {
130
+ throw new exceptions_1.CircularDependencyException(moduleRef?.metatype.name);
131
+ }
132
+ if (!moduleRef) {
133
+ throw new exceptions_1.UnknownModuleException();
134
+ }
135
+ const providerKey = moduleRef.addProvider(provider, enhancerSubtype);
136
+ const providerRef = moduleRef.getProviderByKey(providerKey);
137
+ meta_host_collection_1.DiscoverableMetaHostCollection.inspectProvider(this.modules, providerRef);
138
+ return providerKey;
139
+ }
140
+ addInjectable(injectable, token, enhancerSubtype, host) {
141
+ if (!this.modules.has(token)) {
142
+ throw new exceptions_1.UnknownModuleException();
143
+ }
144
+ const moduleRef = this.modules.get(token);
145
+ return moduleRef.addInjectable(injectable, enhancerSubtype, host);
146
+ }
147
+ addExportedProvider(provider, token) {
148
+ if (!this.modules.has(token)) {
149
+ throw new exceptions_1.UnknownModuleException();
150
+ }
151
+ const moduleRef = this.modules.get(token);
152
+ moduleRef.addExportedProvider(provider);
153
+ }
154
+ clear() {
155
+ this.modules.clear();
156
+ }
157
+ replace(toReplace, options) {
158
+ this.modules.forEach((moduleRef) => moduleRef.replace(toReplace, options));
159
+ }
160
+ bindGlobalScope() {
161
+ this.modules.forEach((moduleRef) => this.bindGlobalsToImports(moduleRef));
162
+ }
163
+ bindGlobalsToImports(moduleRef) {
164
+ this.globalModules.forEach((globalModule) => this.bindGlobalModuleToModule(moduleRef, globalModule));
165
+ }
166
+ bindGlobalModuleToModule(target, globalModule) {
167
+ if (target === globalModule || target === this.internalCoreModule) {
168
+ return;
169
+ }
170
+ target.addImport(globalModule);
171
+ }
172
+ getDynamicMetadataByToken(token, metadataKey) {
173
+ const metadata = this.dynamicModulesMetadata.get(token);
174
+ return metadataKey ? metadata?.[metadataKey] ?? [] : metadata;
175
+ }
176
+ registerCoreModuleRef(moduleRef) {
177
+ this.internalCoreModule = moduleRef;
178
+ this.modules.set(internal_core_module_1.InternalCoreModule.name, moduleRef);
179
+ }
180
+ getModuleTokenFactory() {
181
+ return this.moduleTokenFactory;
182
+ }
183
+ registerRequestProvider(request, contextId) {
184
+ const wrapper = this.internalCoreModule.getProviderByKey(constants_1.REQUEST);
185
+ wrapper.setInstanceByContextId(contextId, {
186
+ instance: request,
187
+ isResolved: true,
188
+ });
189
+ }
190
+ shouldInitOnPreview(type) {
191
+ return initialize_on_preview_allowlist_1.InitializeOnPreviewAllowlist.has(type);
192
+ }
193
+ }
194
+ exports.VenokContainer = VenokContainer;
@@ -0,0 +1,2 @@
1
+ import { Scope, Type } from "@venok/core/interfaces";
2
+ export declare function getClassScope(provider: Type<unknown>): Scope;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getClassScope = void 0;
4
+ const constants_1 = require("@venok/core/constants");
5
+ function getClassScope(provider) {
6
+ const metadata = Reflect.getMetadata(constants_1.SCOPE_OPTIONS_METADATA, provider);
7
+ return metadata && metadata.scope;
8
+ }
9
+ exports.getClassScope = getClassScope;
@@ -0,0 +1,4 @@
1
+ import { ClassProvider, FactoryProvider, Provider, ValueProvider } from "@venok/core/interfaces/modules";
2
+ export declare function isClassProvider<T = any>(provider: Provider): provider is ClassProvider<T>;
3
+ export declare function isValueProvider<T = any>(provider: Provider): provider is ValueProvider<T>;
4
+ export declare function isFactoryProvider<T = any>(provider: Provider): provider is FactoryProvider<T>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isFactoryProvider = exports.isValueProvider = exports.isClassProvider = void 0;
4
+ const shared_helper_1 = require("@venok/core/helpers/shared.helper");
5
+ function isClassProvider(provider) {
6
+ return Boolean(provider?.useClass);
7
+ }
8
+ exports.isClassProvider = isClassProvider;
9
+ function isValueProvider(provider) {
10
+ const providerValue = provider?.useValue;
11
+ return !(0, shared_helper_1.isUndefined)(providerValue);
12
+ }
13
+ exports.isValueProvider = isValueProvider;
14
+ function isFactoryProvider(provider) {
15
+ return Boolean(provider.useFactory);
16
+ }
17
+ exports.isFactoryProvider = isFactoryProvider;
@@ -0,0 +1,2 @@
1
+ import { Type } from "@venok/core/interfaces";
2
+ export declare function isDurable(provider: Type<unknown>): boolean | undefined;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isDurable = void 0;
4
+ const constants_1 = require("@venok/core/constants");
5
+ function isDurable(provider) {
6
+ const metadata = Reflect.getMetadata(constants_1.SCOPE_OPTIONS_METADATA, provider);
7
+ return metadata && metadata.durable;
8
+ }
9
+ exports.isDurable = isDurable;
@@ -0,0 +1,5 @@
1
+ export * from "./container";
2
+ export { ContextId, HostComponentInfo } from "./instance/wrapper";
3
+ export * from "./module/lazy/loader";
4
+ export * from "./module/ref";
5
+ export * from "./module/container";
@@ -0,0 +1,20 @@
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("./container"), exports);
18
+ __exportStar(require("./module/lazy/loader"), exports);
19
+ __exportStar(require("./module/ref"), exports);
20
+ __exportStar(require("./module/container"), exports);