nuxt-supabase-team-auth
Version:
Drop-in Nuxt 3 module for team-based authentication with Supabase
329 lines • 13.4 kB
TypeScript
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 declare const Constants: {
readonly graphql_public: {
readonly Enums: {};
};
readonly public: {
readonly Enums: {
readonly team_role: readonly ["owner", "admin", "member", "super_admin"];
};
};
};
export {};
//# sourceMappingURL=database.types.d.ts.map