sipher/convex/betterAuth/_generated/component.ts
Nixyan 096d6ab16c Enhance user interaction with friend management and participant details
- Added `getParticipantDetails` query to fetch details of multiple participants in a direct message channel.
- Introduced `dexie-react-hooks` for improved state management with Dexie.
- Refactored user validation logic to support optional user authentication.
- Created new UI components for friend actions and friend list display.
- Implemented a layout structure for the application, including a sidebar and main content area.
- Updated socket management to handle connection states more effectively.
- Removed deprecated `page.tsx` file and organized routing structure for better maintainability.
2025-12-28 04:46:41 -03:00

2061 lines
61 KiB
TypeScript

/* eslint-disable */
/**
* Generated `ComponentApi` utility.
*
* THIS CODE IS AUTOMATICALLY GENERATED.
*
* To regenerate, run `npx convex dev`.
* @module
*/
import type { FunctionReference } from "convex/server";
/**
* A utility for referencing a Convex component's exposed API.
*
* Useful when expecting a parameter like `components.myComponent`.
* Usage:
* ```ts
* async function myFunction(ctx: QueryCtx, component: ComponentApi) {
* return ctx.runQuery(component.someFile.someQuery, { ...args });
* }
* ```
*/
export type ComponentApi<Name extends string | undefined = string | undefined> =
{
adapter: {
create: FunctionReference<
"mutation",
"internal",
{
input:
| {
data: {
createdAt: number;
displayUsername?: null | string;
email: string;
emailVerified: boolean;
image?: null | string;
metadata?: {
phrasePreference: "comforting" | "mocking" | "both";
};
name: string;
updatedAt: number;
userId?: null | string;
username?: null | string;
};
model: "user";
}
| {
data: {
isUserSet: boolean;
status: "online" | "busy" | "offline" | "away";
updatedAt: number;
userId: string;
};
model: "userStatus";
}
| {
data: {
acceptedAt?: number;
createdAt: number;
declinedAt?: number;
expiresAt?: number;
ignoredAt?: number;
method: "receive" | "send";
requestId: string;
requestTo: string;
userId: string;
};
model: "friendRequests";
}
| {
data: { createdAt: number; friendId: string; userId: string };
model: "friends";
}
| {
data: {
attachments?: Array<string>;
authorId: string;
channelId: string;
content: string;
createdAt: string;
createdTimestamp: number;
editedAt?: string;
guildId?: string;
id: string;
inGuild?: boolean;
nonce?: string;
position?: number;
referencedMessage?: null | string | string | string;
url?: string;
};
model: "messages";
}
| {
data: {
contentType: string;
description: null | string;
ephemeral: boolean;
height?: number;
id: string;
size: number;
spoiler: boolean;
url: string;
width?: number;
};
model: "attachments";
}
| {
data: {
createdAt: number;
expiresAt: number;
ipAddress?: null | string;
token: string;
updatedAt: number;
userAgent?: null | string;
userId: string;
};
model: "session";
}
| {
data: {
accessToken?: null | string;
accessTokenExpiresAt?: null | number;
accountId: string;
createdAt: number;
idToken?: null | string;
password?: null | string;
providerId: string;
refreshToken?: null | string;
refreshTokenExpiresAt?: null | number;
scope?: null | string;
updatedAt: number;
userId: string;
};
model: "account";
}
| {
data: {
createdAt: number;
expiresAt: number;
identifier: string;
updatedAt: number;
value: string;
};
model: "verification";
}
| {
data: {
createdAt: number;
privateKey: string;
publicKey: string;
};
model: "jwks";
}
| {
data: {
identityKey: { curve25519: string; ed25519: string };
oneTimeKeys: Array<{ keyId: string; publicKey: string }>;
userId: string;
};
model: "olmAccount";
};
onCreateHandle?: string;
select?: Array<string>;
},
any,
Name
>;
deleteMany: FunctionReference<
"mutation",
"internal",
{
input:
| {
model: "user";
where?: Array<{
connector?: "AND" | "OR";
field:
| "name"
| "email"
| "emailVerified"
| "image"
| "createdAt"
| "updatedAt"
| "userId"
| "username"
| "displayUsername"
| "metadata"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "userStatus";
where?: Array<{
connector?: "AND" | "OR";
field:
| "userId"
| "status"
| "isUserSet"
| "updatedAt"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "friendRequests";
where?: Array<{
connector?: "AND" | "OR";
field:
| "userId"
| "requestTo"
| "method"
| "requestId"
| "createdAt"
| "expiresAt"
| "acceptedAt"
| "declinedAt"
| "ignoredAt"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "friends";
where?: Array<{
connector?: "AND" | "OR";
field: "userId" | "friendId" | "createdAt" | "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "messages";
where?: Array<{
connector?: "AND" | "OR";
field:
| "inGuild"
| "attachments"
| "authorId"
| "channelId"
| "content"
| "createdAt"
| "createdTimestamp"
| "editedAt"
| "guildId"
| "id"
| "nonce"
| "position"
| "referencedMessage"
| "url"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "attachments";
where?: Array<{
connector?: "AND" | "OR";
field:
| "contentType"
| "description"
| "ephemeral"
| "height"
| "width"
| "id"
| "size"
| "spoiler"
| "url"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "session";
where?: Array<{
connector?: "AND" | "OR";
field:
| "expiresAt"
| "token"
| "createdAt"
| "updatedAt"
| "ipAddress"
| "userAgent"
| "userId"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "account";
where?: Array<{
connector?: "AND" | "OR";
field:
| "accountId"
| "providerId"
| "userId"
| "accessToken"
| "refreshToken"
| "idToken"
| "accessTokenExpiresAt"
| "refreshTokenExpiresAt"
| "scope"
| "password"
| "createdAt"
| "updatedAt"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "verification";
where?: Array<{
connector?: "AND" | "OR";
field:
| "identifier"
| "value"
| "expiresAt"
| "createdAt"
| "updatedAt"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "jwks";
where?: Array<{
connector?: "AND" | "OR";
field: "publicKey" | "privateKey" | "createdAt" | "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "olmAccount";
where?: Array<{
connector?: "AND" | "OR";
field: "userId" | "identityKey" | "oneTimeKeys" | "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
};
onDeleteHandle?: string;
paginationOpts: {
cursor: string | null;
endCursor?: string | null;
id?: number;
maximumBytesRead?: number;
maximumRowsRead?: number;
numItems: number;
};
},
any,
Name
>;
deleteOne: FunctionReference<
"mutation",
"internal",
{
input:
| {
model: "user";
where?: Array<{
connector?: "AND" | "OR";
field:
| "name"
| "email"
| "emailVerified"
| "image"
| "createdAt"
| "updatedAt"
| "userId"
| "username"
| "displayUsername"
| "metadata"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "userStatus";
where?: Array<{
connector?: "AND" | "OR";
field:
| "userId"
| "status"
| "isUserSet"
| "updatedAt"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "friendRequests";
where?: Array<{
connector?: "AND" | "OR";
field:
| "userId"
| "requestTo"
| "method"
| "requestId"
| "createdAt"
| "expiresAt"
| "acceptedAt"
| "declinedAt"
| "ignoredAt"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "friends";
where?: Array<{
connector?: "AND" | "OR";
field: "userId" | "friendId" | "createdAt" | "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "messages";
where?: Array<{
connector?: "AND" | "OR";
field:
| "inGuild"
| "attachments"
| "authorId"
| "channelId"
| "content"
| "createdAt"
| "createdTimestamp"
| "editedAt"
| "guildId"
| "id"
| "nonce"
| "position"
| "referencedMessage"
| "url"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "attachments";
where?: Array<{
connector?: "AND" | "OR";
field:
| "contentType"
| "description"
| "ephemeral"
| "height"
| "width"
| "id"
| "size"
| "spoiler"
| "url"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "session";
where?: Array<{
connector?: "AND" | "OR";
field:
| "expiresAt"
| "token"
| "createdAt"
| "updatedAt"
| "ipAddress"
| "userAgent"
| "userId"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "account";
where?: Array<{
connector?: "AND" | "OR";
field:
| "accountId"
| "providerId"
| "userId"
| "accessToken"
| "refreshToken"
| "idToken"
| "accessTokenExpiresAt"
| "refreshTokenExpiresAt"
| "scope"
| "password"
| "createdAt"
| "updatedAt"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "verification";
where?: Array<{
connector?: "AND" | "OR";
field:
| "identifier"
| "value"
| "expiresAt"
| "createdAt"
| "updatedAt"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "jwks";
where?: Array<{
connector?: "AND" | "OR";
field: "publicKey" | "privateKey" | "createdAt" | "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "olmAccount";
where?: Array<{
connector?: "AND" | "OR";
field: "userId" | "identityKey" | "oneTimeKeys" | "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
};
onDeleteHandle?: string;
},
any,
Name
>;
findMany: FunctionReference<
"query",
"internal",
{
limit?: number;
model:
| "user"
| "userStatus"
| "friendRequests"
| "friends"
| "messages"
| "attachments"
| "session"
| "account"
| "verification"
| "jwks"
| "olmAccount";
offset?: number;
paginationOpts: {
cursor: string | null;
endCursor?: string | null;
id?: number;
maximumBytesRead?: number;
maximumRowsRead?: number;
numItems: number;
};
sortBy?: { direction: "asc" | "desc"; field: string };
where?: Array<{
connector?: "AND" | "OR";
field: string;
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
},
any,
Name
>;
findOne: FunctionReference<
"query",
"internal",
{
model:
| "user"
| "userStatus"
| "friendRequests"
| "friends"
| "messages"
| "attachments"
| "session"
| "account"
| "verification"
| "jwks"
| "olmAccount";
select?: Array<string>;
where?: Array<{
connector?: "AND" | "OR";
field: string;
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
},
any,
Name
>;
updateMany: FunctionReference<
"mutation",
"internal",
{
input:
| {
model: "user";
update: {
createdAt?: number;
displayUsername?: null | string;
email?: string;
emailVerified?: boolean;
image?: null | string;
metadata?: {
phrasePreference: "comforting" | "mocking" | "both";
};
name?: string;
updatedAt?: number;
userId?: null | string;
username?: null | string;
};
where?: Array<{
connector?: "AND" | "OR";
field:
| "name"
| "email"
| "emailVerified"
| "image"
| "createdAt"
| "updatedAt"
| "userId"
| "username"
| "displayUsername"
| "metadata"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "userStatus";
update: {
isUserSet?: boolean;
status?: "online" | "busy" | "offline" | "away";
updatedAt?: number;
userId?: string;
};
where?: Array<{
connector?: "AND" | "OR";
field:
| "userId"
| "status"
| "isUserSet"
| "updatedAt"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "friendRequests";
update: {
acceptedAt?: number;
createdAt?: number;
declinedAt?: number;
expiresAt?: number;
ignoredAt?: number;
method?: "receive" | "send";
requestId?: string;
requestTo?: string;
userId?: string;
};
where?: Array<{
connector?: "AND" | "OR";
field:
| "userId"
| "requestTo"
| "method"
| "requestId"
| "createdAt"
| "expiresAt"
| "acceptedAt"
| "declinedAt"
| "ignoredAt"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "friends";
update: {
createdAt?: number;
friendId?: string;
userId?: string;
};
where?: Array<{
connector?: "AND" | "OR";
field: "userId" | "friendId" | "createdAt" | "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "messages";
update: {
attachments?: Array<string>;
authorId?: string;
channelId?: string;
content?: string;
createdAt?: string;
createdTimestamp?: number;
editedAt?: string;
guildId?: string;
id?: string;
inGuild?: boolean;
nonce?: string;
position?: number;
referencedMessage?: null | string | string | string;
url?: string;
};
where?: Array<{
connector?: "AND" | "OR";
field:
| "inGuild"
| "attachments"
| "authorId"
| "channelId"
| "content"
| "createdAt"
| "createdTimestamp"
| "editedAt"
| "guildId"
| "id"
| "nonce"
| "position"
| "referencedMessage"
| "url"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "attachments";
update: {
contentType?: string;
description?: null | string;
ephemeral?: boolean;
height?: number;
id?: string;
size?: number;
spoiler?: boolean;
url?: string;
width?: number;
};
where?: Array<{
connector?: "AND" | "OR";
field:
| "contentType"
| "description"
| "ephemeral"
| "height"
| "width"
| "id"
| "size"
| "spoiler"
| "url"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "session";
update: {
createdAt?: number;
expiresAt?: number;
ipAddress?: null | string;
token?: string;
updatedAt?: number;
userAgent?: null | string;
userId?: string;
};
where?: Array<{
connector?: "AND" | "OR";
field:
| "expiresAt"
| "token"
| "createdAt"
| "updatedAt"
| "ipAddress"
| "userAgent"
| "userId"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "account";
update: {
accessToken?: null | string;
accessTokenExpiresAt?: null | number;
accountId?: string;
createdAt?: number;
idToken?: null | string;
password?: null | string;
providerId?: string;
refreshToken?: null | string;
refreshTokenExpiresAt?: null | number;
scope?: null | string;
updatedAt?: number;
userId?: string;
};
where?: Array<{
connector?: "AND" | "OR";
field:
| "accountId"
| "providerId"
| "userId"
| "accessToken"
| "refreshToken"
| "idToken"
| "accessTokenExpiresAt"
| "refreshTokenExpiresAt"
| "scope"
| "password"
| "createdAt"
| "updatedAt"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "verification";
update: {
createdAt?: number;
expiresAt?: number;
identifier?: string;
updatedAt?: number;
value?: string;
};
where?: Array<{
connector?: "AND" | "OR";
field:
| "identifier"
| "value"
| "expiresAt"
| "createdAt"
| "updatedAt"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "jwks";
update: {
createdAt?: number;
privateKey?: string;
publicKey?: string;
};
where?: Array<{
connector?: "AND" | "OR";
field: "publicKey" | "privateKey" | "createdAt" | "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "olmAccount";
update: {
identityKey?: { curve25519: string; ed25519: string };
oneTimeKeys?: Array<{ keyId: string; publicKey: string }>;
userId?: string;
};
where?: Array<{
connector?: "AND" | "OR";
field: "userId" | "identityKey" | "oneTimeKeys" | "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
};
onUpdateHandle?: string;
paginationOpts: {
cursor: string | null;
endCursor?: string | null;
id?: number;
maximumBytesRead?: number;
maximumRowsRead?: number;
numItems: number;
};
},
any,
Name
>;
updateOne: FunctionReference<
"mutation",
"internal",
{
input:
| {
model: "user";
update: {
createdAt?: number;
displayUsername?: null | string;
email?: string;
emailVerified?: boolean;
image?: null | string;
metadata?: {
phrasePreference: "comforting" | "mocking" | "both";
};
name?: string;
updatedAt?: number;
userId?: null | string;
username?: null | string;
};
where?: Array<{
connector?: "AND" | "OR";
field:
| "name"
| "email"
| "emailVerified"
| "image"
| "createdAt"
| "updatedAt"
| "userId"
| "username"
| "displayUsername"
| "metadata"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "userStatus";
update: {
isUserSet?: boolean;
status?: "online" | "busy" | "offline" | "away";
updatedAt?: number;
userId?: string;
};
where?: Array<{
connector?: "AND" | "OR";
field:
| "userId"
| "status"
| "isUserSet"
| "updatedAt"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "friendRequests";
update: {
acceptedAt?: number;
createdAt?: number;
declinedAt?: number;
expiresAt?: number;
ignoredAt?: number;
method?: "receive" | "send";
requestId?: string;
requestTo?: string;
userId?: string;
};
where?: Array<{
connector?: "AND" | "OR";
field:
| "userId"
| "requestTo"
| "method"
| "requestId"
| "createdAt"
| "expiresAt"
| "acceptedAt"
| "declinedAt"
| "ignoredAt"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "friends";
update: {
createdAt?: number;
friendId?: string;
userId?: string;
};
where?: Array<{
connector?: "AND" | "OR";
field: "userId" | "friendId" | "createdAt" | "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "messages";
update: {
attachments?: Array<string>;
authorId?: string;
channelId?: string;
content?: string;
createdAt?: string;
createdTimestamp?: number;
editedAt?: string;
guildId?: string;
id?: string;
inGuild?: boolean;
nonce?: string;
position?: number;
referencedMessage?: null | string | string | string;
url?: string;
};
where?: Array<{
connector?: "AND" | "OR";
field:
| "inGuild"
| "attachments"
| "authorId"
| "channelId"
| "content"
| "createdAt"
| "createdTimestamp"
| "editedAt"
| "guildId"
| "id"
| "nonce"
| "position"
| "referencedMessage"
| "url"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "attachments";
update: {
contentType?: string;
description?: null | string;
ephemeral?: boolean;
height?: number;
id?: string;
size?: number;
spoiler?: boolean;
url?: string;
width?: number;
};
where?: Array<{
connector?: "AND" | "OR";
field:
| "contentType"
| "description"
| "ephemeral"
| "height"
| "width"
| "id"
| "size"
| "spoiler"
| "url"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "session";
update: {
createdAt?: number;
expiresAt?: number;
ipAddress?: null | string;
token?: string;
updatedAt?: number;
userAgent?: null | string;
userId?: string;
};
where?: Array<{
connector?: "AND" | "OR";
field:
| "expiresAt"
| "token"
| "createdAt"
| "updatedAt"
| "ipAddress"
| "userAgent"
| "userId"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "account";
update: {
accessToken?: null | string;
accessTokenExpiresAt?: null | number;
accountId?: string;
createdAt?: number;
idToken?: null | string;
password?: null | string;
providerId?: string;
refreshToken?: null | string;
refreshTokenExpiresAt?: null | number;
scope?: null | string;
updatedAt?: number;
userId?: string;
};
where?: Array<{
connector?: "AND" | "OR";
field:
| "accountId"
| "providerId"
| "userId"
| "accessToken"
| "refreshToken"
| "idToken"
| "accessTokenExpiresAt"
| "refreshTokenExpiresAt"
| "scope"
| "password"
| "createdAt"
| "updatedAt"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "verification";
update: {
createdAt?: number;
expiresAt?: number;
identifier?: string;
updatedAt?: number;
value?: string;
};
where?: Array<{
connector?: "AND" | "OR";
field:
| "identifier"
| "value"
| "expiresAt"
| "createdAt"
| "updatedAt"
| "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "jwks";
update: {
createdAt?: number;
privateKey?: string;
publicKey?: string;
};
where?: Array<{
connector?: "AND" | "OR";
field: "publicKey" | "privateKey" | "createdAt" | "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
}
| {
model: "olmAccount";
update: {
identityKey?: { curve25519: string; ed25519: string };
oneTimeKeys?: Array<{ keyId: string; publicKey: string }>;
userId?: string;
};
where?: Array<{
connector?: "AND" | "OR";
field: "userId" | "identityKey" | "oneTimeKeys" | "_id";
operator?:
| "lt"
| "lte"
| "gt"
| "gte"
| "eq"
| "in"
| "not_in"
| "ne"
| "contains"
| "starts_with"
| "ends_with";
value:
| string
| number
| boolean
| Array<string>
| Array<number>
| null;
}>;
};
onUpdateHandle?: string;
},
any,
Name
>;
};
olm: {
index: {
retrieveServerOlmAccount: FunctionReference<
"query",
"internal",
{ userId: string },
any,
Name
>;
sendKeysToServer: FunctionReference<
"mutation",
"internal",
{
forceInsert: boolean;
identityKey: { curve25519: string; ed25519: string };
oneTimeKeys: Array<{ keyId: string; publicKey: string }>;
userId: string;
},
any,
Name
>;
};
};
user: {
index: {
answerFriendRequest: FunctionReference<
"mutation",
"internal",
{ answer: "accept" | "decline" | "ignore"; requestId: string },
any,
Name
>;
getFriendRequests: FunctionReference<
"query",
"internal",
any,
any,
Name
>;
getFriends: FunctionReference<"query", "internal", any, any, Name>;
getParticipantDetails: FunctionReference<
"query",
"internal",
{ participantIds: Array<string> },
any,
Name
>;
getUserStatus: FunctionReference<"query", "internal", any, any, Name>;
sendFriendRequest: FunctionReference<
"mutation",
"internal",
{ username: string },
any,
Name
>;
updateUserMetadata: FunctionReference<
"mutation",
"internal",
{ metadata: { phrasePreference: "comforting" | "mocking" | "both" } },
any,
Name
>;
updateUserStatus: FunctionReference<
"mutation",
"internal",
{
isUserSet: boolean;
status: "online" | "busy" | "offline" | "away";
},
any,
Name
>;
};
};
};