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

@coinagerie/languages

v0.0.9

Published

Per-language identifier tokenizers and keyword lists for the coinagerie vocabulary toolchain

Readme

@coinagerie/languages

npm

Per-language identifier tokenizers and keyword lists that coinagerie uses to turn source files into words.

npm install @coinagerie/languages

Languages

One tokenizer per language behind (content, path) => string[], chosen by file extension. Every language also exports its keywords as a plain array, such as pythonKeywords, for a configuration to spread into exclude.words.

| Language | Extensions | Reads | | ---------- | ---------------------------------------- | ------------------------------------------ | | TypeScript | .ts .tsx .mts .cts .js .jsx .mjs .cjs | Names in the compiler's syntax tree | | Python | .py .pyi | Names, and quoted dictionary keys | | SQL | .sql | Names, and quoted identifiers | | Shell | .sh .bash .zsh .ksh | Names, and quoted array keys | | CSS | .css | Selectors, properties, and at-rule names | | HCL | .tf .tfvars .hcl | Names, quoted keys, and block labels | | TOML | .toml | Keys and table names, quoted or bare | | JSON | .json .jsonc | Keys only | | YAML | .yaml .yml | Keys only |

Test

nx run coinagerie-languages:vitest

👔 Conformetry

This project was generated from the nestjs-service-project conformetry template.

🪙 Coinagerie

The words this package uses that the root glossary does not define, regenerated with nx run coinagerie-languages:coinagerie-check:write.

  • breadth: The maximumBreadth limit in this package's callidescope configuration, capping how many callees one callable may make.
  • grammar: The LexicalGrammar object a language constant supplies to the shared scanner, holding its rules and key patterns.
  • splice: Array method call in TYPESCRIPT_KEYWORDS that inserts each keyword in sorted position, avoiding toSorted for older libraries.

🔭 Callidescope

Call stacks traced through projects/ic-suite/coinagerie/coinagerie-languages, deepest first. Each frame shows what it takes, what it returns, and what its documentation says.

| Measure | Value | | --- | --- | | Callables | 38 | | Files | 52 | | Calls traced | 22 | | Call stacks | 11 | | Deepest stack | 4 | | Stacks through recursion | 0 | | Unfollowable calls | 1 |

Limits

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

| Limit | Value | | --- | --- | | maximumDepth | 6 | | maximumBreadth | 9 |

Call stacks (depth)

1. CssService.tokenize — depth 4 · orphan-root

🚀 CssService.tokenize(content: string): string[] [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/css/css.service.ts:34]
   ↳ Every identifier in a CSS stylesheet, repeats kept.
  └─> ScannerService.scan(content: string, grammar: LexicalGrammar): string[] [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/scanner/scanner.service.ts:111]
     ↳ Every identifier in a file written in the grammar's language, in the order written, repeats kept.
    └─> ScannerService.readToken(…): LexicalToken | undefined [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/scanner/scanner.service.ts:73]
       ↳ The token at `index`, or `undefined` when only punctuation is there.
      └─> ScannerService.matchAt(pattern: RegExp, content: string, index: number): null | RegExpExecArray [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/scanner/scanner.service.ts:62]
         ↳ Whether the text at `index` matches a sticky pattern.

2. HclService.tokenize — depth 4 · orphan-root

🚀 HclService.tokenize(content: string): string[] [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/hcl/hcl.service.ts:34]
   ↳ Every identifier in an HCL file, repeats kept.
  └─> ScannerService.scan(content: string, grammar: LexicalGrammar): string[] [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/scanner/scanner.service.ts:111]
     ↳ Every identifier in a file written in the grammar's language, in the order written, repeats kept.
    └─> ScannerService.readToken(…): LexicalToken | undefined [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/scanner/scanner.service.ts:73]
       ↳ The token at `index`, or `undefined` when only punctuation is there.
      └─> ScannerService.matchAt(pattern: RegExp, content: string, index: number): null | RegExpExecArray [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/scanner/scanner.service.ts:62]
         ↳ Whether the text at `index` matches a sticky pattern.

3. JsonService.tokenize — depth 4 · orphan-root

🚀 JsonService.tokenize(content: string): string[] [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/json/json.service.ts:34]
   ↳ Every key in a JSON document, in the order written, repeats kept.
  └─> ScannerService.scan(content: string, grammar: LexicalGrammar): string[] [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/scanner/scanner.service.ts:111]
     ↳ Every identifier in a file written in the grammar's language, in the order written, repeats kept.
    └─> ScannerService.readToken(…): LexicalToken | undefined [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/scanner/scanner.service.ts:73]
       ↳ The token at `index`, or `undefined` when only punctuation is there.
      └─> ScannerService.matchAt(pattern: RegExp, content: string, index: number): null | RegExpExecArray [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/scanner/scanner.service.ts:62]
         ↳ Whether the text at `index` matches a sticky pattern.

4. PythonService.tokenize — depth 4 · orphan-root

🚀 PythonService.tokenize(content: string): string[] [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/python/python.service.ts:33]
   ↳ Every identifier in a Python file, repeats kept.
  └─> ScannerService.scan(content: string, grammar: LexicalGrammar): string[] [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/scanner/scanner.service.ts:111]
     ↳ Every identifier in a file written in the grammar's language, in the order written, repeats kept.
    └─> ScannerService.readToken(…): LexicalToken | undefined [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/scanner/scanner.service.ts:73]
       ↳ The token at `index`, or `undefined` when only punctuation is there.
      └─> ScannerService.matchAt(pattern: RegExp, content: string, index: number): null | RegExpExecArray [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/scanner/scanner.service.ts:62]
         ↳ Whether the text at `index` matches a sticky pattern.

5. ShellService.tokenize — depth 4 · orphan-root

🚀 ShellService.tokenize(content: string): string[] [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/shell/shell.service.ts:33]
   ↳ Every identifier in a shell script, repeats kept.
  └─> ScannerService.scan(content: string, grammar: LexicalGrammar): string[] [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/scanner/scanner.service.ts:111]
     ↳ Every identifier in a file written in the grammar's language, in the order written, repeats kept.
    └─> ScannerService.readToken(…): LexicalToken | undefined [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/scanner/scanner.service.ts:73]
       ↳ The token at `index`, or `undefined` when only punctuation is there.
      └─> ScannerService.matchAt(pattern: RegExp, content: string, index: number): null | RegExpExecArray [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/scanner/scanner.service.ts:62]
         ↳ Whether the text at `index` matches a sticky pattern.

6. SqlService.tokenize — depth 4 · orphan-root

🚀 SqlService.tokenize(content: string): string[] [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/sql/sql.service.ts:33]
   ↳ Every identifier in a SQL script, repeats kept.
  └─> ScannerService.scan(content: string, grammar: LexicalGrammar): string[] [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/scanner/scanner.service.ts:111]
     ↳ Every identifier in a file written in the grammar's language, in the order written, repeats kept.
    └─> ScannerService.readToken(…): LexicalToken | undefined [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/scanner/scanner.service.ts:73]
       ↳ The token at `index`, or `undefined` when only punctuation is there.
      └─> ScannerService.matchAt(pattern: RegExp, content: string, index: number): null | RegExpExecArray [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/scanner/scanner.service.ts:62]
         ↳ Whether the text at `index` matches a sticky pattern.

7. TomlService.tokenize — depth 4 · orphan-root

🚀 TomlService.tokenize(content: string): string[] [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/toml/toml.service.ts:33]
   ↳ Every identifier in a TOML document, repeats kept.
  └─> ScannerService.scan(content: string, grammar: LexicalGrammar): string[] [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/scanner/scanner.service.ts:111]
     ↳ Every identifier in a file written in the grammar's language, in the order written, repeats kept.
    └─> ScannerService.readToken(…): LexicalToken | undefined [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/scanner/scanner.service.ts:73]
       ↳ The token at `index`, or `undefined` when only punctuation is there.
      └─> ScannerService.matchAt(pattern: RegExp, content: string, index: number): null | RegExpExecArray [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/scanner/scanner.service.ts:62]
         ↳ Whether the text at `index` matches a sticky pattern.

8. TypescriptService.tokenize — depth 4 · orphan-root

🚀 TypescriptService.tokenize(content: string, filePath: string): string[] [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/typescript/typescript.service.ts:70]
   ↳ Every identifier in a source file, in the order written, repeats kept.
  └─> TypescriptService.visit(node: ts.Node): void [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/typescript/typescript.service.ts:80]
    └─> TypescriptService.readIdentifier(node: ts.Node): string | undefined [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/typescript/typescript.service.ts:50]
       ↳ The identifier a node spells, or `undefined` when it spells none.
      └─> TypescriptService.isQuotedName(node: ts.Node): node is ts.StringLiteral [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/typescript/typescript.service.ts:38]
         ↳ Whether a node is a string literal naming a key, such as `"quoted-key"`.

9. YamlService.tokenize — depth 3 · orphan-root

🚀 YamlService.tokenize(content: string): string[] [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/yaml/yaml.service.ts:94]
   ↳ Every key in a YAML document, in the order written, repeats kept.
  └─> YamlService.isInsideBlock(line: string, owner: number): boolean [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/yaml/yaml.service.ts:38]
     ↳ Whether a line is text inside the block scalar owned at `owner`.
    └─> YamlService.indentOf(line: string): number [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/yaml/yaml.service.ts:33]
       ↳ How many columns a line is indented.

10. reduce(…) — depth 2 · orphan-root

🚀 reduce(…)(sorted: string[], keyword: string): string[] [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/typescript/typescript.constants.ts:56]
  └─> findIndex(…)(existing: string): boolean [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/typescript/typescript.constants.ts:59]

11. LanguagesService.constructor — depth ≥ 2 · orphan-root

🚀 LanguagesService.constructor(…): LanguagesService [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/languages/languages.service.ts:28]
  └─> LanguagesService.set(…)(content: string, filePath: string): string[] [projects/ic-suite/coinagerie/coinagerie-languages/src/modules/languages/languages.service.ts:53]

Breadth

| Callable | Breadth | Calls directly | Location | | --- | --- | --- | --- | | YamlService.tokenize | 3 | YamlService.isInsideBlock, YamlService.readLine, YamlService.filter(…) | projects/ic-suite/coinagerie/coinagerie-languages/src/modules/yaml/yaml.service.ts:94 | | ScannerService.readToken | 2 | ScannerService.matchAt, ScannerService.isKey | projects/ic-suite/coinagerie/coinagerie-languages/src/modules/scanner/scanner.service.ts:73 | | YamlService.readLine | 2 | YamlService.indentOf, YamlService.matchRule | projects/ic-suite/coinagerie/coinagerie-languages/src/modules/yaml/yaml.service.ts:69 |

| Callable | Breadth | Calls directly | Location | | --- | --- | --- | --- | | ScannerService.scan | 1 | ScannerService.readToken | projects/ic-suite/coinagerie/coinagerie-languages/src/modules/scanner/scanner.service.ts:111 | | CssService.tokenize | 1 | ScannerService.scan | projects/ic-suite/coinagerie/coinagerie-languages/src/modules/css/css.service.ts:34 | | HclService.tokenize | 1 | ScannerService.scan | projects/ic-suite/coinagerie/coinagerie-languages/src/modules/hcl/hcl.service.ts:34 | | JsonService.tokenize | 1 | ScannerService.scan | projects/ic-suite/coinagerie/coinagerie-languages/src/modules/json/json.service.ts:34 | | PythonService.tokenize | 1 | ScannerService.scan | projects/ic-suite/coinagerie/coinagerie-languages/src/modules/python/python.service.ts:33 | | ShellService.tokenize | 1 | ScannerService.scan | projects/ic-suite/coinagerie/coinagerie-languages/src/modules/shell/shell.service.ts:33 | | SqlService.tokenize | 1 | ScannerService.scan | projects/ic-suite/coinagerie/coinagerie-languages/src/modules/sql/sql.service.ts:33 | | TomlService.tokenize | 1 | ScannerService.scan | projects/ic-suite/coinagerie/coinagerie-languages/src/modules/toml/toml.service.ts:33 | | reduce(…) | 1 | findIndex(…) | projects/ic-suite/coinagerie/coinagerie-languages/src/modules/typescript/typescript.constants.ts:56 | | TypescriptService.readIdentifier | 1 | TypescriptService.isQuotedName | projects/ic-suite/coinagerie/coinagerie-languages/src/modules/typescript/typescript.service.ts:50 | | TypescriptService.tokenize | 1 | TypescriptService.visit | projects/ic-suite/coinagerie/coinagerie-languages/src/modules/typescript/typescript.service.ts:70 | | TypescriptService.visit | 1 | TypescriptService.readIdentifier | projects/ic-suite/coinagerie/coinagerie-languages/src/modules/typescript/typescript.service.ts:80 | | YamlService.isInsideBlock | 1 | YamlService.indentOf | projects/ic-suite/coinagerie/coinagerie-languages/src/modules/yaml/yaml.service.ts:38 | | LanguagesService.constructor | 1 | LanguagesService.set(…) | projects/ic-suite/coinagerie/coinagerie-languages/src/modules/languages/languages.service.ts:28 |

🕸️ Codependix

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

Nx Neighborhood

graph LR
  coinagerie_languages["coinagerie-languages"]
  coinagerie_vocabulary["coinagerie-vocabulary"]
  coinagerie_vocabulary --> coinagerie_languages
  classDef subject fill:#7c3aed,color:#fff,stroke:#4c1d95,stroke-width:2px
  class coinagerie_languages subject

NestJS Module Graph

flowchart LR
  CssModule
  HclModule
  JsonModule
  LanguagesModule
  PythonModule
  ScannerModule
  ShellModule
  SqlModule
  TomlModule
  TypescriptModule
  YamlModule
  CssModule --> ScannerModule
  HclModule --> ScannerModule
  JsonModule --> ScannerModule
  LanguagesModule --> CssModule
  LanguagesModule --> HclModule
  LanguagesModule --> JsonModule
  LanguagesModule --> PythonModule
  LanguagesModule --> ShellModule
  LanguagesModule --> SqlModule
  LanguagesModule --> TomlModule
  LanguagesModule --> TypescriptModule
  LanguagesModule --> YamlModule
  PythonModule --> ScannerModule
  ShellModule --> ScannerModule
  SqlModule --> ScannerModule
  TomlModule --> ScannerModule

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_coinagerie_config_ts["coinagerie.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_css_css_constants_ts["src/modules/css/css.constants.ts"]
  file_src_modules_css_css_module_ts["src/modules/css/css.module.ts"]
  file_src_modules_css_css_service_ts["src/modules/css/css.service.ts"]
  file_src_modules_css_css_service_unit_test_ts["src/modules/css/css.service.unit.test.ts"]
  file_src_modules_css_css_types_ts["src/modules/css/css.types.ts"]
  file_src_modules_hcl_hcl_constants_ts["src/modules/hcl/hcl.constants.ts"]
  file_src_modules_hcl_hcl_module_ts["src/modules/hcl/hcl.module.ts"]
  file_src_modules_hcl_hcl_service_ts["src/modules/hcl/hcl.service.ts"]
  file_src_modules_hcl_hcl_service_unit_test_ts["src/modules/hcl/hcl.service.unit.test.ts"]
  file_src_modules_hcl_hcl_types_ts["src/modules/hcl/hcl.types.ts"]
  file_src_modules_json_json_constants_ts["src/modules/json/json.constants.ts"]
  file_src_modules_json_json_module_ts["src/modules/json/json.module.ts"]
  file_src_modules_json_json_service_ts["src/modules/json/json.service.ts"]
  file_src_modules_json_json_service_unit_test_ts["src/modules/json/json.service.unit.test.ts"]
  file_src_modules_json_json_types_ts["src/modules/json/json.types.ts"]
  file_src_modules_languages_languages_constants_ts["src/modules/languages/languages.constants.ts"]
  file_src_modules_languages_languages_module_ts["src/modules/languages/languages.module.ts"]
  file_src_modules_languages_languages_service_ts["src/modules/languages/languages.service.ts"]
  file_src_modules_languages_languages_service_unit_test_ts["src/modules/languages/languages.service.unit.test.ts"]
  file_src_modules_languages_languages_types_ts["src/modules/languages/languages.types.ts"]
  file_src_modules_python_python_constants_ts["src/modules/python/python.constants.ts"]
  file_src_modules_python_python_module_ts["src/modules/python/python.module.ts"]
  file_src_modules_python_python_service_ts["src/modules/python/python.service.ts"]
  file_src_modules_python_python_service_unit_test_ts["src/modules/python/python.service.unit.test.ts"]
  file_src_modules_python_python_types_ts["src/modules/python/python.types.ts"]
  file_src_modules_scanner_scanner_constants_ts["src/modules/scanner/scanner.constants.ts"]
  file_src_modules_scanner_scanner_module_ts["src/modules/scanner/scanner.module.ts"]
  file_src_modules_scanner_scanner_service_ts["src/modules/scanner/scanner.service.ts"]
  file_src_modules_scanner_scanner_service_unit_test_ts["src/modules/scanner/scanner.service.unit.test.ts"]
  file_src_modules_scanner_scanner_types_ts["src/modules/scanner/scanner.types.ts"]
  file_src_modules_shell_shell_constants_ts["src/modules/shell/shell.constants.ts"]
  file_src_modules_shell_shell_module_ts["src/modules/shell/shell.module.ts"]
  file_src_modules_shell_shell_service_ts["src/modules/shell/shell.service.ts"]
  file_src_modules_shell_shell_service_unit_test_ts["src/modules/shell/shell.service.unit.test.ts"]
  file_src_modules_shell_shell_types_ts["src/modules/shell/shell.types.ts"]
  file_src_modules_sql_sql_constants_ts["src/modules/sql/sql.constants.ts"]
  file_src_modules_sql_sql_module_ts["src/modules/sql/sql.module.ts"]
  file_src_modules_sql_sql_service_ts["src/modules/sql/sql.service.ts"]
  file_src_modules_sql_sql_service_unit_test_ts["src/modules/sql/sql.service.unit.test.ts"]
  file_src_modules_sql_sql_types_ts["src/modules/sql/sql.types.ts"]
  file_src_modules_toml_toml_constants_ts["src/modules/toml/toml.constants.ts"]
  file_src_modules_toml_toml_module_ts["src/modules/toml/toml.module.ts"]
  file_src_modules_toml_toml_service_ts["src/modules/toml/toml.service.ts"]
  file_src_modules_toml_toml_service_unit_test_ts["src/modules/toml/toml.service.unit.test.ts"]
  file_src_modules_toml_toml_types_ts["src/modules/toml/toml.types.ts"]
  file_src_modules_typescript_typescript_constants_ts["src/modules/typescript/typescript.constants.ts"]
  file_src_modules_typescript_typescript_constants_unit_test_ts["src/modules/typescript/typescript.constants.unit.test.ts"]
  file_src_modules_typescript_typescript_module_ts["src/modules/typescript/typescript.module.ts"]
  file_src_modules_typescript_typescript_service_ts["src/modules/typescript/typescript.service.ts"]
  file_src_modules_typescript_typescript_service_unit_test_ts["src/modules/typescript/typescript.service.unit.test.ts"]
  file_src_modules_typescript_typescript_types_ts["src/modules/typescript/typescript.types.ts"]
  file_src_modules_yaml_yaml_constants_ts["src/modules/yaml/yaml.constants.ts"]
  file_src_modules_yaml_yaml_module_ts["src/modules/yaml/yaml.module.ts"]
  file_src_modules_yaml_yaml_service_ts["src/modules/yaml/yaml.service.ts"]
  file_src_modules_yaml_yaml_service_unit_test_ts["src/modules/yaml/yaml.service.unit.test.ts"]
  file_src_modules_yaml_yaml_types_ts["src/modules/yaml/yaml.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_css_css_constants_ts --> file_src_modules_scanner_scanner_constants_ts
  file_src_modules_css_css_constants_ts --> file_src_modules_scanner_scanner_types_ts
  file_src_modules_css_css_module_ts --> file_src_modules_css_css_service_ts
  file_src_modules_css_css_module_ts --> file_src_modules_scanner_scanner_module_ts
  file_src_modules_css_css_service_ts --> file_src_modules_css_css_constants_ts
  file_src_modules_css_css_service_ts --> file_src_modules_languages_languages_types_ts
  file_src_modules_css_css_service_ts --> file_src_modules_scanner_scanner_service_ts
  file_src_modules_css_css_service_unit_test_ts --> file_src_modules_css_css_service_ts
  file_src_modules_css_css_service_unit_test_ts --> file_src_modules_scanner_scanner_module_ts
  file_src_modules_hcl_hcl_constants_ts --> file_src_modules_scanner_scanner_constants_ts
  file_src_modules_hcl_hcl_constants_ts --> file_src_modules_scanner_scanner_types_ts
  file_src_modules_hcl_hcl_module_ts --> file_src_modules_hcl_hcl_service_ts
  file_src_modules_hcl_hcl_module_ts --> file_src_modules_scanner_scanner_module_ts
  file_src_modules_hcl_hcl_service_ts --> file_src_modules_hcl_hcl_constants_ts
  file_src_modules_hcl_hcl_service_ts --> file_src_modules_languages_languages_types_ts
  file_src_modules_hcl_hcl_service_ts --> file_src_modules_scanner_scanner_service_ts
  file_src_modules_hcl_hcl_service_unit_test_ts --> file_src_modules_hcl_hcl_service_ts
  file_src_modules_hcl_hcl_service_unit_test_ts --> file_src_modules_scanner_scanner_module_ts
  file_src_modules_json_json_constants_ts --> file_src_modules_scanner_scanner_types_ts
  file_src_modules_json_json_module_ts --> file_src_modules_json_json_service_ts
  file_src_modules_json_json_module_ts --> file_src_modules_scanner_scanner_module_ts
  file_src_modules_json_json_service_ts --> file_src_modules_json_json_constants_ts
  file_src_modules_json_json_service_ts --> file_src_modules_languages_languages_types_ts
  file_src_modules_json_json_service_ts --> file_src_modules_scanner_scanner_service_ts
  file_src_modules_json_json_service_unit_test_ts --> file_src_modules_json_json_service_ts
  file_src_modules_json_json_service_unit_test_ts --> file_src_modules_scanner_scanner_module_ts
  file_src_modules_languages_languages_module_ts --> file_src_modules_css_css_module_ts
  file_src_modules_languages_languages_module_ts --> file_src_modules_hcl_hcl_module_ts
  file_src_modules_languages_languages_module_ts --> file_src_modules_json_json_module_ts
  file_src_modules_languages_languages_module_ts --> file_src_modules_languages_languages_service_ts
  file_src_modules_languages_languages_module_ts --> file_src_modules_python_python_module_ts
  file_src_modules_languages_languages_module_ts --> file_src_modules_shell_shell_module_ts
  file_src_modules_languages_languages_module_ts --> file_src_modules_sql_sql_module_ts
  file_src_modules_languages_languages_module_ts --> file_src_modules_toml_toml_module_ts
  file_src_modules_languages_languages_module_ts --> file_src_modules_typescript_typescript_module_ts
  file_src_modules_languages_languages_module_ts --> file_src_modules_yaml_yaml_module_ts
  file_src_modules_languages_languages_service_ts --> file_src_modules_css_css_service_ts
  file_src_modules_languages_languages_service_ts --> file_src_modules_hcl_hcl_service_ts
  file_src_modules_languages_languages_service_ts --> file_src_modules_json_json_service_ts
  file_src_modules_languages_languages_service_ts --> file_src_modules_languages_languages_types_ts
  file_src_modules_languages_languages_service_ts --> file_src_modules_python_python_service_ts
  file_src_modules_languages_languages_service_ts --> file_src_modules_shell_shell_service_ts
  file_src_modules_languages_languages_service_ts --> file_src_modules_sql_sql_service_ts
  file_src_modules_languages_languages_service_ts --> file_src_modules_toml_toml_service_ts
  file_src_modules_languages_languages_service_ts --> file_src_modules_typescript_typescript_service_ts
  file_src_modules_languages_languages_service_ts --> file_src_modules_yaml_yaml_service_ts
  file_src_modules_languages_languages_service_unit_test_ts --> file_src_modules_css_css_module_ts
  file_src_modules_languages_languages_service_unit_test_ts --> file_src_modules_hcl_hcl_module_ts
  file_src_modules_languages_languages_service_unit_test_ts --> file_src_modules_json_json_module_ts
  file_src_modules_languages_languages_service_unit_test_ts --> file_src_modules_languages_languages_service_ts
  file_src_modules_languages_languages_service_unit_test_ts --> file_src_modules_python_python_module_ts
  file_src_modules_languages_languages_service_unit_test_ts --> file_src_modules_shell_shell_module_ts
  file_src_modules_languages_languages_service_unit_test_ts --> file_src_modules_sql_sql_module_ts
  file_src_modules_languages_languages_service_unit_test_ts --> file_src_modules_toml_toml_module_ts
  file_src_modules_languages_languages_service_unit_test_ts --> file_src_modules_typescript_typescript_module_ts
  file_src_modules_languages_languages_service_unit_test_ts --> file_src_modules_yaml_yaml_module_ts
  file_src_modules_python_python_constants_ts --> file_src_modules_scanner_scanner_constants_ts
  file_src_modules_python_python_constants_ts --> file_src_modules_scanner_scanner_types_ts
  file_src_modules_python_python_module_ts --> file_src_modules_python_python_service_ts
  file_src_modules_python_python_module_ts --> file_src_modules_scanner_scanner_module_ts
  file_src_modules_python_python_service_ts --> file_src_modules_languages_languages_types_ts
  file_src_modules_python_python_service_ts --> file_src_modules_python_python_constants_ts
  file_src_modules_python_python_service_ts --> file_src_modules_scanner_scanner_service_ts
  file_src_modules_python_python_service_unit_test_ts --> file_src_modules_python_python_service_ts
  file_src_modules_python_python_service_unit_test_ts --> file_src_modules_scanner_scanner_module_ts
  file_src_modules_scanner_scanner_constants_ts --> file_src_modules_scanner_scanner_types_ts
  file_src_modules_scanner_scanner_module_ts --> file_src_modules_scanner_scanner_service_ts
  file_src_modules_scanner_scanner_service_ts --> file_src_modules_scanner_scanner_types_ts
  file_src_modules_scanner_scanner_service_unit_test_ts --> file_src_modules_scanner_scanner_constants_ts
  file_src_modules_scanner_scanner_service_unit_test_ts --> file_src_modules_scanner_scanner_service_ts
  file_src_modules_scanner_scanner_service_unit_test_ts --> file_src_modules_scanner_scanner_types_ts
  file_src_modules_shell_shell_constants_ts --> file_src_modules_scanner_scanner_constants_ts
  file_src_modules_shell_shell_constants_ts --> file_src_modules_scanner_scanner_types_ts
  file_src_modules_shell_shell_module_ts --> file_src_modules_scanner_scanner_module_ts
  file_src_modules_shell_shell_module_ts --> file_src_modules_shell_shell_service_ts
  file_src_modules_shell_shell_service_ts --> file_src_modules_languages_languages_types_ts
  file_src_modules_shell_shell_service_ts --> file_src_modules_scanner_scanner_service_ts
  file_src_modules_shell_shell_service_ts --> file_src_modules_shell_shell_constants_ts
  file_src_modules_shell_shell_service_unit_test_ts --> file_src_modules_scanner_scanner_module_ts
  file_src_modules_shell_shell_service_unit_test_ts --> file_src_modules_shell_shell_service_ts
  file_src_modules_sql_sql_constants_ts --> file_src_modules_scanner_scanner_constants_ts
  file_src_modules_sql_sql_constants_ts --> file_src_modules_scanner_scanner_types_ts
  file_src_modules_sql_sql_module_ts --> file_src_modules_scanner_scanner_module_ts
  file_src_modules_sql_sql_module_ts --> file_src_modules_sql_sql_service_ts
  file_src_modules_sql_sql_service_ts --> file_src_modules_languages_languages_types_ts
  file_src_modules_sql_sql_service_ts --> file_src_modules_scanner_scanner_service_ts
  file_src_modules_sql_sql_service_ts --> file_src_modules_sql_sql_constants_ts
  file_src_modules_sql_sql_service_unit_test_ts --> file_src_modules_scanner_scanner_module_ts
  file_src_modules_sql_sql_service_unit_test_ts --> file_src_modules_sql_sql_service_ts
  file_src_modules_toml_toml_constants_ts --> file_src_modules_scanner_scanner_constants_ts
  file_src_modules_toml_toml_constants_ts --> file_src_modules_scanner_scanner_types_ts
  file_src_modules_toml_toml_module_ts --> file_src_modules_scanner_scanner_module_ts
  file_src_modules_toml_toml_module_ts --> file_src_modules_toml_toml_service_ts
  file_src_modules_toml_toml_service_ts --> file_src_modules_languages_languages_types_ts
  file_src_modules_toml_toml_service_ts --> file_src_modules_scanner_scanner_service_ts
  file_src_modules_toml_toml_service_ts --> file_src_modules_toml_toml_constants_ts
  file_src_modules_toml_toml_service_unit_test_ts --> file_src_modules_scanner_scanner_module_ts
  file_src_modules_toml_toml_service_unit_test_ts --> file_src_modules_toml_toml_service_ts
  file_src_modules_typescript_typescript_constants_unit_test_ts --> file_src_modules_typescript_typescript_constants_ts
  file_src_modules_typescript_typescript_module_ts --> file_src_modules_typescript_typescript_service_ts
  file_src_modules_typescript_typescript_service_ts --> file_src_modules_languages_languages_types_ts
  file_src_modules_typescript_typescript_service_ts --> file_src_modules_typescript_typescript_constants_ts
  file_src_modules_typescript_typescript_service_unit_test_ts --> file_src_modules_typescript_typescript_service_ts
  file_src_modules_yaml_yaml_constants_ts --> file_src_modules_yaml_yaml_types_ts
  file_src_modules_yaml_yaml_module_ts --> file_src_modules_yaml_yaml_service_ts
  file_src_modules_yaml_yaml_service_ts --> file_src_modules_languages_languages_types_ts
  file_src_modules_yaml_yaml_service_ts --> file_src_modules_yaml_yaml_constants_ts
  file_src_modules_yaml_yaml_service_ts --> file_src_modules_yaml_yaml_types_ts
  file_src_modules_yaml_yaml_service_unit_test_ts --> file_src_modules_yaml_yaml_service_ts

⏲️ Codometer

Project

Lines of Code Repository Size Folders Source Files

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 SQL Updates SQL Deletes SQL Creates SQL Joins SQL CTEs SQL Comments

HCL

HCL Files HCL Lines HCL Blocks HCL Resources HCL Variables HCL Outputs HCL Attributes HCL Interpolations HCL Comments

CSS

CSS Files CSS Lines CSS Rules CSS Selectors CSS Declarations CSS At Rules CSS Media Queries CSS Custom Properties CSS Comments

Conventions

Module Files Service Files Command Files Constants Files Types Files Utilities Files TypeORM Entities Unit Tests Integration Tests End To End Tests CSS Comment Budget HCL Comment Budget Python Comment Budget SQL Comment Budget TOML Comment Budget TypeScript Comment Budget YAML Comment Budget Shell Comment Budget

Jupyter

Notebooks Notebook Cells Code Cells Markdown Cells Raw Cells Executed Cells Cell Outputs Notebook Code Lines Notebook Classes Notebook Functions Notebook Imports Notebook Decorators Notebook Prose Lines Notebook Headings Notebook Links Notebook Images Notebook Code Blocks Notebook Properties Notebook Nodes Notebook Max Depth

Markdown

Markdown Files Markdown Lines H1 H2 H3 H4 H5 H6 Paragraphs Lists List Items Task List Items Tables Table Rows Links Images Code Blocks Inline Code Block Quotes Thematic Breaks