@zestic/oauth-core
Version:
Framework-agnostic OAuth authentication library with support for multiple OAuth flows
72 lines • 3.37 kB
TypeScript
/**
* 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