@convex-dev/better-auth
Version:
A Better Auth component for Convex.
414 lines • 18.9 kB
TypeScript
import { BetterAuthOptions } from "better-auth/types";
import { z } from "zod";
export declare const JWT_COOKIE_NAME = "convex_jwt";
export declare const convex: <O extends BetterAuthOptions>(opts?: {
jwtExpirationSeconds?: number;
deleteExpiredSessionsOnLogin?: boolean;
options?: O;
}) => {
id: "convex";
hooks: {
before: ({
matcher(context: import("better-auth").HookEndpointContext): boolean;
handler: (inputContext: import("better-call").MiddlewareInputContext<import("better-call").MiddlewareOptions>) => Promise<{
context: {
headers: Headers;
};
} | undefined>;
} | {
matcher: (ctx: import("better-auth").HookEndpointContext) => boolean;
handler: (inputContext: import("better-call").MiddlewareInputContext<import("better-call").MiddlewareOptions>) => Promise<{
context: import("better-call").MiddlewareContext<import("better-call").MiddlewareOptions, import("better-auth").AuthContext & {
returned?: unknown;
responseHeaders?: Headers;
}>;
}>;
})[];
after: ({
matcher(): true;
handler: (inputContext: import("better-call").MiddlewareInputContext<import("better-call").MiddlewareOptions>) => Promise<Response | {
redirect: boolean;
url: string;
} | undefined>;
} | {
matcher: (ctx: import("better-auth").HookEndpointContext) => boolean;
handler: (inputContext: import("better-call").MiddlewareInputContext<import("better-call").MiddlewareOptions>) => Promise<void>;
})[];
};
endpoints: {
getSession: {
<AsResponse extends boolean = false, ReturnHeaders extends boolean = false>(inputCtx_0: {
body?: undefined;
} & {
method?: "GET" | undefined;
} & {
query?: {
disableCookieCache?: string | boolean | undefined;
disableRefresh?: boolean | undefined;
} | undefined;
} & {
params?: Record<string, any>;
} & {
request?: Request;
} & {
headers: HeadersInit;
} & {
asResponse?: boolean;
returnHeaders?: boolean;
use?: import("better-call").Middleware[];
path?: string;
} & {
asResponse?: AsResponse | undefined;
returnHeaders?: ReturnHeaders | undefined;
}): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? {
headers: Headers;
response: {
user: Omit<import("better-auth").UnionToIntersection<import("better-auth").StripEmptyObjects<{
id: string;
email: string;
emailVerified: boolean;
name: string;
createdAt: Date;
updatedAt: Date;
image?: string | null | undefined;
} & (O extends BetterAuthOptions ? import("better-auth").AdditionalUserFieldsOutput<O> : O extends import("better-auth").Auth ? import("better-auth").AdditionalUserFieldsOutput<O["options"]> : {})>> & {
userId: string;
}, "userId"> & {
id: string;
};
session: import("better-auth").UnionToIntersection<import("better-auth").StripEmptyObjects<{
id: string;
userId: string;
expiresAt: Date;
createdAt: Date;
updatedAt: Date;
token: string;
ipAddress?: string | null | undefined;
userAgent?: string | null | undefined;
} & (O extends BetterAuthOptions ? import("better-auth").AdditionalSessionFieldsOutput<O> : O extends import("better-auth").Auth ? import("better-auth").AdditionalSessionFieldsOutput<O["options"]> : {})>> & {
userId: string;
};
} | null;
} : {
user: Omit<import("better-auth").UnionToIntersection<import("better-auth").StripEmptyObjects<{
id: string;
email: string;
emailVerified: boolean;
name: string;
createdAt: Date;
updatedAt: Date;
image?: string | null | undefined;
} & (O extends BetterAuthOptions ? import("better-auth").AdditionalUserFieldsOutput<O> : O extends import("better-auth").Auth ? import("better-auth").AdditionalUserFieldsOutput<O["options"]> : {})>> & {
userId: string;
}, "userId"> & {
id: string;
};
session: import("better-auth").UnionToIntersection<import("better-auth").StripEmptyObjects<{
id: string;
userId: string;
expiresAt: Date;
createdAt: Date;
updatedAt: Date;
token: string;
ipAddress?: string | null | undefined;
userAgent?: string | null | undefined;
} & (O extends BetterAuthOptions ? import("better-auth").AdditionalSessionFieldsOutput<O> : O extends import("better-auth").Auth ? import("better-auth").AdditionalSessionFieldsOutput<O["options"]> : {})>> & {
userId: string;
};
} | null>;
options: {
method: "GET";
query: z.ZodOptional<z.ZodObject<{
disableCookieCache: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodEffects<z.ZodString, boolean, string>]>>;
disableRefresh: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
disableCookieCache?: boolean | undefined;
disableRefresh?: boolean | undefined;
}, {
disableCookieCache?: string | boolean | undefined;
disableRefresh?: boolean | undefined;
}>>;
metadata: {
CUSTOM_SESSION: boolean;
openapi: {
description: string;
responses: {
"200": {
description: string;
content: {
"application/json": {
schema: {
type: "array";
nullable: boolean;
items: {
$ref: string;
};
};
};
};
};
};
};
};
requireHeaders: true;
} & {
use: any[];
};
path: "/get-session";
};
getOpenIdConfig: {
<AsResponse extends boolean = false, ReturnHeaders extends boolean = false>(inputCtx_0?: ({
body?: undefined;
} & {
method?: "GET" | undefined;
} & {
query?: Record<string, any> | undefined;
} & {
params?: Record<string, any>;
} & {
request?: Request;
} & {
headers?: HeadersInit;
} & {
asResponse?: boolean;
returnHeaders?: boolean;
use?: import("better-call").Middleware[];
path?: string;
} & {
asResponse?: AsResponse | undefined;
returnHeaders?: ReturnHeaders | undefined;
}) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? {
headers: Headers;
response: import("better-auth/plugins").OIDCMetadata;
} : import("better-auth/plugins").OIDCMetadata>;
options: {
method: "GET";
metadata: {
isAction: boolean;
};
} & {
use: any[];
};
path: "/convex/.well-known/openid-configuration";
};
getJwks: {
<AsResponse extends boolean = false, ReturnHeaders extends boolean = false>(inputCtx_0?: ({
body?: undefined;
} & {
method?: "GET" | undefined;
} & {
query?: Record<string, any> | undefined;
} & {
params?: Record<string, any>;
} & {
request?: Request;
} & {
headers?: HeadersInit;
} & {
asResponse?: boolean;
returnHeaders?: boolean;
use?: import("better-call").Middleware[];
path?: string;
} & {
asResponse?: AsResponse | undefined;
returnHeaders?: ReturnHeaders | undefined;
}) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? {
headers: Headers;
response: {
keys: any[];
};
} : {
keys: any[];
}>;
options: {
method: "GET";
metadata: {
openapi: {
description: string;
responses: {
"200": {
description: string;
content: {
"application/json": {
schema: {
type: "object";
properties: {
keys: {
type: string;
description: string;
items: {
type: string;
properties: {
kid: {
type: string;
description: string;
};
kty: {
type: string;
description: string;
};
alg: {
type: string;
description: string;
};
use: {
type: string;
description: string;
enum: string[];
nullable: boolean;
};
n: {
type: string;
description: string;
nullable: boolean;
};
e: {
type: string;
description: string;
nullable: boolean;
};
crv: {
type: string;
description: string;
nullable: boolean;
};
x: {
type: string;
description: string;
nullable: boolean;
};
y: {
type: string;
description: string;
nullable: boolean;
};
};
required: string[];
};
};
};
required: string[];
};
};
};
};
};
};
};
} & {
use: any[];
};
path: "/convex/jwks";
};
getToken: {
<AsResponse extends boolean = false, ReturnHeaders extends boolean = false>(inputCtx_0: {
body?: undefined;
} & {
method?: "GET" | undefined;
} & {
query?: Record<string, any> | undefined;
} & {
params?: Record<string, any>;
} & {
request?: Request;
} & {
headers: HeadersInit;
} & {
asResponse?: boolean;
returnHeaders?: boolean;
use?: import("better-call").Middleware[];
path?: string;
} & {
asResponse?: AsResponse | undefined;
returnHeaders?: ReturnHeaders | undefined;
}): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? {
headers: Headers;
response: {
token: string;
};
} : {
token: string;
}>;
options: {
method: "GET";
requireHeaders: true;
use: ((inputContext: import("better-call").MiddlewareInputContext<import("better-call").MiddlewareOptions>) => Promise<{
session: {
session: Record<string, any> & {
id: string;
userId: string;
expiresAt: Date;
createdAt: Date;
updatedAt: Date;
token: string;
ipAddress?: string | null | undefined;
userAgent?: string | null | undefined;
};
user: Record<string, any> & {
id: string;
email: string;
emailVerified: boolean;
name: string;
createdAt: Date;
updatedAt: Date;
image?: string | null | undefined;
};
};
}>)[];
metadata: {
openapi: {
description: string;
responses: {
200: {
description: string;
content: {
"application/json": {
schema: {
type: "object";
properties: {
token: {
type: string;
};
};
};
};
};
};
};
};
};
} & {
use: any[];
};
path: "/convex/token";
};
};
schema: {
jwks: {
fields: {
publicKey: {
type: "string";
required: true;
};
privateKey: {
type: "string";
required: true;
};
createdAt: {
type: "date";
required: true;
};
};
};
user: {
readonly fields: {
readonly userId: {
readonly type: "string";
readonly required: false;
readonly input: false;
};
};
};
};
};
//# sourceMappingURL=index.d.ts.map