27 lines
1.1 KiB
JavaScript
27 lines
1.1 KiB
JavaScript
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
// Minimal valid 1x1 PNG (gray pixel) for placeholders
|
|
// Real icons would be proper assets, but these satisfy manifest requirements for MVP
|
|
const minimalPng = Buffer.from([
|
|
0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, // PNG signature
|
|
0x00, 0x00, 0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, // IHDR chunk length
|
|
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, // 1x1
|
|
0x08, 0x02, 0x00, 0x00, 0x00, 0x90, 0x77, 0x53, // 8-bit RGB, compression
|
|
0xDE, 0x00, 0x00, 0x00, 0x0C, 0x49, 0x44, 0x41, // IDAT chunk
|
|
0x54, 0x08, 0xD7, 0x63, 0xF8, 0xCF, 0xC0, 0x00, // compressed data (gray pixel)
|
|
0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x05, 0xFE, //
|
|
0xD7, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, // IEND chunk
|
|
0x44, 0xAE, 0x42, 0x60, 0x82
|
|
]);
|
|
|
|
const iconDir = path.join(__dirname, 'src', 'icons');
|
|
fs.mkdirSync(iconDir, { recursive: true });
|
|
|
|
const sizes = [16, 48, 128];
|
|
for (const size of sizes) {
|
|
fs.writeFileSync(path.join(iconDir, `icon${size}.png`), minimalPng);
|
|
}
|
|
|
|
console.log('Icons generated:', sizes.map(s => `icon${s}.png`).join(', '));
|