T.ME/BIBIL_0DAY
CasperSecurity


Server : Apache/2
System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64
User : gositeme ( 1004)
PHP Version : 8.2.29
Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Directory :  /home/gositeme/domains/lavocat.quebec/public_html/scripts/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/domains/lavocat.quebec/public_html/scripts/remove-console-logs.js
#!/usr/bin/env node

const fs = require('fs');
const path = require('path');
const glob = require('glob');

// Patterns to match console statements
const consolePatterns = [
  /console\.log\([^)]*\);?\s*/g,
  /console\.warn\([^)]*\);?\s*/g,
  /console\.error\([^)]*\);?\s*/g,
  /console\.debug\([^)]*\);?\s*/g,
  /console\.info\([^)]*\);?\s*/g,
];

// Files to exclude
const excludePatterns = [
  'node_modules/**',
  '.next/**',
  'scripts/**',
  '*.log',
  '*.md',
];

function removeConsoleStatements(filePath) {
  try {
    let content = fs.readFileSync(filePath, 'utf8');
    let originalLength = content.length;
    let removedCount = 0;

    // Remove console statements
    consolePatterns.forEach(pattern => {
      const matches = content.match(pattern);
      if (matches) {
        removedCount += matches.length;
        content = content.replace(pattern, '');
      }
    });

    // Clean up empty lines
    content = content.replace(/\n\s*\n\s*\n/g, '\n\n');

    if (removedCount > 0) {
      fs.writeFileSync(filePath, content);
      console.log(`āœ… ${filePath}: Removed ${removedCount} console statements (${originalLength - content.length} bytes)`);
      return removedCount;
    }

    return 0;
  } catch (error) {
    console.error(`āŒ Error processing ${filePath}:`, error.message);
    return 0;
  }
}

function main() {
  console.log('šŸš€ Starting console.log removal...\n');

  // Find all TypeScript and JavaScript files
  const patterns = [
    'src/**/*.{ts,tsx,js,jsx}',
    'pages/**/*.{ts,tsx,js,jsx}',
    'components/**/*.{ts,tsx,js,jsx}',
  ];

  let totalRemoved = 0;
  let filesProcessed = 0;

  patterns.forEach(pattern => {
    const files = glob.sync(pattern, {
      ignore: excludePatterns,
      cwd: process.cwd(),
    });

    files.forEach(file => {
      const removed = removeConsoleStatements(file);
      totalRemoved += removed;
      filesProcessed++;
    });
  });

  console.log(`\nšŸ“Š Summary:`);
  console.log(`   Files processed: ${filesProcessed}`);
  console.log(`   Console statements removed: ${totalRemoved}`);
  console.log(`   Average per file: ${filesProcessed > 0 ? (totalRemoved / filesProcessed).toFixed(1) : 0}`);
}

if (require.main === module) {
  main();
}

module.exports = { removeConsoleStatements };

CasperSecurity Mini