wru
sync and async JavaScript tests have never been that easy
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
Keywords
Accepted risks
Findings the reviewer chose to accept rather than block on.
| Source | Rule | Reason | Accepted by | When |
|---|---|---|---|---|
| source-diff | net-exec-file:build/wru.dom.js | AI (source-diff): DOM-specific build of the wru test framework. Dynamic code execution patterns are part of the test runner's assertion/async mechanism, not malware. | ai | |
| source-diff | obfuscated-file:build/template.phantom.js | AI (source-diff): Minified PhantomJS build artifact of the wru test framework. Standard minification, not malicious obfuscation. | ai | |
| source-diff | obfuscated-file:build/wru.console.js | AI (source-diff): Minified console build of the wru test framework. Standard minification with clear copyright headers from known author. | ai | |
| source-diff | net-exec-file:build/wru.console.max.js | AI (source-diff): Unminified build artifact with timer polyfills for Rhino/Node. No actual external network calls — patterns are Rhino Java interop and Node require(). Legitimate test framework code. | ai | |
| source-diff | obfuscated-file:build/template.js | AI (source-diff): Minified build artifact of the wru test framework by known author @WebReflection. Not obfuscated malware — standard minification of legitimate test runner code. | ai | |
| semgrep | semgrep:child-process-import | AI (semgrep): child_process usage is in builder/JSBuilder.js (a build tool script), not runtime code. Expected for a build pipeline in a test framework. | ai | |
| semgrep | semgrep:eval-usage | AI (semgrep): eval() is in wru.debug — an explicitly documented debug utility for inspecting internals. Intentional and scoped to non-production debug mode in a test framework. | ai | |
| semgrep | semgrep:dynamic-require | AI (semgrep): The dynamic require resolves a hardcoded local filename via path.join(__dirname, ...) — deterministic and safe; not arbitrary module loading. Stable false positive for this package. | ai |
Versions (showing 17 of 17)
| Version | Deps | Published |
|---|---|---|
| 0.3.0 | 0 / 0 | |
| 0.2.7 | 0 / 0 | |
| 0.2.6 | 0 / 0 | |
| 0.2.5 | 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.9 | 0 / 0 | |
| 0.1.8 | 0 / 0 | |
| 0.1.7 | 0 / 0 | |
| 0.1.5 | 0 / 0 | |
| 0.1.4 | 0 / 0 | |
| 0.1.3 | 0 / 0 | |
| 0.1.2 | 0 / 0 | |
| 0.1.0 | 0 / 0 |
v0.3.0
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.2.7
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.2.6
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.2.5
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.2.4
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.2.3
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.2.2
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.2.1
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.2.0
6 findingsNewly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.
Newly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.
Newly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.
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.1.9
6 findingsNewly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.
Newly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.
Newly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.
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.1.8
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.7
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.5
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.4
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.3
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.2
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.0
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.