import { createClient, type SupabaseClient } from '@supabase/supabase-js'; const url = process.env.NEXT_PUBLIC_SUPABASE_URL; const anonKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY; let browserClient: SupabaseClient | null = null; export function getBrowserSupabase(): SupabaseClient | null { if (typeof window === 'undefined') return null; if (!url || !anonKey) return null; if (browserClient) return browserClient; browserClient = createClient(url, anonKey, { auth: { persistSession: true, autoRefreshToken: true, detectSessionInUrl: true, }, }); return browserClient; } export function getServerSupabase(authHeader?: string | null): SupabaseClient | null { if (!url || !anonKey) return null; return createClient(url, anonKey, { auth: { persistSession: false, autoRefreshToken: false }, global: authHeader ? { headers: { Authorization: authHeader } } : undefined, }); } export function getServiceRoleSupabase(): SupabaseClient | null { const serviceKey = process.env.SUPABASE_SERVICE_ROLE_KEY; if (!url || !serviceKey) return null; return createClient(url, serviceKey, { auth: { persistSession: false, autoRefreshToken: false }, }); }