@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,23 @@
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';
6
+ export declare class InstanceLoader<TInjector extends Injector = Injector> {
7
+ protected readonly container: NestContainer;
8
+ protected readonly injector: TInjector;
9
+ protected readonly graphInspector: GraphInspector;
10
+ private logger;
11
+ constructor(container: NestContainer, injector: TInjector, graphInspector: GraphInspector, logger?: LoggerService);
12
+ setLogger(logger: Logger): void;
13
+ createInstancesOfDependencies(modules?: Map<string, Module>): Promise<void>;
14
+ private createPrototypes;
15
+ private createInstances;
16
+ private createPrototypesOfProviders;
17
+ private createInstancesOfProviders;
18
+ private createPrototypesOfControllers;
19
+ private createInstancesOfControllers;
20
+ private createPrototypesOfInjectables;
21
+ private createInstancesOfInjectables;
22
+ private isModuleWhitelisted;
23
+ }
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InstanceLoader = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const messages_1 = require("../helpers/messages");
6
+ const internal_core_module_1 = require("./internal-core-module/internal-core-module");
7
+ class InstanceLoader {
8
+ constructor(container, injector, graphInspector, logger = new common_1.Logger(InstanceLoader.name, {
9
+ timestamp: true,
10
+ })) {
11
+ this.container = container;
12
+ this.injector = injector;
13
+ this.graphInspector = graphInspector;
14
+ this.logger = logger;
15
+ }
16
+ setLogger(logger) {
17
+ this.logger = logger;
18
+ }
19
+ async createInstancesOfDependencies(modules = this.container.getModules()) {
20
+ this.createPrototypes(modules);
21
+ try {
22
+ await this.createInstances(modules);
23
+ }
24
+ catch (err) {
25
+ this.graphInspector.inspectModules(modules);
26
+ this.graphInspector.registerPartial(err);
27
+ throw err;
28
+ }
29
+ this.graphInspector.inspectModules(modules);
30
+ }
31
+ createPrototypes(modules) {
32
+ modules.forEach(moduleRef => {
33
+ this.createPrototypesOfProviders(moduleRef);
34
+ this.createPrototypesOfInjectables(moduleRef);
35
+ this.createPrototypesOfControllers(moduleRef);
36
+ });
37
+ }
38
+ async createInstances(modules) {
39
+ await Promise.all([...modules.values()].map(async (moduleRef) => {
40
+ await this.createInstancesOfProviders(moduleRef);
41
+ await this.createInstancesOfInjectables(moduleRef);
42
+ await this.createInstancesOfControllers(moduleRef);
43
+ const { name } = moduleRef;
44
+ this.isModuleWhitelisted(name) &&
45
+ this.logger.log((0, messages_1.MODULE_INIT_MESSAGE) `${name}`);
46
+ }));
47
+ }
48
+ createPrototypesOfProviders(moduleRef) {
49
+ const { providers } = moduleRef;
50
+ providers.forEach(wrapper => this.injector.loadPrototype(wrapper, providers));
51
+ }
52
+ async createInstancesOfProviders(moduleRef) {
53
+ const { providers } = moduleRef;
54
+ const wrappers = [...providers.values()];
55
+ await Promise.all(wrappers.map(async (item) => {
56
+ await this.injector.loadProvider(item, moduleRef);
57
+ this.graphInspector.inspectInstanceWrapper(item, moduleRef);
58
+ }));
59
+ }
60
+ createPrototypesOfControllers(moduleRef) {
61
+ const { controllers } = moduleRef;
62
+ controllers.forEach(wrapper => this.injector.loadPrototype(wrapper, controllers));
63
+ }
64
+ async createInstancesOfControllers(moduleRef) {
65
+ const { controllers } = moduleRef;
66
+ const wrappers = [...controllers.values()];
67
+ await Promise.all(wrappers.map(async (item) => {
68
+ await this.injector.loadController(item, moduleRef);
69
+ this.graphInspector.inspectInstanceWrapper(item, moduleRef);
70
+ }));
71
+ }
72
+ createPrototypesOfInjectables(moduleRef) {
73
+ const { injectables } = moduleRef;
74
+ injectables.forEach(wrapper => this.injector.loadPrototype(wrapper, injectables));
75
+ }
76
+ async createInstancesOfInjectables(moduleRef) {
77
+ const { injectables } = moduleRef;
78
+ const wrappers = [...injectables.values()];
79
+ await Promise.all(wrappers.map(async (item) => {
80
+ await this.injector.loadInjectable(item, moduleRef);
81
+ this.graphInspector.inspectInstanceWrapper(item, moduleRef);
82
+ }));
83
+ }
84
+ isModuleWhitelisted(name) {
85
+ return name !== internal_core_module_1.InternalCoreModule.name;
86
+ }
87
+ }
88
+ exports.InstanceLoader = InstanceLoader;
@@ -0,0 +1,99 @@
1
+ import { Provider, Scope, Type } from '@nestjs/common';
2
+ import { EnhancerSubtype } from '@nestjs/common/constants';
3
+ import { FactoryProvider, InjectionToken } from '@nestjs/common/interfaces';
4
+ import { Module } from './module';
5
+ import { SettlementSignal } from './settlement-signal';
6
+ export declare const INSTANCE_METADATA_SYMBOL: unique symbol;
7
+ export declare const INSTANCE_ID_SYMBOL: unique symbol;
8
+ export interface HostComponentInfo {
9
+ /**
10
+ * Injection token (or class reference)
11
+ */
12
+ token: InjectionToken;
13
+ /**
14
+ * Flag that indicates whether DI subtree is durable
15
+ */
16
+ isTreeDurable: boolean;
17
+ }
18
+ export interface ContextId {
19
+ readonly id: number;
20
+ payload?: unknown;
21
+ getParent?(info: HostComponentInfo): ContextId;
22
+ }
23
+ export interface InstancePerContext<T> {
24
+ instance: T;
25
+ isResolved?: boolean;
26
+ isPending?: boolean;
27
+ donePromise?: Promise<unknown>;
28
+ isConstructorCalled?: boolean;
29
+ }
30
+ export interface PropertyMetadata {
31
+ key: symbol | string;
32
+ wrapper: InstanceWrapper;
33
+ }
34
+ export declare class InstanceWrapper<T = any> {
35
+ readonly name: any;
36
+ readonly token: InjectionToken;
37
+ readonly async?: boolean;
38
+ readonly host?: Module;
39
+ readonly isAlias: boolean;
40
+ readonly subtype?: EnhancerSubtype;
41
+ scope?: Scope;
42
+ metatype: Type<T> | Function | null;
43
+ inject?: FactoryProvider['inject'] | null;
44
+ forwardRef?: boolean;
45
+ durable?: boolean;
46
+ initTime?: number;
47
+ settlementSignal?: SettlementSignal;
48
+ private static logger;
49
+ private readonly values;
50
+ private readonly [INSTANCE_METADATA_SYMBOL];
51
+ private readonly [INSTANCE_ID_SYMBOL];
52
+ private transientMap?;
53
+ private isTreeStatic;
54
+ private isTreeDurable;
55
+ /**
56
+ * The root inquirer reference. Present only if child instance wrapper
57
+ * is transient and has a parent inquirer.
58
+ */
59
+ private rootInquirer;
60
+ constructor(metadata?: Partial<InstanceWrapper<T>> & Partial<InstancePerContext<T>>);
61
+ get id(): string;
62
+ set instance(value: T);
63
+ get instance(): T;
64
+ get isNotMetatype(): boolean;
65
+ get isFactory(): boolean;
66
+ get isTransient(): boolean;
67
+ getInstanceByContextId(contextId: ContextId, inquirerId?: string): InstancePerContext<T>;
68
+ getInstanceByInquirerId(contextId: ContextId, inquirerId: string): InstancePerContext<T>;
69
+ setInstanceByContextId(contextId: ContextId, value: InstancePerContext<T>, inquirerId?: string): void;
70
+ setInstanceByInquirerId(contextId: ContextId, inquirerId: string, value: InstancePerContext<T>): void;
71
+ removeInstanceByContextId(contextId: ContextId, inquirerId?: string): void;
72
+ removeInstanceByInquirerId(contextId: ContextId, inquirerId: string): void;
73
+ addCtorMetadata(index: number, wrapper: InstanceWrapper): void;
74
+ getCtorMetadata(): InstanceWrapper[];
75
+ addPropertiesMetadata(key: symbol | string, wrapper: InstanceWrapper): void;
76
+ getPropertiesMetadata(): PropertyMetadata[];
77
+ addEnhancerMetadata(wrapper: InstanceWrapper): void;
78
+ getEnhancersMetadata(): InstanceWrapper[];
79
+ isDependencyTreeDurable(lookupRegistry?: string[]): boolean;
80
+ introspectDepsAttribute(callback: (collection: InstanceWrapper[], lookupRegistry: string[]) => boolean, lookupRegistry?: string[]): boolean;
81
+ isDependencyTreeStatic(lookupRegistry?: string[]): boolean;
82
+ cloneStaticInstance(contextId: ContextId): InstancePerContext<T>;
83
+ cloneTransientInstance(contextId: ContextId, inquirerId: string): InstancePerContext<T>;
84
+ createPrototype(contextId: ContextId): any;
85
+ isInRequestScope(contextId: ContextId, inquirer?: InstanceWrapper): boolean;
86
+ isLazyTransient(contextId: ContextId, inquirer: InstanceWrapper | undefined): boolean;
87
+ isExplicitlyRequested(contextId: ContextId, inquirer?: InstanceWrapper): boolean;
88
+ isStatic(contextId: ContextId, inquirer: InstanceWrapper | undefined): boolean;
89
+ attachRootInquirer(inquirer: InstanceWrapper): void;
90
+ getRootInquirer(): InstanceWrapper | undefined;
91
+ getStaticTransientInstances(): (InstancePerContext<T> | undefined)[];
92
+ mergeWith(provider: Provider): void;
93
+ private isNewable;
94
+ private initialize;
95
+ private printIntrospectedAsRequestScoped;
96
+ private printIntrospectedAsDurable;
97
+ private isDebugMode;
98
+ private generateUuid;
99
+ }
@@ -0,0 +1,350 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.InstanceWrapper = exports.INSTANCE_ID_SYMBOL = exports.INSTANCE_METADATA_SYMBOL = void 0;
5
+ const common_1 = require("@nestjs/common");
6
+ const cli_colors_util_1 = require("@nestjs/common/utils/cli-colors.util");
7
+ const random_string_generator_util_1 = require("@nestjs/common/utils/random-string-generator.util");
8
+ const shared_utils_1 = require("@nestjs/common/utils/shared.utils");
9
+ const iterare_1 = require("iterare");
10
+ const uuid_factory_1 = require("../inspector/uuid-factory");
11
+ const constants_1 = require("./constants");
12
+ const provider_classifier_1 = require("./helpers/provider-classifier");
13
+ exports.INSTANCE_METADATA_SYMBOL = Symbol.for('instance_metadata:cache');
14
+ exports.INSTANCE_ID_SYMBOL = Symbol.for('instance_metadata:id');
15
+ class InstanceWrapper {
16
+ constructor(metadata = {}) {
17
+ this.isAlias = false;
18
+ this.scope = common_1.Scope.DEFAULT;
19
+ this.values = new WeakMap();
20
+ this[_a] = {};
21
+ this.initialize(metadata);
22
+ this[exports.INSTANCE_ID_SYMBOL] =
23
+ metadata[exports.INSTANCE_ID_SYMBOL] ?? this.generateUuid();
24
+ }
25
+ get id() {
26
+ return this[exports.INSTANCE_ID_SYMBOL];
27
+ }
28
+ set instance(value) {
29
+ this.values.set(constants_1.STATIC_CONTEXT, { instance: value });
30
+ }
31
+ get instance() {
32
+ const instancePerContext = this.getInstanceByContextId(constants_1.STATIC_CONTEXT);
33
+ return instancePerContext.instance;
34
+ }
35
+ get isNotMetatype() {
36
+ return !this.metatype || this.isFactory;
37
+ }
38
+ get isFactory() {
39
+ return !!this.metatype && !(0, shared_utils_1.isNil)(this.inject);
40
+ }
41
+ get isTransient() {
42
+ return this.scope === common_1.Scope.TRANSIENT;
43
+ }
44
+ getInstanceByContextId(contextId, inquirerId) {
45
+ if (this.scope === common_1.Scope.TRANSIENT && inquirerId) {
46
+ return this.getInstanceByInquirerId(contextId, inquirerId);
47
+ }
48
+ const instancePerContext = this.values.get(contextId);
49
+ return instancePerContext
50
+ ? instancePerContext
51
+ : contextId !== constants_1.STATIC_CONTEXT
52
+ ? this.cloneStaticInstance(contextId)
53
+ : {
54
+ instance: null,
55
+ isResolved: true,
56
+ isPending: false,
57
+ };
58
+ }
59
+ getInstanceByInquirerId(contextId, inquirerId) {
60
+ let collectionPerContext = this.transientMap.get(inquirerId);
61
+ if (!collectionPerContext) {
62
+ collectionPerContext = new WeakMap();
63
+ this.transientMap.set(inquirerId, collectionPerContext);
64
+ }
65
+ const instancePerContext = collectionPerContext.get(contextId);
66
+ return instancePerContext
67
+ ? instancePerContext
68
+ : this.cloneTransientInstance(contextId, inquirerId);
69
+ }
70
+ setInstanceByContextId(contextId, value, inquirerId) {
71
+ if (this.scope === common_1.Scope.TRANSIENT && inquirerId) {
72
+ return this.setInstanceByInquirerId(contextId, inquirerId, value);
73
+ }
74
+ this.values.set(contextId, value);
75
+ }
76
+ setInstanceByInquirerId(contextId, inquirerId, value) {
77
+ let collection = this.transientMap.get(inquirerId);
78
+ if (!collection) {
79
+ collection = new WeakMap();
80
+ this.transientMap.set(inquirerId, collection);
81
+ }
82
+ collection.set(contextId, value);
83
+ }
84
+ removeInstanceByContextId(contextId, inquirerId) {
85
+ if (this.scope === common_1.Scope.TRANSIENT && inquirerId) {
86
+ return this.removeInstanceByInquirerId(contextId, inquirerId);
87
+ }
88
+ this.values.delete(contextId);
89
+ }
90
+ removeInstanceByInquirerId(contextId, inquirerId) {
91
+ const collection = this.transientMap.get(inquirerId);
92
+ if (!collection) {
93
+ return;
94
+ }
95
+ collection.delete(contextId);
96
+ }
97
+ addCtorMetadata(index, wrapper) {
98
+ if (!this[exports.INSTANCE_METADATA_SYMBOL].dependencies) {
99
+ this[exports.INSTANCE_METADATA_SYMBOL].dependencies = [];
100
+ }
101
+ this[exports.INSTANCE_METADATA_SYMBOL].dependencies[index] = wrapper;
102
+ }
103
+ getCtorMetadata() {
104
+ return this[exports.INSTANCE_METADATA_SYMBOL].dependencies;
105
+ }
106
+ addPropertiesMetadata(key, wrapper) {
107
+ if (!this[exports.INSTANCE_METADATA_SYMBOL].properties) {
108
+ this[exports.INSTANCE_METADATA_SYMBOL].properties = [];
109
+ }
110
+ this[exports.INSTANCE_METADATA_SYMBOL].properties.push({
111
+ key,
112
+ wrapper,
113
+ });
114
+ }
115
+ getPropertiesMetadata() {
116
+ return this[exports.INSTANCE_METADATA_SYMBOL].properties;
117
+ }
118
+ addEnhancerMetadata(wrapper) {
119
+ if (!this[exports.INSTANCE_METADATA_SYMBOL].enhancers) {
120
+ this[exports.INSTANCE_METADATA_SYMBOL].enhancers = [];
121
+ }
122
+ this[exports.INSTANCE_METADATA_SYMBOL].enhancers.push(wrapper);
123
+ }
124
+ getEnhancersMetadata() {
125
+ return this[exports.INSTANCE_METADATA_SYMBOL].enhancers;
126
+ }
127
+ isDependencyTreeDurable(lookupRegistry = []) {
128
+ if (!(0, shared_utils_1.isUndefined)(this.isTreeDurable)) {
129
+ return this.isTreeDurable;
130
+ }
131
+ if (this.scope === common_1.Scope.REQUEST) {
132
+ this.isTreeDurable = this.durable === undefined ? false : this.durable;
133
+ if (this.isTreeDurable) {
134
+ this.printIntrospectedAsDurable();
135
+ }
136
+ return this.isTreeDurable;
137
+ }
138
+ const isStatic = this.isDependencyTreeStatic();
139
+ if (isStatic) {
140
+ return false;
141
+ }
142
+ const isTreeNonDurable = this.introspectDepsAttribute((collection, registry) => collection.some((item) => !item.isDependencyTreeStatic() &&
143
+ !item.isDependencyTreeDurable(registry)), lookupRegistry);
144
+ this.isTreeDurable = !isTreeNonDurable;
145
+ if (this.isTreeDurable) {
146
+ this.printIntrospectedAsDurable();
147
+ }
148
+ return this.isTreeDurable;
149
+ }
150
+ introspectDepsAttribute(callback, lookupRegistry = []) {
151
+ if (lookupRegistry.includes(this[exports.INSTANCE_ID_SYMBOL])) {
152
+ return false;
153
+ }
154
+ lookupRegistry = lookupRegistry.concat(this[exports.INSTANCE_ID_SYMBOL]);
155
+ const { dependencies, properties, enhancers } = this[exports.INSTANCE_METADATA_SYMBOL];
156
+ let introspectionResult = dependencies
157
+ ? callback(dependencies, lookupRegistry)
158
+ : false;
159
+ if (introspectionResult || !(properties || enhancers)) {
160
+ return introspectionResult;
161
+ }
162
+ introspectionResult = properties
163
+ ? callback(properties.map(item => item.wrapper), lookupRegistry)
164
+ : false;
165
+ if (introspectionResult || !enhancers) {
166
+ return introspectionResult;
167
+ }
168
+ return enhancers ? callback(enhancers, lookupRegistry) : false;
169
+ }
170
+ isDependencyTreeStatic(lookupRegistry = []) {
171
+ if (!(0, shared_utils_1.isUndefined)(this.isTreeStatic)) {
172
+ return this.isTreeStatic;
173
+ }
174
+ if (this.scope === common_1.Scope.REQUEST) {
175
+ this.isTreeStatic = false;
176
+ this.printIntrospectedAsRequestScoped();
177
+ return this.isTreeStatic;
178
+ }
179
+ this.isTreeStatic = !this.introspectDepsAttribute((collection, registry) => collection.some((item) => !item.isDependencyTreeStatic(registry)), lookupRegistry);
180
+ if (!this.isTreeStatic) {
181
+ this.printIntrospectedAsRequestScoped();
182
+ }
183
+ return this.isTreeStatic;
184
+ }
185
+ cloneStaticInstance(contextId) {
186
+ const staticInstance = this.getInstanceByContextId(constants_1.STATIC_CONTEXT);
187
+ if (this.isDependencyTreeStatic()) {
188
+ return staticInstance;
189
+ }
190
+ const instancePerContext = {
191
+ ...staticInstance,
192
+ instance: undefined,
193
+ isResolved: false,
194
+ isPending: false,
195
+ };
196
+ if (this.isNewable()) {
197
+ instancePerContext.instance = Object.create(this.metatype.prototype);
198
+ }
199
+ this.setInstanceByContextId(contextId, instancePerContext);
200
+ return instancePerContext;
201
+ }
202
+ cloneTransientInstance(contextId, inquirerId) {
203
+ const staticInstance = this.getInstanceByContextId(constants_1.STATIC_CONTEXT);
204
+ const instancePerContext = {
205
+ ...staticInstance,
206
+ instance: undefined,
207
+ isResolved: false,
208
+ isPending: false,
209
+ };
210
+ if (this.isNewable()) {
211
+ instancePerContext.instance = Object.create(this.metatype.prototype);
212
+ }
213
+ this.setInstanceByInquirerId(contextId, inquirerId, instancePerContext);
214
+ return instancePerContext;
215
+ }
216
+ createPrototype(contextId) {
217
+ const host = this.getInstanceByContextId(contextId);
218
+ if (!this.isNewable() || host.isResolved) {
219
+ return;
220
+ }
221
+ return Object.create(this.metatype.prototype);
222
+ }
223
+ isInRequestScope(contextId, inquirer) {
224
+ const isDependencyTreeStatic = this.isDependencyTreeStatic();
225
+ return (!isDependencyTreeStatic &&
226
+ contextId !== constants_1.STATIC_CONTEXT &&
227
+ (!this.isTransient || (this.isTransient && !!inquirer)));
228
+ }
229
+ isLazyTransient(contextId, inquirer) {
230
+ const isInquirerRequestScoped = !!(inquirer && !inquirer.isDependencyTreeStatic());
231
+ return (this.isDependencyTreeStatic() &&
232
+ contextId !== constants_1.STATIC_CONTEXT &&
233
+ this.isTransient &&
234
+ isInquirerRequestScoped);
235
+ }
236
+ isExplicitlyRequested(contextId, inquirer) {
237
+ const isSelfRequested = inquirer === this;
238
+ return (this.isDependencyTreeStatic() &&
239
+ contextId !== constants_1.STATIC_CONTEXT &&
240
+ (isSelfRequested || !!(inquirer && inquirer.scope === common_1.Scope.TRANSIENT)));
241
+ }
242
+ isStatic(contextId, inquirer) {
243
+ if (!this.isDependencyTreeStatic() || contextId !== constants_1.STATIC_CONTEXT) {
244
+ return false;
245
+ }
246
+ // Non-transient provider in static context
247
+ if (!this.isTransient) {
248
+ return true;
249
+ }
250
+ const isInquirerRequestScoped = inquirer && !inquirer.isDependencyTreeStatic();
251
+ const isStaticTransient = this.isTransient && !isInquirerRequestScoped;
252
+ const rootInquirer = inquirer?.getRootInquirer();
253
+ // Transient provider inquired by non-transient (e.g., DEFAULT -> TRANSIENT)
254
+ if (isStaticTransient && inquirer && !inquirer.isTransient) {
255
+ return true;
256
+ }
257
+ // Nested transient with non-transient root (e.g., DEFAULT -> TRANSIENT -> TRANSIENT)
258
+ if (isStaticTransient && rootInquirer && !rootInquirer.isTransient) {
259
+ return true;
260
+ }
261
+ // Nested transient during initial instantiation (rootInquirer not yet set)
262
+ if (isStaticTransient && inquirer?.isTransient && !rootInquirer) {
263
+ return true;
264
+ }
265
+ return false;
266
+ }
267
+ attachRootInquirer(inquirer) {
268
+ if (!this.isTransient) {
269
+ // Only attach root inquirer if the instance wrapper is transient
270
+ return;
271
+ }
272
+ this.rootInquirer = inquirer.getRootInquirer() ?? inquirer;
273
+ }
274
+ getRootInquirer() {
275
+ return this.rootInquirer;
276
+ }
277
+ getStaticTransientInstances() {
278
+ if (!this.transientMap) {
279
+ return [];
280
+ }
281
+ const instances = [...this.transientMap.values()];
282
+ return (0, iterare_1.iterate)(instances)
283
+ .map(item => item.get(constants_1.STATIC_CONTEXT))
284
+ .filter(item => {
285
+ // Only return items where constructor has been actually called
286
+ // This prevents calling lifecycle hooks on non-instantiated transient services
287
+ return !!(item && item.isConstructorCalled);
288
+ })
289
+ .toArray();
290
+ }
291
+ mergeWith(provider) {
292
+ if ((0, provider_classifier_1.isValueProvider)(provider)) {
293
+ this.metatype = null;
294
+ this.inject = null;
295
+ this.scope = common_1.Scope.DEFAULT;
296
+ this.setInstanceByContextId(constants_1.STATIC_CONTEXT, {
297
+ instance: provider.useValue,
298
+ isResolved: true,
299
+ isPending: false,
300
+ });
301
+ }
302
+ else if ((0, provider_classifier_1.isClassProvider)(provider)) {
303
+ this.inject = null;
304
+ this.metatype = provider.useClass;
305
+ }
306
+ else if ((0, provider_classifier_1.isFactoryProvider)(provider)) {
307
+ this.metatype = provider.useFactory;
308
+ this.inject = provider.inject || [];
309
+ }
310
+ }
311
+ isNewable() {
312
+ return (0, shared_utils_1.isNil)(this.inject) && this.metatype && this.metatype.prototype;
313
+ }
314
+ initialize(metadata) {
315
+ const { instance, isResolved, ...wrapperPartial } = metadata;
316
+ Object.assign(this, wrapperPartial);
317
+ this.setInstanceByContextId(constants_1.STATIC_CONTEXT, {
318
+ instance: instance,
319
+ isResolved,
320
+ });
321
+ this.scope === common_1.Scope.TRANSIENT && (this.transientMap = new Map());
322
+ }
323
+ printIntrospectedAsRequestScoped() {
324
+ if (!this.isDebugMode() || this.name === 'REQUEST') {
325
+ return;
326
+ }
327
+ if ((0, shared_utils_1.isString)(this.name)) {
328
+ InstanceWrapper.logger.log(`${cli_colors_util_1.clc.cyanBright(this.name)}${cli_colors_util_1.clc.green(' introspected as ')}${cli_colors_util_1.clc.magentaBright('request-scoped')}`);
329
+ }
330
+ }
331
+ printIntrospectedAsDurable() {
332
+ if (!this.isDebugMode()) {
333
+ return;
334
+ }
335
+ if ((0, shared_utils_1.isString)(this.name)) {
336
+ InstanceWrapper.logger.log(`${cli_colors_util_1.clc.cyanBright(this.name)}${cli_colors_util_1.clc.green(' introspected as ')}${cli_colors_util_1.clc.magentaBright('durable')}`);
337
+ }
338
+ }
339
+ isDebugMode() {
340
+ return !!process.env.NEST_DEBUG;
341
+ }
342
+ generateUuid() {
343
+ let key = this.name?.toString() ?? this.token?.toString();
344
+ key += this.host?.name ?? '';
345
+ return key ? uuid_factory_1.UuidFactory.get(key) : (0, random_string_generator_util_1.randomStringGenerator)();
346
+ }
347
+ }
348
+ exports.InstanceWrapper = InstanceWrapper;
349
+ _a = exports.INSTANCE_METADATA_SYMBOL;
350
+ InstanceWrapper.logger = new common_1.Logger(InstanceWrapper.name);
@@ -0,0 +1 @@
1
+ export * from './internal-core-module';
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./internal-core-module"), exports);
@@ -0,0 +1,9 @@
1
+ import { HttpAdapterHost } from '../../helpers/http-adapter-host';
2
+ import { GraphInspector } from '../../inspector/graph-inspector';
3
+ import { ModuleOverride } from '../../interfaces/module-override.interface';
4
+ import { DependenciesScanner } from '../../scanner';
5
+ import { ModuleCompiler } from '../compiler';
6
+ import { NestContainer } from '../container';
7
+ export declare class InternalCoreModuleFactory {
8
+ static create(container: NestContainer, scanner: DependenciesScanner, moduleCompiler: ModuleCompiler, httpAdapterHost: HttpAdapterHost, graphInspector: GraphInspector, moduleOverrides?: ModuleOverride[]): import("@nestjs/common").DynamicModule;
9
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InternalCoreModuleFactory = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const external_context_creator_1 = require("../../helpers/external-context-creator");
6
+ const http_adapter_host_1 = require("../../helpers/http-adapter-host");
7
+ const initialize_on_preview_allowlist_1 = require("../../inspector/initialize-on-preview.allowlist");
8
+ const serialized_graph_1 = require("../../inspector/serialized-graph");
9
+ const injector_1 = require("../injector");
10
+ const instance_loader_1 = require("../instance-loader");
11
+ const lazy_module_loader_1 = require("../lazy-module-loader/lazy-module-loader");
12
+ const modules_container_1 = require("../modules-container");
13
+ const internal_core_module_1 = require("./internal-core-module");
14
+ class InternalCoreModuleFactory {
15
+ static create(container, scanner, moduleCompiler, httpAdapterHost, graphInspector, moduleOverrides) {
16
+ const lazyModuleLoaderFactory = () => {
17
+ const logger = new common_1.Logger(lazy_module_loader_1.LazyModuleLoader.name, {
18
+ timestamp: false,
19
+ });
20
+ const injector = new injector_1.Injector({
21
+ preview: container.contextOptions?.preview,
22
+ instanceDecorator: container.contextOptions?.instrument?.instanceDecorator,
23
+ });
24
+ const instanceLoader = new instance_loader_1.InstanceLoader(container, injector, graphInspector, logger);
25
+ return new lazy_module_loader_1.LazyModuleLoader(scanner, instanceLoader, moduleCompiler, container.getModules(), moduleOverrides);
26
+ };
27
+ initialize_on_preview_allowlist_1.InitializeOnPreviewAllowlist.add(internal_core_module_1.InternalCoreModule);
28
+ return internal_core_module_1.InternalCoreModule.register([
29
+ {
30
+ provide: external_context_creator_1.ExternalContextCreator,
31
+ useFactory: () => external_context_creator_1.ExternalContextCreator.fromContainer(container),
32
+ },
33
+ {
34
+ provide: modules_container_1.ModulesContainer,
35
+ useFactory: () => container.getModules(),
36
+ },
37
+ {
38
+ provide: http_adapter_host_1.HttpAdapterHost,
39
+ useFactory: () => httpAdapterHost,
40
+ },
41
+ {
42
+ provide: lazy_module_loader_1.LazyModuleLoader,
43
+ useFactory: lazyModuleLoaderFactory,
44
+ },
45
+ {
46
+ provide: serialized_graph_1.SerializedGraph,
47
+ useFactory: () => container.serializedGraph,
48
+ },
49
+ ]);
50
+ }
51
+ }
52
+ exports.InternalCoreModuleFactory = InternalCoreModuleFactory;
@@ -0,0 +1,5 @@
1
+ import { DynamicModule } from '@nestjs/common';
2
+ import { ExistingProvider, FactoryProvider, ValueProvider } from '@nestjs/common/interfaces';
3
+ export declare class InternalCoreModule {
4
+ static register(providers: Array<ValueProvider | FactoryProvider | ExistingProvider>): DynamicModule;
5
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var InternalCoreModule_1;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.InternalCoreModule = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const common_1 = require("@nestjs/common");
7
+ const request_providers_1 = require("../../router/request/request-providers");
8
+ const services_1 = require("../../services");
9
+ const inquirer_providers_1 = require("../inquirer/inquirer-providers");
10
+ const ReflectorAliasProvider = {
11
+ provide: services_1.Reflector.name,
12
+ useExisting: services_1.Reflector,
13
+ };
14
+ let InternalCoreModule = InternalCoreModule_1 = class InternalCoreModule {
15
+ static register(providers) {
16
+ return {
17
+ module: InternalCoreModule_1,
18
+ providers: [...providers],
19
+ exports: [...providers.map(item => item.provide)],
20
+ };
21
+ }
22
+ };
23
+ exports.InternalCoreModule = InternalCoreModule;
24
+ exports.InternalCoreModule = InternalCoreModule = InternalCoreModule_1 = tslib_1.__decorate([
25
+ (0, common_1.Global)(),
26
+ (0, common_1.Module)({
27
+ providers: [
28
+ services_1.Reflector,
29
+ ReflectorAliasProvider,
30
+ request_providers_1.requestProvider,
31
+ inquirer_providers_1.inquirerProvider,
32
+ ],
33
+ exports: [
34
+ services_1.Reflector,
35
+ ReflectorAliasProvider,
36
+ request_providers_1.requestProvider,
37
+ inquirer_providers_1.inquirerProvider,
38
+ ],
39
+ })
40
+ ], InternalCoreModule);