better-auth
Version:
The most comprehensive authentication framework for TypeScript.
73 lines (72 loc) • 2.63 kB
text/typescript
import * as _$_better_auth_core0 from "@better-auth/core";
import { BetterAuthOptions, GenericEndpointContext } from "@better-auth/core";
import { Session, User } from "@better-auth/core/db";
import * as _$better_call0 from "better-call";
import * as _$zod from "zod";
import * as _$zod_v4_core0 from "zod/v4/core";
//#region src/plugins/custom-session/index.d.ts
declare module "@better-auth/core" {
interface BetterAuthPluginRegistry<AuthOptions, Options> {
"custom-session": {
creator: typeof customSession;
};
}
}
type CustomSessionPluginOptions = {
/**
* This option is used to determine if the list-device-sessions endpoint should be mutated to the custom session data.
* @default false
*/
shouldMutateListDeviceSessionsEndpoint?: boolean | undefined;
};
declare const customSession: <Returns extends Record<string, any>, O extends BetterAuthOptions = BetterAuthOptions>(fn: (session: {
user: User<O["user"], O["plugins"]>;
session: Session<O["session"], O["plugins"]>;
}, ctx: GenericEndpointContext) => Promise<Returns>, options?: O | undefined, pluginOptions?: CustomSessionPluginOptions | undefined) => {
id: "custom-session";
version: string;
hooks: {
after: {
matcher: (ctx: _$_better_auth_core0.HookEndpointContext) => boolean;
handler: _$better_call0.Middleware<_$better_call0.MiddlewareOptions, (inputContext: _$better_call0.MiddlewareInputContext<_$better_call0.MiddlewareOptions>) => Promise<Awaited<Returns>[] | undefined>>;
}[];
};
endpoints: {
getSession: _$better_call0.StrictEndpoint<"/get-session", {
method: "GET";
query: _$zod.ZodOptional<_$zod.ZodObject<{
disableCookieCache: _$zod.ZodOptional<_$zod.ZodCoercedBoolean<unknown>>;
disableRefresh: _$zod.ZodOptional<_$zod.ZodCoercedBoolean<unknown>>;
}, _$zod_v4_core0.$strip>>;
metadata: {
CUSTOM_SESSION: boolean;
openapi: {
description: string;
responses: {
"200": {
description: string;
content: {
"application/json": {
schema: {
type: "array";
nullable: boolean;
items: {
$ref: string;
};
};
};
};
};
};
};
};
requireHeaders: true;
}, Returns | null>;
};
$Infer: {
Session: Awaited<ReturnType<typeof fn>>;
};
options: CustomSessionPluginOptions | undefined;
};
//#endregion
export { CustomSessionPluginOptions, customSession };