Source Code Analysis Scope
Files includes and excluded from analyses
snap
mjs
mdx
gitattributes
plist
editorconfig
npmrc
ini
vscodeignore
prettierignore

scoping details...
  • 27 extensions are included in analyses: ts, tsx, md, snap, svg, json, yml, js, py, toml, cjs, sh, txt, html, gitignore, yaml, dockerignore, mjs, mdx, gitattributes, plist, editorconfig, npmrc, ini, cs, vscodeignore, prettierignore
  • 7 criteria are used to exclude files from analysis:
    • exclude files with path like ".*/docs/.*" (Documentation) (98 files).
    • exclude files with path like ".*/(3rd|[Tt]hird)[-_]?[Pp]arty/.*" (Dependencies) (3 files).
    • exclude files with path like ".*/git[-]commit[-]trailers[.]txt" (Git history trailers) (1 file).
    • exclude files with path like ".*/git[-][a-zA-Z0-9_]+[.]txt" (Git data exports for sokrates analyses) (1 file).
    • exclude files with path like ".*/_sokrates/.*" (Sokrates files) (0 files).
    • exclude files with path like ".*/_sokrates_landscape/.*" (Sokrates landscape files) (0 files).
    • exclude files with path like ".*/sokrates_.*?[.]json" (Sokrates conventions and configurations) (0 files).
Overview of Analyzed Files
Basic stats on analyzed files
Intro
For analysis purposes we separate files in scope into several categories: main, test, generated, deployment and build, and other.
main242530 LOC (38%) 1,300 files
test340345 LOC (54%) 1,155 files
generated6838 LOC (1%) 2 files
build and deployment8223 LOC (1%) 81 files
other25579 LOC (4%) 250 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
mjs
Explore:   circles  |  sunburst

ts189065 LOC (77%) 963 files
tsx39602 LOC (16%) 204 files
js6702 LOC (2%) 50 files
py2999 LOC (1%) 34 files
cjs1826 LOC (<1%) 11 files
toml861 LOC (<1%) 21 files
yaml566 LOC (<1%) 12 files
mjs446 LOC (<1%) 3 files
cs438 LOC (<1%) 1 file
html25 LOC (<1%) 1 file

scope details...
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 1300 files match defined criteria (242,530 LOC, 100.0% vs. main code):
    • 963 ts files (189,065 LOC)
    • 204 tsx files (39,602 LOC)
    • 50 js files (6,702 LOC)
    • 34 py files (2,999 LOC)
    • 11 cjs files (1,826 LOC)
    • 21 toml files (861 LOC)
    • 12 yaml files (566 LOC)
    • 3 mjs files (446 LOC)
    • 1 cs files (438 LOC)
    • 1 html files (25 LOC)
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
snap
Explore:   circles  |  sunburst

ts265982 LOC (78%) 797 files
tsx62168 LOC (18%) 214 files
snap9432 LOC (2%) 117 files
js1371 LOC (<1%) 4 files
py1186 LOC (<1%) 15 files
html161 LOC (<1%) 7 files
yaml45 LOC (<1%) 1 file

scope details...
  • The following criteria are used to filter files:
    • files with paths like ".*[-]test[-].*".
    • files with paths like ".*[.][Tt]est[.].*".
    • files with paths like ".*[.]test[.].*".
    • files with paths like ".*/vitest[.].*".
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*/test_.*".
    • files with paths like ".*[-]tests/.*".
    • files with paths like ".*/mock[^/]*/.*".
    • files with paths like ".*/[Mm]ocks/.*".
    • files with paths like ".*/__mock[^/]*/.*".
    • files with paths like ".*[.]snap".
    • files with paths like ".*[.]spec[.]ts".
    • files with paths like ".*/test[-]data/.*".
  • 1155 files match defined criteria (340,345 LOC, 140.3% vs. main code):
    • 797 ts files (265,982 LOC)
    • 214 tsx files (62,168 LOC)
    • 117 snap files (9,432 LOC)
    • 4 js files (1,371 LOC)
    • 15 py files (1,186 LOC)
    • 7 html files (161 LOC)
    • 1 yaml files (45 LOC)
Generated Code
Automatically generated files, not manually changed after generation.
Explore:   circles  |  sunburst

json6838 LOC (100%) 2 files

scope details...
  • The following criteria are used to filter files:
    • files with paths like ".*/package[-]lock[.]json".
  • 2 files match defined criteria (6,838 LOC, 2.8% vs. main code). All matches are in json files.
Build and Deployment Code
Source code used to configure or support build and deployment process.
prettierignore
gitattributes
editorconfig
vscodeignore
npmrc
Explore:   circles  |  sunburst

yaml7253 LOC (88%) 58 files
sh783 LOC (9%) 10 files
gitignore71 LOC (<1%) 3 files
dockerignore48 LOC (<1%) 5 files
prettierignore27 LOC (<1%) 1 file
gitattributes22 LOC (<1%) 1 file
editorconfig11 LOC (<1%) 1 file
vscodeignore7 LOC (<1%) 1 file
npmrc1 LOC (<1%) 1 file

scope details...
  • The following criteria are used to filter files:
    • files with paths like ".*[.]sh".
    • files with paths like ".*/requirements[a-zA-Z0-9._-]*[.]txt".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/[.]dockerignore".
    • files with paths like "(.*/)?[.]dockerignore".
    • files with paths like ".*/package[-]lock[.]json".
    • files with paths like ".*/package[.]json".
    • files with paths like ".*/Dockerfile[.][a-zA-Z0-9._-]+".
    • files with paths like ".*[.]npmrc".
    • files with paths like "(.*/)?[.]npmrc".
    • files with paths like ".*/[.]prettierignore".
    • files with paths like "(.*/)?[.]prettierignore".
    • files with paths like ".*[.]editorconfig".
    • files with paths like "(.*/)?[.]editorconfig".
    • files with paths like "(.*/)?[.]prettierrc([.].*)?".
    • files with paths like ".*/[.]vscodeignore".
    • files with paths like "(.*/)?[.](idea|vscode|vs|gradle|mvn|settings|metadata|circleci)/.*".
    • files with paths like ".*/[.]github/workflows/.*[.]ya?ml".
    • files with paths like ".*/[.]github/actions/.*[.]ya?ml".
    • files with paths like ".*/action[.]ya?ml".
    • files with paths like ".*/[.]gitattributes".
  • 81 files match defined criteria (8,223 LOC, 3.4% vs. main code):
    • 58 yaml files (7,253 LOC)
    • 10 sh files (783 LOC)
    • 3 gitignore files (71 LOC)
    • 5 dockerignore files (48 LOC)
    • 1 prettierignore files (27 LOC)
    • 1 gitattributes files (22 LOC)
    • 1 editorconfig files (11 LOC)
    • 1 vscodeignore files (7 LOC)
    • 1 npmrc files (1 LOC)
Other Code
plist
ini
Explore:   circles  |  sunburst

json10926 LOC (42%) 58 files
svg6396 LOC (25%) 98 files
md5931 LOC (23%) 73 files
txt1797 LOC (7%) 6 files
tsx231 LOC (<1%) 2 files
gitignore105 LOC (<1%) 5 files
ts83 LOC (<1%) 2 files
js53 LOC (<1%) 2 files
toml30 LOC (<1%) 2 files
plist14 LOC (<1%) 1 file
ini13 LOC (<1%) 1 file

scope details...
  • The following criteria are used to filter files:
    • files with paths like ".*[.]json".
    • files with paths like ".*[.]md".
    • files with paths like ".*[.]txt".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*[.]ini".
    • files with paths like ".*/[Ee]xamples/.*".
    • files with paths like ".*[.]mdx".
    • files with paths like ".*[.]plist".
    • files with paths like ".*[.]svg".
  • 250 files match defined criteria (25,579 LOC, 10.5% vs. main code):
    • 58 json files (10,926 LOC)
    • 98 svg files (6,396 LOC)
    • 73 md files (5,931 LOC)
    • 6 txt files (1,797 LOC)
    • 2 tsx files (231 LOC)
    • 5 gitignore files (105 LOC)
    • 2 ts files (83 LOC)
    • 2 js files (53 LOC)
    • 2 toml files (30 LOC)
    • 1 plist files (14 LOC)
    • 1 ini files (13 LOC)
About This Analysis
learn more about scopes (main, test, generated, build, other)...

  • The main category contains all manually created source code files that are being used in the production.
  • Files in the main category are used as input for other analyses: logical decomposition, concerns, duplication, file size, unit size, and conditional complexity.
  • Test source code files are used only for testing of the product. These files are normally not deployed to production.
  • Build and deployment source code files are used to configure or support build and deployment process.
  • Generated source code files are automatically generated files that have not been manually changed after generation.
  • While a source code folder may contain a number of files, we are primarily interested in the source code files that are being written and maintained by developers.
  • Files containing binaries, documentation, or third-party libraries, for instance, are excluded from analysis. The exception are third-party libraries that have been changed by developers.

learn more about used code analyzers...
  • *.ts files are analyzed with TypeScriptAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • No dependency analysis
  • *.tsx files are analyzed with TypeScriptAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • No dependency analysis
  • *.js files are analyzed with JavaScriptAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • No dependency analysis
  • *.py files are analyzed with PythonAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Basic heuristic dependency analysis
  • *.cjs files are analyzed with JavaScriptAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • No dependency analysis
  • *.toml files are analyzed with DefaultLanguageAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Basic code cleaning (empty lines removed for LOC calculations and duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.yaml files are analyzed with YamlAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.mjs files are analyzed with DefaultLanguageAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Basic code cleaning (empty lines removed for LOC calculations and duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.cs files are analyzed with CSharpAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Advanced heuristic dependency analysis (based on namespace heuristics)
  • *.html files are analyzed with HtmlAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Advanced heuristic dependency analysis