import adapter from '@sveltejs/adapter-node';
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';

/**
 * Architecture de rendu : « transitional app » en rendu serveur sur
 * adapter-node, avec prérendu ciblé des seules pages figées.
 *
 * Le rendu serveur est le défaut partout : les fiches doivent être fraîches dès
 * que le pipeline écrit dans SQLite, et les facettes de recherche vivent dans
 * `url.searchParams`, ce que le prérendu interdit.
 *
 * `precompress` génère les variantes .gz et .br au build ; la négociation est
 * faite par le reverse proxy.
 */
const config = {
	preprocess: vitePreprocess(),
	kit: {
		adapter: adapter({ precompress: true }),
		alias: {
			$composants: 'src/lib/composants',
			$serveur: 'src/lib/server'
		},
		csp: {
			// Aucune ressource tierce : ni police, ni script, ni image externe.
			directives: {
				'default-src': ['self'],
				'img-src': ['self', 'data:'],
				'style-src': ['self', 'unsafe-inline'],
				'font-src': ['self'],
				'connect-src': ['self'],
				'frame-ancestors': ['none'],
				'base-uri': ['self'],
				'form-action': ['self']
			}
		}
	}
};

export default config;
