PkgRadar

Package evidence

@feathery/[email protected]

Js Decode Then Exec: base64 / atob / fromCharCode decode paired with eval / new Function in the same file — canonical obfuscated-loader pattern.

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
8,531Niche · −30% score
Versions published
1,347Mature · −50% score
First published
Mar 2022
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

Review before promoting

Mixed 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":["@feathery/[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":["@feathery/[email protected]"],"fail_on":"review"}'
Artifact bytes3,501,535
Previous version2.39.0
Published2026-05-29T06:01:54.783Z
SHA-2567b6847b995f206b078ff707b3d8cabd788379e666f4c6a73299a5b436381b850

Why flagged

What the scanner saw

Js Decode Then Exec: base64 / atob / fromCharCode decode paired with eval / new Function in the same file — canonical obfuscated-loader pattern.

Not observed: package install, lifecycle script execution, or sandbox execution. PkgRadar only inspects on-disk artifacts.

Availability ledger

available

review
Last checked
reviewRisk
13Score
2.39.1Version
Status history (1 event)
  1. newavailable · risk review · score 13 · status changed

Evidence

Static findings

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

SeverityKindPathDetailPoints
highJs Decode Then Execpackage/umd/index.jsbase64 / atob / fromCharCode decode paired with eval / new Function in the same file — canonical obfuscated-loader pattern.45
Show all 4 findings (low-signal and informational)
SeverityKindPathDetailPoints
highJs Decode Then Execpackage/umd/index.jsbase64 / atob / fromCharCode decode paired with eval / new Function in the same file — canonical obfuscated-loader pattern.45
lowObfuscation Densitypackage/umd/466.e3456c8b3407ad04ba56.jshigh encoded/escaped-token density0
lowLarge Javascript Payloadpackage/cjs/fthry_index.BL8FLs1p.js2076750 bytes0
lowLarge Javascript Payloadpackage/dist/fthry_index.Bv0Rd4n8.js2067794 bytes0

Manifest

Package metadata

Scripts19
  • analyze:devwebpack --mode development --config webpack.development.js --env analyze
  • analyze:nodewebpack --mode production --config webpack.node.js --env analyze
  • analyze:umdwebpack --mode production --config webpack.umd.js --env analyze
  • buildnpm-run-all -p build:node build:umd
  • build:noderollup -c
  • build:umdwebpack --mode production --config webpack.umd.js
  • devwebpack --mode development --config webpack.development.js --watch
  • dev-localwebpack --env BACKEND_ENV=local --mode development --config webpack.development.js --watch
  • dev-stagingwebpack --env BACKEND_ENV=staging --mode development --config webpack.development.js --watch
  • jest-previewjest-preview
  • linteslint ./src
  • preparehusky
  • prepublishOnlyyarn build
  • releasestandard-version
  • statsnpx webpack --mode production --config webpack.umd.js --profile --json > stats.json
  • testjest
  • test:cijest --silent --maxWorkers=50% --ci
  • test:debugnpm-run-all -p test:watch jest-preview
  • test:watchjest --watchAll
Dependencies39
  • @ai-sdk/react^3.0.71
  • @emotion/babel-preset-css-prop11.12.0
  • @emotion/react11.14.0
  • @emotion/styled11.14.0
  • @feathery/client-utils^0.16.1
  • @fingerprintjs/fingerprintjs4.6.2
  • @rc-component/slider^1.0.0
  • @stripe/react-stripe-js3.7.0
  • @stripe/stripe-js7.3.0
  • @stytch/vanilla-js5.23.1
  • @uiw/react-color-sketch^2.5.4
  • acorn^8.15.0
  • acorn-loose^8.5.2
  • acorn-walk^8.3.4
  • ai^6.0.69
  • country-flag-emoji-polyfill^0.1.8
  • date-fns^4.1.0
  • flat-map-polyfill^0.3.8
  • is-url^1.2.4
  • js-big-decimal^1.4.1
  • jszip^3.10.1
  • libphonenumber-js^1.12.38
  • lodash.debounce^4.0.8
  • lodash.throttle^4.1.1
  • quill-delta^4.2.2
  • react-datepicker7.6.0
  • react-ga4^1.4.1
  • react-gtm-module^2.0.11
  • react-hotkeys-hook^3.4.4
  • react-idle-timer5.6.2
  • …and 9 more.