npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@conformetry/nx

v0.0.36

Published

Nx plugin providing dynamic generator scaffolding and conformance verification targets for Conformetry

Readme

👔 Conformetry Nx

npm

The Nx host for Conformetry. Canonical documentation for command behavior, configuration, template syntax, scoring, and validators is in the @conformetry/cli README. This package adds two things the standalone CLI cannot offer: generators addressed by name through nx g, and a cached validation target inferred onto every project that holds instances.

npm install --save-dev @conformetry/nx

Setup

Register the plugin in nx.json and wire the bootstrap into postinstall:

{
  "plugins": [
    {
      "plugin": "@conformetry/nx",
      "options": {
        "configurationPath": "projects/configuration/conformetry.config.ts",
        "validateTargetName": "conformetry-validate"
      }
    }
  ],
  "sync": { "globalGenerators": ["@conformetry/nx:sync"] }
}
{ "scripts": { "postinstall": "conformetry-nx-bootstrap-generators" } }

The configurationPath option is required: no default file is assumed and no filename is searched for. A plugin entry without it fails with a ConfigurationPathRequiredError from @conformetry/configuration naming the option, and so does the bootstrap, which reads it from nx.json. The executor and the sync generator take the same path as a configuration option, which wins over the registration when both are set.

Then type your configuration as ConformetryNxConfiguration rather than ConformetryConfiguration, so instance groups are checked against what Nx can actually resolve:

import { type ConformetryNxConfiguration } from "@conformetry/nx";

The emitted plugin

Which generators a workspace has is a property of its conformetry configuration, so the plugin exposing them is emitted rather than written. conformetry-nx-bootstrap-generators derives it from your configuration, writes it to .conformetry/nx-generators (gitignore that directory — it is a build artifact), and links it into the root node_modules so nx g conformetry:<generator> resolves. The link is what makes the plugin addressable, since Nx resolves a generator's package prefix by requiring it by name rather than by matching an Nx project.

| Default | Value | | ------- | ----- | | Output path | .conformetry/nx-generators | | Package name | conformetry — so generators are nx g conformetry:<name> |

The bootstrap warns rather than exiting non-zero when the configuration cannot be read, so a configuration mid-edit never blocks an unrelated install. Drift is caught where it matters instead: every conformetry command compares the emitted plugin against the configuration and refuses to run against a stale one.

@conformetry/nx deliberately declares no generators of its own beyond sync. nx g @conformetry/nx:anything resolves nothing by design — which generators exist is a property of your configuration, not of this package.

sync runs both ways: nx sync and nx sync:check use it as the global sync generator, and nx g @conformetry/nx:sync runs it directly, writing the emitted plugin.

Generating

nx g conformetry:nestjs-service-module --name=billing --project=lexico

Nx prompts for missing inputs from the generator's own schema and writes through its virtual Tree, so --dry-run works and the workspace formatter runs over the result.

Validating

The plugin infers a conformetry-validate target onto every project holding instances, so validation is cached and participates in nx affected:

nx run <project>:conformetry-validate
nx run-many --target=conformetry-validate --all
nx affected --target=conformetry-validate --base=main

| Executor option | Purpose | | --------------- | ------- | | configuration | Configuration file, workspace-root relative. Taken from the configurationPath plugin option in nx.json when omitted; one of the two is required | | languages | Restrict the run to named validators; all run when omitted |

Tag-scoped instances

The Nx host reads an instance group's tags as project tags, and resolves that group's globs inside each matching project — so where a generator belongs is stated exactly once:

instances: [{ patterns: ["src/modules/*"], tags: ["framework:nestjs"] }];

A project must carry every tag a group names, so a second tag narrows the group further — tags: ["framework:nestjs", "language:graphql"] reaches only NestJS projects that are also GraphQL.

The two group forms are told apart by tags alone. There is no second field that could disagree with it: a separate scope that excluded a project the globs reached narrowed validation silently, and validation cannot notice instances it was never offered.

Omitting patterns selects the projects without locating anything in them, which is what a template with no instances yet wants — nx g is still confined to the projects the template suits.

Exports

runConformetryGenerator for generator wrappers, bootstrapPlugin and runBootstrapCli for the bootstrap, the ConformetryNxConfiguration and instance-group types, and the NestJS services behind them (PluginService, AdapterService, InstancesService, ScopeService, OptionsService).

Test

nx run conformetry-nx:vitest

License

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-nx, deepest first. Each frame shows what it takes, what it returns, and what its documentation says.

| Measure | Value | | --- | --- | | Callables | 112 | | Files | 48 | | Calls traced | 141 | | Call stacks | 8 | | Deepest stack | 15 | | Stacks through recursion | 0 | | Unfollowable calls | 0 |

Limits

What this project is judged against, as declared in its own callidescope.config.ts.

| Limit | Value | | --- | --- | | maximumDepth | 15 | | maximumBreadth | 9 |

Call stacks (depth)

1. validateExecutor — depth ≥ 15 · orphan-root

🚀 validateExecutor(…): Promise<{ success: boolean; }> [projects/ic-suite/conformetry/conformetry-nx/src/executors/validate/executor.ts:16]
   ↳ Validates one project's instances against their conformetry templates.
  └─> PluginService.runValidation(args: RunValidationArguments): Promise<RunValidationResult> [projects/ic-suite/conformetry/conformetry-nx/src/modules/plugin/plugin.service.ts:409]
     ↳ Validates one project's instances and renders the report.
    └─> ValidationService.validate(args: RunValidationArguments): RunValidationResult [projects/ic-suite/conformetry/conformetry-validation/src/modules/validation/validation.service.ts:194]
       ↳ Validates every instance and returns the differences found.
      └─> ConfigurationService.matchInstances(…): ResolvedInstances [projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:264]
         ↳ Resolves every instance to the template, or templates, that explain it.
        └─> InstanceDiscoveryService.matchInstances(…): ResolvedInstances [projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:123]
           ↳ Resolves every instance to the template, or templates, that explain it.
          └─> InstanceDiscoveryMatchingService.matchInstances(…): ResolvedInstances [projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery-matching.service.ts:118]
             ↳ Resolves every instance to the template — or templates — that explain it.
            └─> 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. runConformetryGenerator — depth ≥ 14 · exported-function

🚀 runConformetryGenerator(…): Promise<string[]> [projects/ic-suite/conformetry/conformetry-nx/src/index.ts:93]
   ↳ Runs one configured generator against an Nx tree.
  └─> PluginService.runGenerator(args: RunGeneratorArguments): Promise<string[]> [projects/ic-suite/conformetry/conformetry-nx/src/modules/plugin/plugin.service.ts:348]
     ↳ Runs one configured generator against an Nx tree.
    └─> PluginService.assertPluginInSync(args: { configurationPath: string; workspaceRoot: string; }): Promise<void> [projects/ic-suite/conformetry/conformetry-nx/src/modules/plugin/plugin.service.ts:121]
       ↳ Fails fast when the plugin would run against a stale or broken setup.
      └─> PluginService.assertEmittedPluginCurrent(args: { configurationPath: string; workspaceRoot: string; }): Promise<void> [projects/ic-suite/conformetry/conformetry-nx/src/modules/plugin/plugin.service.ts:87]
         ↳ Fails when the emitted Nx plugin no longer matches the configuration. `generators.json` and its schemas are derived…
        └─> GeneratorService.emitPlugin(args: EmitPluginArguments): Promise<EmittedFile[]> [projects/ic-suite/conformetry/conformetry-nx/src/modules/generator/generator.service.ts:212]
           ↳ Returns every file the consumer's generator plugin consists of.
          └─> GeneratorService.map(…)(…): { content: string; filePath: string; } [projects/ic-suite/conformetry/conformetry-nx/src/modules/generator/generator.service.ts:238]
            └─> GeneratorService.resolveScopedProjectNames(…): string[] | undefined [projects/ic-suite/conformetry/conformetry-nx/src/modules/generator/generator.service.ts:180]
               ↳ The projects a generator's tagged groups admit, or nothing when it has none.
              └─> ScopeService.resolveScopedProjectNames(…): string[] [projects/ic-suite/conformetry/conformetry-nx/src/modules/scope/scope.service.ts:135]
                 ↳ The projects a generator's groups admit, by name and sorted.
                └─> ScopeService.filter(…)(project: ProjectScope): boolean [projects/ic-suite/conformetry/conformetry-nx/src/modules/scope/scope.service.ts:148]
                  └─> ScopeService.some(…)(group: ConformetryInstanceGroup): boolean [projects/ic-suite/conformetry/conformetry-nx/src/modules/scope/scope.service.ts:149]
                    └─> ScopeService.matchesProject(args: { group: ConformetryInstanceGroup; project: ProjectScope; }): boolean [projects/ic-suite/conformetry/conformetry-nx/src/modules/scope/scope.service.ts:53]
                       ↳ Returns whether a group applies to a project.
                      └─> ScopeService.isProjectGroup(group: ConformetryInstanceGroup): boolean [projects/ic-suite/conformetry/conformetry-nx/src/modules/scope/scope.service.ts:39]
                         ↳ Whether a group locates its instances by project tag.
                        └─> ConfigurationService.isProjectScoped(group: ConformetryInstanceGroup): boolean [projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:233]
                           ↳ Whether a group locates its instances inside the hosts its tags select.
                          └─> InstanceGroupService.isProjectScoped(group: ConformetryInstanceGroup): boolean [projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-group/instance-group.service.ts:42]
                             ↳ Whether a group locates its instances inside the hosts its tags select.

3. runBootstrapCli — depth ≥ 12 · orphan-root

🚀 runBootstrapCli(workspaceRoot: string): Promise<void> [projects/ic-suite/conformetry/conformetry-nx/src/modules/generator/bootstrap.utilities.ts:71]
   ↳ Bootstraps the plugin, warning rather than failing the install.
  └─> bootstrapPlugin(workspaceRoot: string): Promise<EmittedFile[]> [projects/ic-suite/conformetry/conformetry-nx/src/modules/generator/bootstrap.utilities.ts:39]
     ↳ Emits the generator plugin and puts it where Nx will find it.
    └─> GeneratorService.emitPlugin(args: EmitPluginArguments): Promise<EmittedFile[]> [projects/ic-suite/conformetry/conformetry-nx/src/modules/generator/generator.service.ts:212]
       ↳ Returns every file the consumer's generator plugin consists of.
      └─> GeneratorService.map(…)(…): { content: string; filePath: string; } [projects/ic-suite/conformetry/conformetry-nx/src/modules/generator/generator.service.ts:238]
        └─> GeneratorService.resolveScopedProjectNames(…): string[] | undefined [projects/ic-suite/conformetry/conformetry-nx/src/modules/generator/generator.service.ts:180]
           ↳ The projects a generator's tagged groups admit, or nothing when it has none.
          └─> ScopeService.resolveScopedProjectNames(…): string[] [projects/ic-suite/conformetry/conformetry-nx/src/modules/scope/scope.service.ts:135]
             ↳ The projects a generator's groups admit, by name and sorted.
            └─> ScopeService.filter(…)(project: ProjectScope): boolean [projects/ic-suite/conformetry/conformetry-nx/src/modules/scope/scope.service.ts:148]
              └─> ScopeService.some(…)(group: ConformetryInstanceGroup): boolean [projects/ic-suite/conformetry/conformetry-nx/src/modules/scope/scope.service.ts:149]
                └─> ScopeService.matchesProject(args: { group: ConformetryInstanceGroup; project: ProjectScope; }): boolean [projects/ic-suite/conformetry/conformetry-nx/src/modules/scope/scope.service.ts:53]
                   ↳ Returns whether a group applies to a project.
                  └─> ScopeService.isProjectGroup(group: ConformetryInstanceGroup): boolean [projects/ic-suite/conformetry/conformetry-nx/src/modules/scope/scope.service.ts:39]
                     ↳ Whether a group locates its instances by project tag.
                    └─> ConfigurationService.isProjectScoped(group: ConformetryInstanceGroup): boolean [projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:233]
                       ↳ Whether a group locates its instances inside the hosts its tags select.
                      └─> InstanceGroupService.isProjectScoped(group: ConformetryInstanceGroup): boolean [projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-group/instance-group.service.ts:42]
                         ↳ Whether a group locates its instances inside the hosts its tags select.

4. anonymous — depth ≥ 11 · orphan-root

🚀 anonymous(…): Promise<CreateNodesResultArray> [projects/ic-suite/conformetry/conformetry-nx/src/index.ts:49]
  └─> PluginService.inferTargets(args: InferTargetsArguments): Promise<Map<string, InferredTargets>> [projects/ic-suite/conformetry/conformetry-nx/src/modules/plugin/plugin.service.ts:283]
     ↳ Infers a validation target onto every project that holds at least one instance.
    └─> InstancesService.findProjectInstances(args: FindProjectInstancesArguments): Promise<Instance[]> [projects/ic-suite/conformetry/conformetry-nx/src/modules/instances/instances.service.ts:68]
       ↳ Expands every instance group that applies to a project, keeping only the instances that live inside it.
      └─> InstancesService.flatMap(…)(this: undefined, group: ConformetryInstanceGroup): Instance[] [projects/ic-suite/conformetry/conformetry-nx/src/modules/instances/instances.service.ts:84]
        └─> ConfigurationService.findInstances(args: FindInstancesArguments): Instance[] [projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:223]
           ↳ Expands instance globs into the instances that exist.
          └─> InstanceDiscoveryService.findInstances(args: FindInstancesArguments): Instance[] [projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery.service.ts:118]
             ↳ Expands instance globs into the instances that exist.
            └─> InstanceDiscoveryLocatingService.findInstances(args: FindInstancesArguments): Instance[] [projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery-locating.service.ts:156]
               ↳ Expands every pattern and returns one instance per distinct path, name, and scope kind.
              └─> InstanceDiscoveryLocatingService.globEntries(…): Dirent<string>[] [projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery-locating.service.ts:66]
                 ↳ Expands one pattern, leaving out every path an exclude glob matches.
                └─> InstanceDiscoveryLocatingService.filter(…)(entry: fs.Dirent<string>): boolean [projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery-locating.service.ts:76]
                  └─> InstanceDiscoveryLocatingService.isExcluded(…): boolean [projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery-locating.service.ts:85]
                     ↳ Whether an exclude glob matches a found path, workspace-relative.
                    └─> InstanceDiscoveryLocatingService.some(…)(pattern: string): boolean [projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-discovery/instance-discovery-locating.service.ts:95]

5. syncGenerator — depth ≥ 11 · orphan-root

🚀 syncGenerator(tree: Tree, options?: SyncGeneratorOptions): Promise<SyncGeneratorResult> [projects/ic-suite/conformetry/conformetry-nx/src/generators/sync/generator.ts:32]
   ↳ Regenerates the workspace's conformetry generator plugin.
  └─> GeneratorService.emitPlugin(args: EmitPluginArguments): Promise<EmittedFile[]> [projects/ic-suite/conformetry/conformetry-nx/src/modules/generator/generator.service.ts:212]
     ↳ Returns every file the consumer's generator plugin consists of.
    └─> GeneratorService.map(…)(…): { content: string; filePath: string; } [projects/ic-suite/conformetry/conformetry-nx/src/modules/generator/generator.service.ts:238]
      └─> GeneratorService.resolveScopedProjectNames(…): string[] | undefined [projects/ic-suite/conformetry/conformetry-nx/src/modules/generator/generator.service.ts:180]
         ↳ The projects a generator's tagged groups admit, or nothing when it has none.
        └─> ScopeService.resolveScopedProjectNames(…): string[] [projects/ic-suite/conformetry/conformetry-nx/src/modules/scope/scope.service.ts:135]
           ↳ The projects a generator's groups admit, by name and sorted.
          └─> ScopeService.filter(…)(project: ProjectScope): boolean [projects/ic-suite/conformetry/conformetry-nx/src/modules/scope/scope.service.ts:148]
            └─> ScopeService.some(…)(group: ConformetryInstanceGroup): boolean [projects/ic-suite/conformetry/conformetry-nx/src/modules/scope/scope.service.ts:149]
              └─> ScopeService.matchesProject(args: { group: ConformetryInstanceGroup; project: ProjectScope; }): boolean [projects/ic-suite/conformetry/conformetry-nx/src/modules/scope/scope.service.ts:53]
                 ↳ Returns whether a group applies to a project.
                └─> ScopeService.isProjectGroup(group: ConformetryInstanceGroup): boolean [projects/ic-suite/conformetry/conformetry-nx/src/modules/scope/scope.service.ts:39]
                   ↳ Whether a group locates its instances by project tag.
                  └─> ConfigurationService.isProjectScoped(group: ConformetryInstanceGroup): boolean [projects/ic-suite/conformetry/conformetry-configuration/src/modules/configuration/configuration.service.ts:233]
                     ↳ Whether a group locates its instances inside the hosts its tags select.
                    └─> InstanceGroupService.isProjectScoped(group: ConformetryInstanceGroup): boolean [projects/ic-suite/conformetry/conformetry-configuration/src/modules/instance-group/instance-group.service.ts:42]
                       ↳ Whether a group locates its instances inside the hosts its tags select.

6. AdapterService.listDirectory — depth 3 · orphan-root

🚀 AdapterService.listDirectory(directoryPath: string): Promise<DirectoryEntry[]> [projects/ic-suite/conformetry/conformetry-nx/src/modules/adapter/adapter.service.ts:114]
  └─> AdapterService.listDirectory(…): Promise<DirectoryEntry[]> [projects/ic-suite/conformetry/conformetry-nx/src/modules/adapter/adapter.service.ts:42]
     ↳ Lists a directory through the tree when it is inside the workspace, and through the filesystem otherwise.
    └─> AdapterService.resolveTreePath(args: { directoryPath: string; workspaceRoot: string; }): string | undefined [projects/ic-suite/conformetry/conformetry-nx/src/modules/adapter/adapter.service.ts:89]
       ↳ Converts an absolute path to the workspace-relative form a `Tree` uses, or returns `undefined` when the path lies…

7. AdapterService.readFile — depth 3 · orphan-root

🚀 AdapterService.readFile(filePath: string): Promise<string> [projects/ic-suite/conformetry/conformetry-nx/src/modules/adapter/adapter.service.ts:124]
  └─> AdapterService.readFile(…): Promise<string> [projects/ic-suite/conformetry/conformetry-nx/src/modules/adapter/adapter.service.ts:68]
     ↳ Reads a file through the tree when possible, the filesystem otherwise.
    └─> AdapterService.resolveTreePath(args: { directoryPath: string; workspaceRoot: string; }): string | undefined [projects/ic-suite/conformetry/conformetry-nx/src/modules/adapter/adapter.service.ts:89]
       ↳ Converts an absolute path to the workspace-relative form a `Tree` uses, or returns `undefined` when the path lies…

8. AdapterService.writeFile — depth 2 · orphan-root

🚀 AdapterService.writeFile(filePath: string, content: string): Promise<void> [projects/ic-suite/conformetry/conformetry-nx/src/modules/adapter/adapter.service.ts:131]
  └─> AdapterService.resolveTreePath(args: { directoryPath: string; workspaceRoot: string; }): string | undefined [projects/ic-suite/conformetry/conformetry-nx/src/modules/adapter/adapter.service.ts:89]
     ↳ Converts an absolute path to the workspace-relative form a `Tree` uses, or returns `undefined` when the path lies…

Breadth

| Callable | Breadth | Calls directly | Location | | --- | --- | --- | --- | | PluginService.runGenerator | 9 | PluginService.resolveOptions, PluginService.assertPluginInSync, ConfigurationService.loadConformetryConfiguration, PluginService.find(…), PluginService.map(…), AdapterService.createAdapters, OptionsService.resolveGeneratorInputs, GenerationService.runGenerator, PathsService.resolveGenerationPath | projects/ic-suite/conformetry/conformetry-nx/src/modules/plugin/plugin.service.ts:348 | | bootstrapPlugin | 9 | resolveGeneratorService, resolveOptionsService, resolveProjectsService, GeneratorService.emitPlugin, OptionsService.resolveConfigurationPath, readNxConfiguration, ProjectsService.listWorkspaceProjects, writePlugin, linkPlugin | projects/ic-suite/conformetry/conformetry-nx/src/modules/generator/bootstrap.utilities.ts:39 | | syncGenerator | 8 | resolveGeneratorService, resolveOptionsService, resolveProjectsService, GeneratorService.emitPlugin, OptionsService.resolveConfigurationPath, readNxConfiguration, ProjectsService.listWorkspaceProjects, assign(…) | projects/ic-suite/conformetry/conformetry-nx/src/generators/sync/generator.ts:32 |

| Callable | Breadth | Calls directly | Location | | --- | --- | --- | --- | | GeneratorService.emitPlugin | 6 | ConfigurationService.loadConformetryConfiguration, GeneratorService.toSorted(…), GeneratorService.buildGeneratorsManifest, GeneratorService.map(…), GeneratorService.map(…), GeneratorService.stringify | projects/ic-suite/conformetry/conformetry-nx/src/modules/generator/generator.service.ts:212 | | InstancesService.findProjectInstances | 6 | ConfigurationService.loadConformetryConfiguration, InstancesService.filter(…), InstancesService.flatMap(…), InstancesService.flatMap(…), InstancesService.flatMap(…), InstancesService.filter(…) | projects/ic-suite/conformetry/conformetry-nx/src/modules/instances/instances.service.ts:68 | | PluginService.runValidation | 6 | PluginService.resolveOptions, PluginService.assertPluginInSync, ValidationService.validate, InstancesService.findProjectInstances, PluginService.resolveTemplates, ReportingService.formatReport | projects/ic-suite/conformetry/conformetry-nx/src/modules/plugin/plugin.service.ts:409 | | PathsService.resolveGenerationPath | 5 | PathsService.resolveNewProjectPath, InstancesService.findProjectInstances, PathsService.requireModulePath, PathsService.resolveScopedDirectory, PathsService.resolveModuleParentPath | projects/ic-suite/conformetry/conformetry-nx/src/modules/paths/paths.service.ts:221 | | PluginService.inferTargets | 5 | PluginService.resolveOptions, PluginService.resolveTemplateInputs, PluginService.filter(…), ProjectsService.readProjectScope, InstancesService.findProjectInstances | projects/ic-suite/conformetry/conformetry-nx/src/modules/plugin/plugin.service.ts:283 | | ScopeService.resolveScopedProjectNames | 4 | ScopeService.filter(…), ScopeService.toSorted(…), ScopeService.map(…), ScopeService.filter(…) | projects/ic-suite/conformetry/conformetry-nx/src/modules/scope/scope.service.ts:135 | | ProjectsService.listWorkspaceProjects | 4 | ProjectsService.toSorted(…), ProjectsService.map(…), ProjectsService.listProjectConfigurationFiles, ProjectsService.readIgnoredPaths | projects/ic-suite/conformetry/conformetry-nx/src/modules/projects/projects.service.ts:118 | | PluginService.resolveTemplateInputs | 4 | ConfigurationService.loadConformetryConfiguration, PluginService.map(…), PluginService.map(…), buildTemplateHashCommand | projects/ic-suite/conformetry/conformetry-nx/src/modules/plugin/plugin.service.ts:234 | | anonymous | 4 | resolvePluginService, PluginService.inferTargets, filter(…), map(…) | projects/ic-suite/conformetry/conformetry-nx/src/index.ts:49 | | ScopeService.resolveGroup | 3 | ScopeService.matchesProject, ScopeService.isProjectGroup, ScopeService.map(…) | projects/ic-suite/conformetry/conformetry-nx/src/modules/scope/scope.service.ts:75 | | AdapterService.listDirectory | 3 | AdapterService.resolveTreePath, AdapterService.map(…), AdapterService.map(…) | projects/ic-suite/conformetry/conformetry-nx/src/modules/adapter/adapter.service.ts:42 | | PathsService.resolveScopedDirectory | 3 | ConfigurationService.loadConformetryConfiguration, PathsService.find(…), ScopeService.resolveScopedDirectory | projects/ic-suite/conformetry/conformetry-nx/src/modules/paths/paths.service.ts:167 | | PluginService.resolveOptions | 3 | OptionsService.readRegisteredConfigurationPath, PluginService.readNxConfiguration, OptionsService.resolvePluginOptions | projects/ic-suite/conformetry/conformetry-nx/src/modules/plugin/plugin.service.ts:193 | | ScopeService.matchesProject | 2 | ScopeService.isProjectGroup, ScopeService.every(…) | projects/ic-suite/conformetry/conformetry-nx/src/modules/scope/scope.service.ts:53 | | ScopeService.resolveScopedDirectory | 2 | ScopeService.find(…), ScopeService.findIndex(…) | projects/ic-suite/conformetry/conformetry-nx/src/modules/scope/scope.service.ts:109 | | GeneratorService.buildSchema | 2 | GeneratorService.stringify, GeneratorService.buildSchemaProperties | projects/ic-suite/conformetry/conformetry-nx/src/modules/generator/generator.service.ts:122 | | GeneratorService.map(…) | 2 | GeneratorService.buildSchema, GeneratorService.resolveScopedProjectNames | projects/ic-suite/conformetry/conformetry-nx/src/modules/generator/generator.service.ts:238 | | OptionsService.readRegisteredConfigurationPath | 2 | OptionsService.isUnknownArray, OptionsService.readString | projects/ic-suite/conformetry/conformetry-nx/src/modules/options/options.service.ts:51 | | OptionsService.resolveConfigurationPath | 2 | ConfigurationService.requireConfigurationPath, OptionsService.readRegisteredConfigurationPath | projects/ic-suite/conformetry/conformetry-nx/src/modules/options/options.service.ts:98 | | OptionsService.resolvePluginOptions | 2 | ConfigurationService.requireConfigurationPath, OptionsService.readString | projects/ic-suite/conformetry/conformetry-nx/src/modules/options/options.service.ts:145 | | PathsService.resolveNewProjectPath | 2 | missingDirectoryError, PathsService.resolveTypeDirectoryPath | projects/ic-suite/conformetry/conformetry-nx/src/modules/paths/paths.service.ts:140 | | ProjectsService.readIgnoredPaths | 2 | ProjectsService.filter(…), ProjectsService.map(…) | projects/ic-suite/conformetry/conformetry-nx/src/modules/projects/projects.service.ts:97 | | ProjectsService.readProjectScope | 2 | ProjectsService.isUnknownArray, ProjectsService.filter(…) | projects/ic-suite/conformetry/conformetry-nx/src/modules/projects/projects.service.ts:134 | | PluginService.assertEmittedPluginCurrent | 2 | GeneratorService.emitPlugin, ProjectsService.listWorkspaceProjects | projects/ic-suite/conformetry/conformetry-nx/src/modules/plugin/plugin.service.ts:87 | | PluginService.assertPluginInSync | 2 | PluginService.assertTemplatesExist, PluginService.assertEmittedPluginCurrent | projects/ic-suite/conformetry/conformetry-nx/src/modules/plugin/plugin.service.ts:121 | | PluginService.resolveTemplates | 2 | ConfigurationService.loadConformetryConfiguration, PluginService.map(…) | projects/ic-suite/conformetry/conformetry-nx/src/modules/plugin/plugin.service.ts:254 | | runConformetryGenerator | 2 | resolvePluginService, PluginService.runGenerator | projects/ic-suite/conformetry/conformetry-nx/src/index.ts:93 | | validateExecutor | 2 | resolvePluginService, PluginService.runValidation | projects/ic-suite/conformetry/conformetry-nx/src/executors/validate/executor.ts:16 | | ScopeService.isProjectGroup | 1 | ConfigurationService.isProjectScoped | projects/ic-suite/conformetry/conformetry-nx/src/modules/scope/scope.service.ts:39 | | ScopeService.find(…) | 1 | ScopeService.isProjectGroup | projects/ic-suite/conformetry/conformetry-nx/src/modules/scope/scope.service.ts:112 | | ScopeService.filter(…) | 1 | ScopeService.isProjectGroup | projects/ic-suite/conformetry/conformetry-nx/src/modules/scope/scope.service.ts:139 | | ScopeService.filter(…) | 1 | ScopeService.some(…) | projects/ic-suite/conformetry/conformetry-nx/src/modules/scope/scope.service.ts:148 | | ScopeService.some(…) | 1 | ScopeService.matchesProject | projects/ic-suite/conformetry/conformetry-nx/src/modules/scope/scope.service.ts:149 | | GeneratorService.buildGeneratorsManifest | 1 | GeneratorService.stringify | projects/ic-suite/conformetry/conformetry-nx/src/modules/generator/generator.service.ts:86 | | GeneratorService.resolveScopedProjectNames | 1 | ScopeService.resolveScopedProjectNames | projects/ic-suite/conformetry/conformetry-nx/src/modules/generator/generator.service.ts:180 | | GeneratorService.map(…) | 1 | GeneratorService.buildGeneratorModule | projects/ic-suite/conformetry/conformetry-nx/src/modules/generator/generator.service.ts:229 | | AdapterService.readFile | 1 | AdapterService.resolveTreePath | projects/ic-suite/conformetry/conformetry-nx/src/modules/adapter/adapter.service.ts:68 | | AdapterService.listDirectory | 1 | AdapterService.listDirectory | projects/ic-suite/conformetry/conformetry-nx/src/modules/adapter/adapter.service.ts:114 | | AdapterService.readFile | 1 | AdapterService.readFile | projects/ic-suite/conformetry/conformetry-nx/src/modules/adapter/adapter.service.ts:124 | | AdapterService.writeFile | 1 | AdapterService.resolveTreePath | projects/ic-suite/conformetry/conformetry-nx/src/modules/adapter/adapter.service.ts:131 | | InstancesService.flatMap(…) | 1 | ScopeService.resolveGroup | projects/ic-suite/conformetry/conformetry-nx/src/modules/instances/instances.service.ts:79 | | InstancesService.flatMap(…) | 1 | ConfigurationService.findInstances | projects/ic-suite/conformetry/conformetry-nx/src/modules/instances/instances.service.ts:84 | | InstancesService.filter(…) | 1 | InstancesService.isInsideProject | projects/ic-suite/conformetry/conformetry-nx/src/modules/instances/instances.service.ts:97 | | PathsService.requireModulePath | 1 | PathsService.resolveModulePath | projects/ic-suite/conformetry/conformetry-nx/src/modules/paths/paths.service.ts:57 | | PathsService.resolveModuleParentPath | 1 | PathsService.toSorted(…) | projects/ic-suite/conformetry/conformetry-nx/src/modules/paths/paths.service.ts:86 | | PathsService.resolveModulePath | 1 | PathsService.find(…) | projects/ic-suite/conformetry/conformetry-nx/src/modules/paths/paths.service.ts:118 | | ProjectsService.map(…) | 1 | ProjectsService.readProjectScope | projects/ic-suite/conformetry/conformetry-nx/src/modules/projects/projects.service.ts:124 | | PluginService.assertTemplatesExist | 1 | ConfigurationService.loadConformetryConfiguration | projects/ic-suite/conformetry/conformetry-nx/src/modules/plugin/plugin.service.ts:137 | | PluginService.map(…) | 1 | ConfigurationService.collectTemplate | projects/ic-suite/conformetry/conformetry-nx/src/modules/plugin/plugin.service.ts:263 | | resolveGeneratorService | 1 | resolvePluginContext | projects/ic-suite/conformetry/conformetry-nx/src/modules/plugin/plugin-context.utilities.ts:18 | | resolveOptionsService | 1 | resolvePluginContext | projects/ic-suite/conformetry/conformetry-nx/src/modules/plugin/plugin-context.utilities.ts:25 | | resolvePluginService | 1 | resolvePluginContext | projects/ic-suite/conformetry/conformetry-nx/src/modules/plugin/plugin-context.utilities.ts:32 | | resolveProjectsService | 1 | resolvePluginContext | projects/ic-suite/conformetry/conformetry-nx/src/modules/plugin/plugin-context.utilities.ts:39 | | runBootstrapCli | 1 | bootstrapPlugin | projects/ic-suite/conformetry/conformetry-nx/src/modules/generator/bootstrap.utilities.ts:71 | | linkPlugin | 1 | leadsTo | projects/ic-suite/conformetry/conformetry-nx/src/modules/generator/bootstrap.utilities.ts:113 |

🕸️ Codependix

Dependency graphs exported by codependix, regenerated by nx run configuration:codependix:write.

Nx Neighborhood

graph LR
  conformetry_configuration["conformetry-configuration"]
  conformetry_examples["conformetry-examples"]
  conformetry_generation["conformetry-generation"]
  conformetry_nx["conformetry-nx"]
  conformetry_output["conformetry-output"]
  conformetry_validation["conformetry-validation"]
  logging["logging"]
  conformetry_examples --> conformetry_nx
  conformetry_nx --> conformetry_configuration
  conformetry_nx --> conformetry_generation
  conformetry_nx --> conformetry_output
  conformetry_nx --> conformetry_validation
  conformetry_nx --> logging
  classDef subject fill:#7c3aed,color:#fff,stroke:#4c1d95,stroke-width:2px
  class conformetry_nx subject

NestJS Module Graph

flowchart LR
  AdapterModule
  ConfigurationModule
  DifferencesModule
  FilesModule
  GenerationModule
  GeneratorModule
  InputModule
  InstanceDiscoveryModule
  InstanceGroupModule
  InstancesModule
  JsonModule
  JupyterModule
  LanguagesModule
  LoggerModule([LoggerModule])
  MainModule
  MarkdownModule
  OptionsModule
  PathsModule
  PluginModule
  ProjectsModule
  PythonModule
  RenderingModule
  ReportingModule
  RunnerModule
  ScopeModule
  ScoringModule
  TemplateDiscoveryModule
  TextModule
  TypescriptModule
  ValidationModule
  ConfigurationModule --> InputModule
  ConfigurationModule --> InstanceDiscoveryModule
  ConfigurationModule --> InstanceGroupModule
  ConfigurationModule --> RenderingModule
  ConfigurationModule --> TemplateDiscoveryModule
  FilesModule --> ConfigurationModule
  FilesModule --> DifferencesModule
  GenerationModule --> ConfigurationModule
  GeneratorModule --> ConfigurationModule
  GeneratorModule --> ScopeModule
  InstanceDiscoveryModule --> InstanceGroupModule
  InstanceDiscoveryModule --> RenderingModule
  InstanceDiscoveryModule --> TemplateDiscoveryModule
  InstancesModule --> ConfigurationModule
  InstancesModule --> ScopeModule
  JsonModule --> ScoringModule
  JupyterModule --> JsonModule
  JupyterModule --> MarkdownModule
  JupyterModule --> PythonModule
  LanguagesModule --> JsonModule
  LanguagesModule --> JupyterModule
  LanguagesModule --> MarkdownModule
  LanguagesModule --> PythonModule
  LanguagesModule --> TextModule
  LanguagesModule --> TypescriptModule
  MainModule --> GeneratorModule
  MainModule --> PluginModule
  MarkdownModule --> ScoringModule
  OptionsModule --> ConfigurationModule
  PathsModule --> ConfigurationModule
  PathsModule --> InstancesModule
  PathsModule --> ScopeModule
  PluginModule --> AdapterModule
  PluginModule --> ConfigurationModule
  PluginModule --> GenerationModule
  PluginModule --> GeneratorModule
  PluginModule --> InstancesModule
  PluginModule --> OptionsModule
  PluginModule --> PathsModule
  PluginModule --> ProjectsModule
  PluginModule --> ReportingModule
  PluginModule --> ScopeModule
  PluginModule --> ValidationModule
  PythonModule --> DifferencesModule
  PythonModule --> ScoringModule
  ReportingModule --> ScoringModule
  ScopeModule --> ConfigurationModule
  TemplateDiscoveryModule --> RenderingModule
  TypescriptModule --> ScoringModule
  ValidationModule --> ConfigurationModule
  ValidationModule --> FilesModule
  ValidationModule --> LanguagesModule
  ValidationModule --> RunnerModule
  ValidationModule --> ScoringModule

Rounded modules are global: every module can inject them, so their edges are left out.

File 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_conformetry_nx_main_ts["src/conformetry-nx.main.ts"]
  file_src_conformetry_nx_main_unit_test_ts["src/conformetry-nx.main.unit.test.ts"]
  file_src_conformetry_nx_module_ts["src/conformetry-nx.module.ts"]
  file_src_executors_validate_executor_ts["src/executors/validate/executor.ts"]
  file_src_executors_validate_executor_types_ts["src/executors/validate/executor.types.ts"]
  file_src_executors_validate_executor_unit_test_ts["src/executors/validate/executor.unit.test.ts"]
  file_src_generators_sync_generator_ts["src/generators/sync/generator.ts"]
  file_src_generators_sync_generator_types_ts["src/generators/sync/generator.types.ts"]
  file_src_generators_sync_generator_unit_test_ts["src/generators/sync/generator.unit.test.ts"]
  file_src_index_ts["src/index.ts"]
  file_src_index_unit_test_ts["src/index.unit.test.ts"]
  file_src_modules_adapter_adapter_constants_ts["src/modules/adapter/adapter.constants.ts"]
  file_src_modules_adapter_adapter_module_ts["src/modules/adapter/adapter.module.ts"]
  file_src_modules_adapter_adapter_service_ts["src/modules/adapter/adapter.service.ts"]
  file_src_modules_adapter_adapter_service_unit_test_ts["src/modules/adapter/adapter.service.unit.test.ts"]
  file_src_modules_adapter_adapter_types_ts["src/modules/adapter/adapter.types.ts"]
  file_src_modules_generator_bootstrap_utilities_ts["src/modules/generator/bootstrap.utilities.ts"]
  file_src_modules_generator_bootstrap_utilities_unit_test_ts["src/modules/generator/bootstrap.utilities.unit.test.ts"]
  file_src_modules_generator_generator_constants_ts["src/modules/generator/generator.constants.ts"]
  file_src_modules_generator_generator_module_ts["src/modules/generator/generator.module.ts"]
  file_src_modules_generator_generator_service_ts["src/modules/generator/generator.service.ts"]
  file_src_modules_generator_generator_service_unit_test_ts["src/modules/generator/generator.service.unit.test.ts"]
  file_src_modules_generator_generator_types_ts["src/modules/generator/generator.types.ts"]
  file_src_modules_instances_instances_constants_ts["src/modules/instances/instances.constants.ts"]
  file_src_modules_instances_instances_module_ts["src/modules/instances/instances.module.ts"]
  file_src_modules_instances_instances_service_ts["src/modules/instances/instances.service.ts"]
  file_src_modules_instances_instances_service_unit_test_ts["src/modules/instances/instances.service.unit.test.ts"]
  file_src_modules_instances_instances_types_ts["src/modules/instances/instances.types.ts"]
  file_src_modules_options_options_constants_ts["src/modules/options/options.constants.ts"]
  file_src_modules_options_options_module_ts["src/modules/options/options.module.ts"]
  file_src_modules_options_options_service_ts["src/modules/options/options.service.ts"]
  file_src_modules_options_options_service_unit_test_ts["src/modules/options/options.service.unit.test.ts"]
  file_src_modules_options_options_types_ts["src/modules/options/options.types.ts"]
  file_src_modules_paths_paths_constants_ts["src/modules/paths/paths.constants.ts"]
  file_src_modules_paths_paths_module_ts["src/modules/paths/paths.module.ts"]
  file_src_modules_paths_paths_service_ts["src/modules/paths/paths.service.ts"]
  file_src_modules_paths_paths_service_unit_test_ts["src/modules/paths/paths.service.unit.test.ts"]
  file_src_modules_paths_paths_types_ts["src/modules/paths/paths.types.ts"]
  file_src_modules_plugin_plugin_context_utilities_ts["src/modules/plugin/plugin-context.utilities.ts"]
  file_src_modules_plugin_plugin_context_utilities_unit_test_ts["src/modules/plugin/plugin-context.utilities.unit.test.ts"]
  file_src_modules_plugin_plugin_constants_ts["src/modules/plugin/plugin.constants.ts"]
  file_src_modules_plugin_plugin_module_ts["src/modules/plugin/plugin.module.ts"]
  file_src_modules_plugin_plugin_service_ts["src/modules/plugin/plugin.service.ts"]
  file_src_modules_plugin_plugin_service_unit_test_ts["src/modules/plugin/plugin.service.unit.test.ts"]
  file_src_modules_plugin_plugin_types_ts["src/modules/plugin/plugin.types.ts"]
  file_src_modules_plugin_plugin_utilities_ts["src/modules/plugin/plugin.utilities.ts"]
  file_src_modules_plugin_plugin_utilities_unit_test_ts["src/modules/plugin/plugin.utilities.unit.test.ts"]
  file_src_modules_projects_projects_constants_ts["src/modules/projects/projects.constants.ts"]
  file_src_modules_projects_projects_module_ts["src/modules/projects/projects.module.ts"]
  file_src_modules_projects_projects_service_ts["src/modules/projects/projects.service.ts"]
  file_src_modules_projects_projects_service_unit_test_ts["src/modules/projects/projects.service.unit.test.ts"]
  file_src_modules_projects_projects_types_ts["src/modules/projects/projects.types.ts"]
  file_src_modules_scope_scope_constants_ts["src/modules/scope/scope.constants.ts"]
  file_src_modules_scope_scope_module_ts["src/modules/scope/scope.module.ts"]
  file_src_modules_scope_scope_service_ts["src/modules/scope/scope.service.ts"]
  file_src_modules_scope_scope_service_unit_test_ts["src/modules/scope/scope.service.unit.test.ts"]
  file_src_modules_scope_scope_types_ts["src/modules/scope/scope.types.ts"]
  file_testing_manifest_unit_test_ts["testing/manifest.unit.test.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_conformetry_nx_main_ts --> file_src_modules_generator_bootstrap_utilities_ts
  file_src_conformetry_nx_main_unit_test_ts --> file_src_modules_generator_bootstrap_utilities_ts
  file_src_conformetry_nx_module_ts --> file_src_modules_generator_generator_module_ts
  file_src_conformetry_nx_module_ts --> file_src_modules_plugin_plugin_module_ts
  file_src_executors_validate_executor_ts --> file_src_executors_validate_executor_types_ts
  file_src_executors_validate_executor_ts --> file_src_modules_plugin_plugin_context_utilities_ts
  file_src_executors_validate_executor_unit_test_ts --> file_src_executors_validate_executor_ts
  file_src_executors_validate_executor_unit_test_ts --> file_src_modules_plugin_plugin_context_utilities_ts
  file_src_generators_sync_generator_ts --> file_src_generators_sync_generator_types_ts
  file_src_generators_sync_generator_ts --> file_src_modules_generator_generator_constants_ts
  file_src_generators_sync_generator_ts --> file_src_modules_options_options_constants_ts
  file_src_generators_sync_generator_ts --> file_src_modules_plugin_plugin_context_utilities_ts
  file_src_generators_sync_generator_unit_test_ts --> file_src_generators_sync_generator_ts
  file_src_generators_sync_generator_unit_test_ts --> file_src_modules_options_options_constants_ts
  file_src_generators_sync_generator_unit_test_ts --> file_src_modules_plugin_plugin_context_utilities_ts
  file_src_index_ts --> file_src_modules_plugin_plugin_context_utilities_ts
  file_src_index_ts --> file_src_modules_plugin_plugin_constants_ts
  file_src_index_unit_test_ts --> file_src_index_ts
  file_src_index_unit_test_ts --> file_src_modules_plugin_plugin_context_utilities_ts
  file_src_modules_adapter_adapter_module_ts --> file_src_modules_adapter_adapter_service_ts
  file_src_modules_adapter_adapter_service_ts --> file_src_modules_adapter_adapter_constants_ts
  file_src_modules_adapter_adapter_service_ts --> file_src_modules_adapter_adapter_types_ts
  file_src_modules_adapter_adapter_service_unit_test_ts --> file_src_modules_adapter_adapter_service_ts
  file_src_modules_generator_bootstrap_utilities_ts --> file_src_modules_generator_generator_constants_ts
  file_src_modules_generator_bootstrap_utilities_ts --> file_src_modules_generator_generator_types_ts
  file_src_modules_generator_bootstrap_utilities_ts --> file_src_modules_options_options_constants_ts
  file_src_modules_generator_bootstrap_utilities_ts --> file_src_modules_plugin_plugin_context_utilities_ts
  file_src_modules_generator_bootstrap_utilities_unit_test_ts --> file_src_modules_generator_bootstrap_utilities_ts
  file_src_modules_generator_bootstrap_utilities_unit_test_ts --> file_src_modules_generator_generator_constants_ts
  file_src_modules_generator_bootstrap_utilities_unit_test_ts --> file_src_modules_plugin_plugin_context_utilities_ts
  file_src_modules_generator_generator_module_ts --> file_src_modules_generator_generator_service_ts
  file_src_modules_generator_generator_module_ts --> file_src_modules_scope_scope_module_ts
  file_src_modules_generator_generator_service_ts --> file_src_modules_generator_generator_constants_ts
  file_src_modules_generator_generator_service_ts --> file_src_modules_generator_generator_types_ts
  file_src_modules_generator_generator_service_ts --> file_src_modules_instances_instances_types_ts
  file_src_modules_generator_generator_service_ts --> file_src_modules_paths_paths_constants_ts
  file_src_modules_generator_generator_service_ts --> file_src_modules_scope_scope_service_ts
  file_src_modules_generator_generator_service_unit_test_ts --> file_src_modules_generator_generator_module_ts
  file_src_modules_generator_generator_service_unit_test_ts --> file_src_modules_generator_generator_service_ts
  file_src_modules_generator_generator_service_unit_test_ts --> file_src_modules_generator_generator_types_ts
  file_src_modules_generator_generator_types_ts --> file_src_modules_instances_instances_types_ts
  file_src_modules_instances_instances_module_ts --> file_src_modules_instances_instances_service_ts
  file_src_modules_instances_instances_module_ts --> file_src_modules_scope_scope_module_ts
  file_src_modules_instances_instances_service_ts --> file_src_modules_instances_instances_types_ts
  file_src_modules_instances_instances_service_ts --> file_src_modules_scope_scope_service_ts
  file_src_modules_instances_instances_service_unit_test_ts --> file_src_modules_instances_instances_service_ts
  file_src_modules_instances_instances_service_unit_test_ts --> file_src_modules_instances_instances_types_ts
  file_src_modules_instances_instances_service_unit_test_ts --> file_src_modules_scope_scope_module_ts
  file_src_modules_options_options_module_ts --> file_src_modules_options_options_service_ts
  file_src_modules_options_options_service_ts --> file_src_modules_options_options_constants_ts
  file_src_modules_options_options_service_ts --> file_src_modules_options_options_types_ts
  file_src_modules_options_options_service_unit_test_ts --> file_src_modules_options_options_constants_ts
  file_src_modules_options_options_service_unit_test_ts --> file_src_modules_options_options_service_ts
  file_src_modules_paths_paths_module_ts --> file_src_modules_instances_instances_module_ts
  file_src_modules_paths_paths_module_ts --> file_src_modules_paths_paths_service_ts
  file_src_modules_paths_paths_module_ts --> file_src_modules_scope_scope_module_ts
  file_src_modules_paths_paths_service_ts --> file_src_modules_instances_instances_service_ts
  file_src_modules_paths_paths_service_ts --> file_src_modules_paths_paths_constants_ts
  file_src_modules_paths_paths_service_ts --> file_src_modules_paths_paths_types_ts
  file_src_modules_paths_paths_service_ts --> file_src_modules_scope_scope_service_ts
  file_src_modules_paths_paths_service_unit_test_ts --> file_src_modules_instances_instances_service_ts
  file_src_modules_paths_paths_service_unit_test_ts --> file_src_modules_paths_paths_module_ts
  file_src_modules_paths_paths_service_unit_test_ts --> file_src_modules_paths_paths_service_ts
  file_src_modules_paths_paths_service_unit_test_ts --> file_src_modules_scope_scope_service_ts
  file_src_modules_plugin_plugin_context_utilities_ts --> file_src_conformetry_nx_module_ts
  file_src_modules_plugin_plugin_context_utilities_ts --> file_src_modules_generator_generator_service_ts
  file_src_modules_plugin_plugin_context_utilities_ts --> file_src_modules_options_options_service_ts
  file_src_modules_plugin_plugin_context_utilities_ts --> file_src_modules_plugin_plugin_constants_ts
  file_src_modules_plugin_plugin_context_utilities_ts --> file_src_modules_plugin_plugin_service_ts
  file_src_modules_plugin_plugin_context_utilities_ts --> file_src_modules_plugin_plugin_types_ts
  file_src_modules_plugin_plugin_context_utilities_ts --> file_src_modules_projects_projects_service_ts
  file_src_modules_plugin_plugin_context_utilities_unit_test_ts --> file_src_modules_generator_generator_service_ts
  file_src_modules_plugin_plugin_context_utilities_unit_test_ts --> file_src_modules_options_options_service_ts
  file_src_modules_plugin_plugin_context_utilities_unit_test_ts --> file_src_modules_plugin_plugin_context_utilities_ts
  file_src_modules_plugin_plugin_context_utilities_unit_test_ts --> file_src_modules_plugin_plugin_constants_ts
  file_src_modules_plugin_plugin_context_utilities_unit_test_ts --> file_src_modules_plugin_plugin_service_ts
  file_src_modules_plugin_plugin_context_utilities_unit_test_ts --> file_src_modules_projects_projects_service_ts
  file_src_modules_plugin_plugin_module_ts --> file_src_modules_adapter_adapter_module_ts
  file_src_modules_plugin_plugin_module_ts --> file_src_modules_generator_generator_module_ts
  file_src_modules_plugin_plugin_module_ts --> file_src_modules_instances_instances_module_ts
  file_src_modules_plugin_plugin_module_ts --> file_src_modules_options_options_module_ts
  file_src_modules_plugin_plugin_module_ts --> file_src_modules_paths_paths_module_ts
  file_src_modules_plugin_plugin_module_ts --> file_src_modules_plugin_plugin_service_ts
  file_src_modules_plugin_plugin_module_ts --> file_src_modules_projects_projects_module_ts
  file_src_modules_plugin_plugin_module_ts --> file_src_modules_scope_scope_module_ts
  file_src_modules_plugin_plugin_service_ts --> file_src_modules_adapter_adapter_service_ts
  file_src_modules_plugin_plugin_service_ts --> file_src_modules_generator_generator_constants_ts
  file_src_modules_plugin_plugin_service_ts --> file_src_modules_generator_generator_service_ts
  file_src_modules_plugin_plugin_service_ts --> file_src_modules_instances_instances_service_ts
  file_src_modules_plugin_plugin_service_ts --> file_src_modules_options_options_constants_ts
  file_src_modules_plugin_plugin_service_ts --> file_src_modules_options_options_service_ts
  file_src_modules_plugin_plugin_service_ts --> file_src_modules_options_options_types_ts
  file_src_modules_plugin_plugin_service_ts --> file_src_modules_paths_paths_service_ts
  file_src_modules_plugin_plugin_service_ts --> file_src_modules_plugin_plugin_constants_ts
  file_src_modules_plugin_plugin_service_ts --> file_src_modules_plugin_plugin_types_ts
  file_src_modules_plugin_plugin_service_ts --> file_src_modules_plugin_plugin_utilities_ts
  file_src_modules_plugin_plugin_service_ts --> file_src_modules_projects_projects_service_ts
  file_src_modules_plugin_plugin_service_unit_test_ts --> file_src_modules_generator_generator_constants_ts
  file_src_modules_plugin_plugin_service_unit_test_ts --> file_src_modules_generator_generator_service_ts
  file_src_modules_plugin_plugin_service_unit_test_ts --> file_src_modules_instances_instances_types_ts
  file_src_modules_plugin_plugin_service_unit_test_ts --> file_src_modules_plugin_plugin_module_ts
  file_src_modules_plugin_plugin_service_unit_test_ts --> file_src_modules_plugin_plugin_service_ts
  file_src_modules_plugin_plugin_types_ts --> file_src_modules_instances_instances_types_ts
  file_src_modules_plugin_plugin_types_ts --> file_src_modules_plugin_plugin_constants_ts
  file_src_modules_plugin_plugin_utilities_ts --> file_src_modules_plugin_plugin_constants_ts
  file_src_modules_plugin_plugin_utilities_unit_test_ts --> file_src_modules_plugin_plugin_utilities_ts
  file_src_modules_projects_projects_module_ts --> file_src_modules_projects_projects_service_ts
  file_src_modules_projects_projects_service_ts --> file_src_modules_instances_instances_types_ts
  file_src_modules_projects_projects_service_ts --> file_src_modules_projects_projects_constants_ts
  file_src_modules_projects_projects_service_ts --> file_src_modules_projects_projects_types_ts
  file_src_modules_projects_projects_service_unit_test_ts --> file_src_modules_projects_projects_service_ts
  file_src_modules_scope_scope_module_ts --> file_src_modules_scope_scope_service_ts
  file_src_modules_scope_scope_service_ts --> file_src_modules_instances_instances_types_ts
  file_src_modules_scope_scope_service_ts --> file_src_modules_scope_scope_constants_ts
  file_src_modules_scope_scope_service_unit_test_ts --> file_src_modules_instances_instances_types_ts
  file_src_modules_scope_scope_service_unit_test_ts --> file_src_modules_scope_scope_service_ts

⏲️ Codometer

Project

Lines of Code Repository Size Folders Source Files

Measured Targets

Compiled JavaScript Size

TypeScript

TypeScript Files Interfaces Generic Declarations Enums Decorators Doc Comments Static Methods

JavaScript

JavaScript Files Test Files External Packages Classes Functions Methods Sync Functions Async Functions Constants Imports Exported Symbols Comments Comment Lines TODO Comments

Python

Python Files Python Lines Python Classes Python Functions Python Protocols Python Constants Python Imports Python Decorators Docstrings Docstring Lines Python Comments Python Comment Lines

JSON

JSON Files JSON Lines JSON Objects JSON Arrays JSON Properties JSON Strings JSON Numbers JSON Booleans JSON Nulls JSON Items JSON Nodes JSON Max Depth

YAML

YAML Files YAML Lines YAML Documents YAML Mappings YAML Sequences YAML Keys YAML Scalars YAML Anchors YAML Aliases YAML Comments YAML Max Depth

TOML

TOML Files TOML Lines TOML Tables TOML Array Tables TOML Keys TOML Arrays TOML Comments

Shell

Shell Files Shell Lines Shell Functions Shell Variables Shell Exports Shell Conditionals Shell Loops Shell Pipelines Shebangs Shell Comments Shell Comment Lines

SQL

SQL Files SQL Lines SQL Statements SQL Selects ![SQL Inserts](https://img.shields.io/badge/SQL_Inserts-0-22c55e?style=flat-s