PkgRadar

Package evidence

@opvoid/[email protected]

Install-time lifecycle script: postinstall="node -e \"try{require('better-sqlite3')}catch(e){console.log('Rebuilding better-sqlite3...');require('child_process').execSync('pnpm rebuild better-sqlite3',{stdio:'inherit'})}\""

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
87
Versions published
5
First published
May 2026
Publisher
yh-c

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":["@opvoid/[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":["@opvoid/[email protected]"],"fail_on":"review"}'
Publisheryh-c
Artifact bytes6,286,815
Previous version0.2.2
Published2026-05-27T19:08:09.670Z
SHA-25630e39a74313a628356ee1d46193c49235b5f6fd5a6c8c7a42a2c394e992f0498

Why flagged

What the scanner saw

Install-time lifecycle script: postinstall="node -e \"try{require('better-sqlite3')}catch(e){console.log('Rebuilding better-sqlite3...');require('child_process').execSync('pnpm rebuild better-sqlite3',{stdio:'inherit'})}\""

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

Availability ledger

available

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

Evidence

Static findings

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

No high-signal findings — see all findings below.

Show all 1 findings (low-signal and informational)
SeverityKindPathDetailPoints
lowInstall-time lifecycle scriptpackage.jsonpostinstall="node -e \"try{require('better-sqlite3')}catch(e){console.log('Rebuilding better-sqlite3...');require('child_process').execSync('pnpm rebuild better-sqlite3',{stdio:'inherit'})}\""5

Manifest

Package metadata

Scripts10
  • buildtsup src/index.ts src/bin.ts --format cjs,esm --dts && pnpm run copy-templates
  • check:brandnode scripts/check-brand.js
  • cipnpm run check:brand && pnpm run typecheck && pnpm run lint && pnpm test && pnpm run build
  • copy-templatesnode -e "const fs=require('fs'),path=require('path');const src=path.resolve('src/templates'),dst=path.resolve('dist/templates');fs.mkdirSync(dst,{recursive:true});for(const f of fs.readdirSync(src))fs.copyFileSync(path.join(src,f),path.join(dst,f));console.log('Copied templates ->',dst)"
  • linteslint "src/**/*.ts" "tests/**/*.ts"
  • postinstallnode -e "try{require('better-sqlite3')}catch(e){console.log('Rebuilding better-sqlite3...');require('child_process').execSync('pnpm rebuild better-sqlite3',{stdio:'inherit'})}"
  • startnode dist/index.js
  • testvitest run
  • test:watchvitest
  • typechecktsc --noEmit
Dependencies4
  • @modelcontextprotocol/sdk^1.0.1
  • better-sqlite3^11.0.0
  • express^4.21.0
  • zod^3.23.8