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.

73 lines 2.73 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.RULE_IMPLEMENTATIONS = exports.RULES = void 0; exports.getRule = getRule; exports.getRulesByCategory = getRulesByCategory; exports.getAllRuleIds = getAllRuleIds; exports.isModularRule = isModularRule; const security_1 = require("./security"); const accessibility_1 = require("./accessibility"); const development_1 = require("./development"); const links_1 = require("./links"); const lovable_1 = require("./lovable"); const vite_1 = require("./vite"); const react_1 = require("./react"); const vibe_1 = require("./vibe"); const ai_1 = require("./ai"); const frameworks_1 = require("./frameworks"); const module_1 = require("./module"); const agent_1 = require("./agent"); // Combine all modular rules from different categories const allRuleModules = { ...security_1.securityRules, ...accessibility_1.accessibilityRules, ...development_1.developmentRules, ...links_1.linksRules, ...lovable_1.lovableRules, ...vite_1.viteRules, ...react_1.reactRules, ...vibe_1.vibeRules, ...ai_1.aiRules, ...frameworks_1.frameworkRules, ...module_1.moduleRules, ...agent_1.agentRules }; // Create rules registry (compatible with existing RULES interface) exports.RULES = {}; exports.RULE_IMPLEMENTATIONS = {}; // Populate registries with modular rules first for (const [id, rule] of Object.entries(allRuleModules)) { const typedRule = rule; exports.RULES[id] = typedRule.meta; exports.RULE_IMPLEMENTATIONS[id] = typedRule; } // Helper functions function getRule(id) { return exports.RULE_IMPLEMENTATIONS[id]; } function getRulesByCategory(category) { return Object.values(exports.RULE_IMPLEMENTATIONS).filter(rule => rule.meta.category === category); } function getAllRuleIds() { return Object.keys(exports.RULES); } function isModularRule(id) { return allRuleModules.hasOwnProperty(id); } // Re-export types for convenience __exportStar(require("./types"), exports); //# sourceMappingURL=index.js.map