@codependix/configuration 0.0.77 → 0.0.79

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,19 @@
1
+ ## 0.0.79 (2026-11-10)
2
+
3
+ ### 🚀 Features
4
+
5
+ - **codometer:** ✨ gate JSDoc on every declaration kind and shorten long comments ([#2227](https://github.com/organizzolini/codebase/pull/2227), [#2226](https://github.com/organizzolini/codebase/issues/2226))
6
+
7
+ ### 🧱 Updated Dependencies
8
+
9
+ - Updated codependix-core to 0.0.77
10
+
11
+ ## 0.0.78 (2026-11-10)
12
+
13
+ ### 🧱 Updated Dependencies
14
+
15
+ - Updated codependix-core to 0.0.76
16
+
1
17
  ## 0.0.77 (2026-11-10)
2
18
 
3
19
  ### 🧱 Updated Dependencies
@@ -15,14 +15,8 @@ export declare interface ApplyOverridesArguments {
15
15
  export declare const CHECK_BOUNDARIES = "boundaries";
16
16
 
17
17
  /**
18
- * Everything `--check` accepts, in the order an error message lists them.
19
- *
20
- * Named here rather than spelled into each message, so the list a mistake is
21
- * measured against and the list it is told about can never drift apart. The
22
- * same arrangement `codometer` and `callidescope` both use, and `reports` is
23
- * deliberately their word spelled the same way: a configured destination has
24
- * gone stale is one finding across all three tools, and two names for it
25
- * would make the three reports unreadable together.
18
+ * Everything `--check` accepts, in error-message order. `reports` is the word
19
+ * `codometer` and `callidescope` use for stale output too.
26
20
  */
27
21
  export declare const CHECK_NAMES: string[];
28
22
 
@@ -39,23 +33,8 @@ export declare const CODEPENDIX_EXPORT_TARGETS: readonly ["both", "json", "markd
39
33
  export declare const CODEPENDIX_GRAPH_TYPES: readonly ["fileImports", "nestjsModules", "nxProjects"];
40
34
 
41
35
  /**
42
- * Every declared boundary rule, keyed by the graph level it judges.
43
- *
44
- * Keyed the same way `CodependixProjectConfiguration` is, and written out
45
- * field by field for the same reason: under `exactOptionalPropertyTypes`,
46
- * `Partial<Record<...>>` makes a field optional without widening its type to
47
- * include `undefined`, which then rejects the "unset" value every
48
- * default-resolution path needs to assign.
49
- *
50
- * A flat array with a `graph` discriminant would also work, and was rejected:
51
- * it forces a reader to know which selector keys are legal at which level,
52
- * which the key already says.
53
- *
54
- * `fileImports` nests by language rather than flattening to one rule array:
55
- * a Python file cannot import a TypeScript file or vice versa, so no edge
56
- * ever crosses languages, and the rule vocabularies genuinely differ (a
57
- * `*.types.ts` naming convention has no Python equivalent). `nestjsModules`
58
- * and `nxProjects` keep the flat shape every other level always had.
36
+ * Every declared boundary rule, keyed by the graph level it judges. Field by field, since
37
+ * `Partial<Record>` would reject the unset value.
59
38
  */
60
39
  export declare interface CodependixBoundariesConfiguration {
61
40
  fileImports?: CodependixFileImportsBoundariesConfiguration | undefined;
@@ -64,14 +43,8 @@ export declare interface CodependixBoundariesConfiguration {
64
43
  }
65
44
 
66
45
  /**
67
- * One rule stating which nodes may reach which, at one graph level.
68
- *
69
- * `forbid` reports every edge whose source matches `from` and whose target
70
- * matches `to`. `allow` reports the mirror image — an edge leaving `from` for
71
- * anywhere `to` does not claim — so it states a node's whole permitted
72
- * surface rather than one thing it may not touch. Written as two `kind`s of
73
- * one rule rather than two rule types, because a reader comparing them wants
74
- * to see the same three fields either way.
46
+ * One rule stating which nodes may reach which. `forbid` reports edges from `from` to `to`;
47
+ * `allow` reports edges from `from` to anything not `to`.
75
48
  */
76
49
  export declare interface CodependixBoundaryAccessRule {
77
50
  /**
@@ -84,10 +57,8 @@ export declare interface CodependixBoundaryAccessRule {
84
57
  from: CodependixBoundarySelector;
85
58
  kind: "allow" | "forbid";
86
59
  /**
87
- * Why the rule exists, appended to the generated sentence.
88
- *
89
- * Appended rather than substituted, so no wording a configuration chooses
90
- * can cost a report the rule that fired and both ends of what it fired on.
60
+ * Why the rule exists, appended to the generated sentence. Never substituted,
61
+ * so the rule and both its ends always appear in the report.
91
62
  */
92
63
  message?: string | undefined;
93
64
  /** How the rule is named in a report, and in whatever asks about it. */
@@ -97,12 +68,8 @@ export declare interface CodependixBoundaryAccessRule {
97
68
  }
98
69
 
99
70
  /**
100
- * One rule forbidding a cycle among a selected set of nodes.
101
- *
102
- * Deliberately narrow at TypeScript file level, where `dependency-cruiser`'s
103
- * `no-circular` is already the workspace's gate — see
104
- * `configuration/dependency-cruiser.cjs`. At Nx project level and NestJS
105
- * module level nothing else states it, which is where this earns its place.
71
+ * One rule forbidding a cycle among a selected set of nodes. Narrow at file level, where
72
+ * `dependency-cruiser`'s `no-circular` already gates.
106
73
  */
107
74
  export declare interface CodependixBoundaryAcyclicRule {
108
75
  kind: "acyclic";
@@ -111,36 +78,20 @@ export declare interface CodependixBoundaryAcyclicRule {
111
78
  /** How the rule is named in a report, and in whatever asks about it. */
112
79
  name: string;
113
80
  /**
114
- * Selects the nodes the rule covers, defaulting to every node in the graph.
115
- *
116
- * A cycle is only reported when every node in it is selected: a rule scoped
117
- * to one directory should not fail because of a cycle running through code
118
- * it was never asked about.
81
+ * Selects the nodes the rule covers; every node by default. A cycle is
82
+ * reported only when all its nodes are selected.
119
83
  */
120
84
  nodes?: CodependixBoundarySelector | undefined;
121
85
  }
122
86
 
123
87
  /**
124
- * How a rule narrows which edges it judges.
125
- *
126
- * Separate from `CodependixBoundarySelector`, which picks the nodes at either
127
- * end: this is about the edge itself, and only the Nx level draws an edge with
128
- * an attribute worth narrowing on.
88
+ * How a rule narrows which edges it judges. Separate from the node selector: only the Nx level draws
89
+ * an edge worth narrowing on.
129
90
  */
130
91
  export declare interface CodependixBoundaryEdgeSelector {
131
92
  /**
132
- * Judge only implicit edges, or only explicit ones.
133
- *
134
- * `false` is what makes a rule mean exactly what an
135
- * `@nx/enforce-module-boundaries` `depConstraint` means: that rule reads
136
- * import statements, so an `implicitDependencies` entry is invisible to it.
137
- * `true` inverts it — useful for finding the edges declared in
138
- * configuration that no import backs. Unset judges both, which is the
139
- * stricter reading and the right default for a rule about what a project
140
- * may depend on rather than about what it may import.
141
- *
142
- * Every level that is not `nx` draws only explicit edges, so a rule naming
143
- * `implicit: true` there selects nothing.
93
+ * Judge only implicit (`true`) or only explicit (`false`) edges; unset judges
94
+ * both. Only the Nx level has implicit edges.
144
95
  */
145
96
  implicit?: boolean | undefined;
146
97
  }
@@ -149,18 +100,8 @@ export declare interface CodependixBoundaryEdgeSelector {
149
100
  export declare type CodependixBoundaryRule = CodependixBoundaryAccessRule | CodependixBoundaryAcyclicRule;
150
101
 
151
102
  /**
152
- * How a rule picks the nodes at one end of an edge.
153
- *
154
- * Four vocabularies, one node shape: an Nx project is selected by name or by
155
- * tag, a file by its project-relative path, a NestJS module only by its class
156
- * name — see `NestjsModuleGraph`, which carries no file path at all. Every
157
- * field is a list of globs, matched with `path.matchesGlob`, and a node
158
- * matches the selector when it matches every field the selector states.
159
- * Within one field, one glob matching is enough.
160
- *
161
- * A selector stating no field at all is refused rather than read as "every
162
- * node": the two are indistinguishable in a configuration file, and reading
163
- * it as everything turns a typo into a rule that judges the whole workspace.
103
+ * A rule's node picker: globs matched against each stated field. A selector stating no field is
104
+ * refused, not read as everything.
164
105
  */
165
106
  export declare interface CodependixBoundarySelector {
166
107
  /** Globs matched against the node's identifier. */
@@ -174,20 +115,12 @@ export declare interface CodependixBoundarySelector {
174
115
  }
175
116
 
176
117
  /**
177
- * Configuration authored in a `codependix.config.ts` file.
178
- *
179
- * Every field is optional: a workspace with no configuration file at all
180
- * resolves every graph type for every project to `target: "none"`, so
181
- * codependix produces nothing until it is told where to write.
118
+ * Configuration authored in a `codependix.config.ts`. Every field is optional: with none, codependix writes nothing.
182
119
  */
183
120
  export declare interface CodependixConfiguration {
184
121
  /**
185
- * Rules every built graph is judged against, keyed by graph level.
186
- *
187
- * Separate from a project's own `codependix.config.ts`, which says where
188
- * that project's export is written: a rule has no destination, and a
189
- * violation is reported to the console and the exit code rather than
190
- * published anywhere.
122
+ * Rules every built graph is judged against, keyed by graph level. A violation
123
+ * fails the run; it is never written to an export.
191
124
  */
192
125
  boundaries?: CodependixBoundariesConfiguration | undefined;
193
126
  /** Project names or roots excluded from every graph, as globs. */
@@ -195,48 +128,25 @@ export declare interface CodependixConfiguration {
195
128
  /** Project names or roots participating in graph export, as globs. */
196
129
  include?: string[] | undefined;
197
130
  /**
198
- * How `nestjsModules` finds each application's container.
199
- *
200
- * Nothing about where an application's root module lives is assumed: a
201
- * project this does not name is treated as a library.
131
+ * How `nestjsModules` finds each application's container. A project not
132
+ * named here is treated as a library.
202
133
  */
203
134
  nestjsModules?: CodependixNestjsModulesConfiguration | undefined;
204
135
  /**
205
- * A project graph to read instead of resolving the working directory's.
206
- *
207
- * A path, relative to the workspace root, to the JSON `nx graph
208
- * --file=graph.json` emits. Nx resolves a project graph from the process
209
- * working directory and takes no directory argument, so this is the only
210
- * way to graph a workspace the process is not standing in — a CI job that
211
- * checked out one repository and graphs another, or a test with no Nx
212
- * workspace under it.
213
- *
214
- * A supplied graph's node roots are workspace-relative and resolve against
215
- * the same root every export path does.
136
+ * Path, relative to the workspace root, of an `nx graph --file` JSON to read
137
+ * instead of resolving the working directory's graph.
216
138
  */
217
139
  projectGraph?: string | undefined;
218
140
  /**
219
- * Export configuration for the whole-workspace Workspace Graph.
220
- *
221
- * Separate from `defaults`/`projects`: the Workspace Graph is exported once
222
- * for the entire repository rather than once per project, so it carries no
223
- * per-project override and is unaffected by `include`/`exclude`.
224
- *
225
- * `--projects` and `--tags` do reach it: a run naming a selection narrows
226
- * the graph's node set to the projects it named. Its destination is still
227
- * read from `workspace` either way.
141
+ * Export configuration for the Workspace Graph, exported once for the whole
142
+ * repository. Unaffected by `include`/`exclude`; `--projects`/`--tags` narrow its nodes.
228
143
  */
229
144
  workspace?: CodependixWorkspaceConfiguration | undefined;
230
145
  }
231
146
 
232
147
  /**
233
- * Strict, per-field CLI overrides for a run's root configuration.
234
- *
235
- * Mirrors `@callidescope/configuration`'s override philosophy exactly: a
236
- * field may be overridden only when the configuration this run reads already
237
- * declared it — see `ConfigurationService.loadConfiguration`. An empty list is
238
- * read the same as the field being left off entirely, matching how
239
- * `--directories`/`--exclude` treat an empty list in callidescope.
148
+ * Strict per-field CLI overrides for a run's root configuration. A field may be overridden only when
149
+ * the file already declared it.
240
150
  */
241
151
  export declare interface CodependixConfigurationOverrides {
242
152
  /** Overrides `exclude` for this run. */
@@ -246,11 +156,8 @@ export declare interface CodependixConfigurationOverrides {
246
156
  }
247
157
 
248
158
  /**
249
- * Validates a codependix configuration file's contents.
250
- *
251
- * Zod strips unknown keys rather than rejecting them, so a configuration
252
- * written for a newer codependix still loads under an older one instead of
253
- * failing on a field it has no opinion about.
159
+ * Validates a codependix configuration file's contents. Unknown keys are
160
+ * stripped, not rejected, so newer configurations still load.
254
161
  */
255
162
  export declare const codependixConfigurationSchema: z.ZodObject<{
256
163
  boundaries: z.ZodOptional<z.ZodObject<{
@@ -448,21 +355,13 @@ export declare const codependixConfigurationSchema: z.ZodObject<{
448
355
  }, z.core.$strip>;
449
356
 
450
357
  /**
451
- * Where a graph type's export lands for a project.
452
- *
453
- * `both` writes the JSON and the Markdown export together. Named explicitly
454
- * rather than inferred from which destinations are configured, so a project
455
- * carrying a `json` destination it does not want written yet can leave it in
456
- * place with the target set to `markdown`.
358
+ * Where a graph type's export lands. Named explicitly rather than inferred, so
359
+ * a `json` path can stay configured while unused.
457
360
  */
458
361
  export declare type CodependixExportTarget = "both" | "json" | "markdown" | "none";
459
362
 
460
363
  /**
461
- * `boundaries.fileImports`'s rules, nested by language.
462
- *
463
- * Separate from `CodependixBoundariesConfiguration` so both the authored and
464
- * resolved shapes (see `ResolvedCodependixFileImportsBoundariesConfiguration`)
465
- * can name it once rather than repeating the two-field object inline.
364
+ * `boundaries.fileImports`'s rules, nested by language. Separate so authored and resolved shapes can both name it.
466
365
  */
467
366
  export declare interface CodependixFileImportsBoundariesConfiguration {
468
367
  python?: CodependixBoundaryRule[] | undefined;
@@ -485,13 +384,8 @@ export declare interface CodependixJsonOutput {
485
384
  }
486
385
 
487
386
  /**
488
- * Where a graph's Markdown export is written.
489
- *
490
- * Naming `anchor` places the export inside a named anchor block in the file at
491
- * `path` — an existing Markdown file such as a project's `README.md`, defaulted
492
- * to `README.md` when `path` is left out. Leaving `anchor` unset instead writes
493
- * the export as the whole contents of a standalone file, whose `path` must then
494
- * be given explicitly since there is no default worth guessing for it.
387
+ * Where a graph's Markdown export is written. With `anchor`, it splices into that block of `path`;
388
+ * without, `path` is standalone.
495
389
  */
496
390
  export declare interface CodependixMarkdownOutput {
497
391
  anchor?: string | undefined;
@@ -501,12 +395,8 @@ export declare interface CodependixMarkdownOutput {
501
395
  /** How the NestJS module graph finds the applications it explores. */
502
396
  export declare interface CodependixNestjsModulesConfiguration {
503
397
  /**
504
- * The root module each NestJS application boots from, keyed by Nx project
505
- * name.
506
- *
507
- * A project named here is an application, and its container is rooted in
508
- * this module. A `framework:nestjs` project not named here is a library, and
509
- * gets a synthetic root built from every module it defines instead.
398
+ * The root module of each NestJS application, keyed by Nx project name.
399
+ * A `framework:nestjs` project not named here is a library.
510
400
  */
511
401
  rootModules?: Record<string, CodependixNestjsRootModule> | undefined;
512
402
  }
@@ -520,12 +410,8 @@ export declare interface CodependixNestjsRootModule {
520
410
  }
521
411
 
522
412
  /**
523
- * A project's export configuration, keyed by graph type.
524
- *
525
- * Written out field by field rather than as `Partial<Record<...>>`: under
526
- * `exactOptionalPropertyTypes`, `Partial` makes a field optional without
527
- * widening its type to include `undefined`, which then rejects the very
528
- * "unset" value every default-resolution path needs to assign.
413
+ * A project's export configuration, keyed by graph type. Written field by field, since
414
+ * `Partial<Record>` would reject the unset value.
529
415
  */
530
416
  export declare interface CodependixProjectConfiguration {
531
417
  fileImports?: CodependixGraphOutput | undefined;
@@ -534,12 +420,8 @@ export declare interface CodependixProjectConfiguration {
534
420
  }
535
421
 
536
422
  /**
537
- * Validates a project's own `codependix.config.ts`, keyed by graph type.
538
- *
539
- * The same shape a project's own file spreads `projectDefaults` into, and the
540
- * same shape the root configuration's schema no longer carries — a project's
541
- * export configuration is validated from its own file rather than from a root
542
- * `projects` dict.
423
+ * Validates a project's own `codependix.config.ts`, keyed by graph type, since
424
+ * the root schema no longer carries project exports.
543
425
  */
544
426
  export declare const codependixProjectConfigurationSchema: z.ZodObject<{
545
427
  fileImports: z.ZodOptional<z.ZodObject<{
@@ -590,11 +472,8 @@ export declare const codependixProjectConfigurationSchema: z.ZodObject<{
590
472
  }, z.core.$strip>;
591
473
 
592
474
  /**
593
- * The `--projects` and `--tags` arguments as the command line captured them.
594
- *
595
- * Comma-separated strings rather than lists: the host captures raw option
596
- * text and hands it over, and splitting it is resolution, which belongs
597
- * beside the configuration file this package already parses.
475
+ * The `--projects` and `--tags` arguments as the command line captured them: comma-separated strings,
476
+ * split during resolution.
598
477
  */
599
478
  export declare interface CodependixSelectionArguments {
600
479
  /** `false` for `--no-dependencies` — see `ResolvedCodependixSelection`. */
@@ -604,12 +483,8 @@ export declare interface CodependixSelectionArguments {
604
483
  }
605
484
 
606
485
  /**
607
- * The Workspace Graph's export configuration, keyed by graph type.
608
- *
609
- * All three graph types are declared: `codependix-file-imports` and
610
- * `codependix-nestjs-modules` each build a whole-workspace aggregate graph the
611
- * same way `codependix-nx-projects` always has, spanning every project rather
612
- * than one — see each package's own `workspace-graph` module.
486
+ * The Workspace Graph's export configuration, keyed by graph type. All three graph types are declared,
487
+ * each spanning every project.
613
488
  */
614
489
  export declare interface CodependixWorkspaceConfiguration {
615
490
  fileImports?: CodependixGraphOutput | undefined;
@@ -618,11 +493,8 @@ export declare interface CodependixWorkspaceConfiguration {
618
493
  }
619
494
 
620
495
  /**
621
- * File names a project's own configuration may take, beside its root.
622
- *
623
- * Searched in order, so a project carrying both a TypeScript and a JSON
624
- * configuration file gets the TypeScript one. The main configuration is never
625
- * searched for: its path is always named.
496
+ * File names a project's own configuration may take beside its root, searched
497
+ * in order: TypeScript before JSON. The main configuration is never searched for.
626
498
  */
627
499
  export declare const CONFIGURATION_FILE_NAMES: readonly ["codependix.config.ts", "codependix.config.mts", "codependix.config.cts", "codependix.config.js", "codependix.config.mjs", "codependix.config.cjs", "codependix.config.json"];
628
500
 
@@ -643,21 +515,11 @@ declare class ConfigurationLoaderService {
643
515
  /** Reads what a configuration module exported, through either interop shape. */
644
516
  private readDefaultExport;
645
517
  /**
646
- * Looks for a project's own configuration file, exactly at its root.
647
- *
648
- * This never walks upward: a project's own file must be colocated with it,
649
- * and walking upward would find the workspace root's configuration — or
650
- * another project's, in a nested layout — instead of correctly reporting
651
- * that this project has none.
518
+ * Looks for a project's own configuration file at its root only, never upward, which would find the workspace's.
652
519
  */
653
520
  findProjectConfigurationFile(projectRoot: string): string | undefined;
654
521
  /**
655
- * Walks upward from the process cwd looking for the workspace root.
656
- *
657
- * Used to resolve a configuration path given relative to that root even when
658
- * the command was invoked from a nested directory, which is what a task
659
- * runner does whenever it sets the cwd to a project rather than the
660
- * workspace.
522
+ * Walks upward from the cwd to the workspace root, so a task runner's nested cwd still resolves configuration paths.
661
523
  */
662
524
  findWorkspaceRoot(): string | undefined;
663
525
  /** Loads a configuration module, choosing the reader by extension. */
@@ -668,10 +530,7 @@ declare class ConfigurationLoaderService {
668
530
  /** Loads and validates one configuration file at a resolved path. */
669
531
  parseConfigurationFile(resolvedPath: string): Promise<CodependixConfiguration>;
670
532
  /**
671
- * Reads the main configuration file at the path it was told to.
672
- *
673
- * The path is required: nothing searches for a file, and no file is not a
674
- * configuration that resolves every graph to `target: "none"`.
533
+ * Reads the main configuration file at the given path. The path is required: a missing file is an error, never an empty configuration.
675
534
  */
676
535
  readAuthoredConfiguration(args: {
677
536
  configurationPath: string;
@@ -681,14 +540,9 @@ declare class ConfigurationLoaderService {
681
540
  }
682
541
 
683
542
  /**
684
- * Provides everything one run is configured by: the configuration file, the
685
- * command line resolved over it, and each project's own resolved output.
686
- *
687
- * `ConfigurationService` is the only thing this module exports, and the only
688
- * service `@codependix/configuration` makes public. File loading, override
689
- * resolution, option parsing, and run-mode selection are providers here
690
- * rather than modules of their own, so a caller asking what a run is
691
- * configured to do has exactly one place to ask.
543
+ * Provides everything one run is configured by: the configuration file, the command line over it,
544
+ * and each project's own output. `ConfigurationService` is the only export; the rest are providers,
545
+ * so one place answers what a run does.
692
546
  */
693
547
  export declare class ConfigurationModule {
694
548
  }
@@ -705,14 +559,8 @@ export declare class ConfigurationPathRequiredError extends Error {
705
559
  }
706
560
 
707
561
  /**
708
- * Loads, validates, and resolves codependix configuration files.
709
- *
710
- * Loading and per-project resolution are kept apart on purpose: a project's
711
- * actual export configuration depends on both the global defaults and its own
712
- * name, so resolving it eagerly for every project in the workspace would mean
713
- * redoing that work for a workspace whose graphs run against a filtered subset
714
- * of projects. `resolveForProject` is called once per project that is
715
- * actually built instead.
562
+ * Loads, validates, and resolves codependix configuration. Per-project resolution is kept apart
563
+ * from loading, so it runs only for projects actually built.
716
564
  */
717
565
  export declare class ConfigurationService {
718
566
  private readonly configurationLoaderService;
@@ -727,79 +575,37 @@ export declare class ConfigurationService {
727
575
  /** Whether a project's name or its root matches at least one glob. */
728
576
  private matchesAnyName;
729
577
  /**
730
- * Fills in every graph level a `boundaries` block may leave out.
731
- *
732
- * Every level resolves to a list rather than to `undefined`, so a caller
733
- * walks all of them without asking which ones were configured — the same
734
- * reason `include` resolves to a list nobody wrote. `fileImports` resolves
735
- * both of its languages the same way, one level deeper.
578
+ * Fills in every graph level a `boundaries` block may omit, each as a list, so callers need not ask which were configured.
736
579
  */
737
580
  private resolveBoundaries;
738
581
  /** Applies defaults to one graph type's export configuration. */
739
582
  private resolveGraphOutput;
740
583
  /**
741
- * Splits the `--projects` and `--tags` arguments into lists, and reads
742
- * `--no-dependencies` as building over the selected projects alone.
743
- *
744
- * Empty entries are dropped, so a trailing comma and a doubled one are both
745
- * read as the author meant them rather than as a glob matching nothing.
584
+ * Splits `--projects` and `--tags` into lists, and reads `--no-dependencies` as building over the selection alone. Blank entries are dropped.
746
585
  */
747
586
  private resolveSelection;
748
587
  /** Splits one comma-separated argument, trimming and dropping blanks. */
749
588
  private splitSelectionArgument;
750
589
  /**
751
- * Whether a project participates in graph export at all.
752
- *
753
- * A project matches when something claims it — an `include` glob, a
754
- * `--projects` glob, or a `--tags` tag — and no `exclude` glob claims its
755
- * name or root. The command line **widens** what the configuration already
756
- * selects rather than replacing it; `exclude` wins over all three, because
757
- * a flag that could resurrect an excluded project would make `exclude`
758
- * advisory.
759
- *
760
- * `projectRoot` and `projectTags` are optional: a caller with neither handy
761
- * still resolves against globs written against project names.
590
+ * Whether a project takes part in graph export: matched by `include` or the command line, and not claimed by `exclude`.
591
+ * `exclude` wins over flags.
762
592
  */
763
593
  isProjectIncluded(args: ProjectSelectionArguments): boolean;
764
594
  /**
765
- * Whether a project is in the set a run's command line narrowed to.
766
- *
767
- * A run naming no selection selects **everything**, which is what keeps the
768
- * whole-workspace graph and the boundary gate judging every project by
769
- * default. Naming one narrows both to what it named.
770
- *
771
- * This is where `--projects`/`--tags` differ from `include`: `include` is
772
- * about which projects have exports written for them, and never reaches the
773
- * workspace graph or the gate. A selection reaches all three.
595
+ * Whether a project is in the command line's selection. Naming none selects every project.
596
+ * `include` never reaches the graph or gate, only selections do.
774
597
  */
775
598
  isProjectSelected(args: ProjectSelectionArguments): boolean;
776
599
  /**
777
- * Loads and validates a codependix configuration file.
778
- *
779
- * The path is required and must exist — a typo in a task runner's
780
- * arguments should fail rather than quietly resolving every graph to
781
- * `target: "none"`. Nothing is searched for.
600
+ * Loads and validates a configuration file. The path must exist; nothing is searched for, so a typo fails rather than resolving to nothing.
782
601
  */
783
602
  loadConfiguration(args: LoadConfigurationArguments): Promise<ResolvedCodependixConfiguration>;
784
603
  /**
785
- * Loads and validates one project's own `codependix.config.ts`, or
786
- * `undefined` when it has none.
787
- *
788
- * Searched for exactly at `projectRoot` — see
789
- * `ConfigurationLoaderService.findProjectConfigurationFile` — rather than
790
- * named by a path the way `loadConfiguration`'s file is: a project's file is either colocated with it or it does not
791
- * exist, and a project with none produces no per-project output rather than
792
- * inheriting one from a parent directory.
604
+ * Loads one project's own `codependix.config.ts`, or `undefined`. Searched for only at its root, never inherited from a parent.
793
605
  */
794
606
  loadProjectConfiguration(args: LoadProjectConfigurationArguments): Promise<CodependixProjectConfiguration | undefined>;
795
607
  /**
796
- * Parses a comma-separated list option, dropping blank entries.
797
- *
798
- * One of the six command-line methods this service forwards to the
799
- * `input` and flag-resolution providers it owns. They are stated here
800
- * rather than exported alongside it because this package makes exactly one
801
- * service public: a host asking what a run is configured to do — from its
802
- * configuration file or from its flags — asks `ConfigurationService`.
608
+ * Parses a comma-separated list, dropping blanks. Forwarded here, since `ConfigurationService` is the one public service.
803
609
  */
804
610
  parseCommaDelimitedOption(value: string | undefined): string[];
805
611
  /** Parses a valueless boolean flag, which is present or it is not. */
@@ -809,48 +615,20 @@ export declare class ConfigurationService {
809
615
  /** Parses a path option that falls back to the working directory. */
810
616
  parsePathOption(value: string | undefined): string;
811
617
  /**
812
- * Returns the main configuration path, refusing one that is missing.
813
- *
814
- * No file is searched for, so every host — the command line, the Nx
815
- * executor, the Nx plugin — must be handed a path. `surface` names the
816
- * setting the caller took it from (for example "`--config` flag"), which is
817
- * what the refusal tells the user to fix. Absent and blank are the same.
618
+ * Returns the main configuration path, refusing a missing or blank one. `surface` names its source in the refusal.
818
619
  */
819
620
  requireConfigurationPath(configurationPath: string | undefined, surface: string): string;
820
621
  /**
821
- * Fills in every field a configuration file may leave out.
822
- *
823
- * Exposed so a host embedding codependix can hand over a configuration
824
- * object it assembled itself and get the same shape a configuration file
825
- * produces.
622
+ * Fills in every field a configuration file may omit. Exposed so a host can pass an assembled configuration and get the file's shape.
826
623
  */
827
624
  resolveConfiguration(configuration: CodependixConfiguration, selection?: CodependixSelectionArguments): ResolvedCodependixConfiguration;
828
625
  /**
829
- * Resolves one project's export configuration for one graph type.
830
- *
831
- * A project's own `codependix.config.ts`, when it has one, is read exactly
832
- * as loaded — no merge against a workspace-wide default happens here, since
833
- * spreading the root-exported `projectDefaults` already happened when the
834
- * project's own file was authored. A project excluded by the configured
835
- * `include`/`exclude` globs, or one that has no configuration file of its
836
- * own at all, always resolves to `target: "none"`: the former because a
837
- * project excluded from graph export should not need every field rewritten
838
- * to `"none"` by hand, the latter because a project matched by `include`
839
- * with no file of its own has nothing to export, even though it still
840
- * contributes to the Workspace Graph and is judged by boundary rules.
626
+ * Resolves one project's export configuration for one graph type. An excluded project, or one without
627
+ * its own file, resolves to `target: "none"`.
841
628
  */
842
629
  resolveForProject(args: ResolveForProjectArguments): ResolvedCodependixGraphOutput;
843
630
  /**
844
- * Resolves the Workspace Graph's export configuration for one graph type.
845
- *
846
- * A Workspace Graph is exported once for the whole repository rather than
847
- * once per project, so it has no per-project override and is unaffected by
848
- * `include`/`exclude` — those two apply only to `resolveForProject`.
849
- *
850
- * `--projects` and `--tags` do reach it, through the node set rather than
851
- * through this: a run naming a selection draws the graph over the projects
852
- * it named. Where that graph lands is still read from `workspace`, keyed by
853
- * `graphType`.
631
+ * Resolves the Workspace Graph's export for one graph type. `include` and `exclude` never apply to it.
854
632
  */
855
633
  resolveForWorkspace(configuration: ResolvedCodependixConfiguration, graphType: CodependixGraphType): ResolvedCodependixGraphOutput;
856
634
  /**
@@ -868,12 +646,8 @@ export declare class ConfigurationService {
868
646
  export declare const DEFAULT_EXPORT_TARGET: CodependixExportTarget;
869
647
 
870
648
  /**
871
- * Projects that participate in graph export when a configuration names none.
872
- *
873
- * Deliberately empty: participation is always declared. A configuration that
874
- * names `defaults` but no `include` exports nothing rather than quietly
875
- * covering the whole workspace, which is what lets a later widening argument
876
- * mean something — a union with `["**"]` as its base can never add a project.
649
+ * Participating projects when a configuration names none. Deliberately empty:
650
+ * export must be declared, never silently widened to the whole workspace.
877
651
  */
878
652
  export declare const DEFAULT_INCLUDE_GLOBS: readonly [];
879
653
 
@@ -881,15 +655,9 @@ export declare const DEFAULT_INCLUDE_GLOBS: readonly [];
881
655
  export declare const DEFAULT_MARKDOWN_PATH = "README.md";
882
656
 
883
657
  /**
884
- * Reads the command line into what the run will do.
885
- *
886
- * Internal to the `configuration` module rather than a module of its own:
887
- * resolving the command line is half of answering "what is this run actually
888
- * configured to do", and `ConfigurationService` is the one public way to ask.
889
- * `codometer-cli` and `callidescope-cli` still carry a `run-plan` module of
890
- * this shape inside their hosts — and, deliberately, the same `--check
891
- * reports` spelling, since a stale configured destination is one finding
892
- * across all three.
658
+ * Reads the command line into what the run will do. Internal to this module, since
659
+ * `ConfigurationService` is the one public way to ask. The `--check reports` spelling matches the
660
+ * sibling CLIs, since a stale destination is one finding across all three.
893
661
  */
894
662
  declare class FlagResolutionService {
895
663
  private readonly inputService;
@@ -899,58 +667,33 @@ declare class FlagResolutionService {
899
667
  /** The mode nothing was selected for, so an error path has one to return. */
900
668
  private emptyMode;
901
669
  /**
902
- * Asks which of the three things a run with no flags at all should do.
903
- *
904
- * Nothing is inferred: a session that cannot be asked fails rather than
905
- * defaulting to a write nobody requested, and a run that quietly did
906
- * nothing and exited 0 is worse than either.
670
+ * Asks what a run with no flags should do. Nothing is inferred: an unanswerable session fails rather
671
+ * than writing something nobody requested.
907
672
  */
908
673
  private promptForMode;
909
674
  /**
910
- * Reads the `--check` value into the set of things the run fails on.
911
- *
912
- * A flag passed without a value arrives as `true` and is a mistake rather
913
- * than a shorthand: read as "gate nothing" it would be a gate that cannot
914
- * fail, and `--check "$GATES"` with the variable unset would pass forever
915
- * over a workspace whose every rule was broken — worse than no gate at all,
916
- * because it looks like protection.
675
+ * Reads `--check` into the things the run fails on. A bare `--check` is refused: a gate that cannot
676
+ * fail looks like protection.
917
677
  */
918
678
  private readCheckNames;
919
679
  /** Keeps the names `--check` knows and complains about the rest. */
920
680
  private validateCheckNames;
921
681
  /**
922
- * Reads the flags into what the run writes and what it fails on.
923
- *
924
- * `--write --check reports` is refused rather than obeyed: nothing can be
925
- * stale immediately after being written, so a run asking for both has
926
- * misunderstood one of them and would pass whatever it was meant to catch.
927
- * `--write --check boundaries` is legal for the mirror-image reason — a
928
- * boundary has no destination to be stale, so writing every export and
929
- * judging every graph in one run is two independent things, not a
930
- * contradiction.
682
+ * Reads the flags into what the run writes and fails on. `--write --check reports` is refused:
683
+ * nothing is stale right after being written.
931
684
  */
932
685
  selectMode(options: MapCommandOptions): Promise<RunModeSelection>;
933
686
  /**
934
- * Whether a run reads or rewrites the files its exports live in.
935
- *
936
- * `--check boundaries` alone reads no destination and writes nothing, so it
937
- * leaves every committed export exactly as it found it — which is what
938
- * makes it safe on a branch, where the exports are expected to be behind.
687
+ * Whether a run reads or rewrites its exports. `--check boundaries` alone touches no file, so it is
688
+ * safe on a branch.
939
689
  */
940
690
  touchesFiles(mode: RunMode): boolean;
941
691
  }
942
692
 
943
693
  /**
944
- * Thrown when a command line cannot be turned into a run.
945
- *
946
- * One class rather than one per cause: every cause is the same event to
947
- * whoever catches it — nothing was attempted, and the fix is to retype the
948
- * flags. Only the wording varies, which is what the factories below do.
949
- *
950
- * Sits beside the constants because that is where every error class in this
951
- * repository lives — the project structure rule has no `errors` suffix, and
952
- * the Constant File Shape rule whitelists `class X extends Error` for exactly
953
- * this.
694
+ * Thrown when a command line cannot be turned into a run. One class rather than one per cause:
695
+ * every cause means nothing ran and the flags need retyping. Only the wording varies, by the
696
+ * factories below. Sits here because the constants rule whitelists error classes.
954
697
  */
955
698
  export declare class InputError extends Error {
956
699
  constructor(message: string);
@@ -968,38 +711,21 @@ declare class InputService {
968
711
  /** Overridable so tests never touch a real terminal. */
969
712
  private readonly promptRunner;
970
713
  /**
971
- * Refuses to draw a prompt nobody can answer.
972
- *
973
- * `prompts` does not fail on a non-terminal stdin — it renders the menu,
974
- * never resolves, and lets the process exit 0, so a run that did nothing
975
- * reads as one that succeeded. `isTTY` is read as falsy rather than
976
- * coerced: `@types/node` calls it a `boolean`, so lint rejects a coercion.
714
+ * Refuses a prompt nobody can answer: `prompts` would exit 0 on non-TTY stdin having done nothing.
977
715
  */
978
716
  private assertCanPrompt;
979
717
  /**
980
- * Parses a comma-separated list option, dropping blank entries.
981
- *
982
- * Mirrors `@callidescope/configuration`'s `InputService` exactly: an absent
983
- * flag resolves to an empty list rather than `undefined`, so a caller
984
- * overriding a configured list treats "the flag was left off" and "the flag
985
- * named nothing" the same way.
718
+ * Parses a comma-separated list, dropping blank entries. An absent flag is an empty list, so "left off" and "named nothing" behave the same.
986
719
  */
987
720
  parseCommaDelimitedOption(value: string | undefined): string[];
988
721
  /**
989
- * Parses a valueless boolean flag, which is present or it is not.
990
- *
991
- * Commander passes `undefined` for a flag carrying no value, so the flag
992
- * appearing at all is what makes it true; reading that as false would turn
993
- * every such flag permanently off.
722
+ * Parses a valueless boolean flag: present means true. Commander passes `undefined`, so reading that as false would disable every such flag.
994
723
  */
995
724
  parseFlagOption(value: boolean | undefined): boolean;
996
725
  /** Trims an optional string option, treating blank as absent. */
997
726
  parseOptionalOption(value: string | undefined): string | undefined;
998
727
  /**
999
- * Parses a path option that falls back to the working directory.
1000
- *
1001
- * Left unresolved: the caller resolves it against its own root, and
1002
- * resolving twice makes a relative path ambiguous about which it meant.
728
+ * Parses a path option, defaulting to the working directory. Left unresolved, since resolving twice makes a relative path ambiguous.
1003
729
  */
1004
730
  parsePathOption(value: string | undefined): string;
1005
731
  /** Prompts for one value out of a fixed set of choices. */
@@ -1029,20 +755,14 @@ export declare interface LoadProjectConfigurationArguments {
1029
755
  /** Command-line options `codependix` accepts. */
1030
756
  export declare interface MapCommandOptions {
1031
757
  /**
1032
- * The set of findings `--check` gates, unparsed.
1033
- *
1034
- * `true` is the flag written with no value at all, which is refused rather
1035
- * than read as a shorthand — see `ConfigurationService.selectMode`.
758
+ * The findings `--check` gates, unparsed. `true` (a bare flag) is refused,
759
+ * not read as a shorthand; see `ConfigurationService.selectMode`.
1036
760
  */
1037
761
  check?: string | true | undefined;
1038
762
  config?: string | undefined;
1039
763
  /**
1040
- * Whether `--projects`/`--tags` build over the named projects' dependency
1041
- * closure too — `false` for `--no-dependencies`.
1042
- *
1043
- * `undefined` when neither `--dependencies` nor `--no-dependencies` was
1044
- * given, which builds over the closure. Inert without a selection, since
1045
- * every project is then both built and judged.
764
+ * Whether `--projects`/`--tags` also build their dependency closure; `false`
765
+ * for `--no-dependencies`. Inert without a selection.
1046
766
  */
1047
767
  dependencies?: boolean | undefined;
1048
768
  directory?: string | undefined;
@@ -1050,19 +770,12 @@ export declare interface MapCommandOptions {
1050
770
  exclude?: string[] | undefined;
1051
771
  /**
1052
772
  * Builds, checks, and writes the `fileImports` graph type for this run.
1053
- *
1054
- * `undefined` when neither `--file-imports` nor `--no-file-imports` was
1055
- * given, which leaves the graph type enabled — the behavior every run had
1056
- * before this flag existed.
773
+ * Unset leaves it enabled.
1057
774
  */
1058
775
  fileImports?: boolean | undefined;
1059
776
  /**
1060
- * What `--format` prints to standard output, unparsed.
1061
- *
1062
- * Defaults to `"markdown"` when the flag was left off entirely — unlike
1063
- * codometer's `--format`, which falls back to a resolved configuration
1064
- * field, codependix's configuration declares no such field, so the default
1065
- * is a fixed constant instead.
777
+ * What `--format` prints to standard output, unparsed. Defaults to
778
+ * `"markdown"`, a fixed constant rather than a configured field.
1066
779
  */
1067
780
  format?: string | undefined;
1068
781
  /** Overrides `include` for this run. Refused when never configured. */
@@ -1073,10 +786,8 @@ export declare interface MapCommandOptions {
1073
786
  */
1074
787
  jsonOutput?: string | undefined;
1075
788
  /**
1076
- * Writes every active graph type's rendered diagram, combined into one
1077
- * Markdown file at this path — each type's own anchor-spliced section,
1078
- * the same splicing `DeliveryService` applies per project, applied here to
1079
- * one shared destination instead.
789
+ * Writes every active graph type's rendered diagram into one Markdown file
790
+ * at this path, each as an anchor-spliced section.
1080
791
  */
1081
792
  markdownOutput?: string | undefined;
1082
793
  /** Builds, checks, and writes the `nestjsModules` graph type for this run. */
@@ -1096,41 +807,21 @@ export declare interface MapCommandOptions {
1096
807
  }
1097
808
 
1098
809
  /**
1099
- * A required value that cannot be asked for, because stdin is not a terminal.
1100
- *
1101
- * `prompts` does not fail there — it draws its menu, never resolves, and the
1102
- * process exits 0 having done nothing. This refuses to become that silent
1103
- * green no-op.
810
+ * A required value that cannot be asked for without a terminal. `prompts` would
811
+ * exit 0 having done nothing, so this refuses instead.
1104
812
  */
1105
813
  export declare const missingInputError: (subject: string) => InputError;
1106
814
 
1107
815
  /**
1108
- * Applies strict, per-field CLI overrides to an already-resolved
1109
- * configuration.
1110
- *
1111
- * Mirrors `@callidescope/configuration`'s `FlagResolutionService` philosophy
1112
- * exactly: a flag may override a value the configuration already declares,
1113
- * and is refused when the configuration never declared that field at all.
1114
- * Kept apart from `ConfigurationService` so the resolution logic — and the
1115
- * file-length budget it would otherwise share with loading, boundary
1116
- * defaulting, and per-project resolution — is stated and tested once, on its
1117
- * own.
816
+ * Applies strict, per-field CLI overrides to a resolved configuration. A flag may override a declared
817
+ * value, and is refused for a field the configuration never declared. Kept apart from
818
+ * `ConfigurationService` to keep that file within its length budget.
1118
819
  */
1119
820
  declare class OverrideResolutionService {
1120
821
  constructor();
1121
822
  /**
1122
- * Applies one list override, refusing it when the author never declared
1123
- * the field it names.
1124
- *
1125
- * Checked against `authored` — the configuration exactly as parsed, before
1126
- * `include`/`exclude` are defaulted — rather than against the resolved
1127
- * value: `ConfigurationService.resolveConfiguration` fills in
1128
- * `DEFAULT_INCLUDE_GLOBS`/`[]` for a field the author never wrote, so the
1129
- * resolved value is never itself `undefined`. Checking there would make
1130
- * every override legal regardless of what the configuration actually
1131
- * declared, which is the opposite of the precedence rule this mirrors.
1132
- *
1133
- * An empty override list is read the same as no override at all.
823
+ * Refuses an override for a field the author never declared. Checked against the authored config,
824
+ * since resolution fills defaults.
1134
825
  */
1135
826
  private resolveOverride;
1136
827
  /**
@@ -1145,45 +836,30 @@ export declare interface ProjectSelectionArguments {
1145
836
  configuration: ResolvedCodependixConfiguration;
1146
837
  projectName: string;
1147
838
  /**
1148
- * The project's root, relative to the workspace, as read from the Nx
1149
- * project graph.
1150
- *
1151
- * Optional so a caller with no root handy — a test, or a host that only
1152
- * knows a project by name — still resolves against `include`/`exclude`
1153
- * globs written against project names.
839
+ * The project's root, relative to the workspace. Optional for a caller that
840
+ * knows the project only by name.
1154
841
  */
1155
842
  projectRoot?: string | undefined;
1156
843
  /**
1157
- * The project's own Nx tags, for matching `--tags`.
1158
- *
1159
- * Optional for the same reason `projectRoot` is: a caller that knows a
1160
- * project only by name still resolves against everything else.
844
+ * The project's own Nx tags, for matching `--tags`. Optional, as `projectRoot` is.
1161
845
  */
1162
846
  projectTags?: string[] | undefined;
1163
847
  }
1164
848
 
1165
849
  /**
1166
- * A prompt someone dismissed without answering.
1167
- *
1168
- * Worded apart from a prompt that resolved to something unrecognized:
1169
- * pressing escape is ordinary, and reporting it as a crash sends the reader
1170
- * debugging for nothing.
850
+ * A prompt dismissed without an answer. Worded apart from an unrecognized
851
+ * answer, since escape is ordinary, not a crash.
1171
852
  */
1172
853
  export declare const promptCancelledError: (subject: string) => InputError;
1173
854
 
1174
855
  /**
1175
- * Marks the workspace root during an upward search from the process cwd.
1176
- *
1177
- * A package manifest is deliberately not one of them: every project in the
1178
- * workspace carries one, so the search would stop at the nearest project
1179
- * rather than the root a configuration path was written relative to.
856
+ * Root markers for an upward search from the cwd. Not package manifests: every
857
+ * project has one, so the search would stop early.
1180
858
  */
1181
859
  export declare const REPOSITORY_ROOT_MARKERS: readonly [".git", "pnpm-workspace.yaml"];
1182
860
 
1183
861
  /**
1184
- * Every graph level's declared rules, with a level naming none resolved to an
1185
- * empty list rather than left unset — so a caller iterates every level
1186
- * without asking whether each one was configured.
862
+ * Every level's declared rules, resolved to an empty list when unset, so callers iterate every level unconditionally.
1187
863
  */
1188
864
  export declare interface ResolvedCodependixBoundariesConfiguration {
1189
865
  fileImports: ResolvedCodependixFileImportsBoundariesConfiguration;
@@ -1192,13 +868,8 @@ export declare interface ResolvedCodependixBoundariesConfiguration {
1192
868
  }
1193
869
 
1194
870
  /**
1195
- * Configuration with every default applied.
1196
- *
1197
- * Carries no per-project state at all: a project's own export configuration
1198
- * lives in its own colocated `codependix.config.ts`, loaded on demand by
1199
- * `ConfigurationService.loadProjectConfiguration` and handed to
1200
- * `resolveForProject` — which is also where `include` and `exclude` globs
1201
- * are applied.
871
+ * Configuration with every default applied. Carries no per-project state: that lives in each project's
872
+ * own `codependix.config.ts`.
1202
873
  */
1203
874
  export declare interface ResolvedCodependixConfiguration {
1204
875
  boundaries: ResolvedCodependixBoundariesConfiguration;
@@ -1209,12 +880,8 @@ export declare interface ResolvedCodependixConfiguration {
1209
880
  /** A project graph to read instead of the working directory's, if named. */
1210
881
  projectGraph: string | undefined;
1211
882
  /**
1212
- * What `--projects` and `--tags` named, resolved.
1213
- *
1214
- * Carried on the resolved configuration rather than passed alongside it so
1215
- * that everything already handed a configuration — the export passes, the
1216
- * workspace graph, and the boundary gate — sees the same selection without
1217
- * a second argument threaded through each of them.
883
+ * What `--projects` and `--tags` named, resolved. Carried here so every
884
+ * consumer of the configuration sees the same selection.
1218
885
  */
1219
886
  selection: ResolvedCodependixSelection;
1220
887
  workspace: CodependixWorkspaceConfiguration;
@@ -1243,21 +910,12 @@ export declare interface ResolvedCodependixMarkdownOutput {
1243
910
  }
1244
911
 
1245
912
  /**
1246
- * A run's project selection, split and trimmed.
1247
- *
1248
- * Both lists empty means no selection was made at all, which is not the same
1249
- * as a selection that matches nothing: an absent selection leaves the
1250
- * whole-workspace graph and the boundary gate judging every project, while a
1251
- * selection naming something narrows both to what it names.
913
+ * A run's project selection, split and trimmed. Empty means no selection at all, not one matching nothing.
1252
914
  */
1253
915
  export declare interface ResolvedCodependixSelection {
1254
916
  /**
1255
- * Whether graphs are built over the selected projects' dependency closure,
1256
- * or over the selected projects alone.
1257
- *
1258
- * `true` unless `--no-dependencies` was given. Either way only the selected
1259
- * projects are judged: a finding charged to a dependency is reported as a
1260
- * note rather than failing the run.
917
+ * Whether graphs build over the selected projects' dependency closure, or
918
+ * over them alone. Only selected projects are judged; dependencies get notes.
1261
919
  */
1262
920
  dependencies: boolean;
1263
921
  /** Globs matched against a project's name or its workspace-relative root. */
@@ -1270,26 +928,15 @@ export declare interface ResolvedCodependixSelection {
1270
928
  export declare interface ResolveForProjectArguments extends ProjectSelectionArguments {
1271
929
  graphType: CodependixGraphType;
1272
930
  /**
1273
- * The project's own loaded `codependix.config.ts`, or `undefined` when it
1274
- * has none — see `ConfigurationService.loadProjectConfiguration`.
1275
- *
1276
- * Read as-is rather than merged with anything else: a project's own file
1277
- * already spreads the root-exported `projectDefaults` at authoring time, so
1278
- * whatever `loadProjectConfiguration` returns is the complete statement of
1279
- * that project's export configuration. A project naming no file of its own
1280
- * resolves to `target: "none"` regardless of `include`/`exclude` — it
1281
- * simply has nothing to export.
931
+ * The project's own loaded `codependix.config.ts`, or `undefined` when it has
932
+ * none. Read as-is, never merged; no file means `target: "none"`.
1282
933
  */
1283
934
  projectConfiguration: CodependixProjectConfiguration | undefined;
1284
935
  }
1285
936
 
1286
937
  /**
1287
- * What a command line naming no mode at all is asked to choose between.
1288
- *
1289
- * Three choices rather than the two `--check`/`--write` used to offer, since
1290
- * `--check` now names which finding it gates. Kept as a prompt rather than
1291
- * defaulted to anything: a run that silently did nothing and exited 0 is the
1292
- * failure this whole flag arrangement exists to prevent.
938
+ * Choices offered when no mode is named. Never defaulted: a silent no-op that
939
+ * exits 0 is the failure to avoid.
1293
940
  */
1294
941
  export declare const RUN_MODE_CHOICES: readonly ["boundaries", "reports", "write"];
1295
942
 
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "url": "https://github.com/organizzolini/codebase/issues"
5
5
  },
6
6
  "dependencies": {
7
- "@codependix/core": "0.0.75",
7
+ "@codependix/core": "0.0.77",
8
8
  "@nestjs/common": "^11.1.21 || ^12.0.1",
9
9
  "jiti": "^2.7.0",
10
10
  "prompts": "^2.4.2",
@@ -20,9 +20,9 @@
20
20
  "@swc/helpers": "^0.5.21",
21
21
  "@types/node": "^26.5.1",
22
22
  "@types/prompts": "^2.4.9",
23
- "@vitest/coverage-v8": "^5.0.0",
23
+ "@vitest/coverage-v8": "^5.1.0",
24
24
  "typescript": "^6.0.3",
25
- "vitest": "^5.0.0"
25
+ "vitest": "^5.1.0"
26
26
  },
27
27
  "exports": {
28
28
  ".": {
@@ -63,5 +63,5 @@
63
63
  "strict": true
64
64
  },
65
65
  "types": "./dist/src/index.d.ts",
66
- "version": "0.0.77"
66
+ "version": "0.0.79"
67
67
  }