@conformetry/configuration
v0.0.35
Published
Configuration reader, schema validation, and template discovery for Conformetry
Maintainers
Readme
👔 Conformetry Configuration
The configuration reference for Conformetry.
@conformetry/configuration reads a repository's conformetry.config.*, checks
it, and turns it into the three things the rest of the toolchain works from:
the generator registry, the instances validation walks, and the
resolved inputs a generator renders with.
npm install --save-dev @conformetry/configurationMost consumers never install this directly — @conformetry/cli and
@conformetry/nx both depend on it. Install it when you are typing a
configuration file, or embedding conformetry in a host of your own.
The configuration file
The file's extension may be any of .ts, .mts, .cts, .js, .mjs, .cjs,
.json, or .jsonc. The path is always passed in explicitly — no filename is
searched for. TypeScript and
JavaScript files are loaded through jiti, so a
.ts config needs no build step and may import from your workspace.
The path is resolved against the current directory first, then against the
workspace root — located by walking upward for pnpm-workspace.yaml — so a
config path written relative to the root still resolves from a nested
directory.
The file default-exports an array of generator definitions. It is an array rather than a keyed record because a generator's name is already a field, and a record made the name true in two places at once.
import { type ConformetryConfiguration } from "@conformetry/configuration";
const conformetryConfiguration: ConformetryConfiguration = [
{
description: "Generate a NestJS service module",
inputs: {
name: { description: "Module name in kebab-case", type: "string" },
},
instances: [{ patterns: ["packages/*/src/modules/*"] }],
name: "nestjs-service-module",
templatePath: "templates/nestjs-service-module",
},
];
export default conformetryConfiguration;Generator fields
| Field | Required | Purpose |
| ----- | -------- | ------- |
| name | ✅ | How the generator is addressed, and the filename it is emitted under |
| templatePath | ✅ | The template folder, relative to the workspace root |
| inputs | | The values it substitutes, as JSON Schema fragments |
| instances | | Where this generator's output already lives |
| description | | Shown when a host lists or prompts for generators |
Both inputs and instances may be omitted. A generator with neither renders
a fixed template nobody validates, which is legal.
What is rejected
The schema fails loudly rather than validating nothing, and reports every problem in one pass:
- Two generators answering to the same name. A host resolves the first match, so a collision does not error where it is used — it silently shadows, and the losing generator becomes unreachable while still appearing in the configuration.
- Two generators sharing a
templatePath. Validation then finds instances that fit both equally and reports them as matching nothing. - A name containing a path separator. A generator is addressed by its name and emitted to a file named after it.
- A key the schema does not declare. The generator object is strict, so a
misspelled field — or
aliases, which was removed outright — is rejected rather than stripped and left reading as though it took effect.
Instances
instances is what makes validation possible. It says where a generator's
output already lives, so validation knows what to check without being told a
second time.
instances: [
{ patterns: ["packages/*/src/modules/*"] },
{
patterns: ["applications/*/src/modules/*"],
substitutions: { type: "applications" },
},
];| Field | Purpose |
| ----- | ------- |
| exclude | Workspace-relative globs naming paths that are never instances, applied with or without tags |
| patterns | Globs locating this group's instances, workspace-relative |
| substitutions | Values the template's placeholders are rendered with for this group |
| tags | Labels selecting which hosts the group applies to, carried uninterpreted |
| threshold | Lowest conformance score these instances may have, overriding the generator's |
Groups exist so substitutions can differ per glob. type is packages for one
set of paths and applications for another, and no generic rule can tell them
apart.
A placeholder these substitutions leave out is read from the instance. Validation renders a random stand-in for it, captures the text the instance holds where the template's first use of it aligns, renders the template again with that text, and compares as usual — so a later use holding different text is an ordinary difference. When nothing aligns, the instance fails with
Could not infer {{…}}.nameand its variants always come from the instance path, and a value supplied here always wins. Generation has no instance to read, so there a placeholder nobody supplied still raisesMissingSubstitutionError— see@conformetry/generationfor why, and for the section syntax a template uses to make a placeholder optional.
exclude drops any instance whose own path — the directory a pattern found, or
the files of a file instance — matches one of its globs, whether or not the
group has tags. It is how vendored or generated code living beside real
instances, such as shadcn's component output, is left out of validation:
exclude: ["projects/lexico/lexico-web/src/components/ui/**"].
tags is carried through untouched by this package, which has no notion of a
host to match labels against. @conformetry/nx
reads them as Nx project tags and resolves each group's globs inside every
matching project; another host is free to read them as something else. A group
naming only tags is legal — it selects without locating, which is what a
template with no instances yet wants.
Directory globs versus file globs
The two behave differently on purpose, and the difference is what lets a small template win against a large one.
- A directory glob leaves the match scope open, and the largest fitting template wins.
- A file glob narrows the scope to the matched files, so a template describing exactly those files fits better than one describing the whole directory.
That is how a two-file template such as nestjs-service-file is matchable at
all inside a directory a five-file module template also claims:
instances: [
{ patterns: ["src/modules/*/*.service.ts", "src/modules/*/*.service.unit.test.ts"] },
];Where a template is laid down
A template that produces a folder contains that folder, so its instance path
is the folder's parent: nestjs-service-module holds {{nameKebabCase}}/…,
and its instances are …/src/modules. A template that produces loose files
holds them at its root, and its instance path is the directory those files sit
in.
Thresholds
An instance passes when its conformance score reaches the threshold that applies to it. Three levels set it, and the narrowest wins:
instances[].threshold ?? generator.threshold ?? runThreshold ?? 1A level left unset stays unset rather than being filled with the default — that
is what lets a host's own --threshold reach an instance whose generator has
no opinion. The default of 1 is applied only at the end of the chain, so
nothing configured is quietly overridden, and a level nobody set is not
quietly treated as if they had.
{
name: "nestjs-service-module",
templatePath: "templates/nestjs-service-module",
threshold: 1, // strict everywhere by default
instances: [
{ patterns: ["packages/*/src/modules/*"] },
{
patterns: ["applications/legacy/src/modules/*"],
threshold: 0.75, // …except while migrating this one
},
],
}When two groups locate the same instance with different thresholds the strictest wins: nothing makes one group more specific than another, and letting order decide would mean a lenient group could silently relax a bar someone else set.
Inputs
Each entry in inputs is a JSON Schema fragment. Only properties and
required are read — enough to know an input's name, whether it must be
supplied, and what to say when prompting for it.
Authoring them by hand is verbose, so deriving them from a schema library is the usual approach:
import { z } from "zod";
function defineInputs(shape: z.ZodRawShape) {
return z.toJSONSchema(z.object(shape)).properties ?? {};
}
inputs: defineInputs({
name: z.string().describe("Module name in kebab-case"),
project: z.string().describe("Parent project name in kebab-case"),
});Values are resolved in order: flags passed on the command line first, then
interactive prompts for anything still missing. Prompting is skipped entirely
when stdin is not a TTY or CI is true, so a missing input fails the command
rather than hanging it.
Matching
Validation does not record which template produced a file. It works it out: every instance is weighed against every template by the share of the template's files the instance already has, and the best fit wins.
Two outcomes are reported rather than skipped, because a glob is the author asserting that these paths are instances:
| Reason | Meaning |
| ------ | ------- |
| no-match | No template explains this instance well enough |
| ambiguous | Two or more templates tied, so they are indistinguishable here |
Exports
| Export | Purpose |
| ------ | ------- |
| ConfigurationService | Everything this layer answers: loading a configuration file, reading templates, expanding globs into instances, matching the two, rendering placeholders, and resolving generator inputs |
| ConfigurationModule | The NestJS module that provides it |
| ConfigurationPathRequiredError | Thrown by ConfigurationService.requireConfigurationPath for an absent or blank path, naming the flag or option the caller passed as the surface |
| ConformetryConfiguration | The loaded configuration type — author your config as this |
| ConformetryInstanceGroup, ConformetryGeneratorDefinition | Field-level types for the above |
One service and one module, and no other collaborator — the same pair
@callidescope/configuration, @codependix/configuration and
@codometer/configuration publish, so learning one of the four teaches you all
of them.
Behind the facade, template discovery, instance discovery, rendering, instance
groups, and input resolution stay six separate classes in six separate files,
because they are six different jobs. What they are not is six entry points a
host has to know the names of: a consumer imports ConfigurationModule and
injects ConfigurationService.
Whether a configuration path is required, and what the refusal says, is
decided here and nowhere else: ConfigurationService.requireConfigurationPath(path, surface)
returns the trimmed path or throws ConfigurationPathRequiredError. The CLI
passes the --config flag, and the Nx plugin passes its own option names;
neither keeps a guard or a message of its own.
Loading a configuration file is the one job ConfigurationService holds
itself; everything that touches paths is a one-line hand-off to the
collaborator that owns it.
Test
nx run conformetry-configuration:vitestLicense
MIT — see LICENSE.
👔 Conformetry
This project was generated from the nestjs-service-project conformetry template.
🔭 Callidescope
Call stacks traced through projects/ic-suite/conformetry/conformetry-configuration, deepest first. Each frame shows what it takes, what it returns, and what its documentation says.
| Measure | Value | | --- | --- | | Callables | 183 | | Files | 38 | | Calls traced | 167 | | Call stacks | 5 | | Deepest stack | 10 | | Stacks through recursion | 0 | | Unfollowable calls | 7 |
Limits
What this project is judged against, as declared in its own callidescope.config.ts.
| Limit | Value |
| --- | --- |
| maximumDepth | 14 |
| maximumBreadth | 5 |
Call stacks (depth)
1. InstanceDiscoveryService.matchTemplates — depth ≥ 10 · orphan-root
🚀 InstanceDiscoveryService.matchTemplates(…): TemplateMatch[] [projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:131]
↳ Ranks every template that shares a file with one instance, best first.
└─> InstanceDiscoveryMatchingService.matchTemplates(…): TemplateMatch[] [projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery-matching.service.ts:180]
↳ Weighs every template that shares at least one file with the instance, best-first.
└─> InstanceDiscoveryMatchingService.map(…)(…): { matchedFileCount: number; matchRatio: number; template: TemplateDefinition; placeholderValues: Substitutions; substitutions: Substitutions; } [projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery-matching.service.ts:186]
└─> TemplateDiscoveryService.countMatchingFiles(…): number [projects/ic-suite/conformetry/conformetry-configuration/src/modules/template-discovery/template-discovery.service.ts:146]
↳ Counts how many of a template's files the instance path already has.
└─> TemplateDiscoveryService.filter(…)(templateFilePath: string): boolean [projects/ic-suite/conformetry/conformetry-configuration/src/modules/template-discovery/template-discovery.service.ts:155]
└─> TemplateDiscoveryService.resolveInstanceFilePath(…): string [projects/ic-suite/conformetry/conformetry-configuration/src/modules/template-discovery/template-discovery.service.ts:204]
↳ Maps a template file path to the instance file path it governs.
└─> RenderingService.renderPath(…): string [projects/ic-suite/conformetry/conformetry-configuration/src/modules/rendering/rendering.service.ts:142]
↳ Renders a template path with mustache, the same way contents are rendered.
└─> RenderingService.assertEverySubstitutionSupplied(…): void [projects/ic-suite/conformetry/conformetry-configuration/src/modules/rendering/rendering.service.ts:35]
↳ Refuses to render a template asking for a value nobody supplied.
└─> RenderingService.collectInterpolatedNames(template: string): string[] [projects/ic-suite/conformetry/conformetry-configuration/src/modules/rendering/rendering.service.ts:80]
↳ Every placeholder a template interpolates, deduplicated.
└─> RenderingService.walk(spans: TemplateSpans): void [projects/ic-suite/conformetry/conformetry-configuration/src/modules/rendering/rendering.service.ts:82]2. InputService.resolveInputsFromValues — depth ≥ 8 · orphan-root
🚀 InputService.resolveInputsFromValues(args: ResolveInputsFromValuesArguments): Promise<Record<string, string>> [projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input.service.ts:195]
↳ Resolves inputs from values the caller already parsed.
└─> InputService.resolveInputs(…): Promise<Record<string, string>> [projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input.service.ts:53]
↳ Walks a schema, taking each value from the resolver or a prompt.
└─> InputService.acceptProvidedValue(args: { input: SchemaInput; value: string; }): string [projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input.service.ts:39]
↳ Validates a value the caller already had, throwing if it is invalid.
└─> InputSchemaService.validateValue(args: { input: SchemaInput; value: unknown; }): string | true [projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input-schema.service.ts:158]
↳ Validates a value, returning `true` or the reason it failed.
└─> InputSchemaService.validateEnum(args: { input: SchemaInput; value: string; }): string | true [projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input-schema.service.ts:39]
↳ Validates a value against a schema `enum`, when one is declared.
└─> InputSchemaService.readEnumValues(propertySchema: unknown): string[] [projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input-schema.service.ts:123]
↳ Reads the string members of a schema `enum`.
└─> InputSchemaService.readSchemaProperty(propertySchema: unknown, key: string): unknown [projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input-schema.service.ts:26]
↳ Reads one property off a schema fragment when it is an object.
└─> InputSchemaService.find(…)([entryKey]: [string, any]): boolean [projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input-schema.service.ts:31]3. InputPromptingService.validate — depth 6 · orphan-root
🚀 InputPromptingService.validate(value: unknown): string | true [projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input-prompting.service.ts:105]
└─> InputSchemaService.validateValue(args: { input: SchemaInput; value: unknown; }): string | true [projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input-schema.service.ts:158]
↳ Validates a value, returning `true` or the reason it failed.
└─> InputSchemaService.validateEnum(args: { input: SchemaInput; value: string; }): string | true [projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input-schema.service.ts:39]
↳ Validates a value against a schema `enum`, when one is declared.
└─> InputSchemaService.readEnumValues(propertySchema: unknown): string[] [projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input-schema.service.ts:123]
↳ Reads the string members of a schema `enum`.
└─> InputSchemaService.readSchemaProperty(propertySchema: unknown, key: string): unknown [projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input-schema.service.ts:26]
↳ Reads one property off a schema fragment when it is an object.
└─> InputSchemaService.find(…)([entryKey]: [string, any]): boolean [projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input-schema.service.ts:31]4. assertNoCollisions — depth ≥ 3 · orphan-root
🚀 assertNoCollisions(…): void [projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.utilities.ts:28]
↳ Fails when two generators would answer to the same thing.
└─> findDuplicates(…): { message: string; path: (string | number)[]; }[] [projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.utilities.ts:62]
↳ Reports every key more than one generator claims.
└─> map(…)(…): { message: string; path: number[]; } [projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.utilities.ts:84]5. InstanceDiscoveryService.buildSubstitutions — depth 3 · orphan-root
🚀 InstanceDiscoveryService.buildSubstitutions(…): Substitutions [projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:111]
↳ Builds the substitutions an instance's template is rendered with.
└─> InstanceDiscoveryMatchingService.buildSubstitutions(instance: Instance): Substitutions [projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery-matching.service.ts:97]
↳ Builds the substitutions an instance's template is rendered with.
└─> RenderingService.buildNameSubstitutions(name: string): Substitutions [projects/ic-suite/conformetry/conformetry-configuration/src/modules/rendering/rendering.service.ts:60]
↳ Derives the case variants every template can reference from one name.Breadth
| Callable | Breadth | Calls directly | Location |
| --- | --- | --- | --- |
| InstanceDiscoveryLocatingService.findInstances | 5 | InstanceDiscoveryLocatingService.resolveGlobSuffix, InstanceDiscoveryLocatingService.globEntries, InstanceDiscoveryLocatingService.resolveNameStem, InstanceDiscoveryLocatingService.map(…), InstanceDiscoveryLocatingService.toSorted(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery-locating.service.ts:156 |
| InstanceDiscoveryMatchingService.matchInstances | 5 | InstanceDiscoveryMatchingService.buildSubstitutions, InstanceDiscoveryMatchingService.matchTemplates, InstanceDiscoveryMatchingService.filter(…), InstanceDiscoveryMatchingService.map(…), InstanceDiscoveryMatchingService.map(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery-matching.service.ts:118 |
| 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 |
| Callable | Breadth | Calls directly | Location |
| --- | --- | --- | --- |
| InputService.resolveInputs | 4 | InputSchemaService.readPropertyNames, InputSchemaService.describeInput, InputService.acceptProvidedValue, InputService.resolveMissingValue | projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input.service.ts:53 |
| InputService.resolveMissingValue | 4 | InputPromptingService.isAtTerminal, missingInputError, InputPromptingService.promptForInput, InputSchemaService.validateValue | projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input.service.ts:94 |
| 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 |
| 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 |
| 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 |
| ConfigurationService.loadConformetryConfiguration | 4 | ConfigurationService.resolveConfigurationPath, UnknownConfigurationFileTypeError.constructor, ConfigurationService.loadConfigurationModule, ConfigurationService.map(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:244 |
| assertNoCollisions | 3 | findDuplicates, findUnusableNames, findReservedNames | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.utilities.ts:28 |
| findReservedNames | 3 | map(…), filter(…), map(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.utilities.ts:97 |
| findUnusableNames | 3 | map(…), filter(…), map(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.utilities.ts:112 |
| InputOptionsService.collectOneInput | 3 | InputOptionsService.readOptionName, InputOptionsService.resolvePropertyName, InputOptionsService.readOptionValue | projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input-options.service.ts:34 |
| InputSchemaService.validateValue | 3 | InputSchemaService.validateEnum, InputSchemaService.validateLength, InputSchemaService.validatePattern | projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input-schema.service.ts:158 |
| RenderingService.assertEverySubstitutionSupplied | 3 | RenderingService.filter(…), RenderingService.collectInterpolatedNames, MissingSubstitutionError.constructor | projects/ic-suite/conformetry/conformetry-configuration/src/modules/rendering/rendering.service.ts:35 |
| InstanceDiscoveryMatchingService.matchTemplates | 3 | InstanceDiscoveryMatchingService.toSorted(…), InstanceDiscoveryMatchingService.filter(…), InstanceDiscoveryMatchingService.map(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery-matching.service.ts:180 |
| InstanceDiscoveryService.readInventoryGlobs | 3 | InstanceDiscoveryService.flatMap(…), InstanceDiscoveryService.flatMap(…), InstanceDiscoveryService.flatMap(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:62 |
| InstanceDiscoveryService.weighInstance | 3 | InstanceDiscoveryService.map(…), InstanceDiscoveryMatchingService.matchTemplates, InstanceDiscoveryMatchingService.buildSubstitutions | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:84 |
| InstanceDiscoveryService.map(…) | 3 | InstanceDiscoveryService.filter(…), InstanceDiscoveryService.map(…), InstanceDiscoveryService.filter(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:146 |
| findDuplicates | 2 | map(…), filter(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.utilities.ts:62 |
| InputSchemaService.readEnumValues | 2 | InputSchemaService.readSchemaProperty, InputSchemaService.filter(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input-schema.service.ts:123 |
| InputPromptingService.assertCanPrompt | 2 | InputPromptingService.isAtTerminal, missingInputError | projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input-prompting.service.ts:50 |
| InputPromptingService.promptForTemplates | 2 | InputPromptingService.map(…), InputPromptingService.filter(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input-prompting.service.ts:144 |
| InputService.parseCommaDelimitedOption | 2 | InputService.filter(…), InputService.map(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input.service.ts:118 |
| InputService.resolveGeneratorInputs | 2 | InputOptionsService.collectGeneratorInputs, InputService.resolveInputs | projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input.service.ts:180 |
| TemplateDiscoveryService.collectTemplate | 2 | TemplateDiscoveryService.collectFilePaths, TemplateDiscoveryService.collectPlaceholderNames | projects/ic-suite/conformetry/conformetry-configuration/src/modules/template-discovery/template-discovery.service.ts:97 |
| TemplateDiscoveryService.prepareDocument | 2 | TemplateDiscoveryService.resolveInstanceFilePath, RenderingService.renderContent | projects/ic-suite/conformetry/conformetry-configuration/src/modules/template-discovery/template-discovery.service.ts:178 |
| InstanceDiscoveryMatchingService.fillPlaceholders | 2 | InstanceDiscoveryMatchingService.map(…), InstanceDiscoveryMatchingService.filter(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery-matching.service.ts:73 |
| InstanceDiscoveryMatchingService.map(…) | 2 | InstanceDiscoveryMatchingService.fillPlaceholders, TemplateDiscoveryService.countMatchingFiles | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery-matching.service.ts:186 |
| missingInputError | 1 | InputError.constructor | projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input.constants.ts:55 |
| missingDirectoryError | 1 | InputError.constructor | projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input.constants.ts:70 |
| InputOptionsService.resolvePropertyName | 1 | InputOptionsService.find(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input-options.service.ts:100 |
| InputOptionsService.collectGeneratorInputs | 1 | InputOptionsService.collectOneInput | projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input-options.service.ts:120 |
| InputSchemaService.readSchemaProperty | 1 | InputSchemaService.find(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input-schema.service.ts:26 |
| InputSchemaService.validateEnum | 1 | InputSchemaService.readEnumValues | projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input-schema.service.ts:39 |
| InputSchemaService.validateLength | 1 | InputSchemaService.readSchemaProperty | projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input-schema.service.ts:53 |
| InputSchemaService.validatePattern | 1 | InputSchemaService.readSchemaProperty | projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input-schema.service.ts:85 |
| InputSchemaService.readPromptMessage | 1 | InputSchemaService.readSchemaProperty | projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input-schema.service.ts:136 |
| InputPromptingService.validate | 1 | InputSchemaService.validateValue | projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input-prompting.service.ts:105 |
| InputPromptingService.promptForTemplate | 1 | InputPromptingService.map(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input-prompting.service.ts:122 |
| InputPromptingService.map(…) | 1 | InputPromptingService.describeChoice | projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input-prompting.service.ts:126 |
| InputPromptingService.map(…) | 1 | InputPromptingService.describeChoice | projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input-prompting.service.ts:154 |
| InputService.acceptProvidedValue | 1 | InputSchemaService.validateValue | projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input.service.ts:39 |
| InputService.parseThresholdOption | 1 | InputService.parseOptionalOption | projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input.service.ts:161 |
| InputService.resolveInputsFromValues | 1 | InputService.resolveInputs | projects/ic-suite/conformetry/conformetry-configuration/src/modules/input/input.service.ts:195 |
| MissingSubstitutionError.constructor | 1 | MissingSubstitutionError.map(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/rendering/rendering.constants.ts:31 |
| RenderingService.collectInterpolatedNames | 1 | RenderingService.walk | projects/ic-suite/conformetry/conformetry-configuration/src/modules/rendering/rendering.service.ts:80 |
| RenderingService.renderContent | 1 | RenderingService.assertEverySubstitutionSupplied | projects/ic-suite/conformetry/conformetry-configuration/src/modules/rendering/rendering.service.ts:115 |
| RenderingService.renderPath | 1 | RenderingService.assertEverySubstitutionSupplied | projects/ic-suite/conformetry/conformetry-configuration/src/modules/rendering/rendering.service.ts:142 |
| TemplateDiscoveryService.collectPlaceholderNames | 1 | TemplateDiscoveryService.flatMap(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/template-discovery/template-discovery.service.ts:71 |
| TemplateDiscoveryService.flatMap(…) | 1 | TemplateDiscoveryService.flatMap(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/template-discovery/template-discovery.service.ts:77 |
| TemplateDiscoveryService.flatMap(…) | 1 | RenderingService.collectInterpolatedNames | projects/ic-suite/conformetry/conformetry-configuration/src/modules/template-discovery/template-discovery.service.ts:81 |
| TemplateDiscoveryService.collectTemplates | 1 | TemplateDiscoveryService.map(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/template-discovery/template-discovery.service.ts:123 |
| TemplateDiscoveryService.map(…) | 1 | TemplateDiscoveryService.collectTemplate | projects/ic-suite/conformetry/conformetry-configuration/src/modules/template-discovery/template-discovery.service.ts:127 |
| TemplateDiscoveryService.countMatchingFiles | 1 | TemplateDiscoveryService.filter(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/template-discovery/template-discovery.service.ts:146 |
| TemplateDiscoveryService.filter(…) | 1 | TemplateDiscoveryService.resolveInstanceFilePath | projects/ic-suite/conformetry/conformetry-configuration/src/modules/template-discovery/template-discovery.service.ts:155 |
| TemplateDiscoveryService.resolveInstanceFilePath | 1 | RenderingService.renderPath | projects/ic-suite/conformetry/conformetry-configuration/src/modules/template-discovery/template-discovery.service.ts:204 |
| InstanceDiscoveryLocatingService.globEntries | 1 | InstanceDiscoveryLocatingService.filter(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery-locating.service.ts:66 |
| InstanceDiscoveryLocatingService.filter(…) | 1 | InstanceDiscoveryLocatingService.isExcluded | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery-locating.service.ts:76 |
| InstanceDiscoveryLocatingService.isExcluded | 1 | InstanceDiscoveryLocatingService.some(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery-locating.service.ts:85 |
| InstanceDiscoveryLocatingService.resolveGlobSuffix | 1 | InstanceDiscoveryLocatingService.map(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery-locating.service.ts:108 |
| InstanceDiscoveryLocatingService.map(…) | 1 | InstanceDiscoveryLocatingService.deriveLocationSubstitutions | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery-locating.service.ts:195 |
| InstanceDiscoveryMatchingService.map(…) | 1 | createPlaceholderValue | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery-matching.service.ts:80 |
| InstanceDiscoveryMatchingService.buildSubstitutions | 1 | RenderingService.buildNameSubstitutions | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery-matching.service.ts:97 |
| InstanceDiscoveryMatchingService.toSorted(…) | 1 | InstanceDiscoveryMatchingService.compareMatches | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery-matching.service.ts:211 |
| InstanceDiscoveryService.flatMap(…) | 1 | InstanceDiscoveryService.readWorkspaceGroups | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:72 |
| InstanceDiscoveryService.buildSubstitutions | 1 | InstanceDiscoveryMatchingService.buildSubstitutions | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:111 |
| InstanceDiscoveryService.findInstances | 1 | InstanceDiscoveryLocatingService.findInstances | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:118 |
| InstanceDiscoveryService.matchInstances | 1 | InstanceDiscoveryMatchingService.matchInstances | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:123 |
| InstanceDiscoveryService.matchTemplates | 1 | InstanceDiscoveryMatchingService.matchTemplates | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:131 |
| InstanceDiscoveryService.prepareDocuments | 1 | InstanceDiscoveryService.map(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:141 |
| InstanceDiscoveryService.map(…) | 1 | TemplateDiscoveryService.prepareDocument | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:152 |
| InstanceDiscoveryService.readWorkspaceGroups | 1 | InstanceDiscoveryService.filter(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:186 |
| InstanceDiscoveryService.filter(…) | 1 | InstanceGroupService.isProjectScoped | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:189 |
| InstanceDiscoveryService.resolveInstanceFiles | 1 | InstanceDiscoveryService.flatMap(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:195 |
| InstanceDiscoveryService.flatMap(…) | 1 | InstanceDiscoveryService.map(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:196 |
| InstanceDiscoveryService.map(…) | 1 | TemplateDiscoveryService.resolveInstanceFilePath | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:197 |
| InstanceDiscoveryService.map(…) | 1 | InstanceDiscoveryService.filter(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:228 |
| InstanceDiscoveryService.map(…) | 1 | InstanceDiscoveryService.flatMap(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:256 |
| InstanceDiscoveryService.flatMap(…) | 1 | InstanceDiscoveryService.find(…) | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:257 |
| InstanceDiscoveryService.map(…) | 1 | InstanceDiscoveryService.weighInstance | projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:295 |
| ConfigurationService.loadConfigurationModule | 1 | ConfigurationService.loadJsonConfiguration | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:136 |
| ConfigurationService.resolveConfigurationPath | 1 | ConfigurationService.findWorkspaceRoot | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:175 |
| ConfigurationService.buildNameSubstitutions | 1 | RenderingService.buildNameSubstitutions | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:203 |
| ConfigurationService.collectTemplate | 1 | TemplateDiscoveryService.collectTemplate | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:208 |
| ConfigurationService.collectTemplates | 1 | TemplateDiscoveryService.collectTemplates | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:215 |
| ConfigurationService.findInstances | 1 | InstanceDiscoveryService.findInstances | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:223 |
| ConfigurationService.isAtTerminal | 1 | InputPromptingService.isAtTerminal | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:228 |
| ConfigurationService.isProjectScoped | 1 | InstanceGroupService.isProjectScoped | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:233 |
| ConfigurationService.map(…) | 1 | ConfigurationService.applyGeneratorDefaults | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:260 |
| ConfigurationService.matchInstances | 1 | InstanceDiscoveryService.matchInstances | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:264 |
| ConfigurationService.parseCommaDelimitedOption | 1 | InputService.parseCommaDelimitedOption | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:272 |
| ConfigurationService.parseOptionalOption | 1 | InputService.parseOptionalOption | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:279 |
| ConfigurationService.parseThresholdOption | 1 | InputService.parseThresholdOption | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:284 |
| ConfigurationService.prepareDocuments | 1 | InstanceDiscoveryService.prepareDocuments | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:292 |
| ConfigurationService.promptForTemplate | 1 | InputPromptingService.promptForTemplate | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:299 |
| ConfigurationService.promptForTemplates | 1 | InputPromptingService.promptForTemplates | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:306 |
| ConfigurationService.readWorkspaceGroups | 1 | InstanceDiscoveryService.readWorkspaceGroups | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:313 |
| ConfigurationService.renderContent | 1 | RenderingService.renderContent | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:320 |
| ConfigurationService.renderPath | 1 | RenderingService.renderPath | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:327 |
| ConfigurationService.requireConfigurationPath | 1 | ConfigurationPathRequiredError.constructor | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:342 |
| ConfigurationService.resolveGeneratorInputs | 1 | InputService.resolveGeneratorInputs | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:356 |
| ConfigurationService.resolveInstanceFiles | 1 | InstanceDiscoveryService.resolveInstanceFiles | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:363 |
| ConfigurationService.resolveInventoriedInstances | 1 | InstanceDiscoveryService.resolveInventoriedInstances | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:368 |
| ConfigurationService.resolveInventoriedTemplates | 1 | InstanceDiscoveryService.resolveInventoriedTemplates | projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:375 |
🕸️ Codependix
Dependency graphs exported by codependix, regenerated by nx run configuration:codependix:write.
Nx Neighborhood
graph LR
conformetry_cli["conformetry-cli"]
conformetry_configuration["conformetry-configuration"]
conformetry_core["conformetry-core"]
conformetry_examples["conformetry-examples"]
conformetry_generation["conformetry-generation"]
conformetry_languages["conformetry-languages"]
conformetry_nx["conformetry-nx"]
conformetry_validation["conformetry-validation"]
synchronization["synchronization"]
conformetry_cli --> conformetry_configuration
conformetry_configuration --> conformetry_core
conformetry_examples --> conformetry_configuration
conformetry_generation --> conformetry_configuration
conformetry_languages --> conformetry_configuration
conformetry_nx --> conformetry_configuration
conformetry_validation --> conformetry_configuration
synchronization --> conformetry_configuration
classDef subject fill:#7c3aed,color:#fff,stroke:#4c1d95,stroke-width:2px
class conformetry_configuration subjectNestJS Module Graph
flowchart LR
ConfigurationModule
InputModule
InstanceDiscoveryModule
InstanceGroupModule
RenderingModule
TemplateDiscoveryModule
ConfigurationModule --> InputModule
ConfigurationModule --> InstanceDiscoveryModule
ConfigurationModule --> InstanceGroupModule
ConfigurationModule --> RenderingModule
ConfigurationModule --> TemplateDiscoveryModule
InstanceDiscoveryModule --> InstanceGroupModule
InstanceDiscoveryModule --> RenderingModule
InstanceDiscoveryModule --> TemplateDiscoveryModule
TemplateDiscoveryModule --> RenderingModuleFile Imports
graph LR
file_callidescope_config_ts["callidescope.config.ts"]
file_codependix_config_ts["codependix.config.ts"]
file_codometer_config_ts["codometer.config.ts"]
file_eslint_config_ts["eslint.config.ts"]
file_src_index_ts["src/index.ts"]
file_src_index_unit_test_ts["src/index.unit.test.ts"]
file_src_modules_configuration_configuration_constants_ts["src/modules/configuration/configuration.constants.ts"]
file_src_modules_configuration_configuration_module_ts["src/modules/configuration/configuration.module.ts"]
file_src_modules_configuration_configuration_module_unit_test_ts["src/modules/configuration/configuration.module.unit.test.ts"]
file_src_modules_configuration_configuration_service_ts["src/modules/configuration/configuration.service.ts"]
file_src_modules_configuration_configuration_service_unit_test_ts["src/modules/configuration/configuration.service.unit.test.ts"]
file_src_modules_configuration_configuration_types_ts["src/modules/configuration/configuration.types.ts"]
file_src_modules_configuration_configuration_utilities_ts["src/modules/configuration/configuration.utilities.ts"]
file_src_modules_input_input_options_service_ts["src/modules/input/input-options.service.ts"]
file_src_modules_input_input_options_service_unit_test_ts["src/modules/input/input-options.service.unit.test.ts"]
file_src_modules_input_input_prompting_service_ts["src/modules/input/input-prompting.service.ts"]
file_src_modules_input_input_prompting_service_unit_test_ts["src/modules/input/input-prompting.service.unit.test.ts"]
file_src_modules_input_input_schema_service_ts["src/modules/input/input-schema.service.ts"]
file_src_modules_input_input_schema_service_unit_test_ts["src/modules/input/input-schema.service.unit.test.ts"]
file_src_modules_input_input_constants_ts["src/modules/input/input.constants.ts"]
file_src_modules_input_input_constants_unit_test_ts["src/modules/input/input.constants.unit.test.ts"]
file_src_modules_input_input_module_ts["src/modules/input/input.module.ts"]
file_src_modules_input_input_service_ts["src/modules/input/input.service.ts"]
file_src_modules_input_input_service_unit_test_ts["src/modules/input/input.service.unit.test.ts"]
file_src_modules_input_input_types_ts["src/modules/input/input.types.ts"]
file_src_modules_instance_discovery_instance_discovery_locating_service_ts["src/modules/instance-discovery/instance-discovery-locating.service.ts"]
file_src_modules_instance_discovery_instance_discovery_locating_service_unit_test_ts["src/modules/instance-discovery/instance-discovery-locating.service.unit.test.ts"]
file_src_modules_instance_discovery_instance_discovery_matching_service_ts["src/modules/instance-discovery/instance-discovery-matching.service.ts"]
file_src_modules_instance_discovery_instance_discovery_matching_service_unit_test_ts["src/modules/instance-discovery/instance-discovery-matching.service.unit.test.ts"]
file_src_modules_instance_discovery_instance_discovery_constants_ts["src/modules/instance-discovery/instance-discovery.constants.ts"]
file_src_modules_instance_discovery_instance_discovery_module_ts["src/modules/instance-discovery/instance-discovery.module.ts"]
file_src_modules_instance_discovery_instance_discovery_service_ts["src/modules/instance-discovery/instance-discovery.service.ts"]
file_src_modules_instance_discovery_instance_discovery_service_unit_test_ts["src/modules/instance-discovery/instance-discovery.service.unit.test.ts"]
file_src_modules_instance_discovery_instance_discovery_types_ts["src/modules/instance-discovery/instance-discovery.types.ts"]
file_src_modules_instance_group_instance_group_constants_ts["src/modules/instance-group/instance-group.constants.ts"]
file_src_modules_instance_group_instance_group_module_ts["src/modules/instance-group/instance-group.module.ts"]
file_src_modules_instance_group_instance_group_service_ts["src/modules/instance-group/instance-group.service.ts"]
file_src_modules_instance_group_instance_group_service_unit_test_ts["src/modules/instance-group/instance-group.service.unit.test.ts"]
file_src_modules_instance_group_instance_group_types_ts["src/modules/instance-group/instance-group.types.ts"]
file_src_modules_rendering_rendering_constants_ts["src/modules/rendering/rendering.constants.ts"]
file_src_modules_rendering_rendering_module_ts["src/modules/rendering/rendering.module.ts"]
file_src_modules_rendering_rendering_service_ts["src/modules/rendering/rendering.service.ts"]
file_src_modules_rendering_rendering_service_unit_test_ts["src/modules/rendering/rendering.service.unit.test.ts"]
file_src_modules_rendering_rendering_types_ts["src/modules/rendering/rendering.types.ts"]
file_src_modules_rendering_rendering_utilities_ts["src/modules/rendering/rendering.utilities.ts"]
file_src_modules_rendering_rendering_utilities_unit_test_ts["src/modules/rendering/rendering.utilities.unit.test.ts"]
file_src_modules_template_discovery_template_discovery_constants_ts["src/modules/template-discovery/template-discovery.constants.ts"]
file_src_modules_template_discovery_template_discovery_module_ts["src/modules/template-discovery/template-discovery.module.ts"]
file_src_modules_template_discovery_template_discovery_service_ts["src/modules/template-discovery/template-discovery.service.ts"]
file_src_modules_template_discovery_template_discovery_service_unit_test_ts["src/modules/template-discovery/template-discovery.service.unit.test.ts"]
file_src_modules_template_discovery_template_discovery_types_ts["src/modules/template-discovery/template-discovery.types.ts"]
file_testing_mocks_ts["testing/mocks.ts"]
file_testing_setup_ts["testing/setup.ts"]
file_vite_config_ts["vite.config.ts"]
file_vitest_config_ts["vitest.config.ts"]
file_src_index_unit_test_ts --> file_src_index_ts
file_src_modules_configuration_configuration_constants_ts --> file_src_modules_configuration_configuration_utilities_ts
file_src_modules_configuration_configuration_module_ts --> file_src_modules_configuration_configuration_service_ts
file_src_modules_configuration_configuration_module_ts --> file_src_modules_input_input_module_ts
file_src_modules_configuration_configuration_module_ts --> file_src_modules_instance_discovery_instance_discovery_module_ts
file_src_modules_configuration_configuration_module_ts --> file_src_modules_instance_group_instance_group_module_ts
file_src_modules_configuration_configuration_module_ts --> file_src_modules_rendering_rendering_module_ts
file_src_modules_configuration_configuration_module_ts --> file_src_modules_template_discovery_template_discovery_module_ts
file_src_modules_configuration_configuration_module_unit_test_ts --> file_src_modules_configuration_configuration_module_ts
file_src_modules_configuration_configuration_service_ts --> file_src_modules_configuration_configuration_constants_ts
file_src_modules_configuration_configuration_service_ts --> file_src_modules_configuration_configuration_types_ts
file_src_modules_configuration_configuration_service_ts --> file_src_modules_input_input_prompting_service_ts
file_src_modules_configuration_configuration_service_ts --> file_src_modules_input_input_service_ts
file_src_modules_configuration_configuration_service_ts --> file_src_modules_input_input_types_ts
file_src_modules_configuration_configuration_service_ts --> file_src_modules_instance_discovery_instance_discovery_service_ts
file_src_modules_configuration_configuration_service_ts --> file_src_modules_instance_discovery_instance_discovery_types_ts
file_src_modules_configuration_configuration_service_ts --> file_src_modules_instance_group_instance_group_service_ts
file_src_modules_configuration_configuration_service_ts --> file_src_modules_instance_group_instance_group_types_ts
file_src_modules_configuration_configuration_service_ts --> file_src_modules_rendering_rendering_service_ts
file_src_modules_configuration_configuration_service_ts --> file_src_modules_rendering_rendering_types_ts
file_src_modules_configuration_configuration_service_ts --> file_src_modules_template_discovery_template_discovery_service_ts
file_src_modules_configuration_configuration_service_ts --> file_src_modules_template_discovery_template_discovery_types_ts
file_src_modules_configuration_configuration_service_unit_test_ts --> file_src_modules_configuration_configuration_constants_ts
file_src_modules_configuration_configuration_service_unit_test_ts --> file_src_modules_configuration_configuration_service_ts
file_src_modules_configuration_configuration_service_unit_test_ts --> file_src_modules_configuration_configuration_types_ts
file_src_modules_configuration_configuration_service_unit_test_ts --> file_src_modules_input_input_prompting_service_ts
file_src_modules_configuration_configuration_service_unit_test_ts --> file_src_modules_input_input_service_ts
file_src_modules_configuration_configuration_service_unit_test_ts --> file_src_modules_instance_discovery_instance_discovery_service_ts
file_src_modules_configuration_configuration_service_unit_test_ts --> file_src_modules_instance_group_instance_group_service_ts
file_src_modules_configuration_configuration_service_unit_test_ts --> file_src_modules_rendering_rendering_service_ts
file_src_modules_configuration_configuration_service_unit_test_ts --> file_src_modules_template_discovery_template_discovery_service_ts
file_src_modules_configuration_configuration_types_ts --> file_src_modules_configuration_configuration_constants_ts
file_src_modules_configuration_configuration_types_ts --> file_src_modules_instance_group_instance_group_types_ts
file_src_modules_configuration_configuration_utilities_ts --> file_src_modules_input_input_constants_ts
file_src_modules_input_input_options_service_ts --> file_src_modules_configuration_configuration_types_ts
file_src_modules_input_input_options_service_ts --> file_src_modules_input_input_constants_ts
file_src_modules_input_input_options_service_unit_test_ts --> file_src_modules_input_input_options_service_ts
file_src_modules_input_input_prompting_service_ts --> file_src_modules_input_input_schema_service_ts
file_src_modules_input_input_prompting_service_ts --> file_src_modules_input_input_constants_ts
file_src_modules_input_input_prompting_service_ts --> file_src_modules_input_input_types_ts
file_src_modules_input_input_prompting_service_unit_test_ts --> file_src_modules_input_input_prompting_service_ts
file_src_modules_input_input_prompting_service_unit_test_ts --> file_src_modules_input_input_schema_service_ts
file_src_modules_input_input_schema_service_ts --> file_src_modules_configuration_configuration_types_ts
file_src_modules_input_input_schema_service_ts --> file_src_modules_input_input_types_ts
file_src_modules_input_input_schema_service_unit_test_ts --> file_src_modules_input_input_schema_service_ts
file_src_modules_input_input_constants_unit_test_ts --> file_src_modules_input_input_constants_ts
file_src_modules_input_input_module_ts --> file_src_modules_input_input_options_service_ts
file_src_modules_input_input_module_ts --> file_src_modules_input_input_prompting_service_ts
file_src_modules_input_input_module_ts --> file_src_modules_input_input_schema_service_ts
file_src_modules_input_input_module_ts --> file_src_modules_input_input_service_ts
file_src_modules_input_input_service_ts --> file_src_modules_input_input_options_service_ts
file_src_modules_input_input_service_ts --> file_src_modules_input_input_prompting_service_ts
file_src_modules_input_input_service_ts --> file_src_modules_input_input_schema_service_ts
file_src_modules_input_input_service_ts --> file_src_modules_input_input_constants_ts
file_src_modules_input_input_service_ts --> file_src_modules_input_input_types_ts
file_src_modules_input_input_service_unit_test_ts --> file_src_modules_input_input_options_service_ts
file_src_modules_input_input_service_unit_test_ts --> file_src_modules_input_input_prompting_service_ts
file_src_modules_input_input_service_unit_test_ts --> file_src_modules_input_input_schema_service_ts
file_src_modules_input_input_service_unit_test_ts --> file_src_modules_input_input_service_ts
file_src_modules_input_input_types_ts --> file_src_modules_configuration_configuration_types_ts
file_src_modules_instance_discovery_instance_discovery_locating_service_ts --> file_src_modules_instance_discovery_instance_discovery_constants_ts
file_src_modules_instance_discovery_instance_discovery_locating_service_ts --> file_src_modules_instance_discovery_instance_discovery_types_ts
file_src_modules_instance_discovery_instance_discovery_locating_service_unit_test_ts --> file_src_modules_instance_discovery_instance_discovery_locating_service_ts
file_src_modules_instance_discovery_instance_discovery_matching_service_ts --> file_src_modules_instance_discovery_instance_discovery_constants_ts
file_src_modules_instance_discovery_instance_discovery_matching_service_ts --> file_src_modules_instance_discovery_instance_discovery_types_ts
file_src_modules_instance_discovery_instance_discovery_matching_service_ts --> file_src_modules_rendering_rendering_service_ts
file_src_modules_instance_discovery_instance_discovery_matching_service_ts --> file_src_modules_rendering_rendering_types_ts
file_src_modules_instance_discovery_instance_discovery_matching_service_ts --> file_src_modules_rendering_rendering_utilities_ts
file_src_modules_instance_discovery_instance_discovery_matching_service_ts --> file_src_modules_template_discovery_template_discovery_service_ts
file_src_modules_instance_discovery_instance_discovery_matching_service_ts --> file_src_modules_template_discovery_template_discovery_types_ts
file_src_modules_instance_discovery_instance_discovery_matching_service_unit_test_ts --> file_src_modules_instance_discovery_instance_discovery_matching_service_ts
file_src_modules_instance_discovery_instance_discovery_matching_service_unit_test_ts --> file_src_modules_rendering_rendering_service_ts
file_src_modules_instance_discovery_instance_discovery_matching_service_unit_test_ts --> file_src_modules_template_discovery_template_discovery_service_ts
file_src_modules_instance_discovery_instance_discovery_matching_service_unit_test_ts --> file_src_modules_template_discovery_template_discovery_types_ts
file_src_modules_instance_discovery_instance_discovery_module_ts --> file_src_modules_instance_discovery_instance_discovery_locating_service_ts
file_src_modules_instance_discovery_instance_discovery_module_ts --> file_src_modules_instance_discovery_instance_discovery_matching_service_ts
file_src_modules_instance_discovery_instance_discovery_module_ts --> file_src_modules_instance_discovery_instance_discovery_service_ts
file_src_modules_instance_discovery_instance_discovery_module_ts --> file_src_modules_instance_group_instance_group_module_ts
file_src_modules_instance_discovery_instance_discovery_module_ts --> file_src_modules_rendering_rendering_module_ts
file_src_modules_instance_discovery_instance_discovery_module_ts --> file_src_modules_template_discovery_template_discovery_module_ts
file_src_modules_instance_discovery_instance_discovery_service_ts --> file_src_modules_instance_discovery_instance_discovery_locating_service_ts
file_src_modules_instance_discovery_instance_discovery_service_ts --> file_src_modules_instance_discovery_instance_discovery_matching_service_ts
file_src_modules_instance_discovery_instance_discovery_service_ts --> file_src_modules_instance_discovery_instance_discovery_types_ts
file_src_modules_instance_discovery_instance_discovery_service_ts --> file_src_modules_instance_group_instance_group_service_ts
file_src_modules_instance_discovery_instance_discovery_service_ts --> file_src_modules_instance_group_instance_group_types_ts
file_src_modules_instance_discovery_instance_discovery_service_ts --> file_src_modules_template_discovery_template_discovery_service_ts
file_src_modules_instance_discovery_instance_discovery_service_ts --> file_src_modules_template_discovery_template_discovery_types_ts
file_src_modules_instance_discovery_instance_discovery_service_unit_test_ts --> file_src_modules_configuration_configuration_types_ts
file_src_modules_instance_discovery_instance_discovery_service_unit_test_ts --> file_src_modules_instance_discovery_instance_discovery_module_ts
file_src_modules_instance_discovery_instance_discovery_service_unit_test_ts --> file_src_modules_instance_discovery_instance_discovery_service_ts
file_src_modules_instance_discovery_instance_discovery_service_unit_test_ts --> file_src_modules_instance_group_instance_group_service_ts
file_src_modules_instance_discovery_instance_discovery_types_ts --> file_src_modules_configuration_configuration_types_ts
file_src_modules_instance_discovery_instance_discovery_types_ts --> file_src_modules_rendering_rendering_types_ts
file_src_modules_instance_discovery_instance_discovery_types_ts --> file_src_modules_template_discovery_template_discovery_types_ts
file_src_modules_instance_group_instance_group_module_ts --> file_src_modules_instance_group_instance_group_service_ts
file_src_modules_instance_group_instance_group_service_ts --> file_src_modules_instance_group_instance_group_types_ts
file_src_modules_instance_group_instance_group_service_unit_test_ts --> file_src_modules_instance_group_instance_group_service_ts
file_src_modules_rendering_rendering_module_ts --> file_src_modules_rendering_rendering_service_ts
file_src_modules_rendering_rendering_service_ts --> file_src_modules_rendering_rendering_constants_ts
file_src_modules_rendering_rendering_service_ts --> file_src_modules_rendering_rendering_types_ts
file_src_modules_rendering_rendering_service_unit_test_ts --> file_src_modules_rendering_rendering_constants_ts
file_src_modules_rendering_rendering_service_unit_test_ts --> file_src_modules_rendering_rendering_service_ts
file_src_modules_rendering_rendering_utilities_ts --> file_src_modules_rendering_rendering_constants_ts
file_src_modules_rendering_rendering_utilities_unit_test_ts --> file_src_modules_rendering_rendering_utilities_ts
file_src_modules_template_discovery_template_discovery_module_ts --> file_src_modules_rendering_rendering_module_ts
file_src_modules_template_discovery_template_discovery_module_ts --> file_src_modules_template_discovery_template_discovery_service_ts
file_src_modules_template_discovery_template_discovery_service_ts --> file_src_modules_configuration_configuration_types_ts
file_src_modules_template_discovery_template_discovery_service_ts --> file_src_modules_rendering_rendering_service_ts
file_src_modules_template_discovery_template_discovery_service_ts --> file_src_