// Check small file geometry count const http = require('http'); function fetchObj(streamId, objectId) { return new Promise((resolve, reject) => { const req = http.request({ hostname: '127.0.0.1', port: 3000, path: `/objects/${streamId}/${objectId}/single`, method: 'GET', headers: { 'Accept': 'application/json' } }, (res) => { let body = ''; res.on('data', d => body += d); res.on('end', () => { try { resolve(JSON.parse(body)); } catch(e) { resolve(null); } }); }); req.on('error', reject); req.end(); }); } function gql(q) { return new Promise((resolve, reject) => { const data = JSON.stringify({ query: q }); const req = http.request({ hostname: '127.0.0.1', port: 3000, path: '/graphql', method: 'POST', headers: { 'Content-Type': 'application/json', 'Content-Length': Buffer.byteLength(data) } }, (res) => { let body = ''; res.on('data', d => body += d); res.on('end', () => resolve(JSON.parse(body))); }); req.on('error', reject); req.write(data); req.end(); }); } async function main() { // Get all models const result = await gql(`{ project(id: "5acd4310c0") { models { items { id name } } } }`); const models = result.data?.project?.models?.items || []; console.log('Models:', models.map(m => `${m.name} (${m.id})`).join(', ')); // Also check the small file project const result2 = await gql(`{ project(id: "10891fe0fa") { models { items { id name versions(limit:1) { items { id referencedObject } } } } } }`); const models2 = result2.data?.project?.models?.items || []; for (const m of models2) { const ver = m.versions?.items?.[0]; if (!ver?.referencedObject) continue; console.log(`\nSmall file model: ${m.name}`); const root = await fetchObj('10891fe0fa', ver.referencedObject); if (!root) continue; console.log('Root type:', root.speckle_type, 'keys:', Object.keys(root).join(', ')); // Walk first few children const elements = root.elements || []; if (Array.isArray(elements)) { for (let i = 0; i < Math.min(elements.length, 2); i++) { const el = elements[i]; if (el?.referencedId) { const child = await fetchObj('10891fe0fa', el.referencedId); if (child) { const hasDisplay = 'displayValue' in child; console.log(` Child: ${child.name || 'unnamed'} [${child.speckle_type}] displayValue: ${hasDisplay ? (Array.isArray(child.displayValue) ? child.displayValue.length + ' items' : typeof child.displayValue) : 'NONE'}`); } } } } } } main().catch(console.error);