const fs = require('fs'); const src = fs.readFileSync(__dirname + '/step-executor.js', 'utf8'); // Escape for embedding in JS single-quoted string let escaped = ''; for (let i = 0; i < src.length; i++) { const ch = src[i]; if (ch === '\\') escaped += '\\\\'; else if (ch === "'") escaped += "\\'"; else if (ch === '\n') escaped += '\\n'; else if (ch === '\r') continue; else escaped += ch; } // Split into chunks of ~12000 chars const CHUNK_SIZE = 12000; const chunks = []; for (let i = 0; i < escaped.length; i += CHUNK_SIZE) { chunks.push(escaped.substring(i, i + CHUNK_SIZE)); } console.log('Total escaped length:', escaped.length); console.log('Number of chunks:', chunks.length); // Write each chunk for (let i = 0; i < chunks.length; i++) { let script; if (i === 0) { script = "window.__C = '" + chunks[i] + "';"; } else if (i < chunks.length - 1) { script = "window.__C += '" + chunks[i] + "';"; } else { script = "window.__C += '" + chunks[i] + "'; eval(window.__C); delete window.__C; JSON.stringify({ok:!!window.__E2E__})"; } fs.writeFileSync(__dirname + '/eval_chunk_' + i + '.js', script, 'utf8'); console.log('Chunk ' + i + ': ' + script.length + ' chars'); } console.log('Done - ' + chunks.length + ' files created');