{"path":"src/env.ts","size":1165,"locked":false,"binary":false,"truncated":false,"content":"// src/env.ts\nconst requiredServerEnvVars = [\n  \"SUPABASE_SERVICE_ROLE_KEY\",\n  \"GROQ_API_KEY\", // optional; but we validate if AI feature is required\n] as const;\n\nconst requiredPublicEnvVars = [\n  \"NEXT_PUBLIC_SUPABASE_URL\",\n  \"NEXT_PUBLIC_SUPABASE_ANON_KEY\",\n] as const;\n\nexport function validateEnv() {\n  const missing: string[] = [];\n\n  for (const key of requiredServerEnvVars) {\n    if (!process.env[key]) missing.push(key);\n  }\n  for (const key of requiredPublicEnvVars) {\n    if (!process.env[key]) missing.push(key);\n  }\n\n  if (missing.length > 0) {\n    throw new Error(\n      `Missing required environment variables:\\n${missing\n        .map((k) => `  - ${k}`)\n        .join(\"\\n\")}\\n` +\n        `Please check your .env.local file. See .env.local.example for reference.`\n    );\n  }\n}\n\n// Optionally parse and export typed variables\nexport const env = {\n  SUPABASE_URL: process.env.NEXT_PUBLIC_SUPABASE_URL!,\n  SUPABASE_ANON_KEY: process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,\n  SUPABASE_SERVICE_ROLE_KEY: process.env.SUPABASE_SERVICE_ROLE_KEY!,\n  GROQ_API_KEY: process.env.GROQ_API_KEY!,\n  APP_URL: process.env.NEXT_PUBLIC_APP_URL || \"http://localhost:3000\",\n};\n"}