ctrlshiftleft
Version:
AI-powered toolkit for embedding QA and security testing into development workflows
92 lines (91 loc) • 2.78 kB
TypeScript
/**
* ctrl.shift.left QA Validation Middleware
*
* This middleware provides input validation and security checks for API routes
* in various JavaScript frameworks including Next.js, Express, and others.
*/
type ValidationResult = {
valid: boolean;
message: string;
securityIssues: string[];
};
type InputType = 'url' | 'email' | 'password' | 'text' | 'number' | 'json';
/**
* Validate user input for common security risks
* @param input User input to validate
* @param inputType Type of input
*/
export declare function validateInput(input: string, inputType?: InputType): ValidationResult;
/**
* Validate request body fields
* @param body Request body object
* @param fieldValidations Validation rules for each field
*/
export declare function validateRequestBody(body: Record<string, any>, fieldValidations: Record<string, {
type: InputType;
required?: boolean;
}>): {
isValid: boolean;
errors: Record<string, string>;
securityIssues: string[];
};
/**
* Create Express-style middleware for input validation
* @param validationRules Validation rules for request body fields
*/
export declare function createValidationMiddleware(validationRules: Record<string, {
type: InputType;
required?: boolean;
}>): (req: any, res: any, next: () => void) => any;
/**
* Validate URL with security checks
* @param url URL to validate
*/
export declare function validateUrl(url: string): {
isValid: boolean;
errorMessage: string;
hasSecurity: boolean;
securityIssues: string[];
};
/**
* Validate email address with security checks
* @param email Email to validate
*/
export declare function validateEmail(email: string): {
isValid: boolean;
errorMessage: string;
hasSecurity: boolean;
securityIssues: string[];
};
/**
* Validate a password for security and strength
* @param password Password to validate
*/
export declare function validatePassword(password: string): {
isValid: boolean;
errorMessage: string;
hasSecurity: boolean;
securityIssues: string[];
strength: string;
suggestions: (string | null)[];
};
/**
* Validate JSON string or object for security issues
* @param json JSON string or object to validate
*/
export declare function validateJson(json: string | object): {
isValid: boolean;
errorMessage: string;
hasSecurity: boolean;
securityIssues: string[];
};
declare const _default: {
validateInput: typeof validateInput;
validateRequestBody: typeof validateRequestBody;
createValidationMiddleware: typeof createValidationMiddleware;
validateUrl: typeof validateUrl;
validateEmail: typeof validateEmail;
validatePassword: typeof validatePassword;
validateJson: typeof validateJson;
};
export default _default;