import fs from 'node:fs'; const j = JSON.parse(fs.readFileSync('.cdp/out/overview-capture.json', 'utf8')); const bodies = j.value.rawBodies; const L = []; const seen = new Set(); for (const b of bodies) { const m = /datacompass\.([\w.]+)\/1\.0/.exec(b.url); const api = m ? m[1] : '?'; const t = (/t=(\d+)/.exec(b.url) || [])[1]; const key = api + '|' + b.text.length; const p = JSON.parse(b.text); const d = p && p.data && p.data.data; L.push('==== ' + api + ' (t=' + t + ', len=' + b.text.length + ') ===='); if (d) { L.push(' data.data keys: ' + JSON.stringify(Object.keys(d))); for (const [k, v] of Object.entries(d)) { if (Array.isArray(v)) L.push(` ${k}: Array(${v.length})` + (v.length ? ' item0keys=' + JSON.stringify(Object.keys(v[0])).slice(0, 400) : '')); else if (v && typeof v === 'object') L.push(` ${k}: Object keys=` + JSON.stringify(Object.keys(v)).slice(0, 400)); else L.push(` ${k}: ${JSON.stringify(v)}`); } } else { L.push(' no data.data; top keys=' + JSON.stringify(p ? Object.keys(p) : null)); } L.push(''); } fs.writeFileSync('.cdp/out/ov-all-struct.txt', L.join('\n'), 'utf8');