@depup/nestjs__core 11.2.3-depup.0 → 12.0.2-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 (361) hide show
  1. package/README.md +2 -2
  2. package/adapters/http-adapter.d.ts +372 -3
  3. package/adapters/http-adapter.js +135 -5
  4. package/adapters/index.d.ts +1 -1
  5. package/adapters/index.js +1 -4
  6. package/application-config.d.ts +13 -4
  7. package/application-config.js +34 -15
  8. package/changes.json +1 -1
  9. package/constants.d.ts +1 -1
  10. package/constants.js +10 -13
  11. package/discovery/discoverable-meta-host-collection.d.ts +3 -3
  12. package/discovery/discoverable-meta-host-collection.js +25 -20
  13. package/discovery/discovery-module.js +9 -12
  14. package/discovery/discovery-service.d.ts +4 -4
  15. package/discovery/discovery-service.js +17 -19
  16. package/discovery/index.d.ts +2 -2
  17. package/discovery/index.js +2 -5
  18. package/errors/exception-handler.js +3 -7
  19. package/errors/exceptions/circular-dependency.exception.d.ts +1 -1
  20. package/errors/exceptions/circular-dependency.exception.js +2 -6
  21. package/errors/exceptions/index.d.ts +9 -8
  22. package/errors/exceptions/index.js +9 -11
  23. package/errors/exceptions/invalid-class-module.exception.d.ts +1 -1
  24. package/errors/exceptions/invalid-class-module.exception.js +4 -8
  25. package/errors/exceptions/invalid-class-scope.exception.d.ts +2 -2
  26. package/errors/exceptions/invalid-class-scope.exception.js +6 -10
  27. package/errors/exceptions/invalid-class.exception.d.ts +1 -1
  28. package/errors/exceptions/invalid-class.exception.js +4 -8
  29. package/errors/exceptions/invalid-exception-filter.exception.d.ts +1 -1
  30. package/errors/exceptions/invalid-exception-filter.exception.js +4 -8
  31. package/errors/exceptions/invalid-middleware-configuration.exception.d.ts +1 -1
  32. package/errors/exceptions/invalid-middleware-configuration.exception.js +4 -8
  33. package/errors/exceptions/invalid-middleware.exception.d.ts +1 -1
  34. package/errors/exceptions/invalid-middleware.exception.js +4 -8
  35. package/errors/exceptions/invalid-module.exception.d.ts +1 -1
  36. package/errors/exceptions/invalid-module.exception.js +4 -8
  37. package/errors/exceptions/route-conflict.exception.d.ts +4 -0
  38. package/errors/exceptions/route-conflict.exception.js +7 -0
  39. package/errors/exceptions/runtime.exception.js +1 -5
  40. package/errors/exceptions/undefined-dependency.exception.d.ts +3 -3
  41. package/errors/exceptions/undefined-dependency.exception.js +4 -8
  42. package/errors/exceptions/undefined-forwardref.exception.d.ts +2 -2
  43. package/errors/exceptions/undefined-forwardref.exception.js +4 -8
  44. package/errors/exceptions/undefined-module.exception.d.ts +1 -1
  45. package/errors/exceptions/undefined-module.exception.js +4 -8
  46. package/errors/exceptions/unknown-dependencies.exception.d.ts +3 -3
  47. package/errors/exceptions/unknown-dependencies.exception.js +8 -8
  48. package/errors/exceptions/unknown-element.exception.d.ts +1 -1
  49. package/errors/exceptions/unknown-element.exception.js +2 -6
  50. package/errors/exceptions/unknown-export.exception.d.ts +1 -1
  51. package/errors/exceptions/unknown-export.exception.js +4 -8
  52. package/errors/exceptions/unknown-module.exception.d.ts +1 -1
  53. package/errors/exceptions/unknown-module.exception.js +2 -6
  54. package/errors/exceptions/unknown-request-mapping.exception.d.ts +1 -1
  55. package/errors/exceptions/unknown-request-mapping.exception.js +4 -8
  56. package/errors/exceptions-zone.js +6 -10
  57. package/errors/messages.d.ts +5 -2
  58. package/errors/messages.js +26 -32
  59. package/exceptions/base-exception-filter-context.d.ts +6 -7
  60. package/exceptions/base-exception-filter-context.js +13 -16
  61. package/exceptions/base-exception-filter.d.ts +4 -4
  62. package/exceptions/base-exception-filter.js +46 -23
  63. package/exceptions/exceptions-handler.d.ts +4 -4
  64. package/exceptions/exceptions-handler.js +8 -16
  65. package/exceptions/external-exception-filter-context.d.ts +8 -8
  66. package/exceptions/external-exception-filter-context.js +14 -18
  67. package/exceptions/external-exception-filter.d.ts +1 -1
  68. package/exceptions/external-exception-filter.js +4 -8
  69. package/exceptions/external-exceptions-handler.d.ts +3 -3
  70. package/exceptions/external-exceptions-handler.js +8 -16
  71. package/exceptions/index.d.ts +1 -1
  72. package/exceptions/index.js +1 -4
  73. package/guards/constants.js +1 -4
  74. package/guards/guards-consumer.d.ts +4 -3
  75. package/guards/guards-consumer.js +8 -12
  76. package/guards/guards-context-creator.d.ts +11 -10
  77. package/guards/guards-context-creator.js +18 -20
  78. package/guards/index.d.ts +3 -3
  79. package/guards/index.js +3 -6
  80. package/helpers/barrier.js +5 -5
  81. package/helpers/context-creator.d.ts +2 -2
  82. package/helpers/context-creator.js +3 -7
  83. package/helpers/context-id-factory.d.ts +1 -1
  84. package/helpers/context-id-factory.js +10 -14
  85. package/helpers/context-utils.d.ts +6 -3
  86. package/helpers/context-utils.js +7 -12
  87. package/helpers/execution-context-host.d.ts +3 -3
  88. package/helpers/execution-context-host.js +5 -6
  89. package/helpers/external-context-creator.d.ts +15 -18
  90. package/helpers/external-context-creator.js +54 -43
  91. package/helpers/external-proxy.d.ts +2 -2
  92. package/helpers/external-proxy.js +3 -7
  93. package/helpers/get-class-scope.d.ts +2 -2
  94. package/helpers/get-class-scope.js +3 -6
  95. package/helpers/handler-metadata-storage.d.ts +4 -4
  96. package/helpers/handler-metadata-storage.js +7 -15
  97. package/helpers/http-adapter-host.d.ts +1 -1
  98. package/helpers/http-adapter-host.js +6 -11
  99. package/helpers/index.d.ts +3 -3
  100. package/helpers/index.js +3 -6
  101. package/helpers/interfaces/external-handler-metadata.interface.d.ts +2 -2
  102. package/helpers/interfaces/external-handler-metadata.interface.js +1 -2
  103. package/helpers/interfaces/index.d.ts +2 -2
  104. package/helpers/interfaces/index.js +2 -5
  105. package/helpers/interfaces/params-metadata.interface.d.ts +1 -1
  106. package/helpers/interfaces/params-metadata.interface.js +1 -2
  107. package/helpers/is-durable.d.ts +1 -1
  108. package/helpers/is-durable.js +3 -6
  109. package/helpers/load-adapter.d.ts +1 -1
  110. package/helpers/load-adapter.js +5 -8
  111. package/helpers/messages.d.ts +1 -1
  112. package/helpers/messages.js +10 -20
  113. package/helpers/optional-require.d.ts +1 -1
  114. package/helpers/optional-require.js +2 -5
  115. package/helpers/rethrow.js +1 -5
  116. package/helpers/router-method-factory.d.ts +2 -2
  117. package/helpers/router-method-factory.js +21 -25
  118. package/helpers/safe-instance-decorator.js +3 -6
  119. package/hooks/before-app-shutdown.hook.d.ts +3 -3
  120. package/hooks/before-app-shutdown.hook.js +25 -23
  121. package/hooks/index.d.ts +5 -5
  122. package/hooks/index.js +5 -8
  123. package/hooks/on-app-bootstrap.hook.d.ts +3 -3
  124. package/hooks/on-app-bootstrap.hook.js +15 -22
  125. package/hooks/on-app-shutdown.hook.d.ts +3 -3
  126. package/hooks/on-app-shutdown.hook.js +25 -23
  127. package/hooks/on-module-destroy.hook.d.ts +3 -3
  128. package/hooks/on-module-destroy.hook.js +25 -23
  129. package/hooks/on-module-init.hook.d.ts +3 -3
  130. package/hooks/on-module-init.hook.js +15 -22
  131. package/hooks/utils/get-instances-grouped-by-hierarchy-level.d.ts +3 -0
  132. package/hooks/utils/get-instances-grouped-by-hierarchy-level.js +27 -0
  133. package/hooks/utils/get-sorted-hierarchy-levels.d.ts +1 -0
  134. package/hooks/utils/get-sorted-hierarchy-levels.js +7 -0
  135. package/index.d.ts +16 -16
  136. package/index.js +17 -26
  137. package/injector/abstract-instance-resolver.d.ts +6 -6
  138. package/injector/abstract-instance-resolver.js +7 -11
  139. package/injector/compiler.d.ts +2 -2
  140. package/injector/compiler.js +2 -5
  141. package/injector/constants.d.ts +1 -1
  142. package/injector/constants.js +2 -5
  143. package/injector/container.d.ts +13 -14
  144. package/injector/container.js +40 -40
  145. package/injector/helpers/is-debug-mode.util.d.ts +1 -0
  146. package/injector/helpers/is-debug-mode.util.js +3 -0
  147. package/injector/helpers/provider-classifier.d.ts +1 -1
  148. package/injector/helpers/provider-classifier.js +5 -10
  149. package/injector/helpers/silent-logger.js +9 -16
  150. package/injector/index.d.ts +6 -6
  151. package/injector/index.js +5 -8
  152. package/injector/injector.d.ts +7 -7
  153. package/injector/injector.js +104 -93
  154. package/injector/inquirer/index.d.ts +1 -1
  155. package/injector/inquirer/index.js +1 -4
  156. package/injector/inquirer/inquirer-constants.js +1 -4
  157. package/injector/inquirer/inquirer-providers.d.ts +1 -1
  158. package/injector/inquirer/inquirer-providers.js +5 -8
  159. package/injector/instance-links-host.d.ts +3 -3
  160. package/injector/instance-links-host.js +8 -11
  161. package/injector/instance-loader.d.ts +5 -5
  162. package/injector/instance-loader.js +17 -11
  163. package/injector/instance-wrapper.d.ts +8 -6
  164. package/injector/instance-wrapper.js +98 -81
  165. package/injector/internal-core-module/index.d.ts +1 -1
  166. package/injector/internal-core-module/index.js +1 -4
  167. package/injector/internal-core-module/internal-core-module-factory.d.ts +6 -6
  168. package/injector/internal-core-module/internal-core-module-factory.js +23 -27
  169. package/injector/internal-core-module/internal-core-module.d.ts +2 -2
  170. package/injector/internal-core-module/internal-core-module.js +17 -20
  171. package/injector/internal-providers-storage.d.ts +2 -2
  172. package/injector/internal-providers-storage.js +4 -9
  173. package/injector/lazy-module-loader/lazy-module-loader-options.interface.js +1 -2
  174. package/injector/lazy-module-loader/lazy-module-loader.d.ts +8 -8
  175. package/injector/lazy-module-loader/lazy-module-loader.js +36 -27
  176. package/injector/module-ref.d.ts +7 -7
  177. package/injector/module-ref.js +30 -35
  178. package/injector/module.d.ts +5 -5
  179. package/injector/module.js +97 -83
  180. package/injector/modules-container.d.ts +1 -1
  181. package/injector/modules-container.js +5 -12
  182. package/injector/opaque-key-factory/by-reference-module-opaque-key-factory.d.ts +2 -4
  183. package/injector/opaque-key-factory/by-reference-module-opaque-key-factory.js +6 -9
  184. package/injector/opaque-key-factory/deep-hashed-module-opaque-key-factory.d.ts +2 -3
  185. package/injector/opaque-key-factory/deep-hashed-module-opaque-key-factory.js +17 -22
  186. package/injector/opaque-key-factory/interfaces/module-opaque-key-factory.interface.d.ts +1 -3
  187. package/injector/opaque-key-factory/interfaces/module-opaque-key-factory.interface.js +1 -2
  188. package/injector/settlement-signal.js +5 -7
  189. package/injector/topology-tree/topology-tree.d.ts +1 -1
  190. package/injector/topology-tree/topology-tree.js +6 -9
  191. package/injector/topology-tree/tree-node.js +4 -6
  192. package/inspector/deterministic-uuid-registry.js +2 -6
  193. package/inspector/graph-inspector.d.ts +7 -7
  194. package/inspector/graph-inspector.js +10 -12
  195. package/inspector/index.d.ts +4 -4
  196. package/inspector/index.js +4 -7
  197. package/inspector/initialize-on-preview.allowlist.d.ts +1 -1
  198. package/inspector/initialize-on-preview.allowlist.js +2 -6
  199. package/inspector/interfaces/edge.interface.d.ts +1 -1
  200. package/inspector/interfaces/edge.interface.js +1 -2
  201. package/inspector/interfaces/enhancer-metadata-cache-entry.interface.d.ts +3 -3
  202. package/inspector/interfaces/enhancer-metadata-cache-entry.interface.js +1 -2
  203. package/inspector/interfaces/entrypoint.interface.d.ts +2 -2
  204. package/inspector/interfaces/entrypoint.interface.js +1 -2
  205. package/inspector/interfaces/extras.interface.d.ts +1 -1
  206. package/inspector/interfaces/extras.interface.js +1 -2
  207. package/inspector/interfaces/node.interface.d.ts +2 -2
  208. package/inspector/interfaces/node.interface.js +1 -2
  209. package/inspector/interfaces/serialized-graph-json.interface.d.ts +6 -6
  210. package/inspector/interfaces/serialized-graph-json.interface.js +1 -2
  211. package/inspector/interfaces/serialized-graph-metadata.interface.d.ts +1 -1
  212. package/inspector/interfaces/serialized-graph-metadata.interface.js +1 -2
  213. package/inspector/noop-graph-inspector.d.ts +1 -1
  214. package/inspector/noop-graph-inspector.js +2 -5
  215. package/inspector/partial-graph.host.d.ts +2 -2
  216. package/inspector/partial-graph.host.js +2 -5
  217. package/inspector/serialized-graph.d.ts +7 -7
  218. package/inspector/serialized-graph.js +35 -40
  219. package/inspector/uuid-factory.js +8 -12
  220. package/interceptors/index.d.ts +2 -2
  221. package/interceptors/index.js +2 -5
  222. package/interceptors/interceptors-consumer.d.ts +4 -3
  223. package/interceptors/interceptors-consumer.js +14 -18
  224. package/interceptors/interceptors-context-creator.d.ts +10 -9
  225. package/interceptors/interceptors-context-creator.js +18 -20
  226. package/interfaces/index.d.ts +2 -0
  227. package/interfaces/index.js +2 -0
  228. package/interfaces/module-definition.interface.d.ts +2 -2
  229. package/interfaces/module-definition.interface.js +1 -2
  230. package/interfaces/module-override.interface.d.ts +1 -1
  231. package/interfaces/module-override.interface.js +1 -2
  232. package/internal.d.ts +42 -0
  233. package/internal.js +50 -0
  234. package/metadata-scanner.d.ts +1 -1
  235. package/metadata-scanner.js +8 -14
  236. package/middleware/builder.d.ts +4 -4
  237. package/middleware/builder.js +82 -80
  238. package/middleware/container.d.ts +4 -4
  239. package/middleware/container.js +10 -13
  240. package/middleware/index.d.ts +1 -1
  241. package/middleware/index.js +1 -4
  242. package/middleware/middleware-module.d.ts +8 -9
  243. package/middleware/middleware-module.js +49 -46
  244. package/middleware/resolver.d.ts +3 -3
  245. package/middleware/resolver.js +3 -5
  246. package/middleware/route-info-path-extractor.d.ts +2 -2
  247. package/middleware/route-info-path-extractor.js +26 -25
  248. package/middleware/routes-mapper.d.ts +4 -3
  249. package/middleware/routes-mapper.js +22 -24
  250. package/middleware/utils.d.ts +3 -2
  251. package/middleware/utils.js +34 -45
  252. package/nest-application-context.d.ts +26 -11
  253. package/nest-application-context.js +79 -67
  254. package/nest-application.d.ts +19 -11
  255. package/nest-application.js +168 -65
  256. package/nest-factory.d.ts +4 -5
  257. package/nest-factory.js +61 -68
  258. package/package.json +17 -9
  259. package/pipes/index.d.ts +3 -3
  260. package/pipes/index.js +3 -6
  261. package/pipes/params-token-factory.d.ts +2 -2
  262. package/pipes/params-token-factory.js +5 -9
  263. package/pipes/pipes-consumer.d.ts +3 -7
  264. package/pipes/pipes-consumer.js +17 -18
  265. package/pipes/pipes-context-creator.d.ts +10 -9
  266. package/pipes/pipes-context-creator.js +18 -20
  267. package/repl/assign-to-object.util.js +1 -4
  268. package/repl/constants.js +1 -4
  269. package/repl/index.d.ts +1 -1
  270. package/repl/index.js +1 -4
  271. package/repl/native-functions/debug-repl-fn.d.ts +2 -2
  272. package/repl/native-functions/debug-repl-fn.js +14 -21
  273. package/repl/native-functions/get-repl-fn.d.ts +2 -2
  274. package/repl/native-functions/get-repl-fn.js +8 -15
  275. package/repl/native-functions/help-repl-fn.d.ts +2 -2
  276. package/repl/native-functions/help-repl-fn.js +13 -20
  277. package/repl/native-functions/index.d.ts +6 -6
  278. package/repl/native-functions/index.js +6 -9
  279. package/repl/native-functions/methods-repl-fn.d.ts +2 -2
  280. package/repl/native-functions/methods-repl-fn.js +12 -19
  281. package/repl/native-functions/resolve-repl-fn.d.ts +2 -2
  282. package/repl/native-functions/resolve-repl-fn.js +7 -14
  283. package/repl/native-functions/select-relp-fn.d.ts +2 -2
  284. package/repl/native-functions/select-relp-fn.js +7 -14
  285. package/repl/repl-context.d.ts +3 -3
  286. package/repl/repl-context.js +21 -23
  287. package/repl/repl-function.d.ts +3 -3
  288. package/repl/repl-function.js +5 -7
  289. package/repl/repl-logger.js +10 -14
  290. package/repl/repl-native-commands.js +1 -4
  291. package/repl/repl.d.ts +1 -1
  292. package/repl/repl.interfaces.d.ts +2 -2
  293. package/repl/repl.interfaces.js +1 -2
  294. package/repl/repl.js +17 -20
  295. package/router/index.d.ts +3 -3
  296. package/router/index.js +3 -8
  297. package/router/interfaces/exceptions-filter.interface.d.ts +3 -3
  298. package/router/interfaces/exceptions-filter.interface.js +1 -2
  299. package/router/interfaces/exclude-route-metadata.interface.d.ts +1 -1
  300. package/router/interfaces/exclude-route-metadata.interface.js +1 -2
  301. package/router/interfaces/index.d.ts +4 -1
  302. package/router/interfaces/index.js +4 -4
  303. package/router/interfaces/resolved-route.interface.d.ts +32 -0
  304. package/router/interfaces/resolved-route.interface.js +1 -0
  305. package/router/interfaces/resolver.interface.d.ts +5 -1
  306. package/router/interfaces/resolver.interface.js +1 -2
  307. package/router/interfaces/route-conflict.interface.d.ts +14 -0
  308. package/router/interfaces/route-conflict.interface.js +1 -0
  309. package/router/interfaces/route-params-factory.interface.d.ts +1 -1
  310. package/router/interfaces/route-params-factory.interface.js +1 -2
  311. package/router/interfaces/route-path-metadata.interface.d.ts +2 -2
  312. package/router/interfaces/route-path-metadata.interface.js +1 -2
  313. package/router/interfaces/route-resolution-options.interface.d.ts +24 -0
  314. package/router/interfaces/route-resolution-options.interface.js +1 -0
  315. package/router/interfaces/routes.interface.d.ts +1 -1
  316. package/router/interfaces/routes.interface.js +1 -2
  317. package/router/legacy-route-converter.js +3 -7
  318. package/router/paths-explorer.d.ts +4 -5
  319. package/router/paths-explorer.js +11 -15
  320. package/router/request/index.d.ts +1 -1
  321. package/router/request/index.js +1 -5
  322. package/router/request/request-constants.js +2 -5
  323. package/router/request/request-providers.d.ts +1 -1
  324. package/router/request/request-providers.js +5 -8
  325. package/router/route-conflict-detector.d.ts +71 -0
  326. package/router/route-conflict-detector.js +276 -0
  327. package/router/route-params-factory.d.ts +2 -2
  328. package/router/route-params-factory.js +15 -19
  329. package/router/route-path-factory.d.ts +4 -4
  330. package/router/route-path-factory.js +19 -22
  331. package/router/route-specificity-sorter.d.ts +23 -0
  332. package/router/route-specificity-sorter.js +59 -0
  333. package/router/router-exception-filters.d.ts +9 -9
  334. package/router/router-exception-filters.js +15 -18
  335. package/router/router-execution-context.d.ts +17 -20
  336. package/router/router-execution-context.js +62 -55
  337. package/router/router-explorer.d.ts +25 -18
  338. package/router/router-explorer.js +116 -73
  339. package/router/router-module.d.ts +4 -4
  340. package/router/router-module.js +21 -23
  341. package/router/router-proxy.d.ts +1 -1
  342. package/router/router-proxy.js +4 -8
  343. package/router/router-response-controller.d.ts +2 -2
  344. package/router/router-response-controller.js +23 -27
  345. package/router/routes-resolver.d.ts +13 -11
  346. package/router/routes-resolver.js +42 -55
  347. package/router/sse-stream.d.ts +2 -1
  348. package/router/sse-stream.js +29 -24
  349. package/router/utils/exclude-route.util.d.ts +1 -1
  350. package/router/utils/exclude-route.util.js +7 -12
  351. package/router/utils/flatten-route-paths.util.d.ts +2 -2
  352. package/router/utils/flatten-route-paths.util.js +4 -7
  353. package/router/utils/index.d.ts +2 -2
  354. package/router/utils/index.js +2 -5
  355. package/scanner.d.ts +11 -11
  356. package/scanner.js +66 -67
  357. package/services/index.d.ts +1 -1
  358. package/services/index.js +1 -4
  359. package/services/reflector.service.d.ts +1 -1
  360. package/services/reflector.service.js +9 -13
  361. package/tsconfig.build.json +1 -9
@@ -1,53 +1,50 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Injector = void 0;
4
- const common_1 = require("@nestjs/common");
5
- const constants_1 = require("@nestjs/common/constants");
6
- const cli_colors_util_1 = require("@nestjs/common/utils/cli-colors.util");
7
- const shared_utils_1 = require("@nestjs/common/utils/shared.utils");
8
- const iterare_1 = require("iterare");
9
- const perf_hooks_1 = require("perf_hooks");
10
- const exceptions_1 = require("../errors/exceptions");
11
- const runtime_exception_1 = require("../errors/exceptions/runtime.exception");
12
- const undefined_dependency_exception_1 = require("../errors/exceptions/undefined-dependency.exception");
13
- const unknown_dependencies_exception_1 = require("../errors/exceptions/unknown-dependencies.exception");
14
- const barrier_1 = require("../helpers/barrier");
15
- const safe_instance_decorator_1 = require("../helpers/safe-instance-decorator");
16
- const constants_2 = require("./constants");
17
- const inquirer_1 = require("./inquirer");
18
- const instance_wrapper_1 = require("./instance-wrapper");
19
- const settlement_signal_1 = require("./settlement-signal");
20
- class Injector {
1
+ import { Logger, Scope, } from '@nestjs/common';
2
+ import { OPTIONAL_DEPS_METADATA, OPTIONAL_PROPERTY_DEPS_METADATA, PARAMTYPES_METADATA, PROPERTY_DEPS_METADATA, SELF_DECLARED_DEPS_METADATA, clc, isFunction, isNil, isObject, isString, isSymbol, isUndefined, } from '@nestjs/common/internal';
3
+ import { iterate } from 'iterare';
4
+ import { performance } from 'perf_hooks';
5
+ import { CircularDependencyException } from '../errors/exceptions/index.js';
6
+ import { RuntimeException } from '../errors/exceptions/runtime.exception.js';
7
+ import { UndefinedDependencyException } from '../errors/exceptions/undefined-dependency.exception.js';
8
+ import { UnknownDependenciesException } from '../errors/exceptions/unknown-dependencies.exception.js';
9
+ import { Barrier } from '../helpers/barrier.js';
10
+ import { makeSafeInstanceDecorator } from '../helpers/safe-instance-decorator.js';
11
+ import { STATIC_CONTEXT } from './constants.js';
12
+ import { isDebugMode } from './helpers/is-debug-mode.util.js';
13
+ import { INQUIRER } from './inquirer/index.js';
14
+ import { InstanceWrapper, } from './instance-wrapper.js';
15
+ import { SettlementSignal } from './settlement-signal.js';
16
+ export class Injector {
17
+ options;
18
+ logger = new Logger('InjectorLogger');
19
+ instanceDecorator = (target) => target;
21
20
  constructor(options) {
22
21
  this.options = options;
23
- this.logger = new common_1.Logger('InjectorLogger');
24
- this.instanceDecorator = (target) => target;
25
22
  if (options?.instanceDecorator) {
26
- this.instanceDecorator = (0, safe_instance_decorator_1.makeSafeInstanceDecorator)(options.instanceDecorator);
23
+ this.instanceDecorator = makeSafeInstanceDecorator(options.instanceDecorator);
27
24
  }
28
25
  }
29
- loadPrototype({ token }, collection, contextId = constants_2.STATIC_CONTEXT) {
26
+ loadPrototype({ token }, collection, contextId = STATIC_CONTEXT) {
30
27
  if (!collection) {
31
28
  return;
32
29
  }
33
30
  const target = collection.get(token);
34
31
  const instance = target.createPrototype(contextId);
35
32
  if (instance) {
36
- const wrapper = new instance_wrapper_1.InstanceWrapper({
33
+ const wrapper = new InstanceWrapper({
37
34
  ...target,
38
35
  instance,
39
36
  });
40
37
  collection.set(token, wrapper);
41
38
  }
42
39
  }
43
- async loadInstance(wrapper, collection, moduleRef, resolutionContext = { contextId: constants_2.STATIC_CONTEXT }) {
40
+ async loadInstance(wrapper, collection, moduleRef, resolutionContext = { contextId: STATIC_CONTEXT }) {
44
41
  const inquirerId = this.getContextInquirerId(resolutionContext);
45
42
  const instanceHost = wrapper.getInstanceByContextId(this.getContextId(resolutionContext.contextId, wrapper), inquirerId);
46
43
  if (instanceHost.isPending) {
47
44
  const settlementSignal = wrapper.settlementSignal;
48
45
  if (resolutionContext.inquirer &&
49
46
  settlementSignal?.isCycle(resolutionContext.inquirer.id)) {
50
- throw new exceptions_1.CircularDependencyException(`"${wrapper.name}"`);
47
+ throw new CircularDependencyException(`"${wrapper.name}"`);
51
48
  }
52
49
  return instanceHost.donePromise.then((err) => {
53
50
  if (err) {
@@ -59,8 +56,8 @@ class Injector {
59
56
  const token = wrapper.token || wrapper.name;
60
57
  const { inject } = wrapper;
61
58
  const targetWrapper = collection.get(token);
62
- if ((0, shared_utils_1.isUndefined)(targetWrapper)) {
63
- throw new runtime_exception_1.RuntimeException();
59
+ if (isUndefined(targetWrapper)) {
60
+ throw new RuntimeException();
64
61
  }
65
62
  if (instanceHost.isResolved) {
66
63
  return settlementSignal.complete();
@@ -68,10 +65,11 @@ class Injector {
68
65
  try {
69
66
  const t0 = this.getNowTimestamp();
70
67
  const localResolutionContext = this.createResolutionContext(resolutionContext.contextId, wrapper, inquirerId);
71
- const callback = async (instances) => {
68
+ const callback = async (instances, depth = 0) => {
72
69
  const properties = await this.resolveProperties(wrapper, moduleRef, inject, localResolutionContext, resolutionContext.inquirer);
73
70
  const instance = await this.instantiateClass(instances, wrapper, targetWrapper, wrapper.isTransient ? localResolutionContext : resolutionContext);
74
71
  this.applyProperties(instance, properties);
72
+ wrapper.hierarchyLevel = depth + 1;
75
73
  wrapper.initTime = this.getNowTimestamp() - t0;
76
74
  settlementSignal.complete();
77
75
  };
@@ -86,25 +84,25 @@ class Injector {
86
84
  throw err;
87
85
  }
88
86
  }
89
- async loadMiddleware(wrapper, collection, moduleRef, contextId = constants_2.STATIC_CONTEXT, inquirer) {
87
+ async loadMiddleware(wrapper, collection, moduleRef, contextId = STATIC_CONTEXT, inquirer) {
90
88
  const { metatype, token } = wrapper;
91
89
  const targetWrapper = collection.get(token);
92
- if (!(0, shared_utils_1.isUndefined)(targetWrapper.instance)) {
90
+ if (!isUndefined(targetWrapper.instance)) {
93
91
  return;
94
92
  }
95
93
  targetWrapper.instance = Object.create(metatype.prototype);
96
94
  await this.loadInstance(wrapper, collection, moduleRef, this.createResolutionContext(contextId, inquirer || wrapper));
97
95
  }
98
- async loadController(wrapper, moduleRef, contextId = constants_2.STATIC_CONTEXT) {
96
+ async loadController(wrapper, moduleRef, contextId = STATIC_CONTEXT) {
99
97
  const controllers = moduleRef.controllers;
100
98
  await this.loadInstance(wrapper, controllers, moduleRef, this.createResolutionContext(contextId, wrapper));
101
99
  await this.loadEnhancersPerContext(wrapper, contextId, wrapper);
102
100
  }
103
- async loadInjectable(wrapper, moduleRef, contextId = constants_2.STATIC_CONTEXT, inquirer) {
101
+ async loadInjectable(wrapper, moduleRef, contextId = STATIC_CONTEXT, inquirer) {
104
102
  const injectables = moduleRef.injectables;
105
103
  await this.loadInstance(wrapper, injectables, moduleRef, this.createResolutionContext(contextId, inquirer));
106
104
  }
107
- async loadProvider(wrapper, moduleRef, resolutionContext = { contextId: constants_2.STATIC_CONTEXT }) {
105
+ async loadProvider(wrapper, moduleRef, resolutionContext = { contextId: STATIC_CONTEXT }) {
108
106
  if (this.shouldSkipProviderLoading(wrapper, resolutionContext)) {
109
107
  return;
110
108
  }
@@ -113,25 +111,26 @@ class Injector {
113
111
  await this.loadEnhancersPerContext(wrapper, resolutionContext.contextId, wrapper);
114
112
  }
115
113
  applySettlementSignal(instancePerContext, host) {
116
- const settlementSignal = new settlement_signal_1.SettlementSignal();
114
+ const settlementSignal = new SettlementSignal();
117
115
  instancePerContext.donePromise = settlementSignal.asPromise();
118
116
  instancePerContext.isPending = true;
119
117
  host.settlementSignal = settlementSignal;
120
118
  return settlementSignal;
121
119
  }
122
- async resolveConstructorParams(wrapper, moduleRef, inject, callback, resolutionContext = { contextId: constants_2.STATIC_CONTEXT }, parentInquirer) {
120
+ async resolveConstructorParams(wrapper, moduleRef, inject, callback, resolutionContext = { contextId: STATIC_CONTEXT }, parentInquirer) {
123
121
  const metadata = wrapper.getCtorMetadata();
124
- if (resolutionContext.contextId !== constants_2.STATIC_CONTEXT &&
122
+ if (resolutionContext.contextId !== STATIC_CONTEXT &&
125
123
  this.hasDenseCtorMetadata(wrapper, inject, metadata)) {
126
124
  const deps = await this.loadCtorMetadata(metadata, resolutionContext.contextId, resolutionContext.inquirer, parentInquirer);
127
125
  return callback(deps);
128
126
  }
129
- const isFactoryProvider = !(0, shared_utils_1.isNil)(inject);
127
+ const isFactoryProvider = !isNil(inject);
130
128
  const [dependencies, optionalDependenciesIds] = isFactoryProvider
131
129
  ? this.getFactoryProviderDependencies(wrapper)
132
130
  : this.getClassDependencies(wrapper);
133
- const paramBarrier = new barrier_1.Barrier(dependencies.length);
131
+ const paramBarrier = new Barrier(dependencies.length);
134
132
  let isResolved = true;
133
+ let depth = 0;
135
134
  const resolveParam = async (param, index) => {
136
135
  try {
137
136
  if (this.isInquirer(param, parentInquirer)) {
@@ -157,6 +156,9 @@ class Injector {
157
156
  await paramBarrier.signalAndWait();
158
157
  const effectiveResolutionContext = this.getEffectiveResolutionContext(paramWrapper, resolutionContext, parentInquirer);
159
158
  const paramWrapperWithInstance = await this.resolveComponentHost(moduleRef, paramWrapper, effectiveResolutionContext);
159
+ if (paramWrapperWithInstance.hierarchyLevel > depth) {
160
+ depth = paramWrapperWithInstance.hierarchyLevel;
161
+ }
160
162
  const instanceHost = paramWrapperWithInstance.getInstanceByContextId(this.getContextId(effectiveResolutionContext.contextId, paramWrapperWithInstance), effectiveResolutionContext.effectiveInquirerId);
161
163
  if (!instanceHost.isResolved && !paramWrapperWithInstance.forwardRef) {
162
164
  isResolved = false;
@@ -178,7 +180,7 @@ class Injector {
178
180
  }
179
181
  };
180
182
  const instances = await Promise.all(dependencies.map(resolveParam));
181
- isResolved && (await callback(instances));
183
+ isResolved && (await callback(instances, depth));
182
184
  }
183
185
  getClassDependencies(wrapper) {
184
186
  const ctorRef = wrapper.metatype;
@@ -194,11 +196,24 @@ class Injector {
194
196
  * We are duplicating it here because that one is not supposed to be exported.
195
197
  */
196
198
  function isOptionalFactoryDependency(value) {
197
- return (!(0, shared_utils_1.isUndefined)(value.token) &&
198
- !(0, shared_utils_1.isUndefined)(value.optional) &&
199
+ const token = value?.token;
200
+ if (isNil(token)) {
201
+ return false;
202
+ }
203
+ return (!isUndefined(value.optional) &&
199
204
  !value.prototype);
200
205
  }
201
206
  const mapFactoryProviderInjectArray = (item, index) => {
207
+ const isWrappedDependency = !isNil(item) && typeof item === 'object' && 'token' in item;
208
+ const token = isWrappedDependency
209
+ ? item.token
210
+ : item;
211
+ if (isNil(token)) {
212
+ throw new UndefinedDependencyException(wrapper.name, {
213
+ index,
214
+ dependencies: (wrapper.inject ?? undefined),
215
+ });
216
+ }
202
217
  if (typeof item !== 'object') {
203
218
  return item;
204
219
  }
@@ -217,22 +232,22 @@ class Injector {
217
232
  }
218
233
  reflectConstructorParams(type) {
219
234
  const paramtypes = [
220
- ...(Reflect.getMetadata(constants_1.PARAMTYPES_METADATA, type) || []),
235
+ ...(Reflect.getMetadata(PARAMTYPES_METADATA, type) || []),
221
236
  ];
222
237
  const selfParams = this.reflectSelfParams(type);
223
238
  selfParams.forEach(({ index, param }) => (paramtypes[index] = param));
224
239
  return Array.from(paramtypes);
225
240
  }
226
241
  reflectOptionalParams(type) {
227
- return Reflect.getMetadata(constants_1.OPTIONAL_DEPS_METADATA, type) || [];
242
+ return Reflect.getOwnMetadata(OPTIONAL_DEPS_METADATA, type) || [];
228
243
  }
229
244
  reflectSelfParams(type) {
230
- return Reflect.getMetadata(constants_1.SELF_DECLARED_DEPS_METADATA, type) || [];
245
+ return Reflect.getMetadata(SELF_DECLARED_DEPS_METADATA, type) || [];
231
246
  }
232
- async resolveSingleParam(wrapper, param, dependencyContext, moduleRef, resolutionContext = { contextId: constants_2.STATIC_CONTEXT }, keyOrIndex) {
233
- if ((0, shared_utils_1.isUndefined)(param)) {
247
+ async resolveSingleParam(wrapper, param, dependencyContext, moduleRef, resolutionContext = { contextId: STATIC_CONTEXT }, keyOrIndex) {
248
+ if (isUndefined(param)) {
234
249
  this.logger.log('Nest encountered an undefined dependency. This may be due to a circular import or a missing dependency declaration.');
235
- throw new undefined_dependency_exception_1.UndefinedDependencyException(wrapper.name, dependencyContext, moduleRef);
250
+ throw new UndefinedDependencyException(wrapper.name, dependencyContext, moduleRef);
236
251
  }
237
252
  const token = this.resolveParamToken(wrapper, param);
238
253
  return this.resolveComponentWrapper(moduleRef, token, dependencyContext, wrapper, resolutionContext, keyOrIndex);
@@ -244,13 +259,13 @@ class Injector {
244
259
  }
245
260
  return param;
246
261
  }
247
- async resolveComponentWrapper(moduleRef, token, dependencyContext, wrapper, resolutionContext = { contextId: constants_2.STATIC_CONTEXT }, keyOrIndex) {
262
+ async resolveComponentWrapper(moduleRef, token, dependencyContext, wrapper, resolutionContext = { contextId: STATIC_CONTEXT }, keyOrIndex) {
248
263
  this.printResolvingDependenciesLog(token, resolutionContext.inquirer);
249
264
  this.printLookingForProviderLog(token, moduleRef);
250
265
  const providers = moduleRef.providers;
251
266
  return this.lookupComponent(providers, moduleRef, { ...dependencyContext, name: token }, wrapper, resolutionContext, keyOrIndex);
252
267
  }
253
- async resolveComponentHost(moduleRef, instanceWrapper, resolutionContext = { contextId: constants_2.STATIC_CONTEXT }) {
268
+ async resolveComponentHost(moduleRef, instanceWrapper, resolutionContext = { contextId: STATIC_CONTEXT }) {
254
269
  const inquirerId = this.getContextInquirerId(resolutionContext);
255
270
  const instanceHost = instanceWrapper.getInstanceByContextId(this.getContextId(resolutionContext.contextId, instanceWrapper), inquirerId);
256
271
  if (!instanceHost.isResolved && !instanceWrapper.forwardRef) {
@@ -259,7 +274,7 @@ class Injector {
259
274
  }
260
275
  else if (!instanceHost.isResolved &&
261
276
  instanceWrapper.forwardRef &&
262
- (resolutionContext.contextId !== constants_2.STATIC_CONTEXT || !!inquirerId)) {
277
+ (resolutionContext.contextId !== STATIC_CONTEXT || !!inquirerId)) {
263
278
  /**
264
279
  * When circular dependency has been detected between
265
280
  * either request/transient providers, we have to asynchronously
@@ -269,7 +284,7 @@ class Injector {
269
284
  */
270
285
  if (instanceHost.donePromise) {
271
286
  void instanceHost.donePromise
272
- .then(() => this.loadProvider(instanceWrapper, moduleRef, resolutionContext))
287
+ .then(() => this.loadProvider(instanceWrapper, instanceWrapper.host ?? moduleRef, resolutionContext))
273
288
  .catch(err => {
274
289
  instanceWrapper.settlementSignal?.error(err);
275
290
  });
@@ -292,11 +307,11 @@ class Injector {
292
307
  }
293
308
  return instanceWrapper;
294
309
  }
295
- async lookupComponent(providers, moduleRef, dependencyContext, wrapper, resolutionContext = { contextId: constants_2.STATIC_CONTEXT }, keyOrIndex) {
310
+ async lookupComponent(providers, moduleRef, dependencyContext, wrapper, resolutionContext = { contextId: STATIC_CONTEXT }, keyOrIndex) {
296
311
  const token = wrapper.token || wrapper.name;
297
312
  const { name } = dependencyContext;
298
313
  if (wrapper && token === name) {
299
- throw new unknown_dependencies_exception_1.UnknownDependenciesException(wrapper.name, dependencyContext, moduleRef, { id: wrapper.id });
314
+ throw new UnknownDependenciesException(wrapper.name, dependencyContext, moduleRef, { id: wrapper.id });
300
315
  }
301
316
  if (name && providers.has(name)) {
302
317
  const instanceWrapper = providers.get(name);
@@ -306,14 +321,14 @@ class Injector {
306
321
  }
307
322
  return this.lookupComponentInParentModules(dependencyContext, moduleRef, wrapper, resolutionContext, keyOrIndex);
308
323
  }
309
- async lookupComponentInParentModules(dependencyContext, moduleRef, wrapper, resolutionContext = { contextId: constants_2.STATIC_CONTEXT }, keyOrIndex) {
324
+ async lookupComponentInParentModules(dependencyContext, moduleRef, wrapper, resolutionContext = { contextId: STATIC_CONTEXT }, keyOrIndex) {
310
325
  const instanceWrapper = await this.lookupComponentInImports(moduleRef, dependencyContext.name, wrapper, new Set(), resolutionContext, keyOrIndex);
311
- if ((0, shared_utils_1.isNil)(instanceWrapper)) {
312
- throw new unknown_dependencies_exception_1.UnknownDependenciesException(wrapper.name, dependencyContext, moduleRef, { id: wrapper.id });
326
+ if (isNil(instanceWrapper)) {
327
+ throw new UnknownDependenciesException(wrapper.name, dependencyContext, moduleRef, { id: wrapper.id });
313
328
  }
314
329
  return instanceWrapper;
315
330
  }
316
- async lookupComponentInImports(moduleRef, name, wrapper, moduleRegistry = new Set(), resolutionContext = { contextId: constants_2.STATIC_CONTEXT }, keyOrIndex, isTraversing) {
331
+ async lookupComponentInImports(moduleRef, name, wrapper, moduleRegistry = new Set(), resolutionContext = { contextId: STATIC_CONTEXT }, keyOrIndex, isTraversing) {
317
332
  let instanceWrapperRef = null;
318
333
  const imports = moduleRef.imports || new Set();
319
334
  const identity = (item) => item;
@@ -349,16 +364,16 @@ class Injector {
349
364
  }
350
365
  return instanceWrapperRef;
351
366
  }
352
- async resolveProperties(wrapper, moduleRef, inject, resolutionContext = { contextId: constants_2.STATIC_CONTEXT }, parentInquirer) {
353
- if (!(0, shared_utils_1.isNil)(inject)) {
367
+ async resolveProperties(wrapper, moduleRef, inject, resolutionContext = { contextId: STATIC_CONTEXT }, parentInquirer) {
368
+ if (!isNil(inject)) {
354
369
  return [];
355
370
  }
356
371
  const metadata = wrapper.getPropertiesMetadata();
357
- if (metadata && resolutionContext.contextId !== constants_2.STATIC_CONTEXT) {
372
+ if (metadata && resolutionContext.contextId !== STATIC_CONTEXT) {
358
373
  return this.loadPropertiesMetadata(metadata, resolutionContext.contextId, resolutionContext.inquirer);
359
374
  }
360
375
  const properties = this.reflectProperties(wrapper.metatype);
361
- const propertyBarrier = new barrier_1.Barrier(properties.length);
376
+ const propertyBarrier = new Barrier(properties.length);
362
377
  const instances = await Promise.all(properties.map(async (item) => {
363
378
  try {
364
379
  const dependencyContext = {
@@ -407,8 +422,8 @@ class Injector {
407
422
  }));
408
423
  }
409
424
  reflectProperties(type) {
410
- const properties = Reflect.getMetadata(constants_1.PROPERTY_DEPS_METADATA, type) || [];
411
- const optionalKeys = Reflect.getMetadata(constants_1.OPTIONAL_PROPERTY_DEPS_METADATA, type) || [];
425
+ const properties = Reflect.getMetadata(PROPERTY_DEPS_METADATA, type) || [];
426
+ const optionalKeys = Reflect.getMetadata(OPTIONAL_PROPERTY_DEPS_METADATA, type) || [];
412
427
  return properties.map((item) => ({
413
428
  ...item,
414
429
  name: item.type,
@@ -416,14 +431,14 @@ class Injector {
416
431
  }));
417
432
  }
418
433
  applyProperties(instance, properties) {
419
- if (!(0, shared_utils_1.isObject)(instance)) {
420
- return undefined;
434
+ if (!isObject(instance)) {
435
+ return;
421
436
  }
422
- (0, iterare_1.iterate)(properties)
423
- .filter(item => !(0, shared_utils_1.isNil)(item.instance))
437
+ iterate(properties)
438
+ .filter(item => !isNil(item.instance))
424
439
  .forEach(item => (instance[item.key] = item.instance));
425
440
  }
426
- async instantiateClass(instances, wrapper, targetMetatype, resolutionContext = { contextId: constants_2.STATIC_CONTEXT }) {
441
+ async instantiateClass(instances, wrapper, targetMetatype, resolutionContext = { contextId: STATIC_CONTEXT }) {
427
442
  const { metatype, inject } = wrapper;
428
443
  const inquirerId = this.getContextInquirerId(resolutionContext);
429
444
  const instanceHost = targetMetatype.getInstanceByContextId(this.getContextId(resolutionContext.contextId, targetMetatype), inquirerId);
@@ -432,7 +447,7 @@ class Injector {
432
447
  instanceHost.isResolved = true;
433
448
  return instanceHost.instance;
434
449
  }
435
- if ((0, shared_utils_1.isNil)(inject) && isInContext) {
450
+ if (isNil(inject) && isInContext) {
436
451
  instanceHost.instance = wrapper.forwardRef
437
452
  ? Object.assign(instanceHost.instance, new metatype(...instances))
438
453
  : new metatype(...instances);
@@ -462,7 +477,7 @@ class Injector {
462
477
  return host && host.instance;
463
478
  }
464
479
  async loadEnhancersPerContext(wrapper, ctx, inquirer) {
465
- if (ctx === constants_2.STATIC_CONTEXT) {
480
+ if (ctx === STATIC_CONTEXT) {
466
481
  return;
467
482
  }
468
483
  const enhancers = wrapper.getEnhancersMetadata() || [];
@@ -512,9 +527,9 @@ class Injector {
512
527
  wrapper.isExplicitlyRequested(resolutionContext.contextId, resolutionContext.inquirer));
513
528
  }
514
529
  shouldSkipProviderLoading(wrapper, resolutionContext) {
515
- const isStaticContext = resolutionContext.contextId === constants_2.STATIC_CONTEXT;
530
+ const isStaticContext = resolutionContext.contextId === STATIC_CONTEXT;
516
531
  const hasNoInquirer = !resolutionContext.inquirer;
517
- const isTopLevelStaticTransientOrRequestProvider = hasNoInquirer && (wrapper.isTransient || wrapper.scope === common_1.Scope.REQUEST);
532
+ const isTopLevelStaticTransientOrRequestProvider = hasNoInquirer && (wrapper.isTransient || wrapper.scope === Scope.REQUEST);
518
533
  const isStaticInquirerOutsideResolutionContext = !!resolutionContext.inquirer &&
519
534
  !this.isInContext(resolutionContext.inquirer, this.createResolutionContext(resolutionContext.contextId, resolutionContext.inquirer));
520
535
  const shouldSkipForStaticBootstrap = isStaticContext &&
@@ -532,7 +547,7 @@ class Injector {
532
547
  getEffectiveInquirer(dependency, resolutionContext, parentInquirer) {
533
548
  const { inquirer, contextId } = resolutionContext;
534
549
  if (dependency?.isTransient && inquirer?.isTransient && parentInquirer) {
535
- if (contextId === constants_2.STATIC_CONTEXT) {
550
+ if (contextId === STATIC_CONTEXT) {
536
551
  return inquirer.getRootInquirer() ?? parentInquirer;
537
552
  }
538
553
  return parentInquirer;
@@ -541,7 +556,7 @@ class Injector {
541
556
  }
542
557
  getEffectiveInquirerId(dependency, resolutionContext, parentInquirer) {
543
558
  const { contextId, inquirer, effectiveInquirerId } = resolutionContext;
544
- if (contextId === constants_2.STATIC_CONTEXT &&
559
+ if (contextId === STATIC_CONTEXT &&
545
560
  dependency?.isTransient &&
546
561
  inquirer?.isTransient &&
547
562
  parentInquirer) {
@@ -553,7 +568,7 @@ class Injector {
553
568
  }
554
569
  getStaticTransientResolutionContext(resolutionContext, parentInquirer) {
555
570
  const { contextId, inquirer, effectiveInquirerId } = resolutionContext;
556
- if (contextId === constants_2.STATIC_CONTEXT &&
571
+ if (contextId === STATIC_CONTEXT &&
557
572
  inquirer?.isTransient &&
558
573
  parentInquirer) {
559
574
  const baseInquirerId = effectiveInquirerId ?? this.getInquirerId(parentInquirer);
@@ -571,7 +586,7 @@ class Injector {
571
586
  // The fast path requires a fully populated metadata array.
572
587
  // While another request is still registering dependency metadata,
573
588
  // sparse entries here would feed request-scoped factories `undefined`.
574
- const expectedDepsLength = !(0, shared_utils_1.isNil)(inject)
589
+ const expectedDepsLength = !isNil(inject)
575
590
  ? inject.length
576
591
  : wrapper.metatype
577
592
  ? this.reflectConstructorParams(wrapper.metatype).length
@@ -592,13 +607,13 @@ class Injector {
592
607
  : this.resolveComponentHost(item.host, item, this.getEffectiveResolutionContext(item, this.createResolutionContext(contextId, inquirer), parentInquirer));
593
608
  }
594
609
  isInquirerRequest(item, parentInquirer) {
595
- return item.isTransient && item.name === inquirer_1.INQUIRER && parentInquirer;
610
+ return item.isTransient && item.name === INQUIRER && parentInquirer;
596
611
  }
597
612
  isInquirer(param, parentInquirer) {
598
- return param === inquirer_1.INQUIRER && parentInquirer;
613
+ return param === INQUIRER && parentInquirer;
599
614
  }
600
615
  addDependencyMetadata(keyOrIndex, hostWrapper, instanceWrapper) {
601
- if ((0, shared_utils_1.isSymbol)(keyOrIndex) || (0, shared_utils_1.isString)(keyOrIndex)) {
616
+ if (isSymbol(keyOrIndex) || isString(keyOrIndex)) {
602
617
  hostWrapper.addPropertiesMetadata(keyOrIndex, instanceWrapper);
603
618
  }
604
619
  else {
@@ -606,36 +621,33 @@ class Injector {
606
621
  }
607
622
  }
608
623
  getTokenName(token) {
609
- return (0, shared_utils_1.isFunction)(token) ? token.name : token.toString();
624
+ return isFunction(token) ? token.name : token.toString();
610
625
  }
611
626
  printResolvingDependenciesLog(token, inquirer) {
612
- if (!this.isDebugMode()) {
627
+ if (!isDebugMode()) {
613
628
  return;
614
629
  }
615
630
  const tokenName = this.getTokenName(token);
616
631
  const dependentName = (inquirer?.name && inquirer.name.toString?.()) ?? 'unknown';
617
632
  const isAlias = dependentName === tokenName;
618
- const messageToPrint = `Resolving dependency ${cli_colors_util_1.clc.cyanBright(tokenName)}${cli_colors_util_1.clc.green(' in the ')}${cli_colors_util_1.clc.yellow(dependentName)}${cli_colors_util_1.clc.green(` provider ${isAlias ? '(alias)' : ''}`)}`;
633
+ const messageToPrint = `Resolving dependency ${clc.cyanBright(tokenName)}${clc.green(' in the ')}${clc.yellow(dependentName)}${clc.green(` provider ${isAlias ? '(alias)' : ''}`)}`;
619
634
  this.logger.log(messageToPrint);
620
635
  }
621
636
  printLookingForProviderLog(token, moduleRef) {
622
- if (!this.isDebugMode()) {
637
+ if (!isDebugMode()) {
623
638
  return;
624
639
  }
625
640
  const tokenName = this.getTokenName(token);
626
641
  const moduleRefName = moduleRef?.metatype?.name ?? 'unknown';
627
- this.logger.log(`Looking for ${cli_colors_util_1.clc.cyanBright(tokenName)}${cli_colors_util_1.clc.green(' in ')}${cli_colors_util_1.clc.magentaBright(moduleRefName)}`);
642
+ this.logger.log(`Looking for ${clc.cyanBright(tokenName)}${clc.green(' in ')}${clc.magentaBright(moduleRefName)}`);
628
643
  }
629
644
  printFoundInModuleLog(token, moduleRef) {
630
- if (!this.isDebugMode()) {
645
+ if (!isDebugMode()) {
631
646
  return;
632
647
  }
633
648
  const tokenName = this.getTokenName(token);
634
649
  const moduleRefName = moduleRef?.metatype?.name ?? 'unknown';
635
- this.logger.log(`Found ${cli_colors_util_1.clc.cyanBright(tokenName)}${cli_colors_util_1.clc.green(' in ')}${cli_colors_util_1.clc.magentaBright(moduleRefName)}`);
636
- }
637
- isDebugMode() {
638
- return !!process.env.NEST_DEBUG;
650
+ this.logger.log(`Found ${clc.cyanBright(tokenName)}${clc.green(' in ')}${clc.magentaBright(moduleRefName)}`);
639
651
  }
640
652
  getContextId(contextId, instanceWrapper) {
641
653
  return contextId.getParent
@@ -646,7 +658,6 @@ class Injector {
646
658
  : contextId;
647
659
  }
648
660
  getNowTimestamp() {
649
- return perf_hooks_1.performance.now();
661
+ return performance.now();
650
662
  }
651
663
  }
652
- exports.Injector = Injector;
@@ -1 +1 @@
1
- export * from './inquirer-constants';
1
+ export * from './inquirer-constants.js';
@@ -1,4 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./inquirer-constants"), exports);
1
+ export * from './inquirer-constants.js';
@@ -1,4 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.INQUIRER = void 0;
4
- exports.INQUIRER = 'INQUIRER';
1
+ export const INQUIRER = 'INQUIRER';
@@ -1,2 +1,2 @@
1
- import { Provider } from '@nestjs/common';
1
+ import { type Provider } from '@nestjs/common';
2
2
  export declare const inquirerProvider: Provider;
@@ -1,11 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.inquirerProvider = void 0;
4
- const common_1 = require("@nestjs/common");
5
- const inquirer_constants_1 = require("./inquirer-constants");
1
+ import { Scope } from '@nestjs/common';
2
+ import { INQUIRER } from './inquirer-constants.js';
6
3
  const noop = () => { };
7
- exports.inquirerProvider = {
8
- provide: inquirer_constants_1.INQUIRER,
9
- scope: common_1.Scope.TRANSIENT,
4
+ export const inquirerProvider = {
5
+ provide: INQUIRER,
6
+ scope: Scope.TRANSIENT,
10
7
  useFactory: noop,
11
8
  };
@@ -1,6 +1,6 @@
1
- import { InjectionToken } from '@nestjs/common';
2
- import { NestContainer } from './container';
3
- import { InstanceWrapper } from './instance-wrapper';
1
+ import type { InjectionToken } from '@nestjs/common';
2
+ import { NestContainer } from './container.js';
3
+ import { InstanceWrapper } from './instance-wrapper.js';
4
4
  export interface InstanceLink<T = any> {
5
5
  token: InjectionToken;
6
6
  wrapperRef: InstanceWrapper<T>;
@@ -1,18 +1,16 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InstanceLinksHost = void 0;
4
- const shared_utils_1 = require("@nestjs/common/utils/shared.utils");
5
- const unknown_element_exception_1 = require("../errors/exceptions/unknown-element.exception");
6
- class InstanceLinksHost {
1
+ import { UnknownElementException } from '../errors/exceptions/unknown-element.exception.js';
2
+ import { isFunction } from '@nestjs/common/internal';
3
+ export class InstanceLinksHost {
4
+ container;
5
+ instanceLinks = new Map();
7
6
  constructor(container) {
8
7
  this.container = container;
9
- this.instanceLinks = new Map();
10
8
  this.initialize();
11
9
  }
12
10
  get(token, options = {}) {
13
11
  const instanceLinksForGivenToken = this.instanceLinks.get(token);
14
12
  if (!instanceLinksForGivenToken) {
15
- throw new unknown_element_exception_1.UnknownElementException(this.getInstanceNameByToken(token));
13
+ throw new UnknownElementException(this.getInstanceNameByToken(token));
16
14
  }
17
15
  if (options.each) {
18
16
  return instanceLinksForGivenToken;
@@ -21,7 +19,7 @@ class InstanceLinksHost {
21
19
  ? instanceLinksForGivenToken.find(item => item.moduleId === options.moduleId)
22
20
  : instanceLinksForGivenToken[instanceLinksForGivenToken.length - 1];
23
21
  if (!instanceLink) {
24
- throw new unknown_element_exception_1.UnknownElementException(this.getInstanceNameByToken(token));
22
+ throw new UnknownElementException(this.getInstanceNameByToken(token));
25
23
  }
26
24
  return instanceLink;
27
25
  }
@@ -50,7 +48,6 @@ class InstanceLinksHost {
50
48
  }
51
49
  }
52
50
  getInstanceNameByToken(token) {
53
- return (0, shared_utils_1.isFunction)(token) ? token?.name : token;
51
+ return isFunction(token) ? token?.name : token;
54
52
  }
55
53
  }
56
- exports.InstanceLinksHost = InstanceLinksHost;
@@ -1,8 +1,8 @@
1
- import { Logger, LoggerService } from '@nestjs/common';
2
- import { GraphInspector } from '../inspector/graph-inspector';
3
- import { NestContainer } from './container';
4
- import { Injector } from './injector';
5
- import { Module } from './module';
1
+ import { Logger, type LoggerService } from '@nestjs/common';
2
+ import { GraphInspector } from '../inspector/graph-inspector.js';
3
+ import { NestContainer } from './container.js';
4
+ import { Injector } from './injector.js';
5
+ import { Module } from './module.js';
6
6
  export declare class InstanceLoader<TInjector extends Injector = Injector> {
7
7
  protected readonly container: NestContainer;
8
8
  protected readonly injector: TInjector;