node-inspector/node-inspector
Node.js debugger based on Blink Developer Tools
- Repository: https://github.com/node-inspector/node-inspector
- Commit:
79e01c049286374f86dd560742a614019c02402f - Generated: 2026-11-13T23:21:54+00:00
- Scorer 0.1.0, scoring prov-4+qual-2+sec-2, report schema v2
Scores
| Pillar | Score | Signal | Confidence | Coverage |
|---|---|---|---|---|
| AI provenance (estimated AI-generated share) | 0 | none-detected | 65% | 100% |
| Code quality | 64 | weak | 90% | 100% |
| Security | 71 | adequate | 85% | 100% |
AI provenance
No AI attribution or AI-consistent velocity signals detected.
- Explicitly attributed share (lower bound): 0.0%
- Unattributed share in AI-consistent velocity bursts: 0.0%
- Estimated AI-generated share: 0.0%
| Month | Lines added | Attributed to AI |
|---|---|---|
| 2015-06 | 1,303 | 0% |
| 2015-07 | 179 | 0% |
| 2015-08 | 355 | 0% |
| 2015-09 | 219 | 0% |
| 2015-11 | 17 | 0% |
| 2015-12 | 101 | 0% |
| 2016-02 | 186 | 0% |
| 2016-03 | 121 | 0% |
| 2016-04 | 12 | 0% |
| 2017-01 | 1 | 0% |
| 2017-03 | 222 | 0% |
| 2017-04 | 250 | 0% |
AI provenance describes how code was produced; it is not a quality judgment. Unless attribution is explicit, these are signals consistent with AI generation, not proof. Squash/rebase workflows, imported code, and rewritten history reduce accuracy.
Code quality
Code quality is weak: test-to-source ratio 0.02, no CI test run detected; 7% of function code in complex or long functions; 9% duplicated lines. Weakest area: process.
| Area | Score |
|---|---|
| Complexity (lizard) | 82 |
| Duplication | 60 |
| Code smells (Opengrep) | 97 |
| Tests and CI | 46 |
| Documentation | 100 |
| Type safety | 40 |
| Process (Scorecard review/maintenance) | 10 |
- Functions: 12,044; mean complexity 2.4, 90th percentile 5; 115 complex and 13 long functions
- Duplicated lines: 8.6% of 103,488 compared
- Tests: 3,636 test lines for 167,108 source lines (ratio 0.02); CI test commands: none detected; 26% of recent source commits also change tests
- Docs missing or thin: none
Most complex functions:
- _processEvent in front-end/timeline/TimelineModel.js: complexity 64, 155 lines
- WebInspector.TimelineUIUtils._buildTraceEventDetailsSynchronously in front-end/timeline/TimelineUIUtils.js: complexity 59, 136 lines
- TreeOutline.prototype._treeKeyDown in front-end/treeoutline.js: complexity 40, 66 lines
- _treeKeyDown in front-end/ui/treeoutline.js: complexity 40, 66 lines
- WebInspector.TimelineUIUtils.buildDetailsNodeForTraceEvent in front-end/timeline/TimelineUIUtils.js: complexity 39, 95 lines
Security
Security posture is adequate: 5 high-severity SAST findings. Weakest area: posture.
| Area | Score |
|---|---|
| Secrets (gitleaks, tree + history) | 100 |
| Static analysis (Opengrep) | 94 |
| Vulnerable dependencies (OSV) | n/a |
| CI workflows (zizmor) | n/a |
| Posture (policy, updates, signing, lockfiles) | 0 |
| OpenSSF Scorecard | 25 |
- Posture checks passed: none; missing: security policy, dependency updates, signed commits, lockfiles
- OpenSSF Scorecard aggregate: 2.4/10 (published 2026-10-19)
Top findings
| Severity | Finding | Location |
|---|---|---|
| high | opengrep/javascript.browser.security.insecure-document-method: User controlled data in methods like innerHTML, outerHTML or document.write is an anti-pattern that can lead to XSS vulnerabilities [confidence low] |
front-end/devices/DevicesView.js:17 |
| high | opengrep/javascript.browser.security.insecure-innerhtml: User controlled data in a this._devicesHelp.innerHTML is an anti-pattern that can lead to XSS vulnerabilities [confidence low] |
front-end/devices/DevicesView.js:17 |
| high | opengrep/javascript.browser.security.insecure-document-method: User controlled data in methods like innerHTML, outerHTML or document.write is an anti-pattern that can lead to XSS vulnerabilities [confidence low] |
front-end/devices/DevicesView.js:20 |
| high | opengrep/javascript.browser.security.insecure-innerhtml: User controlled data in a this.element.createChild("div", "devices-info").innerHTML is an anti-pattern that can lead to XSS vulnerabilities [confidence low] |
front-end/devices/DevicesView.js:20 |
| high | opengrep/javascript.lang.security.detect-insecure-websocket: Insecure WebSocket Detected. WebSocket Secure (wss) should be used for all WebSocket connections. [confidence low] |
front-end/main/Main.js:267 |
| medium | opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename: Detected that function argument script has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low] |
bin/node-debug.js:180 |
| medium | opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal: Detected possible user input going into a path.join or path.resolve function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low] |
bin/node-debug.js:183 |
| medium | opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal: Detected possible user input going into a path.join or path.resolve function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low] |
bin/node-debug.js:183 |
| medium | opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename: Detected that function argument url has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low] |
bin/node-debug.js:192 |
| medium | opengrep/javascript.lang.security.audit.unsafe-dynamic-method: Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low] |
front-end/UglifyJS/parse-js.js:1202 |
| medium | opengrep/javascript.lang.security.audit.detect-non-literal-regexp: RegExp() called with a regexp function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use hardcoded regexes instead. If your regex is run on user-controll [confidence low] |
front-end/audits/AuditRules.js:712 |
| medium | opengrep/javascript.lang.security.audit.unsafe-dynamic-method: Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low] |
front-end/bindings/CompilerScriptMapping.js:319 |
| medium | opengrep/javascript.lang.security.audit.unsafe-dynamic-method: Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low] |
front-end/bindings/SASSSourceMapping.js:528 |
| medium | opengrep/javascript.lang.security.audit.unsafe-dynamic-method: Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low] |
front-end/bindings/TempFile.js:294 |
| medium | opengrep/javascript.lang.security.audit.unsafe-dynamic-method: Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low] |
front-end/bindings/TempFile.js:331 |
| medium | opengrep/javascript.lang.security.audit.unsafe-dynamic-method: Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low] |
front-end/cm/clike.js:31 |
| medium | opengrep/javascript.lang.security.audit.detect-non-literal-regexp: RegExp() called with a state function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use hardcoded regexes instead. If your regex is run on user-controlle [confidence low] |
front-end/cm/clike.js:247 |
| medium | opengrep/javascript.lang.security.audit.detect-non-literal-regexp: RegExp() called with a words function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use hardcoded regexes instead. If your regex is run on user-controlle [confidence low] |
front-end/cm/coffeescript.js:22 |
| medium | opengrep/javascript.lang.security.audit.unsafe-dynamic-method: Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low] |
front-end/cm/css.js:36 |
| medium | opengrep/javascript.lang.security.audit.unsafe-dynamic-method: Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low] |
front-end/cm/css.js:124 |
| medium | opengrep/javascript.lang.security.audit.unsafe-dynamic-method: Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low] |
front-end/cm/css.js:323 |
| medium | opengrep/javascript.lang.security.audit.unsafe-dynamic-method: Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low] |
front-end/cm/headlesscodemirror.js:93 |
| medium | opengrep/javascript.lang.security.audit.detect-non-literal-regexp: RegExp() called with a words function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use hardcoded regexes instead. If your regex is run on user-controlle [confidence low] |
front-end/cm/python.js:15 |
| medium | opengrep/javascript.lang.security.audit.unsafe-dynamic-method: Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low] |
front-end/components/HandlerRegistry.js:76 |
| medium | opengrep/javascript.lang.security.audit.unsafe-dynamic-method: Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low] |
front-end/console/ConsoleView.js:789 |
Static signals only: the scorer never runs the project's code. Secret findings are pattern matches that were not verified, and secret values are never stored.
Repository profile
- Source lines: 167,108; test lines: 3,636
| Language | Lines |
|---|---|
| JavaScript | 170,550 |
| Shell | 148 |
| Python | 46 |