Package evidence
[email protected]
Install Lifecycle Suppresses Failure: postinstall="git config core.hooksPath .githooks 2>/dev/null || true"
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
- 860
- Versions published
- 18
- First published
- May 2026
- Publisher
- webappski
Recommended action
Block this updateStatic 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"}'Why flagged
What the scanner saw
Install Lifecycle Suppresses Failure: postinstall="git config core.hooksPath .githooks 2>/dev/null || true"
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 high · score 25 · status changed
Evidence
Static findings
2 static · 0 from release diff · showing high-signal first.
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| high | Install Lifecycle Suppresses Failure | package.json | postinstall="git config core.hooksPath .githooks 2>/dev/null || true" | 20 |
Show all 2 findings (low-signal and informational)
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| high | Install Lifecycle Suppresses Failure | package.json | postinstall="git config core.hooksPath .githooks 2>/dev/null || true" | 20 |
| low | Install-time lifecycle script | package.json | postinstall="git config core.hooksPath .githooks 2>/dev/null || true" | 5 |
Manifest
Package metadata
Scripts79
postinstallgit config core.hooksPath .githooks 2>/dev/null || trueprepublishOnlynpm test && npm run test:pack-filestestnpm run test:syntax && npm run test:imports && npm run test:cli && npm run test:validator && npm run test:extract && npm run test:sentiment && npm run test:outreach && npm run test:crawlability && npm run test:category && npm run test:queries && npm run test:geo && npm run test:mdhtml && npm run test:htmlrender && npm run test:uvi && npm run test:topics && npm run test:csv && npm run test:logs && npm run test:ads && npm run test:utm && npm run test:authority && npm run test:authority-profiles && npm run test:authority-github && npm run test:authority-legacy && npm run test:topdomains && npm run test:depth && npm run test:quality && npm run test:pipeline && npm run test:position && npm run test:keys && npm run test:resilience && npm run test:recovery && npm run test:spinner && npm run test:design-lint && npm run test:sections-recs && npm run test:empty-blocks && npm run test:sections-copy && npm run test:diff && npm run test:sections-integrity && npm run test:mc-metadata && npm run test:own-domain && npm run test:tpm-ledger && npm run test:rate-limits && npm run test:scheduler && npm run test:live-rows && npm run test:discover && npm run test:openai && npm run test:anthropic && npm run test:main-options && npm run test:fetch-timeout && npm run test:suggested-commands && npm run test:validator-recovery-dedup && npm run test:validator-recovery-pool-filter && npm run test:init-pool-validation && npm run test:brainstorm-commercial-only && npm run test:silent-substitute && npm run test:live-rows-countdown && npm run test:recovery-honest-reason && npm run test:recovery-honest-header && npm run test:mc-bridge-lang && npm run test:mc-bridge-prompt-shape && npm run test:sections-portal-link && npm run test:mc-metadata-jsdoc && npm run test:authority-wikipedia && npm run test:cell-actions && npm run test:replay-malformed && npm run test:replay-skips-discovery && npm run test:fetch-ladder && npm run test:seed-cache && npm run test:topup && npm run test:clean-category && npm run test:prompt-guards && npm run test:fail-guards && npm run test:single-key && npm run test:version-awareness && npm run test:e2etest:adsnode test/ads-detector.test.jstest:anthropicnode test/anthropic.test.jstest:authoritynode test/authority-presence.test.jstest:authority-githubnode test/authority-github.test.jstest:authority-legacynode test/authority-legacy-shape.test.jstest:authority-profilesnode test/authority-profiles.test.jstest:authority-wikipedianode test/authority-presence-wikipedia.test.jstest:brainstorm-commercial-onlynode test/brainstorm-commercial-only.test.jstest:categorynode test/domain-category.test.jstest:cell-actionsnode test/report-cell-actions.test.jstest:clean-categorynode test/clean-category.test.jstest:clinode test/cli-smoke.test.jstest:crawlabilitynode test/crawlability-audit.test.jstest:csvnode test/csv-export.test.jstest:depthnode test/depth.test.jstest:design-lintnode test/design-lint.test.jstest:diffnode test/diff.test.jstest:discovernode test/discover.test.jstest:e2enode --test test/e2e/*.test.jstest:empty-blocksnode test/report-empty-blocks.test.jstest:extractnode test/extract-competitors-llm.test.jstest:fail-guardsnode test/fail-branch-guards.test.jstest:fetch-laddernode test/fetch-site-ladder.test.jstest:fetch-timeoutnode test/fetch-with-timeout.test.jstest:geonode test/geo-context.test.jstest:htmlrendernode test/html-render-smoke.jstest:importsnode -e "Promise.all(['./lib/config.js','./lib/mention.js','./lib/diff.js','./lib/init/keys.js','./lib/init/fetch-site.js','./lib/init/suggest.js','./lib/init/research/brainstorm.js','./lib/init/research/filter.js','./lib/init/research/classify-intent.js','./lib/init/research/score.js','./lib/init/research/validate-category.js','./lib/init/research/validate-query-llm.js','./lib/init/research/run-validation.js','./lib/init/research/research.js','./lib/init/research-failure-panel.js','./lib/init/validator-recovery.js','./lib/util/spinner.js','./lib/providers/openai.js','./lib/providers/gemini.js','./lib/providers/anthropic.js','./lib/providers/perplexity.js','./lib/providers/index.js','./lib/providers/classify-error.js','./lib/errors/all-engines-failed-panel.js','./lib/errors/unexpected-error-panel.js','./lib/svg/index.js','./lib/svg/radar.js','./lib/report/sections.js','./lib/report/extract-quotes.js','./lib/report/markdown.js','./lib/report/html.js','./lib/report/classify-citations.js','./lib/report/extract-competitors-llm.js','./lib/report/sentiment-classify.js','./lib/report/outreach-templates.js','./lib/report/crawlability-audit.js','./lib/report/domain-category.js','./lib/report/geo-context.js','./lib/report/markdown-to-html.js','./lib/report/visibility-index.js','./lib/report/topic-cluster.js','./lib/report/csv-export.js','./lib/report/log-parser.js','./lib/report/authority-presence.js','./lib/report/ads-detector.js','./lib/report/utm-tracker.js','./lib/config/queries-normalize.js','./lib/report/top-domains.js','./lib/providers/non-search-model.js','./lib/report/response-quality.js','./lib/report/own-domain.js','./lib/init/research/topup.js','./lib/init/clean-category.js','./lib/util/node-version.js','./lib/util/atomic-write.js','./lib/util/update-check.js','./lib/util/local-version.js'].map(f => import(f))).then(() => console.log('OK: all modules loaded')).catch(e => { console.error(e); process.exit(1); })"- …and 49 more.