{"repo": "ammarya5i/liftmind", "files": {"lib/env-validation.ts": {"0ea5f985375d441f38df1310ad95a5b061f6e67d": {"t": 1785745582.0596752, "n": 1773, "h": "d733b44c8d17e47e", "c": "/**\n * Environment variable validation\n * Run this on app startup to ensure all required env vars are set\n */\n\nexport function validateEnvironment() {\n const errors: string[] = []\n const warnings: string[] = []\n\n // Required for production\n if (!process.env.NEXT_PUBLIC_SUPABASE_URL) {\n errors.push('NEXT_PUBLIC_SUPABASE_URL is required')\n }\n\n if (!process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY) {\n errors.push('NEXT_PUBLIC_SUPABASE_ANON_KEY is required')\n }\n\n // AI API keys - at least one should be set\n const hasDeepSeek = !!(process.env.DEEPSEEK_API_KEY || process.env.NEXT_PUBLIC_DEEPSEEK_API_KEY)\n const hasGemini = !!(process.env.GEMINI_API_KEY || process.env.NEXT_PUBLIC_GEMINI_API_KEY)\n const hasOpenAI = !!(process.env.OPENAI_API_KEY || process.env.NEXT_PUBLIC_OPENAI_API_KEY)\n\n if (!hasDeepSeek && !hasGemini && !hasOpenAI) {\n warnings.push('No AI API keys found. AI chat and vision features will not work.')\n }\n\n // Vision API - at least one should be set for vision features\n if (!hasGemini && !hasOpenAI) {\n warnings.push('No vision API keys found. Image/video analysis will not work.')\n }\n\n if (errors.length > 0) {\n console.error('❌ Environment validation failed:')\n errors.forEach(error => console.error(` - ${error}`))\n if (process.env.NODE_ENV === 'production') {\n throw new Error(`Missing required environment variables: ${errors.join(', ')}`)\n }\n }\n\n if (warnings.length > 0) {\n console.warn('⚠️ Environment validation warnings:')\n warnings.forEach(warning => console.warn(` - ${warning}`))\n }\n\n if (errors.length === 0 && warnings.length === 0) {\n console.log('✅ Environment variables validated successfully')\n }\n\n return {\n valid: errors.length === 0,\n errors,\n warnings\n }\n}\n\n\n\n\n"}, "d0cdd882edfdf4f7f91dc486ba48614c7d4d41a1": {"t": 1785754488.6832511, "n": 1773, "h": "d733b44c8d17e47e", "c": "/**\n * Environment variable validation\n * Run this on app startup to ensure all required env vars are set\n */\n\nexport function validateEnvironment() {\n const errors: string[] = []\n const warnings: string[] = []\n\n // Required for production\n if (!process.env.NEXT_PUBLIC_SUPABASE_URL) {\n errors.push('NEXT_PUBLIC_SUPABASE_URL is required')\n }\n\n if (!process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY) {\n errors.push('NEXT_PUBLIC_SUPABASE_ANON_KEY is required')\n }\n\n // AI API keys - at least one should be set\n const hasDeepSeek = !!(process.env.DEEPSEEK_API_KEY || process.env.NEXT_PUBLIC_DEEPSEEK_API_KEY)\n const hasGemini = !!(process.env.GEMINI_API_KEY || process.env.NEXT_PUBLIC_GEMINI_API_KEY)\n const hasOpenAI = !!(process.env.OPENAI_API_KEY || process.env.NEXT_PUBLIC_OPENAI_API_KEY)\n\n if (!hasDeepSeek && !hasGemini && !hasOpenAI) {\n warnings.push('No AI API keys found. AI chat and vision features will not work.')\n }\n\n // Vision API - at least one should be set for vision features\n if (!hasGemini && !hasOpenAI) {\n warnings.push('No vision API keys found. Image/video analysis will not work.')\n }\n\n if (errors.length > 0) {\n console.error('❌ Environment validation failed:')\n errors.forEach(error => console.error(` - ${error}`))\n if (process.env.NODE_ENV === 'production') {\n throw new Error(`Missing required environment variables: ${errors.join(', ')}`)\n }\n }\n\n if (warnings.length > 0) {\n console.warn('⚠️ Environment validation warnings:')\n warnings.forEach(warning => console.warn(` - ${warning}`))\n }\n\n if (errors.length === 0 && warnings.length === 0) {\n console.log('✅ Environment variables validated successfully')\n }\n\n return {\n valid: errors.length === 0,\n errors,\n warnings\n }\n}\n\n\n\n\n"}}}}