import { defineConfig } from 'vitest/config'; import adapter from '@sveltejs/adapter-node'; import { sveltekit } from '@sveltejs/kit/vite'; // Sous-chemin de montage (YunoHost sert l'app sous https://domaine.tld/). // Injecté au build par le script d'install YNH (BASE_PATH=/veille-ia npm run build). // Vide en dev local. Doit commencer par '/' et ne pas finir par '/'. const envBasePath = process.env.BASE_PATH ?? ''; if (envBasePath !== '' && (!envBasePath.startsWith('/') || envBasePath.endsWith('/'))) { throw new Error(`BASE_PATH invalide : "${envBasePath}" (doit commencer par '/' sans '/' final)`); } const basePath = envBasePath as '' | `/${string}`; export default defineConfig({ plugins: [ sveltekit({ compilerOptions: { // Force runes mode for the project, except for libraries. Can be removed in svelte 6. runes: ({ filename }) => filename.split(/[/\\]/).includes('node_modules') ? undefined : true }, adapter: adapter(), paths: { base: basePath, // Obligatoire dès que paths.base est utilisé (évite les URLs relatives cassées). relative: false }, csp: { mode: 'nonce', directives: { 'default-src': ['self'], 'script-src': ['self'], // Les transitions Svelte créent des