UNPKG

kitcn

Version:

kitcn - React Query integration and CLI tools for Convex

68 lines (67 loc) 2.2 kB
import { t as GetAuth } from "../../types-BCl8gfGy.js"; import { HttpRouter } from "convex/server"; import { MiddlewareHandler } from "hono"; import { BaseURLConfig, BetterAuthOptions } from "better-auth"; //#region src/auth/middleware.d.ts interface AuthMiddlewareOptions { /** Base path for auth routes (default: '/api/auth') */ basePath?: string; /** Log request/response headers for debugging */ verbose?: boolean; } /** * Create auth middleware that handles auth routes and OpenID well-known redirect. * * @example * ```ts * import { Hono } from 'hono'; * import { cors } from 'hono/cors'; * import { authMiddleware } from 'kitcn/auth/http'; * import { createHttpRouter } from 'kitcn/server'; * * const app = new Hono(); * app.use('/api/*', cors({ origin: process.env.SITE_URL, credentials: true })); * app.use(authMiddleware(getAuth)); * * export default createHttpRouter(app, httpRouter); * ``` */ declare function authMiddleware<Ctx = unknown>(getAuth: GetAuth<Ctx, { handler: (request: Request) => Promise<Response>; }>, opts?: AuthMiddlewareOptions): MiddlewareHandler; //#endregion //#region src/auth/registerRoutes.d.ts type TrustedOriginsOption = BetterAuthOptions['trustedOrigins']; type RouteCorsOptions = { allowedHeaders?: string[]; allowedOrigins?: string[]; exposedHeaders?: string[]; } | boolean; type RegisterRoutesOptions = { basePath?: string; cors?: RouteCorsOptions; verbose?: boolean; }; type AuthRouteContract = { $context: Promise<{ options: { trustedOrigins?: TrustedOriginsOption; }; }>; handler: (request: Request) => Promise<Response>; options: { basePath?: string; baseURL?: BaseURLConfig; trustedOrigins?: TrustedOriginsOption; }; }; declare const registerRoutes: <Ctx>(http: HttpRouter, getAuth: GetAuth<Ctx, AuthRouteContract>, opts?: RegisterRoutesOptions) => void; //#endregion //#region src/auth-http/index.d.ts /** * Install Convex-safe polyfills required by Better Auth's HTTP handling. * This runs automatically when importing `kitcn/auth/http`. */ declare function installAuthHttpPolyfills(): void; //#endregion export { authMiddleware, installAuthHttpPolyfills, registerRoutes };