UNPKG

@samiyev/guardian

Version:

Research-backed code quality guardian for AI-assisted development. Detects hardcodes, secrets, circular deps, framework leaks, entity exposure, and 9 architecture violations. Enforces Clean Architecture/DDD principles. Works with GitHub Copilot, Cursor, W

126 lines 3.99 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.VIOLATION_SEVERITY_MAP = exports.SEVERITY_ORDER = exports.SEVERITY_LEVELS = exports.PLACEHOLDERS = exports.REGEX_PATTERNS = exports.EXAMPLE_CODE_CONSTANTS = exports.CLASS_KEYWORDS = exports.TYPE_NAMES = exports.FILE_EXTENSIONS = exports.ERROR_CODES = exports.ERROR_MESSAGES = exports.APP_CONSTANTS = void 0; exports.APP_CONSTANTS = { DEFAULT_TIMEOUT: 5000, MAX_RETRIES: 3, VERSION: "0.0.1", }; exports.ERROR_MESSAGES = { VALIDATION_FAILED: "Validation failed", NOT_FOUND: "Resource not found", UNAUTHORIZED: "Unauthorized access", INTERNAL_ERROR: "Internal server error", FAILED_TO_ANALYZE: "Failed to analyze project", FAILED_TO_SCAN_DIR: "Failed to scan directory", FAILED_TO_READ_FILE: "Failed to read file", ENTITY_NOT_FOUND: "Entity with id {id} not found", }; /** * Error codes */ exports.ERROR_CODES = { VALIDATION_ERROR: "VALIDATION_ERROR", NOT_FOUND: "NOT_FOUND", UNAUTHORIZED: "UNAUTHORIZED", INTERNAL_ERROR: "INTERNAL_ERROR", }; /** * File extension constants */ exports.FILE_EXTENSIONS = { TYPESCRIPT: ".ts", TYPESCRIPT_JSX: ".tsx", JAVASCRIPT: ".js", JAVASCRIPT_JSX: ".jsx", }; /** * TypeScript primitive type names */ exports.TYPE_NAMES = { STRING: "string", NUMBER: "number", BOOLEAN: "boolean", OBJECT: "object", }; /** * TypeScript class and method keywords */ exports.CLASS_KEYWORDS = { CONSTRUCTOR: "constructor", PUBLIC: "public", PRIVATE: "private", PROTECTED: "protected", }; /** * Example code constants for documentation */ exports.EXAMPLE_CODE_CONSTANTS = { ORDER_STATUS_PENDING: "pending", ORDER_STATUS_APPROVED: "approved", CANNOT_APPROVE_ERROR: "Cannot approve", }; /** * Common regex patterns */ exports.REGEX_PATTERNS = { IMPORT_STATEMENT: /import\s+.*?\s+from\s+['"]([^'"]+)['"]/g, EXPORT_STATEMENT: /export\s+(?:class|function|const|let|var)\s+(\w+)/g, }; /** * Placeholders for string templates */ exports.PLACEHOLDERS = { ID: "{id}", }; /** * Violation severity levels */ exports.SEVERITY_LEVELS = { CRITICAL: "critical", HIGH: "high", MEDIUM: "medium", LOW: "low", }; /** * Severity order for sorting (lower number = more critical) */ exports.SEVERITY_ORDER = { [exports.SEVERITY_LEVELS.CRITICAL]: 0, [exports.SEVERITY_LEVELS.HIGH]: 1, [exports.SEVERITY_LEVELS.MEDIUM]: 2, [exports.SEVERITY_LEVELS.LOW]: 3, }; /** * Violation type to severity mapping */ exports.VIOLATION_SEVERITY_MAP = { SECRET_EXPOSURE: exports.SEVERITY_LEVELS.CRITICAL, CIRCULAR_DEPENDENCY: exports.SEVERITY_LEVELS.CRITICAL, REPOSITORY_PATTERN: exports.SEVERITY_LEVELS.CRITICAL, AGGREGATE_BOUNDARY: exports.SEVERITY_LEVELS.CRITICAL, DEPENDENCY_DIRECTION: exports.SEVERITY_LEVELS.HIGH, FRAMEWORK_LEAK: exports.SEVERITY_LEVELS.HIGH, ENTITY_EXPOSURE: exports.SEVERITY_LEVELS.HIGH, ANEMIC_MODEL: exports.SEVERITY_LEVELS.MEDIUM, NAMING_CONVENTION: exports.SEVERITY_LEVELS.MEDIUM, ARCHITECTURE: exports.SEVERITY_LEVELS.MEDIUM, HARDCODE: exports.SEVERITY_LEVELS.LOW, }; __exportStar(require("./rules"), exports); __exportStar(require("./ast-node-types"), exports); //# sourceMappingURL=index.js.map