@codependix/cli 0.0.15 โ†’ 0.0.17

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,29 @@
1
+ ## 0.0.17 (2026-10-13)
2
+
3
+ ### ๐Ÿฉน Fixes
4
+
5
+ - **codependix:** ๐Ÿ› warn on unmatched selection entries and harden the boundary report ([#1441](https://github.com/organizzolini/codebase/pull/1441), [#1432](https://github.com/organizzolini/codebase/issues/1432))
6
+
7
+ ### ๐Ÿงฑ Updated Dependencies
8
+
9
+ - Updated codependix-configuration to 0.0.17
10
+ - Updated codependix-boundaries to 0.0.16
11
+ - Updated codependix-output to 0.0.16
12
+ - Updated codependix-core to 0.0.15
13
+
14
+ ## 0.0.16 (2026-10-13)
15
+
16
+ ### ๐Ÿš€ Features
17
+
18
+ - **codependix:** โœจ infer a per-project codependix-gate target from a new nx plugin ([#1429](https://github.com/organizzolini/codebase/pull/1429), [#1403](https://github.com/organizzolini/codebase/issues/1403))
19
+
20
+ ### ๐Ÿงฑ Updated Dependencies
21
+
22
+ - Updated codependix-configuration to 0.0.16
23
+ - Updated codependix-boundaries to 0.0.15
24
+ - Updated codependix-output to 0.0.15
25
+ - Updated codependix-core to 0.0.14
26
+
1
27
  ## 0.0.15 (2026-10-12)
2
28
 
3
29
  ### ๐Ÿงฑ Updated Dependencies
package/README.md CHANGED
@@ -62,10 +62,11 @@ on opposite sides of a pull request.
62
62
  | `reports` | A configured destination no longer holding what a fresh run would write |
63
63
 
64
64
  A boundary violation is caused by the branch and fixed by the branch, so it
65
- gates every pull request. A stale export moves with the workspace it
66
- describes and would fail every branch that changed a project graph rather
67
- than anything the branch itself did, so it is published on the default branch
68
- and gated nowhere. That is the same split
65
+ gates every pull request, one project at a time โ€” see
66
+ [The per-project gate](#the-per-project-gate). A stale export moves with the
67
+ workspace it describes and would fail every branch that changed a project
68
+ graph rather than anything the branch itself did, so it is published on the
69
+ default branch and gated nowhere. That is the same split
69
70
  [`callidescope`](../callidescope-cli/README.md) makes between `--check depth`
70
71
  and `--check reports`, and `reports` is deliberately spelled the same in both:
71
72
  it is the same finding, and two names for it would make the two reports
@@ -118,8 +119,13 @@ reported the same way, as a rejected command line rather than a crash.
118
119
  No mode is ever inferred, which is the rule `codometer`'s and
119
120
  `callidescope`'s flags follow too.
120
121
 
122
+ In an Nx workspace the gate is a per-project `codependix-gate` target, and
123
+ publishing is the one workspace-wide `write` run. This repository's `guard-code`
124
+ reaches the first on every pull request, and its release workflow runs the
125
+ second on the default branch:
126
+
121
127
  ```bash
122
- nx run codebase:codependix:check
128
+ nx run <project>:codependix-gate
123
129
  nx run codebase:codependix:write
124
130
  ```
125
131
 
@@ -128,6 +134,21 @@ boot its container โ€” is reported and does not stop the rest: `--write` either
128
134
  fully succeeds or names exactly which projects failed while still completing
129
135
  every other one.
130
136
 
137
+ ### The per-project gate
138
+
139
+ `--check boundaries --projects <name>` is a gate for one project, and needs no
140
+ task runner. [`@codependix/nx`](../codependix-nx/README.md) infers it for an
141
+ Nx workspace as a cached `codependix-gate` target on every project but the
142
+ workspace root, so `nx affected -t codependix-gate` selects the projects a
143
+ change touched and a failure names the project it is charged to rather than
144
+ one workspace-wide task. The target declares no configurations, so
145
+ `guard-code --configuration=check` falls through to its defaults, as
146
+ `callidescope-gate` does.
147
+
148
+ Publishing stays workspace-wide: one `--write` run produces every project's
149
+ anchor blocks, which must reflect one commit, so `codebase:codependix` is
150
+ `write`-only and is not part of `guard-code`.
151
+
131
152
  ### Where the output goes
132
153
 
133
154
  Printing and delivering are separate. `--format` decides what reaches standard
@@ -173,6 +194,7 @@ and [a container that cannot boot](../codependix-examples/examples/boundary-boot
173
194
  | [`@codependix/boundaries`](../codependix-boundaries/README.md) | Builds each level's graph for a workspace, judges it against the declared rules, and reports what breaks them. `--check boundaries` delegates to it wholesale |
174
195
  | [`@codependix/configuration`](../codependix-configuration/README.md) | Reads `codependix.config.ts` and resolves per-project export destinations and boundary rules |
175
196
  | [`@codependix/examples`](../codependix-examples/README.md) | Twenty-one subjects built to be graphed, each with the guide codependix renders from it |
197
+ | [`@codependix/nx`](../codependix-nx/README.md) | Nx plugin: infers a per-project `codependix-gate` target that runs `--check boundaries` over the project and its Nx dependencies |
176
198
  | [`@codependix/nx-projects`](../codependix-nx-projects/README.md) | Builds a project's Nx Neighborhood and the whole-workspace Workspace Graph |
177
199
  | [`@codependix/nestjs-modules`](../codependix-nestjs-modules/README.md) | Explores a NestJS project's container and builds its module graph |
178
200
  | [`@codependix/file-imports`](../codependix-file-imports/README.md) | Builds a project's file-level import graph โ€” a `typescript` module walking its own `ts.Program`, and a `python` module parsing `import`/`from ... import` statements |
@@ -233,6 +255,7 @@ graph LR
233
255
  codependix_configuration["codependix-configuration"]
234
256
  codependix_core["codependix-core"]
235
257
  codependix_examples["codependix-examples"]
258
+ codependix_nx["codependix-nx"]
236
259
  codependix_output["codependix-output"]
237
260
  logging["logging"]
238
261
  codependix_cli --> codependix_boundaries
@@ -241,6 +264,7 @@ graph LR
241
264
  codependix_cli --> codependix_output
242
265
  codependix_cli --> logging
243
266
  codependix_examples -.-> codependix_cli
267
+ codependix_nx --> codependix_cli
244
268
  classDef subject fill:#7c3aed,color:#fff,stroke:#4c1d95,stroke-width:2px
245
269
  class codependix_cli subject
246
270
  ```
@@ -415,9 +439,9 @@ Call stacks traced through `packages/ic-suite/codependix/codependix-cli`, deepes
415
439
 
416
440
  | Measure | Value |
417
441
  | --- | --- |
418
- | Callables | 47 |
442
+ | Callables | 48 |
419
443
  | Files | 19 |
420
- | Calls traced | 39 |
444
+ | Calls traced | 42 |
421
445
  | Call stacks | 19 |
422
446
  | Deepest stack | 15 |
423
447
  | Stacks through recursion | 0 |
@@ -437,11 +461,11 @@ What this project is judged against, as declared in its own `callidescope.config
437
461
  **1. `MapCommand.run`** โ€” depth โ‰ฅ 15 ยท decorated-method
438
462
 
439
463
  ```text
440
- ๐Ÿš€ MapCommand.run(_passedParameters: string[], options?: MapCommandOptions): Promise<void> [packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:445]
464
+ ๐Ÿš€ MapCommand.run(_passedParameters: string[], options?: MapCommandOptions): Promise<void> [packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:472]
441
465
  โ†ณ Runs whatever the command line asked for: exports, boundaries, or both.
442
- โ””โ”€> MapCommand.runMode(โ€ฆ): Promise<void> [packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:163]
466
+ โ””โ”€> MapCommand.runMode(โ€ฆ): Promise<void> [packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:187]
443
467
  โ†ณ Runs the passes a resolved mode selected, and reports what they found.
444
- โ””โ”€> MapCommand.runExports(context: GraphRunContext): Promise<MapRunResult> [packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:144]
468
+ โ””โ”€> MapCommand.runExports(context: GraphRunContext): Promise<MapRunResult> [packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:168]
445
469
  โ†ณ Runs the export pass, warning when nothing was selected.
446
470
  โ””โ”€> GraphRunService.run(context: GraphRunContext): Promise<MapRunResult> [packages/ic-suite/codependix/codependix-output/src/modules/graph-run/graph-run.service.ts:144]
447
471
  โ†ณ Runs every configured graph export against an already-resolved context.
@@ -496,7 +520,7 @@ What this project is judged against, as declared in its own `callidescope.config
496
520
  **3. `MapCommand.parseDirectory`** โ€” depth 4 ยท decorated-method
497
521
 
498
522
  ```text
499
- ๐Ÿš€ MapCommand.parseDirectory(value: string | undefined): string [packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:244]
523
+ ๐Ÿš€ MapCommand.parseDirectory(value: string | undefined): string [packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:271]
500
524
  โ†ณ Parses the directory whose Nx workspace this run reads.
501
525
  โ””โ”€> ConfigurationService.parsePathOption(value: string | undefined): string [packages/ic-suite/codependix/codependix-configuration/src/modules/configuration/configuration.service.ts:296]
502
526
  โ†ณ Parses a path option that falls back to the working directory.
@@ -512,7 +536,7 @@ What this project is judged against, as declared in its own `callidescope.config
512
536
  **4. `MapCommand.parseExclude`** โ€” depth 4 ยท decorated-method
513
537
 
514
538
  ```text
515
- ๐Ÿš€ MapCommand.parseExclude(value: string | undefined): string[] [packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:260]
539
+ ๐Ÿš€ MapCommand.parseExclude(value: string | undefined): string[] [packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:287]
516
540
  โ†ณ Parses `--exclude`, a comma-separated list of globs overriding the configured `exclude`.
517
541
  โ””โ”€> ConfigurationService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/codependix/codependix-configuration/src/modules/configuration/configuration.service.ts:281]
518
542
  โ†ณ Parses a comma-separated list option, dropping blank entries.
@@ -524,7 +548,7 @@ What this project is judged against, as declared in its own `callidescope.config
524
548
  **5. `MapCommand.parseInclude`** โ€” depth 4 ยท decorated-method
525
549
 
526
550
  ```text
527
- ๐Ÿš€ MapCommand.parseInclude(value: string | undefined): string[] [packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:299]
551
+ ๐Ÿš€ MapCommand.parseInclude(value: string | undefined): string[] [packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:326]
528
552
  โ†ณ Parses `--include`, a comma-separated list of globs overriding the configured `include`.
529
553
  โ””โ”€> ConfigurationService.parseCommaDelimitedOption(value: string | undefined): string[] [packages/ic-suite/codependix/codependix-configuration/src/modules/configuration/configuration.service.ts:281]
530
554
  โ†ณ Parses a comma-separated list option, dropping blank entries.
@@ -573,7 +597,7 @@ What this project is judged against, as declared in its own `callidescope.config
573
597
  **9. `MapCommand.parseConfig`** โ€” depth 3 ยท decorated-method
574
598
 
575
599
  ```text
576
- ๐Ÿš€ MapCommand.parseConfig(value: string | undefined): string | undefined [packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:221]
600
+ ๐Ÿš€ MapCommand.parseConfig(value: string | undefined): string | undefined [packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:248]
577
601
  โ†ณ Parses the optional configuration path from command-line input.
578
602
  โ””โ”€> ConfigurationService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/codependix/codependix-configuration/src/modules/configuration/configuration.service.ts:291]
579
603
  โ†ณ Trims an optional string option, treating blank as absent.
@@ -584,7 +608,7 @@ What this project is judged against, as declared in its own `callidescope.config
584
608
  **10. `MapCommand.parseFormat`** โ€” depth 3 ยท decorated-method
585
609
 
586
610
  ```text
587
- ๐Ÿš€ MapCommand.parseFormat(value: string | undefined): string | undefined [packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:284]
611
+ ๐Ÿš€ MapCommand.parseFormat(value: string | undefined): string | undefined [packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:311]
588
612
  โ†ณ Parses what `--format` prints to standard output.
589
613
  โ””โ”€> ConfigurationService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/codependix/codependix-configuration/src/modules/configuration/configuration.service.ts:291]
590
614
  โ†ณ Trims an optional string option, treating blank as absent.
@@ -595,7 +619,7 @@ What this project is judged against, as declared in its own `callidescope.config
595
619
  **11. `MapCommand.parseJsonOutput`** โ€” depth 3 ยท decorated-method
596
620
 
597
621
  ```text
598
- ๐Ÿš€ MapCommand.parseJsonOutput(value: string | undefined): string | undefined [packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:312]
622
+ ๐Ÿš€ MapCommand.parseJsonOutput(value: string | undefined): string | undefined [packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:339]
599
623
  โ†ณ Parses `--json-output`, the path to write every active graph type's combined JSON data to, keyed by graph type name.
600
624
  โ””โ”€> ConfigurationService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/codependix/codependix-configuration/src/modules/configuration/configuration.service.ts:291]
601
625
  โ†ณ Trims an optional string option, treating blank as absent.
@@ -606,7 +630,7 @@ What this project is judged against, as declared in its own `callidescope.config
606
630
  **12. `MapCommand.parseMarkdownOutput`** โ€” depth 3 ยท decorated-method
607
631
 
608
632
  ```text
609
- ๐Ÿš€ MapCommand.parseMarkdownOutput(value: string | undefined): string | undefined [packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:325]
633
+ ๐Ÿš€ MapCommand.parseMarkdownOutput(value: string | undefined): string | undefined [packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:352]
610
634
  โ†ณ Parses `--markdown-output`, the path to write every active graph type's combined, anchor-spliced Markdown diagram to.
611
635
  โ””โ”€> ConfigurationService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/codependix/codependix-configuration/src/modules/configuration/configuration.service.ts:291]
612
636
  โ†ณ Trims an optional string option, treating blank as absent.
@@ -617,7 +641,7 @@ What this project is judged against, as declared in its own `callidescope.config
617
641
  **13. `MapCommand.parseProjects`** โ€” depth 3 ยท decorated-method
618
642
 
619
643
  ```text
620
- ๐Ÿš€ MapCommand.parseProjects(value: string | undefined): string | undefined [packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:404]
644
+ ๐Ÿš€ MapCommand.parseProjects(value: string | undefined): string | undefined [packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:431]
621
645
  โ†ณ Parses the projects a run exports for beyond `include`. **Widening, and narrowing.** A named project is added toโ€ฆ
622
646
  โ””โ”€> ConfigurationService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/codependix/codependix-configuration/src/modules/configuration/configuration.service.ts:291]
623
647
  โ†ณ Trims an optional string option, treating blank as absent.
@@ -628,7 +652,7 @@ What this project is judged against, as declared in its own `callidescope.config
628
652
  **14. `MapCommand.parseTags`** โ€” depth 3 ยท decorated-method
629
653
 
630
654
  ```text
631
- ๐Ÿš€ MapCommand.parseTags(value: string | undefined): string | undefined [packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:417]
655
+ ๐Ÿš€ MapCommand.parseTags(value: string | undefined): string | undefined [packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:444]
632
656
  โ†ณ Parses the Nx tags a run exports for, matched exactly against a project's own tags.
633
657
  โ””โ”€> ConfigurationService.parseOptionalOption(value: string | undefined): string | undefined [packages/ic-suite/codependix/codependix-configuration/src/modules/configuration/configuration.service.ts:291]
634
658
  โ†ณ Trims an optional string option, treating blank as absent.
@@ -639,7 +663,7 @@ What this project is judged against, as declared in its own `callidescope.config
639
663
  **15. `MapCommand.parseWrite`** โ€” depth 3 ยท decorated-method
640
664
 
641
665
  ```text
642
- ๐Ÿš€ MapCommand.parseWrite(value: boolean | undefined): boolean [packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:427]
666
+ ๐Ÿš€ MapCommand.parseWrite(value: boolean | undefined): boolean [packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:454]
643
667
  โ†ณ Parses the `--write` flag from command-line input.
644
668
  โ””โ”€> ConfigurationService.parseFlagOption(value: boolean | undefined): boolean [packages/ic-suite/codependix/codependix-configuration/src/modules/configuration/configuration.service.ts:286]
645
669
  โ†ณ Parses a valueless boolean flag, which is present or it is not.
@@ -697,28 +721,29 @@ What this project is judged against, as declared in its own `callidescope.config
697
721
 
698
722
  | Callable | Breadth | Calls directly | Location |
699
723
  | --- | --- | --- | --- |
700
- | `MapCommand.runMode` | 7 | `RunContextService.build`, `ConfigurationService.touchesFiles`, `MapCommand.runExports`, `BoundaryCheckService.run`, `MapCommand.runCombinedOutput`, `ReportingService.reportPassOutcomes`, `ReportingService.reportSuccess` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:163` |
724
+ | `MapCommand.runMode` | 7 | `MapCommand.resolveContext`, `ConfigurationService.touchesFiles`, `MapCommand.runExports`, `BoundaryCheckService.run`, `MapCommand.runCombinedOutput`, `ReportingService.reportPassOutcomes`, `ReportingService.reportSuccess` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:187` |
701
725
  | `PathCommand.run` | 5 | `PathCommand.validateInputs`, `RunContextService.build`, `PathQueryService.query`, `PathQueryService.render`, `ReportingService.reportFailure` | `packages/ic-suite/codependix/codependix-cli/src/modules/path/path.command.ts:214` |
702
- | `MapCommand.run` | 4 | `ConfigurationService.selectMode`, `CombinedOutputService.resolveFormat`, `MapCommand.runMode`, `ReportingService.reportFailure` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:445` |
726
+ | `MapCommand.run` | 4 | `ConfigurationService.selectMode`, `CombinedOutputService.resolveFormat`, `MapCommand.runMode`, `ReportingService.reportFailure` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:472` |
703
727
 
704
728
  <details>
705
- <summary>21 more callables</summary>
729
+ <summary>22 more callables</summary>
706
730
 
707
731
  | Callable | Breadth | Calls directly | Location |
708
732
  | --- | --- | --- | --- |
709
- | `MapCommand.runCombinedOutput` | 2 | `MapCommand.buildBoundaryReport`, `CombinedOutputService.run` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:111` |
710
- | `MapCommand.runExports` | 2 | `GraphRunService.run`, `ReportingService.reportEmptySelection` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:144` |
733
+ | `MapCommand.resolveContext` | 3 | `RunContextService.build`, `ReportingService.reportUnmatchedSelection`, `RunContextService.findUnmatchedSelection` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:114` |
734
+ | `MapCommand.runCombinedOutput` | 2 | `MapCommand.buildBoundaryReport`, `CombinedOutputService.run` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:135` |
735
+ | `MapCommand.runExports` | 2 | `GraphRunService.run`, `ReportingService.reportEmptySelection` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:168` |
711
736
  | `MapCommand.buildBoundaryReport` | 1 | `MapCommand.map(โ€ฆ)` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:87` |
712
- | `MapCommand.parseConfig` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:221` |
713
- | `MapCommand.parseDirectory` | 1 | `ConfigurationService.parsePathOption` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:244` |
714
- | `MapCommand.parseExclude` | 1 | `ConfigurationService.parseCommaDelimitedOption` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:260` |
715
- | `MapCommand.parseFormat` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:284` |
716
- | `MapCommand.parseInclude` | 1 | `ConfigurationService.parseCommaDelimitedOption` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:299` |
717
- | `MapCommand.parseJsonOutput` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:312` |
718
- | `MapCommand.parseMarkdownOutput` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:325` |
719
- | `MapCommand.parseProjects` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:404` |
720
- | `MapCommand.parseTags` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:417` |
721
- | `MapCommand.parseWrite` | 1 | `ConfigurationService.parseFlagOption` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:427` |
737
+ | `MapCommand.parseConfig` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:248` |
738
+ | `MapCommand.parseDirectory` | 1 | `ConfigurationService.parsePathOption` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:271` |
739
+ | `MapCommand.parseExclude` | 1 | `ConfigurationService.parseCommaDelimitedOption` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:287` |
740
+ | `MapCommand.parseFormat` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:311` |
741
+ | `MapCommand.parseInclude` | 1 | `ConfigurationService.parseCommaDelimitedOption` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:326` |
742
+ | `MapCommand.parseJsonOutput` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:339` |
743
+ | `MapCommand.parseMarkdownOutput` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:352` |
744
+ | `MapCommand.parseProjects` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:431` |
745
+ | `MapCommand.parseTags` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:444` |
746
+ | `MapCommand.parseWrite` | 1 | `ConfigurationService.parseFlagOption` | `packages/ic-suite/codependix/codependix-cli/src/modules/map/map.command.ts:454` |
722
747
  | `PathCommand.validateInputs` | 1 | `PathQueryService.resolveFormat` | `packages/ic-suite/codependix/codependix-cli/src/modules/path/path.command.ts:53` |
723
748
  | `PathCommand.parseConfig` | 1 | `ConfigurationService.parseOptionalOption` | `packages/ic-suite/codependix/codependix-cli/src/modules/path/path.command.ts:89` |
724
749
  | `PathCommand.parseDirectory` | 1 | `ConfigurationService.parsePathOption` | `packages/ic-suite/codependix/codependix-cli/src/modules/path/path.command.ts:98` |
@@ -737,14 +762,14 @@ What this project is judged against, as declared in its own `callidescope.config
737
762
 
738
763
  ### Project
739
764
 
740
- ![Lines of Code](https://img.shields.io/badge/Lines_of_Code-4058-22c55e?style=flat-square)
741
- ![Repository Size](https://img.shields.io/badge/Repository_Size-141.10_kB-6b7280?style=flat-square)
765
+ ![Lines of Code](https://img.shields.io/badge/Lines_of_Code-4171-22c55e?style=flat-square)
766
+ ![Repository Size](https://img.shields.io/badge/Repository_Size-145.87_kB-6b7280?style=flat-square)
742
767
  ![Folders](https://img.shields.io/badge/Folders-5-4a4a4a?style=flat-square)
743
768
  ![Source Files](https://img.shields.io/badge/Source_Files-31-3178c6?style=flat-square)
744
769
 
745
770
  ### Measured Targets
746
771
 
747
- ![Compiled JavaScript Size](https://img.shields.io/badge/Compiled_JavaScript_Size-5.82_kB_gzip-6b7280?style=flat-square)
772
+ ![Compiled JavaScript Size](https://img.shields.io/badge/Compiled_JavaScript_Size-5.84_kB_gzip-6b7280?style=flat-square)
748
773
 
749
774
  ### TypeScript
750
775
 
@@ -753,7 +778,7 @@ What this project is judged against, as declared in its own `callidescope.config
753
778
  ![Generic Declarations](https://img.shields.io/badge/Generic_Declarations-0-0369a1?style=flat-square)
754
779
  ![Enums](https://img.shields.io/badge/Enums-0-f97316?style=flat-square)
755
780
  ![Decorators](https://img.shields.io/badge/Decorators-39-db2777?style=flat-square)
756
- ![Doc Comments](https://img.shields.io/badge/Doc_Comments-42-6366f1?style=flat-square)
781
+ ![Doc Comments](https://img.shields.io/badge/Doc_Comments-43-6366f1?style=flat-square)
757
782
  ![Static Methods](https://img.shields.io/badge/Static_Methods-1-166534?style=flat-square)
758
783
 
759
784
  ### JavaScript
@@ -762,15 +787,15 @@ What this project is judged against, as declared in its own `callidescope.config
762
787
  ![Test Files](https://img.shields.io/badge/Test_Files-10-10b981?style=flat-square)
763
788
  ![External Packages](https://img.shields.io/badge/External_Packages-19-8b5cf6?style=flat-square)
764
789
  ![Classes](https://img.shields.io/badge/Classes-6-7c3aed?style=flat-square)
765
- ![Functions](https://img.shields.io/badge/Functions-218-16a34a?style=flat-square)
766
- ![Methods](https://img.shields.io/badge/Methods-45-15803d?style=flat-square)
767
- ![Sync Functions](https://img.shields.io/badge/Sync_Functions-171-4ade80?style=flat-square)
768
- ![Async Functions](https://img.shields.io/badge/Async_Functions-92-059669?style=flat-square)
769
- ![Constants](https://img.shields.io/badge/Constants-148-dc2626?style=flat-square)
790
+ ![Functions](https://img.shields.io/badge/Functions-224-16a34a?style=flat-square)
791
+ ![Methods](https://img.shields.io/badge/Methods-46-15803d?style=flat-square)
792
+ ![Sync Functions](https://img.shields.io/badge/Sync_Functions-173-4ade80?style=flat-square)
793
+ ![Async Functions](https://img.shields.io/badge/Async_Functions-97-059669?style=flat-square)
794
+ ![Constants](https://img.shields.io/badge/Constants-152-dc2626?style=flat-square)
770
795
  ![Imports](https://img.shields.io/badge/Imports-114-0284c7?style=flat-square)
771
796
  ![Exported Symbols](https://img.shields.io/badge/Exported_Symbols-10-ea580c?style=flat-square)
772
- ![Comments](https://img.shields.io/badge/Comments-137-64748b?style=flat-square)
773
- ![Comment Lines](https://img.shields.io/badge/Comment_Lines-248-475569?style=flat-square)
797
+ ![Comments](https://img.shields.io/badge/Comments-139-64748b?style=flat-square)
798
+ ![Comment Lines](https://img.shields.io/badge/Comment_Lines-256-475569?style=flat-square)
774
799
  ![TODO Comments](https://img.shields.io/badge/TODO_Comments-0-ca8a04?style=flat-square)
775
800
 
776
801
  ### Python
@@ -791,16 +816,16 @@ What this project is judged against, as declared in its own `callidescope.config
791
816
  ### JSON
792
817
 
793
818
  ![JSON Files](https://img.shields.io/badge/JSON_Files-4-a16207?style=flat-square)
794
- ![JSON Lines](https://img.shields.io/badge/JSON_Lines-191-ca8a04?style=flat-square)
819
+ ![JSON Lines](https://img.shields.io/badge/JSON_Lines-193-ca8a04?style=flat-square)
795
820
  ![JSON Objects](https://img.shields.io/badge/JSON_Objects-42-7c3aed?style=flat-square)
796
821
  ![JSON Arrays](https://img.shields.io/badge/JSON_Arrays-13-8b5cf6?style=flat-square)
797
- ![JSON Properties](https://img.shields.io/badge/JSON_Properties-122-0284c7?style=flat-square)
798
- ![JSON Strings](https://img.shields.io/badge/JSON_Strings-107-16a34a?style=flat-square)
822
+ ![JSON Properties](https://img.shields.io/badge/JSON_Properties-124-0284c7?style=flat-square)
823
+ ![JSON Strings](https://img.shields.io/badge/JSON_Strings-109-16a34a?style=flat-square)
799
824
  ![JSON Numbers](https://img.shields.io/badge/JSON_Numbers-1-059669?style=flat-square)
800
825
  ![JSON Booleans](https://img.shields.io/badge/JSON_Booleans-8-0ea5e9?style=flat-square)
801
826
  ![JSON Nulls](https://img.shields.io/badge/JSON_Nulls-0-64748b?style=flat-square)
802
827
  ![JSON Items](https://img.shields.io/badge/JSON_Items-45-475569?style=flat-square)
803
- ![JSON Nodes](https://img.shields.io/badge/JSON_Nodes-171-dc2626?style=flat-square)
828
+ ![JSON Nodes](https://img.shields.io/badge/JSON_Nodes-173-dc2626?style=flat-square)
804
829
  ![JSON Max Depth](https://img.shields.io/badge/JSON_Max_Depth-6-ea580c?style=flat-square)
805
830
 
806
831
  ### YAML
@@ -926,20 +951,20 @@ What this project is judged against, as declared in its own `callidescope.config
926
951
  ### Markdown
927
952
 
928
953
  ![Markdown Files](https://img.shields.io/badge/Markdown_Files-2-083fa1?style=flat-square)
929
- ![Markdown Lines](https://img.shields.io/badge/Markdown_Lines-363-1f6feb?style=flat-square)
954
+ ![Markdown Lines](https://img.shields.io/badge/Markdown_Lines-389-1f6feb?style=flat-square)
930
955
  ![H1](https://img.shields.io/badge/H1-1-7c3aed?style=flat-square)
931
- ![H2](https://img.shields.io/badge/H2-19-8b5cf6?style=flat-square)
932
- ![H3](https://img.shields.io/badge/H3-29-a78bfa?style=flat-square)
956
+ ![H2](https://img.shields.io/badge/H2-21-8b5cf6?style=flat-square)
957
+ ![H3](https://img.shields.io/badge/H3-33-a78bfa?style=flat-square)
933
958
  ![H4](https://img.shields.io/badge/H4-0-c4b5fd?style=flat-square)
934
959
  ![H5](https://img.shields.io/badge/H5-0-ddd6fe?style=flat-square)
935
960
  ![H6](https://img.shields.io/badge/H6-0-ede9fe?style=flat-square)
936
- ![Paragraphs](https://img.shields.io/badge/Paragraphs-97-64748b?style=flat-square)
937
- ![Lists](https://img.shields.io/badge/Lists-21-16a34a?style=flat-square)
938
- ![List Items](https://img.shields.io/badge/List_Items-76-22c55e?style=flat-square)
961
+ ![Paragraphs](https://img.shields.io/badge/Paragraphs-107-64748b?style=flat-square)
962
+ ![Lists](https://img.shields.io/badge/Lists-25-16a34a?style=flat-square)
963
+ ![List Items](https://img.shields.io/badge/List_Items-86-22c55e?style=flat-square)
939
964
  ![Task List Items](https://img.shields.io/badge/Task_List_Items-0-4ade80?style=flat-square)
940
965
  ![Tables](https://img.shields.io/badge/Tables-2-0284c7?style=flat-square)
941
966
  ![Table Rows](https://img.shields.io/badge/Table_Rows-10-0ea5e9?style=flat-square)
942
- ![Links](https://img.shields.io/badge/Links-18-059669?style=flat-square)
967
+ ![Links](https://img.shields.io/badge/Links-22-059669?style=flat-square)
943
968
  ![Images](https://img.shields.io/badge/Images-0-10b981?style=flat-square)
944
969
  ![Code Blocks](https://img.shields.io/badge/Code_Blocks-13-dc2626?style=flat-square)
945
970
  ![Inline Code](https://img.shields.io/badge/Inline_Code-78-ef4444?style=flat-square)
@@ -43,12 +43,12 @@ var N = Object.defineProperty, __name = (e, t) => N(e, "name", {
43
43
  "TypeOrmModule"
44
44
  ]);
45
45
  //#endregion
46
- //#region \0@oxc-project+runtime@0.151.0/helpers/esm/decorateMetadata.js
46
+ //#region \0@oxc-project+runtime@0.153.0/helpers/esm/decorateMetadata.js
47
47
  function __decorateMetadata(e, t) {
48
48
  if (typeof Reflect == "object" && typeof Reflect.metadata == "function") return Reflect.metadata(e, t);
49
49
  }
50
50
  //#endregion
51
- //#region \0@oxc-project+runtime@0.151.0/helpers/esm/decorate.js
51
+ //#region \0@oxc-project+runtime@0.153.0/helpers/esm/decorate.js
52
52
  function __decorate(e, t, n, r) {
53
53
  var i = arguments.length, a = i < 3 ? t : r === null ? r = Object.getOwnPropertyDescriptor(t, n) : r, o;
54
54
  if (typeof Reflect == "object" && typeof Reflect.decorate == "function") a = Reflect.decorate(e, t, n, r);
@@ -85,11 +85,7 @@ var R, z = class LoggerService extends e {
85
85
  });
86
86
  }
87
87
  static logToStandardError() {
88
- if (R.rootLogger !== void 0) {
89
- 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.");
90
- return;
91
- }
92
- R.writesToStandardError = !0;
88
+ R.rootLogger === void 0 ? R.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.");
93
89
  }
94
90
  assertConventionalMessage(e) {
95
91
  if (R.isProduction || this.shouldSkipConventionalMessageValidation(e.context)) return;
@@ -223,6 +219,13 @@ var V = d.object({}), H, U = H = class MapCommand extends j {
223
219
  outcome: t
224
220
  };
225
221
  }
222
+ async resolveContext(e) {
223
+ let t = await this.runContextService.build({
224
+ ...e,
225
+ workingDirectory: l.resolve(e.options.directory ?? process.cwd())
226
+ });
227
+ return this.reportingService.reportUnmatchedSelection(this.runContextService.findUnmatchedSelection(t)), t;
228
+ }
226
229
  runCombinedOutput(e) {
227
230
  let { combinedGraphs: t, context: n, options: r } = e, i = this.buildBoundaryReport({
228
231
  boundaryOutcome: e.boundaryOutcome,
@@ -243,28 +246,24 @@ var V = d.object({}), H, U = H = class MapCommand extends j {
243
246
  return this.reportingService.reportEmptySelection(t.outcome.results.length + t.outcome.failures.length), t;
244
247
  }
245
248
  async runMode(e) {
246
- let { format: t, mode: n, options: r } = e, i = await this.runContextService.build({
249
+ let { format: t, mode: n, options: r } = e, i = await this.resolveContext({
247
250
  mode: n.writes ? "write" : "check",
248
- options: r,
249
- workingDirectory: l.resolve(r.directory ?? process.cwd())
251
+ options: r
250
252
  }), a = this.configurationService.touchesFiles(n) ? await this.runExports(i) : void 0, o = n.checksBoundaries ? await this.boundaryCheckService.run(i) : void 0;
251
- if (this.runCombinedOutput({
253
+ this.runCombinedOutput({
252
254
  boundaryOutcome: o,
253
255
  combinedGraphs: a?.combinedGraphs,
254
256
  context: i,
255
257
  format: t,
256
258
  options: r
257
- }), !this.reportingService.reportPassOutcomes({
259
+ }), this.reportingService.reportPassOutcomes({
258
260
  boundaryOutcome: o,
259
- exportRun: a
260
- })) {
261
- process.exitCode = 1;
262
- return;
263
- }
264
- this.reportingService.reportSuccess({
261
+ exportRun: a,
262
+ selectedProjects: i.selectedProjects
263
+ }) ? this.reportingService.reportSuccess({
265
264
  boundaryOutcome: o,
266
265
  exportOutcome: a?.outcome
267
- });
266
+ }) : process.exitCode = 1;
268
267
  }
269
268
  parseCheck(e) {
270
269
  return e;
@@ -391,6 +391,15 @@ export declare class MapCommand extends CommandRunner {
391
391
  * prints nothing at all and logs to standard error alone.
392
392
  */
393
393
  private buildBoundaryReport;
394
+ /**
395
+ * Resolves the context every pass reads, warning about any `--projects` or
396
+ * `--tags` entry that matched no project.
397
+ *
398
+ * The warning belongs before the first pass: a typo beside a correct name
399
+ * narrows the run silently, so it has to be named before the run judges
400
+ * fewer projects than were asked for.
401
+ */
402
+ private resolveContext;
394
403
  /**
395
404
  * Prints and writes the combined output: every active graph type's data
396
405
  * when the export pass ran, and the boundary pass's findings beside it when
package/dist/src/index.js CHANGED
@@ -1,2 +1 @@
1
- import { n as e, r as t, t as n } from "../main.module-DJFfw_zD.js";
2
- export { n as MainModule, t as MapCommand, e as MapModule };
1
+ export { t as MainModule, r as MapCommand, n as MapModule } from "../main.module-3DZmGow-.js";
package/dist/src/main.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { i as e, t } from "../main.module-DJFfw_zD.js";
2
+ import { i as e, t } from "../main.module-3DZmGow-.js";
3
3
  import { CommandFactory as n } from "nest-commander";
4
4
  import "reflect-metadata";
5
5
  //#region packages/ic-suite/codependix/codependix-cli/src/main.ts
package/package.json CHANGED
@@ -7,10 +7,10 @@
7
7
  "url": "https://github.com/organizzolini/codebase/issues"
8
8
  },
9
9
  "dependencies": {
10
- "@codependix/boundaries": "0.0.14",
11
- "@codependix/configuration": "0.0.15",
12
- "@codependix/core": "0.0.13",
13
- "@codependix/output": "0.0.14",
10
+ "@codependix/boundaries": "0.0.16",
11
+ "@codependix/configuration": "0.0.17",
12
+ "@codependix/core": "0.0.15",
13
+ "@codependix/output": "0.0.16",
14
14
  "@nestjs/common": "^11.1.21 || ^12.0.1",
15
15
  "@nestjs/config": "^12.0.0",
16
16
  "@nestjs/core": "^11.1.21 || ^12.0.1",
@@ -39,6 +39,7 @@
39
39
  "types": "./dist/src/index.d.ts",
40
40
  "default": "./dist/src/index.js"
41
41
  },
42
+ "./main": "./dist/src/main.js",
42
43
  "./package.json": "./package.json"
43
44
  },
44
45
  "files": [
@@ -74,5 +75,5 @@
74
75
  "strict": true
75
76
  },
76
77
  "types": "./dist/src/index.d.ts",
77
- "version": "0.0.15"
78
+ "version": "0.0.17"
78
79
  }