#!/usr/bin/env node /** * Script pour corriger automatiquement tous les logs console.* en secureLogger */ const fs = require('fs'); const path = require('path'); // Fichiers à corriger const filesToFix = [ 'src/pages/home/home.ts', 'src/pages/pairing/pairing.ts', 'src/pages/wallet-setup/wallet-setup.ts', 'src/pages/security-setup/security-setup.ts', 'src/pages/birthday-setup/birthday-setup.ts', 'src/pages/block-sync/block-sync.ts', 'src/utils/sp-address.utils.ts', 'src/router.ts', 'src/websockets.ts' ]; // Fonction pour déterminer le niveau de log function determineLogLevel(message) { const lowerMessage = message.toLowerCase(); if (lowerMessage.includes('error') || lowerMessage.includes('failed') || lowerMessage.includes('❌')) { return 'error'; } if (lowerMessage.includes('warn') || lowerMessage.includes('⚠️') || lowerMessage.includes('skipping')) { return 'warn'; } if (lowerMessage.includes('debug') || lowerMessage.includes('🔍') || lowerMessage.includes('checking')) { return 'debug'; } return 'info'; } // Fonction pour déterminer le contexte function determineContext(filePath, message) { const fileName = path.basename(filePath, '.ts'); if (fileName.includes('service')) return 'Service'; if (fileName.includes('home')) return 'HomePage'; if (fileName.includes('pairing')) return 'PairingPage'; if (fileName.includes('wallet')) return 'WalletSetup'; if (fileName.includes('security')) return 'SecuritySetup'; if (fileName.includes('birthday')) return 'BirthdaySetup'; if (fileName.includes('block-sync')) return 'BlockSync'; if (fileName.includes('router')) return 'Router'; if (fileName.includes('websocket')) return 'WebSocket'; if (fileName.includes('sp-address')) return 'SPAddressUtils'; return 'Application'; } // Fonction pour corriger un fichier function fixFile(filePath) { if (!fs.existsSync(filePath)) { console.log(`⚠️ Fichier non trouvé: ${filePath}`); return; } let content = fs.readFileSync(filePath, 'utf8'); let modified = false; // Ajouter l'import secureLogger si pas déjà présent if (!content.includes('import { secureLogger }')) { const importMatch = content.match(/import.*from.*['"][^'"]+['"];?\s*\n/); if (importMatch) { const importIndex = content.lastIndexOf(importMatch[0]) + importMatch[0].length; content = content.slice(0, importIndex) + `import { secureLogger } from '../services/secure-logger';\n` + content.slice(importIndex); modified = true; } } // Remplacer console.log par secureLogger content = content.replace( /console\.log\s*\(\s*['"`]([^'"`]+)['"`]\s*\)/g, (match, message) => { const level = determineLogLevel(message); const context = determineContext(filePath, message); modified = true; return `secureLogger.${level}('${message}', { component: '${context}' })`; } ); // Remplacer console.warn par secureLogger.warn content = content.replace( /console\.warn\s*\(\s*['"`]([^'"`]+)['"`]\s*\)/g, (match, message) => { const context = determineContext(filePath, message); modified = true; return `secureLogger.warn('${message}', { component: '${context}' })`; } ); // Remplacer console.error par secureLogger.error content = content.replace( /console\.error\s*\(\s*['"`]([^'"`]+)['"`]\s*\)/g, (match, message) => { const context = determineContext(filePath, message); modified = true; return `secureLogger.error('${message}', { component: '${context}' })`; } ); // Remplacer console.info par secureLogger.info content = content.replace( /console\.info\s*\(\s*['"`]([^'"`]+)['"`]\s*\)/g, (match, message) => { const context = determineContext(filePath, message); modified = true; return `secureLogger.info('${message}', { component: '${context}' })`; } ); // Remplacer console.debug par secureLogger.debug content = content.replace( /console\.debug\s*\(\s*['"`]([^'"`]+)['"`]\s*\)/g, (match, message) => { const context = determineContext(filePath, message); modified = true; return `secureLogger.debug('${message}', { component: '${context}' })`; } ); if (modified) { fs.writeFileSync(filePath, content); console.log(`✅ Corrigé: ${filePath}`); } else { console.log(`⏭️ Aucune modification: ${filePath}`); } } // Exécuter les corrections console.log('🔧 Correction des logs console.* en secureLogger...\n'); filesToFix.forEach(file => { fixFile(file); }); console.log('\n✅ Correction terminée !');