← Home

nodeunit

Easy unit testing for node.js and the browser.

43
Versions
MIT
License
No
Install Scripts
Missing
Provenance

Supply chain provenance

Status for the latest visible version.

No SLSA provenance npm registry signatures gitHead linked

Without SLSA provenance there is no cryptographic link between this tarball and the public source — the axios compromise (March 2026) relied on exactly this gap.

Maintainers

caolanmreinstein

Accepted risks

Findings the reviewer chose to accept rather than block on.

SourceRuleReasonAccepted byWhen
source-diff net-exec-file:dist/nodeunit/deps/json2.js AI (source-diff): Same json2.js polyfill copied to dist directory. eval() is its documented JSON parsing fallback. Stable false positive. ai
source-diff net-exec-file:deps/json2.js AI (source-diff): json2.js is the well-known public-domain JSON polyfill from json.org. eval() is its documented JSON parsing fallback, not malware. Stable false positive for this package. ai
source-diff net-exec-file:examples/browser/nodeunit.js AI (source-diff): Browser example bundle of nodeunit. eval() is from bundled json2.js polyfill. Legitimate distribution artifact. ai
maintainer-change maintainer-removed AI (maintainer-change): 'caolan mcmahon' was the old npm username for the same person now publishing as 'caolan'; not a real removal. ai
maintainer-change maintainer-added AI (maintainer-change): 'caolan' is the original author's consolidated npm account; same person as prior maintainer 'caolan mcmahon'. ai
maintainer-change maintainer-takeover AI (maintainer-change): The 'takeover' is a cosmetic npm account rename from 'caolan mcmahon' to 'caolan' — same person (Caolan McMahon), same GitHub URL, same repo. Not a hostile takeover. ai
source-diff net-exec-file:dist/browser/test/nodeunit.js AI (source-diff): Browser test bundle of nodeunit; same pattern — XHR and json2.js eval(). Legitimate browser distribution artifact. ai
source-diff net-exec-file:dist/browser/nodeunit.min.js AI (source-diff): Browser bundle of nodeunit itself; 'network calls' are XHR for test reporting and 'dynamic exec' is bundled json2.js eval() parser. Legitimate browser distribution artifact. ai
source-diff net-exec-file:dist/browser/nodeunit.js AI (source-diff): Browser bundle of nodeunit itself; same pattern as .min.js — XHR for test reporting and json2.js eval(). Legitimate browser distribution artifact. ai
semgrep semgrep:new-function-constructor AI (semgrep): new Function() is in the bundled EJS template engine (deps/ejs.js) — standard template compilation mechanism, not a security risk in this context. ai
semgrep semgrep:dynamic-require AI (semgrep): Dynamic require in nodeunit.js loads user-specified test files by path — this is the core functionality of a test runner, not a risk. ai
semgrep semgrep:child-process-spawn AI (semgrep): spawn('mkdir', ['-p', path]) creates JUnit report output directories — a benign, well-scoped use of child_process. ai
provenance publisher-changed AI (provenance): caolan is the original author of nodeunit; the change from mreinstein back to caolan is a return to the canonical maintainer, not a suspicious takeover. ai
semgrep semgrep:eval-usage AI (semgrep): eval() is in deps/json2.js, the well-known Crockford JSON2 polyfill — a decades-old, well-understood pattern with no supply-chain risk. ai
semgrep semgrep:child-process-import AI (semgrep): child_process is used in the JUnit reporter solely to run mkdir -p for creating output directories — legitimate and expected. ai

Versions (showing 43 of 43)

Version Deps Published
0.11.3 2 / 2
0.11.2 2 / 2
0.11.1 2 / 2
0.11.0 2 / 2
0.10.2 1 / 2
0.10.1 1 / 2
0.10.0 1 / 2
0.9.5 1 / 2
0.9.4 1 / 2
0.9.3 1 / 2
0.9.2 1 / 2
0.9.1 1 / 2
0.9.0 1 / 2
0.8.8 1 / 2
0.8.7 1 / 2
0.8.6 1 / 2
0.8.5 1 / 2
0.7.4 1 / 2
0.7.3 2 / 2
0.7.2 2 / 2
0.7.1 2 / 2
0.7.0 2 / 2
0.6.4 2 / 1
0.6.3 2 / 1
0.6.2 2 / 1
0.6.1 2 / 1
0.6.0 2 / 1
0.5.5 0 / 0
0.5.4 0 / 0
0.5.3 0 / 0
0.5.2 0 / 0
0.5.1 0 / 0
0.5.0 0 / 0
0.4.0 0 / 0
0.3.1 0 / 0
0.2.4 0 / 0
0.2.3 0 / 0
0.2.2 0 / 0
0.2.1 0 / 0
0.2.0 0 / 0
0.1.2 0 / 0
0.1.1 0 / 0
0.1.0 0 / 0

v0.11.3

2 findings
HIGH Publisher changed: mreinstein → caolan (on 2018-07-09) provenance

This version was published by a different npm account than previous versions on 2018-07-09. This could indicate a legitimate maintainer transition or an account compromise.

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.11.2

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.11.1

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.11.0

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.10.2

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.10.1

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.10.0

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.9.5

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.9.4

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.9.3

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.9.2

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.9.1

2 findings
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

INFO Publisher changed: caolan → mreinstein (on 2015-03-03) provenance

[Accepted risk] This version was published by a different npm account than previous versions on 2015-03-03. This could indicate a legitimate maintainer transition or an account compromise.

v0.9.0

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.8.8

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.8.7

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.8.6

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.8.5

2 findings
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

INFO Publisher changed: mreinstein → caolan (on 2014-02-15) provenance

[Accepted risk] This version was published by a different npm account than previous versions on 2014-02-15. This could indicate a legitimate maintainer transition or an account compromise.

v0.7.4

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.7.3

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.7.2

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.7.1

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.7.0

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.6.4

2 findings
HIGH Complete maintainer takeover detected maintainer-change

All previous maintainers (caolan mcmahon) were replaced by new maintainers (caolan). This is a strong signal of a potential package hijack and requires careful review.

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.6.3

2 findings
HIGH Complete maintainer takeover detected maintainer-change

All previous maintainers (caolan mcmahon) were replaced by new maintainers (caolan). This is a strong signal of a potential package hijack and requires careful review.

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.6.2

2 findings
HIGH Complete maintainer takeover detected maintainer-change

All previous maintainers (caolan mcmahon) were replaced by new maintainers (caolan). This is a strong signal of a potential package hijack and requires careful review.

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.6.1

2 findings
HIGH Complete maintainer takeover detected maintainer-change

All previous maintainers (caolan mcmahon) were replaced by new maintainers (caolan). This is a strong signal of a potential package hijack and requires careful review.

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.6.0

2 findings
HIGH Complete maintainer takeover detected maintainer-change

All previous maintainers (caolan mcmahon) were replaced by new maintainers (caolan). This is a strong signal of a potential package hijack and requires careful review.

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.5.5

4 findings
HIGH New file with network + code execution: dist/browser/nodeunit.min.js source-diff

Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.

HIGH New file with network + code execution: dist/browser/nodeunit.js source-diff

Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.

HIGH New file with network + code execution: dist/browser/test/nodeunit.js source-diff

Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.5.4

2 findings
HIGH Complete maintainer takeover detected maintainer-change

All previous maintainers (caolan mcmahon) were replaced by new maintainers (caolan). This is a strong signal of a potential package hijack and requires careful review.

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.5.3

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.5.2

7 findings
HIGH New file with network + code execution: deps/json2.js source-diff

Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.

HIGH New file with network + code execution: examples/browser/nodeunit.js source-diff

Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.

HIGH New file with network + code execution: dist/browser/nodeunit.min.js source-diff

Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.

HIGH New file with network + code execution: dist/browser/nodeunit.js source-diff

Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.

HIGH New file with network + code execution: dist/browser/test/nodeunit.js source-diff

Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.

HIGH New file with network + code execution: dist/nodeunit/deps/json2.js source-diff

Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.5.1

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.

v0.5.0

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.

v0.4.0

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.

v0.3.1

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.

v0.2.4

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.

v0.2.3

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.

v0.2.2

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.

v0.2.1

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.

v0.2.0

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.

v0.1.2

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.

v0.1.1

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.

v0.1.0

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.