diff --git a/src/integrations/supabase/client.ts b/src/integrations/supabase/client.ts deleted file mode 100644 index 8bd3a40..0000000 --- a/src/integrations/supabase/client.ts +++ /dev/null @@ -1,68 +0,0 @@ -// 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); - }, -}); -