@conformetry/configuration 0.0.39 → 0.0.40
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 +20 -0
- package/README.md +46 -40
- package/dist/src/index.d.ts +9 -4
- package/dist/src/index.js +8 -8
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,23 @@
|
|
|
1
|
+
## 0.0.40 (2026-10-18)
|
|
2
|
+
|
|
3
|
+
### 🚀 Features
|
|
4
|
+
|
|
5
|
+
- ⚠️ **conformetry:** ✨ expose the filesystem and configuration directory to hooks ([#1695](https://github.com/organizzolini/codebase/pull/1695), [#1679](https://github.com/organizzolini/codebase/issues/1679))
|
|
6
|
+
|
|
7
|
+
### ⚠️ Breaking Changes
|
|
8
|
+
|
|
9
|
+
- **conformetry:** ✨ expose the filesystem and configuration directory to hooks ([#1695](https://github.com/organizzolini/codebase/pull/1695), [#1679](https://github.com/organizzolini/codebase/issues/1679))
|
|
10
|
+
`GenerationService.runGenerator` in the published
|
|
11
|
+
`@conformetry/generation` now requires `configurationDirectoryPath`, so
|
|
12
|
+
an embedder calling it must pass the absolute directory of its
|
|
13
|
+
configuration file; the title carries `!` so the squash releases it as
|
|
14
|
+
such.
|
|
15
|
+
- This is stacked on #1693.
|
|
16
|
+
|
|
17
|
+
### 🧱 Updated Dependencies
|
|
18
|
+
|
|
19
|
+
- Updated conformetry-core to 0.0.39
|
|
20
|
+
|
|
1
21
|
## 0.0.39 (2026-10-18)
|
|
2
22
|
|
|
3
23
|
### 🚀 Features
|
package/README.md
CHANGED
|
@@ -61,6 +61,7 @@ export default conformetryConfiguration;
|
|
|
61
61
|
| `inputs` | | The values it substitutes, as JSON Schema fragments |
|
|
62
62
|
| `instances` | | Where this generator's output already lives |
|
|
63
63
|
| `description` | | Shown when a host lists or prompts for generators |
|
|
64
|
+
| `hooks` | | `preGenerate` and `postGenerate` functions run around the render; see [`@conformetry/generation`](../conformetry-generation/README.md) |
|
|
64
65
|
|
|
65
66
|
Both `inputs` and `instances` may be omitted. A generator with neither renders
|
|
66
67
|
a fixed template nobody validates, which is legal.
|
|
@@ -81,6 +82,10 @@ problem in one pass:
|
|
|
81
82
|
- **A key the schema does not declare.** The generator object is strict, so a
|
|
82
83
|
misspelled field — or `aliases`, which was removed outright — is rejected
|
|
83
84
|
rather than stripped and left reading as though it took effect.
|
|
85
|
+
- **A hook that is not a function, or an unknown key under `hooks`.** A
|
|
86
|
+
string or object where a function was meant is named by its hook, and
|
|
87
|
+
`hooks` is strict for the same reason the generator is: a misspelt hook name
|
|
88
|
+
would otherwise be stripped and the hook silently never run.
|
|
84
89
|
|
|
85
90
|
## Instances
|
|
86
91
|
|
|
@@ -248,6 +253,7 @@ asserting that these paths _are_ instances:
|
|
|
248
253
|
| `ConfigurationPathRequiredError` | Thrown by `ConfigurationService.requireConfigurationPath` for an absent or blank path, naming the flag or option the caller passed as the surface |
|
|
249
254
|
| `ConformetryConfiguration` | The loaded configuration type — author your config as this |
|
|
250
255
|
| `ConformetryInstanceGroup`, `ConformetryGeneratorDefinition` | Field-level types for the above |
|
|
256
|
+
| `GeneratorHook`, `GeneratorHookContext`, `GeneratorHooks` | The hook types, re-exported from `@conformetry/core` so a config file can type its hooks from this package |
|
|
251
257
|
|
|
252
258
|
**One service and one module, and no other collaborator** — the same pair
|
|
253
259
|
`@callidescope/configuration`, `@codependix/configuration` and
|
|
@@ -420,7 +426,7 @@ What this project is judged against, as declared in its own `callidescope.config
|
|
|
420
426
|
| `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` |
|
|
421
427
|
| `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` |
|
|
422
428
|
| `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` |
|
|
423
|
-
| `ConfigurationService.loadConformetryConfiguration` | 4 | `ConfigurationService.resolveConfigurationPath`, `UnknownConfigurationFileTypeError.constructor`, `ConfigurationService.loadConfigurationModule`, `ConfigurationService.map(…)` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:
|
|
429
|
+
| `ConfigurationService.loadConformetryConfiguration` | 4 | `ConfigurationService.resolveConfigurationPath`, `UnknownConfigurationFileTypeError.constructor`, `ConfigurationService.loadConfigurationModule`, `ConfigurationService.map(…)` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:237` |
|
|
424
430
|
| `assertNoCollisions` | 3 | `findDuplicates`, `findUnusableNames`, `findReservedNames` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.utilities.ts:28` |
|
|
425
431
|
| `findReservedNames` | 3 | `map(…)`, `filter(…)`, `map(…)` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.utilities.ts:97` |
|
|
426
432
|
| `findUnusableNames` | 3 | `map(…)`, `filter(…)`, `map(…)` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.utilities.ts:112` |
|
|
@@ -496,29 +502,29 @@ What this project is judged against, as declared in its own `callidescope.config
|
|
|
496
502
|
| `InstanceDiscoveryService.map(…)` | 1 | `InstanceDiscoveryService.weighInstance` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:295` |
|
|
497
503
|
| `ConfigurationService.applyGeneratorDefaults` | 1 | `ConfigurationService.applyHookDefaults` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:89` |
|
|
498
504
|
| `ConfigurationService.loadConfigurationModule` | 1 | `ConfigurationService.loadJsonConfiguration` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:157` |
|
|
499
|
-
| `ConfigurationService.
|
|
500
|
-
| `ConfigurationService.
|
|
501
|
-
| `ConfigurationService.
|
|
502
|
-
| `ConfigurationService.
|
|
503
|
-
| `ConfigurationService.
|
|
504
|
-
| `ConfigurationService.
|
|
505
|
-
| `ConfigurationService.
|
|
506
|
-
| `ConfigurationService.
|
|
507
|
-
| `ConfigurationService.
|
|
508
|
-
| `ConfigurationService.
|
|
509
|
-
| `ConfigurationService.
|
|
510
|
-
| `ConfigurationService.
|
|
511
|
-
| `ConfigurationService.
|
|
512
|
-
| `ConfigurationService.
|
|
513
|
-
| `ConfigurationService.
|
|
514
|
-
| `ConfigurationService.
|
|
515
|
-
| `ConfigurationService.
|
|
516
|
-
| `ConfigurationService.
|
|
517
|
-
| `ConfigurationService.
|
|
518
|
-
| `ConfigurationService.resolveGeneratorInputs` | 1 | `InputService.resolveGeneratorInputs` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:
|
|
519
|
-
| `ConfigurationService.resolveInstanceFiles` | 1 | `InstanceDiscoveryService.resolveInstanceFiles` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:
|
|
520
|
-
| `ConfigurationService.resolveInventoriedInstances` | 1 | `InstanceDiscoveryService.resolveInventoriedInstances` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:
|
|
521
|
-
| `ConfigurationService.resolveInventoriedTemplates` | 1 | `InstanceDiscoveryService.resolveInventoriedTemplates` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:
|
|
505
|
+
| `ConfigurationService.buildNameSubstitutions` | 1 | `RenderingService.buildNameSubstitutions` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:196` |
|
|
506
|
+
| `ConfigurationService.collectTemplate` | 1 | `TemplateDiscoveryService.collectTemplate` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:201` |
|
|
507
|
+
| `ConfigurationService.collectTemplates` | 1 | `TemplateDiscoveryService.collectTemplates` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:208` |
|
|
508
|
+
| `ConfigurationService.findInstances` | 1 | `InstanceDiscoveryService.findInstances` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:216` |
|
|
509
|
+
| `ConfigurationService.isAtTerminal` | 1 | `InputPromptingService.isAtTerminal` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:221` |
|
|
510
|
+
| `ConfigurationService.isProjectScoped` | 1 | `InstanceGroupService.isProjectScoped` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:226` |
|
|
511
|
+
| `ConfigurationService.map(…)` | 1 | `ConfigurationService.applyGeneratorDefaults` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:253` |
|
|
512
|
+
| `ConfigurationService.matchInstances` | 1 | `InstanceDiscoveryService.matchInstances` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:257` |
|
|
513
|
+
| `ConfigurationService.parseCommaDelimitedOption` | 1 | `InputService.parseCommaDelimitedOption` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:265` |
|
|
514
|
+
| `ConfigurationService.parseOptionalOption` | 1 | `InputService.parseOptionalOption` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:272` |
|
|
515
|
+
| `ConfigurationService.parseThresholdOption` | 1 | `InputService.parseThresholdOption` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:277` |
|
|
516
|
+
| `ConfigurationService.prepareDocuments` | 1 | `InstanceDiscoveryService.prepareDocuments` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:285` |
|
|
517
|
+
| `ConfigurationService.promptForTemplate` | 1 | `InputPromptingService.promptForTemplate` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:292` |
|
|
518
|
+
| `ConfigurationService.promptForTemplates` | 1 | `InputPromptingService.promptForTemplates` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:299` |
|
|
519
|
+
| `ConfigurationService.readWorkspaceGroups` | 1 | `InstanceDiscoveryService.readWorkspaceGroups` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:306` |
|
|
520
|
+
| `ConfigurationService.renderContent` | 1 | `RenderingService.renderContent` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:313` |
|
|
521
|
+
| `ConfigurationService.renderPath` | 1 | `RenderingService.renderPath` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:320` |
|
|
522
|
+
| `ConfigurationService.requireConfigurationPath` | 1 | `ConfigurationPathRequiredError.constructor` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:335` |
|
|
523
|
+
| `ConfigurationService.resolveConfigurationPath` | 1 | `ConfigurationService.findWorkspaceRoot` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:356` |
|
|
524
|
+
| `ConfigurationService.resolveGeneratorInputs` | 1 | `InputService.resolveGeneratorInputs` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:382` |
|
|
525
|
+
| `ConfigurationService.resolveInstanceFiles` | 1 | `InstanceDiscoveryService.resolveInstanceFiles` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:389` |
|
|
526
|
+
| `ConfigurationService.resolveInventoriedInstances` | 1 | `InstanceDiscoveryService.resolveInventoriedInstances` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:394` |
|
|
527
|
+
| `ConfigurationService.resolveInventoriedTemplates` | 1 | `InstanceDiscoveryService.resolveInventoriedTemplates` | `projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:401` |
|
|
522
528
|
|
|
523
529
|
</details>
|
|
524
530
|
<!-- callidescope:end -->
|
|
@@ -759,8 +765,8 @@ graph LR
|
|
|
759
765
|
|
|
760
766
|
### Project
|
|
761
767
|
|
|
762
|
-

|
|
769
|
+

|
|
764
770
|

|
|
765
771
|

|
|
766
772
|
|
|
@@ -784,15 +790,15 @@ graph LR
|
|
|
784
790
|

|
|
785
791
|

|
|
786
792
|

|
|
787
|
-

|
|
788
794
|

|
|
789
|
-

|
|
796
|
+

|
|
797
|
+

|
|
798
|
+

|
|
793
799
|

|
|
794
800
|

|
|
795
|
-

|
|
796
802
|

|
|
797
803
|
|
|
798
804
|
### Python
|
|
@@ -948,23 +954,23 @@ graph LR
|
|
|
948
954
|
### Markdown
|
|
949
955
|
|
|
950
956
|

|
|
951
|
-

|
|
952
958
|

|
|
953
|
-

|
|
960
|
+

|
|
955
961
|

|
|
956
962
|

|
|
957
963
|

|
|
958
|
-

|
|
965
|
+

|
|
966
|
+

|
|
961
967
|

|
|
962
968
|

|
|
963
969
|

|
|
964
|
-

|
|
965
971
|

|
|
966
972
|

|
|
967
|
-

|
|
968
974
|

|
|
969
975
|

|
|
970
976
|
<!-- codometer:end -->
|
package/dist/src/index.d.ts
CHANGED
|
@@ -107,10 +107,6 @@ export declare class ConfigurationService {
|
|
|
107
107
|
private loadConfigurationModule;
|
|
108
108
|
/** Reads a JSON or JSONC config file. */
|
|
109
109
|
private loadJsonConfiguration;
|
|
110
|
-
/**
|
|
111
|
-
* Resolves a config path against the cwd, falling back to the workspace root.
|
|
112
|
-
*/
|
|
113
|
-
private resolveConfigurationPath;
|
|
114
110
|
/** Derives the case variants every template can reference from one name. */
|
|
115
111
|
buildNameSubstitutions(name: string): Substitutions;
|
|
116
112
|
/** Reads one template folder. */
|
|
@@ -170,6 +166,15 @@ export declare class ConfigurationService {
|
|
|
170
166
|
* Throws `ConfigurationPathRequiredError` for an absent or blank value.
|
|
171
167
|
*/
|
|
172
168
|
requireConfigurationPath(value: string | undefined, surface: string): string;
|
|
169
|
+
/**
|
|
170
|
+
* Resolves a config path to the absolute file `loadConformetryConfiguration`
|
|
171
|
+
* reads: against the cwd first, then the workspace root.
|
|
172
|
+
*
|
|
173
|
+
* Public because the directory a hook builds its paths from is that file's
|
|
174
|
+
* parent, and only this resolution knows which file was read. A host that
|
|
175
|
+
* worked it out from the flag alone would miss the workspace-root fallback.
|
|
176
|
+
*/
|
|
177
|
+
resolveConfigurationPath(configurationPath: string): Promise<string>;
|
|
173
178
|
/** Resolves generator inputs from raw command-line arguments. */
|
|
174
179
|
resolveGeneratorInputs(args: ResolveGeneratorInputsArguments): Promise<Record<string, string>>;
|
|
175
180
|
/** Lists every file a matched instance's template requires it to have. */
|
package/dist/src/index.js
CHANGED
|
@@ -940,14 +940,6 @@ var V = class ConfigurationService {
|
|
|
940
940
|
let t = await d(e.configurationPath, "utf8");
|
|
941
941
|
return e.extension === ".jsonc" ? m(t) : JSON.parse(t);
|
|
942
942
|
}
|
|
943
|
-
async resolveConfigurationPath(e) {
|
|
944
|
-
let n = t.resolve(e);
|
|
945
|
-
if (c(n)) return n;
|
|
946
|
-
let r = await this.findWorkspaceRoot();
|
|
947
|
-
if (r === void 0) return n;
|
|
948
|
-
let i = t.resolve(r, e);
|
|
949
|
-
return c(i) ? i : n;
|
|
950
|
-
}
|
|
951
943
|
buildNameSubstitutions(e) {
|
|
952
944
|
return this.renderingService.buildNameSubstitutions(e);
|
|
953
945
|
}
|
|
@@ -1010,6 +1002,14 @@ var V = class ConfigurationService {
|
|
|
1010
1002
|
if (n === void 0 || n === "") throw new ConfigurationPathRequiredError(t);
|
|
1011
1003
|
return n;
|
|
1012
1004
|
}
|
|
1005
|
+
async resolveConfigurationPath(e) {
|
|
1006
|
+
let n = t.resolve(e);
|
|
1007
|
+
if (c(n)) return n;
|
|
1008
|
+
let r = await this.findWorkspaceRoot();
|
|
1009
|
+
if (r === void 0) return n;
|
|
1010
|
+
let i = t.resolve(r, e);
|
|
1011
|
+
return c(i) ? i : n;
|
|
1012
|
+
}
|
|
1013
1013
|
async resolveGeneratorInputs(e) {
|
|
1014
1014
|
return this.inputService.resolveGeneratorInputs(e);
|
|
1015
1015
|
}
|
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.
|
|
7
|
+
"@conformetry/core": "0.0.39",
|
|
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.
|
|
70
|
+
"version": "0.0.40"
|
|
71
71
|
}
|