pn
Promisify the node standard library.
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 |
|---|---|---|---|---|
| typosquat | typosquat.levenshtein:pg | AI (typosquat): 'pn' (promise+node) is a legitimate 2-letter name with 2M weekly downloads; not a typosquat of 'pg'. | ai | |
| typosquat | typosquat.levenshtein:qs | AI (typosquat): 'pn' is a legitimate 2-letter package; edit distance to 'qs' is coincidental. | ai | |
| typosquat | typosquat.levenshtein:pino | AI (typosquat): 'pn' is a legitimate 2-letter package; edit distance to 'pino' is coincidental. | ai | |
| npm-metadata | suspicious-initial-version | AI (npm-metadata): Package is 11+ years old with 2M weekly downloads; 0.0.0 is its legitimate initial version. | ai | |
| semgrep | semgrep:child-process-import | AI (semgrep): pn is a promisification wrapper for Node stdlib including child_process; importing child_process is the package's core purpose, not a risk. | ai | |
| semgrep | semgrep:dynamic-require | AI (semgrep): Dynamic require is in scripts/generate.js (a codegen build script), used to introspect Node built-ins for auto-generating promise wrappers. Not runtime risk. | ai |
v1.1.0
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.0.1
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.0
2 findingsPackage name 'pn' is 1 edit(s) away from popular package 'pg'.
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.