@codependix/output 0.0.15 → 0.0.16

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,18 @@
1
+ ## 0.0.16 (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-nestjs-modules to 0.0.15
10
+ - Updated codependix-configuration to 0.0.17
11
+ - Updated codependix-file-imports to 0.0.15
12
+ - Updated codependix-nx-projects to 0.0.16
13
+ - Updated codependix-boundaries to 0.0.16
14
+ - Updated codependix-core to 0.0.15
15
+
1
16
  ## 0.0.15 (2026-10-13)
2
17
 
3
18
  ### 🧱 Updated Dependencies
package/README.md CHANGED
@@ -301,9 +301,9 @@ Call stacks traced through `packages/ic-suite/codependix/codependix-output`, dee
301
301
 
302
302
  | Measure | Value |
303
303
  | --- | --- |
304
- | Callables | 111 |
304
+ | Callables | 117 |
305
305
  | Files | 43 |
306
- | Calls traced | 180 |
306
+ | Calls traced | 193 |
307
307
  | Call stacks | 2 |
308
308
  | Deepest stack | 11 |
309
309
  | Stacks through recursion | 0 |
@@ -376,7 +376,7 @@ What this project is judged against, as declared in its own `callidescope.config
376
376
  | `ProjectGraphsService.runImportProject` | 6 | `TypescriptService.buildProgram`, `TypescriptService.buildGraph`, `DeliveryService.deliverGraphOutput`, `DeliveryService.renderJson`, `TypescriptService.renderMermaid`, `ProjectGraphsService.buildMarkdownSection` | `packages/ic-suite/codependix/codependix-output/src/modules/project-graphs/project-graphs.service.ts:131` |
377
377
 
378
378
  <details>
379
- <summary>59 more callables</summary>
379
+ <summary>62 more callables</summary>
380
380
 
381
381
  | Callable | Breadth | Calls directly | Location |
382
382
  | --- | --- | --- | --- |
@@ -386,8 +386,9 @@ What this project is judged against, as declared in its own `callidescope.config
386
386
  | `PythonImportsService.runProject` | 5 | `PythonService.buildGraph`, `DeliveryService.deliverGraphOutput`, `DeliveryService.renderJson`, `PythonService.renderMermaid`, `PythonImportsService.buildMarkdownSection` | `packages/ic-suite/codependix/codependix-output/src/modules/python-imports/python-imports.service.ts:99` |
387
387
  | `WorkspaceGraphsService.runNestjsModulesWorkspaceGraph` | 5 | `ConfigurationService.resolveForWorkspace`, `WorkspaceGraphsService.buildNestjsModuleGraphs`, `NestjsModulesWorkspaceGraphService.buildWorkspaceGraph`, `NestjsModulesWorkspaceGraphService.renderMermaid`, `WorkspaceGraphsService.deliverWorkspaceGraph` | `packages/ic-suite/codependix/codependix-output/src/modules/workspace-graphs/workspace-graphs.service.ts:231` |
388
388
  | `GraphRunService.run` | 5 | `GraphRunService.runNxGraphs`, `GraphRunService.runNestjsGraphs`, `GraphRunService.runImportGraphs`, `GraphRunService.runPythonImportGraphs`, `GraphRunService.collectCombinedGraphs` | `packages/ic-suite/codependix/codependix-output/src/modules/graph-run/graph-run.service.ts:144` |
389
+ | `ReportingService.reportBoundaries` | 5 | `ReportingService.filterVerdict`, `BoundaryOutcomeReportService.renderFailures`, `BoundaryReportService.renderSummary`, `BoundaryReportService.renderViolations`, `ReportingService.reportBoundaryNotes` | `packages/ic-suite/codependix/codependix-output/src/modules/reporting/reporting.service.ts:96` |
389
390
  | `AnchorsService.insertAnchorSection` | 4 | `AnchorsService.wrapInAnchors`, `AnchorsService.escapeForPattern`, `AnchorsService.appendCodependixSection`, `AnchorsService.insertIntoCodependixSection` | `packages/ic-suite/codependix/codependix-output/src/modules/anchors/anchors.service.ts:144` |
390
- | `CombinedOutputService.run` | 4 | `CombinedOutputService.printConsole`, `CombinedOutputService.writeFile`, `CombinedOutputService.renderJson`, `CombinedOutputService.renderMarkdown` | `packages/ic-suite/codependix/codependix-output/src/modules/combined-output/combined-output.service.ts:148` |
391
+ | `CombinedOutputService.run` | 4 | `CombinedOutputService.printConsole`, `CombinedOutputService.writeFile`, `CombinedOutputService.renderJson`, `CombinedOutputService.renderMarkdown` | `packages/ic-suite/codependix/codependix-output/src/modules/combined-output/combined-output.service.ts:177` |
391
392
  | `DeliveryService.checkAnchoredMarkdown` | 4 | `AnchorNotFoundError.constructor`, `AnchorsService.hasAnchor`, `AnchorsService.checkAnchor`, `DeliveryService.classifyDifference` | `packages/ic-suite/codependix/codependix-output/src/modules/delivery/delivery.service.ts:51` |
392
393
  | `DeliveryService.deliverMarkdown` | 4 | `DeliveryService.readFileOrEmpty`, `DeliveryService.classifyDifference`, `DeliveryService.checkAnchoredMarkdown`, `DeliveryService.writeAnchoredMarkdown` | `packages/ic-suite/codependix/codependix-output/src/modules/delivery/delivery.service.ts:168` |
393
394
  | `DeliveryService.writeAnchoredMarkdown` | 4 | `AnchorNotFoundError.constructor`, `AnchorsService.hasAnchor`, `DeliveryService.writeAutoCreatedAnchorSection`, `AnchorsService.replaceAnchorContent` | `packages/ic-suite/codependix/codependix-output/src/modules/delivery/delivery.service.ts:282` |
@@ -397,6 +398,7 @@ What this project is judged against, as declared in its own `callidescope.config
397
398
  | `PythonImportsService.runGraphs` | 4 | `PythonService.discoverProjects`, `PythonImportsService.resolveProjectOutput`, `PythonImportsService.runProject`, `PythonImportsService.collectProjectFailure` | `packages/ic-suite/codependix/codependix-output/src/modules/python-imports/python-imports.service.ts:135` |
398
399
  | `WorkspaceGraphsService.runNxWorkspaceGraph` | 4 | `ConfigurationService.resolveForWorkspace`, `WorkspaceGraphService.buildWorkspaceGraph`, `WorkspaceGraphService.renderMermaid`, `WorkspaceGraphsService.deliverWorkspaceGraph` | `packages/ic-suite/codependix/codependix-output/src/modules/workspace-graphs/workspace-graphs.service.ts:275` |
399
400
  | `AnchorsService.buildAnchorPattern` | 3 | `AnchorsService.escapeForPattern`, `buildStartMarker`, `buildEndMarker` | `packages/ic-suite/codependix/codependix-output/src/modules/anchors/anchors.service.ts:59` |
401
+ | `CombinedOutputService.renderMarkdown` | 3 | `AnchorsService.insertAnchorSection`, `BoundaryOutcomeReportService.renderMarkdown`, `BoundaryOutcomeReportService.buildReport` | `packages/ic-suite/codependix/codependix-output/src/modules/combined-output/combined-output.service.ts:94` |
400
402
  | `ProjectGraphsService.runNxProjectsGraphs` | 3 | `ProjectGraphsService.resolveProjectOutput`, `ProjectGraphsService.runNxProject`, `ProjectGraphsService.collectProjectFailure` | `packages/ic-suite/codependix/codependix-output/src/modules/project-graphs/project-graphs.service.ts:292` |
401
403
  | `WorkspaceGraphsService.buildNestjsModuleGraphs` | 3 | `NestjsProjectService.discoverProjects`, `NestjsProjectService.exploreProject`, `ModuleGraphService.buildGraph` | `packages/ic-suite/codependix/codependix-output/src/modules/workspace-graphs/workspace-graphs.service.ts:92` |
402
404
  | `WorkspaceGraphsService.deliverWorkspaceGraph` | 3 | `DeliveryService.deliverGraphOutput`, `DeliveryService.renderJson`, `WorkspaceGraphsService.buildMarkdownSection` | `packages/ic-suite/codependix/codependix-output/src/modules/workspace-graphs/workspace-graphs.service.ts:135` |
@@ -407,11 +409,12 @@ What this project is judged against, as declared in its own `callidescope.config
407
409
  | `PathQueryService.renderMermaidSection` | 3 | `buildNoPathMessage`, `PathQueryService.map(…)`, `PathQueryService.toMermaidId` | `packages/ic-suite/codependix/codependix-output/src/modules/path-query/path-query.service.ts:207` |
408
410
  | `PathQueryService.findShortestPath` | 3 | `PathQueryService.isKnownNode`, `PathQueryService.searchBfs`, `PathQueryService.buildAdjacency` | `packages/ic-suite/codependix/codependix-output/src/modules/path-query/path-query.service.ts:269` |
409
411
  | `PathQueryService.query` | 3 | `PathQueryService.queryNxProjects`, `PathQueryService.queryFileImports`, `PathQueryService.queryNestjsModules` | `packages/ic-suite/codependix/codependix-output/src/modules/path-query/path-query.service.ts:296` |
410
- | `ReportingService.reportOutcome` | 3 | `ReportingService.filter(…)`, `ReportingService.map(…)`, `ReportingService.flatMap(…)` | `packages/ic-suite/codependix/codependix-output/src/modules/reporting/reporting.service.ts:112` |
412
+ | `ReportingService.reportOutcome` | 3 | `ReportingService.filter(…)`, `ReportingService.map(…)`, `ReportingService.flatMap(…)` | `packages/ic-suite/codependix/codependix-output/src/modules/reporting/reporting.service.ts:171` |
413
+ | `ReportingService.reportPassOutcomes` | 3 | `ReportingService.reportOutcome`, `ReportingService.reportBoundaries`, `ReportingService.map(…)` | `packages/ic-suite/codependix/codependix-output/src/modules/reporting/reporting.service.ts:217` |
411
414
  | `AnchorsService.checkAnchor` | 2 | `AnchorsService.extractAnchorContent`, `AnchorNotFoundError.constructor` | `packages/ic-suite/codependix/codependix-output/src/modules/anchors/anchors.service.ts:103` |
412
415
  | `AnchorsService.wrapInAnchors` | 2 | `buildStartMarker`, `buildEndMarker` | `packages/ic-suite/codependix/codependix-output/src/modules/anchors/anchors.service.ts:196` |
413
- | `CombinedOutputService.printConsole` | 2 | `CombinedOutputService.renderJson`, `CombinedOutputService.renderMarkdown` | `packages/ic-suite/codependix/codependix-output/src/modules/combined-output/combined-output.service.ts:51` |
414
- | `CombinedOutputService.resolveFormat` | 2 | `CombinedOutputService.find(…)`, `CombinedOutputService.map(…)` | `packages/ic-suite/codependix/codependix-output/src/modules/combined-output/combined-output.service.ts:116` |
416
+ | `CombinedOutputService.printConsole` | 2 | `CombinedOutputService.renderJson`, `CombinedOutputService.renderMarkdown` | `packages/ic-suite/codependix/codependix-output/src/modules/combined-output/combined-output.service.ts:57` |
417
+ | `CombinedOutputService.resolveFormat` | 2 | `CombinedOutputService.find(…)`, `CombinedOutputService.map(…)` | `packages/ic-suite/codependix/codependix-output/src/modules/combined-output/combined-output.service.ts:144` |
415
418
  | `DeliveryService.deliverJson` | 2 | `DeliveryService.readFileOrEmpty`, `DeliveryService.classifyDifference` | `packages/ic-suite/codependix/codependix-output/src/modules/delivery/delivery.service.ts:135` |
416
419
  | `DeliveryService.writeAutoCreatedAnchorSection` | 2 | `AnchorNotFoundError.constructor`, `AnchorsService.insertAnchorSection` | `packages/ic-suite/codependix/codependix-output/src/modules/delivery/delivery.service.ts:333` |
417
420
  | `ProjectGraphsService.resolveProjectOutput` | 2 | `ConfigurationService.resolveForProject`, `ProjectGraphsService.find(…)` | `packages/ic-suite/codependix/codependix-output/src/modules/project-graphs/project-graphs.service.ts:108` |
@@ -424,11 +427,11 @@ What this project is judged against, as declared in its own `callidescope.config
424
427
  | `PathQueryService.renderMarkdown` | 2 | `buildNoPathMessage`, `PathQueryService.map(…)` | `packages/ic-suite/codependix/codependix-output/src/modules/path-query/path-query.service.ts:173` |
425
428
  | `PathQueryService.render` | 2 | `PathQueryService.renderMermaid`, `PathQueryService.renderMarkdown` | `packages/ic-suite/codependix/codependix-output/src/modules/path-query/path-query.service.ts:328` |
426
429
  | `PathQueryService.resolveFormat` | 2 | `PathQueryService.find(…)`, `PathQueryService.map(…)` | `packages/ic-suite/codependix/codependix-output/src/modules/path-query/path-query.service.ts:344` |
427
- | `ReportingService.reportBoundaries` | 2 | `BoundaryReportService.renderSummary`, `BoundaryReportService.renderViolations` | `packages/ic-suite/codependix/codependix-output/src/modules/reporting/reporting.service.ts:47` |
428
- | `ReportingService.reportPassOutcomes` | 2 | `ReportingService.reportOutcome`, `ReportingService.reportBoundaries` | `packages/ic-suite/codependix/codependix-output/src/modules/reporting/reporting.service.ts:157` |
430
+ | `ReportingService.filterVerdict` | 2 | `ReportingService.filter(…)`, `ReportingService.filter(…)` | `packages/ic-suite/codependix/codependix-output/src/modules/reporting/reporting.service.ts:46` |
431
+ | `ReportingService.reportBoundaryNotes` | 2 | `BoundaryOutcomeReportService.renderFailures`, `BoundaryReportService.renderNotes` | `packages/ic-suite/codependix/codependix-output/src/modules/reporting/reporting.service.ts:65` |
429
432
  | `AnchorsService.extractAnchorContent` | 1 | `AnchorsService.buildAnchorPattern` | `packages/ic-suite/codependix/codependix-output/src/modules/anchors/anchors.service.ts:120` |
430
433
  | `AnchorsService.hasAnchor` | 1 | `AnchorsService.buildAnchorPattern` | `packages/ic-suite/codependix/codependix-output/src/modules/anchors/anchors.service.ts:125` |
431
- | `CombinedOutputService.renderMarkdown` | 1 | `AnchorsService.insertAnchorSection` | `packages/ic-suite/codependix/codependix-output/src/modules/combined-output/combined-output.service.ts:76` |
434
+ | `CombinedOutputService.renderJson` | 1 | `BoundaryOutcomeReportService.buildReport` | `packages/ic-suite/codependix/codependix-output/src/modules/combined-output/combined-output.service.ts:70` |
432
435
  | `WorkspaceGraphsService.map(…)` | 1 | `PythonService.buildGraph` | `packages/ic-suite/codependix/codependix-output/src/modules/workspace-graphs/workspace-graphs.service.ts:197` |
433
436
  | `GraphRunService.collectWorkspaceOutcome` | 1 | `GraphRunService.collectProjectFailure` | `packages/ic-suite/codependix/codependix-output/src/modules/graph-run/graph-run.service.ts:112` |
434
437
  | `GraphRunService.build` | 1 | `WorkspaceGraphsService.runFileImportsWorkspaceGraph` | `packages/ic-suite/codependix/codependix-output/src/modules/graph-run/graph-run.service.ts:192` |
@@ -438,7 +441,7 @@ What this project is judged against, as declared in its own `callidescope.config
438
441
  | `PathQueryService.map(…)` | 1 | `PythonService.buildGraph` | `packages/ic-suite/codependix/codependix-output/src/modules/path-query/path-query.service.ts:118` |
439
442
  | `PathQueryService.renderMermaid` | 1 | `PathQueryService.renderMermaidSection` | `packages/ic-suite/codependix/codependix-output/src/modules/path-query/path-query.service.ts:193` |
440
443
  | `PathQueryService.map(…)` | 1 | `PathQueryService.toMermaidId` | `packages/ic-suite/codependix/codependix-output/src/modules/path-query/path-query.service.ts:216` |
441
- | `ReportingService.flatMap(…)` | 1 | `ReportingService.map(…)` | `packages/ic-suite/codependix/codependix-output/src/modules/reporting/reporting.service.ts:127` |
444
+ | `ReportingService.flatMap(…)` | 1 | `ReportingService.map(…)` | `packages/ic-suite/codependix/codependix-output/src/modules/reporting/reporting.service.ts:186` |
442
445
 
443
446
  </details>
444
447
  <!-- callidescope:end -->
@@ -449,14 +452,14 @@ What this project is judged against, as declared in its own `callidescope.config
449
452
 
450
453
  ### Project
451
454
 
452
- ![Lines of Code](https://img.shields.io/badge/Lines_of_Code-8201-22c55e?style=flat-square)
453
- ![Repository Size](https://img.shields.io/badge/Repository_Size-273.69_kB-6b7280?style=flat-square)
455
+ ![Lines of Code](https://img.shields.io/badge/Lines_of_Code-8338-22c55e?style=flat-square)
456
+ ![Repository Size](https://img.shields.io/badge/Repository_Size-278.66_kB-6b7280?style=flat-square)
454
457
  ![Folders](https://img.shields.io/badge/Folders-12-4a4a4a?style=flat-square)
455
458
  ![Source Files](https://img.shields.io/badge/Source_Files-63-3178c6?style=flat-square)
456
459
 
457
460
  ### Measured Targets
458
461
 
459
- ![Compiled JavaScript Size](https://img.shields.io/badge/Compiled_JavaScript_Size-9.50_kB_gzip-6b7280?style=flat-square)
462
+ ![Compiled JavaScript Size](https://img.shields.io/badge/Compiled_JavaScript_Size-9.63_kB_gzip-6b7280?style=flat-square)
460
463
 
461
464
  ### TypeScript
462
465
 
@@ -465,7 +468,7 @@ What this project is judged against, as declared in its own `callidescope.config
465
468
  ![Generic Declarations](https://img.shields.io/badge/Generic_Declarations-0-0369a1?style=flat-square)
466
469
  ![Enums](https://img.shields.io/badge/Enums-0-f97316?style=flat-square)
467
470
  ![Decorators](https://img.shields.io/badge/Decorators-18-db2777?style=flat-square)
468
- ![Doc Comments](https://img.shields.io/badge/Doc_Comments-141-6366f1?style=flat-square)
471
+ ![Doc Comments](https://img.shields.io/badge/Doc_Comments-142-6366f1?style=flat-square)
469
472
  ![Static Methods](https://img.shields.io/badge/Static_Methods-0-166534?style=flat-square)
470
473
 
471
474
  ### JavaScript
@@ -474,15 +477,15 @@ What this project is judged against, as declared in its own `callidescope.config
474
477
  ![Test Files](https://img.shields.io/badge/Test_Files-18-10b981?style=flat-square)
475
478
  ![External Packages](https://img.shields.io/badge/External_Packages-16-8b5cf6?style=flat-square)
476
479
  ![Classes](https://img.shields.io/badge/Classes-19-7c3aed?style=flat-square)
477
- ![Functions](https://img.shields.io/badge/Functions-283-16a34a?style=flat-square)
478
- ![Methods](https://img.shields.io/badge/Methods-102-15803d?style=flat-square)
479
- ![Sync Functions](https://img.shields.io/badge/Sync_Functions-299-4ade80?style=flat-square)
480
+ ![Functions](https://img.shields.io/badge/Functions-294-16a34a?style=flat-square)
481
+ ![Methods](https://img.shields.io/badge/Methods-104-15803d?style=flat-square)
482
+ ![Sync Functions](https://img.shields.io/badge/Sync_Functions-312-4ade80?style=flat-square)
480
483
  ![Async Functions](https://img.shields.io/badge/Async_Functions-86-059669?style=flat-square)
481
- ![Constants](https://img.shields.io/badge/Constants-406-dc2626?style=flat-square)
484
+ ![Constants](https://img.shields.io/badge/Constants-407-dc2626?style=flat-square)
482
485
  ![Imports](https://img.shields.io/badge/Imports-310-0284c7?style=flat-square)
483
486
  ![Exported Symbols](https://img.shields.io/badge/Exported_Symbols-71-ea580c?style=flat-square)
484
- ![Comments](https://img.shields.io/badge/Comments-229-64748b?style=flat-square)
485
- ![Comment Lines](https://img.shields.io/badge/Comment_Lines-652-475569?style=flat-square)
487
+ ![Comments](https://img.shields.io/badge/Comments-231-64748b?style=flat-square)
488
+ ![Comment Lines](https://img.shields.io/badge/Comment_Lines-658-475569?style=flat-square)
486
489
  ![TODO Comments](https://img.shields.io/badge/TODO_Comments-0-ca8a04?style=flat-square)
487
490
 
488
491
  ### Python
@@ -638,20 +641,20 @@ What this project is judged against, as declared in its own `callidescope.config
638
641
  ### Markdown
639
642
 
640
643
  ![Markdown Files](https://img.shields.io/badge/Markdown_Files-2-083fa1?style=flat-square)
641
- ![Markdown Lines](https://img.shields.io/badge/Markdown_Lines-363-1f6feb?style=flat-square)
644
+ ![Markdown Lines](https://img.shields.io/badge/Markdown_Lines-378-1f6feb?style=flat-square)
642
645
  ![H1](https://img.shields.io/badge/H1-1-7c3aed?style=flat-square)
643
- ![H2](https://img.shields.io/badge/H2-19-8b5cf6?style=flat-square)
644
- ![H3](https://img.shields.io/badge/H3-27-a78bfa?style=flat-square)
646
+ ![H2](https://img.shields.io/badge/H2-20-8b5cf6?style=flat-square)
647
+ ![H3](https://img.shields.io/badge/H3-29-a78bfa?style=flat-square)
645
648
  ![H4](https://img.shields.io/badge/H4-0-c4b5fd?style=flat-square)
646
649
  ![H5](https://img.shields.io/badge/H5-0-ddd6fe?style=flat-square)
647
650
  ![H6](https://img.shields.io/badge/H6-0-ede9fe?style=flat-square)
648
- ![Paragraphs](https://img.shields.io/badge/Paragraphs-118-64748b?style=flat-square)
649
- ![Lists](https://img.shields.io/badge/Lists-21-16a34a?style=flat-square)
650
- ![List Items](https://img.shields.io/badge/List_Items-98-22c55e?style=flat-square)
651
+ ![Paragraphs](https://img.shields.io/badge/Paragraphs-125-64748b?style=flat-square)
652
+ ![Lists](https://img.shields.io/badge/Lists-23-16a34a?style=flat-square)
653
+ ![List Items](https://img.shields.io/badge/List_Items-105-22c55e?style=flat-square)
651
654
  ![Task List Items](https://img.shields.io/badge/Task_List_Items-0-4ade80?style=flat-square)
652
655
  ![Tables](https://img.shields.io/badge/Tables-2-0284c7?style=flat-square)
653
656
  ![Table Rows](https://img.shields.io/badge/Table_Rows-10-0ea5e9?style=flat-square)
654
- ![Links](https://img.shields.io/badge/Links-16-059669?style=flat-square)
657
+ ![Links](https://img.shields.io/badge/Links-18-059669?style=flat-square)
655
658
  ![Images](https://img.shields.io/badge/Images-0-10b981?style=flat-square)
656
659
  ![Code Blocks](https://img.shields.io/badge/Code_Blocks-11-dc2626?style=flat-square)
657
660
  ![Inline Code](https://img.shields.io/badge/Inline_Code-73-ef4444?style=flat-square)
@@ -22,6 +22,7 @@ import { ProjectRunResult } from '@codependix/core';
22
22
  import { PythonService } from '@codependix/file-imports';
23
23
  import { ResolvedCodependixGraphOutput } from '@codependix/configuration';
24
24
  import { TypescriptService } from '@codependix/file-imports';
25
+ import { UnmatchedSelection } from '@codependix/boundaries';
25
26
  import { WorkspaceGraph } from '@codependix/nx-projects';
26
27
  import { WorkspaceGraphService } from '@codependix/nx-projects';
27
28
 
@@ -1120,8 +1121,12 @@ export declare class ReportingService {
1120
1121
  * Violations go to the console and the exit code and nowhere else: a list of
1121
1122
  * things currently wrong is not a document worth publishing on the default
1122
1123
  * branch, and not one worth checking for staleness either.
1124
+ *
1125
+ * `judgedProjects` lets a failure charged to every one of them be counted
1126
+ * rather than listed. A note never is: its charge is the dependency it
1127
+ * lives in.
1123
1128
  */
1124
- reportBoundaries(outcome: BoundaryCheckOutcome): boolean;
1129
+ reportBoundaries(outcome: BoundaryCheckOutcome, judgedProjects: readonly string[]): boolean;
1125
1130
  /**
1126
1131
  * Warns when nothing in the configuration selects a single project.
1127
1132
  *
@@ -1156,17 +1161,31 @@ export declare class ReportingService {
1156
1161
  *
1157
1162
  * Both are weighed independently rather than the first failure
1158
1163
  * short-circuiting the second: a run gating both should report both, not
1159
- * only the one that happened to run first.
1164
+ * only the one that happened to run first. `selectedProjects` are the
1165
+ * projects the boundary pass judged.
1160
1166
  */
1161
1167
  reportPassOutcomes(args: {
1162
1168
  boundaryOutcome: BoundaryCheckOutcome | undefined;
1163
1169
  exportRun: MapRunResult | undefined;
1170
+ selectedProjects: readonly {
1171
+ readonly name: string;
1172
+ }[];
1164
1173
  }): boolean;
1165
1174
  /** Logs what each pass that ran verified, and nothing for one that did not. */
1166
1175
  reportSuccess(args: {
1167
1176
  boundaryOutcome: BoundaryCheckOutcome | undefined;
1168
1177
  exportOutcome: GraphRunOutcome | undefined;
1169
1178
  }): void;
1179
+ /**
1180
+ * Warns about every `--projects` pattern and `--tags` tag that matched no
1181
+ * project, when the rest of the selection matched at least one.
1182
+ *
1183
+ * A selection in which nothing matched never reaches here — the run is
1184
+ * refused before it starts. This is the partial case: a typo beside a
1185
+ * correct name, which the run narrows past, judging fewer projects than
1186
+ * were named. Never failing, since what did match was still judged.
1187
+ */
1188
+ reportUnmatchedSelection(unmatched: UnmatchedSelection): void;
1170
1189
  }
1171
1190
 
1172
1191
  /** One whole-workspace graph pass's outcome. */
package/dist/src/index.js CHANGED
@@ -1257,16 +1257,16 @@ var De, $ = De = class ReportingService {
1257
1257
  }
1258
1258
  reportBoundaryNotes(e) {
1259
1259
  (e.failures.length !== 0 || e.violations.length !== 0) && this.logger.warn("🕸️ Found codependix boundary findings in dependencies, not failing", void 0, {
1260
- failures: this.boundaryOutcomeReportService.renderFailures(e.failures),
1260
+ failures: this.boundaryOutcomeReportService.renderFailures(e.failures, []),
1261
1261
  violations: this.boundaryReportService.renderNotes(e.violations)
1262
1262
  });
1263
1263
  }
1264
- reportBoundaries(e) {
1265
- let t = this.filterVerdict(e, "fail");
1266
- return t.failures.length > 0 && this.logger.error("💥 Failed running codependix", void 0, { failures: this.boundaryOutcomeReportService.renderFailures(t.failures) }), t.violations.length > 0 && this.logger.error("🕸️ Found codependix boundary violations", void 0, {
1267
- summary: this.boundaryReportService.renderSummary(t.violations),
1268
- violations: this.boundaryReportService.renderViolations(t.violations)
1269
- }), this.reportBoundaryNotes(this.filterVerdict(e, "note")), t.failures.length === 0 && t.violations.length === 0;
1264
+ reportBoundaries(e, t) {
1265
+ let n = this.filterVerdict(e, "fail");
1266
+ return n.failures.length > 0 && this.logger.error("💥 Failed running codependix", void 0, { failures: this.boundaryOutcomeReportService.renderFailures(n.failures, t) }), n.violations.length > 0 && this.logger.error("🕸️ Found codependix boundary violations", void 0, {
1267
+ summary: this.boundaryReportService.renderSummary(n.violations),
1268
+ violations: this.boundaryReportService.renderViolations(n.violations)
1269
+ }), this.reportBoundaryNotes(this.filterVerdict(e, "note")), n.failures.length === 0 && n.violations.length === 0;
1270
1270
  }
1271
1271
  reportEmptySelection(e) {
1272
1272
  e > 0 || this.logger.warn("🕸️ Selected no project to export", void 0, { hint: "name the projects that participate in the configuration's include list" });
@@ -1291,12 +1291,19 @@ var De, $ = De = class ReportingService {
1291
1291
  return e.failures.length === 0 && n.length === 0;
1292
1292
  }
1293
1293
  reportPassOutcomes(e) {
1294
- let t = e.exportRun === void 0 || this.reportOutcome(e.exportRun.outcome), n = e.boundaryOutcome === void 0 || this.reportBoundaries(e.boundaryOutcome);
1294
+ let t = e.exportRun === void 0 || this.reportOutcome(e.exportRun.outcome), n = e.boundaryOutcome === void 0 || this.reportBoundaries(e.boundaryOutcome, e.selectedProjects.map((e) => e.name));
1295
1295
  return t && n;
1296
1296
  }
1297
1297
  reportSuccess(e) {
1298
1298
  e.exportOutcome !== void 0 && this.logger.info("🕸️ Verified every configured codependix export is current", void 0, { projects: e.exportOutcome.results.length }), e.boundaryOutcome !== void 0 && this.logger.info("🕸️ Verified every declared codependix boundary holds");
1299
1299
  }
1300
+ reportUnmatchedSelection(e) {
1301
+ e.projects.length + e.tags.length !== 0 && this.logger.warn("🕸️ Ignored selection entries that matched no project", void 0, {
1302
+ hint: "check the spelling — the run judged only the entries that matched",
1303
+ ...e.projects.length > 0 && { projects: e.projects },
1304
+ ...e.tags.length > 0 && { tags: e.tags }
1305
+ });
1306
+ }
1300
1307
  };
1301
1308
  $ = De = __decorate([n(), __decorateMetadata("design:paramtypes", [
1302
1309
  o === void 0 ? Object : o,
package/package.json CHANGED
@@ -4,12 +4,12 @@
4
4
  "url": "https://github.com/organizzolini/codebase/issues"
5
5
  },
6
6
  "dependencies": {
7
- "@codependix/boundaries": "0.0.15",
8
- "@codependix/configuration": "0.0.16",
9
- "@codependix/core": "0.0.14",
10
- "@codependix/file-imports": "0.0.14",
11
- "@codependix/nestjs-modules": "0.0.14",
12
- "@codependix/nx-projects": "0.0.15",
7
+ "@codependix/boundaries": "0.0.16",
8
+ "@codependix/configuration": "0.0.17",
9
+ "@codependix/core": "0.0.15",
10
+ "@codependix/file-imports": "0.0.15",
11
+ "@codependix/nestjs-modules": "0.0.15",
12
+ "@codependix/nx-projects": "0.0.16",
13
13
  "@nestjs/common": "^11.1.21 || ^12.0.1",
14
14
  "pino": "^10.3.1",
15
15
  "pino-pretty": "^13.1.3",
@@ -66,5 +66,5 @@
66
66
  "strict": true
67
67
  },
68
68
  "types": "./dist/src/index.d.ts",
69
- "version": "0.0.15"
69
+ "version": "0.0.16"
70
70
  }