json-stable-stringify
deterministic JSON.stringify() with custom sorting to get deterministic hashes from stringified results
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 |
|---|---|---|---|---|
| npm-metadata | suspicious-initial-version | AI (npm-metadata): 0.0.0 is the legitimate initial release of this well-established package from 2013 by trusted author substack; not a malicious throwaway. | ai | |
| maintainer-change | maintainer-takeover | AI (maintainer-change): ljharb is a well-known ecosystem steward who has legitimately taken over many abandoned packages from substack. This transfer is consistent with that pattern and ljharb's track record. | ai | |
| provenance | publisher-changed | AI (provenance): Publisher change from substack to ljharb is a documented legitimate stewardship transfer; ljharb is a highly trusted publisher with 4000+ approved packages. | ai | |
| maintainer-change | maintainer-added | AI (maintainer-change): ljharb and nopersonsmodules are trusted maintainers; addition is part of legitimate stewardship transfer from substack. | ai | |
| maintainer-change | maintainer-removed | AI (maintainer-change): substack's removal is consistent with their known pattern of stepping back from npm package maintenance; not indicative of hijack. | ai |
Versions (showing 14 of 14)
| Version | Deps | Published |
|---|---|---|
| 1.3.0 | 5 / 15 | |
| 1.2.1 | 5 / 15 | |
| 1.2.0 | 5 / 15 | |
| 1.1.1 | 4 / 8 | |
| 1.1.0 | 4 / 8 | |
| 1.0.2 | 1 / 8 | |
| 1.0.1 | 1 / 1 | |
| 1.0.0 | 1 / 1 | |
| 0.1.3 | 1 / 1 | |
| 0.1.2 | 1 / 1 | |
| 0.1.1 | 1 / 1 | |
| 0.1.0 | 1 / 1 | |
| 0.0.1 | 1 / 1 | |
| 0.0.0 | 1 / 1 |
v1.1.1
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v1.1.0
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v1.0.2
3 findingsAll previous maintainers (substack) were replaced by new maintainers (ljharb, nopersonsmodules). This is a strong signal of a potential package hijack and requires careful review.
This version was published by a different npm account than previous versions on 2022-11-08. 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.
v1.0.1
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v1.0.0
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.1
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. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.1
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.0
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.