d3ro-voice/packages/core/src/supabase-config.ts
2026-08-29 18:33:45 +09:00

35 lines
1.4 KiB
TypeScript

// packages/core/src/supabase-config.ts
// Supabase 연결 정보 SSOT — 데스크톱, 웹, 모바일 모두 여기서 참조.
// Anon key는 클라이언트용 공개 키(RLS 보호)이므로 소스에 포함해도 안전.
interface MobileE2eSupabaseOverride {
url?: unknown
anonKey?: unknown
}
const runtimeOverride = (
globalThis as typeof globalThis & { __D3RO_MOBILE_E2E_SUPABASE__?: MobileE2eSupabaseOverride }
).__D3RO_MOBILE_E2E_SUPABASE__
const runtimeUrl = runtimeOverride?.url
const runtimeAnonKey = runtimeOverride?.anonKey
const validRuntimeOverride = runtimeUrl === 'http://10.0.2.2:55321'
&& typeof runtimeAnonKey === 'string'
&& /^sb_publishable_[A-Za-z0-9_-]{20,}$/.test(runtimeAnonKey)
export const SUPABASE_LOCAL_MOBILE_E2E = validRuntimeOverride
export const SUPABASE_URL =
(validRuntimeOverride ? runtimeUrl : undefined) ||
(typeof process !== 'undefined' &&
(process.env?.NEXT_PUBLIC_SUPABASE_URL ||
process.env?.SUPABASE_URL ||
process.env?.VITE_SUPABASE_URL)) ||
'https://llnocwyqvhgwpdjcqqyw.supabase.co'
export const SUPABASE_ANON_KEY =
(validRuntimeOverride ? runtimeAnonKey : undefined) ||
(typeof process !== 'undefined' &&
(process.env?.NEXT_PUBLIC_SUPABASE_ANON_KEY ||
process.env?.SUPABASE_ANON_KEY ||
process.env?.VITE_SUPABASE_ANON_KEY)) ||
'sb_publishable_0uo4UYYvUO2y-sVMFdYylA_hHv9qRt5'