@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
TypeScript
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 };