mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-25 14:25:02 +00:00
36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
#!/usr/bin/env tsx
|
|
|
|
// Parse npm audit JSON and format results
|
|
import { execSync } from 'child_process'
|
|
|
|
try {
|
|
const audit = JSON.parse(execSync('npm audit --json 2>/dev/null || echo "{}"', { encoding: 'utf8' }))
|
|
|
|
const summary = {
|
|
vulnerabilities: {
|
|
critical: audit.metadata?.vulnerabilities?.critical || 0,
|
|
high: audit.metadata?.vulnerabilities?.high || 0,
|
|
moderate: audit.metadata?.vulnerabilities?.moderate || 0,
|
|
low: audit.metadata?.vulnerabilities?.low || 0,
|
|
info: audit.metadata?.vulnerabilities?.info || 0
|
|
},
|
|
totalVulnerabilities: audit.metadata?.totalVulnerabilities || 0,
|
|
advisories: Object.values(audit.vulnerabilities || {}).map((v: any) => ({
|
|
name: v.name,
|
|
severity: v.severity,
|
|
version: v.version,
|
|
fixAvailable: v.fixAvailable
|
|
})),
|
|
timestamp: new Date().toISOString()
|
|
}
|
|
|
|
console.log(JSON.stringify(summary, null, 2))
|
|
} catch (e) {
|
|
console.log(JSON.stringify({
|
|
vulnerabilities: { critical: 0, high: 0, moderate: 0, low: 0, info: 0 },
|
|
totalVulnerabilities: 0,
|
|
advisories: [],
|
|
timestamp: new Date().toISOString()
|
|
}, null, 2))
|
|
}
|