PkgRadar

Package evidence

[email protected]

Obfuscation Density: high encoded/escaped-token density

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.

Publisher
GitHub ActionsTrusted automation · −70% score

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

Block this update

Static evidence trips multiple high-signal indicators. Quarantine the release until the publisher validates the change or you can rule out the indicators below.

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":"high"}'

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":"high"}'
Artifact bytes1,048,528
Previous version0.9.22
Published2026-05-24T23:27:36.642Z
SHA-2560b3523249f02c87e17bc8945ff5c1bc94536bf880d246fd074c604f620ffd8aa

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

high
Last checked
highRisk
175Score
0.9.23Version
Status history (1 event)
  1. newavailable · risk high · score 175 · status changed

Evidence

Static findings

40 static · 0 from release diff · showing high-signal first.

SeverityKindPathDetailPoints
mediumObfuscation Densitypackage/scripts/constants/ui/ai-content.jshigh encoded/escaped-token density12
mediumObfuscation Densitypackage/scripts/mcp/ep/client.jshigh encoded/escaped-token density12
mediumObfuscation Densitypackage/scripts/constants/ui/footer-labels.jshigh encoded/escaped-token density12
mediumRemote Payloadpackage/scripts/aggregator/infra/github-urls.jsmatched "raw.githubusercontent.com"12
mediumRemote Payloadpackage/scripts/aggregator/clean/rewrite-links.jsmatched "raw.githubusercontent.com"12
mediumObfuscation Densitypackage/scripts/constants/ui/section-headings.jshigh encoded/escaped-token density12
Show all 40 findings (low-signal and informational)
SeverityKindPathDetailPoints
mediumObfuscation Densitypackage/scripts/constants/ui/ai-content.jshigh encoded/escaped-token density12
mediumObfuscation Densitypackage/scripts/mcp/ep/client.jshigh encoded/escaped-token density12
mediumObfuscation Densitypackage/scripts/constants/ui/footer-labels.jshigh encoded/escaped-token density12
mediumRemote Payloadpackage/scripts/aggregator/infra/github-urls.jsmatched "raw.githubusercontent.com"12
mediumRemote Payloadpackage/scripts/aggregator/clean/rewrite-links.jsmatched "raw.githubusercontent.com"12
mediumObfuscation Densitypackage/scripts/constants/ui/section-headings.jshigh encoded/escaped-token density12
lowInstall-time lifecycle scriptpackage.jsonprepare="husky"4
lowObfuscationpackage/scripts/constants/ui/ai-content.jsmatched "\\u2019"3
lowObfuscationpackage/scripts/generators/news-indexes/backfill.jsmatched "\\u003c"3
lowObfuscationpackage/scripts/backport-article-seo.jsmatched "\\u2019"3
lowObfuscationpackage/scripts/constants/articles/breaking-strings-central.jsmatched "\\u00a0"3
lowObfuscationpackage/scripts/constants/articles/breaking-strings-eu.jsmatched "\\u00a0"3
lowObfuscationpackage/scripts/mcp/ep/client.jsmatched "\\u26a0"3
lowObfuscationpackage/scripts/utils/content-metadata.jsmatched "\\u2014"3
lowObfuscationpackage/scripts/generators/sitemap/copy.jsmatched "\\u2019"3
lowObfuscationpackage/scripts/constants/articles/dashboard.jsmatched "\\u00a0"3
lowObfuscationpackage/scripts/constants/articles/deep-analysis.jsmatched "\\u2019"3
lowObfuscationpackage/scripts/discover-untranslated-briefs.jsmatched "\\u0000"3
lowObfuscationpackage/scripts/generators/political-intelligence/copy/eu-core.jsmatched "\\u2019"3
lowObfuscationpackage/scripts/mcp/fetch-proxy-server.jsmatched "fromCharCode"3
lowObfuscationpackage/scripts/constants/ui/footer-labels.jsmatched "\\u00dc"3
lowObfuscationpackage/scripts/mcp/html-lang-patcher.jsmatched "fromCharCode"3
lowObfuscationpackage/scripts/generators/political-intelligence/html.jsmatched "\\u003c"3
lowObfuscationpackage/scripts/generators/sitemap/html.jsmatched "\\u003c"3
lowObfuscationpackage/scripts/generators/political-intelligence/icons.jsmatched "\\u200d"3
lowObfuscationpackage/scripts/aggregator/markdown-renderer.jsmatched "\\u0300"3
lowObfuscationpackage/scripts/generators/political-intelligence/markdown.jsmatched "\\uFE0F"3
lowObfuscationpackage/scripts/constants/ui/page-titles.jsmatched "\\u2019"3
lowObfuscationpackage/scripts/generators/news-indexes/per-language.jsmatched "\\u003c"3
lowObfuscationpackage/scripts/constants/ui/section-headings.jsmatched "\\u2026"3
lowObfuscationpackage/scripts/aggregator/html/shell.jsmatched "\\u003c"3
lowObfuscationpackage/scripts/aggregator/metadata/title-rejection.jsmatched "\\u2026"3
lowObfuscationpackage/scripts/mcp/ep/tools-data.jsmatched "\\u2500"3
lowObfuscationpackage/scripts/mcp/ep/tools-documents.jsmatched "\\u2500"3
lowObfuscationpackage/scripts/mcp/ep/tools-feeds.jsmatched "\\u2500"3
lowObfuscationpackage/scripts/mcp/ep/tools-procedures.jsmatched "\\u2500"3
lowObfuscationpackage/scripts/constants/ui/tradecraft-cards.jsmatched "\\u2019"3
lowObfuscationpackage/scripts/validate-article-seo.jsmatched "\\u2026"3
lowObfuscationpackage/scripts/validate-manifest-seo.jsmatched "\\u3040"3
lowObfuscationpackage/scripts/constants/articles/week-ahead-eu.jsmatched "\\u2019"3

Manifest

Package metadata

Scripts54
  • buildtsc
  • build:checktsc --noEmit
  • build:check-teststsc --project tsconfig.test.json --noEmit
  • copy-vendornode scripts/copy-vendor.js
  • discover:untranslated-briefsnode scripts/discover-untranslated-briefs.js
  • docs:apitypedoc
  • docs:copy-reportsnode scripts/utils/copy-test-reports.js
  • docs:generatenpm run docs:api && npm run docs:copy-reports && npm run docs:index
  • docs:indexnode scripts/utils/generate-docs-index.js
  • dump:article-seonode scripts/dump-article-seo.js
  • formatprettier --write "src/**/*.ts"
  • format:checkprettier --check "src/**/*.ts"
  • generate-articlenode scripts/aggregator/article-generator.js
  • generate-article:allnode scripts/aggregator/article-generator.js --all
  • generate-build-infonode scripts/generators/build-info.js
  • generate-news-indexesnode scripts/generators/news-indexes.js
  • generate-sitemapnode scripts/generators/sitemap.js
  • htmlhintsh -c 'htmlhint *.html; set -- news/*.html; if [ -e "$1" ]; then htmlhint "$@"; else echo "No news/*.html files to lint"; fi'
  • image:generatenode scripts/generate-responsive-images.js
  • knipknip
  • knip:fixknip --fix
  • knip:productionknip --production
  • linteslint src/ && node scripts/lint-src-todos.js
  • lint:fixeslint src/ --fix
  • lint:promptsnode scripts/lint-prompts.js
  • lint:reporteslint src/ --format json --output-file builds/test-results/eslint-report.json
  • lint:report:htmleslint src/ --format html --output-file builds/test-results/eslint-report.html
  • lint:src-todosnode scripts/lint-src-todos.js
  • mcp:probenpx tsx src/utils/mcp-probe.ts
  • minify-assetsnode scripts/minify-assets.js
  • …and 24 more.
Dependencies6
  • european-parliament-mcp-server1.3.10
  • markdown-it^14.1.1
  • markdown-it-anchor^9.2.0
  • markdown-it-attrs^4.3.1
  • markdown-it-deflist^3.0.0
  • markdown-it-footnote^4.0.0
Optional dependencies1
  • worldbank-mcp1.0.1