UNPKG

@re-auth/http-adapters

Version:

HTTP protocol adapters for ReAuth - framework-agnostic integration with Express, Fastify, and Hono

105 lines (102 loc) 3.45 kB
import { HttpAdapterConfig, AuthenticatedUser, HttpRequest } from '../types.js'; import { ReAuthHttpAdapter } from '../base-adapter.js'; import { LoggerInterface } from '@re-auth/logger'; import { IRequest, CorsOptions, AutoRouterType } from 'itty-router'; import '@re-auth/reauth'; import '@re-auth/reauth/services'; import 'hono/utils/cookie'; declare class IttyRouterAdapter { readonly name = "itty-router"; private adapter; private config; private generateDeviceInfo?; private routePaths; private logger; constructor(config: HttpAdapterConfig, generateDeviceInfo?: (request: IRequest) => Promise<Record<string, any>>, logger?: LoggerInterface); /** * Create a new AutoRouter with CORS configured */ createRouter(basePath?: string, exposeIntrospection?: boolean, corsOptions?: CorsOptions): AutoRouterType; /** * Register middleware on an existing router */ registerMiddleware(router: AutoRouterType, middleware: { before?: any[]; finally?: any[]; }): void; /** * Configure CORS on an existing router */ configureCORS(router: AutoRouterType, options?: CorsOptions): void; createUserMiddleware(): (request: IRequest) => Promise<void>; generateDeviceInfoInternal(request: IRequest): Promise<Record<string, any>>; /** * Get current user from request */ getCurrentUser(request: IRequest): Promise<AuthenticatedUser | null>; /** * Extract HTTP request from itty-router Request */ extractRequest(request: IRequest): HttpRequest; /** * Send response using Response */ sendResponse(data: any, statusCode?: number, headers?: Record<string, string>): Response; /** * Handle error using Response */ handleError(err: Error, statusCode?: number): Response; /** * Register routes on existing itty-router AutoRouter or create a new one */ registerRoutes(router?: AutoRouterType, basePath?: string, exposeIntrospection?: boolean): AutoRouterType; /** * Get all registered routes */ getRoutes(): string[]; /** * Create step execution handler */ private createStepHandler; /** * Create session check handler */ private createSessionCheckHandler; /** * Create plugin list handler */ private createPluginListHandler; /** * Create plugin details handler */ private createPluginDetailsHandler; /** * Create introspection handler */ private createIntrospectionHandler; /** * Create health check handler */ private createHealthHandler; /** * Create cookie header string */ private createCookieHeader; /** * Get the base adapter instance */ getAdapter(): ReAuthHttpAdapter; } /** * itty-router middleware factory function */ declare function reAuthRouter(config: HttpAdapterConfig, generateDeviceInfo?: (request: IRequest) => Promise<Record<string, any>>, logger?: LoggerInterface): IttyRouterAdapter; declare const createReAuthRouter: (routerConfig: { basePath: string; exposeIntrospection: boolean; corsOptions?: CorsOptions; }, config: HttpAdapterConfig, generateDeviceInfo?: (request: IRequest) => Promise<Record<string, any>>, logger?: LoggerInterface) => { router: AutoRouterType; adapter: IttyRouterAdapter; }; export { IttyRouterAdapter, createReAuthRouter, reAuthRouter };