@conformetry/configuration 0.0.28 → 0.0.30

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,23 @@
1
+ ## 0.0.30 (2026-10-15)
2
+
3
+ ### 💅 Refactors
4
+
5
+ - **callidescope,codependix,codometer,conformetry:** ♻️ require --config on every ic-suite command line ([#1598](https://github.com/organizzolini/codebase/pull/1598))
6
+
7
+ ### 🧱 Updated Dependencies
8
+
9
+ - Updated conformetry-core to 0.0.29
10
+
11
+ ## 0.0.29 (2026-10-15)
12
+
13
+ ### 💅 Refactors
14
+
15
+ - **configuration,documentation:** ♻️ move the configuration folder into an nx project ([#1509](https://github.com/organizzolini/codebase/pull/1509))
16
+
17
+ ### 🧱 Updated Dependencies
18
+
19
+ - Updated conformetry-core to 0.0.28
20
+
1
21
  ## 0.0.28 (2026-10-15)
2
22
 
3
23
  ### 🧱 Updated Dependencies
package/README.md CHANGED
@@ -19,7 +19,9 @@ configuration file, or embedding conformetry in a host of your own.
19
19
 
20
20
  ## The configuration file
21
21
 
22
- Any of `conformetry.config.{ts,mts,cts,js,mjs,cjs,json,jsonc}`. TypeScript and
22
+ The file's extension may be any of `.ts`, `.mts`, `.cts`, `.js`, `.mjs`, `.cjs`,
23
+ `.json`, or `.jsonc`. The path is always passed in explicitly — no filename is
24
+ searched for. TypeScript and
23
25
  JavaScript files are loaded through [jiti](https://github.com/unjs/jiti), so a
24
26
  `.ts` config needs no build step and may import from your workspace.
25
27
 
@@ -243,6 +245,7 @@ asserting that these paths _are_ instances:
243
245
  | ------ | ------- |
244
246
  | `ConfigurationService` | Everything this layer answers: loading a configuration file, reading templates, expanding globs into instances, matching the two, rendering placeholders, and resolving generator inputs |
245
247
  | `ConfigurationModule` | The NestJS module that provides it |
248
+ | `ConfigurationPathRequiredError` | Thrown by `ConfigurationService.requireConfigurationPath` for an absent or blank path, naming the flag or option the caller passed as the surface |
246
249
  | `ConformetryConfiguration` | The loaded configuration type — author your config as this |
247
250
  | `ConformetryInstanceGroup`, `ConformetryGeneratorDefinition` | Field-level types for the above |
248
251
 
@@ -257,6 +260,12 @@ because they are six different jobs. What they are not is six entry points a
257
260
  host has to know the names of: a consumer imports `ConfigurationModule` and
258
261
  injects `ConfigurationService`.
259
262
 
263
+ Whether a configuration path is required, and what the refusal says, is
264
+ decided here and nowhere else: `ConfigurationService.requireConfigurationPath(path, surface)`
265
+ returns the trimmed path or throws `ConfigurationPathRequiredError`. The CLI
266
+ passes `the --config flag`, and the Nx plugin passes its own option names;
267
+ neither keeps a guard or a message of its own.
268
+
260
269
  Loading a configuration file is the one job `ConfigurationService` holds
261
270
  itself; everything that touches paths is a one-line hand-off to the
262
271
  collaborator that owns it.
@@ -273,7 +282,7 @@ MIT — see [LICENSE](../../../../LICENSE).
273
282
 
274
283
  ## 👔 Conformetry
275
284
 
276
- This project was generated from the [nestjs-service-project](../../../../configuration/conformetry-templates/nestjs-service-project) conformetry template.
285
+ This project was generated from the [nestjs-service-project](../../../configuration/conformetry-templates/nestjs-service-project) conformetry template.
277
286
 
278
287
  <!-- callidescope:start -->
279
288
 
@@ -283,13 +292,13 @@ Call stacks traced through `projects/ic-suite/conformetry/conformetry-configurat
283
292
 
284
293
  | Measure | Value |
285
294
  | --- | --- |
286
- | Callables | 181 |
295
+ | Callables | 183 |
287
296
  | Files | 38 |
288
- | Calls traced | 166 |
297
+ | Calls traced | 167 |
289
298
  | Call stacks | 5 |
290
299
  | Deepest stack | 10 |
291
300
  | Stacks through recursion | 0 |
292
- | Unfollowable calls | 6 |
301
+ | Unfollowable calls | 7 |
293
302
 
294
303
  ### Limits
295
304
 
@@ -394,7 +403,7 @@ What this project is judged against, as declared in its own `callidescope.config
394
403
  | `InputPromptingService.promptForInput` | 4 | `InputPromptingService.assertCanPrompt`, `InputSchemaService.readEnumValues`, `InputPromptingService.map(…)`, `InputSchemaService.readPromptMessage` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input-prompting.service.ts:90` |
395
404
 
396
405
  <details>
397
- <summary>101 more callables</summary>
406
+ <summary>102 more callables</summary>
398
407
 
399
408
  | Callable | Breadth | Calls directly | Location |
400
409
  | --- | --- | --- | --- |
@@ -403,7 +412,7 @@ What this project is judged against, as declared in its own `callidescope.config
403
412
  | `InstanceDiscoveryService.resolveInventoriedInstances` | 4 | `InstanceDiscoveryService.takeInventory`, `InstanceDiscoveryService.map(…)`, `InstanceDiscoveryService.filter(…)`, `InstanceDiscoveryService.map(…)` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:219` |
404
413
  | `InstanceDiscoveryService.resolveInventoriedTemplates` | 4 | `InstanceDiscoveryService.takeInventory`, `InstanceDiscoveryService.filter(…)`, `InstanceDiscoveryService.map(…)`, `InstanceDiscoveryService.filter(…)` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:244` |
405
414
  | `InstanceDiscoveryService.takeInventory` | 4 | `TemplateDiscoveryService.collectTemplates`, `InstanceDiscoveryService.findInstances`, `InstanceDiscoveryService.readInventoryGlobs`, `InstanceDiscoveryService.map(…)` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:283` |
406
- | `ConfigurationService.loadConformetryConfiguration` | 4 | `ConfigurationService.resolveConfigurationPath`, `UnknownConfigurationFileTypeError.constructor`, `ConfigurationService.loadConfigurationModule`, `ConfigurationService.map(…)` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:243` |
415
+ | `ConfigurationService.loadConformetryConfiguration` | 4 | `ConfigurationService.resolveConfigurationPath`, `UnknownConfigurationFileTypeError.constructor`, `ConfigurationService.loadConfigurationModule`, `ConfigurationService.map(…)` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:244` |
407
416
  | `assertNoCollisions` | 3 | `findDuplicates`, `findUnusableNames`, `findReservedNames` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.utilities.ts:28` |
408
417
  | `findReservedNames` | 3 | `map(…)`, `filter(…)`, `map(…)` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.utilities.ts:97` |
409
418
  | `findUnusableNames` | 3 | `map(…)`, `filter(…)`, `map(…)` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.utilities.ts:112` |
@@ -476,36 +485,37 @@ What this project is judged against, as declared in its own `callidescope.config
476
485
  | `InstanceDiscoveryService.map(…)` | 1 | `InstanceDiscoveryService.flatMap(…)` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:256` |
477
486
  | `InstanceDiscoveryService.flatMap(…)` | 1 | `InstanceDiscoveryService.find(…)` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:257` |
478
487
  | `InstanceDiscoveryService.map(…)` | 1 | `InstanceDiscoveryService.weighInstance` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:295` |
479
- | `ConfigurationService.loadConfigurationModule` | 1 | `ConfigurationService.loadJsonConfiguration` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:135` |
480
- | `ConfigurationService.resolveConfigurationPath` | 1 | `ConfigurationService.findWorkspaceRoot` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:174` |
481
- | `ConfigurationService.buildNameSubstitutions` | 1 | `RenderingService.buildNameSubstitutions` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:202` |
482
- | `ConfigurationService.collectTemplate` | 1 | `TemplateDiscoveryService.collectTemplate` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:207` |
483
- | `ConfigurationService.collectTemplates` | 1 | `TemplateDiscoveryService.collectTemplates` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:214` |
484
- | `ConfigurationService.findInstances` | 1 | `InstanceDiscoveryService.findInstances` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:222` |
485
- | `ConfigurationService.isAtTerminal` | 1 | `InputPromptingService.isAtTerminal` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:227` |
486
- | `ConfigurationService.isProjectScoped` | 1 | `InstanceGroupService.isProjectScoped` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:232` |
487
- | `ConfigurationService.map(…)` | 1 | `ConfigurationService.applyGeneratorDefaults` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:259` |
488
- | `ConfigurationService.matchInstances` | 1 | `InstanceDiscoveryService.matchInstances` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:263` |
489
- | `ConfigurationService.parseCommaDelimitedOption` | 1 | `InputService.parseCommaDelimitedOption` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:271` |
490
- | `ConfigurationService.parseOptionalOption` | 1 | `InputService.parseOptionalOption` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:278` |
491
- | `ConfigurationService.parseThresholdOption` | 1 | `InputService.parseThresholdOption` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:283` |
492
- | `ConfigurationService.prepareDocuments` | 1 | `InstanceDiscoveryService.prepareDocuments` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:291` |
493
- | `ConfigurationService.promptForTemplate` | 1 | `InputPromptingService.promptForTemplate` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:298` |
494
- | `ConfigurationService.promptForTemplates` | 1 | `InputPromptingService.promptForTemplates` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:305` |
495
- | `ConfigurationService.readWorkspaceGroups` | 1 | `InstanceDiscoveryService.readWorkspaceGroups` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:312` |
496
- | `ConfigurationService.renderContent` | 1 | `RenderingService.renderContent` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:319` |
497
- | `ConfigurationService.renderPath` | 1 | `RenderingService.renderPath` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:326` |
498
- | `ConfigurationService.resolveGeneratorInputs` | 1 | `InputService.resolveGeneratorInputs` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:333` |
499
- | `ConfigurationService.resolveInstanceFiles` | 1 | `InstanceDiscoveryService.resolveInstanceFiles` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:340` |
500
- | `ConfigurationService.resolveInventoriedInstances` | 1 | `InstanceDiscoveryService.resolveInventoriedInstances` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:345` |
501
- | `ConfigurationService.resolveInventoriedTemplates` | 1 | `InstanceDiscoveryService.resolveInventoriedTemplates` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:352` |
488
+ | `ConfigurationService.loadConfigurationModule` | 1 | `ConfigurationService.loadJsonConfiguration` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:136` |
489
+ | `ConfigurationService.resolveConfigurationPath` | 1 | `ConfigurationService.findWorkspaceRoot` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:175` |
490
+ | `ConfigurationService.buildNameSubstitutions` | 1 | `RenderingService.buildNameSubstitutions` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:203` |
491
+ | `ConfigurationService.collectTemplate` | 1 | `TemplateDiscoveryService.collectTemplate` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:208` |
492
+ | `ConfigurationService.collectTemplates` | 1 | `TemplateDiscoveryService.collectTemplates` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:215` |
493
+ | `ConfigurationService.findInstances` | 1 | `InstanceDiscoveryService.findInstances` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:223` |
494
+ | `ConfigurationService.isAtTerminal` | 1 | `InputPromptingService.isAtTerminal` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:228` |
495
+ | `ConfigurationService.isProjectScoped` | 1 | `InstanceGroupService.isProjectScoped` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:233` |
496
+ | `ConfigurationService.map(…)` | 1 | `ConfigurationService.applyGeneratorDefaults` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:260` |
497
+ | `ConfigurationService.matchInstances` | 1 | `InstanceDiscoveryService.matchInstances` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:264` |
498
+ | `ConfigurationService.parseCommaDelimitedOption` | 1 | `InputService.parseCommaDelimitedOption` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:272` |
499
+ | `ConfigurationService.parseOptionalOption` | 1 | `InputService.parseOptionalOption` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:279` |
500
+ | `ConfigurationService.parseThresholdOption` | 1 | `InputService.parseThresholdOption` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:284` |
501
+ | `ConfigurationService.prepareDocuments` | 1 | `InstanceDiscoveryService.prepareDocuments` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:292` |
502
+ | `ConfigurationService.promptForTemplate` | 1 | `InputPromptingService.promptForTemplate` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:299` |
503
+ | `ConfigurationService.promptForTemplates` | 1 | `InputPromptingService.promptForTemplates` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:306` |
504
+ | `ConfigurationService.readWorkspaceGroups` | 1 | `InstanceDiscoveryService.readWorkspaceGroups` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:313` |
505
+ | `ConfigurationService.renderContent` | 1 | `RenderingService.renderContent` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:320` |
506
+ | `ConfigurationService.renderPath` | 1 | `RenderingService.renderPath` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:327` |
507
+ | `ConfigurationService.requireConfigurationPath` | 1 | `ConfigurationPathRequiredError.constructor` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:342` |
508
+ | `ConfigurationService.resolveGeneratorInputs` | 1 | `InputService.resolveGeneratorInputs` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:356` |
509
+ | `ConfigurationService.resolveInstanceFiles` | 1 | `InstanceDiscoveryService.resolveInstanceFiles` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:363` |
510
+ | `ConfigurationService.resolveInventoriedInstances` | 1 | `InstanceDiscoveryService.resolveInventoriedInstances` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:368` |
511
+ | `ConfigurationService.resolveInventoriedTemplates` | 1 | `InstanceDiscoveryService.resolveInventoriedTemplates` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:375` |
502
512
 
503
513
  </details>
504
514
  <!-- callidescope:end -->
505
515
 
506
516
  ## 🕸️ Codependix
507
517
 
508
- Dependency graphs exported by [codependix](https://github.com/Organizzolini/codebase/tree/main/projects/ic-suite/codependix/codependix-cli), regenerated by `nx run codebase:codependix:write`.
518
+ Dependency graphs exported by [codependix](https://github.com/Organizzolini/codebase/tree/main/projects/ic-suite/codependix/codependix-cli), regenerated by `nx run configuration:codependix:write`.
509
519
 
510
520
  ### Nx Neighborhood
511
521
 
@@ -739,14 +749,14 @@ graph LR
739
749
 
740
750
  ### Project
741
751
 
742
- ![Lines of Code](https://img.shields.io/badge/Lines_of_Code-6627-22c55e?style=flat-square)
743
- ![Repository Size](https://img.shields.io/badge/Repository_Size-228.83_kB-6b7280?style=flat-square)
752
+ ![Lines of Code](https://img.shields.io/badge/Lines_of_Code-6721-22c55e?style=flat-square)
753
+ ![Repository Size](https://img.shields.io/badge/Repository_Size-232.30_kB-6b7280?style=flat-square)
744
754
  ![Folders](https://img.shields.io/badge/Folders-9-4a4a4a?style=flat-square)
745
755
  ![Source Files](https://img.shields.io/badge/Source_Files-55-3178c6?style=flat-square)
746
756
 
747
757
  ### Measured Targets
748
758
 
749
- ![Compiled JavaScript Size](https://img.shields.io/badge/Compiled_JavaScript_Size-8.09_kB_gzip-6b7280?style=flat-square)
759
+ ![Compiled JavaScript Size](https://img.shields.io/badge/Compiled_JavaScript_Size-8.22_kB_gzip-6b7280?style=flat-square)
750
760
 
751
761
  ### TypeScript
752
762
 
@@ -755,7 +765,7 @@ graph LR
755
765
  ![Generic Declarations](https://img.shields.io/badge/Generic_Declarations-2-0369a1?style=flat-square)
756
766
  ![Enums](https://img.shields.io/badge/Enums-0-f97316?style=flat-square)
757
767
  ![Decorators](https://img.shields.io/badge/Decorators-17-db2777?style=flat-square)
758
- ![Doc Comments](https://img.shields.io/badge/Doc_Comments-186-6366f1?style=flat-square)
768
+ ![Doc Comments](https://img.shields.io/badge/Doc_Comments-187-6366f1?style=flat-square)
759
769
  ![Static Methods](https://img.shields.io/badge/Static_Methods-0-166534?style=flat-square)
760
770
 
761
771
  ### JavaScript
@@ -763,16 +773,16 @@ graph LR
763
773
  ![JavaScript Files](https://img.shields.io/badge/JavaScript_Files-0-f7df1e?style=flat-square)
764
774
  ![Test Files](https://img.shields.io/badge/Test_Files-15-10b981?style=flat-square)
765
775
  ![External Packages](https://img.shields.io/badge/External_Packages-17-8b5cf6?style=flat-square)
766
- ![Classes](https://img.shields.io/badge/Classes-20-7c3aed?style=flat-square)
767
- ![Functions](https://img.shields.io/badge/Functions-348-16a34a?style=flat-square)
768
- ![Methods](https://img.shields.io/badge/Methods-146-15803d?style=flat-square)
769
- ![Sync Functions](https://img.shields.io/badge/Sync_Functions-396-4ade80?style=flat-square)
776
+ ![Classes](https://img.shields.io/badge/Classes-21-7c3aed?style=flat-square)
777
+ ![Functions](https://img.shields.io/badge/Functions-355-16a34a?style=flat-square)
778
+ ![Methods](https://img.shields.io/badge/Methods-147-15803d?style=flat-square)
779
+ ![Sync Functions](https://img.shields.io/badge/Sync_Functions-404-4ade80?style=flat-square)
770
780
  ![Async Functions](https://img.shields.io/badge/Async_Functions-98-059669?style=flat-square)
771
- ![Constants](https://img.shields.io/badge/Constants-326-dc2626?style=flat-square)
781
+ ![Constants](https://img.shields.io/badge/Constants-328-dc2626?style=flat-square)
772
782
  ![Imports](https://img.shields.io/badge/Imports-216-0284c7?style=flat-square)
773
- ![Exported Symbols](https://img.shields.io/badge/Exported_Symbols-65-ea580c?style=flat-square)
774
- ![Comments](https://img.shields.io/badge/Comments-338-64748b?style=flat-square)
775
- ![Comment Lines](https://img.shields.io/badge/Comment_Lines-922-475569?style=flat-square)
783
+ ![Exported Symbols](https://img.shields.io/badge/Exported_Symbols-66-ea580c?style=flat-square)
784
+ ![Comments](https://img.shields.io/badge/Comments-339-64748b?style=flat-square)
785
+ ![Comment Lines](https://img.shields.io/badge/Comment_Lines-936-475569?style=flat-square)
776
786
  ![TODO Comments](https://img.shields.io/badge/TODO_Comments-0-ca8a04?style=flat-square)
777
787
 
778
788
  ### Python
@@ -928,20 +938,20 @@ graph LR
928
938
  ### Markdown
929
939
 
930
940
  ![Markdown Files](https://img.shields.io/badge/Markdown_Files-2-083fa1?style=flat-square)
931
- ![Markdown Lines](https://img.shields.io/badge/Markdown_Lines-381-1f6feb?style=flat-square)
941
+ ![Markdown Lines](https://img.shields.io/badge/Markdown_Lines-401-1f6feb?style=flat-square)
932
942
  ![H1](https://img.shields.io/badge/H1-1-7c3aed?style=flat-square)
933
- ![H2](https://img.shields.io/badge/H2-31-8b5cf6?style=flat-square)
934
- ![H3](https://img.shields.io/badge/H3-40-a78bfa?style=flat-square)
943
+ ![H2](https://img.shields.io/badge/H2-33-8b5cf6?style=flat-square)
944
+ ![H3](https://img.shields.io/badge/H3-44-a78bfa?style=flat-square)
935
945
  ![H4](https://img.shields.io/badge/H4-0-c4b5fd?style=flat-square)
936
946
  ![H5](https://img.shields.io/badge/H5-0-ddd6fe?style=flat-square)
937
947
  ![H6](https://img.shields.io/badge/H6-0-ede9fe?style=flat-square)
938
- ![Paragraphs](https://img.shields.io/badge/Paragraphs-73-64748b?style=flat-square)
939
- ![Lists](https://img.shields.io/badge/Lists-34-16a34a?style=flat-square)
940
- ![List Items](https://img.shields.io/badge/List_Items-53-22c55e?style=flat-square)
948
+ ![Paragraphs](https://img.shields.io/badge/Paragraphs-77-64748b?style=flat-square)
949
+ ![Lists](https://img.shields.io/badge/Lists-38-16a34a?style=flat-square)
950
+ ![List Items](https://img.shields.io/badge/List_Items-57-22c55e?style=flat-square)
941
951
  ![Task List Items](https://img.shields.io/badge/Task_List_Items-0-4ade80?style=flat-square)
942
952
  ![Tables](https://img.shields.io/badge/Tables-2-0284c7?style=flat-square)
943
953
  ![Table Rows](https://img.shields.io/badge/Table_Rows-10-0ea5e9?style=flat-square)
944
- ![Links](https://img.shields.io/badge/Links-13-059669?style=flat-square)
954
+ ![Links](https://img.shields.io/badge/Links-15-059669?style=flat-square)
945
955
  ![Images](https://img.shields.io/badge/Images-0-10b981?style=flat-square)
946
956
  ![Code Blocks](https://img.shields.io/badge/Code_Blocks-11-dc2626?style=flat-square)
947
957
  ![Inline Code](https://img.shields.io/badge/Inline_Code-72-ef4444?style=flat-square)
@@ -42,6 +42,19 @@ export declare function capturePlaceholderValues(args: {
42
42
  export declare class ConfigurationModule {
43
43
  }
44
44
 
45
+ /**
46
+ * Raised when a run names no configuration file.
47
+ *
48
+ * There is no default file and no filename search: the path is the one thing a
49
+ * run cannot infer, and a guessed file is a silently wrong configuration. The
50
+ * surface is how the caller spells the thing the person left unset — a flag, an
51
+ * option, a registration — so the message points at the fix where they are.
52
+ */
53
+ export declare class ConfigurationPathRequiredError extends Error {
54
+ constructor(surface: string);
55
+ readonly surface: string;
56
+ }
57
+
45
58
  /**
46
59
  * The one answer to "what is this run actually configured to do".
47
60
  *
@@ -139,6 +152,16 @@ export declare class ConfigurationService {
139
152
  renderContent(args: Parameters<RenderingService["renderContent"]>[0]): string;
140
153
  /** Renders a template path with mustache. */
141
154
  renderPath(args: Parameters<RenderingService["renderPath"]>[0]): string;
155
+ /**
156
+ * Returns the configuration path a run was given, or refuses.
157
+ *
158
+ * Every host asks here, so "a path is required" and what the refusal says
159
+ * have one home. `surface` names where the caller expected the path to be
160
+ * set, for example the `--config` flag.
161
+ *
162
+ * Throws `ConfigurationPathRequiredError` for an absent or blank value.
163
+ */
164
+ requireConfigurationPath(value: string | undefined, surface: string): string;
142
165
  /** Resolves generator inputs from raw command-line arguments. */
143
166
  resolveGeneratorInputs(args: ResolveGeneratorInputsArguments): Promise<Record<string, string>>;
144
167
  /** Lists every file a matched instance's template requires it to have. */
package/dist/src/index.js CHANGED
@@ -78,7 +78,12 @@ function findUnusableNames(e) {
78
78
  }
79
79
  //#endregion
80
80
  //#region projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.constants.ts
81
- var UnknownConfigurationFileTypeError = class extends Error {
81
+ var ConfigurationPathRequiredError = class extends Error {
82
+ constructor(e) {
83
+ super(`A conformetry configuration path is required, but ${e} is missing or blank. No default file is assumed and none is searched for.`), this.name = "ConfigurationPathRequiredError", this.surface = e;
84
+ }
85
+ surface;
86
+ }, UnknownConfigurationFileTypeError = class extends Error {
82
87
  constructor(e) {
83
88
  super(`Unsupported configuration file type: ${e}`), this.name = "UnknownConfigurationFileTypeError";
84
89
  }
@@ -989,6 +994,11 @@ var V = class ConfigurationService {
989
994
  renderPath(e) {
990
995
  return this.renderingService.renderPath(e);
991
996
  }
997
+ requireConfigurationPath(e, t) {
998
+ let n = e?.trim();
999
+ if (n === void 0 || n === "") throw new ConfigurationPathRequiredError(t);
1000
+ return n;
1001
+ }
992
1002
  async resolveGeneratorInputs(e) {
993
1003
  return this.inputService.resolveGeneratorInputs(e);
994
1004
  }
@@ -1026,4 +1036,4 @@ H = __decorate([r({
1026
1036
  providers: [V]
1027
1037
  })], H);
1028
1038
  //#endregion
1029
- export { g as ALL_TEMPLATES_SELECTION, H as ConfigurationModule, V as ConfigurationService, InputError, MissingSubstitutionError, UnknownConfigurationFileTypeError, capturePlaceholderValues, createPlaceholderValue, missingDirectoryError, missingInputError };
1039
+ export { g as ALL_TEMPLATES_SELECTION, H as ConfigurationModule, ConfigurationPathRequiredError, V as ConfigurationService, InputError, MissingSubstitutionError, UnknownConfigurationFileTypeError, capturePlaceholderValues, createPlaceholderValue, missingDirectoryError, missingInputError };
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "url": "https://github.com/organizzolini/codebase/issues"
5
5
  },
6
6
  "dependencies": {
7
- "@conformetry/core": "0.0.27",
7
+ "@conformetry/core": "0.0.29",
8
8
  "@nestjs/common": "^11.1.21 || ^12.0.1",
9
9
  "jiti": "^2.7.0",
10
10
  "jsonc-parser": "^3.3.1",
@@ -67,5 +67,5 @@
67
67
  "strict": true
68
68
  },
69
69
  "types": "./dist/src/index.d.ts",
70
- "version": "0.0.28"
70
+ "version": "0.0.30"
71
71
  }