@codependix/nestjs-modules 0.0.24 → 0.0.25

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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 0.0.25 (2026-10-15)
2
+
3
+ ### 🚀 Features
4
+
5
+ - **ic-suite,configuration:** ✨ name root files after their project and declare root modules ([#1588](https://github.com/organizzolini/codebase/pull/1588), [#1480](https://github.com/organizzolini/codebase/issues/1480))
6
+
1
7
  ## 0.0.24 (2026-10-15)
2
8
 
3
9
  This was a version bump only for codependix-nestjs-modules to align it with other projects, there were no code changes.
package/README.md CHANGED
@@ -77,7 +77,7 @@ graph LR
77
77
  file_src_modules_nestjs_project_nestjs_project_service_ts["src/modules/nestjs-project/nestjs-project.service.ts"]
78
78
  file_src_modules_nestjs_project_nestjs_project_service_unit_test_ts["src/modules/nestjs-project/nestjs-project.service.unit.test.ts"]
79
79
  file_src_modules_nestjs_project_nestjs_project_types_ts["src/modules/nestjs-project/nestjs-project.types.ts"]
80
- file_testing_main_module_ts["testing/main.module.ts"]
80
+ file_testing_codependix_nestjs_modules_module_ts["testing/codependix-nestjs-modules.module.ts"]
81
81
  file_testing_mocks_ts["testing/mocks.ts"]
82
82
  file_testing_setup_ts["testing/setup.ts"]
83
83
  file_vite_config_ts["vite.config.ts"]
@@ -107,7 +107,7 @@ graph LR
107
107
  file_src_modules_nestjs_project_nestjs_project_service_ts --> file_src_modules_nestjs_project_nestjs_project_types_ts
108
108
  file_src_modules_nestjs_project_nestjs_project_service_unit_test_ts --> file_src_modules_nestjs_project_nestjs_project_service_ts
109
109
  file_src_modules_nestjs_project_nestjs_project_service_unit_test_ts --> file_src_modules_nestjs_project_nestjs_project_types_ts
110
- file_src_modules_nestjs_project_nestjs_project_service_unit_test_ts --> file_testing_main_module_ts
110
+ file_src_modules_nestjs_project_nestjs_project_service_unit_test_ts --> file_testing_codependix_nestjs_modules_module_ts
111
111
  ```
112
112
  <!-- codependix:end name="codependix-file-imports" -->
113
113
 
@@ -145,7 +145,7 @@ None.
145
145
  | Callable | Breadth | Calls directly | Location |
146
146
  | --- | --- | --- | --- |
147
147
  | `ModuleGraphService.buildGraph` | 7 | `ModuleGraphService.findAmbientModuleNames`, `ModuleGraphService.collectEdgesAndNodes`, `ModuleGraphService.toSorted(…)`, `ModuleGraphService.sortNames`, `ModuleGraphService.map(…)`, `ModuleGraphService.toSorted(…)`, `ModuleGraphService.filter(…)` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/module-graph/module-graph.service.ts:168` |
148
- | `NestjsProjectService.exploreProject` | 5 | `NestjsProjectService.buildSyntheticRootModule`, `NestjsProjectService.loadRootModule`, `NestjsProjectService.discoverModuleDeclaringFiles`, `NestjsProjectService.exploreContainer`, `NestjsProjectService.map(…)` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-project/nestjs-project.service.ts:232` |
148
+ | `NestjsProjectService.exploreProject` | 5 | `NestjsProjectService.buildSyntheticRootModule`, `NestjsProjectService.loadRootModule`, `NestjsProjectService.discoverModuleDeclaringFiles`, `NestjsProjectService.exploreContainer`, `NestjsProjectService.map(…)` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-project/nestjs-project.service.ts:242` |
149
149
  | `NestjsModulesWorkspaceGraphService.buildWorkspaceGraph` | 4 | `NestjsModulesWorkspaceGraphService.sortNames`, `NestjsModulesWorkspaceGraphService.flatMap(…)`, `NestjsModulesWorkspaceGraphService.toSorted(…)`, `NestjsModulesWorkspaceGraphService.flatMap(…)` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-modules-workspace-graph/nestjs-modules-workspace-graph.service.ts:80` |
150
150
 
151
151
  <details>
@@ -153,14 +153,14 @@ None.
153
153
 
154
154
  | Callable | Breadth | Calls directly | Location |
155
155
  | --- | --- | --- | --- |
156
- | `NestjsProjectService.buildSyntheticRootModule` | 3 | `NestjsProjectService.findModuleFiles`, `NestjsProjectService.map(…)`, `SyntheticRootModule.forModules` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-project/nestjs-project.service.ts:59` |
157
- | `NestjsProjectService.exploreContainer` | 3 | `NestjsProjectService.some(…)`, `NestjsProjectService.filter(…)`, `NestjsProjectService.map(…)` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-project/nestjs-project.service.ts:117` |
156
+ | `NestjsProjectService.buildSyntheticRootModule` | 3 | `NestjsProjectService.findModuleFiles`, `NestjsProjectService.map(…)`, `SyntheticRootModule.forModules` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-project/nestjs-project.service.ts:58` |
157
+ | `NestjsProjectService.exploreContainer` | 3 | `NestjsProjectService.some(…)`, `NestjsProjectService.filter(…)`, `NestjsProjectService.map(…)` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-project/nestjs-project.service.ts:116` |
158
158
  | `ModuleGraphService.collectEdgesAndNodes` | 2 | `ModuleGraphService.addNode`, `ModuleGraphService.find(…)` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/module-graph/module-graph.service.ts:49` |
159
159
  | `ModuleGraphService.renderMermaid` | 2 | `ModuleGraphService.map(…)`, `ModuleGraphService.map(…)` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/module-graph/module-graph.service.ts:203` |
160
160
  | `NestjsModulesWorkspaceGraphService.renderMermaid` | 2 | `NestjsModulesWorkspaceGraphService.map(…)`, `NestjsModulesWorkspaceGraphService.map(…)` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-modules-workspace-graph/nestjs-modules-workspace-graph.service.ts:103` |
161
- | `NestjsProjectService.discoverModuleDeclaringFiles` | 2 | `NestjsProjectService.findModuleFiles`, `NestjsProjectService.loadModuleClasses` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-project/nestjs-project.service.ts:76` |
162
- | `NestjsProjectService.loadModuleClasses` | 2 | `NestjsProjectService.map(…)`, `NestjsProjectService.filter(…)` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-project/nestjs-project.service.ts:166` |
163
- | `NestjsProjectService.discoverProjects` | 2 | `NestjsProjectService.map(…)`, `NestjsProjectService.filter(…)` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-project/nestjs-project.service.ts:221` |
161
+ | `NestjsProjectService.discoverModuleDeclaringFiles` | 2 | `NestjsProjectService.findModuleFiles`, `NestjsProjectService.loadModuleClasses` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-project/nestjs-project.service.ts:75` |
162
+ | `NestjsProjectService.loadModuleClasses` | 2 | `NestjsProjectService.map(…)`, `NestjsProjectService.filter(…)` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-project/nestjs-project.service.ts:165` |
163
+ | `NestjsProjectService.discoverProjects` | 2 | `NestjsProjectService.map(…)`, `NestjsProjectService.filter(…)` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-project/nestjs-project.service.ts:226` |
164
164
  | `ModuleGraphService.addNode` | 1 | `ModuleGraphService.some(…)` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/module-graph/module-graph.service.ts:61` |
165
165
  | `ModuleGraphService.findAmbientModuleNames` | 1 | `ModuleGraphService.countInboundEdges` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/module-graph/module-graph.service.ts:137` |
166
166
  | `ModuleGraphService.sortNames` | 1 | `ModuleGraphService.toSorted(…)` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/module-graph/module-graph.service.ts:161` |
@@ -176,10 +176,10 @@ None.
176
176
  | `NestjsModulesWorkspaceGraphService.toSorted(…)` | 1 | `NestjsModulesWorkspaceGraphService.compareEdges` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-modules-workspace-graph/nestjs-modules-workspace-graph.service.ts:97` |
177
177
  | `NestjsModulesWorkspaceGraphService.map(…)` | 1 | `NestjsModulesWorkspaceGraphService.renderNode` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-modules-workspace-graph/nestjs-modules-workspace-graph.service.ts:111` |
178
178
  | `NestjsModulesWorkspaceGraphService.map(…)` | 1 | `NestjsModulesWorkspaceGraphService.toNodeIdentifier` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-modules-workspace-graph/nestjs-modules-workspace-graph.service.ts:115` |
179
- | `NestjsProjectService.map(…)` | 1 | `NestjsProjectService.loadModuleClasses` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-project/nestjs-project.service.ts:66` |
180
- | `NestjsProjectService.findModuleFiles` | 1 | `NestjsProjectService.toSorted(…)` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-project/nestjs-project.service.ts:147` |
181
- | `NestjsProjectService.filter(…)` | 1 | `NestjsProjectService.isNestjsProject` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-project/nestjs-project.service.ts:225` |
182
- | `NestjsProjectService.map(…)` | 1 | `NestjsProjectService.describeProject` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-project/nestjs-project.service.ts:226` |
179
+ | `NestjsProjectService.map(…)` | 1 | `NestjsProjectService.loadModuleClasses` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-project/nestjs-project.service.ts:65` |
180
+ | `NestjsProjectService.findModuleFiles` | 1 | `NestjsProjectService.toSorted(…)` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-project/nestjs-project.service.ts:146` |
181
+ | `NestjsProjectService.filter(…)` | 1 | `NestjsProjectService.isNestjsProject` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-project/nestjs-project.service.ts:231` |
182
+ | `NestjsProjectService.map(…)` | 1 | `NestjsProjectService.describeProject` | `projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-project/nestjs-project.service.ts:232` |
183
183
 
184
184
  </details>
185
185
  <!-- callidescope:end -->
@@ -190,23 +190,23 @@ None.
190
190
 
191
191
  ### Project
192
192
 
193
- ![Lines of Code](https://img.shields.io/badge/Lines_of_Code-2122-22c55e?style=flat-square)
194
- ![Repository Size](https://img.shields.io/badge/Repository_Size-83.26_kB-6b7280?style=flat-square)
193
+ ![Lines of Code](https://img.shields.io/badge/Lines_of_Code-2186-22c55e?style=flat-square)
194
+ ![Repository Size](https://img.shields.io/badge/Repository_Size-85.16_kB-6b7280?style=flat-square)
195
195
  ![Folders](https://img.shields.io/badge/Folders-6-4a4a4a?style=flat-square)
196
196
  ![Source Files](https://img.shields.io/badge/Source_Files-30-3178c6?style=flat-square)
197
197
 
198
198
  ### Measured Targets
199
199
 
200
- ![Compiled JavaScript Size](https://img.shields.io/badge/Compiled_JavaScript_Size-4.68_kB_gzip-6b7280?style=flat-square)
200
+ ![Compiled JavaScript Size](https://img.shields.io/badge/Compiled_JavaScript_Size-4.67_kB_gzip-6b7280?style=flat-square)
201
201
 
202
202
  ### TypeScript
203
203
 
204
204
  ![TypeScript Files](https://img.shields.io/badge/TypeScript_Files-30-3178c6?style=flat-square)
205
- ![Interfaces](https://img.shields.io/badge/Interfaces-8-0ea5e9?style=flat-square)
205
+ ![Interfaces](https://img.shields.io/badge/Interfaces-9-0ea5e9?style=flat-square)
206
206
  ![Generic Declarations](https://img.shields.io/badge/Generic_Declarations-0-0369a1?style=flat-square)
207
207
  ![Enums](https://img.shields.io/badge/Enums-0-f97316?style=flat-square)
208
208
  ![Decorators](https://img.shields.io/badge/Decorators-8-db2777?style=flat-square)
209
- ![Doc Comments](https://img.shields.io/badge/Doc_Comments-70-6366f1?style=flat-square)
209
+ ![Doc Comments](https://img.shields.io/badge/Doc_Comments-72-6366f1?style=flat-square)
210
210
  ![Static Methods](https://img.shields.io/badge/Static_Methods-1-166534?style=flat-square)
211
211
 
212
212
  ### JavaScript
@@ -215,15 +215,15 @@ None.
215
215
  ![Test Files](https://img.shields.io/badge/Test_Files-7-10b981?style=flat-square)
216
216
  ![External Packages](https://img.shields.io/badge/External_Packages-11-8b5cf6?style=flat-square)
217
217
  ![Classes](https://img.shields.io/badge/Classes-8-7c3aed?style=flat-square)
218
- ![Functions](https://img.shields.io/badge/Functions-98-16a34a?style=flat-square)
218
+ ![Functions](https://img.shields.io/badge/Functions-99-16a34a?style=flat-square)
219
219
  ![Methods](https://img.shields.io/badge/Methods-56-15803d?style=flat-square)
220
220
  ![Sync Functions](https://img.shields.io/badge/Sync_Functions-129-4ade80?style=flat-square)
221
- ![Async Functions](https://img.shields.io/badge/Async_Functions-25-059669?style=flat-square)
222
- ![Constants](https://img.shields.io/badge/Constants-105-dc2626?style=flat-square)
221
+ ![Async Functions](https://img.shields.io/badge/Async_Functions-26-059669?style=flat-square)
222
+ ![Constants](https://img.shields.io/badge/Constants-103-dc2626?style=flat-square)
223
223
  ![Imports](https://img.shields.io/badge/Imports-76-0284c7?style=flat-square)
224
- ![Exported Symbols](https://img.shields.io/badge/Exported_Symbols-30-ea580c?style=flat-square)
225
- ![Comments](https://img.shields.io/badge/Comments-103-64748b?style=flat-square)
226
- ![Comment Lines](https://img.shields.io/badge/Comment_Lines-251-475569?style=flat-square)
224
+ ![Exported Symbols](https://img.shields.io/badge/Exported_Symbols-29-ea580c?style=flat-square)
225
+ ![Comments](https://img.shields.io/badge/Comments-105-64748b?style=flat-square)
226
+ ![Comment Lines](https://img.shields.io/badge/Comment_Lines-254-475569?style=flat-square)
227
227
  ![TODO Comments](https://img.shields.io/badge/TODO_Comments-0-ca8a04?style=flat-square)
228
228
 
229
229
  ### Python
@@ -379,20 +379,20 @@ None.
379
379
  ### Markdown
380
380
 
381
381
  ![Markdown Files](https://img.shields.io/badge/Markdown_Files-2-083fa1?style=flat-square)
382
- ![Markdown Lines](https://img.shields.io/badge/Markdown_Lines-311-1f6feb?style=flat-square)
382
+ ![Markdown Lines](https://img.shields.io/badge/Markdown_Lines-317-1f6feb?style=flat-square)
383
383
  ![H1](https://img.shields.io/badge/H1-1-7c3aed?style=flat-square)
384
- ![H2](https://img.shields.io/badge/H2-28-8b5cf6?style=flat-square)
385
- ![H3](https://img.shields.io/badge/H3-15-a78bfa?style=flat-square)
384
+ ![H2](https://img.shields.io/badge/H2-29-8b5cf6?style=flat-square)
385
+ ![H3](https://img.shields.io/badge/H3-16-a78bfa?style=flat-square)
386
386
  ![H4](https://img.shields.io/badge/H4-0-c4b5fd?style=flat-square)
387
387
  ![H5](https://img.shields.io/badge/H5-0-ddd6fe?style=flat-square)
388
388
  ![H6](https://img.shields.io/badge/H6-0-ede9fe?style=flat-square)
389
- ![Paragraphs](https://img.shields.io/badge/Paragraphs-66-64748b?style=flat-square)
390
- ![Lists](https://img.shields.io/badge/Lists-9-16a34a?style=flat-square)
391
- ![List Items](https://img.shields.io/badge/List_Items-28-22c55e?style=flat-square)
389
+ ![Paragraphs](https://img.shields.io/badge/Paragraphs-67-64748b?style=flat-square)
390
+ ![Lists](https://img.shields.io/badge/Lists-10-16a34a?style=flat-square)
391
+ ![List Items](https://img.shields.io/badge/List_Items-29-22c55e?style=flat-square)
392
392
  ![Task List Items](https://img.shields.io/badge/Task_List_Items-0-4ade80?style=flat-square)
393
393
  ![Tables](https://img.shields.io/badge/Tables-2-0284c7?style=flat-square)
394
394
  ![Table Rows](https://img.shields.io/badge/Table_Rows-10-0ea5e9?style=flat-square)
395
- ![Links](https://img.shields.io/badge/Links-12-059669?style=flat-square)
395
+ ![Links](https://img.shields.io/badge/Links-14-059669?style=flat-square)
396
396
  ![Images](https://img.shields.io/badge/Images-0-10b981?style=flat-square)
397
397
  ![Code Blocks](https://img.shields.io/badge/Code_Blocks-11-dc2626?style=flat-square)
398
398
  ![Inline Code](https://img.shields.io/badge/Inline_Code-73-ef4444?style=flat-square)
@@ -430,17 +430,6 @@ export declare const NESTJS_PROJECT_IGNORED_MODULES: RegExp[];
430
430
  /** File suffix that marks a NestJS module definition. */
431
431
  export declare const NESTJS_PROJECT_MODULE_FILE_SUFFIX = ".module.ts";
432
432
 
433
- /** Export a root module file is expected to provide. */
434
- export declare const NESTJS_PROJECT_ROOT_MODULE_EXPORT = "MainModule";
435
-
436
- /**
437
- * Path, relative to a project root, of the module a project bootstraps.
438
- *
439
- * A project without one is a library rather than an application, and gets a
440
- * synthetic root built from every module it defines instead.
441
- */
442
- export declare const NESTJS_PROJECT_ROOT_MODULE_FILE = "src/main.module.ts";
443
-
444
433
  /**
445
434
  * Additionally ignored when the root is synthetic.
446
435
  *
@@ -579,6 +568,12 @@ export declare interface NestjsProject {
579
568
  readonly absoluteRoot: string;
580
569
  /** Project directory name, which is also the Nx project name. */
581
570
  readonly name: string;
571
+ /**
572
+ * Name of the class the root module file exports, when it has one.
573
+ *
574
+ * Defined exactly when `rootModuleFile` is.
575
+ */
576
+ readonly rootModuleExport: string | undefined;
582
577
  /**
583
578
  * Absolute path of the project's root module file, when it has one.
584
579
  *
@@ -635,7 +630,7 @@ export declare class NestjsProjectService {
635
630
  /** Imports a root module file and returns the module class it exports. */
636
631
  private loadRootModule;
637
632
  /** Describes a project, noting whether it bootstraps a root module. */
638
- describeProject(absoluteRoot: string, name: string): NestjsProject;
633
+ describeProject(absoluteRoot: string, name: string, rootModule?: NestjsRootModule): NestjsProject;
639
634
  /**
640
635
  * Filters an already-read list of Nx projects down to the ones tagged
641
636
  * `framework:nestjs`, and describes each one.
@@ -648,7 +643,7 @@ export declare class NestjsProjectService {
648
643
  absoluteRoot: string;
649
644
  name: string;
650
645
  tags: string[];
651
- }[]): NestjsProject[];
646
+ }[], rootModules: Readonly<Record<string, NestjsRootModule>>): NestjsProject[];
652
647
  /** Explores a project's container in preview mode and returns its tree. */
653
648
  exploreProject(project: NestjsProject): Promise<NestjsExploredModule[]>;
654
649
  /** Reports whether a project's Nx tags mark it as a NestJS project. */
@@ -657,6 +652,17 @@ export declare class NestjsProjectService {
657
652
  }): boolean;
658
653
  }
659
654
 
655
+ /**
656
+ * Where a project's root module lives, as the workspace configuration
657
+ * declares it.
658
+ */
659
+ export declare interface NestjsRootModule {
660
+ /** Name of the class the file exports. */
661
+ readonly export: string;
662
+ /** Path of the root module file, relative to the project root. */
663
+ readonly file: string;
664
+ }
665
+
660
666
  /** A message split into the emoji the console shows and the prose telemetry stores. */
661
667
  declare interface ParsedLogMessage {
662
668
  emoji: string | undefined;
package/dist/src/index.js CHANGED
@@ -151,12 +151,12 @@ C = __decorate([r({
151
151
  })], C);
152
152
  //#endregion
153
153
  //#region projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-project/nestjs-project.constants.ts
154
- var w = "framework:nestjs", T = ".module.ts", E = "src/main.module.ts", D = "MainModule", O = [
154
+ var w = "framework:nestjs", T = ".module.ts", E = [
155
155
  /^ConfigHostModule$/,
156
156
  /^InternalCoreModule$/,
157
157
  /^SyntheticRootModule$/,
158
158
  /^TypeOrmCoreModule$/
159
- ], k = [/^ConfigModule$/], A = /^(\p{Extended_Pictographic}️?(?:‍\p{Extended_Pictographic}️?)*)\s+/u, j = /^([A-Za-z]+)/, M = /* @__PURE__ */ new Set([
159
+ ], D = [/^ConfigModule$/], O = /^(\p{Extended_Pictographic}️?(?:‍\p{Extended_Pictographic}️?)*)\s+/u, k = /^([A-Za-z]+)/, A = /* @__PURE__ */ new Set([
160
160
  "built",
161
161
  "cut",
162
162
  "found",
@@ -174,7 +174,7 @@ var w = "framework:nestjs", T = ".module.ts", E = "src/main.module.ts", D = "Mai
174
174
  "split",
175
175
  "took",
176
176
  "wrote"
177
- ]), N = /* @__PURE__ */ new Set([
177
+ ]), j = /* @__PURE__ */ new Set([
178
178
  "CommandFactory",
179
179
  "ExceptionHandler",
180
180
  "GraphQLModule",
@@ -184,9 +184,9 @@ var w = "framework:nestjs", T = ".module.ts", E = "src/main.module.ts", D = "Mai
184
184
  "RouterExplorer",
185
185
  "RoutesResolver",
186
186
  "TypeOrmModule"
187
- ]), P, F = class LoggerService extends e {
187
+ ]), M, N = class LoggerService extends e {
188
188
  static {
189
- P = this;
189
+ M = this;
190
190
  }
191
191
  constructor() {
192
192
  super();
@@ -194,15 +194,15 @@ var w = "framework:nestjs", T = ".module.ts", E = "src/main.module.ts", D = "Mai
194
194
  static isProduction = process.env.NODE_ENV === "production";
195
195
  static rootLogger;
196
196
  static writesToStandardError = !1;
197
- child = P.root;
197
+ child = M.root;
198
198
  static createRootLogger() {
199
199
  let e = process.env.LOG_LEVEL ?? "info";
200
- return P.isProduction ? P.writesToStandardError ? l({ level: e }, l.destination(2)) : l({ level: e }) : l({
200
+ return M.isProduction ? M.writesToStandardError ? l({ level: e }, l.destination(2)) : l({ level: e }) : l({
201
201
  level: e,
202
202
  transport: {
203
203
  options: {
204
204
  colorize: !0,
205
- destination: P.writesToStandardError ? 2 : 1,
205
+ destination: M.writesToStandardError ? 2 : 1,
206
206
  ignore: "pid,hostname,emoji",
207
207
  messageFormat: "{emoji} {msg}",
208
208
  singleLine: !0
@@ -212,10 +212,10 @@ var w = "framework:nestjs", T = ".module.ts", E = "src/main.module.ts", D = "Mai
212
212
  });
213
213
  }
214
214
  static logToStandardError() {
215
- P.rootLogger === void 0 ? P.writesToStandardError = !0 : process.emitWarning("LoggerService.logToStandardError() was called after the first log line, so log lines still go to standard output and anything piping that stream will read them as data. Call it as the first statement of the application's bootstrap.");
215
+ M.rootLogger === void 0 ? M.writesToStandardError = !0 : process.emitWarning("LoggerService.logToStandardError() was called after the first log line, so log lines still go to standard output and anything piping that stream will read them as data. Call it as the first statement of the application's bootstrap.");
216
216
  }
217
217
  assertConventionalMessage(e) {
218
- if (P.isProduction || this.shouldSkipConventionalMessageValidation(e.context)) return;
218
+ if (M.isProduction || this.shouldSkipConventionalMessageValidation(e.context)) return;
219
219
  let t = this.getConventionalMessageViolation(e.parsed);
220
220
  if (t !== void 0) throw Error(t);
221
221
  }
@@ -226,21 +226,21 @@ var w = "framework:nestjs", T = ".module.ts", E = "src/main.module.ts", D = "Mai
226
226
  }), {
227
227
  ...e.data,
228
228
  context: e.context,
229
- ...P.isProduction ? {} : { emoji: e.parsed.emoji }
229
+ ...M.isProduction ? {} : { emoji: e.parsed.emoji }
230
230
  };
231
231
  }
232
232
  getConventionalMessageViolation(e) {
233
233
  let t = e.emoji, n = e.text;
234
234
  if (t === void 0) return `Log message must start with an emoji naming its subject, then a verb: "${n}"`;
235
- let r = j.exec(n)?.[1];
235
+ let r = k.exec(n)?.[1];
236
236
  if (r === void 0 || !this.isConventionalVerb(r)) return `Log message must begin with a verb in present progressive or past tense, got "${r ?? ""}": "${t} ${n}"`;
237
237
  }
238
238
  isConventionalVerb(e) {
239
239
  let t = e.toLowerCase();
240
- return t.endsWith("ing") || t.endsWith("ed") || M.has(t);
240
+ return t.endsWith("ing") || t.endsWith("ed") || A.has(t);
241
241
  }
242
242
  parseMessage(e) {
243
- let t = String(e), n = A.exec(t), r = n?.[1];
243
+ let t = String(e), n = O.exec(t), r = n?.[1];
244
244
  return r === void 0 ? {
245
245
  emoji: void 0,
246
246
  text: t
@@ -250,10 +250,10 @@ var w = "framework:nestjs", T = ".module.ts", E = "src/main.module.ts", D = "Mai
250
250
  };
251
251
  }
252
252
  shouldSkipConventionalMessageValidation(e) {
253
- return e !== void 0 && N.has(e);
253
+ return e !== void 0 && j.has(e);
254
254
  }
255
255
  static get root() {
256
- return P.rootLogger ??= P.createRootLogger(), P.rootLogger;
256
+ return M.rootLogger ??= M.createRootLogger(), M.rootLogger;
257
257
  }
258
258
  buildErrorLogEntry(e, t) {
259
259
  let n = t instanceof Error ? t.stack || t.message : String(t);
@@ -297,7 +297,7 @@ var w = "framework:nestjs", T = ".module.ts", E = "src/main.module.ts", D = "Mai
297
297
  this.info(e, t, n);
298
298
  }
299
299
  setContext(e) {
300
- super.setContext(e), this.child = P.root.child({ context: e });
300
+ super.setContext(e), this.child = M.root.child({ context: e });
301
301
  }
302
302
  verbose(e, t, n) {
303
303
  let r = this.parseMessage(e);
@@ -316,40 +316,40 @@ var w = "framework:nestjs", T = ".module.ts", E = "src/main.module.ts", D = "Mai
316
316
  }), r.text);
317
317
  }
318
318
  };
319
- F = P = __decorate([n({ scope: i.TRANSIENT }), __decorateMetadata("design:paramtypes", [])], F);
319
+ N = M = __decorate([n({ scope: i.TRANSIENT }), __decorateMetadata("design:paramtypes", [])], N);
320
320
  //#endregion
321
321
  //#region projects/logging/src/modules/logger/logger.module.ts
322
- var I = class LoggerModule {};
323
- I = __decorate([t(), r({
322
+ var P = class LoggerModule {};
323
+ P = __decorate([t(), r({
324
324
  controllers: [],
325
- exports: [F],
325
+ exports: [N],
326
326
  imports: [],
327
- providers: [F]
328
- })], I);
327
+ providers: [N]
328
+ })], P);
329
329
  //#endregion
330
330
  //#region projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-project/nestjs-project-synthetic.module.ts
331
- var L, R = L = class SyntheticRootModule {
331
+ var F, I = F = class SyntheticRootModule {
332
332
  static forModules(e) {
333
333
  return {
334
334
  imports: [p.forRoot({
335
335
  ignoreEnvFile: !0,
336
336
  isGlobal: !0
337
337
  }), ...e],
338
- module: L
338
+ module: F
339
339
  };
340
340
  }
341
341
  };
342
- R = L = __decorate([r({})], R);
342
+ I = F = __decorate([r({})], I);
343
343
  //#endregion
344
344
  //#region projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-project/nestjs-project.service.ts
345
- var z, B = z = class NestjsProjectService {
345
+ var L, R = L = class NestjsProjectService {
346
346
  logger;
347
347
  constructor(e) {
348
- this.logger = e, this.logger.setContext(z.name);
348
+ this.logger = e, this.logger.setContext(L.name);
349
349
  }
350
350
  async buildSyntheticRootModule(e) {
351
351
  let t = this.findModuleFiles(a.join(e.absoluteRoot, "src")), n = await Promise.all(t.map(async (e) => this.loadModuleClasses(e)));
352
- return R.forModules(n.flat());
352
+ return I.forModules(n.flat());
353
353
  }
354
354
  async discoverModuleDeclaringFiles(e) {
355
355
  let t = this.findModuleFiles(a.join(e.absoluteRoot, "src"));
@@ -384,51 +384,51 @@ var z, B = z = class NestjsProjectService {
384
384
  let t = await import(u(e).href);
385
385
  return Object.entries(t).filter((e) => e[0].endsWith("Module") && typeof e[1] == "function").map(([, e]) => e);
386
386
  }
387
- async loadRootModule(e) {
388
- let t = (await import(u(e).href))[D];
389
- if (typeof t != "function") throw TypeError(`Expected ${e} to export a ${D} class`);
390
- return t;
387
+ async loadRootModule(e, t) {
388
+ let n = (await import(u(e).href))[t];
389
+ if (typeof n != "function") throw TypeError(`Expected ${e} to export a ${t} class`);
390
+ return n;
391
391
  }
392
- describeProject(e, t) {
393
- let n = a.join(e, E);
392
+ describeProject(e, t, n) {
394
393
  return {
395
394
  absoluteRoot: e,
396
395
  name: t,
397
- rootModuleFile: o(n) ? n : void 0
396
+ rootModuleExport: n?.export,
397
+ rootModuleFile: n === void 0 ? void 0 : a.join(e, n.file)
398
398
  };
399
399
  }
400
- discoverProjects(e) {
401
- return e.filter((e) => this.isNestjsProject(e)).map((e) => this.describeProject(e.absoluteRoot, e.name));
400
+ discoverProjects(e, t) {
401
+ return e.filter((e) => this.isNestjsProject(e)).map((e) => this.describeProject(e.absoluteRoot, e.name, t[e.name]));
402
402
  }
403
403
  async exploreProject(e) {
404
- let { rootModuleFile: t } = e, n = t === void 0 ? await this.buildSyntheticRootModule(e) : await this.loadRootModule(t), r = await this.discoverModuleDeclaringFiles(e), i = await f.createApplicationContext(n, {
404
+ let { rootModuleExport: t, rootModuleFile: n } = e, r = n === void 0 || t === void 0 ? await this.buildSyntheticRootModule(e) : await this.loadRootModule(n, t), i = await this.discoverModuleDeclaringFiles(e), a = await f.createApplicationContext(r, {
405
405
  abortOnError: !1,
406
406
  logger: !1,
407
407
  preview: !0
408
- }), a;
408
+ }), o;
409
409
  try {
410
- a = this.exploreContainer(i, [...O, ...t === void 0 ? k : []]);
410
+ o = this.exploreContainer(a, [...E, ...n === void 0 ? D : []]);
411
411
  } finally {
412
- this.logger.debug("🚀 Booted a project's container", void 0, { project: e.name }), await i.close();
412
+ this.logger.debug("🚀 Booted a project's container", void 0, { project: e.name }), await a.close();
413
413
  }
414
- return a.map((e) => ({
414
+ return o.map((e) => ({
415
415
  ...e,
416
- declaringFile: r.get(e.name)
416
+ declaringFile: i.get(e.name)
417
417
  }));
418
418
  }
419
419
  isNestjsProject(e) {
420
420
  return e.tags.includes(w);
421
421
  }
422
422
  };
423
- B = z = __decorate([n(), __decorateMetadata("design:paramtypes", [F === void 0 ? Object : F])], B);
423
+ R = L = __decorate([n(), __decorateMetadata("design:paramtypes", [N === void 0 ? Object : N])], R);
424
424
  //#endregion
425
425
  //#region projects/ic-suite/codependix/codependix-nestjs-modules/src/modules/nestjs-project/nestjs-project.module.ts
426
- var V = class NestjsProjectModule {};
427
- V = __decorate([r({
426
+ var z = class NestjsProjectModule {};
427
+ z = __decorate([r({
428
428
  controllers: [],
429
- exports: [B],
430
- imports: [I],
431
- providers: [B]
432
- })], V);
429
+ exports: [R],
430
+ imports: [P],
431
+ providers: [R]
432
+ })], z);
433
433
  //#endregion
434
- export { g as MODULE_GRAPH_AMBIENT_LEGEND, _ as MODULE_GRAPH_AMBIENT_MINIMUM_MODULES, h as MODULE_GRAPH_MERMAID_HEADER, m as MODULE_GRAPH_UNCONNECTED, y as ModuleGraphModule, v as ModuleGraphService, x as NESTJS_MODULES_WORKSPACE_GRAPH_MERMAID_HEADER, b as NESTJS_MODULES_WORKSPACE_GRAPH_UNCONNECTED, O as NESTJS_PROJECT_IGNORED_MODULES, T as NESTJS_PROJECT_MODULE_FILE_SUFFIX, D as NESTJS_PROJECT_ROOT_MODULE_EXPORT, E as NESTJS_PROJECT_ROOT_MODULE_FILE, k as NESTJS_PROJECT_SYNTHETIC_IGNORED_MODULES, w as NESTJS_PROJECT_TAG, C as NestjsModulesWorkspaceGraphModule, S as NestjsModulesWorkspaceGraphService, V as NestjsProjectModule, B as NestjsProjectService };
434
+ export { g as MODULE_GRAPH_AMBIENT_LEGEND, _ as MODULE_GRAPH_AMBIENT_MINIMUM_MODULES, h as MODULE_GRAPH_MERMAID_HEADER, m as MODULE_GRAPH_UNCONNECTED, y as ModuleGraphModule, v as ModuleGraphService, x as NESTJS_MODULES_WORKSPACE_GRAPH_MERMAID_HEADER, b as NESTJS_MODULES_WORKSPACE_GRAPH_UNCONNECTED, E as NESTJS_PROJECT_IGNORED_MODULES, T as NESTJS_PROJECT_MODULE_FILE_SUFFIX, D as NESTJS_PROJECT_SYNTHETIC_IGNORED_MODULES, w as NESTJS_PROJECT_TAG, C as NestjsModulesWorkspaceGraphModule, S as NestjsModulesWorkspaceGraphService, z as NestjsProjectModule, R as NestjsProjectService };
package/package.json CHANGED
@@ -61,5 +61,5 @@
61
61
  "strict": true
62
62
  },
63
63
  "types": "./dist/src/index.d.ts",
64
- "version": "0.0.24"
64
+ "version": "0.0.25"
65
65
  }