UNPKG

code-auditor-mcp

Version:

Multi-language code quality auditor with MCP server - Analyze TypeScript, JavaScript, and Go code for SOLID principles, DRY violations, security patterns, and more

119 lines 3.42 kB
/** * Universal Schema Analyzer * Works across multiple programming languages using the adapter pattern * Analyzes code against database schemas */ import { UniversalAnalyzer } from '../../languages/UniversalAnalyzer.js'; import type { Violation } from '../../types.js'; import type { AST, LanguageAdapter } from '../../languages/types.js'; /** * Configuration for Schema analyzer */ export interface SchemaAnalyzerConfig { enableTableUsageTracking?: boolean; checkMissingReferences?: boolean; checkNamingConventions?: boolean; detectUnusedTables?: boolean; validateQueryPatterns?: boolean; maxQueriesPerFunction?: number; requiredSchemas?: string[]; schemas?: Array<{ name: string; tables: Array<{ name: string; columns: Array<{ name: string; type: string; }>; }>; }>; validateJsonSchemas?: boolean; jsonSchemaVersion?: 'draft-04' | 'draft-06' | 'draft-07' | '2019-09' | '2020-12'; allowedJsonTypes?: string[]; schemaFilePatterns?: string[]; dataFilePatterns?: string[]; schemaDataPairs?: Array<{ schema: string; data: string | string[]; }>; strictMode?: boolean; allowAdditionalProperties?: boolean; } export declare const DEFAULT_SCHEMA_CONFIG: SchemaAnalyzerConfig; import type { AnalyzerResult } from '../../types.js'; export declare class UniversalSchemaAnalyzer extends UniversalAnalyzer { readonly name = "schema"; readonly description = "Analyzes code against database schemas and validates JSON schemas"; readonly category = "database"; private tableReferences; private columnReferences; /** * Override analyze to handle both TypeScript files and JSON files */ analyze(files: string[], config: any): Promise<AnalyzerResult>; protected analyzeAST(ast: AST, adapter: LanguageAdapter, config: SchemaAnalyzerConfig, sourceCode: string): Promise<Violation[]>; /** * Find table references in the code */ private findTableReferences; /** * Find column references */ private findColumnReferences; /** * Check naming conventions */ private checkNamingConventions; /** * Check query patterns */ private checkQueryPatterns; /** * Check for SQL injection vulnerabilities */ private checkSQLInjection; /** * Helper methods */ private getQueryType; private isSystemTable; private countQueries; private findNodeByLocation; /** * Analyze JSON Schema files */ private analyzeJsonSchemas; /** * Validate a JSON Schema */ private validateJsonSchema; /** * Recursively validate schema types */ private validateSchemaTypes; /** * Identify schema files based on patterns */ private identifySchemaFiles; /** * Identify data files based on patterns */ private identifyDataFiles; /** * Load a schema from file */ private loadSchema; /** * Find matching schema for a data file */ private findMatchingSchema; /** * Validate data against a JSON Schema */ private validateDataAgainstSchema; /** * Validate data against schema recursively */ private validateAgainstSchema; } //# sourceMappingURL=UniversalSchemaAnalyzer.d.ts.map