qrcode
QRCode / 2d Barcode api with both server side and client side support using canvas
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 | large-new-source-files | AI (source-diff): New files are browserify build artifacts (build/ directory) generated by the documented prepublish script. Legitimate for a QR code library adding browser support. | ai | |
| source-diff | obfuscated-file:build/qrcode.tosjis.js | AI (source-diff): File is a browserify bundle containing SJIS/kanji character mapping tables for QR code encoding. Content is legitimate and expected. | ai | |
| source-diff | obfuscated-file:build/qrcode.js | AI (source-diff): File is a standard browserify UMD bundle with visible QR code logic. Minification is expected from the uglify-js devDep and build pipeline. | ai | |
| source-diff | source-size-tripled | AI (source-diff): Size increase is fully explained by addition of browserify build artifacts in build/ directory. | ai | |
| dependencies | unvetted-dep:canvas | AI (dependencies): Canvas is a canonical Node.js graphics library; its use in a QR code package is expected and stable. | ai | |
| semgrep | semgrep:child-process-import | AI (semgrep): child_process is used in build.js (build-time script), not runtime code; legitimate for asset generation in graphics libraries. | ai | |
| semgrep | semgrep:dynamic-require | AI (semgrep): Dynamic requires use __dirname for local module loading; standard pattern in build/library code. | ai | |
| provenance | publisher-changed | AI (provenance): soldair (Ryan Day) is the original author of node-qrcode; the transition from vigreco back to soldair is a legitimate maintainer handoff, not a compromise. Stable for this package. | ai | |
| publish-pattern | new-deps-added | AI (publish-pattern): New dependencies (canvas, bops, colors) are established packages directly supporting canvas-based QR code generation. | ai | |
| dependencies | unvetted-dep:pngjs | AI (dependencies): pngjs is a well-known, legitimate PNG library used for server-side QR code rendering; stable dependency for this package. | ai | |
| dependencies | unvetted-dep:encode-utf8 | AI (dependencies): encode-utf8 is a small, legitimate utility for UTF-8 encoding; appropriate and stable dependency for QR code generation. | ai | |
| dependencies | unvetted-dep:dijkstrajs | AI (dependencies): dijkstrajs is a well-known shortest-path algorithm library used in QR code encoding; stable and legitimate dependency for this package. | ai | |
| dependencies | unvetted-dep:can-promise | AI (dependencies): can-promise is a well-known, benign utility for Promise detection; its use in qrcode for Promise-based API support is legitimate and expected. | ai | |
| provenance | no-provenance | AI (provenance): Package predates Sigstore adoption; absence of provenance is common and expected for older packages. | ai | |
| phantom-deps | phantom-dep:yargs | AI (phantom-deps): yargs is a CLI dependency declared in package.json for the bin/qrcode CLI tool; not directly imported in library code. Stable false positive for this package. | ai |
Versions (showing 35 of 35)
| Version | Deps | Published |
|---|---|---|
| 1.5.4 | 3 / 16 | |
| 1.5.3 | 4 / 16 | |
| 1.5.2 | 4 / 16 | |
| 1.5.1 | 4 / 16 | |
| 1.5.0 | 4 / 16 | |
| 1.4.4 | 7 / 11 | |
| 1.4.3 | 6 / 11 | |
| 1.4.2 | 4 / 11 | |
| 1.4.1 | 4 / 11 | |
| 1.4.0 | 4 / 11 | |
| 1.3.4 | 4 / 11 | |
| 1.3.3 | 5 / 11 | |
| 1.3.2 | 5 / 11 | |
| 1.3.1 | 4 / 11 | |
| 1.3.0 | 5 / 11 | |
| 1.2.2 | 5 / 11 | |
| 1.2.0 | 5 / 11 | |
| 1.1.0 | 4 / 11 | |
| 1.0.1 | 4 / 11 | |
| 1.0.0 | 4 / 11 | |
| 0.9.0 | 4 / 10 | |
| 0.8.2 | 4 / 10 | |
| 0.8.1 | 4 / 10 | |
| 0.8.0 | 4 / 10 | |
| 0.7.0 | 3 / 7 | |
| 0.5.0 | 3 / 6 | |
| 0.4.4 | 3 / 5 | |
| 0.4.2 | 3 / 5 | |
| 0.4.1 | 3 / 5 | |
| 0.2.11 | 3 / 5 | |
| 0.2.9 | 3 / 5 | |
| 0.1.0 | 1 / 0 | |
| 0.0.3 | 1 / 0 | |
| 0.0.2 | 0 / 0 | |
| 0.0.1 | 0 / 0 |
v1.5.4
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v1.5.3
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v1.5.2
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v1.5.1
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v1.5.0
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v1.4.4
2 findingsThis version was published by a different npm account than previous versions on 2019-11-05. This could indicate a legitimate maintainer transition or an account compromise.
[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v1.4.3
2 findingsThis version was published by a different npm account than previous versions on 2019-11-04. This could indicate a legitimate maintainer transition or an account compromise.
[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v1.4.2
2 findingsThis version was published by a different npm account than previous versions on 2019-09-19. 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.4.1
2 findingsThis version was published by a different npm account than previous versions on 2019-07-17. 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.4.0
2 findingsThis version was published by a different npm account than previous versions on 2019-07-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.3.4
2 findingsThis version was published by a different npm account than previous versions on 2019-07-03. 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.3.3
2 findingsThis version was published by a different npm account than previous versions on 2019-01-16. This could indicate a legitimate maintainer transition or an account compromise.
[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v1.3.2
2 findingsThis version was published by a different npm account than previous versions on 2018-11-05. This could indicate a legitimate maintainer transition or an account compromise.
[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v1.3.1
2 findingsThis version was published by a different npm account than previous versions on 2018-11-05. 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.3.0
2 findingsThis version was published by a different npm account than previous versions on 2018-10-01. This could indicate a legitimate maintainer transition or an account compromise.
[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v1.2.2
2 findingsThis version was published by a different npm account than previous versions on 2018-07-31. This could indicate a legitimate maintainer transition or an account compromise.
[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v1.2.0
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v1.1.0
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v1.0.1
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v1.0.0
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.9.0
3 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.
[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.8.2
3 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.
[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.8.1
3 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.
[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.8.0
3 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.
[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.7.0
3 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.
[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.5.0
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.4.4
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
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.2.11
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.2.9
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.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.