// Rebuild the email-safe PNG from the app's SVG tracks and background palette. // Run from backend: node scripts/generate-email-background.mjs import { readFile, writeFile } from 'node:fs/promises'; import sharp from 'sharp'; const css = await readFile(new URL('../../frontend/src/index.css', import.meta.url), 'utf8'); const encoded = css.match(/background-image: url\("data:image\/svg\+xml,([^"\n]+)"\)/)?.[1]; if (!encoded) throw new Error('App bird-track background was not found'); const tracks = decodeURIComponent(encoded); const gradients = `${[[14,10,22,'#de7c3a',.28],[82,12,20,'#35886e',.26],[24,84,22,'#ddb34e',.2],[86,78,24,'#2b765c',.24],[62,54,16,'#3072a0',.14]].map(([x,y,r,color,opacity],i)=>``).join('')}`; const svg = `${gradients}${[0,1,2,3,4].map(i=>``).join('')}${tracks.replace(/^]*>/,'').replace(/<\/svg>$/,'')}`; await writeFile(new URL('../assets/email-background.png', import.meta.url), await sharp(Buffer.from(svg)).png().toBuffer()); await writeFile(new URL('../../frontend/public/email-background.png', import.meta.url), await readFile(new URL('../assets/email-background.png', import.meta.url)));