Trust signals
Why this verdict
PkgRadar discounts a release’s score when public reputation argues against novel malware. The verdict above already reflects these — the panel just explains what was applied.
- Weekly downloads
- 108,447,227Ubiquitous · −70% score
- Versions published
- 186Mature · −50% score
- First published
- Jan 2017
- Publisher
- prettier-bot
Effective trust discount applied: −70% (max across signals — discounts don’t stack). New install-lifecycle deltas vs the previous release would clear the discount.
Recommended action
Review before promotingMixed signals: the package has indicators worth reading before allowing the update in automated dependency flows.
Block this release in CIcurl · GitHub Actions
Fail the build when this package version is added or upgraded. Replace $PKGRADAR_TOKEN with a Pro / Team API key from your dashboard.
curl -fsS https://pkgradar.com/gate/npm \
-H "Authorization: Bearer $PKGRADAR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"specs":["[email protected]"],"fail_on":"review"}'GitHub Actions step:
- name: PkgRadar gate
run: |
curl -fsS https://pkgradar.com/gate/npm \
-H "Authorization: Bearer ${{ secrets.PKGRADAR_TOKEN }}" \
-H "Content-Type: application/json" \
-d '{"specs":["[email protected]"],"fail_on":"review"}'Why flagged
What the scanner saw
Obfuscation Density: high encoded/escaped-token density
Not observed: package install, lifecycle script execution, or sandbox execution. PkgRadar only inspects on-disk artifacts.
Availability ledger
available
Status history (1 event)
- new → available · risk review · score 44 · status changed
Evidence
Static findings
48 static · 0 from release diff · showing high-signal first.
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| medium | Obfuscation Density | package/index.cjs | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/doc.js | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/plugins/estree.js | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/plugins/flow.js | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/plugins/glimmer.js | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/plugins/html.js | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/plugins/markdown.js | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/standalone.js | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/doc.mjs | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/plugins/estree.mjs | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/plugins/flow.mjs | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/plugins/glimmer.mjs | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/plugins/html.mjs | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/plugins/markdown.mjs | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/standalone.mjs | high encoded/escaped-token density | 12 |
Show all 48 findings (low-signal and informational)
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| medium | Obfuscation Density | package/index.cjs | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/doc.js | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/plugins/estree.js | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/plugins/flow.js | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/plugins/glimmer.js | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/plugins/html.js | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/plugins/markdown.js | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/standalone.js | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/doc.mjs | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/plugins/estree.mjs | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/plugins/flow.mjs | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/plugins/glimmer.mjs | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/plugins/html.mjs | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/plugins/markdown.mjs | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/standalone.mjs | high encoded/escaped-token density | 12 |
| low | Obfuscation | package/index.cjs | matched "\\u2028" | 3 |
| low | Obfuscation | package/plugins/acorn.js | matched "fromCharCode" | 3 |
| low | Obfuscation | package/plugins/angular.js | matched "fromCharCode" | 3 |
| low | Obfuscation | package/plugins/babel.js | matched "\\xAA" | 3 |
| low | Obfuscation | package/doc.js | matched "\\uFE0F" | 3 |
| low | Obfuscation | package/plugins/estree.js | matched "\\uFE0F" | 3 |
| low | Obfuscation | package/plugins/flow.js | matched "fromCharCode" | 3 |
| low | Obfuscation | package/plugins/glimmer.js | matched "\\x2d" | 3 |
| low | Obfuscation | package/plugins/graphql.js | matched "\\u2028" | 3 |
| low | Obfuscation | package/plugins/html.js | matched "\\x2d" | 3 |
| low | Obfuscation | package/plugins/markdown.js | matched "\\xC6" | 3 |
| low | Obfuscation | package/plugins/meriyah.js | matched "fromCharCode" | 3 |
| low | Obfuscation | package/plugins/postcss.js | matched "fromCharCode" | 3 |
| low | Obfuscation | package/standalone.js | matched "\\u2028" | 3 |
| low | Obfuscation | package/plugins/typescript.js | matched "\\u2500" | 3 |
| low | Obfuscation | package/plugins/yaml.js | matched "\\u2026" | 3 |
| low | Obfuscation | package/plugins/acorn.mjs | matched "fromCharCode" | 3 |
| low | Obfuscation | package/plugins/angular.mjs | matched "fromCharCode" | 3 |
| low | Obfuscation | package/plugins/babel.mjs | matched "\\xAA" | 3 |
| low | Obfuscation | package/internal/cli.mjs | matched "\\x1B" | 3 |
| low | Obfuscation | package/doc.mjs | matched "\\uFE0F" | 3 |
| low | Obfuscation | package/plugins/estree.mjs | matched "\\uFE0F" | 3 |
| low | Obfuscation | package/plugins/flow.mjs | matched "fromCharCode" | 3 |
| low | Obfuscation | package/plugins/glimmer.mjs | matched "\\x2d" | 3 |
| low | Obfuscation | package/plugins/graphql.mjs | matched "\\u2028" | 3 |
| low | Obfuscation | package/plugins/html.mjs | matched "\\x2d" | 3 |
| low | Obfuscation | package/index.mjs | matched "fromCharCode" | 3 |
| low | Obfuscation | package/plugins/markdown.mjs | matched "\\xC6" | 3 |
| low | Obfuscation | package/plugins/meriyah.mjs | matched "fromCharCode" | 3 |
| low | Obfuscation | package/plugins/postcss.mjs | matched "fromCharCode" | 3 |
| low | Obfuscation | package/standalone.mjs | matched "\\u2028" | 3 |
| low | Obfuscation | package/plugins/typescript.mjs | matched "\\u2500" | 3 |
| low | Obfuscation | package/plugins/yaml.mjs | matched "\\u2026" | 3 |