release: WRNexusJS 0.8.0
Quality / quality (ubuntu-latest) (push) Failing after 21s
Quality / quality (windows-latest) (push) Canceled after 0s

This commit is contained in:
2026-08-02 23:18:51 +05:30
parent 87507edf59
commit 586a6db8ff
625 changed files with 243608 additions and 11210 deletions
+41
View File
@@ -0,0 +1,41 @@
import { existsSync, readFileSync } from "node:fs";
import console from "node:console";
import { resolve } from "node:path";
import process from "node:process";
const root = resolve(import.meta.dirname, "..");
const mapPath = resolve(root, "docs/SECURITY-ASVS-5.md");
const source = readFileSync(mapPath, "utf8");
const requiredIds = [
"v5.0.0-1.1.2",
"v5.0.0-1.2.1",
"v5.0.0-1.2.3",
"v5.0.0-1.2.4",
"v5.0.0-1.3.6",
"v5.0.0-3.3.1",
"v5.0.0-3.3.2",
"v5.0.0-3.3.4",
"v5.0.0-3.4.1",
"v5.0.0-3.4.2",
"v5.0.0-3.4.6",
"v5.0.0-3.5.1",
"v5.0.0-3.7.2",
"v5.0.0-16.2.5",
"v5.0.0-16.3.1",
"v5.0.0-16.3.2",
];
const missingIds = requiredIds.filter((id) => !source.includes(`\`${id}\``));
const evidence = [...source.matchAll(/`((?:packages|scripts)\/[\w./-]+)`/g)].map(
(match) => match[1],
);
const missingEvidence = evidence.filter((path) => !existsSync(resolve(root, path)));
if (missingIds.length || missingEvidence.length) {
if (missingIds.length) console.error(`Missing ASVS mappings: ${missingIds.join(", ")}`);
if (missingEvidence.length)
console.error(`Missing security evidence: ${missingEvidence.join(", ")}`);
process.exit(1);
}
console.log(
`Security map verified: ${requiredIds.length} ASVS requirements, ${evidence.length} evidence files.`,
);