#!/usr/bin/env node import { readFile } from 'node:fs/promises'; const inputPath = process.argv[2]; const source = inputPath ? await readFile(inputPath, 'utf8') : await new Promise((resolve, reject) => { let value = ''; process.stdin.setEncoding('utf8'); process.stdin.on('data', (chunk) => { value += chunk; }); process.stdin.on('end', () => resolve(value)); process.stdin.on('error', reject); }); const payload = JSON.parse(source); if (!Array.isArray(payload.listings)) { throw new Error('Expected an object with a listings array'); } const listings = payload.listings.map((listing) => { const itemUrl = String(listing.item_url || ''); const canonicalUrl = itemUrl ? itemUrl.split('?')[0] : null; const itemId = listing.item_id || canonicalUrl?.match(/\/itm\/(\d+)/)?.[1] || null; return { ...listing, item_id: itemId, item_url: canonicalUrl }; }); process.stdout.write(`${JSON.stringify({ ...payload, listings }, null, 2)}\n`);