UNPKG

@zestic/oauth-core

Version:

Framework-agnostic OAuth authentication library with support for multiple OAuth flows

72 lines 3.37 kB
/** * Base flow handler interface and abstract implementation */ import { CallbackFlowHandler as ICallbackFlowHandler } from '../types/CallbackFlowTypes'; import { OAuthConfig, OAuthAdapters, OAuthResult } from '../types/OAuthTypes'; /** * Abstract base class for callback flow handlers */ export declare abstract class BaseCallbackFlowHandler implements ICallbackFlowHandler { abstract readonly name: string; abstract readonly priority: number; abstract canHandle(params: URLSearchParams, config: OAuthConfig): boolean; abstract handle(params: URLSearchParams, adapters: OAuthAdapters, config: OAuthConfig): Promise<OAuthResult>; /** * Default validation implementation - can be overridden by subclasses * Provides common validation logic that all flows should have */ validate(params: URLSearchParams, config: OAuthConfig): Promise<boolean>; /** * Check for OAuth errors in parameters */ protected checkForOAuthError(params: URLSearchParams): void; /** * Validate required parameters */ protected validateRequiredParams(params: URLSearchParams, requiredParams: string[]): void; /** * Extract parameter safely with validation */ protected getRequiredParam(params: URLSearchParams, key: string): string; /** * Get optional parameter with default value */ protected getOptionalParam(params: URLSearchParams, key: string, defaultValue?: string): string | undefined; /** * Create success result */ protected createSuccessResult(accessToken: string, refreshToken?: string, expiresIn?: number): OAuthResult; /** * Create error result */ protected createErrorResult(error: string, errorCode?: string): OAuthResult; /** * Log flow execution */ protected logFlowExecution(message: string, params?: URLSearchParams): void; /** * Measure execution time */ protected measureExecutionTime<T>(operation: () => Promise<T>, operationName: string): Promise<T>; } /** * Simple flow handler implementation for basic flows */ export declare class SimpleCallbackFlowHandler extends BaseCallbackFlowHandler { readonly name: string; readonly priority: number; private canHandleFunc; private handleFunc; private validateFunc?; constructor(name: string, priority: number, canHandleFunc: (params: URLSearchParams, config: OAuthConfig) => boolean, handleFunc: (params: URLSearchParams, adapters: OAuthAdapters, config: OAuthConfig) => Promise<OAuthResult>, validateFunc?: ((params: URLSearchParams, config: OAuthConfig) => Promise<boolean>) | undefined); canHandle(params: URLSearchParams, config: OAuthConfig): boolean; handle(params: URLSearchParams, adapters: OAuthAdapters, config: OAuthConfig): Promise<OAuthResult>; validate(params: URLSearchParams, config: OAuthConfig): Promise<boolean>; } /** * Factory for creating simple flow handlers */ export declare class FlowHandlerFactory { static create(name: string, priority: number, canHandle: (params: URLSearchParams, config: OAuthConfig) => boolean, handle: (params: URLSearchParams, adapters: OAuthAdapters, config: OAuthConfig) => Promise<OAuthResult>, validate?: (params: URLSearchParams, config: OAuthConfig) => Promise<boolean>): ICallbackFlowHandler; } //# sourceMappingURL=BaseCallbackFlowHandler.d.ts.map