Package evidence
@sergienko4/[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
- 681
- Versions published
- 40
- First published
- Feb 2026
- 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 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":["@sergienko4/[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":["@sergienko4/[email protected]"],"fail_on":"review"}'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
Status history (1 event)
- new → available · risk review · score 15 · status changed
Evidence
Static findings
2 static · 0 from release diff · showing high-signal first.
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| high | Js Decode Then Exec | package/lib/index.cjs | base64 / atob / fromCharCode decode paired with eval / new Function in the same file — canonical obfuscated-loader pattern. | 45 |
| high | Js Decode Then Exec | package/lib/index.mjs | base64 / atob / fromCharCode decode paired with eval / new Function in the same file — canonical obfuscated-loader pattern. | 45 |
Manifest
Package metadata
Scripts35
buildnpm run lint && tsupcapture:invalid-loginnpx tsx src/Tests/E2eReal/tools/CaptureInvalidLogin.tscheck-exportspublintcleanrimraf libdevnpm run type-check -- --watchdocstypedocformatprettier --write "src/**/*.{ts,tsx,js,jsx,json,md}"format:checkprettier --check "src/**/*.{ts,tsx,js,jsx,json,md}"linteslint src --max-warnings 0 && npm run lint:architecture src/Scrapers/Pipeline && bash src/Scrapers/Pipeline/EslintCanaries/verify.sh && npm run format:checklint:architecturenpx tsx src/Tests/Tools/lint-and-validate.tslint:biomebiome lint src --max-diagnostics=50lint:canariesbash src/Scrapers/Pipeline/EslintCanaries/verify.shlint:fixeslint src --ignore-pattern '**/*.cjs' && npm run formatlint:phases:stricteslint src/Tests/Unit/Pipeline/CrossValidation/Phases --max-warnings 0log:viewnpx tsx scripts/log-view.tspostbuildrimraf lib/Common lib/Scrapers lib/Testspreparetsup && rimraf lib/Common lib/Scrapers lib/Testsprepare:defaultgit reset --hard && npm ci && npm run buildresetgit reset --hard && npm citestnode --experimental-vm-modules node_modules/jest/bin/jest.jstest:cincp src/Tests/.tests-config.tpl.cjs src/Tests/.tests-config.cjs && node --experimental-vm-modules node_modules/jest/bin/jest.js --ci --coveragetest:e2e-factory-testsnode --experimental-vm-modules node_modules/jest/bin/jest.js --ci --testPathPatterns='Tests/E2e\.test' --verbose --forceExit --maxWorkers=8test:e2e:fullnode --experimental-vm-modules node_modules/jest/bin/jest.js --testPathIgnorePatterns=/node_modules/ --testPathPatterns=E2eFull --forceExittest:e2e:mocknode --experimental-vm-modules node_modules/jest/bin/jest.js --testPathIgnorePatterns=/node_modules/ --testPathIgnorePatterns=E2eReal --testPathPatterns=E2eMocked --maxWorkers=8test:e2e:realnpx tsx scripts/run-real-suite.tstest:e2e:real:singlenode --experimental-vm-modules node_modules/jest/bin/jest.js --runInBand --testPathIgnorePatterns=/node_modules/ --testPathIgnorePatterns=E2eMocked --testPathPatterns=E2eRealtest:e2e:smokenode --experimental-vm-modules node_modules/jest/bin/jest.js --testPathIgnorePatterns=/node_modules/ --testPathPatterns=E2eSmoke --forceExittest:fullnpm run test:mock && npm run test:unittest:gatenpm run test:mock && npm run test:unittest:mockcross-env MOCK_MODE=1 npx tsx scripts/run-mock-suite.ts- …and 5 more.
Dependencies7
@hieutran094/camoufox-js^0.6.8lodash^4.17.23moment^2.30.1moment-timezone^0.6.0pino^10.3.1playwright-core~1.59.1utility-types^3.11.0