Code Metrics

Lines of Code

The following repository-wide code line count report is generated automatically during the documentation build using cloc. The report excludes generated outputs and dependency directories to keep the results focused on source and documentation files. Both a language-level summary and a per-file breakdown are produced.

This report is refreshed automatically on every docs build.

Generated with cloc 2.06 in 0.17 seconds.

Lines by language

Language

Files

Blank

Comment

Code

TypeScript

81

2,360

634

24,894

JavaScript

14

849

409

7,470

JSON

23

0

0

7,235

Markdown

19

854

1

2,314

CSS

5

311

4

1,823

Python

2

141

147

525

make

1

20

1

175

Text

1

0

0

6

SVG

1

0

0

5

reStructuredText

1

7

11

2

Lines by file

File

Language

Blank

Comment

Code

.prettierrc.json

JSON

0

0

8

AGENTS.md

Markdown

23

0

87

CHANGELOG.md

Markdown

405

0

818

CODE_OF_CONDUCT.md

Markdown

35

0

88

CONTRIBUTING.md

Markdown

23

0

87

cspell.json

JSON

0

0

63

docs/requirements.txt

Text

0

0

6

docs/source/_generated/coverage-report.md

Markdown

2

1

57

docs/source/_static/css/custom.css

CSS

8

4

38

docs/source/api/index.rst

reStructuredText

7

11

2

docs/source/automated-testing.md

Markdown

50

0

96

docs/source/changelog.md

Markdown

0

0

3

docs/source/code-development.md

Markdown

0

0

3

docs/source/code-metrics.md

Markdown

45

0

86

docs/source/code-of-conduct.md

Markdown

0

0

3

docs/source/complexity_report.js

JavaScript

116

1

962

docs/source/conf.py

Python

107

134

378

docs/source/coverage_report.py

Python

34

13

147

docs/source/detailed-usage.md

Markdown

87

0

319

docs/source/developer-guide.md

Markdown

73

0

189

docs/source/docgen.md

Markdown

10

0

28

docs/source/extension-overview.md

Markdown

63

0

361

docs/source/index.md

Markdown

2

0

21

docs/source/license.md

Markdown

0

0

2

docs/source/security-issues.md

Markdown

0

0

3

eslint.config.mjs

JavaScript

7

37

203

Makefile

make

20

1

175

media/deviceManager.css

CSS

79

0

430

media/deviceManager.js

JavaScript

171

0

1,400

media/loggerPanel.css

CSS

84

0

554

media/loggerPanel.js

JavaScript

209

271

1,653

media/loggerPanel/messaging.js

JavaScript

3

11

135

media/loggerPanel/rendering.js

JavaScript

18

14

95

media/loggerPanel/state.js

JavaScript

19

26

230

media/sftpExplorer.css

CSS

108

0

593

media/sftpExplorer.js

JavaScript

189

26

2,020

media/sidebarView.css

CSS

32

0

208

media/sidebarView.js

JavaScript

49

20

344

package-lock.json

JSON

0

0

6,334

package.json

JSON

0

0

672

package.nls.cs.json

JSON

0

0

7

package.nls.de.json

JSON

0

0

7

package.nls.es.json

JSON

0

0

7

package.nls.fr.json

JSON

0

0

7

package.nls.hu.json

JSON

0

0

7

package.nls.it.json

JSON

0

0

7

package.nls.ja.json

JSON

0

0

7

package.nls.json

JSON

0

0

7

package.nls.ko.json

JSON

0

0

7

package.nls.pl.json

JSON

0

0

7

package.nls.pt-br.json

JSON

0

0

7

package.nls.ru.json

JSON

0

0

7

package.nls.tr.json

JSON

0

0

7

package.nls.zh-cn.json

JSON

0

0

7

package.nls.zh-tw.json

JSON

0

0

7

README.md

Markdown

30

0

53

resources/terminal.svg

SVG

0

0

5

scripts/esbuild.mjs

JavaScript

9

1

49

SECURITY.md

Markdown

6

0

10

src/configuration.ts

TypeScript

43

23

229

src/deviceColor.ts

TypeScript

6

8

17

src/deviceIdentity.ts

TypeScript

16

5

71

src/deviceManagerPanel.ts

TypeScript

146

6

1,271

src/devicePing.ts

TypeScript

11

5

44

src/deviceTree.ts

TypeScript

16

39

118

src/extension.ts

TypeScript

113

37

851

src/highlights.ts

TypeScript

1

5

7

src/hostEndpoints.ts

TypeScript

6

17

27

src/localization/cs.ts

TypeScript

1

1

315

src/localization/de.ts

TypeScript

1

1

326

src/localization/en.ts

TypeScript

0

0

314

src/localization/es.ts

TypeScript

1

1

322

src/localization/fr.ts

TypeScript

1

1

329

src/localization/hu.ts

TypeScript

1

1

324

src/localization/index.ts

TypeScript

15

1

125

src/localization/it.ts

TypeScript

1

1

319

src/localization/ja.ts

TypeScript

1

0

317

src/localization/ko.ts

TypeScript

1

0

310

src/localization/pl.ts

TypeScript

1

1

325

src/localization/pt-br.ts

TypeScript

1

1

323

src/localization/ru.ts

TypeScript

1

0

322

src/localization/tr.ts

TypeScript

1

1

319

src/localization/zh-cn.ts

TypeScript

1

0

308

src/localization/zh-tw.ts

TypeScript

1

0

308

src/logPanel/autoSaveManager.ts

TypeScript

13

20

67

src/logPanel/html.ts

TypeScript

5

13

188

src/logPanel/index.ts

TypeScript

1

5

1

src/logPanel/logPanel.ts

TypeScript

55

41

503

src/logPanel/messageParser.ts

TypeScript

7

9

92

src/logPanel/stateStore.ts

TypeScript

9

24

50

src/logPanel/types.ts

TypeScript

6

7

22

src/logSession/authenticationProvider.ts

TypeScript

16

24

106

src/logSession/connectionManager.ts

TypeScript

21

18

202

src/logSession/errors.ts

TypeScript

2

7

12

src/logSession/fingerprintPersistence.ts

TypeScript

11

24

101

src/logSession/hostKeyVerifier.ts

TypeScript

17

22

88

src/logSession/index.ts

TypeScript

1

5

3

src/logSession/logSession.ts

TypeScript

30

21

295

src/logSession/reconnectionController.ts

TypeScript

11

10

46

src/logSession/types.ts

TypeScript

2

7

9

src/passwordManager.ts

TypeScript

51

39

374

src/sftpExplorer.ts

TypeScript

303

37

3,433

src/sftpSearch.ts

TypeScript

21

14

144

src/sidebarView.ts

TypeScript

26

53

223

src/ssh2.d.ts

TypeScript

5

6

42

src/sshCommandExecution.ts

TypeScript

20

5

106

src/sshCommandRunner.ts

TypeScript

44

24

378

src/sshTerminal.ts

TypeScript

72

35

513

tests/e2e/runTest.js

JavaScript

4

0

30

tests/e2e/suite/extension.test.js

JavaScript

4

1

10

tests/e2e/suite/index.js

JavaScript

7

0

37

tests/e2e/suite/sftpExplorer.test.js

JavaScript

44

1

302

tests/integration/logSession.integration.test.ts

TypeScript

7

0

67

tests/integration/sidebar.integration.test.ts

TypeScript

19

0

224

tests/mocks/ssh.ts

TypeScript

20

0

93

tests/mocks/vscode.ts

TypeScript

57

0

494

tests/unit/authenticationProvider.test.ts

TypeScript

28

0

231

tests/unit/autoSaveManager.test.ts

TypeScript

28

0

107

tests/unit/configuration.test.ts

TypeScript

45

0

372

tests/unit/connectionManager.test.ts

TypeScript

36

0

483

tests/unit/deviceManagerPanel.test.ts

TypeScript

79

0

1,043

tests/unit/devicePing.test.ts

TypeScript

16

0

72

tests/unit/deviceTree.test.ts

TypeScript

17

0

95

tests/unit/extensionPasswordCommands.test.ts

TypeScript

34

0

218

tests/unit/extensionSftpPresetMigration.test.ts

TypeScript

9

0

52

tests/unit/extensionWebBrowserCommands.test.ts

TypeScript

79

0

471

tests/unit/fingerprintPersistence.test.ts

TypeScript

19

0

138

tests/unit/hostEndpoints.test.ts

TypeScript

3

0

38

tests/unit/hostKeyVerifier.test.ts

TypeScript

16

0

89

tests/unit/localization.test.ts

TypeScript

16

1

66

tests/unit/loggerPanelMessaging.test.ts

TypeScript

9

0

42

tests/unit/logPanel.test.ts

TypeScript

78

0

429

tests/unit/logSession.test.ts

TypeScript

51

0

384

tests/unit/messageParser.test.ts

TypeScript

10

0

112

tests/unit/packageNls.test.ts

TypeScript

14

1

79

tests/unit/passwordManager.test.ts

TypeScript

46

0

188

tests/unit/reconnectionController.test.ts

TypeScript

13

0

67

tests/unit/sftpExplorer.test.ts

TypeScript

276

0

3,108

tests/unit/sftpSearch.test.ts

TypeScript

15

0

131

tests/unit/sidebarView.test.ts

TypeScript

14

0

132

tests/unit/sshCommandRunner.test.ts

TypeScript

59

0

486

tests/unit/sshTerminal.test.ts

TypeScript

95

0

721

tests/unit/stateStore.test.ts

TypeScript

15

0

105

tsconfig.eslint.json

JSON

0

0

9

tsconfig.json

JSON

0

0

16

tsconfig.vitest.json

JSON

0

0

8

typedoc.json

JSON

0

0

20

vitest.config.ts

TypeScript

1

7

18


Code Complexity

Complexity metrics are generated during the documentation build using a TypeScript and JavaScript parser. The report covers .ts and .js files under the repository (excluding build outputs) and includes:

  • Cyclomatic complexity (decision points and boolean operators)

  • Halstead complexity measures (volume, difficulty, effort, bugs, time)

  • Maintainability index (standard formula using LOC, Halstead volume, and cyclomatic complexity which translates to time for developer onboarding and for code reviews)

  • Cognitive complexity (nesting-aware approximation)

  • Depth of inheritance (in-repo inheritance depth)

  • Coupling between objects (unique type references and new expressions per class)

Why bother? These metrics help you:

  • Catch potential bugs early

  • Make code easier to understand and maintain

  • Save time and money long-term

Here’s a quick comparison:

Metric

Measures

Why It Matters

Cyclomatic Complexity

Code paths

Higher = harder to test

LOC

Code size

Bigger isn’t always better

Maintainability Index

Ease of maintenance

Higher = easier to work with

Cognitive Complexity

Mental effort to understand

Lower = more readable

Benefits of Tracking Code Complexity

Tracking complexity offers key advantages:

Improved Software Quality

Teams can:

  • Spot potential bug hotspots

  • Cut error risk

  • Boost code readability

Cost-Effective Maintenance

Complex code often means:

  • Longer debugging

  • Tough updates

  • Hard onboarding

Tracking helps teams:

  • Find refactoring targets

  • Streamline maintenance

  • Cut long-term costs

Better Resource Allocation

Complexity metrics guide teams in:

  • Prioritizing refactoring

  • Allocating testing resources

  • Planning code reviews

Enhanced Team Collaboration

Complexity metrics provide:

  • A shared language for code quality

  • Objective measures for reviews

  • Clear improvement goals

Proactive Risk Management

Teams can:

  • Prevent technical debt buildup

  • Catch security issues early

  • Address scalability problems

A study of 12,000+ projects found quality issues caused over 20% of failures. Tracking complexity helps avoid these pitfalls.

Quantifiable Quality Standards

Teams can:

  • Set clear benchmarks

  • Measure progress

  • Compare solutions objectively


Code Complexity Report

Thresholds

Metric

Ideal Range

Action if Exceeded

Cyclomatic complexity (function)

< 10

Break down complex functions

LOC (function)

< 100

Modularize large functions

Depth of inheritance (class)

< 5

Simplify class hierarchies

Coupling between objects (class)

< 5

Reduce class dependencies

Maintainability Index

> 65

Improve the above metrics

Complexity overview

Metric

Count

Average

Max

Cyclomatic complexity (functions)

2,344

2.06

45

Cognitive complexity (functions)

2,344

1.21

63

Maintainability index (files)

91

23.6

74.0

Depth of inheritance (classes)

31

1.32

2

Coupling between objects (classes)

31

8.23

40

Halstead summary

Metric

Value

Operators (distinct)

107

Operators (total)

61,676

Operands (distinct)

8,438

Operands (total)

36,026

Vocabulary

8,545

Length

97,702

Volume

1,276,072.61

Difficulty

228.42

Effort

291,477,940.82

Bugs

425.36

Time (sec)

16,193,218.93

Complexity by file

File

LOC

Functions

Cyclomatic Avg

Cyclomatic Max

Cognitive Avg

Cognitive Max

Maintainability

media/deviceManager.js

1,400

127

2.65

29

1.76

28

0.0

media/loggerPanel.js

1,924

167

2.74

19

1.92

29

0.0

media/loggerPanel/messaging.js

146

4

12.25

45

16.00

63

19.6

media/loggerPanel/rendering.js

109

9

3.56

14

3.56

22

25.9

media/loggerPanel/state.js

256

13

4.15

29

3.23

28

11.9

media/sftpExplorer.js

2,046

204

3.04

31

2.26

37

0.0

media/sidebarView.js

364

40

1.90

10

0.93

9

8.6

src/configuration.ts

252

23

3.35

16

2.83

22

8.7

src/deviceColor.ts

25

3

1.33

2

0.33

1

50.8

src/deviceIdentity.ts

76

7

3.86

7

3.29

7

34.0

src/deviceManagerPanel.ts

1,277

79

3.20

24

2.33

23

0.0

src/devicePing.ts

49

7

1.57

2

0.57

1

38.9

src/deviceTree.ts

157

12

1.58

5

0.58

4

23.6

src/extension.ts

888

67

3.28

24

2.66

31

0.0

src/highlights.ts

12

0

0.00

0

0.00

0

62.6

src/hostEndpoints.ts

44

1

3.00

3

2.00

2

43.4

src/localization/cs.ts

316

0

0.00

0

0.00

0

17.2

src/localization/de.ts

327

0

0.00

0

0.00

0

16.9

src/localization/en.ts

314

0

0.00

0

0.00

0

17.3

src/localization/es.ts

323

0

0.00

0

0.00

0

17.0

src/localization/fr.ts

330

0

0.00

0

0.00

0

16.8

src/localization/hu.ts

325

0

0.00

0

0.00

0

17.0

src/localization/index.ts

126

12

2.25

8

1.25

7

24.1

src/localization/it.ts

320

0

0.00

0

0.00

0

17.1

src/localization/ja.ts

317

0

0.00

0

0.00

0

17.2

src/localization/ko.ts

310

0

0.00

0

0.00

0

17.4

src/localization/pl.ts

326

0

0.00

0

0.00

0

16.9

src/localization/pt-br.ts

324

0

0.00

0

0.00

0

17.0

src/localization/ru.ts

322

0

0.00

0

0.00

0

17.0

src/localization/tr.ts

320

0

0.00

0

0.00

0

17.1

src/localization/zh-cn.ts

308

0

0.00

0

0.00

0

17.5

src/localization/zh-tw.ts

308

0

0.00

0

0.00

0

17.5

src/logPanel/autoSaveManager.ts

87

10

2.20

5

1.40

6

32.5

src/logPanel/html.ts

201

2

1.50

2

0.50

1

20.2

src/logPanel/index.ts

6

0

0.00

0

0.00

0

74.0

src/logPanel/logPanel.ts

544

43

2.09

14

1.23

14

4.1

src/logPanel/messageParser.ts

101

6

5.83

20

5.83

25

26.5

src/logPanel/stateStore.ts

74

10

1.10

2

0.10

1

33.7

src/logPanel/types.ts

29

0

0.00

0

0.00

0

49.3

src/logSession/authenticationProvider.ts

130

8

2.88

4

2.00

4

25.9

src/logSession/connectionManager.ts

220

19

1.79

4

0.79

3

19.1

src/logSession/errors.ts

19

1

1.00

1

0.00

0

55.1

src/logSession/fingerprintPersistence.ts

125

7

4.00

7

3.29

6

25.1

src/logSession/hostKeyVerifier.ts

110

8

2.50

9

1.88

11

28.1

src/logSession/index.ts

8

0

0.00

0

0.00

0

67.0

src/logSession/logSession.ts

316

28

2.46

12

1.57

14

11.0

src/logSession/reconnectionController.ts

56

2

5.00

9

8.00

16

38.1

src/logSession/types.ts

16

0

0.00

0

0.00

0

55.6

src/passwordManager.ts

413

28

2.21

15

1.36

18

10.3

src/sftpExplorer.ts

3,470

206

3.08

30

2.59

40

0.0

src/sftpSearch.ts

158

8

4.38

20

5.13

33

21.1

src/sidebarView.ts

276

12

2.08

10

1.17

10

15.4

src/sshCommandExecution.ts

111

10

2.50

6

1.50

5

26.6

src/sshCommandRunner.ts

402

37

2.57

12

1.81

14

2.5

src/sshTerminal.ts

548

45

2.91

18

2.16

22

0.0

tests/e2e/runTest.js

30

5

1.60

2

0.60

1

45.1

tests/e2e/suite/extension.test.js

11

2

1.00

1

0.00

0

58.9

tests/e2e/suite/index.js

37

6

1.67

4

0.67

3

42.4

tests/e2e/suite/sftpExplorer.test.js

303

53

1.30

3

0.34

3

13.5

tests/integration/logSession.integration.test.ts

67

15

1.00

1

0.00

0

35.3

tests/integration/sidebar.integration.test.ts

224

52

1.04

2

0.04

1

13.7

tests/mocks/ssh.ts

93

16

1.19

3

0.19

2

28.7

tests/mocks/vscode.ts

494

102

1.15

3

0.15

2

0.0

tests/unit/authenticationProvider.test.ts

231

20

1.05

2

0.05

1

18.4

tests/unit/autoSaveManager.test.ts

107

16

1.00

1

0.00

0

26.8

tests/unit/configuration.test.ts

372

23

1.04

2

0.04

1

11.2

tests/unit/connectionManager.test.ts

483

90

1.06

4

0.06

3

0.0

tests/unit/deviceManagerPanel.test.ts

1,043

70

1.10

2

0.10

1

0.0

tests/unit/devicePing.test.ts

72

19

1.00

1

0.00

0

31.9

tests/unit/deviceTree.test.ts

95

6

1.00

1

0.00

0

30.6

tests/unit/extensionPasswordCommands.test.ts

218

19

1.11

2

0.11

1

24.4

tests/unit/extensionSftpPresetMigration.test.ts

52

5

1.00

1

0.00

0

39.0

tests/unit/extensionWebBrowserCommands.test.ts

471

27

1.11

2

0.11

1

15.6

tests/unit/fingerprintPersistence.test.ts

138

10

1.00

1

0.00

0

25.5

tests/unit/hostEndpoints.test.ts

38

2

1.00

1

0.00

0

44.9

tests/unit/hostKeyVerifier.test.ts

89

8

1.00

1

0.00

0

36.6

tests/unit/localization.test.ts

67

10

2.20

5

1.30

4

35.6

tests/unit/loggerPanelMessaging.test.ts

42

6

1.33

2

0.33

1

40.7

tests/unit/logPanel.test.ts

429

60

1.00

1

0.00

0

3.4

tests/unit/logSession.test.ts

384

64

1.00

1

0.00

0

13.5

tests/unit/messageParser.test.ts

112

6

1.00

1

0.00

0

29.3

tests/unit/packageNls.test.ts

80

6

1.50

3

0.67

3

33.3

tests/unit/passwordManager.test.ts

188

22

1.05

2

0.05

1

25.3

tests/unit/reconnectionController.test.ts

67

11

1.00

1

0.00

0

34.4

tests/unit/sftpExplorer.test.ts

3,108

187

1.17

4

0.18

4

0.0

tests/unit/sftpSearch.test.ts

131

11

1.00

1

0.00

0

26.4

tests/unit/sidebarView.test.ts

132

13

1.00

1

0.00

0

25.8

tests/unit/sshCommandRunner.test.ts

486

56

1.14

4

0.14

3

2.8

tests/unit/sshTerminal.test.ts

721

53

1.17

3

0.17

2

0.0

tests/unit/stateStore.test.ts

105

8

1.00

1

0.00

0

30.4

vitest.config.ts

25

0

0.00

0

0.00

0

50.8

Halstead metrics by file

File

Vocabulary

Length

Volume

Difficulty

Effort

Bugs

Time (sec)

media/deviceManager.js

250

1,585

12,625.77

47.54

600,191.61

4.21

33,343.98

media/loggerPanel.js

443

3,406

29,942.70

71.06

2,127,774.96

9.98

118,209.72

media/loggerPanel/messaging.js

141

892

6,368.48

48.59

309,426.32

2.12

17,190.35

media/loggerPanel/rendering.js

120

611

4,220.11

52.24

220,461.68

1.41

12,247.87

media/loggerPanel/state.js

195

1,431

10,886.09

56.14

611,147.73

3.63

33,952.65

media/sftpExplorer.js

350

1,416

11,966.91

29.49

352,948.96

3.99

19,608.28

media/sidebarView.js

137

575

4,081.37

29.86

121,868.90

1.36

6,770.49

src/configuration.ts

190

1,604

12,142.05

90.18

1,094,952.58

4.05

60,830.70

src/deviceColor.ts

40

74

393.82

14.00

5,513.52

0.13

306.31

src/deviceIdentity.ts

54

191

1,099.18

29.50

32,425.91

0.37

1,801.44

src/deviceManagerPanel.ts

472

3,076

27,323.01

79.66

2,176,667.61

9.11

120,925.98

src/devicePing.ts

80

281

1,776.46

32.73

58,138.75

0.59

3,229.93

src/deviceTree.ts

151

698

5,052.41

48.93

247,224.55

1.68

13,734.70

src/extension.ts

247

1,693

13,456.59

84.08

1,131,369.45

4.49

62,853.86

src/highlights.ts

14

25

95.18

4.00

380.74

0.03

21.15

src/hostEndpoints.ts

44

149

813.46

28.80

23,427.51

0.27

1,301.53

src/localization/cs.ts

565

1,186

10,842.54

6.77

73,413.02

3.61

4,078.50

src/localization/de.ts

568

1,186

10,851.60

6.73

73,077.22

3.62

4,059.85

src/localization/en.ts

564

1,175

10,738.97

4.64

49,805.61

3.58

2,766.98

src/localization/es.ts

567

1,186

10,848.59

6.75

73,188.78

3.62

4,066.04

src/localization/fr.ts

568

1,186

10,851.60

6.73

73,077.22

3.62

4,059.85

src/localization/hu.ts

566

1,186

10,845.56

6.76

73,300.72

3.62

4,072.26

src/localization/index.ts

155

817

5,944.59

51.49

306,064.77

1.98

17,003.60

src/localization/it.ts

567

1,186

10,848.59

6.75

73,188.78

3.62

4,066.04

src/localization/ja.ts

565

1,186

10,842.54

6.77

73,413.02

3.61

4,078.50

src/localization/ko.ts

557

1,186

10,818.14

6.87

74,324.99

3.61

4,129.17

src/localization/pl.ts

566

1,186

10,845.56

6.76

73,300.72

3.62

4,072.26

src/localization/pt-br.ts

568

1,186

10,851.60

6.73

73,077.22

3.62

4,059.85

src/localization/ru.ts

567

1,186

10,848.59

6.75

73,188.78

3.62

4,066.04

src/localization/tr.ts

567

1,186

10,848.59

6.75

73,188.78

3.62

4,066.04

src/localization/zh-cn.ts

562

1,186

10,833.43

6.81

73,752.17

3.61

4,097.34

src/localization/zh-tw.ts

566

1,186

10,845.56

6.76

73,300.72

3.62

4,072.26

src/logPanel/autoSaveManager.ts

76

243

1,518.25

33.72

51,194.53

0.51

2,844.14

src/logPanel/html.ts

254

1,817

14,515.44

57.03

827,775.96

4.84

45,987.55

src/logPanel/index.ts

7

7

19.65

2.50

49.13

0.01

2.73

src/logPanel/logPanel.ts

118

404

2,780.59

29.46

81,924.36

0.93

4,551.35

src/logPanel/messageParser.ts

83

590

3,761.27

70.02

263,374.61

1.25

14,631.92

src/logPanel/stateStore.ts

81

426

2,700.78

61.86

167,071.27

0.90

9,281.74

src/logPanel/types.ts

33

96

484.26

8.84

4,281.89

0.16

237.88

src/logSession/authenticationProvider.ts

105

542

3,639.12

56.92

207,149.97

1.21

11,508.33

src/logSession/connectionManager.ts

139

564

4,015.08

41.93

168,332.34

1.34

9,351.80

src/logSession/errors.ts

31

52

257.62

11.08

2,855.27

0.09

158.63

src/logSession/fingerprintPersistence.ts

106

626

4,211.68

75.58

318,321.36

1.40

17,684.52

src/logSession/hostKeyVerifier.ts

116

481

3,298.69

45.41

149,778.30

1.10

8,321.02

src/logSession/index.ts

11

23

79.57

3.60

286.44

0.03

15.91

src/logSession/logSession.ts

147

553

3,981.42

32.80

130,576.44

1.33

7,254.25

src/logSession/reconnectionController.ts

74

260

1,614.46

63.54

102,577.87

0.54

5,698.77

src/logSession/types.ts

30

80

392.55

8.50

3,336.69

0.13

185.37

src/passwordManager.ts

128

420

2,940.00

23.96

70,444.71

0.98

3,913.59

src/sftpExplorer.ts

916

8,565

84,272.78

128.53

10,831,228.34

28.09

601,734.91

src/sftpSearch.ts

146

788

5,665.58

55.85

316,417.40

1.89

17,578.74

src/sidebarView.ts

216

1,284

9,957.28

60.00

597,436.53

3.32

33,190.92

src/sshCommandExecution.ts

134

605

4,274.98

44.69

191,062.64

1.42

10,614.59

src/sshCommandRunner.ts

215

1,252

9,700.74

93.25

904,545.58

3.23

50,252.53

src/sshTerminal.ts

146

416

2,990.97

29.06

86,910.09

1.00

4,828.34

tests/e2e/runTest.js

61

203

1,203.94

19.07

22,954.06

0.40

1,275.23

tests/e2e/suite/extension.test.js

30

78

382.74

9.19

3,516.40

0.13

195.36

tests/e2e/suite/index.js

67

229

1,389.13

18.09

25,127.90

0.46

1,395.99

tests/e2e/suite/sftpExplorer.test.js

74

318

1,974.61

25.56

50,478.50

0.66

2,804.36

tests/integration/logSession.integration.test.ts

82

287

1,824.62

16.76

30,585.54

0.61

1,699.20

tests/integration/sidebar.integration.test.ts

162

1,249

9,167.47

44.00

403,368.80

3.06

22,409.38

tests/mocks/ssh.ts

109

724

4,900.17

66.63

326,473.52

1.63

18,137.42

tests/mocks/vscode.ts

348

3,796

32,049.41

121.13

3,882,041.64

10.68

215,668.98

tests/unit/authenticationProvider.test.ts

137

1,087

7,715.56

36.53

281,856.95

2.57

15,658.72

tests/unit/autoSaveManager.test.ts

112

996

6,780.13

44.86

304,181.09

2.26

16,898.95

tests/unit/configuration.test.ts

217

2,126

16,501.06

58.40

963,591.19

5.50

53,532.84

tests/unit/connectionManager.test.ts

195

3,174

24,145.67

92.72

2,238,700.80

8.05

124,372.27

tests/unit/deviceManagerPanel.test.ts

273

2,599

21,033.08

71.31

1,499,882.06

7.01

83,326.78

tests/unit/devicePing.test.ts

93

577

3,773.09

34.57

130,429.02

1.26

7,246.06

tests/unit/deviceTree.test.ts

109

647

4,379.02

23.96

104,926.07

1.46

5,829.23

tests/unit/extensionPasswordCommands.test.ts

74

209

1,297.78

14.81

19,226.31

0.43

1,068.13

tests/unit/extensionSftpPresetMigration.test.ts

69

302

1,844.77

17.48

32,246.66

0.61

1,791.48

tests/unit/extensionWebBrowserCommands.test.ts

93

217

1,419.00

16.58

23,533.53

0.47

1,307.42

tests/unit/fingerprintPersistence.test.ts

106

894

6,014.76

41.43

249,177.77

2.00

13,843.21

tests/unit/hostEndpoints.test.ts

47

148

822.08

10.82

8,893.40

0.27

494.08

tests/unit/hostKeyVerifier.test.ts

46

123

679.40

10.06

6,836.44

0.23

379.80

tests/unit/localization.test.ts

76

194

1,212.10

20.54

24,900.71

0.40

1,383.37

tests/unit/loggerPanelMessaging.test.ts

71

299

1,838.77

26.69

49,082.74

0.61

2,726.82

tests/unit/logPanel.test.ts

291

3,334

27,288.37

65.36

1,783,580.84

9.10

99,087.82

tests/unit/logSession.test.ts

66

194

1,172.61

12.73

14,932.10

0.39

829.56

tests/unit/messageParser.test.ts

70

653

4,002.42

25.50

102,061.76

1.33

5,670.10

tests/unit/packageNls.test.ts

102

394

2,628.94

27.01

71,017.27

0.88

3,945.40

tests/unit/passwordManager.test.ts

73

221

1,367.95

16.56

22,650.12

0.46

1,258.34

tests/unit/reconnectionController.test.ts

70

482

2,954.31

30.60

90,402.02

0.98

5,022.33

tests/unit/sftpExplorer.test.ts

515

5,984

53,906.44

117.55

6,336,766.25

17.97

352,042.57

tests/unit/sftpSearch.test.ts

121

742

5,133.80

22.48

115,387.01

1.71

6,410.39

tests/unit/sidebarView.test.ts

123

781

5,422.10

35.11

190,388.51

1.81

10,577.14

tests/unit/sshCommandRunner.test.ts

262

2,422

19,456.95

83.36

1,622,010.30

6.49

90,111.68

tests/unit/sshTerminal.test.ts

398

5,049

43,606.32

138.82

6,053,279.37

14.54

336,293.30

tests/unit/stateStore.test.ts

84

487

3,113.06

31.11

96,836.54

1.04

5,379.81

vitest.config.ts

42

86

463.74

6.95

3,222.19

0.15

179.01

Class coupling and inheritance by file

Class

File

DIT

CBO

DeviceManagerPanel

src/deviceManagerPanel.ts

1

23

DeviceItem

src/deviceTree.ts

2

2

DeviceTreeDataProvider

src/deviceTree.ts

1

10

GroupItem

src/deviceTree.ts

2

2

AutoSaveManager

src/logPanel/autoSaveManager.ts

1

2

LogPanel

src/logPanel/logPanel.ts

1

17

WorkspaceStateStore

src/logPanel/stateStore.ts

1

5

AuthenticationProvider

src/logSession/authenticationProvider.ts

1

9

ConnectionManager

src/logSession/connectionManager.ts

1

12

HostKeyMismatchError

src/logSession/errors.ts

2

2

FingerprintPersistence

src/logSession/fingerprintPersistence.ts

1

6

HostKeyVerifier

src/logSession/hostKeyVerifier.ts

1

4

LogSession

src/logSession/logSession.ts

1

21

ReconnectionController

src/logSession/reconnectionController.ts

1

3

PasswordManager

src/passwordManager.ts

1

9

HostKeyMismatchError

src/sftpExplorer.ts

2

1

SftpExplorerPanel

src/sftpExplorer.ts

1

40

SidebarViewProvider

src/sidebarView.ts

1

12

SshCommandError

src/sshCommandRunner.ts

2

1

SshCommandRunner

src/sshCommandRunner.ts

1

18

SshTerminalSession

src/sshTerminal.ts

1

19

MockSftpWrapper

tests/mocks/ssh.ts

1

5

MockSshChannel

tests/mocks/ssh.ts

2

1

MockSshClient

tests/mocks/ssh.ts

2

9

MockWriteStream

tests/unit/autoSaveManager.test.ts

2

1

MockLogSession

tests/unit/logPanel.test.ts

1

1

MemorySftp

tests/unit/sftpExplorer.test.ts

1

8

MockClient

tests/unit/sshTerminal.test.ts

2

7

MockEmitter

tests/unit/sshTerminal.test.ts

1

2

MockSftpSession

tests/unit/sshTerminal.test.ts

1

2

MockShellChannel

tests/unit/sshTerminal.test.ts

2

1

Complexity by function (outside thresholds)

Function

Class

Location

LOC

Cyclomatic

Cognitive

toViewDevice

media/deviceManager.js:164

38

29

28

renderSshCommandsEditor

media/deviceManager.js:638

208

3

2

<anonymous>

media/deviceManager.js:697

150

7

6

createInput

media/deviceManager.js:988

112

16

15

buildHelpJson

media/deviceManager.js:1402

70

10

9

<anonymous>

media/loggerPanel.js:26

1,901

11

10

handleLogLine

media/loggerPanel.js:631

53

19

29

handleBookmarkAction

media/loggerPanel.js:1122

34

11

12

renderStatusText

media/loggerPanel.js:1352

50

14

20

registerMessageHandlers

media/loggerPanel/messaging.js:17

133

1

0

<anonymous>

media/loggerPanel/messaging.js:27

122

45

63

buildHighlightedContent

media/loggerPanel/rendering.js:64

53

14

22

createStateController

media/loggerPanel/state.js:55

207

1

0

restoreStateFromSnapshot

media/loggerPanel/state.js:170

75

29

28

<anonymous>

media/sftpExplorer.js:7

2,041

3

2

handleTestCommand

media/sftpExplorer.js:423

47

18

20

selectNextQuickSearchMatch

media/sftpExplorer.js:578

35

10

10

<anonymous>

media/sftpExplorer.js:723

56

10

9

handleEntryClick

media/sftpExplorer.js:793

36

12

15

updateContextMenuOptions

media/sftpExplorer.js:884

36

11

10

buildModeFromDialog

media/sftpExplorer.js:1034

13

10

9

applyFindOptions

media/sftpExplorer.js:1227

17

10

9

openFindDialog

media/sftpExplorer.js:1284

29

11

10

handleListResponse

media/sftpExplorer.js:1449

34

13

18

deleteSelected

media/sftpExplorer.js:1678

33

13

13

<anonymous>

media/sftpExplorer.js:1934

79

31

37

<anonymous>

media/sftpExplorer.js:2063

38

11

11

<anonymous>

media/sftpExplorer.js:2184

49

17

24

<anonymous>

media/sidebarView.js:7

359

2

1

createDeviceCard

media/sidebarView.js:155

145

10

9

normalizeSshCommands

src/configuration.ts:56

32

16

22

applyDeviceDefaults

src/configuration.ts:169

31

12

11

buildHtml

DeviceManagerPanel

src/deviceManagerPanel.ts:217

210

1

0

saveConfiguration

DeviceManagerPanel

src/deviceManagerPanel.ts:447

126

9

12

getDefaultsFromConfiguration

DeviceManagerPanel

src/deviceManagerPanel.ts:782

18

11

10

normalizeDevice

DeviceManagerPanel

src/deviceManagerPanel.ts:907

54

24

23

<anonymous>

src/deviceManagerPanel.ts:1117

44

13

12

buildBastion

DeviceManagerPanel

src/deviceManagerPanel.ts:1294

22

14

13

migrateLegacyPasswords

src/extension.ts:97

137

24

31

<anonymous>

src/extension.ts:272

42

10

9

activate

src/extension.ts:355

566

2

1

buildLogPanelHtml

src/logPanel/html.ts:17

177

1

0

handleWebviewMessage

LogPanel

src/logPanel/logPanel.ts:160

43

14

14

parseWebviewMessage

src/logPanel/messageParser.ts:26

48

20

25

validateDeviceConfiguration

LogSession

src/logSession/logSession.ts:178

29

12

14

tryReuseStoredSecret

PasswordManager

src/passwordManager.ts:194

70

15

18

collectTestSearchEntries

SftpExplorerPanel

src/sftpExplorer.ts:538

53

18

40

handleTestMessage

SftpExplorerPanel

src/sftpExplorer.ts:594

57

20

21

handleMessage

SftpExplorerPanel

src/sftpExplorer.ts:652

192

30

36

copyEntry

SftpExplorerPanel

src/sftpExplorer.ts:1412

57

16

20

refreshRemoteViewsAfterReconnect

SftpExplorerPanel

src/sftpExplorer.ts:1665

19

10

9

applyPermissions

SftpExplorerPanel

src/sftpExplorer.ts:1973

44

10

12

createSftpConnection

SftpExplorerPanel

src/sftpExplorer.ts:2522

66

15

22

validateDeviceConfiguration

SftpExplorerPanel

src/sftpExplorer.ts:2598

29

12

14

getHtml

SftpExplorerPanel

src/sftpExplorer.ts:2991

732

2

1

compileSftpSearchCommand

src/sftpSearch.ts:89

61

20

33

<anonymous>

src/sidebarView.ts:139

39

10

10

run

SshCommandRunner

src/sshCommandRunner.ts:82

50

12

14

validateDeviceConfiguration

SshCommandRunner

src/sshCommandRunner.ts:141

29

12

14

start

SshTerminalSession

src/sshTerminal.ts:142

73

18

22

validateDeviceConfiguration

SshTerminalSession

src/sshTerminal.ts:231

29

12

14

<anonymous>

tests/e2e/suite/sftpExplorer.test.js:6

300

1

0

<anonymous>

tests/integration/sidebar.integration.test.ts:24

204

1

0

<anonymous>

tests/unit/authenticationProvider.test.ts:30

209

1

0

<anonymous>

tests/unit/configuration.test.ts:37

343

1

0

<anonymous>

tests/unit/connectionManager.test.ts:27

462

1

0

<anonymous>

tests/unit/deviceManagerPanel.test.ts:48

1,002

1

0

<anonymous>

tests/unit/deviceManagerPanel.test.ts:408

131

1

0

<anonymous>

tests/unit/deviceManagerPanel.test.ts:543

115

1

0

<anonymous>

tests/unit/deviceManagerPanel.test.ts:814

107

1

0

<anonymous>

tests/unit/extensionPasswordCommands.test.ts:77

153

1

0

<anonymous>

tests/unit/extensionWebBrowserCommands.test.ts:67

414

1

0

<anonymous>

tests/unit/extensionWebBrowserCommands.test.ts:211

108

1

0

<anonymous>

tests/unit/fingerprintPersistence.test.ts:25

118

1

0

<anonymous>

tests/unit/logPanel.test.ts:64

374

1

0

<anonymous>

tests/unit/logSession.test.ts:46

346

1

0

<anonymous>

tests/unit/messageParser.test.ts:5

110

1

0

<anonymous>

tests/unit/passwordManager.test.ts:42

153

1

0

<anonymous>

tests/unit/sftpExplorer.test.ts:314

2,823

1

0

<anonymous>

tests/unit/sftpExplorer.test.ts:756

111

1

0

<anonymous>

tests/unit/sftpExplorer.test.ts:880

163

4

3

<anonymous>

tests/unit/sftpExplorer.test.ts:1052

181

1

0

<anonymous>

tests/unit/sftpExplorer.test.ts:1593

201

2

1

<anonymous>

tests/unit/sftpExplorer.test.ts:2034

173

1

0

<anonymous>

tests/unit/sftpExplorer.test.ts:2402

153

1

0

<anonymous>

tests/unit/sftpExplorer.test.ts:2652

130

2

1

<anonymous>

tests/unit/sftpSearch.test.ts:9

125

1

0

<anonymous>

tests/unit/sidebarView.test.ts:16

121

1

0

<anonymous>

tests/unit/sshCommandRunner.test.ts:27

464

1

0

<anonymous>

tests/unit/sshTerminal.test.ts:215

529

1

0

<anonymous>

tests/unit/sshTerminal.test.ts:401

120

1

0

<anonymous>

tests/unit/stateStore.test.ts:8

101

1

0

Halstead metrics by function (outside thresholds)

Function

Class

Location

Vocabulary

Length

Volume

Difficulty

Effort

Bugs

Time (sec)

toViewDevice

media/deviceManager.js:164

57

324

1,889.86

26.79

50,621.15

0.63

2,812.29

renderSshCommandsEditor

media/deviceManager.js:638

137

1,481

10,512.19

74.50

783,109.60

3.50

43,506.09

<anonymous>

media/deviceManager.js:697

104

1,073

7,189.57

69.17

497,278.72

2.40

27,626.60

createInput

media/deviceManager.js:988

104

844

5,655.17

45.30

256,179.25

1.89

14,232.18

buildHelpJson

media/deviceManager.js:1402

102

354

2,362.04

19.94

47,093.14

0.79

2,616.29

<anonymous>

media/loggerPanel.js:26

435

3,366

29,502.56

68.17

2,011,329.35

9.83

111,740.52

handleLogLine

media/loggerPanel.js:631

69

392

2,394.54

30.63

73,332.84

0.80

4,074.05

handleBookmarkAction

media/loggerPanel.js:1122

44

133

726.10

16.89

12,264.85

0.24

681.38

renderStatusText

media/loggerPanel.js:1352

65

273

1,644.11

34.11

56,072.68

0.55

3,115.15

registerMessageHandlers

media/loggerPanel/messaging.js:17

127

836

5,842.54

46.02

268,846.28

1.95

14,935.90

<anonymous>

media/loggerPanel/messaging.js:27

121

809

5,597.36

43.37

242,770.62

1.87

13,487.26

buildHighlightedContent

media/loggerPanel/rendering.js:64

67

296

1,795.56

44.59

80,072.38

0.60

4,448.47

createStateController

media/loggerPanel/state.js:55

138

1,214

8,629.75

73.15

631,302.41

2.88

35,072.36

restoreStateFromSnapshot

media/loggerPanel/state.js:170

94

613

4,017.96

49.09

197,258.69

1.34

10,958.82

<anonymous>

media/sftpExplorer.js:7

350

1,415

11,958.46

29.49

352,699.71

3.99

19,594.43

handleTestCommand

media/sftpExplorer.js:423

68

207

1,260.10

16.87

21,253.77

0.42

1,180.76

selectNextQuickSearchMatch

media/sftpExplorer.js:578

63

251

1,500.30

37.53

56,305.27

0.50

3,128.07

<anonymous>

media/sftpExplorer.js:723

50

161

908.66

17.52

15,915.33

0.30

884.19

handleEntryClick

media/sftpExplorer.js:793

72

275

1,696.73

28.54

48,430.56

0.57

2,690.59

updateContextMenuOptions

media/sftpExplorer.js:884

61

258

1,530.13

31.78

48,633.33

0.51

2,701.85

buildModeFromDialog

media/sftpExplorer.js:1034

36

122

630.73

16.39

10,338.50

0.21

574.36

applyFindOptions

media/sftpExplorer.js:1227

52

180

1,026.08

11.27

11,562.16

0.34

642.34

openFindDialog

media/sftpExplorer.js:1284

49

153

859.05

16.20

13,919.30

0.29

773.29

handleListResponse

media/sftpExplorer.js:1449

54

269

1,548.06

31.82

49,256.61

0.52

2,736.48

deleteSelected

media/sftpExplorer.js:1678

48

113

631.10

19.46

12,282.19

0.21

682.34

<anonymous>

media/sftpExplorer.js:1934

63

388

2,319.18

27.21

63,103.40

0.77

3,505.74

<anonymous>

media/sftpExplorer.js:2063

57

209

1,219.07

24.51

29,884.73

0.41

1,660.26

<anonymous>

media/sftpExplorer.js:2184

67

249

1,510.46

25.00

37,761.41

0.50

2,097.86

<anonymous>

media/sidebarView.js:7

137

574

4,074.27

29.86

121,656.95

1.36

6,758.72

createDeviceCard

media/sidebarView.js:155

69

319

1,948.62

21.09

41,089.64

0.65

2,282.76

normalizeSshCommands

src/configuration.ts:56

53

212

1,214.32

44.35

53,852.41

0.40

2,991.80

applyDeviceDefaults

src/configuration.ts:169

52

223

1,271.20

28.79

36,598.20

0.42

2,033.23

buildHtml

DeviceManagerPanel

src/deviceManagerPanel.ts:217

216

1,541

11,950.28

36.94

441,413.53

3.98

24,522.97

saveConfiguration

DeviceManagerPanel

src/deviceManagerPanel.ts:447

121

621

4,296.61

42.99

184,703.86

1.43

10,261.33

getDefaultsFromConfiguration

DeviceManagerPanel

src/deviceManagerPanel.ts:782

54

190

1,093.43

18.14

19,830.82

0.36

1,101.71

normalizeDevice

DeviceManagerPanel

src/deviceManagerPanel.ts:907

61

431

2,556.15

37.56

96,011.40

0.85

5,333.97

<anonymous>

src/deviceManagerPanel.ts:1117

45

149

818.29

16.48

13,488.52

0.27

749.36

buildBastion

DeviceManagerPanel

src/deviceManagerPanel.ts:1294

44

146

797.08

21.67

17,270.00

0.27

959.44

migrateLegacyPasswords

src/extension.ts:97

82

364

2,314.15

50.56

117,003.37

0.77

6,500.19

<anonymous>

src/extension.ts:272

58

287

1,681.24

39.00

65,568.38

0.56

3,642.69

activate

src/extension.ts:355

203

1,473

11,291.04

70.95

801,150.60

3.76

44,508.37

buildLogPanelHtml

src/logPanel/html.ts:17

247

1,792

14,243.47

50.46

718,737.52

4.75

39,929.86

handleWebviewMessage

LogPanel

src/logPanel/logPanel.ts:160

59

203

1,194.18

22.06

26,344.26

0.40

1,463.57

parseWebviewMessage

src/logPanel/messageParser.ts:26

58

263

1,540.65

43.08

66,366.42

0.51

3,687.02

validateDeviceConfiguration

LogSession

src/logSession/logSession.ts:178

41

208

1,114.37

38.85

43,293.31

0.37

2,405.18

tryReuseStoredSecret

PasswordManager

src/passwordManager.ts:194

56

131

760.76

23.28

17,707.43

0.25

983.75

collectTestSearchEntries

SftpExplorerPanel

src/sftpExplorer.ts:538

77

345

2,162.04

44.28

95,733.18

0.72

5,318.51

handleTestMessage

SftpExplorerPanel

src/sftpExplorer.ts:594

66

269

1,625.94

21.23

34,524.17

0.54

1,918.01

handleMessage

SftpExplorerPanel

src/sftpExplorer.ts:652

129

990

6,941.11

56.46

391,925.10

2.31

21,773.62

copyEntry

SftpExplorerPanel

src/sftpExplorer.ts:1412

66

458

2,768.33

58.95

163,185.92

0.92

9,065.88

refreshRemoteViewsAfterReconnect

SftpExplorerPanel

src/sftpExplorer.ts:1665

44

170

928.10

34.50

32,019.57

0.31

1,778.86

applyPermissions

SftpExplorerPanel

src/sftpExplorer.ts:1973

62

287

1,708.85

40.78

69,689.22

0.57

3,871.62

createSftpConnection

SftpExplorerPanel

src/sftpExplorer.ts:2522

76

240

1,499.50

28.37

42,540.24

0.50

2,363.35

validateDeviceConfiguration

SftpExplorerPanel

src/sftpExplorer.ts:2598

40

210

1,117.60

41.45

46,321.78

0.37

2,573.43

getHtml

SftpExplorerPanel

src/sftpExplorer.ts:2991

444

4,369

38,422.80

56.29

2,162,654.91

12.81

120,147.49

compileSftpSearchCommand

src/sftpSearch.ts:89

93

308

2,014.06

27.87

56,126.21

0.67

3,118.12

<anonymous>

src/sidebarView.ts:139

47

181

1,005.38

13.58

13,648.80

0.34

758.27

run

SshCommandRunner

src/sshCommandRunner.ts:82

80

275

1,738.53

40.44

70,309.40

0.58

3,906.08

validateDeviceConfiguration

SshCommandRunner

src/sshCommandRunner.ts:141

40

210

1,117.60

41.45

46,321.78

0.37

2,573.43

start

SshTerminalSession

src/sshTerminal.ts:142

90

367

2,382.51

47.60

113,407.48

0.79

6,300.42

validateDeviceConfiguration

SshTerminalSession

src/sshTerminal.ts:231

40

210

1,117.60

41.45

46,321.78

0.37

2,573.43

<anonymous>

tests/e2e/suite/sftpExplorer.test.js:6

67

298

1,807.69

25.00

45,192.36

0.60

2,510.69

<anonymous>

tests/integration/sidebar.integration.test.ts:24

139

1,102

7,845.07

39.94

313,339.35

2.62

17,407.74

<anonymous>

tests/unit/authenticationProvider.test.ts:30

115

929

6,359.46

33.18

210,978.48

2.12

11,721.03

<anonymous>

tests/unit/configuration.test.ts:37

196

1,957

14,901.99

53.76

801,136.12

4.97

44,507.56

<anonymous>

tests/unit/connectionManager.test.ts:27

179

3,052

22,840.61

90.77

2,073,241.78

7.61

115,180.10

<anonymous>

tests/unit/deviceManagerPanel.test.ts:48

246

2,396

19,030.26

72.76

1,384,656.63

6.34

76,925.37

<anonymous>

tests/unit/deviceManagerPanel.test.ts:408

88

394

2,545.02

21.94

55,831.29

0.85

3,101.74

<anonymous>

tests/unit/deviceManagerPanel.test.ts:543

129

944

6,618.60

30.53

202,083.75

2.21

11,226.88

<anonymous>

tests/unit/deviceManagerPanel.test.ts:814

132

442

3,113.62

15.54

48,372.34

1.04

2,687.35

<anonymous>

tests/unit/extensionPasswordCommands.test.ts:77

115

1,192

8,159.82

49.44

403,428.72

2.72

22,412.71

<anonymous>

tests/unit/extensionWebBrowserCommands.test.ts:67

269

3,206

25,877.11

63.38

1,640,028.85

8.63

91,112.71

<anonymous>

tests/unit/extensionWebBrowserCommands.test.ts:211

117

808

5,551.25

37.55

208,440.66

1.85

11,580.04

<anonymous>

tests/unit/fingerprintPersistence.test.ts:25

89

794

5,141.73

38.26

196,727.15

1.71

10,929.29

<anonymous>

tests/unit/logPanel.test.ts:64

252

3,008

23,995.66

53.21

1,276,760.12

8.00

70,931.12

<anonymous>

tests/unit/logSession.test.ts:46

82

300

1,907.27

22.29

42,504.78

0.64

2,361.38

<anonymous>

tests/unit/messageParser.test.ts:5

64

629

3,774.00

22.81

86,099.00

1.26

4,783.28

<anonymous>

tests/unit/passwordManager.test.ts:42

132

1,246

8,777.32

46.95

412,090.92

2.93

22,893.94

<anonymous>

tests/unit/sftpExplorer.test.ts:314

607

8,962

82,858.64

125.68

10,413,925.83

27.62

578,551.44

<anonymous>

tests/unit/sftpExplorer.test.ts:756

116

1,033

7,084.29

63.66

451,005.95

2.36

25,055.89

<anonymous>

tests/unit/sftpExplorer.test.ts:880

185

1,437

10,822.60

53.90

583,337.88

3.61

32,407.66

<anonymous>

tests/unit/sftpExplorer.test.ts:1052

164

1,490

10,962.75

72.98

800,065.13

3.65

44,448.06

<anonymous>

tests/unit/sftpExplorer.test.ts:1593

156

1,507

10,979.10

52.48

576,193.29

3.66

32,010.74

<anonymous>

tests/unit/sftpExplorer.test.ts:2034

160

1,448

10,602.15

67.68

717,584.67

3.53

39,865.82

<anonymous>

tests/unit/sftpExplorer.test.ts:2402

179

1,160

8,681.23

45.94

398,793.83

2.89

22,155.21

<anonymous>

tests/unit/sftpExplorer.test.ts:2652

125

696

4,848.19

21.01

101,879.24

1.62

5,659.96

<anonymous>

tests/unit/sftpSearch.test.ts:9

115

713

4,880.83

19.88

97,006.58

1.63

5,389.25

<anonymous>

tests/unit/sidebarView.test.ts:16

108

695

4,694.65

33.14

155,594.01

1.56

8,644.11

<anonymous>

tests/unit/sshCommandRunner.test.ts:27

236

2,255

17,775.36

81.51

1,448,875.10

5.93

80,493.06

<anonymous>

tests/unit/sshTerminal.test.ts:215

319

3,683

30,633.03

97.31

2,980,851.02

10.21

165,602.83

<anonymous>

tests/unit/sshTerminal.test.ts:401

93

791

5,172.47

38.11

197,145.18

1.72

10,952.51

<anonymous>

tests/unit/stateStore.test.ts:8

75

435

2,709.54

30.51

82,666.41

0.90

4,592.58

Class coupling and inheritance by function (outside thresholds)

Function

Class

Location

DIT

CBO

toViewDevice

media/deviceManager.js:164

1

0

renderSshCommandsEditor

media/deviceManager.js:638

1

0

<anonymous>

media/deviceManager.js:697

1

0

createInput

media/deviceManager.js:988

1

0

buildHelpJson

media/deviceManager.js:1402

1

0

<anonymous>

media/loggerPanel.js:26

1

0

handleLogLine

media/loggerPanel.js:631

1

0

handleBookmarkAction

media/loggerPanel.js:1122

1

0

renderStatusText

media/loggerPanel.js:1352

1

0

registerMessageHandlers

media/loggerPanel/messaging.js:17

1

0

<anonymous>

media/loggerPanel/messaging.js:27

1

0

buildHighlightedContent

media/loggerPanel/rendering.js:64

1

0

createStateController

media/loggerPanel/state.js:55

1

0

restoreStateFromSnapshot

media/loggerPanel/state.js:170

1

0

<anonymous>

media/sftpExplorer.js:7

1

0

handleTestCommand

media/sftpExplorer.js:423

1

0

selectNextQuickSearchMatch

media/sftpExplorer.js:578

1

0

<anonymous>

media/sftpExplorer.js:723

1

0

handleEntryClick

media/sftpExplorer.js:793

1

0

updateContextMenuOptions

media/sftpExplorer.js:884

1

0

buildModeFromDialog

media/sftpExplorer.js:1034

1

0

applyFindOptions

media/sftpExplorer.js:1227

1

0

openFindDialog

media/sftpExplorer.js:1284

1

0

handleListResponse

media/sftpExplorer.js:1449

1

0

deleteSelected

media/sftpExplorer.js:1678

1

0

<anonymous>

media/sftpExplorer.js:1934

1

0

<anonymous>

media/sftpExplorer.js:2063

1

0

<anonymous>

media/sftpExplorer.js:2184

1

0

<anonymous>

media/sidebarView.js:7

1

0

createDeviceCard

media/sidebarView.js:155

1

0

normalizeSshCommands

src/configuration.ts:56

1

0

applyDeviceDefaults

src/configuration.ts:169

1

0

buildHtml

DeviceManagerPanel

src/deviceManagerPanel.ts:217

1

23

saveConfiguration

DeviceManagerPanel

src/deviceManagerPanel.ts:447

1

23

getDefaultsFromConfiguration

DeviceManagerPanel

src/deviceManagerPanel.ts:782

1

23

normalizeDevice

DeviceManagerPanel

src/deviceManagerPanel.ts:907

1

23

<anonymous>

src/deviceManagerPanel.ts:1117

1

0

buildBastion

DeviceManagerPanel

src/deviceManagerPanel.ts:1294

1

23

migrateLegacyPasswords

src/extension.ts:97

1

0

<anonymous>

src/extension.ts:272

1

0

activate

src/extension.ts:355

1

0

buildLogPanelHtml

src/logPanel/html.ts:17

1

0

handleWebviewMessage

LogPanel

src/logPanel/logPanel.ts:160

1

17

parseWebviewMessage

src/logPanel/messageParser.ts:26

1

0

validateDeviceConfiguration

LogSession

src/logSession/logSession.ts:178

1

21

tryReuseStoredSecret

PasswordManager

src/passwordManager.ts:194

1

9

collectTestSearchEntries

SftpExplorerPanel

src/sftpExplorer.ts:538

1

40

handleTestMessage

SftpExplorerPanel

src/sftpExplorer.ts:594

1

40

handleMessage

SftpExplorerPanel

src/sftpExplorer.ts:652

1

40

copyEntry

SftpExplorerPanel

src/sftpExplorer.ts:1412

1

40

refreshRemoteViewsAfterReconnect

SftpExplorerPanel

src/sftpExplorer.ts:1665

1

40

applyPermissions

SftpExplorerPanel

src/sftpExplorer.ts:1973

1

40

createSftpConnection

SftpExplorerPanel

src/sftpExplorer.ts:2522

1

40

validateDeviceConfiguration

SftpExplorerPanel

src/sftpExplorer.ts:2598

1

40

getHtml

SftpExplorerPanel

src/sftpExplorer.ts:2991

1

40

compileSftpSearchCommand

src/sftpSearch.ts:89

1

0

<anonymous>

src/sidebarView.ts:139

1

0

run

SshCommandRunner

src/sshCommandRunner.ts:82

1

18

validateDeviceConfiguration

SshCommandRunner

src/sshCommandRunner.ts:141

1

18

start

SshTerminalSession

src/sshTerminal.ts:142

1

19

validateDeviceConfiguration

SshTerminalSession

src/sshTerminal.ts:231

1

19

<anonymous>

tests/e2e/suite/sftpExplorer.test.js:6

1

0

<anonymous>

tests/integration/sidebar.integration.test.ts:24

1

0

<anonymous>

tests/unit/authenticationProvider.test.ts:30

1

0

<anonymous>

tests/unit/configuration.test.ts:37

1

0

<anonymous>

tests/unit/connectionManager.test.ts:27

1

0

<anonymous>

tests/unit/deviceManagerPanel.test.ts:48

1

0

<anonymous>

tests/unit/deviceManagerPanel.test.ts:408

1

0

<anonymous>

tests/unit/deviceManagerPanel.test.ts:543

1

0

<anonymous>

tests/unit/deviceManagerPanel.test.ts:814

1

0

<anonymous>

tests/unit/extensionPasswordCommands.test.ts:77

1

0

<anonymous>

tests/unit/extensionWebBrowserCommands.test.ts:67

1

0

<anonymous>

tests/unit/extensionWebBrowserCommands.test.ts:211

1

0

<anonymous>

tests/unit/fingerprintPersistence.test.ts:25

1

0

<anonymous>

tests/unit/logPanel.test.ts:64

1

0

<anonymous>

tests/unit/logSession.test.ts:46

1

0

<anonymous>

tests/unit/messageParser.test.ts:5

1

0

<anonymous>

tests/unit/passwordManager.test.ts:42

1

0

<anonymous>

tests/unit/sftpExplorer.test.ts:314

1

0

<anonymous>

tests/unit/sftpExplorer.test.ts:756

1

0

<anonymous>

tests/unit/sftpExplorer.test.ts:880

1

0

<anonymous>

tests/unit/sftpExplorer.test.ts:1052

1

0

<anonymous>

tests/unit/sftpExplorer.test.ts:1593

1

0

<anonymous>

tests/unit/sftpExplorer.test.ts:2034

1

0

<anonymous>

tests/unit/sftpExplorer.test.ts:2402

1

0

<anonymous>

tests/unit/sftpExplorer.test.ts:2652

1

0

<anonymous>

tests/unit/sftpSearch.test.ts:9

1

0

<anonymous>

tests/unit/sidebarView.test.ts:16

1

0

<anonymous>

tests/unit/sshCommandRunner.test.ts:27

1

0

<anonymous>

tests/unit/sshTerminal.test.ts:215

1

0

<anonymous>

tests/unit/sshTerminal.test.ts:401

1

0

<anonymous>

tests/unit/stateStore.test.ts:8

1

0

Generated on 2026-08-02T05:35:05.453Z.


Test Coverage

The coverage summary is generated automatically when running the test suite (for example, via npm test or make test) and exported into the documentation metrics.

The target is to reach more than 80 percent of code being tested per file.

Overall coverage

Metric

Coverage

Lines

90.9% (3254/3578)

Statements

91.0% (3286/3612)

Functions

91.6% (641/700)

Branches

83.9% (1935/2305)

Coverage by file

File

Lines

Statements

Functions

Branches

src/configuration.ts

100.0% (97/97)

100.0% (98/98)

100.0% (23/23)

88.0% (88/100)

src/deviceColor.ts

100.0% (10/10)

100.0% (10/10)

100.0% (3/3)

100.0% (2/2)

src/deviceIdentity.ts

91.9% (34/37)

92.3% (36/39)

100.0% (7/7)

78.8% (26/33)

src/deviceManagerPanel.ts

90.8% (316/348)

90.9% (319/351)

97.5% (77/79)

83.8% (263/314)

src/devicePing.ts

100.0% (18/18)

100.0% (20/20)

100.0% (7/7)

100.0% (8/8)

src/deviceTree.ts

100.0% (36/36)

100.0% (40/40)

100.0% (12/12)

100.0% (13/13)

src/extension.ts

87.9% (400/455)

88.0% (403/458)

85.1% (57/67)

80.1% (213/266)

src/highlights.ts

100.0% (0/0)

100.0% (0/0)

100.0% (0/0)

100.0% (0/0)

src/hostEndpoints.ts

100.0% (8/8)

100.0% (8/8)

100.0% (1/1)

100.0% (4/4)

src/localization/cs.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/localization/de.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/localization/en.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/localization/es.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/localization/fr.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/localization/hu.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/localization/index.ts

96.5% (28/29)

96.5% (28/29)

100.0% (12/12)

85.7% (30/35)

src/localization/it.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/localization/ja.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/localization/ko.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/localization/pl.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/localization/pt-br.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/localization/ru.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/localization/tr.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/localization/zh-cn.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/localization/zh-tw.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/logPanel/autoSaveManager.ts

94.3% (33/35)

94.6% (35/37)

100.0% (10/10)

83.3% (20/24)

src/logPanel/html.ts

100.0% (15/15)

100.0% (16/16)

100.0% (2/2)

100.0% (0/0)

src/logPanel/index.ts

100.0% (0/0)

100.0% (0/0)

100.0% (0/0)

100.0% (0/0)

src/logPanel/logPanel.ts

94.0% (187/199)

94.0% (189/201)

93.0% (40/43)

81.3% (61/75)

src/logPanel/messageParser.ts

96.2% (25/26)

96.3% (26/27)

100.0% (6/6)

97.7% (43/44)

src/logPanel/stateStore.ts

100.0% (19/19)

100.0% (21/21)

100.0% (10/10)

100.0% (2/2)

src/logSession/authenticationProvider.ts

100.0% (42/42)

100.0% (42/42)

100.0% (8/8)

93.1% (27/29)

src/logSession/connectionManager.ts

93.0% (67/72)

93.0% (67/72)

94.7% (18/19)

86.7% (26/30)

src/logSession/errors.ts

100.0% (5/5)

100.0% (5/5)

100.0% (1/1)

100.0% (0/0)

src/logSession/fingerprintPersistence.ts

94.6% (35/37)

94.6% (35/37)

100.0% (7/7)

84.2% (32/38)

src/logSession/hostKeyVerifier.ts

97.6% (41/42)

97.6% (41/42)

100.0% (8/8)

90.9% (20/22)

src/logSession/index.ts

100.0% (0/0)

100.0% (0/0)

100.0% (0/0)

100.0% (0/0)

src/logSession/logSession.ts

94.5% (121/128)

93.1% (122/131)

82.1% (23/28)

90.5% (67/74)

src/logSession/reconnectionController.ts

95.8% (23/24)

95.8% (23/24)

100.0% (2/2)

91.7% (11/12)

src/passwordManager.ts

95.5% (127/133)

95.5% (127/133)

96.3% (26/27)

84.7% (50/59)

src/sftpExplorer.ts

86.4% (1017/1177)

86.5% (1023/1183)

84.5% (174/206)

80.1% (604/754)

src/sftpSearch.ts

100.0% (51/51)

100.0% (51/51)

100.0% (8/8)

98.1% (53/54)

src/sidebarView.ts

95.1% (58/61)

95.2% (60/63)

100.0% (12/12)

86.7% (13/15)

src/sshCommandExecution.ts

95.5% (42/44)

95.5% (42/44)

100.0% (10/10)

90.0% (27/30)

src/sshCommandRunner.ts

95.8% (161/168)

95.8% (161/168)

94.6% (35/37)

89.0% (97/109)

src/sshTerminal.ts

90.3% (223/247)

90.3% (223/247)

93.3% (42/45)

84.9% (135/159)

Generated from coverage/coverage-summary.json.