paper-search-mcp-nodejs
Version:
A Node.js MCP server for searching and downloading academic papers from multiple sources, including arXiv, PubMed, bioRxiv, Web of Science, and more.
80 lines • 2.53 kB
TypeScript
/**
* Security utilities for sanitizing and validating data
* Provides comprehensive protection against security vulnerabilities
*/
/**
* Comprehensive request sanitization to remove sensitive data
* @param config - Axios request configuration
* @returns Sanitized configuration copy
*/
export declare function sanitizeRequest(config: any): any;
/**
* Sanitize headers to remove sensitive information
*/
export declare function sanitizeHeaders(headers: Record<string, any>): Record<string, any>;
/**
* Sanitize URL parameters
*/
export declare function sanitizeParams(params: Record<string, any>): Record<string, any>;
/**
* Sanitize request body
*/
export declare function sanitizeBody(body: any): any;
/**
* Sanitize URL to remove sensitive query parameters
*/
export declare function sanitizeUrl(url: string): string;
/**
* Validate and sanitize a DOI string
*/
export declare function sanitizeDoi(doi: string): {
valid: boolean;
sanitized: string;
error?: string;
};
/**
* Escape query value for different contexts
*/
export declare function escapeQueryValue(value: string, context?: 'springer' | 'wos' | 'general'): string;
/**
* Validate query complexity to prevent DoS
*/
export declare function validateQueryComplexity(query: string, options?: {
maxLength?: number;
maxBooleanOperators?: number;
}): {
valid: boolean;
error?: string;
};
/**
* Create a timeout wrapper for promises
*/
export declare function withTimeout<T>(promise: Promise<T>, ms: number, message?: string): Promise<T>;
/**
* Generate a correlation ID for request tracking
*/
export declare function generateCorrelationId(): string;
/**
* Mask sensitive data in strings
*/
export declare function maskSensitiveData(str: string): string;
/**
* Check if a string looks like an API key or token
*/
export declare function looksLikeToken(str: string): boolean;
declare const _default: {
sanitizeRequest: typeof sanitizeRequest;
sanitizeHeaders: typeof sanitizeHeaders;
sanitizeParams: typeof sanitizeParams;
sanitizeBody: typeof sanitizeBody;
sanitizeUrl: typeof sanitizeUrl;
sanitizeDoi: typeof sanitizeDoi;
escapeQueryValue: typeof escapeQueryValue;
validateQueryComplexity: typeof validateQueryComplexity;
withTimeout: typeof withTimeout;
generateCorrelationId: typeof generateCorrelationId;
maskSensitiveData: typeof maskSensitiveData;
looksLikeToken: typeof looksLikeToken;
};
export default _default;
//# sourceMappingURL=SecurityUtils.d.ts.map