Package evidence
[email protected]
Install Lifecycle Remote Or Exec: postinstall="npm rebuild better-sqlite3 --workspace=backend 2>/dev/null || npm rebuild better-sqlite3 2>/dev/null || true; node -e \"try { require('child_process').execSync('git rev-parse --git-dir', {stdio:'ignore'}); require('child_process').execSync('npm run setup-hooks', {stdio:'inherit'}); } catch(e) {}\""
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
- 18
- Versions published
- 29
- First published
- Jan 2026
- Publisher
- kroonen-ai
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 Remote Or Exec: postinstall="npm rebuild better-sqlite3 --workspace=backend 2>/dev/null || npm rebuild better-sqlite3 2>/dev/null || true; node -e \"try { require('child_process').execSync('git rev-parse --git-dir', {stdio:'ignore'}); require('child_process').execSync('npm run setup-hooks', {stdio:'inherit'}); } catch(e) {}\""
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 55 · status changed
Evidence
Static findings
3 static · 0 from release diff · showing high-signal first.
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| high | Install Lifecycle Remote Or Exec | package.json | postinstall="npm rebuild better-sqlite3 --workspace=backend 2>/dev/null || npm rebuild better-sqlite3 2>/dev/null || true; node -e \"try { require('child_process').execSync('git rev-parse --git-dir', {stdio:'ignore'}); require('child_process').execSync('npm run setup-hooks', {stdio:'inherit'}); } catch(e) {}\"" | 30 |
| high | Install Lifecycle Suppresses Failure | package.json | postinstall="npm rebuild better-sqlite3 --workspace=backend 2>/dev/null || npm rebuild better-sqlite3 2>/dev/null || true; node -e \"try { require('child_process').execSync('git rev-parse --git-dir', {stdio:'ignore'}); require('child_process').execSync('npm run setup-hooks', {stdio:'inherit'}); } catch(e) {}\"" | 20 |
Show all 3 findings (low-signal and informational)
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| high | Install Lifecycle Remote Or Exec | package.json | postinstall="npm rebuild better-sqlite3 --workspace=backend 2>/dev/null || npm rebuild better-sqlite3 2>/dev/null || true; node -e \"try { require('child_process').execSync('git rev-parse --git-dir', {stdio:'ignore'}); require('child_process').execSync('npm run setup-hooks', {stdio:'inherit'}); } catch(e) {}\"" | 30 |
| high | Install Lifecycle Suppresses Failure | package.json | postinstall="npm rebuild better-sqlite3 --workspace=backend 2>/dev/null || npm rebuild better-sqlite3 2>/dev/null || true; node -e \"try { require('child_process').execSync('git rev-parse --git-dir', {stdio:'ignore'}); require('child_process').execSync('npm run setup-hooks', {stdio:'inherit'}); } catch(e) {}\"" | 20 |
| low | Install-time lifecycle script | package.json | postinstall="npm rebuild better-sqlite3 --workspace=backend 2>/dev/null || npm rebuild better-sqlite3 2>/dev/null || true; node -e \"try { require('child_process').execSync('git rev-parse --git-dir', {stdio:'ignore'}); require('child_process').execSync('npm run setup-hooks', {stdio:'inherit'}); } catch(e) {}\"" | 5 |
Manifest
Package metadata
Scripts41
add-headersnode scripts/add-headers.jsanalyzenode scripts/analyze-development.jsanalyze:metricsnode scripts/analyze-development.js --metricsanalyze:quicknode scripts/analyze-development.js --quickbuildnpm run build:frontend && npm run build:backendbuild:backendcd backend && npm run buildbuild:frontendcd frontend && npm run buildchangelognode scripts/generate-changelog.jschangelog:ainode scripts/ai-changelog-generator.jschangelog:ai:impactnode scripts/ai-changelog-generator.js impactchangelog:ai:summarynode scripts/ai-changelog-generator.js summarydevconcurrently "npm run dev:backend" "npm run dev:frontend"dev:backendcd backend && npm run devdev:frontendcd frontend && npm run devdev:hostconcurrently "npm run dev:backend" "cd frontend && npm run dev -- --host --port 8080"electron:buildELECTRON_BUILD=true npm run build:frontend && npm run build:backend && electron-builder build --mac --arm64 --publish neverelectron:build:linuxELECTRON_BUILD=true npm run build:frontend && npm run build:backend && electron-builder build --linux --publish neverelectron:build:universalnpm run build && electron-builder build --mac --arm64 --x64electron:build:winnpm run build:frontend && npm run build:backend && electron-builder build --win --publish neverelectron:devconcurrently "npm run dev" "wait-on http://localhost:5173 && electron ."electron:packelectron-builder --dirformatnode scripts/add-headers.js && prettier --write "frontend/src/**/*.{ts,tsx,js,jsx,json,css,md}" "backend/src/**/*.{ts,js,json,md}" "*.{json,md,yml,yaml}" ".github/**/*.{yml,yaml}"format:checkprettier --check "frontend/src/**/*.{ts,tsx,js,jsx,json,css,md}" "backend/src/**/*.{ts,js,json,md}" "*.{json,md,yml,yaml}" ".github/**/*.{yml,yaml}"generate-iconsnode scripts/generate-icons.jsinstall:allnpm install && cd frontend && npm install && cd ../backend && npm installlintnpm run lint:frontend && npm run lint:backendlint:backendcd backend && npm run lintlint:fixnpm run lint:fix:frontend && npm run lint:fix:backendlint:fix:backendcd backend && npm run lint:fixlint:fix:frontendcd frontend && npm run lint:fix- …and 11 more.
Dependencies16
axios^1.13.2bcrypt^6.0.0better-sqlite3^12.5.0cors^2.8.5dotenv^17.2.3express^5.2.1express-rate-limit^8.2.1helmet^8.1.0jsonwebtoken^9.0.3morgan^1.10.0multer^2.0.1pdfjs-dist^5.4.530sanitize-filename^1.6.3sonner^2.0.7uuid^13.0.0ws^8.14.2