should
test framework agnostic BDD-style assertions
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 |
|---|---|---|---|---|
| publish-pattern | new-deps-added | AI (publish-pattern): should-equal and should-format are first-party shouldjs org packages representing a documented modular refactor; not a supply-chain risk for this package. | ai | |
| source-diff | net-exec-file:es6/should.js | AI (source-diff): es6/should.js is a rollup-bundled ES6 build artifact generated by the package's own build scripts. The 'network + code execution' detection is a false positive on standard ES module imports and assertion library introspection patterns. | ai | |
| source-diff | net-exec-file:cjs/should.js | AI (source-diff): cjs/should.js is a rollup-bundled CJS build artifact generated by the package's own build scripts. The 'network + code execution' detection is a false positive on standard CommonJS require() calls and assertion library introspection patterns. | ai | |
| semgrep | semgrep:dynamic-require | AI (semgrep): Dynamic require in a browserify bundle artifact; not a runtime arbitrary module loader. Stable false positive for this package. | ai | |
| source-diff | net-exec-file:should.js | AI (source-diff): should.js is a standard browserify UMD bundle (browser build artifact). The detected 'network+exec' pattern is the browserify module loader boilerplate, not malware. Stable false positive for this package. | ai | |
| maintainer-change | maintainer-removed | AI (maintainer-change): Original maintainers (tjholowaychuk, gjohnson, travisjeffery) voluntarily transferred the package to btd in 2014. Removal is part of the legitimate handoff. | ai | |
| maintainer-change | maintainer-takeover | AI (maintainer-change): btd is the well-documented legitimate successor maintainer of should.js, taking over from TJ Holowaychuk in 2014. This is a historical, benign transfer, not a hijack. | ai | |
| source-diff | source-size-tripled | AI (source-diff): Size increase is explained by addition of a bundled browser build (should.js, 58KB), standard practice for this library's 3.x release. | ai | |
| provenance | publisher-changed | AI (provenance): Publisher change from tjholowaychuk to btd occurred in 2013 — a well-documented, decade-old legitimate maintainer transition for the should.js library. | ai | |
| maintainer-change | maintainer-added | AI (maintainer-change): New maintainers (gjohnson, travisjeffery, btd) were added as part of the same 2013 legitimate handoff; btd has a strong track record with 57 approved packages. | ai | |
| dependencies | unvetted-dep:should-type-adaptors | AI (dependencies): should-type-adaptors is a first-party sub-module of the shouldjs ecosystem, maintained by the same author. Not a third-party risk. | ai | |
| dependencies | unvetted-dep:should-type | AI (dependencies): should-type is a first-party sub-module of the shouldjs ecosystem, maintained by the same author. Not a third-party risk. | ai | |
| provenance | no-provenance | AI (provenance): Established package predating Sigstore provenance; no provenance is expected and not a risk signal here. | ai | |
| dependencies | unvetted-dep:should-equal | AI (dependencies): should-equal is a first-party sub-module of the shouldjs ecosystem, maintained by the same author. Not a third-party risk. | ai | |
| dependencies | unvetted-dep:should-format | AI (dependencies): should-format is a first-party sub-module of the shouldjs ecosystem, maintained by the same author. Not a third-party risk. | ai | |
| dependencies | unvetted-dep:should-util | AI (dependencies): should-util is a first-party sub-module of the shouldjs ecosystem, maintained by the same author. Not a third-party risk. | ai |
Versions (showing 13 of 113)
| Version | Deps | Published |
|---|---|---|
| 0.4.2 | 0 / 2 | |
| 0.4.1 | 0 / 2 | |
| 0.4.0 | 0 / 2 | |
| 0.3.2 | 0 / 2 | |
| 0.3.1 | 0 / 0 | |
| 0.3.0 | 0 / 0 | |
| 0.2.1 | 0 / 0 | |
| 0.2.0 | 0 / 0 | |
| 0.1.0 | 0 / 0 | |
| 0.0.4 | 0 / 0 | |
| 0.0.3 | 0 / 0 | |
| 0.0.2 | 0 / 0 | |
| 0.0.1 | 0 / 0 |
v0.4.2
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.4.1
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.4.0
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.3.2
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.3.1
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.3.0
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.2.1
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.2.0
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.0
1 finding[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.0.4
1 finding[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.0.3
1 finding[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.0.2
1 finding[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.0.1
1 finding[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.