// One-off: export all built-in levels to JSON for the Flutter port. import { LEVELS, TYPE_LABEL, TYPE_CLASS } from './js/levels/index.js'; import { writeFileSync } from 'fs'; // Sanity: ensure serializable and report shapes. function deepCheck(v, path) { if (v === null || v === undefined) return; if (typeof v === 'function') throw new Error('function at ' + path); if (typeof v === 'object') { if (Array.isArray(v)) { v.forEach((e, i) => deepCheck(e, path + '[' + i + ']')); } else { for (const k of Object.keys(v)) deepCheck(v[k], path + '.' + k); } } } for (const l of LEVELS) deepCheck(l, l.id || '?'); const out = { levels: LEVELS, typeLabel: TYPE_LABEL, typeClass: TYPE_CLASS, }; writeFileSync('levels_dump.json', JSON.stringify(out)); console.log('OK levels=', LEVELS.length, 'bytes=', JSON.stringify(out).length); for (const l of LEVELS) { console.log(' -', l.id, l.name, 'type=' + l.type, 'w=' + l.width, 'rows=' + (l.grid ? l.grid.length : '?')); }