// ==============================================================================
// Void-Genesis - Vite Konfiguration
// ==============================================================================

import { defineConfig } from 'vite';

export default defineConfig({
  server: {
    // Erlaubt Vite, Verbindungen über diese spezifische Domain anzunehmen.
    // Verhindert den "Blocked request" Fehler hinter dem Nginx Proxy Manager.
    allowedHosts: [
      'lobby.void-genesis.de',
      'dev.void-genesis.de'
    ],
    // 'host: true' stellt sicher, dass Vite auf 0.0.0.0 lauscht 
    // (haben wir zwar im Dockerfile schon als Flag, ist hier aber sicherer)
    host: true,
  },
  build: {
    // ----------------------------------------------------------------------
    // EULA-Konformität: Base64-Zwang für alle Assets
    // ----------------------------------------------------------------------
    // Wir setzen das Limit für das Inlining von Assets auf einen extrem hohen 
    // Wert (hier ca. 100 MB). Standardmäßig liegt dieser Wert bei 4096 (4 KB). 
    // Alles, was größer ist, wird von Vite normalerweise als separate Datei 
    // (z. B. .png oder .jpg) im Ausgabeordner gespeichert.
    // 
    // Durch diesen hohen Wert zwingen wir Vite dazu, sämtliche importierten 
    // Assets zwingend als Base64-Strings direkt in die generierten JavaScript- 
    // oder CSS-Dateien einzubetten. Dadurch liegen nach dem Build absolut 
    // keine rohen, extrahierbaren Bilddateien mehr auf unserem Server.
    // ----------------------------------------------------------------------
    assetsInlineLimit: 100000000, 

    // Wir deaktivieren das Generieren von Source Maps für den produktiven Build.
    // Das ist wichtig, da Source Maps extrem groß werden können, wenn sie 
    // riesige Base64-Strings enthalten. Außerdem erschwert es das Auslesen 
    // unserer Struktur von außen.
    sourcemap: false,
    
    // Optional: Falls wir den Output noch weiter minimieren wollen,
    // können wir hier auch die CSS-Code-Splitting-Optionen anpassen,
    // aber für den Base64-Zwang reicht das assetsInlineLimit völlig aus.
  }
});