lab
Test utility
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 |
|---|---|---|---|---|
| provenance | no-provenance | AI (provenance): Established package with 4795 days history and strong publisher track record; provenance attestation is nice-to-have but not required for approval. | ai | |
| dependencies | unvetted-dep:handlebars | AI (dependencies): handlebars is a well-known templating library; its use in lab (a test utility) is expected and benign across versions. | ai | |
| semgrep | semgrep:base64-decode | AI (semgrep): Base64 decoding is used to parse inline source maps in coverage processing — standard, expected behavior for a test/coverage tool. | ai | |
| provenance | publisher-changed | AI (provenance): hueniverse is the original hapi.js ecosystem author; the 2019 transition from wyatt back to hueniverse is a legitimate maintainer change, not a compromise. | ai | |
| phantom-deps | phantom-dep:eslint-plugin-hapi | AI (phantom-deps): eslint-plugin-hapi is declared as a direct dependency in package.json; the phantom-dep finding is a false positive. | ai | |
| semgrep | semgrep:child-process-import | AI (semgrep): child_process is used in lib/lint.js to run ESLint as a subprocess — expected behavior for a test runner with integrated linting support. | ai | |
| semgrep | semgrep:dynamic-require | AI (semgrep): Dynamic require is used to load a local .labrc config file via find-rc — standard test runner configuration loading, not arbitrary code execution risk. | ai |
Versions (showing 100 of 183)
| Version | Deps | Published |
|---|---|---|
| 18.0.2 | 17 / 6 | |
| 18.0.0 | 17 / 5 | |
| 17.2.1 | 17 / 6 | |
| 17.2.0 | 17 / 6 | |
| 17.1.0 | 17 / 5 | |
| 17.0.3 | 17 / 5 | |
| 17.0.2 | 17 / 5 | |
| 17.0.0 | 17 / 5 | |
| 16.1.0 | 17 / 5 | |
| 16.0.0 | 17 / 5 | |
| 15.5.0 | 17 / 5 | |
| 15.4.5 | 17 / 5 | |
| 15.4.4 | 17 / 5 | |
| 15.4.3 | 17 / 5 | |
| 15.4.2 | 17 / 5 | |
| 15.4.1 | 17 / 5 | |
| 15.4.0 | 17 / 5 | |
| 15.3.1 | 17 / 5 | |
| 15.3.0 | 17 / 5 | |
| 15.2.2 | 17 / 5 | |
| 15.2.1 | 17 / 5 | |
| 15.2.0 | 17 / 5 | |
| 15.1.2 | 16 / 5 | |
| 15.1.1 | 16 / 5 | |
| 15.1.0 | 16 / 5 | |
| 15.0.0 | 16 / 5 | |
| 14.3.4 | 18 / 4 | |
| 14.3.3 | 18 / 4 | |
| 14.3.2 | 18 / 4 | |
| 14.3.1 | 18 / 4 | |
| 14.3.0 | 18 / 4 | |
| 14.2.2 | 18 / 4 | |
| 14.2.1 | 17 / 4 | |
| 14.2.0 | 17 / 4 | |
| 14.1.2 | 17 / 4 | |
| 14.1.1 | 17 / 4 | |
| 14.1.0 | 17 / 4 | |
| 14.0.1 | 17 / 4 | |
| 14.0.0 | 17 / 4 | |
| 13.1.0 | 16 / 5 | |
| 13.0.4 | 16 / 5 | |
| 13.0.3 | 16 / 5 | |
| 13.0.2 | 16 / 5 | |
| 13.0.1 | 16 / 5 | |
| 13.0.0 | 16 / 5 | |
| 12.1.0 | 15 / 5 | |
| 12.0.0 | 15 / 5 | |
| 11.2.2 | 15 / 5 | |
| 11.2.1 | 15 / 5 | |
| 11.2.0 | 15 / 5 | |
| 11.1.0 | 14 / 5 | |
| 11.0.1 | 14 / 5 | |
| 11.0.0 | 14 / 5 | |
| 10.9.0 | 14 / 5 | |
| 10.8.2 | 14 / 5 | |
| 10.8.1 | 14 / 5 | |
| 10.8.0 | 14 / 5 | |
| 10.7.1 | 13 / 5 | |
| 10.7.0 | 13 / 5 | |
| 10.6.1 | 13 / 5 | |
| 10.6.0 | 13 / 5 | |
| 10.5.1 | 13 / 5 | |
| 10.5.0 | 13 / 5 | |
| 10.4.0 | 13 / 5 | |
| 10.3.2 | 12 / 5 | |
| 10.3.1 | 12 / 5 | |
| 10.3.0 | 12 / 5 | |
| 10.2.0 | 12 / 5 | |
| 10.1.0 | 12 / 5 | |
| 10.0.0 | 12 / 5 | |
| 9.1.0 | 12 / 5 | |
| 9.0.0 | 12 / 5 | |
| 8.4.0 | 13 / 5 | |
| 8.3.0 | 13 / 5 | |
| 8.2.0 | 13 / 5 | |
| 8.1.0 | 13 / 5 | |
| 8.0.2 | 13 / 4 | |
| 8.0.1 | 13 / 4 | |
| 8.0.0 | 13 / 4 | |
| 7.3.0 | 13 / 4 | |
| 7.2.0 | 13 / 4 | |
| 7.1.0 | 13 / 4 | |
| 7.0.0 | 13 / 4 | |
| 6.2.0 | 13 / 4 | |
| 6.1.0 | 13 / 4 | |
| 6.0.0 | 13 / 4 | |
| 5.18.1 | 13 / 4 | |
| 5.18.0 | 13 / 4 | |
| 5.17.0 | 13 / 2 | |
| 5.16.2 | 13 / 2 | |
| 5.16.1 | 13 / 2 | |
| 5.16.0 | 13 / 2 | |
| 5.15.2 | 12 / 2 | |
| 5.15.1 | 12 / 2 | |
| 5.15.0 | 11 / 2 | |
| 5.14.1 | 11 / 2 | |
| 5.14.0 | 11 / 2 | |
| 5.13.0 | 11 / 2 | |
| 5.12.1 | 11 / 2 | |
| 5.11.1 | 11 / 2 |
v18.0.2
2 findingsThis version was published by a different npm account than previous versions on 2019-02-12. 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.
v18.0.0
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v17.2.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 2018-11-02. This could indicate a legitimate maintainer transition or an account compromise.
v17.2.0
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 2018-11-02. This could indicate a legitimate maintainer transition or an account compromise.
v17.1.0
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 2018-11-01. This could indicate a legitimate maintainer transition or an account compromise.
v17.0.3
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 2018-10-31. This could indicate a legitimate maintainer transition or an account compromise.
v17.0.2
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v17.0.0
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.