prettier
Prettier is an opinionated code formatter
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
Accepted risks
Findings the reviewer chose to accept rather than block on.
| Source | Rule | Reason | Accepted by | When |
|---|---|---|---|---|
| bogus-package | bogus-package | AI (bogus-package): prettier bundles all deps (no declared deps by design), has no keywords by convention, and is a legitimate incremental release not a new package. | ai | |
| semgrep | semgrep:toplevel-fetch | AI (semgrep): fetch() in experimental-cli-worker.mjs is part of prettier's experimental CLI plugin/config fetching feature, not telemetry or exfiltration. | ai | |
| semgrep | semgrep:api-obfuscation-reflect | AI (semgrep): Reflect.get() in bundled standalone.js is standard rollup/esbuild output pattern, not obfuscation. | ai | |
| maintainer-change | maintainer-added | AI (maintainer-change): prettier-bot is the established automated publisher for the prettier project; maintainer addition is legitimate. | ai | |
| provenance | publisher-changed | AI (provenance): prettier-bot is the project's official publishing bot with 164 approved versions; publisher transition is legitimate and stable. | ai | |
| source-diff | net-exec-file:cli.js | AI (source-diff): cli.js is a bundled build artifact inlining core-js polyfills; global detection and HTTP usage are expected for prettier's CLI. Stable FP for this package. | ai | |
| source-diff | obfuscated-file:internal/experimental-cli.mjs | AI (source-diff): Bundled CLI output from esbuild; long lines are standard bundler artifacts, not obfuscation. Stable for prettier. | ai | |
| semgrep | semgrep:dynamic-require | AI (semgrep): Dynamic require() is an intentional part of Prettier's plugin/parser loading architecture in its bundled third-party.js; stable false positive for this package. | ai | |
| semgrep | semgrep:eval-usage | AI (semgrep): eval('require') is a known legitimate pattern to access require without bundler interference; used in module resolution utilities within prettier's third-party.js. | ai | |
| semgrep | semgrep:new-function-constructor | AI (semgrep): Fires on bundled third-party parser code (PostCSS). Dynamic construction is expected in parser bundles; not malicious for prettier. | ai | |
| semgrep | semgrep:base64-decode | AI (semgrep): Pattern match on minified UMD wrapper in bundled parser-postcss.js; no actual base64 payload present. Stable false positive for prettier's bundled parsers. | ai | |
| provenance | no-provenance | AI (provenance): Prettier 2.x predates widespread provenance adoption; absence is expected for this era. Package trust is well-established by other signals. | ai |
Versions (showing 100 of 157)
| Version | Deps | Published |
|---|---|---|
| 3.8.3 | 0 / 0 | |
| 3.8.2 | 0 / 0 | |
| 3.8.1 | 0 / 0 | |
| 3.8.0 | 0 / 0 | |
| 3.7.4 | 0 / 0 | |
| 3.7.3 | 0 / 0 | |
| 3.7.2 | 0 / 0 | |
| 3.7.1 | 0 / 0 | |
| 3.7.0 | 0 / 0 | |
| 3.6.2 | 0 / 0 | |
| 3.6.1 | 0 / 0 | |
| 3.6.0 | 0 / 0 | |
| 3.5.3 | 0 / 0 | |
| 3.5.2 | 0 / 0 | |
| 3.5.1 | 0 / 0 | |
| 3.5.0 | 0 / 0 | |
| 3.4.2 | 0 / 0 | |
| 3.4.1 | 0 / 0 | |
| 3.4.0 | 0 / 0 | |
| 3.3.3 | 0 / 0 | |
| 3.3.2 | 0 / 0 | |
| 3.3.1 | 0 / 0 | |
| 3.3.0 | 0 / 0 | |
| 3.2.5 | 0 / 0 | |
| 3.2.4 | 0 / 0 | |
| 3.2.3 | 0 / 0 | |
| 3.2.2 | 0 / 0 | |
| 3.2.1 | 0 / 0 | |
| 3.2.0 | 0 / 0 | |
| 3.1.1 | 0 / 0 | |
| 3.1.0 | 0 / 0 | |
| 3.0.3 | 0 / 0 | |
| 3.0.2 | 0 / 0 | |
| 3.0.1 | 0 / 0 | |
| 3.0.0 | 0 / 0 | |
| 2.8.8 | 0 / 0 | |
| 2.8.7 | 0 / 0 | |
| 2.8.6 | 0 / 0 | |
| 2.8.5 | 0 / 0 | |
| 2.8.4 | 0 / 0 | |
| 2.8.3 | 0 / 0 | |
| 2.8.2 | 0 / 0 | |
| 2.8.1 | 0 / 0 | |
| 2.8.0 | 0 / 0 | |
| 2.7.1 | 0 / 0 | |
| 2.7.0 | 0 / 0 | |
| 2.6.2 | 0 / 0 | |
| 2.6.1 | 0 / 0 | |
| 2.6.0 | 0 / 0 | |
| 2.5.1 | 0 / 0 | |
| 2.5.0 | 0 / 0 | |
| 2.4.1 | 0 / 0 | |
| 2.4.0 | 0 / 0 | |
| 2.3.2 | 0 / 0 | |
| 2.3.1 | 0 / 0 | |
| 2.3.0 | 0 / 0 | |
| 2.2.1 | 0 / 0 | |
| 2.2.0 | 0 / 0 | |
| 2.1.2 | 0 / 0 | |
| 2.1.1 | 0 / 0 | |
| 2.1.0 | 0 / 0 | |
| 2.0.5 | 0 / 0 | |
| 2.0.4 | 0 / 0 | |
| 2.0.3 | 0 / 0 | |
| 2.0.2 | 0 / 0 | |
| 2.0.1 | 0 / 0 | |
| 2.0.0 | 0 / 0 | |
| 1.19.1 | 0 / 0 | |
| 1.19.0 | 0 / 0 | |
| 1.18.2 | 0 / 0 | |
| 1.18.1 | 0 / 0 | |
| 1.18.0 | 0 / 0 | |
| 1.17.1 | 0 / 0 | |
| 1.17.0 | 0 / 0 | |
| 1.16.4 | 0 / 0 | |
| 1.16.3 | 0 / 0 | |
| 1.16.2 | 0 / 0 | |
| 1.16.1 | 0 / 0 | |
| 1.16.0 | 0 / 0 | |
| 1.15.3 | 0 / 0 | |
| 1.15.2 | 0 / 0 | |
| 1.15.1 | 0 / 0 | |
| 1.15.0 | 0 / 0 | |
| 1.14.3 | 0 / 0 | |
| 1.14.2 | 0 / 0 | |
| 1.14.1 | 0 / 0 | |
| 1.14.0 | 0 / 0 | |
| 1.13.7 | 0 / 0 | |
| 1.13.6 | 0 / 0 | |
| 1.13.5 | 0 / 0 | |
| 1.13.4 | 0 / 0 | |
| 1.13.3 | 0 / 0 | |
| 1.13.2 | 0 / 0 | |
| 1.13.1 | 0 / 0 | |
| 1.13.0 | 0 / 0 | |
| 1.12.1 | 0 / 28 | |
| 1.12.0 | 0 / 28 | |
| 1.11.1 | 0 / 29 | |
| 1.11.0 | 0 / 29 | |
| 1.10.2 | 0 / 28 |
v3.8.2
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.8.1
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.8.0
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.7.4
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.7.3
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.7.2
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.7.1
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.7.0
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.6.2
2 findingsNewly 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.
v3.6.1
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.6.0
2 findingsNewly 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.
v3.5.3
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.5.2
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.5.1
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.5.0
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.4.2
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.4.1
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.4.0
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.3.3
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.3.2
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.3.1
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.3.0
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.2.5
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.2.4
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.2.3
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.2.2
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.2.1
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.2.0
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.1.1
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.1.0
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.0.3
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.0.2
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.0.1
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v3.0.0
32 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.
Newly 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.
Newly 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.
Newly 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.
Newly 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.
Newly 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.
Newly 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.
Newly 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.
Newly 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.
Newly 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.
Newly 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.
Newly 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.
Newly 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.
Newly 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.
Newly 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.
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.
v2.8.8
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v2.8.7
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v2.8.6
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v2.8.5
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v2.8.4
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v2.8.3
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v2.8.2
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v2.8.1
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v2.8.0
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v2.7.1
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v2.7.0
2 findingsThis version was published by a different npm account than previous versions on 2022-06-14. 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.
v2.6.2
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v2.6.1
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v2.6.0
2 findingsNewly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v2.5.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.
v2.5.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.
v2.4.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.
v2.4.0
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v2.3.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.
v2.3.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.
v2.3.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.
v2.2.1
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v2.2.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.
v2.1.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.
v2.1.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.
v2.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.
v2.0.5
1 finding[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v2.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.
v2.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.
v2.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.
v2.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.
v2.0.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.