import "dotenv/config";
import { z } from "zod";
const envSchema = z.object({
    NODE_ENV: z.enum(["development", "test", "production"]).default("development"),
    LOG_LEVEL: z.string().default("info"),
    PORT: z.coerce.number().int().min(1).max(65535).default(4100),
    /** URL publique du serveur (affichée par l'assistant, servie par Caddy). */
    PUBLIC_URL: z.string().default("http://127.0.0.1:4100"),
    /** Racine des données : base SQLite + médias + miniatures. */
    DATA_DIR: z.string().default("./data"),
    /** Secrets JWT — générés et persistés dans config.json au premier démarrage
     * (voir core/config.ts) ; ces variables les écrasent si définies. */
    JWT_ACCESS_SECRET: z.string().optional(),
    JWT_REFRESH_SECRET: z.string().optional(),
    ACCESS_TOKEN_TTL: z.string().default("15m"),
    REFRESH_TOKEN_TTL_DAYS: z.coerce.number().int().default(90),
    /** Durée de vie d'une clé de maintenance (ex. "30m", "1h"). */
    MAINTENANCE_KEY_TTL: z.string().default("30m"),
});
export function loadEnv() {
    const parsed = envSchema.safeParse(process.env);
    if (!parsed.success) {
        const details = parsed.error.issues
            .map((i) => `  ${i.path.join(".")}: ${i.message}`)
            .join("\n");
        throw new Error(`Configuration d'environnement invalide :\n${details}`);
    }
    return parsed.data;
}
export const env = loadEnv();
//# sourceMappingURL=env.js.map