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

82 lines 2.52 kB
/** * Universal Data Access Analyzer * Works across multiple programming languages using the adapter pattern * Analyzes database access patterns and data layer interactions */ import { UniversalAnalyzer } from '../../languages/UniversalAnalyzer.js'; import type { Violation } from '../../types.js'; import type { AST, LanguageAdapter } from '../../languages/types.js'; /** * Configuration for Data Access analyzer */ export interface DataAccessAnalyzerConfig { checkOrgFilters?: boolean; checkSQLInjection?: boolean; databases?: { [key: string]: { name: string; importPatterns: string[]; queryPatterns: string[]; ormPatterns?: string[]; }; }; organizationPatterns?: string[]; tablePatterns?: { orm?: RegExp[]; sql?: RegExp[]; queryBuilder?: RegExp[]; }; performanceThresholds?: { complexQueryCount?: number; unfilteredQueryCount?: number; joinedTableCount?: number; }; securityPatterns?: { sqlInjectionRisks?: string[]; parameterizedQueries?: string[]; }; } export declare const DEFAULT_DATA_ACCESS_CONFIG: DataAccessAnalyzerConfig; export declare class UniversalDataAccessAnalyzer extends UniversalAnalyzer { readonly name = "data-access"; readonly description = "Analyzes database access patterns and data layer interactions"; readonly category = "security"; protected analyzeAST(ast: AST, adapter: LanguageAdapter, config: DataAccessAnalyzerConfig, sourceCode: string): Promise<Violation[]>; /** * Map imports to database types */ private mapDatabaseImports; /** * Extract database calls from AST */ private extractDatabaseCalls; /** * Analyze a database query */ private analyzeQuery; /** * Check for violations in a database call */ private checkViolations; /** * Check general data access patterns */ private checkGeneralPatterns; /** * Helper methods */ private isFunctionCall; private isTemplateLiteral; private isVariableAssignment; private containsSQLKeywords; private isOrmPattern; private isDatabaseCall; private extractTables; private hasOrganizationFilter; private checkQuerySecurity; private extractMethodName; private requiresOrgFilter; private isStringLiteral; private isConnectionString; } //# sourceMappingURL=UniversalDataAccessAnalyzer.d.ts.map