UNPKG

ubon

Version:

Security scanner for AI-generated apps (Cursor, Lovable, Windsurf, v0). Catches hardcoded secrets, prompt injection, hallucinated imports, Server Actions / Edge runtime mistakes, and the vibe-coded vulnerabilities traditional linters miss.

105 lines 4.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.REMOVED_PROFILES = exports.PROFILES = void 0; exports.resolveScanners = resolveScanners; const security_scanner_1 = require("../scanners/security-scanner"); const ast_security_scanner_1 = require("../scanners/ast-security-scanner"); const accessibility_scanner_1 = require("../scanners/accessibility-scanner"); const development_scanner_1 = require("../scanners/development-scanner"); const vibe_scanner_1 = require("../scanners/vibe-scanner"); const ai_scanner_1 = require("../scanners/ai-scanner"); const framework_scanner_1 = require("../scanners/framework-scanner"); const env_scanner_1 = require("../scanners/env-scanner"); const iac_scanner_1 = require("../scanners/iac-scanner"); const osv_scanner_1 = require("../scanners/osv-scanner"); const react_security_scanner_1 = require("../scanners/react-security-scanner"); const react_patterns_scanner_1 = require("../scanners/react-patterns-scanner"); const lovable_supabase_scanner_1 = require("../scanners/lovable-supabase-scanner"); const vite_scanner_1 = require("../scanners/vite-scanner"); const agent_settings_scanner_1 = require("../scanners/agent-settings-scanner"); const baseJsScanners = () => [ new security_scanner_1.SecurityScanner(), new ast_security_scanner_1.AstSecurityScanner(), new accessibility_scanner_1.AccessibilityScanner(), new development_scanner_1.DevelopmentScanner(), new vibe_scanner_1.VibeScanner(), new ai_scanner_1.AIScanner(), new framework_scanner_1.FrameworkScanner(), new react_patterns_scanner_1.ReactPatternsScanner(), new agent_settings_scanner_1.AgentSettingsScanner(), new env_scanner_1.EnvScanner(), new iac_scanner_1.IacScanner() ]; exports.PROFILES = { auto: ({ fast }) => { const arr = baseJsScanners(); if (!fast) arr.push(new osv_scanner_1.OSVScanner()); return arr; }, next: ({ fast }) => { const arr = baseJsScanners(); if (!fast) arr.push(new osv_scanner_1.OSVScanner()); return arr; }, react: ({ fast }) => { const arr = [new react_security_scanner_1.ReactSecurityScanner(), ...baseJsScanners()]; if (!fast) arr.push(new osv_scanner_1.OSVScanner()); return arr; }, sveltekit: ({ fast }) => { const arr = baseJsScanners(); if (!fast) arr.push(new osv_scanner_1.OSVScanner()); return arr; }, astro: ({ fast }) => { const arr = baseJsScanners(); if (!fast) arr.push(new osv_scanner_1.OSVScanner()); return arr; }, remix: ({ fast }) => { const arr = baseJsScanners(); if (!fast) arr.push(new osv_scanner_1.OSVScanner()); return arr; }, hono: ({ fast }) => { const arr = baseJsScanners(); if (!fast) arr.push(new osv_scanner_1.OSVScanner()); return arr; }, lovable: ({ fast }) => { const arr = [ new lovable_supabase_scanner_1.LovableSupabaseScanner(), new vite_scanner_1.ViteScanner(), new react_security_scanner_1.ReactSecurityScanner(), ...baseJsScanners() ]; if (!fast) arr.push(new osv_scanner_1.OSVScanner()); return arr; } }; /** * Profiles that existed in v2.x and were removed in v3.0.0. Kept here so * `--profile python|rails|vue` produces a clear error pointing at the * migration guide instead of silently falling back to `auto`. */ exports.REMOVED_PROFILES = { python: 'Use Bandit (or your preferred Python security scanner) for Python projects.', rails: 'Use Brakeman for Ruby on Rails projects.', vue: 'Use eslint-plugin-vue (and audit your Supabase/Pinia state) for Vue projects.' }; function resolveScanners(profile, fast) { const name = profile || 'auto'; const builder = exports.PROFILES[name]; if (!builder) return exports.PROFILES.auto({ fast: !!fast }); return builder({ fast: !!fast }); } //# sourceMappingURL=profiles.js.map