import client, { ensureAuthenticated } from '../lib/directus'; import { updateSettings, uploadFiles } from '@directus/sdk'; import fs from 'fs'; import path from 'path'; import { fileURLToPath } from 'url'; // Helper for ESM __dirname const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); async function setupBranding() { console.log('🎨 Refining Directus Branding for Premium Website Look...'); // 1. Authenticate await ensureAuthenticated(); try { // 2. Upload Assets (MIME FIXED) console.log('📤 Re-uploading assets for clean IDs...'); const getMimeType = (filePath: string) => { const ext = path.extname(filePath).toLowerCase(); switch (ext) { case '.svg': return 'image/svg+xml'; case '.png': return 'image/png'; case '.jpg': case '.jpeg': return 'image/jpeg'; case '.ico': return 'image/x-icon'; default: return 'application/octet-stream'; } }; const uploadAsset = async (filePath: string, title: string) => { if (!fs.existsSync(filePath)) { console.warn(`⚠️ File not found: ${filePath}`); return null; } const mimeType = getMimeType(filePath); const form = new FormData(); const fileBuffer = fs.readFileSync(filePath); const blob = new Blob([fileBuffer], { type: mimeType }); form.append('file', blob, path.basename(filePath)); form.append('title', title); const res = await client.request(uploadFiles(form)); return res.id; }; const logoWhiteId = await uploadAsset(path.resolve(__dirname, '../public/logo-white.svg'), 'Logo White'); const logoBlueId = await uploadAsset(path.resolve(__dirname, '../public/logo-blue.svg'), 'Logo Blue'); const faviconId = await uploadAsset(path.resolve(__dirname, '../public/favicon.ico'), 'Favicon'); // Smoother Background SVG const bgSvgPath = path.resolve(__dirname, '../public/login-bg.svg'); fs.writeFileSync(bgSvgPath, ``); const backgroundId = await uploadAsset(bgSvgPath, 'Login Bg'); if (fs.existsSync(bgSvgPath)) fs.unlinkSync(bgSvgPath); // 3. Update Settings with "Premium Web" Theme console.log('⚙️ Updating Directus settings...'); const COLOR_PRIMARY = '#001a4d'; // Deep Blue const COLOR_ACCENT = '#82ed20'; // Sustainability Green const COLOR_SECONDARY = '#003d82'; const cssInjection = `
KLZ INFRASTRUCTURE ENGINE