UNPKG

nuxt-supabase-team-auth

Version:

Drop-in Nuxt 3 module for team-based authentication with Supabase

381 lines (372 loc) 10.9 kB
export type Json = | string | number | boolean | null | { [key: string]: Json | undefined } | Json[] export type Database = { graphql_public: { Tables: { [_ in never]: never } Views: { [_ in never]: never } Functions: { graphql: { Args: { operationName?: string query?: string variables?: Json extensions?: Json } Returns: Json } } Enums: { [_ in never]: never } CompositeTypes: { [_ in never]: never } } public: { Tables: { impersonation_sessions: { Row: { admin_user_id: string created_at: string ended_at: string | null expires_at: string id: string reason: string started_at: string target_user_id: string updated_at: string } Insert: { admin_user_id: string created_at?: string ended_at?: string | null expires_at?: string id?: string reason: string started_at?: string target_user_id: string updated_at?: string } Update: { admin_user_id?: string created_at?: string ended_at?: string | null expires_at?: string id?: string reason?: string started_at?: string target_user_id?: string updated_at?: string } Relationships: [] } profiles: { Row: { avatar_url: string | null bio: string | null created_at: string email: string | null email_notifications: boolean | null full_name: string | null id: string language: string | null marketing_emails: boolean | null phone: string | null timezone: string | null updated_at: string } Insert: { avatar_url?: string | null bio?: string | null created_at?: string email?: string | null email_notifications?: boolean | null full_name?: string | null id: string language?: string | null marketing_emails?: boolean | null phone?: string | null timezone?: string | null updated_at?: string } Update: { avatar_url?: string | null bio?: string | null created_at?: string email?: string | null email_notifications?: boolean | null full_name?: string | null id?: string language?: string | null marketing_emails?: boolean | null phone?: string | null timezone?: string | null updated_at?: string } Relationships: [] } team_members: { Row: { joined_at: string role: Database['public']['Enums']['team_role'] team_id: string user_id: string } Insert: { joined_at?: string role?: Database['public']['Enums']['team_role'] team_id: string user_id: string } Update: { joined_at?: string role?: Database['public']['Enums']['team_role'] team_id?: string user_id?: string } Relationships: [ { foreignKeyName: 'fk_team_members_profiles' columns: ['user_id'] isOneToOne: false referencedRelation: 'profiles' referencedColumns: ['id'] }, { foreignKeyName: 'team_members_team_id_fkey' columns: ['team_id'] isOneToOne: false referencedRelation: 'teams' referencedColumns: ['id'] }, ] } teams: { Row: { company_address_line1: string | null company_address_line2: string | null company_city: string | null company_country: string | null company_name: string | null company_postal_code: string | null company_state: string | null company_vat_number: string | null created_at: string id: string name: string vat_number: string | null } Insert: { company_address_line1?: string | null company_address_line2?: string | null company_city?: string | null company_country?: string | null company_name?: string | null company_postal_code?: string | null company_state?: string | null company_vat_number?: string | null created_at?: string id?: string name: string vat_number?: string | null } Update: { company_address_line1?: string | null company_address_line2?: string | null company_city?: string | null company_country?: string | null company_name?: string | null company_postal_code?: string | null company_state?: string | null company_vat_number?: string | null created_at?: string id?: string name?: string vat_number?: string | null } Relationships: [] } } Views: { [_ in never]: never } Functions: { cleanup_all_test_data: { Args: Record<PropertyKey, never> Returns: { users_deleted: number teams_deleted: number }[] } cleanup_test_team: { Args: { team_id_param: string } Returns: undefined } debug_user_context: { Args: Record<PropertyKey, never> Returns: { auth_uid: string auth_role: string is_super_admin_result: boolean }[] } get_team_member_ids: { Args: { team_uuid: string } Returns: string[] } get_team_members_with_profiles: { Args: { team_id_param: string } Returns: { user_id: string role: Database['public']['Enums']['team_role'] joined_at: string full_name: string email: string }[] } get_test_user_ids: { Args: Record<PropertyKey, never> Returns: { user_id: string email: string }[] } get_user_team_ids: { Args: { user_uuid?: string } Returns: string[] } is_super_admin: { Args: Record<PropertyKey, never> Returns: boolean } user_team_role: { Args: { team_id: string } Returns: Database['public']['Enums']['team_role'] } } Enums: { team_role: 'owner' | 'admin' | 'member' | 'super_admin' } CompositeTypes: { [_ in never]: never } } } type DefaultSchema = Database[Extract<keyof Database, 'public'>] export type Tables< DefaultSchemaTableNameOrOptions extends | keyof (DefaultSchema['Tables'] & DefaultSchema['Views']) | { schema: keyof Database }, TableName extends DefaultSchemaTableNameOrOptions extends { schema: keyof Database } ? keyof (Database[DefaultSchemaTableNameOrOptions['schema']]['Tables'] & Database[DefaultSchemaTableNameOrOptions['schema']]['Views']) : never = never, > = DefaultSchemaTableNameOrOptions extends { schema: keyof Database } ? (Database[DefaultSchemaTableNameOrOptions['schema']]['Tables'] & Database[DefaultSchemaTableNameOrOptions['schema']]['Views'])[TableName] extends { Row: infer R } ? R : never : DefaultSchemaTableNameOrOptions extends keyof (DefaultSchema['Tables'] & DefaultSchema['Views']) ? (DefaultSchema['Tables'] & DefaultSchema['Views'])[DefaultSchemaTableNameOrOptions] extends { Row: infer R } ? R : never : never export type TablesInsert< DefaultSchemaTableNameOrOptions extends | keyof DefaultSchema['Tables'] | { schema: keyof Database }, TableName extends DefaultSchemaTableNameOrOptions extends { schema: keyof Database } ? keyof Database[DefaultSchemaTableNameOrOptions['schema']]['Tables'] : never = never, > = DefaultSchemaTableNameOrOptions extends { schema: keyof Database } ? Database[DefaultSchemaTableNameOrOptions['schema']]['Tables'][TableName] extends { Insert: infer I } ? I : never : DefaultSchemaTableNameOrOptions extends keyof DefaultSchema['Tables'] ? DefaultSchema['Tables'][DefaultSchemaTableNameOrOptions] extends { Insert: infer I } ? I : never : never export type TablesUpdate< DefaultSchemaTableNameOrOptions extends | keyof DefaultSchema['Tables'] | { schema: keyof Database }, TableName extends DefaultSchemaTableNameOrOptions extends { schema: keyof Database } ? keyof Database[DefaultSchemaTableNameOrOptions['schema']]['Tables'] : never = never, > = DefaultSchemaTableNameOrOptions extends { schema: keyof Database } ? Database[DefaultSchemaTableNameOrOptions['schema']]['Tables'][TableName] extends { Update: infer U } ? U : never : DefaultSchemaTableNameOrOptions extends keyof DefaultSchema['Tables'] ? DefaultSchema['Tables'][DefaultSchemaTableNameOrOptions] extends { Update: infer U } ? U : never : never export type Enums< DefaultSchemaEnumNameOrOptions extends | keyof DefaultSchema['Enums'] | { schema: keyof Database }, EnumName extends DefaultSchemaEnumNameOrOptions extends { schema: keyof Database } ? keyof Database[DefaultSchemaEnumNameOrOptions['schema']]['Enums'] : never = never, > = DefaultSchemaEnumNameOrOptions extends { schema: keyof Database } ? Database[DefaultSchemaEnumNameOrOptions['schema']]['Enums'][EnumName] : DefaultSchemaEnumNameOrOptions extends keyof DefaultSchema['Enums'] ? DefaultSchema['Enums'][DefaultSchemaEnumNameOrOptions] : never export type CompositeTypes< PublicCompositeTypeNameOrOptions extends | keyof DefaultSchema['CompositeTypes'] | { schema: keyof Database }, CompositeTypeName extends PublicCompositeTypeNameOrOptions extends { schema: keyof Database } ? keyof Database[PublicCompositeTypeNameOrOptions['schema']]['CompositeTypes'] : never = never, > = PublicCompositeTypeNameOrOptions extends { schema: keyof Database } ? Database[PublicCompositeTypeNameOrOptions['schema']]['CompositeTypes'][CompositeTypeName] : PublicCompositeTypeNameOrOptions extends keyof DefaultSchema['CompositeTypes'] ? DefaultSchema['CompositeTypes'][PublicCompositeTypeNameOrOptions] : never export const Constants = { graphql_public: { Enums: {}, }, public: { Enums: { team_role: ['owner', 'admin', 'member', 'super_admin'], }, }, } as const