@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
JavaScript
;
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