npm package intelligence

prettier — deep security report

ShadowCanopy's full breakdown of prettier on npm: verdict, AI analysis, dependency chain, network behavior, prebuilds, and obfuscated code.

Safe to use
Deep-scanned by ShadowCanopy — no threats found in its code, dependencies, or network behavior.
Scanned 8/7/2026
Approvedprettier@3.9.6View on registry ↗latest: 3.9.6

Prettier 3.9.6. All findings are false positives from emoji/Unicode regexes, minified plugin code, and legitimate atob usage in CLI helpers. No malicious behavior.

Protect your projects free

AI breakdown

Plain-English summary of what this package does and how it behaves.

Prettier is an opinionated code formatter for source code. It provides a CLI binary and main module along with language-specific plugins for parsing and formatting.

Capabilities

  • Provides CLI via bin/prettier.cjs
  • Supports formatting for JS, HTML, CSS, Markdown, YAML, GraphQL and other languages via plugins
  • Includes standalone and ESM module builds

Data access

  • Filesystem

Network

  • No network access observed

Standard Prettier distribution with zero dependencies; static findings reference obfuscation and network artifacts but are not evidenced in the manifest or package structure.

Obfuscated / hidden code

Encoded payloads decoded statically (without executing them) so you can see what they resolve to.

Obfuscated source fileindex.cjs

Multiple obfuscation patterns in index.cjs

Obfuscated source filepackage/index.cjs

Multiple obfuscation patterns in package/index.cjs

Obfuscated source fileplugins/acorn.js

Multiple obfuscation patterns in plugins/acorn.js

Obfuscated source filepackage/plugins/acorn.js

Multiple obfuscation patterns in package/plugins/acorn.js

Obfuscated source filedoc.js

Multiple obfuscation patterns in doc.js

Obfuscated source filepackage/doc.js

Multiple obfuscation patterns in package/doc.js

Obfuscated source fileplugins/estree.js

Multiple obfuscation patterns in plugins/estree.js

Obfuscated source filepackage/plugins/estree.js

Multiple obfuscation patterns in package/plugins/estree.js

Obfuscated source fileplugins/markdown.js

Multiple obfuscation patterns in plugins/markdown.js

Obfuscated source filepackage/plugins/markdown.js

Multiple obfuscation patterns in package/plugins/markdown.js

Obfuscated source filestandalone.js

Multiple obfuscation patterns in standalone.js

Obfuscated source filepackage/standalone.js

Multiple obfuscation patterns in package/standalone.js

Obfuscated source fileplugins/acorn.mjs

Multiple obfuscation patterns in plugins/acorn.mjs

Obfuscated source filepackage/plugins/acorn.mjs

Multiple obfuscation patterns in package/plugins/acorn.mjs

Obfuscated source filedoc.mjs

Multiple obfuscation patterns in doc.mjs

Obfuscated source filepackage/doc.mjs

Multiple obfuscation patterns in package/doc.mjs

Obfuscated source fileplugins/estree.mjs

Multiple obfuscation patterns in plugins/estree.mjs

Obfuscated source filepackage/plugins/estree.mjs

Multiple obfuscation patterns in package/plugins/estree.mjs

Obfuscated source fileinternal/experimental-cli.mjs

Multiple obfuscation patterns in internal/experimental-cli.mjs

Obfuscated source filepackage/internal/experimental-cli.mjs

Multiple obfuscation patterns in package/internal/experimental-cli.mjs

Obfuscated source fileplugins/markdown.mjs

Multiple obfuscation patterns in plugins/markdown.mjs

Obfuscated source filepackage/plugins/markdown.mjs

Multiple obfuscation patterns in package/plugins/markdown.mjs

Obfuscated source filestandalone.mjs

Multiple obfuscation patterns in standalone.mjs

Obfuscated source filepackage/standalone.mjs

Multiple obfuscation patterns in package/standalone.mjs

Decoded payload executedinternal/experimental-cli.mjs

File internal/experimental-cli.mjs decodes a base64/hex blob and passes it to an execution sink — a common way to hide a malicious payload.

Decoded payload executedpackage/internal/experimental-cli.mjs

File package/internal/experimental-cli.mjs decodes a base64/hex blob and passes it to an execution sink — a common way to hide a malicious payload.

Security findings (70)

Static analysis rule matches, with the exact code that triggered them.

mediumObfuscated source fileATK-023index.cjs

Multiple obfuscation patterns in index.cjs

mediumObfuscated source fileATK-023package/index.cjs

Multiple obfuscation patterns in package/index.cjs

mediumObfuscated source fileATK-023plugins/acorn.js

Multiple obfuscation patterns in plugins/acorn.js

mediumObfuscated source fileATK-023package/plugins/acorn.js

Multiple obfuscation patterns in package/plugins/acorn.js

mediumObfuscated source fileATK-023plugins/angular.js

Multiple obfuscation patterns in plugins/angular.js

mediumObfuscated source fileATK-023package/plugins/angular.js

Multiple obfuscation patterns in package/plugins/angular.js

mediumObfuscated source fileATK-023plugins/babel.js

Multiple obfuscation patterns in plugins/babel.js

mediumObfuscated source fileATK-023package/plugins/babel.js

Multiple obfuscation patterns in package/plugins/babel.js

mediumObfuscated source fileATK-023doc.js

Multiple obfuscation patterns in doc.js

mediumObfuscated source fileATK-023package/doc.js

Multiple obfuscation patterns in package/doc.js

mediumObfuscated source fileATK-023plugins/estree.js

Multiple obfuscation patterns in plugins/estree.js

mediumObfuscated source fileATK-023package/plugins/estree.js

Multiple obfuscation patterns in package/plugins/estree.js

mediumObfuscated source fileATK-023plugins/glimmer.js

Multiple obfuscation patterns in plugins/glimmer.js

mediumObfuscated source fileATK-023package/plugins/glimmer.js

Multiple obfuscation patterns in package/plugins/glimmer.js

mediumObfuscated source fileATK-023plugins/html.js

Multiple obfuscation patterns in plugins/html.js

mediumObfuscated source fileATK-023package/plugins/html.js

Multiple obfuscation patterns in package/plugins/html.js

mediumObfuscated source fileATK-023plugins/markdown.js

Multiple obfuscation patterns in plugins/markdown.js

mediumObfuscated source fileATK-023package/plugins/markdown.js

Multiple obfuscation patterns in package/plugins/markdown.js

mediumObfuscated source fileATK-023plugins/postcss.js

Multiple obfuscation patterns in plugins/postcss.js

mediumObfuscated source fileATK-023package/plugins/postcss.js

Multiple obfuscation patterns in package/plugins/postcss.js

mediumObfuscated source fileATK-023standalone.js

Multiple obfuscation patterns in standalone.js

mediumObfuscated source fileATK-023package/standalone.js

Multiple obfuscation patterns in package/standalone.js

mediumObfuscated source fileATK-023plugins/yaml.js

Multiple obfuscation patterns in plugins/yaml.js

mediumObfuscated source fileATK-023package/plugins/yaml.js

Multiple obfuscation patterns in package/plugins/yaml.js

mediumObfuscated source fileATK-023plugins/acorn.mjs

Multiple obfuscation patterns in plugins/acorn.mjs

mediumObfuscated source fileATK-023package/plugins/acorn.mjs

Multiple obfuscation patterns in package/plugins/acorn.mjs

mediumObfuscated source fileATK-023plugins/angular.mjs

Multiple obfuscation patterns in plugins/angular.mjs

mediumObfuscated source fileATK-023package/plugins/angular.mjs

Multiple obfuscation patterns in package/plugins/angular.mjs

mediumObfuscated source fileATK-023plugins/babel.mjs

Multiple obfuscation patterns in plugins/babel.mjs

mediumObfuscated source fileATK-023package/plugins/babel.mjs

Multiple obfuscation patterns in package/plugins/babel.mjs

mediumObfuscated source fileATK-023doc.mjs

Multiple obfuscation patterns in doc.mjs

mediumObfuscated source fileATK-023package/doc.mjs

Multiple obfuscation patterns in package/doc.mjs

mediumObfuscated source fileATK-023plugins/estree.mjs

Multiple obfuscation patterns in plugins/estree.mjs

mediumObfuscated source fileATK-023package/plugins/estree.mjs

Multiple obfuscation patterns in package/plugins/estree.mjs

mediumObfuscated source fileATK-023internal/experimental-cli-worker.mjs

Multiple obfuscation patterns in internal/experimental-cli-worker.mjs

mediumObfuscated source fileATK-023package/internal/experimental-cli-worker.mjs

Multiple obfuscation patterns in package/internal/experimental-cli-worker.mjs

mediumObfuscated source fileATK-023internal/experimental-cli.mjs

Multiple obfuscation patterns in internal/experimental-cli.mjs

mediumObfuscated source fileATK-023package/internal/experimental-cli.mjs

Multiple obfuscation patterns in package/internal/experimental-cli.mjs

mediumObfuscated source fileATK-023plugins/glimmer.mjs

Multiple obfuscation patterns in plugins/glimmer.mjs

mediumObfuscated source fileATK-023package/plugins/glimmer.mjs

Multiple obfuscation patterns in package/plugins/glimmer.mjs

mediumObfuscated source fileATK-023plugins/html.mjs

Multiple obfuscation patterns in plugins/html.mjs

mediumObfuscated source fileATK-023package/plugins/html.mjs

Multiple obfuscation patterns in package/plugins/html.mjs

mediumObfuscated source fileATK-023internal/legacy-cli.mjs

Multiple obfuscation patterns in internal/legacy-cli.mjs

mediumObfuscated source fileATK-023package/internal/legacy-cli.mjs

Multiple obfuscation patterns in package/internal/legacy-cli.mjs

mediumObfuscated source fileATK-023plugins/markdown.mjs

Multiple obfuscation patterns in plugins/markdown.mjs

mediumObfuscated source fileATK-023package/plugins/markdown.mjs

Multiple obfuscation patterns in package/plugins/markdown.mjs

mediumObfuscated source fileATK-023plugins/postcss.mjs

Multiple obfuscation patterns in plugins/postcss.mjs

mediumObfuscated source fileATK-023package/plugins/postcss.mjs

Multiple obfuscation patterns in package/plugins/postcss.mjs

mediumObfuscated source fileATK-023standalone.mjs

Multiple obfuscation patterns in standalone.mjs

mediumObfuscated source fileATK-023package/standalone.mjs

Multiple obfuscation patterns in package/standalone.mjs

mediumObfuscated source fileATK-023plugins/yaml.mjs

Multiple obfuscation patterns in plugins/yaml.mjs

mediumObfuscated source fileATK-023package/plugins/yaml.mjs

Multiple obfuscation patterns in package/plugins/yaml.mjs

highHardcoded public IP in network codeATK-028plugins/babel.js

File plugins/babel.js contains a hardcoded public IP (5:8201:17) used in network code — review for hidden exfiltration or C2 endpoints.

highHardcoded public IP in network codeATK-028package/plugins/babel.js

File package/plugins/babel.js contains a hardcoded public IP (5:8201:17) used in network code — review for hidden exfiltration or C2 endpoints.

highHardcoded public IP in network codeATK-028plugins/estree.js

File plugins/estree.js contains a hardcoded public IP (D:d:D) used in network code — review for hidden exfiltration or C2 endpoints.

highHardcoded public IP in network codeATK-028package/plugins/estree.js

File package/plugins/estree.js contains a hardcoded public IP (D:d:D) used in network code — review for hidden exfiltration or C2 endpoints.

highHardcoded public IP in network codeATK-028plugins/meriyah.js

File plugins/meriyah.js contains a hardcoded public IP (32:16:e) used in network code — review for hidden exfiltration or C2 endpoints.

highHardcoded public IP in network codeATK-028package/plugins/meriyah.js

File package/plugins/meriyah.js contains a hardcoded public IP (32:16:e) used in network code — review for hidden exfiltration or C2 endpoints.

highDecoded payload executedATK-026plugins/yaml.js

File plugins/yaml.js decodes a base64/hex blob and passes it to an execution sink — a common way to hide a malicious payload.

highDecoded payload executedATK-026package/plugins/yaml.js

File package/plugins/yaml.js decodes a base64/hex blob and passes it to an execution sink — a common way to hide a malicious payload.

highHardcoded public IP in network codeATK-028plugins/babel.mjs

File plugins/babel.mjs contains a hardcoded public IP (5:8201:17) used in network code — review for hidden exfiltration or C2 endpoints.

highHardcoded public IP in network codeATK-028package/plugins/babel.mjs

File package/plugins/babel.mjs contains a hardcoded public IP (5:8201:17) used in network code — review for hidden exfiltration or C2 endpoints.

highHardcoded public IP in network codeATK-028plugins/estree.mjs

File plugins/estree.mjs contains a hardcoded public IP (D:d:D) used in network code — review for hidden exfiltration or C2 endpoints.

highHardcoded public IP in network codeATK-028package/plugins/estree.mjs

File package/plugins/estree.mjs contains a hardcoded public IP (D:d:D) used in network code — review for hidden exfiltration or C2 endpoints.

highDecoded payload executedATK-026internal/experimental-cli.mjs

File internal/experimental-cli.mjs decodes a base64/hex blob and passes it to an execution sink — a common way to hide a malicious payload.

highDecoded payload executedATK-026package/internal/experimental-cli.mjs

File package/internal/experimental-cli.mjs decodes a base64/hex blob and passes it to an execution sink — a common way to hide a malicious payload.

highHardcoded public IP in network codeATK-028plugins/meriyah.mjs

File plugins/meriyah.mjs contains a hardcoded public IP (32:16:e) used in network code — review for hidden exfiltration or C2 endpoints.

highHardcoded public IP in network codeATK-028package/plugins/meriyah.mjs

File package/plugins/meriyah.mjs contains a hardcoded public IP (32:16:e) used in network code — review for hidden exfiltration or C2 endpoints.

highDecoded payload executedATK-026plugins/yaml.mjs

File plugins/yaml.mjs decodes a base64/hex blob and passes it to an execution sink — a common way to hide a malicious payload.

highDecoded payload executedATK-026package/plugins/yaml.mjs

File package/plugins/yaml.mjs decodes a base64/hex blob and passes it to an execution sink — a common way to hide a malicious payload.

Package metadata

LicenseMIT

Prettier is an opinionated code formatter

Homepage ↗Repository ↗

Files in package (102)

LICENSEpackage/LICENSEindex.cjspackage/index.cjsbin/prettier.cjspackage/bin/prettier.cjsplugins/acorn.jspackage/plugins/acorn.jsplugins/angular.jspackage/plugins/angular.jsplugins/babel.jspackage/plugins/babel.jsdoc.jspackage/doc.jsplugins/estree.jspackage/plugins/estree.jsplugins/glimmer.jspackage/plugins/glimmer.jsplugins/graphql.jspackage/plugins/graphql.jsplugins/html.jspackage/plugins/html.jsplugins/markdown.jspackage/plugins/markdown.jsplugins/meriyah.jspackage/plugins/meriyah.jsplugins/postcss.jspackage/plugins/postcss.jsstandalone.jspackage/standalone.jsplugins/yaml.jspackage/plugins/yaml.jspackage.jsonpackage/package.jsonREADME.mdpackage/README.mdTHIRD-PARTY-NOTICES.mdpackage/THIRD-PARTY-NOTICES.mdplugins/acorn.mjspackage/plugins/acorn.mjs

How ShadowCanopy checks npm packages

ShadowCanopy blocks every dependency by default and only lets through what it can verify — against live malicious-package advisories, an AI behavior scan, and a byte-for-byte hash check. It protects installs across npm, PyPI, crates.io, pkg.go.dev, RubyGems, Maven Central, NuGet, Packagist, Hex, pub.dev, Swift Package Manager.

Protect your projects freeSee what's being blocked

This report reflects ShadowCanopy's threat intelligence at page load and is informational, not a warranty. Canonical URL: https://shadowcanopy.dev/packages/npm/prettier