nodeunit
Easy unit testing for node.js and the browser.
Supply chain provenance
Status for the latest visible version.
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
Accepted risks
Findings the reviewer chose to accept rather than block on.
| Source | Rule | Reason | Accepted by | When |
|---|---|---|---|---|
| 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 findingsThis 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.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.11.2
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.11.1
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.11.0
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.10.2
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.10.1
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.10.0
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.9.5
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.9.4
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.9.3
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.9.2
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.9.1
2 findingsPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
[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 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.8.8
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.8.7
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.8.6
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.8.5
2 findingsPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
[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 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.7.3
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.7.2
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.7.1
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.7.0
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.6.4
2 findingsAll previous maintainers (caolan mcmahon) were replaced by new maintainers (caolan). This is a strong signal of a potential package hijack and requires careful review.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.6.3
2 findingsAll previous maintainers (caolan mcmahon) were replaced by new maintainers (caolan). This is a strong signal of a potential package hijack and requires careful review.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.6.2
2 findingsAll previous maintainers (caolan mcmahon) were replaced by new maintainers (caolan). This is a strong signal of a potential package hijack and requires careful review.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.6.1
2 findingsAll previous maintainers (caolan mcmahon) were replaced by new maintainers (caolan). This is a strong signal of a potential package hijack and requires careful review.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.6.0
2 findingsAll previous maintainers (caolan mcmahon) were replaced by new maintainers (caolan). This is a strong signal of a potential package hijack and requires careful review.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.5.5
4 findingsNewly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.5.4
2 findingsAll previous maintainers (caolan mcmahon) were replaced by new maintainers (caolan). This is a strong signal of a potential package hijack and requires careful review.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.5.3
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.5.2
7 findingsNewly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.5.1
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.5.0
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.4.0
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.3.1
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.2.4
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.2.3
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.2.2
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.2.1
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.2.0
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.1.2
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.1.1
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.1.0
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.