better-auth
Version:
The most comprehensive authentication framework for TypeScript.
117 lines • 4.72 kB
text/typescript
import { Session, User } from "../types/models.mjs";
import "../types/index.mjs";
import { CookieAttributes, HOST_COOKIE_PREFIX, SECURE_COOKIE_PREFIX, applySetCookies, cookieNameRegex, parseCookies, parseSetCookieHeader, setCookieToHeader, setRequestCookie, splitSetCookieHeader, stripSecureCookiePrefix, toCookieOptions } from "./cookie-utils.mjs";
import { createSessionStore, getAccountCookie, getChunkedCookie } from "./session-store.mjs";
import { BetterAuthCookie, BetterAuthCookies, BetterAuthOptions, GenericEndpointContext } from "@better-auth/core";
import { CookieOptions } from "better-call";
//#region src/cookies/index.d.ts
declare function createCookieGetter(options: BetterAuthOptions): (cookieName: string, overrideAttributes?: Partial<CookieOptions>) => {
name: string;
attributes: {
domain?: string;
expires?: Date;
httpOnly: boolean;
maxAge?: number;
path: string;
secure: boolean;
sameSite: "Strict" | "Lax" | "None" | "strict" | "lax" | "none";
partitioned?: boolean;
prefix?: import("better-call").CookiePrefixOptions;
};
};
declare function getCookies(options: BetterAuthOptions): {
sessionToken: {
name: string;
attributes: {
domain?: string;
expires?: Date;
httpOnly: boolean;
maxAge?: number;
path: string;
secure: boolean;
sameSite: "Strict" | "Lax" | "None" | "strict" | "lax" | "none";
partitioned?: boolean;
prefix?: import("better-call").CookiePrefixOptions;
};
};
/**
* This cookie is used to store the session data in the cookie
* This is useful for when you want to cache the session in the cookie
*/
sessionData: {
name: string;
attributes: {
domain?: string;
expires?: Date;
httpOnly: boolean;
maxAge?: number;
path: string;
secure: boolean;
sameSite: "Strict" | "Lax" | "None" | "strict" | "lax" | "none";
partitioned?: boolean;
prefix?: import("better-call").CookiePrefixOptions;
};
};
dontRememberToken: {
name: string;
attributes: {
domain?: string;
expires?: Date;
httpOnly: boolean;
maxAge?: number;
path: string;
secure: boolean;
sameSite: "Strict" | "Lax" | "None" | "strict" | "lax" | "none";
partitioned?: boolean;
prefix?: import("better-call").CookiePrefixOptions;
};
};
accountData: {
name: string;
attributes: {
domain?: string;
expires?: Date;
httpOnly: boolean;
maxAge?: number;
path: string;
secure: boolean;
sameSite: "Strict" | "Lax" | "None" | "strict" | "lax" | "none";
partitioned?: boolean;
prefix?: import("better-call").CookiePrefixOptions;
};
};
};
declare function setCookieCache(ctx: GenericEndpointContext, session: {
session: Session & Record<string, any>;
user: User;
}, dontRememberMe: boolean): Promise<void>;
declare function setSessionCookie(ctx: GenericEndpointContext, session: {
session: Session & Record<string, any>;
user: User;
}, dontRememberMe?: boolean | undefined, overrides?: Partial<CookieOptions> | undefined): Promise<void>;
/**
* Expires a cookie by setting `maxAge: 0` while preserving its attributes
*/
declare function expireCookie(ctx: GenericEndpointContext, cookie: BetterAuthCookie): void;
declare function deleteSessionCookie(ctx: GenericEndpointContext, skipDontRememberMe?: boolean | undefined): void;
type EligibleCookies = (string & {}) | (keyof BetterAuthCookies & {});
declare const getSessionCookie: (request: Request | Headers, config?: {
cookiePrefix?: string;
cookieName?: string;
path?: string;
} | undefined) => string | null;
declare const getCookieCache: <S extends {
session: Session & Record<string, any>;
user: User & Record<string, any>;
updatedAt: number;
version?: string;
}>(request: Request | Headers, config?: {
cookiePrefix?: string;
cookieName?: string;
isSecure?: boolean;
secret?: string;
strategy?: "compact" | "jwt" | "jwe";
version?: string | ((session: Session & Record<string, any>, user: User & Record<string, any>) => string) | ((session: Session & Record<string, any>, user: User & Record<string, any>) => Promise<string>);
} | undefined) => Promise<S | null>;
//#endregion
export { CookieAttributes, EligibleCookies, HOST_COOKIE_PREFIX, SECURE_COOKIE_PREFIX, applySetCookies, cookieNameRegex, createCookieGetter, createSessionStore, deleteSessionCookie, expireCookie, getAccountCookie, getChunkedCookie, getCookieCache, getCookies, getSessionCookie, parseCookies, parseSetCookieHeader, setCookieCache, setCookieToHeader, setRequestCookie, setSessionCookie, splitSetCookieHeader, stripSecureCookiePrefix, toCookieOptions };