UNPKG

ripple-ai-detector

Version:

🌊 Ripple AI Bug Detector - Built by an AI that knows its flaws. Catch AI-generated bugs before you commit.

123 lines • 3.79 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.configManager = exports.ConfigManager = void 0; const cosmiconfig_1 = require("cosmiconfig"); const path_1 = __importDefault(require("path")); const file_utils_1 = require("../utils/file-utils"); const DEFAULT_CONFIG = { analysis: { languages: ['javascript', 'typescript'], include: ['src/**/*.{js,ts,jsx,tsx}', '**/*.{js,ts,jsx,tsx}'], exclude: [ 'node_modules/**', 'dist/**', 'build/**', '.git/**', '**/*.test.{js,ts}', '**/*.spec.{js,ts}', '**/*.d.ts' ], maxFiles: 100 }, rules: { functionSignatureChange: { enabled: true, severity: 'error' }, importExportMismatch: { enabled: true, severity: 'error' }, typeMismatch: { enabled: true, severity: 'warning' } }, aiDetection: { enabled: true, sensitivity: 'medium', patterns: [ 'multiple-file-changes', 'function-signature-changes', 'import-export-changes', 'type-definition-changes' ] }, output: { format: 'console', verbose: false, showConfidence: true }, usage: { trackingEnabled: true, apiUrl: 'https://api.ripple.dev' } }; class ConfigManager { static instance; config; configPath = null; constructor() { this.config = DEFAULT_CONFIG; } static getInstance() { if (!ConfigManager.instance) { ConfigManager.instance = new ConfigManager(); } return ConfigManager.instance; } // Load configuration from file or use defaults async loadConfig(searchFrom) { const explorer = (0, cosmiconfig_1.cosmiconfigSync)('ripple'); const result = explorer.search(searchFrom); if (result) { this.configPath = result.filepath; this.config = { ...DEFAULT_CONFIG, ...result.config }; } else { this.config = DEFAULT_CONFIG; } return this.config; } // Get current configuration getConfig() { return this.config; } // Create default config file async createDefaultConfig(directory = process.cwd()) { const configPath = path_1.default.join(directory, '.ripple.config.js'); const configContent = `module.exports = ${JSON.stringify(DEFAULT_CONFIG, null, 2)};`; await file_utils_1.FileUtils.writeFile(configPath, configContent); return configPath; } // Update configuration updateConfig(updates) { this.config = { ...this.config, ...updates }; } // Get config file path getConfigPath() { return this.configPath; } // Check if config file exists async hasConfigFile(directory = process.cwd()) { const possiblePaths = [ path_1.default.join(directory, '.ripple.config.js'), path_1.default.join(directory, '.ripple.config.json'), path_1.default.join(directory, 'ripple.config.js'), path_1.default.join(directory, 'ripple.config.json') ]; for (const configPath of possiblePaths) { if (await file_utils_1.FileUtils.exists(configPath)) { return true; } } return false; } } exports.ConfigManager = ConfigManager; // Export singleton instance exports.configManager = ConfigManager.getInstance(); //# sourceMappingURL=config.js.map