const SECRET_PATTERNS: Array<{ pattern: RegExp; category: string }> = [ { pattern: /-----BEGIN\s+(?:RSA\s+)?PRIVATE\s+KEY-----/gi, category: "Private Key", }, { pattern: /xox[baprs]-[a-zA-Z0-9-]+/gi, category: "Slack Token", }, { pattern: /sk-[a-zA-Z0-9]{20,}/gi, category: "OpenAI API Key", }, { pattern: /[a-zA-Z0-9_-]{20,}[a-zA-Z0-9_-]{20,}/gi, category: "Long Secret Pattern", }, { pattern: /ghp_[a-zA-Z0-9]{36}/gi, category: "GitHub Personal Access Token", }, { pattern: /AKIA[0-9A-Z]{16}/gi, category: "AWS Access Key", }, ]; export type SecurityCheckResult = | { blocked: true; category: string } | { blocked: false }; export function checkContent(content: string): SecurityCheckResult { for (const { pattern, category } of SECRET_PATTERNS) { if (pattern.test(content)) { return { blocked: true, category }; } } return { blocked: false }; }