// This file is automatically generated. Do not edit it directly. import { createClient } from "@supabase/supabase-js"; import type { Database } from "./types"; function isNewSupabaseApiKey(value: string): boolean { return value.startsWith("sb_publishable_") || value.startsWith("sb_secret_"); } function createSupabaseFetch(supabaseKey: string): typeof fetch { return (input, init) => { const headers = new Headers( typeof Request !== "undefined" && input instanceof Request ? input.headers : undefined, ); if (init?.headers) { new Headers(init.headers).forEach((value, key) => headers.set(key, value)); } // New Supabase API keys are opaque strings, not bearer JWTs. if ( isNewSupabaseApiKey(supabaseKey) && headers.get("Authorization") === `Bearer ${supabaseKey}` ) { headers.delete("Authorization"); } headers.set("apikey", supabaseKey); return fetch(input, { ...init, headers }); }; } function createSupabaseClient() { // Use import.meta.env for client-side (Vite build-time replacement) // Fall back to process.env for SSR (server-side rendering) const SUPABASE_URL = import.meta.env["VITE_SUPABASE_URL"] || process.env["SUPABASE_URL"]; const SUPABASE_PUBLISHABLE_KEY = import.meta.env["VITE_SUPABASE_PUBLISHABLE_KEY"] || process.env["SUPABASE_PUBLISHABLE_KEY"]; if (!SUPABASE_URL || !SUPABASE_PUBLISHABLE_KEY) { const missing = [ ...(!SUPABASE_URL ? ["SUPABASE_URL"] : []), ...(!SUPABASE_PUBLISHABLE_KEY ? ["SUPABASE_PUBLISHABLE_KEY"] : []), ]; const message = `Missing Supabase environment variable(s): ${missing.join(", ")}. Connect Supabase in Lovable Cloud.`; console.error(`[Supabase] ${message}`); throw new Error(message); } return createClient(SUPABASE_URL, SUPABASE_PUBLISHABLE_KEY, { global: { fetch: createSupabaseFetch(SUPABASE_PUBLISHABLE_KEY), }, auth: { storage: typeof window !== "undefined" ? localStorage : undefined, persistSession: true, autoRefreshToken: true, }, }); } let _supabase: ReturnType | undefined; // Import the supabase client like this: // import { supabase } from "@/integrations/supabase/client"; export const supabase = new Proxy({} as ReturnType, { get(_, prop, receiver) { if (!_supabase) _supabase = createSupabaseClient(); return Reflect.get(_supabase, prop, receiver); }, });