@conformetry/nx 0.0.14 → 0.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,25 @@
1
+ ## 0.0.16 (2026-10-13)
2
+
3
+ ### 🧱 Updated Dependencies
4
+
5
+ - Updated conformetry-configuration to 0.0.17
6
+ - Updated conformetry-generation to 0.0.17
7
+ - Updated conformetry-validation to 0.0.16
8
+ - Updated conformetry-output to 0.0.16
9
+
10
+ ## 0.0.15 (2026-10-13)
11
+
12
+ ### 🩹 Fixes
13
+
14
+ - **caelundas,conformetry:** 🐛 require an explicit directory instead of defaulting the destination ([#1395](https://github.com/organizzolini/codebase/pull/1395))
15
+
16
+ ### 🧱 Updated Dependencies
17
+
18
+ - Updated conformetry-configuration to 0.0.16
19
+ - Updated conformetry-generation to 0.0.16
20
+ - Updated conformetry-validation to 0.0.15
21
+ - Updated conformetry-output to 0.0.15
22
+
1
23
  ## 0.0.14 (2026-10-12)
2
24
 
3
25
  ### 🧱 Updated Dependencies
package/README.md CHANGED
@@ -150,7 +150,7 @@ Call stacks traced through `packages/ic-suite/conformetry/conformetry-nx`, deepe
150
150
  | --- | --- |
151
151
  | Callables | 114 |
152
152
  | Files | 47 |
153
- | Calls traced | 137 |
153
+ | Calls traced | 138 |
154
154
  | Call stacks | 8 |
155
155
  | Deepest stack | 15 |
156
156
  | Stacks through recursion | 0 |
@@ -351,14 +351,14 @@ What this project is judged against, as declared in its own `callidescope.config
351
351
  | `GeneratorService.emitPlugin` | 6 | `ConfigurationService.loadConformetryConfiguration`, `GeneratorService.toSorted(…)`, `GeneratorService.buildGeneratorsManifest`, `GeneratorService.map(…)`, `GeneratorService.map(…)`, `GeneratorService.stringify` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/generator/generator.service.ts:212` |
352
352
  | `InstancesService.findProjectInstances` | 6 | `ConfigurationService.loadConformetryConfiguration`, `InstancesService.filter(…)`, `InstancesService.flatMap(…)`, `InstancesService.flatMap(…)`, `InstancesService.flatMap(…)`, `InstancesService.filter(…)` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/instances/instances.service.ts:68` |
353
353
  | `PluginService.runValidation` | 6 | `PluginService.resolveOptions`, `PluginService.assertPluginInSync`, `ValidationService.validate`, `InstancesService.findProjectInstances`, `PluginService.resolveTemplates`, `ReportingService.formatReport` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/plugin/plugin.service.ts:391` |
354
- | `PathsService.resolveGenerationPath` | 5 | `PathsService.resolveNewProjectPath`, `InstancesService.findProjectInstances`, `PathsService.requireModulePath`, `PathsService.resolveScopedDirectory`, `PathsService.resolveModuleParentPath` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/paths/paths.service.ts:213` |
354
+ | `PathsService.resolveGenerationPath` | 5 | `PathsService.resolveNewProjectPath`, `InstancesService.findProjectInstances`, `PathsService.requireModulePath`, `PathsService.resolveScopedDirectory`, `PathsService.resolveModuleParentPath` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/paths/paths.service.ts:221` |
355
355
  | `PluginService.inferTargets` | 5 | `PluginService.resolveOptions`, `PluginService.resolveTemplateInputs`, `PluginService.filter(…)`, `ProjectsService.readProjectScope`, `InstancesService.findProjectInstances` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/plugin/plugin.service.ts:265` |
356
356
  | `ScopeService.resolveScopedProjectNames` | 4 | `ScopeService.filter(…)`, `ScopeService.toSorted(…)`, `ScopeService.map(…)`, `ScopeService.filter(…)` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/scope/scope.service.ts:135` |
357
357
  | `ProjectsService.listWorkspaceProjects` | 4 | `ProjectsService.toSorted(…)`, `ProjectsService.map(…)`, `ProjectsService.listProjectConfigurationFiles`, `ProjectsService.readIgnoredPaths` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/projects/projects.service.ts:118` |
358
358
  | `anonymous` | 4 | `resolvePluginService`, `PluginService.inferTargets`, `filter(…)`, `map(…)` | `packages/ic-suite/conformetry/conformetry-nx/src/index.ts:49` |
359
359
  | `ScopeService.resolveGroup` | 3 | `ScopeService.matchesProject`, `ScopeService.isProjectGroup`, `ScopeService.map(…)` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/scope/scope.service.ts:75` |
360
360
  | `AdapterService.listDirectory` | 3 | `AdapterService.resolveTreePath`, `AdapterService.map(…)`, `AdapterService.map(…)` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/adapter/adapter.service.ts:42` |
361
- | `PathsService.resolveScopedDirectory` | 3 | `ConfigurationService.loadConformetryConfiguration`, `PathsService.find(…)`, `ScopeService.resolveScopedDirectory` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/paths/paths.service.ts:160` |
361
+ | `PathsService.resolveScopedDirectory` | 3 | `ConfigurationService.loadConformetryConfiguration`, `PathsService.find(…)`, `ScopeService.resolveScopedDirectory` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/paths/paths.service.ts:167` |
362
362
  | `PluginService.resolveOptions` | 3 | `OptionsService.resolveConfigurationPath`, `PluginService.readNxConfiguration`, `OptionsService.resolvePluginOptions` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/plugin/plugin.service.ts:189` |
363
363
  | `PluginService.resolveTemplateInputs` | 3 | `ConfigurationService.loadConformetryConfiguration`, `PluginService.map(…)`, `PluginService.map(…)` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/plugin/plugin.service.ts:219` |
364
364
  | `ScopeService.matchesProject` | 2 | `ScopeService.isProjectGroup`, `ScopeService.every(…)` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/scope/scope.service.ts:53` |
@@ -367,6 +367,7 @@ What this project is judged against, as declared in its own `callidescope.config
367
367
  | `GeneratorService.map(…)` | 2 | `GeneratorService.buildSchema`, `GeneratorService.resolveScopedProjectNames` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/generator/generator.service.ts:238` |
368
368
  | `OptionsService.readRegisteredConfigurationPath` | 2 | `OptionsService.isUnknownArray`, `OptionsService.readString` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/options/options.service.ts:38` |
369
369
  | `OptionsService.resolveConfigurationPath` | 2 | `OptionsService.readRegisteredConfigurationPath`, `OptionsService.find(…)` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/options/options.service.ts:98` |
370
+ | `PathsService.resolveNewProjectPath` | 2 | `missingDirectoryError`, `PathsService.resolveTypeDirectoryPath` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/paths/paths.service.ts:140` |
370
371
  | `ProjectsService.readIgnoredPaths` | 2 | `ProjectsService.filter(…)`, `ProjectsService.map(…)` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/projects/projects.service.ts:97` |
371
372
  | `ProjectsService.readProjectScope` | 2 | `ProjectsService.isUnknownArray`, `ProjectsService.filter(…)` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/projects/projects.service.ts:134` |
372
373
  | `PluginService.assertEmittedPluginCurrent` | 2 | `GeneratorService.emitPlugin`, `ProjectsService.listWorkspaceProjects` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/plugin/plugin.service.ts:84` |
@@ -390,10 +391,9 @@ What this project is judged against, as declared in its own `callidescope.config
390
391
  | `InstancesService.flatMap(…)` | 1 | `ConfigurationService.findInstances` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/instances/instances.service.ts:84` |
391
392
  | `InstancesService.filter(…)` | 1 | `InstancesService.isInsideProject` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/instances/instances.service.ts:97` |
392
393
  | `OptionsService.resolvePluginOptions` | 1 | `OptionsService.readString` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/options/options.service.ts:147` |
393
- | `PathsService.requireModulePath` | 1 | `PathsService.resolveModulePath` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/paths/paths.service.ts:54` |
394
- | `PathsService.resolveModuleParentPath` | 1 | `PathsService.toSorted(…)` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/paths/paths.service.ts:83` |
395
- | `PathsService.resolveModulePath` | 1 | `PathsService.find(…)` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/paths/paths.service.ts:119` |
396
- | `PathsService.resolveNewProjectPath` | 1 | `PathsService.resolveTypeDirectoryPath` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/paths/paths.service.ts:137` |
394
+ | `PathsService.requireModulePath` | 1 | `PathsService.resolveModulePath` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/paths/paths.service.ts:57` |
395
+ | `PathsService.resolveModuleParentPath` | 1 | `PathsService.toSorted(…)` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/paths/paths.service.ts:86` |
396
+ | `PathsService.resolveModulePath` | 1 | `PathsService.find(…)` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/paths/paths.service.ts:118` |
397
397
  | `ProjectsService.map(…)` | 1 | `ProjectsService.readProjectScope` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/projects/projects.service.ts:124` |
398
398
  | `PluginService.assertTemplatesExist` | 1 | `ConfigurationService.loadConformetryConfiguration` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/plugin/plugin.service.ts:134` |
399
399
  | `PluginService.map(…)` | 1 | `ConfigurationService.collectTemplate` | `packages/ic-suite/conformetry/conformetry-nx/src/modules/plugin/plugin.service.ts:245` |
@@ -716,14 +716,14 @@ graph LR
716
716
 
717
717
  ### Project
718
718
 
719
- ![Lines of Code](https://img.shields.io/badge/Lines_of_Code-5923-22c55e?style=flat-square)
720
- ![Repository Size](https://img.shields.io/badge/Repository_Size-209.10_kB-6b7280?style=flat-square)
719
+ ![Lines of Code](https://img.shields.io/badge/Lines_of_Code-5960-22c55e?style=flat-square)
720
+ ![Repository Size](https://img.shields.io/badge/Repository_Size-211.11_kB-6b7280?style=flat-square)
721
721
  ![Folders](https://img.shields.io/badge/Folders-15-4a4a4a?style=flat-square)
722
722
  ![Source Files](https://img.shields.io/badge/Source_Files-64-3178c6?style=flat-square)
723
723
 
724
724
  ### Measured Targets
725
725
 
726
- ![Compiled JavaScript Size](https://img.shields.io/badge/Compiled_JavaScript_Size-10.80_kB_gzip-6b7280?style=flat-square)
726
+ ![Compiled JavaScript Size](https://img.shields.io/badge/Compiled_JavaScript_Size-10.82_kB_gzip-6b7280?style=flat-square)
727
727
 
728
728
  ### TypeScript
729
729
 
@@ -741,10 +741,10 @@ graph LR
741
741
  ![Test Files](https://img.shields.io/badge/Test_Files-14-10b981?style=flat-square)
742
742
  ![External Packages](https://img.shields.io/badge/External_Packages-18-8b5cf6?style=flat-square)
743
743
  ![Classes](https://img.shields.io/badge/Classes-17-7c3aed?style=flat-square)
744
- ![Functions](https://img.shields.io/badge/Functions-262-16a34a?style=flat-square)
744
+ ![Functions](https://img.shields.io/badge/Functions-264-16a34a?style=flat-square)
745
745
  ![Methods](https://img.shields.io/badge/Methods-86-15803d?style=flat-square)
746
746
  ![Sync Functions](https://img.shields.io/badge/Sync_Functions-210-4ade80?style=flat-square)
747
- ![Async Functions](https://img.shields.io/badge/Async_Functions-138-059669?style=flat-square)
747
+ ![Async Functions](https://img.shields.io/badge/Async_Functions-140-059669?style=flat-square)
748
748
  ![Constants](https://img.shields.io/badge/Constants-265-dc2626?style=flat-square)
749
749
  ![Imports](https://img.shields.io/badge/Imports-262-0284c7?style=flat-square)
750
750
  ![Exported Symbols](https://img.shields.io/badge/Exported_Symbols-76-ea580c?style=flat-square)
@@ -905,20 +905,20 @@ graph LR
905
905
  ### Markdown
906
906
 
907
907
  ![Markdown Files](https://img.shields.io/badge/Markdown_Files-2-083fa1?style=flat-square)
908
- ![Markdown Lines](https://img.shields.io/badge/Markdown_Lines-320-1f6feb?style=flat-square)
908
+ ![Markdown Lines](https://img.shields.io/badge/Markdown_Lines-342-1f6feb?style=flat-square)
909
909
  ![H1](https://img.shields.io/badge/H1-1-7c3aed?style=flat-square)
910
- ![H2](https://img.shields.io/badge/H2-17-8b5cf6?style=flat-square)
911
- ![H3](https://img.shields.io/badge/H3-24-a78bfa?style=flat-square)
910
+ ![H2](https://img.shields.io/badge/H2-19-8b5cf6?style=flat-square)
911
+ ![H3](https://img.shields.io/badge/H3-27-a78bfa?style=flat-square)
912
912
  ![H4](https://img.shields.io/badge/H4-0-c4b5fd?style=flat-square)
913
913
  ![H5](https://img.shields.io/badge/H5-0-ddd6fe?style=flat-square)
914
914
  ![H6](https://img.shields.io/badge/H6-0-ede9fe?style=flat-square)
915
- ![Paragraphs](https://img.shields.io/badge/Paragraphs-88-64748b?style=flat-square)
916
- ![Lists](https://img.shields.io/badge/Lists-18-16a34a?style=flat-square)
917
- ![List Items](https://img.shields.io/badge/List_Items-68-22c55e?style=flat-square)
915
+ ![Paragraphs](https://img.shields.io/badge/Paragraphs-97-64748b?style=flat-square)
916
+ ![Lists](https://img.shields.io/badge/Lists-21-16a34a?style=flat-square)
917
+ ![List Items](https://img.shields.io/badge/List_Items-77-22c55e?style=flat-square)
918
918
  ![Task List Items](https://img.shields.io/badge/Task_List_Items-0-4ade80?style=flat-square)
919
919
  ![Tables](https://img.shields.io/badge/Tables-2-0284c7?style=flat-square)
920
920
  ![Table Rows](https://img.shields.io/badge/Table_Rows-10-0ea5e9?style=flat-square)
921
- ![Links](https://img.shields.io/badge/Links-12-059669?style=flat-square)
921
+ ![Links](https://img.shields.io/badge/Links-13-059669?style=flat-square)
922
922
  ![Images](https://img.shields.io/badge/Images-0-10b981?style=flat-square)
923
923
  ![Code Blocks](https://img.shields.io/badge/Code_Blocks-11-dc2626?style=flat-square)
924
924
  ![Inline Code](https://img.shields.io/badge/Inline_Code-73-ef4444?style=flat-square)
@@ -1,4 +1,4 @@
1
- import { _ as e, d as t, g as n, i as r, n as i, t as a } from "./plugin-context.utilities-CjWhPqvT.js";
1
+ import { _ as e, d as t, g as n, i as r, n as i, t as a } from "./plugin-context.utilities-CD8WxvsG.js";
2
2
  import { existsSync as o, lstatSync as s, mkdirSync as c, readFileSync as l, realpathSync as u, rmSync as d, symlinkSync as f, writeFileSync as p } from "node:fs";
3
3
  import m from "node:path";
4
4
  //#region packages/ic-suite/conformetry/conformetry-nx/src/modules/generator/bootstrap.utilities.ts
@@ -4,16 +4,16 @@ import { ConsoleLogger as t, Global as n, Injectable as r, Module as i, Scope as
4
4
  import o, { existsSync as s, mkdirSync as c, readFileSync as l, readdirSync as u } from "node:fs";
5
5
  import d from "node:path";
6
6
  import f from "pino";
7
- import { ConfigurationModule as p, ConfigurationService as m } from "@conformetry/configuration";
7
+ import { ConfigurationModule as p, ConfigurationService as m, missingDirectoryError as ee } from "@conformetry/configuration";
8
8
  import { GenerationModule as h, GenerationService as g } from "@conformetry/generation";
9
9
  import { ReportingModule as _, ReportingService as v } from "@conformetry/output";
10
10
  import { ValidationModule as y, ValidationService as b } from "@conformetry/validation";
11
- import { formatFiles as ee, getProjects as te, readProjectConfiguration as ne } from "@nx/devkit";
11
+ import { formatFiles as te, getProjects as ne, readProjectConfiguration as x } from "@nx/devkit";
12
12
  //#region \0rolldown/runtime.js
13
- var re = Object.defineProperty, __name = (e, t) => re(e, "name", {
13
+ var S = Object.defineProperty, __name = (e, t) => S(e, "name", {
14
14
  value: t,
15
15
  configurable: !0
16
- }), ie = /^(\p{Extended_Pictographic}️?(?:‍\p{Extended_Pictographic}️?)*)\s+/u, x = /^([A-Za-z]+)/, ae = /* @__PURE__ */ new Set([
16
+ }), re = /^(\p{Extended_Pictographic}️?(?:‍\p{Extended_Pictographic}️?)*)\s+/u, ie = /^([A-Za-z]+)/, ae = /* @__PURE__ */ new Set([
17
17
  "built",
18
18
  "cut",
19
19
  "found",
@@ -31,7 +31,7 @@ var re = Object.defineProperty, __name = (e, t) => re(e, "name", {
31
31
  "split",
32
32
  "took",
33
33
  "wrote"
34
- ]), S = /* @__PURE__ */ new Set([
34
+ ]), oe = /* @__PURE__ */ new Set([
35
35
  "CommandFactory",
36
36
  "ExceptionHandler",
37
37
  "GraphQLModule",
@@ -43,12 +43,12 @@ var re = Object.defineProperty, __name = (e, t) => re(e, "name", {
43
43
  "TypeOrmModule"
44
44
  ]);
45
45
  //#endregion
46
- //#region \0@oxc-project+runtime@0.151.0/helpers/esm/decorateMetadata.js
46
+ //#region \0@oxc-project+runtime@0.153.0/helpers/esm/decorateMetadata.js
47
47
  function __decorateMetadata(e, t) {
48
48
  if (typeof Reflect == "object" && typeof Reflect.metadata == "function") return Reflect.metadata(e, t);
49
49
  }
50
50
  //#endregion
51
- //#region \0@oxc-project+runtime@0.151.0/helpers/esm/decorate.js
51
+ //#region \0@oxc-project+runtime@0.153.0/helpers/esm/decorate.js
52
52
  function __decorate(e, t, n, r) {
53
53
  var i = arguments.length, a = i < 3 ? t : r === null ? r = Object.getOwnPropertyDescriptor(t, n) : r, o;
54
54
  if (typeof Reflect == "object" && typeof Reflect.decorate == "function") a = Reflect.decorate(e, t, n, r);
@@ -85,11 +85,7 @@ var C, w = class LoggerService extends t {
85
85
  });
86
86
  }
87
87
  static logToStandardError() {
88
- if (C.rootLogger !== void 0) {
89
- process.emitWarning("LoggerService.logToStandardError() was called after the first log line, so log lines still go to standard output and anything piping that stream will read them as data. Call it as the first statement of the application's bootstrap.");
90
- return;
91
- }
92
- C.writesToStandardError = !0;
88
+ C.rootLogger === void 0 ? C.writesToStandardError = !0 : process.emitWarning("LoggerService.logToStandardError() was called after the first log line, so log lines still go to standard output and anything piping that stream will read them as data. Call it as the first statement of the application's bootstrap.");
93
89
  }
94
90
  assertConventionalMessage(e) {
95
91
  if (C.isProduction || this.shouldSkipConventionalMessageValidation(e.context)) return;
@@ -109,7 +105,7 @@ var C, w = class LoggerService extends t {
109
105
  getConventionalMessageViolation(e) {
110
106
  let t = e.emoji, n = e.text;
111
107
  if (t === void 0) return `Log message must start with an emoji naming its subject, then a verb: "${n}"`;
112
- let r = x.exec(n)?.[1];
108
+ let r = ie.exec(n)?.[1];
113
109
  if (r === void 0 || !this.isConventionalVerb(r)) return `Log message must begin with a verb in present progressive or past tense, got "${r ?? ""}": "${t} ${n}"`;
114
110
  }
115
111
  isConventionalVerb(e) {
@@ -117,7 +113,7 @@ var C, w = class LoggerService extends t {
117
113
  return t.endsWith("ing") || t.endsWith("ed") || ae.has(t);
118
114
  }
119
115
  parseMessage(e) {
120
- let t = String(e), n = ie.exec(t), r = n?.[1];
116
+ let t = String(e), n = re.exec(t), r = n?.[1];
121
117
  return r === void 0 ? {
122
118
  emoji: void 0,
123
119
  text: t
@@ -127,7 +123,7 @@ var C, w = class LoggerService extends t {
127
123
  };
128
124
  }
129
125
  shouldSkipConventionalMessageValidation(e) {
130
- return e !== void 0 && S.has(e);
126
+ return e !== void 0 && oe.has(e);
131
127
  }
132
128
  static get root() {
133
129
  return C.rootLogger ??= C.createRootLogger(), C.rootLogger;
@@ -249,7 +245,7 @@ D = __decorate([i({
249
245
  })], D);
250
246
  //#endregion
251
247
  //#region packages/ic-suite/conformetry/conformetry-nx/src/modules/paths/paths.constants.ts
252
- var O = "project", oe = "module", se = "type", ce = "directory", k = ".conformetry/nx-generators", le = "// Generated from the conformetry configuration. Do not edit.", ue = "The conformetry generator plugin is out of sync with the conformetry configuration.", A = "conformetry", j = "node_modules/@nx/devkit/src/generators/generators-schema.json", M = class GeneratorService {
248
+ var O = "project", k = "module", se = "type", A = "directory", j = ".conformetry/nx-generators", ce = "// Generated from the conformetry configuration. Do not edit.", le = "The conformetry generator plugin is out of sync with the conformetry configuration.", M = "conformetry", ue = "node_modules/@nx/devkit/src/generators/generators-schema.json", N = class GeneratorService {
253
249
  configurationService;
254
250
  scopeService;
255
251
  constructor(e, t) {
@@ -257,7 +253,7 @@ var O = "project", oe = "module", se = "type", ce = "directory", k = ".conformet
257
253
  }
258
254
  buildGeneratorModule(e) {
259
255
  return [
260
- le,
256
+ ce,
261
257
  "",
262
258
  "import { runConformetryGenerator } from \"@conformetry/nx\";",
263
259
  "",
@@ -287,7 +283,7 @@ var O = "project", oe = "module", se = "type", ce = "directory", k = ".conformet
287
283
  schema: `./src/schemas/${n.name}.json`
288
284
  };
289
285
  return this.stringify({
290
- $schema: d.relative(e.outputPath, j).split(d.sep).join("/"),
286
+ $schema: d.relative(e.outputPath, ue).split(d.sep).join("/"),
291
287
  generators: t
292
288
  });
293
289
  }
@@ -369,23 +365,23 @@ var O = "project", oe = "module", se = "type", ce = "directory", k = ".conformet
369
365
  ];
370
366
  }
371
367
  };
372
- M = __decorate([r(), __decorateMetadata("design:paramtypes", [m === void 0 ? Object : m, E === void 0 ? Object : E])], M);
368
+ N = __decorate([r(), __decorateMetadata("design:paramtypes", [m === void 0 ? Object : m, E === void 0 ? Object : E])], N);
373
369
  //#endregion
374
370
  //#region packages/ic-suite/conformetry/conformetry-nx/src/modules/generator/generator.module.ts
375
- var N = class GeneratorModule {};
376
- N = __decorate([i({
371
+ var P = class GeneratorModule {};
372
+ P = __decorate([i({
377
373
  controllers: [],
378
374
  exports: [
379
375
  p,
380
- M,
376
+ N,
381
377
  D
382
378
  ],
383
379
  imports: [p, D],
384
- providers: [M]
385
- })], N);
380
+ providers: [N]
381
+ })], P);
386
382
  //#endregion
387
383
  //#region packages/ic-suite/conformetry/conformetry-nx/src/modules/adapter/adapter.constants.ts
388
- var P = "utf8", F = class AdapterService {
384
+ var de = "utf8", F = class AdapterService {
389
385
  constructor() {}
390
386
  async listDirectory(e) {
391
387
  let t = this.resolveTreePath(e);
@@ -401,7 +397,7 @@ var P = "utf8", F = class AdapterService {
401
397
  let t = this.resolveTreePath({
402
398
  directoryPath: e.filePath,
403
399
  workspaceRoot: e.workspaceRoot
404
- }), n = t === void 0 ? null : e.tree.read(t, P);
400
+ }), n = t === void 0 ? null : e.tree.read(t, de);
405
401
  return await Promise.resolve(n ?? o.readFileSync(e.filePath, "utf8"));
406
402
  }
407
403
  resolveTreePath(e) {
@@ -433,7 +429,7 @@ var P = "utf8", F = class AdapterService {
433
429
  }
434
430
  },
435
431
  formatter: { formatFiles: async () => {
436
- await ee(e.tree);
432
+ await te(e.tree);
437
433
  } }
438
434
  };
439
435
  }
@@ -513,7 +509,7 @@ var z = "@conformetry/nx", B = [
513
509
  "conformetryrc.ts",
514
510
  "conformetryrc.js",
515
511
  "conformetryrc.json"
516
- ], V = "nx.json", H = "conformetry-validate", de = ["configurationPath", "validateTargetName"], U = class OptionsService {
512
+ ], V = "nx.json", fe = "conformetry-validate", pe = ["configurationPath", "validateTargetName"], H = class OptionsService {
517
513
  constructor() {}
518
514
  isUnknownArray(e) {
519
515
  return Array.isArray(e);
@@ -540,13 +536,13 @@ var z = "@conformetry/nx", B = [
540
536
  resolveGeneratorInputs(e) {
541
537
  if (typeof e != "object" || !e) return {};
542
538
  let t = {};
543
- for (let [n, r] of Object.entries({ ...e })) de.includes(n) || typeof r != "string" || (t[n] = r);
539
+ for (let [n, r] of Object.entries({ ...e })) pe.includes(n) || typeof r != "string" || (t[n] = r);
544
540
  return t;
545
541
  }
546
542
  resolvePluginOptions(e) {
547
543
  if (typeof e != "object" || !e) return {
548
544
  configurationPath: B[0],
549
- validateTargetName: H
545
+ validateTargetName: fe
550
546
  };
551
547
  let t = { ...e };
552
548
  return {
@@ -561,19 +557,19 @@ var z = "@conformetry/nx", B = [
561
557
  };
562
558
  }
563
559
  };
564
- U = __decorate([r(), __decorateMetadata("design:paramtypes", [])], U);
560
+ H = __decorate([r(), __decorateMetadata("design:paramtypes", [])], H);
565
561
  //#endregion
566
562
  //#region packages/ic-suite/conformetry/conformetry-nx/src/modules/options/options.module.ts
567
- var W = class OptionsModule {};
568
- W = __decorate([i({
563
+ var U = class OptionsModule {};
564
+ U = __decorate([i({
569
565
  controllers: [],
570
- exports: [U],
566
+ exports: [H],
571
567
  imports: [],
572
- providers: [U]
573
- })], W);
568
+ providers: [H]
569
+ })], U);
574
570
  //#endregion
575
571
  //#region packages/ic-suite/conformetry/conformetry-nx/src/modules/paths/paths.service.ts
576
- var G = class PathsService {
572
+ var W = class PathsService {
577
573
  instancesService;
578
574
  configurationService;
579
575
  scopeService;
@@ -590,19 +586,22 @@ var G = class PathsService {
590
586
  }
591
587
  resolveModuleParentPath(e) {
592
588
  let t = /* @__PURE__ */ new Map();
593
- console.log("instances", e.instances);
594
589
  for (let n of e.instances) {
595
590
  let r = n.path;
596
591
  r.startsWith(e.projectRootPath + d.sep) && t.set(r, (t.get(r) ?? 0) + 1);
597
592
  }
598
- return console.log("countsByParent", [...t.entries()]), [...t.entries()].toSorted(([e, t], [n, r]) => r - t || e.localeCompare(n))[0]?.[0];
593
+ return [...t.entries()].toSorted(([e, t], [n, r]) => r - t || e.localeCompare(n))[0]?.[0];
599
594
  }
600
595
  resolveModulePath(e) {
601
596
  let t = e.instances.find((t) => t.nameStem === e.moduleName);
602
597
  return t === void 0 ? void 0 : d.join(t.path, t.nameStem);
603
598
  }
604
599
  resolveNewProjectPath(e) {
605
- return e.type === void 0 ? e.workspaceRoot : d.resolve(e.workspaceRoot, this.resolveTypeDirectoryPath({
600
+ if (e.type === void 0) throw ee({
601
+ generatorName: e.generatorName,
602
+ hint: "Or declare a type input on the generator, so the project is placed beside the others of its type."
603
+ });
604
+ return d.resolve(e.workspaceRoot, this.resolveTypeDirectoryPath({
606
605
  tree: e.tree,
607
606
  type: e.type
608
607
  }) ?? e.type);
@@ -613,21 +612,22 @@ var G = class PathsService {
613
612
  return t === void 0 ? void 0 : this.scopeService.resolveScopedDirectory(t.instances);
614
613
  }
615
614
  resolveTypeDirectoryPath(e) {
616
- for (let [, t] of te(e.tree)) {
615
+ for (let [, t] of ne(e.tree)) {
617
616
  let [n] = t.root.split("/");
618
617
  if (n === e.type) return n;
619
618
  }
620
619
  }
621
620
  async resolveGenerationPath(e) {
622
- let t = e.inputs[ce];
621
+ let t = e.inputs[A];
623
622
  if (t !== void 0) return d.resolve(e.workspaceRoot, t);
624
623
  let n = e.inputs[O];
625
624
  if (n === void 0) return this.resolveNewProjectPath({
625
+ generatorName: e.generatorName,
626
626
  tree: e.tree,
627
627
  type: e.inputs[se],
628
628
  workspaceRoot: e.workspaceRoot
629
629
  });
630
- let r = ne(e.tree, n), i = d.resolve(e.workspaceRoot, r.root), a = await this.instancesService.findProjectInstances({
630
+ let r = x(e.tree, n), i = d.resolve(e.workspaceRoot, r.root), a = await this.instancesService.findProjectInstances({
631
631
  configurationPath: e.configurationPath,
632
632
  project: {
633
633
  name: n,
@@ -635,7 +635,7 @@ var G = class PathsService {
635
635
  tags: r.tags ?? []
636
636
  },
637
637
  workspaceRoot: e.workspaceRoot
638
- }), o = e.inputs[oe];
638
+ }), o = e.inputs[k];
639
639
  if (o !== void 0) return this.requireModulePath({
640
640
  instances: a,
641
641
  moduleName: o,
@@ -651,20 +651,20 @@ var G = class PathsService {
651
651
  }) ?? i : d.join(i, s);
652
652
  }
653
653
  };
654
- G = __decorate([r(), __decorateMetadata("design:paramtypes", [
654
+ W = __decorate([r(), __decorateMetadata("design:paramtypes", [
655
655
  L === void 0 ? Object : L,
656
656
  m === void 0 ? Object : m,
657
657
  E === void 0 ? Object : E
658
- ])], G);
658
+ ])], W);
659
659
  //#endregion
660
660
  //#region packages/ic-suite/conformetry/conformetry-nx/src/modules/paths/paths.module.ts
661
- var K = class PathsModule {};
662
- K = __decorate([i({
661
+ var G = class PathsModule {};
662
+ G = __decorate([i({
663
663
  controllers: [],
664
664
  exports: [
665
665
  R,
666
666
  p,
667
- G,
667
+ W,
668
668
  D
669
669
  ],
670
670
  imports: [
@@ -672,9 +672,9 @@ K = __decorate([i({
672
672
  p,
673
673
  D
674
674
  ],
675
- providers: [G]
676
- })], K);
677
- var fe = ".nxignore", q = class ProjectsService {
675
+ providers: [W]
676
+ })], G);
677
+ var me = ".nxignore", K = class ProjectsService {
678
678
  constructor() {}
679
679
  isUnknownArray(e) {
680
680
  return Array.isArray(e);
@@ -683,11 +683,7 @@ var fe = ".nxignore", q = class ProjectsService {
683
683
  let t = [];
684
684
  for (let n of u(e.directoryPath, { withFileTypes: !0 })) {
685
685
  let r = d.join(e.directoryPath, n.name), i = d.relative(e.workspaceRoot, r).split(d.sep).join("/");
686
- if (n.isFile() && n.name === "project.json") {
687
- t.push(i);
688
- continue;
689
- }
690
- n.isDirectory() && !n.name.startsWith(".") && n.name !== "node_modules" && !e.ignoredPaths.includes(i) && t.push(...this.listProjectConfigurationFiles({
686
+ n.isFile() && n.name === "project.json" ? t.push(i) : n.isDirectory() && !n.name.startsWith(".") && n.name !== "node_modules" && !e.ignoredPaths.includes(i) && t.push(...this.listProjectConfigurationFiles({
691
687
  directoryPath: r,
692
688
  ignoredPaths: e.ignoredPaths,
693
689
  workspaceRoot: e.workspaceRoot
@@ -696,7 +692,7 @@ var fe = ".nxignore", q = class ProjectsService {
696
692
  return t;
697
693
  }
698
694
  readIgnoredPaths(e) {
699
- let t = d.resolve(e, fe);
695
+ let t = d.resolve(e, me);
700
696
  return s(t) ? l(t, "utf8").split("\n").map((e) => e.trim()).filter((e) => e !== "" && !e.startsWith("#")) : [];
701
697
  }
702
698
  listWorkspaceProjects(e) {
@@ -718,19 +714,19 @@ var fe = ".nxignore", q = class ProjectsService {
718
714
  };
719
715
  }
720
716
  };
721
- q = __decorate([r(), __decorateMetadata("design:paramtypes", [])], q);
717
+ K = __decorate([r(), __decorateMetadata("design:paramtypes", [])], K);
722
718
  //#endregion
723
719
  //#region packages/ic-suite/conformetry/conformetry-nx/src/modules/projects/projects.module.ts
724
- var J = class ProjectsModule {};
725
- J = __decorate([i({
720
+ var q = class ProjectsModule {};
721
+ q = __decorate([i({
726
722
  controllers: [],
727
- exports: [q],
723
+ exports: [K],
728
724
  imports: [],
729
- providers: [q]
730
- })], J);
725
+ providers: [K]
726
+ })], q);
731
727
  //#endregion
732
728
  //#region packages/ic-suite/conformetry/conformetry-nx/src/modules/plugin/plugin.constants.ts
733
- var pe = "**/{project.json,conformetry.config.*}", me = "project.json", Y = "__conformetryPluginContext", X, Z = X = class PluginService {
729
+ var J = "**/{project.json,conformetry.config.*}", he = "project.json", Y = "__conformetryPluginContext", X, Z = X = class PluginService {
734
730
  adapterService;
735
731
  instancesService;
736
732
  configurationService;
@@ -748,8 +744,8 @@ var pe = "**/{project.json,conformetry.config.*}", me = "project.json", Y = "__c
748
744
  async assertEmittedPluginCurrent(e) {
749
745
  let t = await this.generatorService.emitPlugin({
750
746
  configurationPath: e.configurationPath,
751
- outputPath: k,
752
- packageName: A,
747
+ outputPath: j,
748
+ packageName: M,
753
749
  projects: this.projectsService.listWorkspaceProjects(e.workspaceRoot)
754
750
  });
755
751
  for (let n of t) {
@@ -800,7 +796,7 @@ var pe = "**/{project.json,conformetry.config.*}", me = "project.json", Y = "__c
800
796
  options: e.options,
801
797
  workspaceRoot: e.workspaceRoot
802
798
  }), n = await this.resolveTemplateInputs({ configurationPath: t.configurationPath }), r = /* @__PURE__ */ new Map();
803
- for (let i of e.projectConfigurationFiles.filter((e) => d.basename(e) === me)) {
799
+ for (let i of e.projectConfigurationFiles.filter((e) => d.basename(e) === he)) {
804
800
  let a = this.projectsService.readProjectScope({
805
801
  projectConfigurationFile: i,
806
802
  workspaceRoot: e.workspaceRoot
@@ -815,7 +811,7 @@ var pe = "**/{project.json,conformetry.config.*}", me = "project.json", Y = "__c
815
811
  inputs: [
816
812
  "default",
817
813
  `{workspaceRoot}/${t.configurationPath}`,
818
- `{workspaceRoot}/${k}/**/*`,
814
+ `{workspaceRoot}/${j}/**/*`,
819
815
  ...n
820
816
  ],
821
817
  options: {}
@@ -894,11 +890,11 @@ Z = X = __decorate([r(), __decorateMetadata("design:paramtypes", [
894
890
  F === void 0 ? Object : F,
895
891
  L === void 0 ? Object : L,
896
892
  m === void 0 ? Object : m,
897
- M === void 0 ? Object : M,
893
+ N === void 0 ? Object : N,
898
894
  g === void 0 ? Object : g,
899
- U === void 0 ? Object : U,
900
- G === void 0 ? Object : G,
901
- q === void 0 ? Object : q,
895
+ H === void 0 ? Object : H,
896
+ W === void 0 ? Object : W,
897
+ K === void 0 ? Object : K,
902
898
  v === void 0 ? Object : v,
903
899
  b === void 0 ? Object : b,
904
900
  w === void 0 ? Object : w
@@ -912,13 +908,13 @@ Q = __decorate([i({
912
908
  I,
913
909
  R,
914
910
  p,
915
- N,
911
+ P,
916
912
  h,
917
913
  T,
918
- W,
919
- K,
914
+ U,
915
+ G,
920
916
  Z,
921
- J,
917
+ q,
922
918
  _,
923
919
  D,
924
920
  y
@@ -927,12 +923,12 @@ Q = __decorate([i({
927
923
  I,
928
924
  R,
929
925
  p,
930
- N,
926
+ P,
931
927
  h,
932
928
  T,
933
- W,
934
- K,
935
- J,
929
+ U,
930
+ G,
931
+ q,
936
932
  _,
937
933
  D,
938
934
  y
@@ -944,9 +940,9 @@ Q = __decorate([i({
944
940
  var $ = class MainModule {};
945
941
  $ = __decorate([i({
946
942
  controllers: [],
947
- exports: [N, Q],
943
+ exports: [P, Q],
948
944
  imports: [
949
- N,
945
+ P,
950
946
  T,
951
947
  Q
952
948
  ],
@@ -955,16 +951,16 @@ $ = __decorate([i({
955
951
  //#endregion
956
952
  //#region packages/ic-suite/conformetry/conformetry-nx/src/modules/plugin/plugin-context.utilities.ts
957
953
  async function resolveGeneratorService() {
958
- return (await resolvePluginContext()).get(M);
954
+ return (await resolvePluginContext()).get(N);
959
955
  }
960
956
  async function resolveOptionsService() {
961
- return (await resolvePluginContext()).get(U);
957
+ return (await resolvePluginContext()).get(H);
962
958
  }
963
959
  async function resolvePluginService() {
964
960
  return (await resolvePluginContext()).get(Z);
965
961
  }
966
962
  async function resolveProjectsService() {
967
- return (await resolvePluginContext()).get(q);
963
+ return (await resolvePluginContext()).get(K);
968
964
  }
969
965
  async function resolvePluginContext() {
970
966
  let t = globalThis;
@@ -974,4 +970,4 @@ async function resolvePluginContext() {
974
970
  }), await t[Y];
975
971
  }
976
972
  //#endregion
977
- export { A as _, $ as a, E as b, pe as c, V as d, R as f, k as g, F as h, resolveProjectsService as i, W as l, I as m, resolveOptionsService as n, Q as o, L as p, resolvePluginService as r, Z as s, resolveGeneratorService as t, U as u, ue as v, __name as x, D as y };
973
+ export { M as _, $ as a, E as b, J as c, V as d, R as f, j as g, F as h, resolveProjectsService as i, U as l, I as m, resolveOptionsService as n, Q as o, L as p, resolvePluginService as r, Z as s, resolveGeneratorService as t, H as u, le as v, __name as x, D as y };
@@ -1,4 +1,4 @@
1
- import { r as e } from "../../../plugin-context.utilities-CjWhPqvT.js";
1
+ import { r as e } from "../../../plugin-context.utilities-CD8WxvsG.js";
2
2
  //#region packages/ic-suite/conformetry/conformetry-nx/src/executors/validate/executor.ts
3
3
  async function validateExecutor(t, n) {
4
4
  let r = n.projectName;
@@ -1,4 +1,4 @@
1
- import { d as e, i as t, n, t as r, v as i } from "../../../plugin-context.utilities-CjWhPqvT.js";
1
+ import { d as e, i as t, n, t as r, v as i } from "../../../plugin-context.utilities-CD8WxvsG.js";
2
2
  //#region packages/ic-suite/conformetry/conformetry-nx/src/generators/sync/generator.ts
3
3
  async function syncGenerator(e, a) {
4
4
  let o = await r(), s = await n(), c = await t(), l = await o.emitPlugin({
@@ -758,6 +758,10 @@ declare class PathsService {
758
758
  * Places a project that does not exist yet, which is why no project lookup
759
759
  * can answer this. An unrecognized type is used verbatim, so the first
760
760
  * project of a new type still lands somewhere sensible.
761
+ *
762
+ * Refuses when no type is given: falling back to the workspace root wrote a
763
+ * stray project folder there and reported success, which reads as the
764
+ * generator having worked.
761
765
  */
762
766
  private resolveNewProjectPath;
763
767
  /**
@@ -781,8 +785,9 @@ declare class PathsService {
781
785
  * Resolves the absolute directory a generator's template tree is laid over.
782
786
  *
783
787
  * This is the *parent* of anything the template creates, because a template
784
- * that produces a folder contains that folder. Falls back to the workspace
785
- * root when the inputs name nothing to locate.
788
+ * that produces a folder contains that folder. Throws for a new project
789
+ * whose inputs name neither a directory nor a type, rather than writing it
790
+ * at the workspace root.
786
791
  */
787
792
  resolveGenerationPath(args: ResolveGenerationPathArguments): Promise<string>;
788
793
  }
package/dist/src/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { a as e, b as t, c as n, f as r, h as i, l as a, m as o, o as s, p as c, r as l, s as u, u as d, y as f } from "../plugin-context.utilities-CjWhPqvT.js";
2
- import { n as p, t as m } from "../bootstrap.utilities-B2M9tLjN.js";
1
+ import { a as e, b as t, c as n, f as r, h as i, l as a, m as o, o as s, p as c, r as l, s as u, u as d, y as f } from "../plugin-context.utilities-CD8WxvsG.js";
2
+ import { n as p, t as m } from "../bootstrap.utilities-DgzSGazo.js";
3
3
  import h from "node:path";
4
4
  //#region packages/ic-suite/conformetry/conformetry-nx/src/index.ts
5
5
  var g = {
package/dist/src/main.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { n as e } from "../bootstrap.utilities-B2M9tLjN.js";
2
+ import { n as e } from "../bootstrap.utilities-DgzSGazo.js";
3
3
  //#region packages/ic-suite/conformetry/conformetry-nx/src/main.ts
4
4
  e(process.cwd());
5
5
  //#endregion
package/package.json CHANGED
@@ -7,10 +7,10 @@
7
7
  "url": "https://github.com/organizzolini/codebase/issues"
8
8
  },
9
9
  "dependencies": {
10
- "@conformetry/configuration": "0.0.15",
11
- "@conformetry/generation": "0.0.15",
12
- "@conformetry/output": "0.0.14",
13
- "@conformetry/validation": "0.0.14",
10
+ "@conformetry/configuration": "0.0.17",
11
+ "@conformetry/generation": "0.0.17",
12
+ "@conformetry/output": "0.0.16",
13
+ "@conformetry/validation": "0.0.16",
14
14
  "@nestjs/common": "^11.1.21 || ^12.0.1",
15
15
  "@nestjs/core": "^11.1.21 || ^12.0.1",
16
16
  "@nx/devkit": "^23.0.0",
@@ -82,5 +82,5 @@
82
82
  "strict": true
83
83
  },
84
84
  "types": "./dist/src/index.d.ts",
85
- "version": "0.0.14"
85
+ "version": "0.0.16"
86
86
  }