survey-mcp-server
Version:
Survey management server handling survey creation, response collection, analysis, and reporting with database access for data management
29 lines (28 loc) • 1.67 kB
TypeScript
export { ValidationMiddleware, validationMiddleware, ValidationResult } from './validation.js';
export { SanitizationMiddleware, sanitizationMiddleware, SanitizationOptions } from './sanitization.js';
export { ErrorHandlingMiddleware, errorHandlingMiddleware, BaseError, ValidationError as MiddlewareValidationError, SanitizationError, DatabaseError, SearchError, ExternalApiError, NotFoundError, ConfigurationError, TimeoutError, ErrorCode, ErrorDetails } from './error-handling.js';
import { ToolArguments, ToolResponse } from '../types/index.js';
export interface MiddlewareOptions {
skipValidation?: boolean;
skipSanitization?: boolean;
sanitizationOptions?: {
allowHtml?: boolean;
stripScripts?: boolean;
maxStringLength?: number;
allowedTags?: string[];
allowedAttributes?: string[];
};
timeout?: number;
}
export declare class MiddlewareChain {
private static instance;
private constructor();
static getInstance(): MiddlewareChain;
processToolCall<T>(toolName: string, input: ToolArguments, operation: (sanitizedInput: ToolArguments) => Promise<T>, options?: MiddlewareOptions): Promise<T>;
handleError(error: Error, toolName?: string): ToolResponse;
wrapDatabaseOperation<T>(operation: () => Promise<T>, operationName: string, timeout?: number): Promise<T>;
wrapSearchOperation<T>(operation: () => Promise<T>, operationName: string, timeout?: number): Promise<T>;
wrapExternalApiOperation<T>(operation: () => Promise<T>, operationName: string, timeout?: number): Promise<T>;
validateMongoQuery(query: any): any;
}
export declare const middlewareChain: MiddlewareChain;