UNPKG

@restnfeel/agentc-starter-kit

Version:

한국어 기업용 CMS 모듈 - Task Master AI와 함께 빠르게 웹사이트를 구현할 수 있는 재사용 가능한 컴포넌트 시스템

58 lines (56 loc) 2.16 kB
// Helper function to convert Supabase user to our User type const convertSupabaseUser = (supabaseUser) => { var _a, _b, _c; if (!supabaseUser) return null; return { id: supabaseUser.id, email: supabaseUser.email || "", name: ((_a = supabaseUser.user_metadata) === null || _a === void 0 ? void 0 : _a.full_name) || ((_b = supabaseUser.user_metadata) === null || _b === void 0 ? void 0 : _b.name) || "", avatar_url: (_c = supabaseUser.user_metadata) === null || _c === void 0 ? void 0 : _c.avatar_url, role: "customer", // Default role, can be customized created_at: supabaseUser.created_at || new Date().toISOString(), updated_at: supabaseUser.updated_at || new Date().toISOString(), }; }; // Supabase adapter for AuthProvider const createSupabaseAdapter = (supabase) => { if (!supabase) { console.warn("Supabase client not provided to adapter"); return {}; } return { getSession: async () => { const { data: { session }, } = await supabase.auth.getSession(); return { user: convertSupabaseUser((session === null || session === void 0 ? void 0 : session.user) || null), }; }, signInAdapter: async (provider, options) => { if (provider && provider !== "password") { // OAuth provider await supabase.auth.signInWithOAuth({ provider, options, }); } else if (options && "email" in options && "password" in options) { // Email/password sign in await supabase.auth.signInWithPassword({ email: options.email, password: options.password, }); } else { throw new Error("Invalid sign in options for Supabase"); } }, signOutAdapter: async () => { await supabase.auth.signOut(); }, }; }; export { createSupabaseAdapter }; //# sourceMappingURL=supabase.js.map