Package evidence
@medalsocial/[email protected]
Install-time lifecycle script: preinstall="npx only-allow pnpm"
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
- 734
- Versions published
- 12Established · −30% score
- First published
- Sep 2025
- 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":["@medalsocial/[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":["@medalsocial/[email protected]"],"fail_on":"review"}'Why flagged
What the scanner saw
Install-time lifecycle script: preinstall="npx only-allow pnpm"
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 1 · 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)
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| low | Install-time lifecycle script | package.json | preinstall="npx only-allow pnpm" | 5 |
Manifest
Package metadata
Scripts24
buildpnpm openapi:types && tsup src/index.ts src/openapi.generated.ts pilot/index.ts --dts --format esm,cjs --sourcemap && pnpm openapi:bundlechangesetchangesetcleanrm -rf distdevtsup src/index.ts --watchdocstypedocknip:checkknipknip:reportknip --reporter json --no-exit-codelintbiome check .lint:fixbiome check --fix .openapi:bundlenode -e "require('node:fs').mkdirSync('dist/openapi',{recursive:true})" && redocly bundle openapi/medal-social.openapi.yaml --output dist/openapi/medal-social.openapi.jsonopenapi:checkpnpm openapi:lint && pnpm openapi:types && pnpm openapi:bundle && pnpm openapi:coverageopenapi:coveragenode scripts/assert-openapi-sdk-coverage.mjsopenapi:lintredocly lint openapi/medal-social.openapi.yamlopenapi:typesopenapi-typescript && biome format --write src/openapi.generated.tspreinstallnpx only-allow pnpmqualitypnpm lint && pnpm testreleasepnpm build && pnpm verify:paths && changeset publish && pnpm exec jsr publishsecret:scannode scripts/secretlint-repo.mjssecret:scan:stagednode scripts/secretlint-staged.mjstestvitest runtest:watchvitesttypechecktsc --noEmitverify:pathsnode scripts/verify-package-paths.mjsversionchangeset version && node -e "const fs=require('fs');const p=JSON.parse(fs.readFileSync('./package.json','utf8'));const j=JSON.parse(fs.readFileSync('./jsr.json','utf8'));j.version=p.version;fs.writeFileSync('./jsr.json',JSON.stringify(j,null,2)+'\n')"
Dependencies1
zod^3.23.8