const fs = require('fs'); // Read the proto file fs.readFile('deobf.proto', 'utf8', (err, data) => { if (err) { console.error(err); return; } const pattern = /\/\/\s*CmdId:\s*(\d+)?\s*\n\s*message\s+(\w+)\s*{/g; let match; const messages = []; // Find all matches while ((match = pattern.exec(data)) !== null) { const cmdId = match[1] ? parseInt(match[1], 10) : 0; // If cmdId is not present, set to 0 const name = match[2]; // Skip messages without CmdId if (cmdId != 0) { messages.push({ name, id: cmdId }); //console.log('Found message:', name, 'CmdId:', cmdId); } else{ console.log('Not foundFound message:', name); } } // Convert to JSON format const jsonContent = JSON.stringify(messages, null, 4); // Write to test.json fs.writeFile('cmdid_deobf.json', jsonContent, 'utf8', (err) => { if (err) { console.error(err); return; } console.log('test.json has been saved.'); }); });