@depup/nestjs__core 11.1.17-depup.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 (371) hide show
  1. package/LICENSE +22 -0
  2. package/PACKAGE.md +1 -0
  3. package/README.md +25 -0
  4. package/Readme.md +146 -0
  5. package/adapters/http-adapter.d.ts +80 -0
  6. package/adapters/http-adapter.js +90 -0
  7. package/adapters/index.d.ts +1 -0
  8. package/adapters/index.js +4 -0
  9. package/application-config.d.ts +47 -0
  10. package/application-config.js +107 -0
  11. package/changes.json +5 -0
  12. package/constants.d.ts +14 -0
  13. package/constants.js +21 -0
  14. package/discovery/discoverable-meta-host-collection.d.ts +46 -0
  15. package/discovery/discoverable-meta-host-collection.js +98 -0
  16. package/discovery/discovery-module.d.ts +5 -0
  17. package/discovery/discovery-module.js +19 -0
  18. package/discovery/discovery-service.d.ts +76 -0
  19. package/discovery/discovery-service.js +98 -0
  20. package/discovery/index.d.ts +2 -0
  21. package/discovery/index.js +5 -0
  22. package/errors/exception-handler.d.ts +4 -0
  23. package/errors/exception-handler.js +11 -0
  24. package/errors/exceptions/circular-dependency.exception.d.ts +4 -0
  25. package/errors/exceptions/circular-dependency.exception.js +11 -0
  26. package/errors/exceptions/index.d.ts +8 -0
  27. package/errors/exceptions/index.js +11 -0
  28. package/errors/exceptions/invalid-class-module.exception.d.ts +4 -0
  29. package/errors/exceptions/invalid-class-module.exception.js +11 -0
  30. package/errors/exceptions/invalid-class-scope.exception.d.ts +5 -0
  31. package/errors/exceptions/invalid-class-scope.exception.js +16 -0
  32. package/errors/exceptions/invalid-class.exception.d.ts +4 -0
  33. package/errors/exceptions/invalid-class.exception.js +11 -0
  34. package/errors/exceptions/invalid-exception-filter.exception.d.ts +4 -0
  35. package/errors/exceptions/invalid-exception-filter.exception.js +11 -0
  36. package/errors/exceptions/invalid-middleware-configuration.exception.d.ts +4 -0
  37. package/errors/exceptions/invalid-middleware-configuration.exception.js +11 -0
  38. package/errors/exceptions/invalid-middleware.exception.d.ts +4 -0
  39. package/errors/exceptions/invalid-middleware.exception.js +11 -0
  40. package/errors/exceptions/invalid-module.exception.d.ts +4 -0
  41. package/errors/exceptions/invalid-module.exception.js +11 -0
  42. package/errors/exceptions/runtime.exception.d.ts +4 -0
  43. package/errors/exceptions/runtime.exception.js +12 -0
  44. package/errors/exceptions/undefined-dependency.exception.d.ts +6 -0
  45. package/errors/exceptions/undefined-dependency.exception.js +11 -0
  46. package/errors/exceptions/undefined-forwardref.exception.d.ts +5 -0
  47. package/errors/exceptions/undefined-forwardref.exception.js +11 -0
  48. package/errors/exceptions/undefined-module.exception.d.ts +4 -0
  49. package/errors/exceptions/undefined-module.exception.js +11 -0
  50. package/errors/exceptions/unknown-dependencies.exception.d.ts +16 -0
  51. package/errors/exceptions/unknown-dependencies.exception.js +15 -0
  52. package/errors/exceptions/unknown-element.exception.d.ts +4 -0
  53. package/errors/exceptions/unknown-element.exception.js +11 -0
  54. package/errors/exceptions/unknown-export.exception.d.ts +4 -0
  55. package/errors/exceptions/unknown-export.exception.js +11 -0
  56. package/errors/exceptions/unknown-module.exception.d.ts +4 -0
  57. package/errors/exceptions/unknown-module.exception.js +10 -0
  58. package/errors/exceptions/unknown-request-mapping.exception.d.ts +5 -0
  59. package/errors/exceptions/unknown-request-mapping.exception.js +11 -0
  60. package/errors/exceptions-zone.d.ts +5 -0
  61. package/errors/exceptions-zone.js +34 -0
  62. package/errors/messages.d.ts +17 -0
  63. package/errors/messages.js +174 -0
  64. package/exceptions/base-exception-filter-context.d.ts +14 -0
  65. package/exceptions/base-exception-filter-context.js +56 -0
  66. package/exceptions/base-exception-filter.d.ts +20 -0
  67. package/exceptions/base-exception-filter.js +72 -0
  68. package/exceptions/exceptions-handler.d.ts +10 -0
  69. package/exceptions/exceptions-handler.js +34 -0
  70. package/exceptions/external-exception-filter-context.d.ts +12 -0
  71. package/exceptions/external-exception-filter-context.js +42 -0
  72. package/exceptions/external-exception-filter.d.ts +5 -0
  73. package/exceptions/external-exception-filter.js +15 -0
  74. package/exceptions/external-exceptions-handler.d.ts +9 -0
  75. package/exceptions/external-exceptions-handler.js +34 -0
  76. package/exceptions/index.d.ts +1 -0
  77. package/exceptions/index.js +4 -0
  78. package/guards/constants.d.ts +1 -0
  79. package/guards/constants.js +4 -0
  80. package/guards/guards-consumer.d.ts +9 -0
  81. package/guards/guards-consumer.js +39 -0
  82. package/guards/guards-context-creator.d.ts +17 -0
  83. package/guards/guards-context-creator.js +70 -0
  84. package/guards/index.d.ts +3 -0
  85. package/guards/index.js +6 -0
  86. package/helpers/barrier.d.ts +30 -0
  87. package/helpers/barrier.js +46 -0
  88. package/helpers/context-creator.d.ts +10 -0
  89. package/helpers/context-creator.js +33 -0
  90. package/helpers/context-id-factory.d.ts +41 -0
  91. package/helpers/context-id-factory.js +67 -0
  92. package/helpers/context-utils.d.ts +23 -0
  93. package/helpers/context-utils.js +55 -0
  94. package/helpers/execution-context-host.d.ts +19 -0
  95. package/helpers/execution-context-host.js +50 -0
  96. package/helpers/external-context-creator.d.ts +51 -0
  97. package/helpers/external-context-creator.js +166 -0
  98. package/helpers/external-proxy.d.ts +5 -0
  99. package/helpers/external-proxy.js +19 -0
  100. package/helpers/get-class-scope.d.ts +3 -0
  101. package/helpers/get-class-scope.js +8 -0
  102. package/helpers/handler-metadata-storage.d.ts +27 -0
  103. package/helpers/handler-metadata-storage.js +26 -0
  104. package/helpers/http-adapter-host.d.ts +51 -0
  105. package/helpers/http-adapter-host.js +73 -0
  106. package/helpers/index.d.ts +3 -0
  107. package/helpers/index.js +6 -0
  108. package/helpers/interfaces/external-handler-metadata.interface.d.ts +11 -0
  109. package/helpers/interfaces/external-handler-metadata.interface.js +2 -0
  110. package/helpers/interfaces/index.d.ts +2 -0
  111. package/helpers/interfaces/index.js +5 -0
  112. package/helpers/interfaces/params-metadata.interface.d.ts +6 -0
  113. package/helpers/interfaces/params-metadata.interface.js +2 -0
  114. package/helpers/is-durable.d.ts +2 -0
  115. package/helpers/is-durable.js +8 -0
  116. package/helpers/load-adapter.d.ts +1 -0
  117. package/helpers/load-adapter.js +15 -0
  118. package/helpers/messages.d.ts +7 -0
  119. package/helpers/messages.js +29 -0
  120. package/helpers/optional-require.d.ts +1 -0
  121. package/helpers/optional-require.js +11 -0
  122. package/helpers/rethrow.d.ts +1 -0
  123. package/helpers/rethrow.js +7 -0
  124. package/helpers/router-method-factory.d.ts +23 -0
  125. package/helpers/router-method-factory.js +33 -0
  126. package/hooks/before-app-shutdown.hook.d.ts +9 -0
  127. package/hooks/before-app-shutdown.hook.js +51 -0
  128. package/hooks/index.d.ts +5 -0
  129. package/hooks/index.js +8 -0
  130. package/hooks/on-app-bootstrap.hook.d.ts +8 -0
  131. package/hooks/on-app-bootstrap.hook.js +53 -0
  132. package/hooks/on-app-shutdown.hook.d.ts +9 -0
  133. package/hooks/on-app-shutdown.hook.js +54 -0
  134. package/hooks/on-module-destroy.hook.d.ts +8 -0
  135. package/hooks/on-module-destroy.hook.js +53 -0
  136. package/hooks/on-module-init.hook.d.ts +8 -0
  137. package/hooks/on-module-init.hook.js +53 -0
  138. package/hooks/utils/get-instances-grouped-by-hierarchy-level.d.ts +3 -0
  139. package/hooks/utils/get-instances-grouped-by-hierarchy-level.js +27 -0
  140. package/hooks/utils/get-sorted-hierarchy-levels.d.ts +1 -0
  141. package/hooks/utils/get-sorted-hierarchy-levels.js +7 -0
  142. package/index.d.ts +17 -0
  143. package/index.js +32 -0
  144. package/injector/abstract-instance-resolver.d.ts +16 -0
  145. package/injector/abstract-instance-resolver.js +49 -0
  146. package/injector/compiler.d.ts +18 -0
  147. package/injector/compiler.js +35 -0
  148. package/injector/constants.d.ts +3 -0
  149. package/injector/constants.js +8 -0
  150. package/injector/container.d.ts +67 -0
  151. package/injector/container.js +233 -0
  152. package/injector/helpers/provider-classifier.d.ts +4 -0
  153. package/injector/helpers/provider-classifier.js +16 -0
  154. package/injector/helpers/silent-logger.d.ts +10 -0
  155. package/injector/helpers/silent-logger.js +18 -0
  156. package/injector/helpers/transient-instances.d.ts +12 -0
  157. package/injector/helpers/transient-instances.js +28 -0
  158. package/injector/index.d.ts +6 -0
  159. package/injector/index.js +8 -0
  160. package/injector/injector.d.ts +104 -0
  161. package/injector/injector.js +554 -0
  162. package/injector/inquirer/index.d.ts +1 -0
  163. package/injector/inquirer/index.js +4 -0
  164. package/injector/inquirer/inquirer-constants.d.ts +1 -0
  165. package/injector/inquirer/inquirer-constants.js +4 -0
  166. package/injector/inquirer/inquirer-providers.d.ts +2 -0
  167. package/injector/inquirer/inquirer-providers.js +11 -0
  168. package/injector/instance-links-host.d.ts +22 -0
  169. package/injector/instance-links-host.js +56 -0
  170. package/injector/instance-loader.d.ts +23 -0
  171. package/injector/instance-loader.js +88 -0
  172. package/injector/instance-wrapper.d.ts +99 -0
  173. package/injector/instance-wrapper.js +350 -0
  174. package/injector/internal-core-module/index.d.ts +1 -0
  175. package/injector/internal-core-module/index.js +4 -0
  176. package/injector/internal-core-module/internal-core-module-factory.d.ts +9 -0
  177. package/injector/internal-core-module/internal-core-module-factory.js +52 -0
  178. package/injector/internal-core-module/internal-core-module.d.ts +5 -0
  179. package/injector/internal-core-module/internal-core-module.js +40 -0
  180. package/injector/internal-providers-storage.d.ts +9 -0
  181. package/injector/internal-providers-storage.js +19 -0
  182. package/injector/lazy-module-loader/lazy-module-loader-options.interface.d.ts +6 -0
  183. package/injector/lazy-module-loader/lazy-module-loader-options.interface.js +2 -0
  184. package/injector/lazy-module-loader/lazy-module-loader.d.ts +20 -0
  185. package/injector/lazy-module-loader/lazy-module-loader.js +49 -0
  186. package/injector/module-ref.d.ts +106 -0
  187. package/injector/module-ref.js +66 -0
  188. package/injector/module.d.ts +82 -0
  189. package/injector/module.js +432 -0
  190. package/injector/modules-container.d.ts +27 -0
  191. package/injector/modules-container.js +42 -0
  192. package/injector/opaque-key-factory/by-reference-module-opaque-key-factory.d.ts +15 -0
  193. package/injector/opaque-key-factory/by-reference-module-opaque-key-factory.js +41 -0
  194. package/injector/opaque-key-factory/deep-hashed-module-opaque-key-factory.d.ts +15 -0
  195. package/injector/opaque-key-factory/deep-hashed-module-opaque-key-factory.js +83 -0
  196. package/injector/opaque-key-factory/interfaces/module-opaque-key-factory.interface.d.ts +18 -0
  197. package/injector/opaque-key-factory/interfaces/module-opaque-key-factory.interface.js +2 -0
  198. package/injector/settlement-signal.d.ts +37 -0
  199. package/injector/settlement-signal.js +55 -0
  200. package/injector/topology-tree/topology-tree.d.ts +8 -0
  201. package/injector/topology-tree/topology-tree.js +51 -0
  202. package/injector/topology-tree/tree-node.d.ts +14 -0
  203. package/injector/topology-tree/tree-node.js +54 -0
  204. package/inspector/deterministic-uuid-registry.d.ts +6 -0
  205. package/inspector/deterministic-uuid-registry.js +24 -0
  206. package/inspector/graph-inspector.d.ts +26 -0
  207. package/inspector/graph-inspector.js +166 -0
  208. package/inspector/index.d.ts +4 -0
  209. package/inspector/index.js +7 -0
  210. package/inspector/initialize-on-preview.allowlist.d.ts +6 -0
  211. package/inspector/initialize-on-preview.allowlist.js +13 -0
  212. package/inspector/interfaces/edge.interface.d.ts +28 -0
  213. package/inspector/interfaces/edge.interface.js +2 -0
  214. package/inspector/interfaces/enhancer-metadata-cache-entry.interface.d.ts +12 -0
  215. package/inspector/interfaces/enhancer-metadata-cache-entry.interface.js +2 -0
  216. package/inspector/interfaces/entrypoint.interface.d.ts +23 -0
  217. package/inspector/interfaces/entrypoint.interface.js +2 -0
  218. package/inspector/interfaces/extras.interface.d.ts +18 -0
  219. package/inspector/interfaces/extras.interface.js +2 -0
  220. package/inspector/interfaces/node.interface.d.ts +48 -0
  221. package/inspector/interfaces/node.interface.js +2 -0
  222. package/inspector/interfaces/serialized-graph-json.interface.d.ts +14 -0
  223. package/inspector/interfaces/serialized-graph-json.interface.js +2 -0
  224. package/inspector/interfaces/serialized-graph-metadata.interface.d.ts +10 -0
  225. package/inspector/interfaces/serialized-graph-metadata.interface.js +2 -0
  226. package/inspector/noop-graph-inspector.d.ts +2 -0
  227. package/inspector/noop-graph-inspector.js +8 -0
  228. package/inspector/partial-graph.host.d.ts +7 -0
  229. package/inspector/partial-graph.host.js +15 -0
  230. package/inspector/serialized-graph.d.ts +52 -0
  231. package/inspector/serialized-graph.js +124 -0
  232. package/inspector/uuid-factory.d.ts +9 -0
  233. package/inspector/uuid-factory.js +22 -0
  234. package/interceptors/index.d.ts +2 -0
  235. package/interceptors/index.js +5 -0
  236. package/interceptors/interceptors-consumer.d.ts +9 -0
  237. package/interceptors/interceptors-consumer.js +37 -0
  238. package/interceptors/interceptors-context-creator.d.ts +16 -0
  239. package/interceptors/interceptors-context-creator.js +69 -0
  240. package/interfaces/index.d.ts +2 -0
  241. package/interfaces/index.js +2 -0
  242. package/interfaces/module-definition.interface.d.ts +3 -0
  243. package/interfaces/module-definition.interface.js +2 -0
  244. package/interfaces/module-override.interface.d.ts +5 -0
  245. package/interfaces/module-override.interface.js +2 -0
  246. package/internal.d.ts +38 -0
  247. package/internal.js +46 -0
  248. package/metadata-scanner.d.ts +17 -0
  249. package/metadata-scanner.js +83 -0
  250. package/middleware/builder.d.ts +15 -0
  251. package/middleware/builder.js +91 -0
  252. package/middleware/container.d.ts +14 -0
  253. package/middleware/container.js +49 -0
  254. package/middleware/index.d.ts +1 -0
  255. package/middleware/index.js +4 -0
  256. package/middleware/middleware-module.d.ts +33 -0
  257. package/middleware/middleware-module.js +208 -0
  258. package/middleware/resolver.d.ts +10 -0
  259. package/middleware/resolver.js +18 -0
  260. package/middleware/route-info-path-extractor.d.ts +15 -0
  261. package/middleware/route-info-path-extractor.js +81 -0
  262. package/middleware/routes-mapper.d.ts +19 -0
  263. package/middleware/routes-mapper.js +117 -0
  264. package/middleware/utils.d.ts +8 -0
  265. package/middleware/utils.js +106 -0
  266. package/nest-application-context.d.ts +173 -0
  267. package/nest-application-context.js +327 -0
  268. package/nest-application.d.ts +64 -0
  269. package/nest-application.js +328 -0
  270. package/nest-factory.d.ts +83 -0
  271. package/nest-factory.js +232 -0
  272. package/package.json +73 -0
  273. package/pipes/index.d.ts +3 -0
  274. package/pipes/index.js +6 -0
  275. package/pipes/params-token-factory.d.ts +5 -0
  276. package/pipes/params-token-factory.js +19 -0
  277. package/pipes/pipes-consumer.d.ts +10 -0
  278. package/pipes/pipes-consumer.js +21 -0
  279. package/pipes/pipes-context-creator.d.ts +17 -0
  280. package/pipes/pipes-context-creator.js +72 -0
  281. package/repl/assign-to-object.util.d.ts +5 -0
  282. package/repl/assign-to-object.util.js +14 -0
  283. package/repl/constants.d.ts +1 -0
  284. package/repl/constants.js +4 -0
  285. package/repl/index.d.ts +1 -0
  286. package/repl/index.js +4 -0
  287. package/repl/native-functions/debug-repl-fn.d.ts +9 -0
  288. package/repl/native-functions/debug-repl-fn.js +46 -0
  289. package/repl/native-functions/get-repl-fn.d.ts +7 -0
  290. package/repl/native-functions/get-repl-fn.js +19 -0
  291. package/repl/native-functions/help-repl-fn.d.ts +7 -0
  292. package/repl/native-functions/help-repl-fn.js +29 -0
  293. package/repl/native-functions/index.d.ts +6 -0
  294. package/repl/native-functions/index.js +9 -0
  295. package/repl/native-functions/methods-repl-fn.d.ts +8 -0
  296. package/repl/native-functions/methods-repl-fn.js +28 -0
  297. package/repl/native-functions/resolve-repl-fn.d.ts +7 -0
  298. package/repl/native-functions/resolve-repl-fn.js +18 -0
  299. package/repl/native-functions/select-relp-fn.d.ts +7 -0
  300. package/repl/native-functions/select-relp-fn.js +18 -0
  301. package/repl/repl-context.d.ts +26 -0
  302. package/repl/repl-context.js +126 -0
  303. package/repl/repl-function.d.ts +18 -0
  304. package/repl/repl-function.js +19 -0
  305. package/repl/repl-logger.d.ts +5 -0
  306. package/repl/repl-logger.js +22 -0
  307. package/repl/repl-native-commands.d.ts +2 -0
  308. package/repl/repl-native-commands.js +46 -0
  309. package/repl/repl.d.ts +3 -0
  310. package/repl/repl.interfaces.d.ts +16 -0
  311. package/repl/repl.interfaces.js +2 -0
  312. package/repl/repl.js +32 -0
  313. package/router/index.d.ts +3 -0
  314. package/router/index.js +8 -0
  315. package/router/interfaces/exceptions-filter.interface.d.ts +6 -0
  316. package/router/interfaces/exceptions-filter.interface.js +2 -0
  317. package/router/interfaces/exclude-route-metadata.interface.d.ts +15 -0
  318. package/router/interfaces/exclude-route-metadata.interface.js +2 -0
  319. package/router/interfaces/index.d.ts +1 -0
  320. package/router/interfaces/index.js +4 -0
  321. package/router/interfaces/resolver.interface.d.ts +5 -0
  322. package/router/interfaces/resolver.interface.js +2 -0
  323. package/router/interfaces/route-params-factory.interface.d.ts +8 -0
  324. package/router/interfaces/route-params-factory.interface.js +2 -0
  325. package/router/interfaces/route-path-metadata.interface.d.ts +32 -0
  326. package/router/interfaces/route-path-metadata.interface.js +2 -0
  327. package/router/interfaces/routes.interface.d.ts +7 -0
  328. package/router/interfaces/routes.interface.js +2 -0
  329. package/router/legacy-route-converter.d.ts +16 -0
  330. package/router/legacy-route-converter.js +61 -0
  331. package/router/paths-explorer.d.ts +18 -0
  332. package/router/paths-explorer.js +45 -0
  333. package/router/request/index.d.ts +1 -0
  334. package/router/request/index.js +5 -0
  335. package/router/request/request-constants.d.ts +2 -0
  336. package/router/request/request-constants.js +5 -0
  337. package/router/request/request-providers.d.ts +2 -0
  338. package/router/request/request-providers.js +11 -0
  339. package/router/route-params-factory.d.ts +9 -0
  340. package/router/route-params-factory.js +41 -0
  341. package/router/route-path-factory.d.ts +14 -0
  342. package/router/route-path-factory.js +101 -0
  343. package/router/router-exception-filters.d.ts +14 -0
  344. package/router/router-exception-filters.js +40 -0
  345. package/router/router-execution-context.d.ts +54 -0
  346. package/router/router-execution-context.js +186 -0
  347. package/router/router-explorer.d.ts +47 -0
  348. package/router/router-explorer.js +234 -0
  349. package/router/router-module.d.ts +19 -0
  350. package/router/router-module.js +80 -0
  351. package/router/router-proxy.d.ts +6 -0
  352. package/router/router-proxy.js +31 -0
  353. package/router/router-response-controller.d.ts +28 -0
  354. package/router/router-response-controller.js +98 -0
  355. package/router/routes-resolver.d.ts +27 -0
  356. package/router/routes-resolver.js +129 -0
  357. package/router/sse-stream.d.ts +43 -0
  358. package/router/sse-stream.js +83 -0
  359. package/router/utils/exclude-route.util.d.ts +4 -0
  360. package/router/utils/exclude-route.util.js +19 -0
  361. package/router/utils/flatten-route-paths.util.d.ts +6 -0
  362. package/router/utils/flatten-route-paths.util.js +25 -0
  363. package/router/utils/index.d.ts +2 -0
  364. package/router/utils/index.js +5 -0
  365. package/scanner.d.ts +89 -0
  366. package/scanner.js +416 -0
  367. package/services/index.d.ts +1 -0
  368. package/services/index.js +4 -0
  369. package/services/reflector.service.d.ts +111 -0
  370. package/services/reflector.service.js +100 -0
  371. package/tsconfig.build.json +21 -0
@@ -0,0 +1,9 @@
1
+ import { AbstractHttpAdapter } from '../adapters';
2
+ import { HttpAdapterHost } from '../helpers/http-adapter-host';
3
+ export declare class InternalProvidersStorage {
4
+ private readonly _httpAdapterHost;
5
+ private _httpAdapter;
6
+ get httpAdapterHost(): HttpAdapterHost;
7
+ get httpAdapter(): AbstractHttpAdapter;
8
+ set httpAdapter(httpAdapter: AbstractHttpAdapter);
9
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InternalProvidersStorage = void 0;
4
+ const http_adapter_host_1 = require("../helpers/http-adapter-host");
5
+ class InternalProvidersStorage {
6
+ constructor() {
7
+ this._httpAdapterHost = new http_adapter_host_1.HttpAdapterHost();
8
+ }
9
+ get httpAdapterHost() {
10
+ return this._httpAdapterHost;
11
+ }
12
+ get httpAdapter() {
13
+ return this._httpAdapter;
14
+ }
15
+ set httpAdapter(httpAdapter) {
16
+ this._httpAdapter = httpAdapter;
17
+ }
18
+ }
19
+ exports.InternalProvidersStorage = InternalProvidersStorage;
@@ -0,0 +1,6 @@
1
+ export interface LazyModuleLoaderLoadOptions {
2
+ /**
3
+ * If `false`, no logs will be generated when loading some module lazily.
4
+ */
5
+ logger?: boolean;
6
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,20 @@
1
+ import { DynamicModule, Type } from '@nestjs/common';
2
+ import { ModuleOverride } from '../../interfaces/module-override.interface';
3
+ import { DependenciesScanner } from '../../scanner';
4
+ import { ModuleCompiler } from '../compiler';
5
+ import { InstanceLoader } from '../instance-loader';
6
+ import { ModuleRef } from '../module-ref';
7
+ import { ModulesContainer } from '../modules-container';
8
+ import { LazyModuleLoaderLoadOptions } from './lazy-module-loader-options.interface';
9
+ export declare class LazyModuleLoader {
10
+ private readonly dependenciesScanner;
11
+ private readonly instanceLoader;
12
+ private readonly moduleCompiler;
13
+ private readonly modulesContainer;
14
+ private readonly moduleOverrides?;
15
+ constructor(dependenciesScanner: DependenciesScanner, instanceLoader: InstanceLoader, moduleCompiler: ModuleCompiler, modulesContainer: ModulesContainer, moduleOverrides?: ModuleOverride[] | undefined);
16
+ load(loaderFn: () => Promise<Type<unknown> | DynamicModule> | Type<unknown> | DynamicModule, loadOpts?: LazyModuleLoaderLoadOptions): Promise<ModuleRef>;
17
+ private registerLoggerConfiguration;
18
+ private createLazyModulesContainer;
19
+ private getTargetModuleRef;
20
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LazyModuleLoader = void 0;
4
+ const silent_logger_1 = require("../helpers/silent-logger");
5
+ const module_ref_1 = require("../module-ref");
6
+ class LazyModuleLoader {
7
+ constructor(dependenciesScanner, instanceLoader, moduleCompiler, modulesContainer, moduleOverrides) {
8
+ this.dependenciesScanner = dependenciesScanner;
9
+ this.instanceLoader = instanceLoader;
10
+ this.moduleCompiler = moduleCompiler;
11
+ this.modulesContainer = modulesContainer;
12
+ this.moduleOverrides = moduleOverrides;
13
+ }
14
+ async load(loaderFn, loadOpts) {
15
+ this.registerLoggerConfiguration(loadOpts);
16
+ const moduleClassOrDynamicDefinition = await loaderFn();
17
+ const moduleInstances = await this.dependenciesScanner.scanForModules({
18
+ moduleDefinition: moduleClassOrDynamicDefinition,
19
+ overrides: this.moduleOverrides,
20
+ lazy: true,
21
+ });
22
+ if (moduleInstances.length === 0) {
23
+ // The module has been loaded already. In this case, we must
24
+ // retrieve a module reference from the existing container.
25
+ const { token } = await this.moduleCompiler.compile(moduleClassOrDynamicDefinition);
26
+ const moduleInstance = this.modulesContainer.get(token);
27
+ return moduleInstance && this.getTargetModuleRef(moduleInstance);
28
+ }
29
+ const lazyModulesContainer = this.createLazyModulesContainer(moduleInstances);
30
+ await this.dependenciesScanner.scanModulesForDependencies(lazyModulesContainer);
31
+ await this.instanceLoader.createInstancesOfDependencies(lazyModulesContainer);
32
+ const [targetModule] = moduleInstances;
33
+ return this.getTargetModuleRef(targetModule);
34
+ }
35
+ registerLoggerConfiguration(loadOpts) {
36
+ if (loadOpts?.logger === false) {
37
+ this.instanceLoader.setLogger(new silent_logger_1.SilentLogger());
38
+ }
39
+ }
40
+ createLazyModulesContainer(moduleInstances) {
41
+ moduleInstances = Array.from(new Set(moduleInstances));
42
+ return new Map(moduleInstances.map(ref => [ref.token, ref]));
43
+ }
44
+ getTargetModuleRef(moduleInstance) {
45
+ const moduleRefInstanceWrapper = moduleInstance.getProviderByKey(module_ref_1.ModuleRef);
46
+ return moduleRefInstanceWrapper.instance;
47
+ }
48
+ }
49
+ exports.LazyModuleLoader = LazyModuleLoader;
@@ -0,0 +1,106 @@
1
+ import { IntrospectionResult, Type } from '@nestjs/common';
2
+ import { AbstractInstanceResolver } from './abstract-instance-resolver';
3
+ import { NestContainer } from './container';
4
+ import { Injector } from './injector';
5
+ import { InstanceLinksHost } from './instance-links-host';
6
+ import { ContextId } from './instance-wrapper';
7
+ import { Module } from './module';
8
+ export interface ModuleRefGetOrResolveOpts {
9
+ /**
10
+ * If enabled, lookup will only be performed in the host module.
11
+ * @default true
12
+ */
13
+ strict?: boolean;
14
+ /**
15
+ * If enabled, instead of returning a first instance registered under a given token,
16
+ * a list of instances will be returned.
17
+ * @default false
18
+ */
19
+ each?: boolean;
20
+ }
21
+ export declare abstract class ModuleRef extends AbstractInstanceResolver {
22
+ protected readonly container: NestContainer;
23
+ protected readonly injector: Injector;
24
+ private _instanceLinksHost;
25
+ protected get instanceLinksHost(): InstanceLinksHost;
26
+ constructor(container: NestContainer);
27
+ /**
28
+ * Retrieves an instance of either injectable or controller, otherwise, throws exception.
29
+ * @returns {TResult}
30
+ */
31
+ abstract get<TInput = any, TResult = TInput>(typeOrToken: Type<TInput> | Function | string | symbol): TResult;
32
+ /**
33
+ * Retrieves an instance of either injectable or controller, otherwise, throws exception.
34
+ * @returns {TResult}
35
+ */
36
+ abstract get<TInput = any, TResult = TInput>(typeOrToken: Type<TInput> | Function | string | symbol, options: {
37
+ /**
38
+ * If enabled, lookup will only be performed in the host module.
39
+ * @default true
40
+ */
41
+ strict?: boolean;
42
+ /** This indicates that only the first instance registered will be returned. */
43
+ each?: undefined | false;
44
+ }): TResult;
45
+ /**
46
+ * Retrieves a list of instances of either injectables or controllers, otherwise, throws exception.
47
+ * @returns {Array<TResult>}
48
+ */
49
+ abstract get<TInput = any, TResult = TInput>(typeOrToken: Type<TInput> | Function | string | symbol, options: {
50
+ /**
51
+ * If enabled, lookup will only be performed in the host module.
52
+ * @default true
53
+ */
54
+ strict?: boolean;
55
+ /** This indicates that a list of instances will be returned. */
56
+ each: true;
57
+ }): Array<TResult>;
58
+ /**
59
+ * Retrieves an instance (or a list of instances) of either injectable or controller, otherwise, throws exception.
60
+ * @returns {TResult | Array<TResult>}
61
+ */
62
+ abstract get<TInput = any, TResult = TInput>(typeOrToken: Type<TInput> | Function | string | symbol, options?: ModuleRefGetOrResolveOpts): TResult | Array<TResult>;
63
+ /**
64
+ * Resolves transient or request-scoped instance of either injectable or controller, otherwise, throws exception.
65
+ * @returns {Array<TResult>}
66
+ */
67
+ abstract resolve<TInput = any, TResult = TInput>(typeOrToken: Type<TInput> | Function | string | symbol): Promise<TResult>;
68
+ /**
69
+ * Resolves transient or request-scoped instance of either injectable or controller, otherwise, throws exception.
70
+ * @returns {Array<TResult>}
71
+ */
72
+ abstract resolve<TInput = any, TResult = TInput>(typeOrToken: Type<TInput> | Function | string | symbol, contextId?: {
73
+ id: number;
74
+ }): Promise<TResult>;
75
+ /**
76
+ * Resolves transient or request-scoped instance of either injectable or controller, otherwise, throws exception.
77
+ * @returns {Array<TResult>}
78
+ */
79
+ abstract resolve<TInput = any, TResult = TInput>(typeOrToken: Type<TInput> | Function | string | symbol, contextId?: {
80
+ id: number;
81
+ }, options?: {
82
+ strict?: boolean;
83
+ each?: undefined | false;
84
+ }): Promise<TResult>;
85
+ /**
86
+ * Resolves transient or request-scoped instances of either injectables or controllers, otherwise, throws exception.
87
+ * @returns {Array<TResult>}
88
+ */
89
+ abstract resolve<TInput = any, TResult = TInput>(typeOrToken: Type<TInput> | Function | string | symbol, contextId?: {
90
+ id: number;
91
+ }, options?: {
92
+ strict?: boolean;
93
+ each: true;
94
+ }): Promise<Array<TResult>>;
95
+ /**
96
+ * Resolves transient or request-scoped instance (or a list of instances) of either injectable or controller, otherwise, throws exception.
97
+ * @returns {Promise<TResult | Array<TResult>>}
98
+ */
99
+ abstract resolve<TInput = any, TResult = TInput>(typeOrToken: Type<TInput> | Function | string | symbol, contextId?: {
100
+ id: number;
101
+ }, options?: ModuleRefGetOrResolveOpts): Promise<TResult | Array<TResult>>;
102
+ abstract create<T = any>(type: Type<T>, contextId?: ContextId): Promise<T>;
103
+ introspect<T = any>(token: Type<T> | string | symbol): IntrospectionResult;
104
+ registerRequestByContextId<T = any>(request: T, contextId: ContextId): void;
105
+ protected instantiateClass<T = any>(type: Type<T>, moduleRef: Module, contextId?: ContextId): Promise<T>;
106
+ }
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ModuleRef = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const get_class_scope_1 = require("../helpers/get-class-scope");
6
+ const is_durable_1 = require("../helpers/is-durable");
7
+ const abstract_instance_resolver_1 = require("./abstract-instance-resolver");
8
+ const injector_1 = require("./injector");
9
+ const instance_links_host_1 = require("./instance-links-host");
10
+ const instance_wrapper_1 = require("./instance-wrapper");
11
+ class ModuleRef extends abstract_instance_resolver_1.AbstractInstanceResolver {
12
+ get instanceLinksHost() {
13
+ if (!this._instanceLinksHost) {
14
+ this._instanceLinksHost = new instance_links_host_1.InstanceLinksHost(this.container);
15
+ }
16
+ return this._instanceLinksHost;
17
+ }
18
+ constructor(container) {
19
+ super();
20
+ this.container = container;
21
+ this.injector = new injector_1.Injector({
22
+ preview: container.contextOptions?.preview,
23
+ instanceDecorator: container.contextOptions?.instrument?.instanceDecorator,
24
+ });
25
+ }
26
+ introspect(token) {
27
+ const { wrapperRef } = this.instanceLinksHost.get(token);
28
+ let scope = common_1.Scope.DEFAULT;
29
+ if (!wrapperRef.isDependencyTreeStatic()) {
30
+ scope = common_1.Scope.REQUEST;
31
+ }
32
+ else if (wrapperRef.isTransient) {
33
+ scope = common_1.Scope.TRANSIENT;
34
+ }
35
+ return { scope };
36
+ }
37
+ registerRequestByContextId(request, contextId) {
38
+ this.container.registerRequestProvider(request, contextId);
39
+ }
40
+ async instantiateClass(type, moduleRef, contextId) {
41
+ const wrapper = new instance_wrapper_1.InstanceWrapper({
42
+ name: type && type.name,
43
+ metatype: type,
44
+ isResolved: false,
45
+ scope: (0, get_class_scope_1.getClassScope)(type),
46
+ durable: (0, is_durable_1.isDurable)(type),
47
+ host: moduleRef,
48
+ });
49
+ /* eslint-disable-next-line no-async-promise-executor */
50
+ return new Promise(async (resolve, reject) => {
51
+ try {
52
+ const callback = async (instances) => {
53
+ const properties = await this.injector.resolveProperties(wrapper, moduleRef, undefined, contextId);
54
+ const instance = new type(...instances);
55
+ this.injector.applyProperties(instance, properties);
56
+ resolve(instance);
57
+ };
58
+ await this.injector.resolveConstructorParams(wrapper, moduleRef, undefined, callback, contextId);
59
+ }
60
+ catch (err) {
61
+ reject(err);
62
+ }
63
+ });
64
+ }
65
+ }
66
+ exports.ModuleRef = ModuleRef;
@@ -0,0 +1,82 @@
1
+ import { EnhancerSubtype } from '@nestjs/common/constants';
2
+ import { ClassProvider, Controller, DynamicModule, ExistingProvider, FactoryProvider, Injectable, InjectionToken, NestModule, Provider, Type, ValueProvider } from '@nestjs/common/interfaces';
3
+ import { NestContainer } from './container';
4
+ import { InstanceWrapper } from './instance-wrapper';
5
+ import { ModuleRef } from './module-ref';
6
+ export declare class Module {
7
+ private readonly _metatype;
8
+ private readonly container;
9
+ private readonly _id;
10
+ private readonly _imports;
11
+ private readonly _providers;
12
+ private readonly _injectables;
13
+ private readonly _middlewares;
14
+ private readonly _controllers;
15
+ private readonly _entryProviderKeys;
16
+ private readonly _exports;
17
+ private _distance;
18
+ private _initOnPreview;
19
+ private _isGlobal;
20
+ private _token;
21
+ constructor(_metatype: Type<any>, container: NestContainer);
22
+ get id(): string;
23
+ get token(): string;
24
+ set token(token: string);
25
+ get name(): string;
26
+ get isGlobal(): boolean;
27
+ set isGlobal(global: boolean);
28
+ get initOnPreview(): boolean;
29
+ set initOnPreview(initOnPreview: boolean);
30
+ get providers(): Map<InjectionToken, InstanceWrapper<Injectable>>;
31
+ get middlewares(): Map<InjectionToken, InstanceWrapper<Injectable>>;
32
+ get imports(): Set<Module>;
33
+ get injectables(): Map<InjectionToken, InstanceWrapper<Injectable>>;
34
+ get controllers(): Map<InjectionToken, InstanceWrapper<Controller>>;
35
+ get entryProviders(): Array<InstanceWrapper<Injectable>>;
36
+ get exports(): Set<InjectionToken>;
37
+ get instance(): NestModule;
38
+ get metatype(): Type<any>;
39
+ get distance(): number;
40
+ set distance(value: number);
41
+ addCoreProviders(): void;
42
+ addModuleRef(): void;
43
+ addModuleAsProvider(): void;
44
+ addApplicationConfig(): void;
45
+ addInjectable<T extends Injectable>(injectable: Provider, enhancerSubtype: EnhancerSubtype, host?: Type<T>): string | symbol | Function | InstanceWrapper<unknown>;
46
+ addProvider(provider: Provider): InjectionToken;
47
+ addProvider(provider: Provider, enhancerSubtype: EnhancerSubtype): InjectionToken;
48
+ isCustomProvider(provider: Provider): provider is ClassProvider | FactoryProvider | ValueProvider | ExistingProvider;
49
+ addCustomProvider(provider: ClassProvider | FactoryProvider | ValueProvider | ExistingProvider, collection: Map<Function | string | symbol, any>, enhancerSubtype?: EnhancerSubtype): InjectionToken;
50
+ isCustomClass(provider: any): provider is ClassProvider;
51
+ isCustomValue(provider: any): provider is ValueProvider;
52
+ isCustomFactory(provider: any): provider is FactoryProvider;
53
+ isCustomUseExisting(provider: any): provider is ExistingProvider;
54
+ isDynamicModule(exported: any): exported is DynamicModule;
55
+ addCustomClass(provider: ClassProvider, collection: Map<InjectionToken, InstanceWrapper>, enhancerSubtype?: EnhancerSubtype): void;
56
+ addCustomValue(provider: ValueProvider, collection: Map<Function | string | symbol, InstanceWrapper>, enhancerSubtype?: EnhancerSubtype): void;
57
+ addCustomFactory(provider: FactoryProvider, collection: Map<Function | string | symbol, InstanceWrapper>, enhancerSubtype?: EnhancerSubtype): void;
58
+ addCustomUseExisting(provider: ExistingProvider, collection: Map<Function | string | symbol, InstanceWrapper>, enhancerSubtype?: EnhancerSubtype): void;
59
+ addExportedProviderOrModule(toExport: Provider | string | symbol | DynamicModule): Set<InjectionToken> | undefined;
60
+ addCustomExportedProvider(provider: FactoryProvider | ValueProvider | ClassProvider | ExistingProvider): Set<InjectionToken> | undefined;
61
+ validateExportedProvider(token: InjectionToken): InjectionToken;
62
+ addController(controller: Type<Controller>): void;
63
+ assignControllerUniqueId(controller: Type<Controller>): void;
64
+ addImport(moduleRef: Module): void;
65
+ replace(toReplace: InjectionToken, options: any): void;
66
+ hasProvider(token: InjectionToken): boolean;
67
+ hasInjectable(token: InjectionToken): boolean;
68
+ getProviderByKey<T = any>(name: InjectionToken<T>): InstanceWrapper<T>;
69
+ getProviderById<T = any>(id: string): InstanceWrapper<T> | undefined;
70
+ getControllerById<T = any>(id: string): InstanceWrapper<T> | undefined;
71
+ getInjectableById<T = any>(id: string): InstanceWrapper<T> | undefined;
72
+ getMiddlewareById<T = any>(id: string): InstanceWrapper<T> | undefined;
73
+ getNonAliasProviders(): Array<[
74
+ InjectionToken,
75
+ InstanceWrapper<Injectable>
76
+ ]>;
77
+ createModuleReferenceType(): Type<ModuleRef>;
78
+ private isEntryProvider;
79
+ private generateUuid;
80
+ private isTransientProvider;
81
+ private isRequestScopeProvider;
82
+ }