import { z } from "zod"; /** * Variables d'environnement exposées au client (préfixées VITE_). * Validées au boot pour planter tôt si une variable manque. */ const envSchema = z.object({ VITE_API_URL: z.string().url(), VITE_PUBLIC_LANDING_URL: z.string().url(), VITE_USE_MOCKS: z .enum(["true", "false"]) .default("false") .transform((v) => v === "true"), // Sentry — optionnel en dev local, recommandé en prod (cf. lib/sentry.ts) VITE_SENTRY_DSN_WEB: z.string().url().optional(), VITE_APP_VERSION: z.string().optional(), }); const parsed = envSchema.safeParse(import.meta.env); if (!parsed.success) { // eslint-disable-next-line no-console console.error("Variables d'environnement invalides :", parsed.error.flatten().fieldErrors); throw new Error("Configuration invalide. Voir .env.example"); } export const env = parsed.data;