This commit is contained in:
2026-04-18 23:11:35 +02:00
commit f7cfd2a86e
196 changed files with 35538 additions and 0 deletions
+21
View File
@@ -0,0 +1,21 @@
{
"name": "@chat-app/db-types",
"version": "0.1.0",
"private": true,
"description": "Generated Supabase database types (output of `supabase gen types typescript`)",
"type": "module",
"main": "./src/index.ts",
"types": "./src/index.ts",
"exports": {
".": "./src/index.ts"
},
"scripts": {
"build": "tsc -b",
"dev": "tsc -b --watch",
"lint": "eslint src --ext .ts",
"typecheck": "tsc --noEmit",
"test": "echo \"no tests\" && exit 0",
"clean": "rm -rf dist .turbo *.tsbuildinfo",
"gen": "supabase gen types typescript --local > src/index.ts"
}
}
+639
View File
@@ -0,0 +1,639 @@
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: {
extensions?: Json
operationName?: string
query?: string
variables?: Json
}
Returns: Json
}
}
Enums: {
[_ in never]: never
}
CompositeTypes: {
[_ in never]: never
}
}
public: {
Tables: {
admin_settings: {
Row: {
key: string
updated_at: string
value: Json
}
Insert: {
key: string
updated_at?: string
value: Json
}
Update: {
key?: string
updated_at?: string
value?: Json
}
Relationships: []
}
conversation_members: {
Row: {
accepted: boolean
conversation_id: string
joined_at: string
role: Database["public"]["Enums"]["member_role"]
user_id: string
}
Insert: {
accepted?: boolean
conversation_id: string
joined_at?: string
role?: Database["public"]["Enums"]["member_role"]
user_id: string
}
Update: {
accepted?: boolean
conversation_id?: string
joined_at?: string
role?: Database["public"]["Enums"]["member_role"]
user_id?: string
}
Relationships: [
{
foreignKeyName: "conversation_members_conversation_id_fkey"
columns: ["conversation_id"]
isOneToOne: false
referencedRelation: "conversations"
referencedColumns: ["id"]
},
]
}
conversations: {
Row: {
avatar_url: string | null
created_at: string
created_by: string | null
id: string
name: string | null
type: Database["public"]["Enums"]["conversation_type"]
}
Insert: {
avatar_url?: string | null
created_at?: string
created_by?: string | null
id?: string
name?: string | null
type: Database["public"]["Enums"]["conversation_type"]
}
Update: {
avatar_url?: string | null
created_at?: string
created_by?: string | null
id?: string
name?: string | null
type?: Database["public"]["Enums"]["conversation_type"]
}
Relationships: []
}
devices: {
Row: {
created_at: string
id: string
last_seen_at: string
name: string
platform: Database["public"]["Enums"]["device_platform"]
public_key: string
user_id: string
}
Insert: {
created_at?: string
id?: string
last_seen_at?: string
name: string
platform: Database["public"]["Enums"]["device_platform"]
public_key: string
user_id: string
}
Update: {
created_at?: string
id?: string
last_seen_at?: string
name?: string
platform?: Database["public"]["Enums"]["device_platform"]
public_key?: string
user_id?: string
}
Relationships: []
}
friendships: {
Row: {
accepted_at: string | null
created_at: string
requested_by: string
status: Database["public"]["Enums"]["friendship_status"]
user_hi: string
user_lo: string
}
Insert: {
accepted_at?: string | null
created_at?: string
requested_by: string
status?: Database["public"]["Enums"]["friendship_status"]
user_hi: string
user_lo: string
}
Update: {
accepted_at?: string | null
created_at?: string
requested_by?: string
status?: Database["public"]["Enums"]["friendship_status"]
user_hi?: string
user_lo?: string
}
Relationships: []
}
invites: {
Row: {
code: string
created_at: string
created_by: string | null
disabled: boolean
expires_at: string | null
uses_count: number
uses_limit: number | null
}
Insert: {
code: string
created_at?: string
created_by?: string | null
disabled?: boolean
expires_at?: string | null
uses_count?: number
uses_limit?: number | null
}
Update: {
code?: string
created_at?: string
created_by?: string | null
disabled?: boolean
expires_at?: string | null
uses_count?: number
uses_limit?: number | null
}
Relationships: []
}
message_attachments: {
Row: {
created_at: string
height: number | null
id: string
message_id: string
mime_type: string
nonce: string
size_bytes: number
storage_path: string
width: number | null
}
Insert: {
created_at?: string
height?: number | null
id?: string
message_id: string
mime_type: string
nonce: string
size_bytes: number
storage_path: string
width?: number | null
}
Update: {
created_at?: string
height?: number | null
id?: string
message_id?: string
mime_type?: string
nonce?: string
size_bytes?: number
storage_path?: string
width?: number | null
}
Relationships: [
{
foreignKeyName: "message_attachments_message_id_fkey"
columns: ["message_id"]
isOneToOne: false
referencedRelation: "messages"
referencedColumns: ["id"]
},
]
}
message_envelopes: {
Row: {
ciphertext: string
message_id: string
nonce: string
recipient_device_id: string
}
Insert: {
ciphertext: string
message_id: string
nonce: string
recipient_device_id: string
}
Update: {
ciphertext?: string
message_id?: string
nonce?: string
recipient_device_id?: string
}
Relationships: [
{
foreignKeyName: "message_envelopes_message_id_fkey"
columns: ["message_id"]
isOneToOne: false
referencedRelation: "messages"
referencedColumns: ["id"]
},
{
foreignKeyName: "message_envelopes_recipient_device_id_fkey"
columns: ["recipient_device_id"]
isOneToOne: false
referencedRelation: "devices"
referencedColumns: ["id"]
},
]
}
message_reactions: {
Row: {
created_at: string
emoji: string
message_id: string
user_id: string
}
Insert: {
created_at?: string
emoji: string
message_id: string
user_id: string
}
Update: {
created_at?: string
emoji?: string
message_id?: string
user_id?: string
}
Relationships: [
{
foreignKeyName: "message_reactions_message_id_fkey"
columns: ["message_id"]
isOneToOne: false
referencedRelation: "messages"
referencedColumns: ["id"]
},
]
}
message_reads: {
Row: {
message_id: string
read_at: string
user_id: string
}
Insert: {
message_id: string
read_at?: string
user_id: string
}
Update: {
message_id?: string
read_at?: string
user_id?: string
}
Relationships: [
{
foreignKeyName: "message_reads_message_id_fkey"
columns: ["message_id"]
isOneToOne: false
referencedRelation: "messages"
referencedColumns: ["id"]
},
]
}
messages: {
Row: {
conversation_id: string
created_at: string
deleted_at: string | null
deleted_by: string | null
edited_at: string | null
id: string
reply_to_id: string | null
sender_device_id: string | null
sender_id: string
}
Insert: {
conversation_id: string
created_at?: string
deleted_at?: string | null
deleted_by?: string | null
edited_at?: string | null
id?: string
reply_to_id?: string | null
sender_device_id?: string | null
sender_id: string
}
Update: {
conversation_id?: string
created_at?: string
deleted_at?: string | null
deleted_by?: string | null
edited_at?: string | null
id?: string
reply_to_id?: string | null
sender_device_id?: string | null
sender_id?: string
}
Relationships: [
{
foreignKeyName: "messages_conversation_id_fkey"
columns: ["conversation_id"]
isOneToOne: false
referencedRelation: "conversations"
referencedColumns: ["id"]
},
{
foreignKeyName: "messages_reply_to_id_fkey"
columns: ["reply_to_id"]
isOneToOne: false
referencedRelation: "messages"
referencedColumns: ["id"]
},
{
foreignKeyName: "messages_sender_device_id_fkey"
columns: ["sender_device_id"]
isOneToOne: false
referencedRelation: "devices"
referencedColumns: ["id"]
},
]
}
profiles: {
Row: {
allow_dms_from_strangers: boolean
avatar_url: string | null
banned: boolean
blocked_from_inviting: boolean
created_at: string
display_name: string
is_admin: boolean
locale: string
presence_state: Database["public"]["Enums"]["presence_state"]
show_read_receipts: boolean
status_message: string | null
updated_at: string
user_id: string
username: string
}
Insert: {
allow_dms_from_strangers?: boolean
avatar_url?: string | null
banned?: boolean
blocked_from_inviting?: boolean
created_at?: string
display_name: string
is_admin?: boolean
locale?: string
presence_state?: Database["public"]["Enums"]["presence_state"]
show_read_receipts?: boolean
status_message?: string | null
updated_at?: string
user_id: string
username: string
}
Update: {
allow_dms_from_strangers?: boolean
avatar_url?: string | null
banned?: boolean
blocked_from_inviting?: boolean
created_at?: string
display_name?: string
is_admin?: boolean
locale?: string
presence_state?: Database["public"]["Enums"]["presence_state"]
show_read_receipts?: boolean
status_message?: string | null
updated_at?: string
user_id?: string
username?: string
}
Relationships: []
}
push_tokens: {
Row: {
device_id: string
platform: Database["public"]["Enums"]["device_platform"]
token: string
updated_at: string
}
Insert: {
device_id: string
platform: Database["public"]["Enums"]["device_platform"]
token: string
updated_at?: string
}
Update: {
device_id?: string
platform?: Database["public"]["Enums"]["device_platform"]
token?: string
updated_at?: string
}
Relationships: [
{
foreignKeyName: "push_tokens_device_id_fkey"
columns: ["device_id"]
isOneToOne: true
referencedRelation: "devices"
referencedColumns: ["id"]
},
]
}
}
Views: {
[_ in never]: never
}
Functions: {
accept_dm: { Args: { conversation_id: string }; Returns: undefined }
are_friends: { Args: { a: string; b: string }; Returns: boolean }
attachment_object_conv_id: {
Args: { object_name: string }
Returns: string
}
create_dm: { Args: { target_user_id: string }; Returns: string }
current_user_is_admin: { Args: never; Returns: boolean }
is_conversation_admin: { Args: { cid: string }; Returns: boolean }
is_conversation_member: { Args: { cid: string }; Returns: boolean }
is_conversation_mod_or_higher: { Args: { cid: string }; Returns: boolean }
send_friend_request: {
Args: { target_user_id: string }
Returns: undefined
}
}
Enums: {
conversation_type: "dm" | "group"
device_platform: "ios" | "android" | "macos" | "windows" | "linux"
friendship_status: "pending" | "accepted" | "blocked"
member_role: "admin" | "mod" | "member"
presence_state: "online" | "idle" | "dnd" | "invisible" | "offline"
}
CompositeTypes: {
[_ in never]: never
}
}
}
type DatabaseWithoutInternals = Omit<Database, "__InternalSupabase">
type DefaultSchema = DatabaseWithoutInternals[Extract<keyof Database, "public">]
export type Tables<
DefaultSchemaTableNameOrOptions extends
| keyof (DefaultSchema["Tables"] & DefaultSchema["Views"])
| { schema: keyof DatabaseWithoutInternals },
TableName extends DefaultSchemaTableNameOrOptions extends {
schema: keyof DatabaseWithoutInternals
}
? keyof (DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] &
DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Views"])
: never = never,
> = DefaultSchemaTableNameOrOptions extends {
schema: keyof DatabaseWithoutInternals
}
? (DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] &
DatabaseWithoutInternals[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 DatabaseWithoutInternals },
TableName extends DefaultSchemaTableNameOrOptions extends {
schema: keyof DatabaseWithoutInternals
}
? keyof DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"]
: never = never,
> = DefaultSchemaTableNameOrOptions extends {
schema: keyof DatabaseWithoutInternals
}
? DatabaseWithoutInternals[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 DatabaseWithoutInternals },
TableName extends DefaultSchemaTableNameOrOptions extends {
schema: keyof DatabaseWithoutInternals
}
? keyof DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"]
: never = never,
> = DefaultSchemaTableNameOrOptions extends {
schema: keyof DatabaseWithoutInternals
}
? DatabaseWithoutInternals[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 DatabaseWithoutInternals },
EnumName extends DefaultSchemaEnumNameOrOptions extends {
schema: keyof DatabaseWithoutInternals
}
? keyof DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions["schema"]]["Enums"]
: never = never,
> = DefaultSchemaEnumNameOrOptions extends {
schema: keyof DatabaseWithoutInternals
}
? DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions["schema"]]["Enums"][EnumName]
: DefaultSchemaEnumNameOrOptions extends keyof DefaultSchema["Enums"]
? DefaultSchema["Enums"][DefaultSchemaEnumNameOrOptions]
: never
export type CompositeTypes<
PublicCompositeTypeNameOrOptions extends
| keyof DefaultSchema["CompositeTypes"]
| { schema: keyof DatabaseWithoutInternals },
CompositeTypeName extends PublicCompositeTypeNameOrOptions extends {
schema: keyof DatabaseWithoutInternals
}
? keyof DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"]
: never = never,
> = PublicCompositeTypeNameOrOptions extends {
schema: keyof DatabaseWithoutInternals
}
? DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"][CompositeTypeName]
: PublicCompositeTypeNameOrOptions extends keyof DefaultSchema["CompositeTypes"]
? DefaultSchema["CompositeTypes"][PublicCompositeTypeNameOrOptions]
: never
export const Constants = {
graphql_public: {
Enums: {},
},
public: {
Enums: {
conversation_type: ["dm", "group"],
device_platform: ["ios", "android", "macos", "windows", "linux"],
friendship_status: ["pending", "accepted", "blocked"],
member_role: ["admin", "mod", "member"],
presence_state: ["online", "idle", "dnd", "invisible", "offline"],
},
},
} as const
+8
View File
@@ -0,0 +1,8 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"noEmit": true,
"rootDir": "./src"
},
"include": ["src/**/*"]
}