thrilled-be-core
Version:
Core Express backend package with middleware, logging, security, and base application setup
150 lines • 5.34 kB
TypeScript
import { Express } from 'express';
import { BasePlugin } from './Plugin.js';
import { Logger } from '../logging/Logger.js';
export interface CoreValidationConfig {
/** Enable XSS protection middleware */
enableXSSProtection?: boolean;
/** Enable SQL injection protection middleware */
enableSQLInjectionProtection?: boolean;
/** Global validation configuration */
globalValidation?: {
enabled: boolean;
soft?: boolean;
options?: Record<string, unknown>;
};
/** Global sanitization configuration */
globalSanitization?: {
body?: Record<string, unknown>;
query?: Record<string, unknown>;
params?: Record<string, unknown>;
};
/** Custom validators */
customValidators?: Record<string, (value: unknown) => Promise<{
isValid: boolean;
errors: unknown[];
}>>;
/** Custom error handler */
errorHandler?: (error: unknown, req: unknown, res: unknown, next: unknown) => void;
/** Content Security Policy configuration */
csp?: {
enabled: boolean;
directives?: Record<string, string[]>;
};
}
export interface CoreValidationPublicConfig {
/** Enable XSS protection middleware */
enableXSSProtection?: boolean;
/** Enable SQL injection protection middleware */
enableSQLInjectionProtection?: boolean;
/** Global validation configuration */
globalValidation?: {
enabled: boolean;
soft?: boolean;
options?: Record<string, unknown>;
};
/** Global sanitization configuration */
globalSanitization?: {
body?: Record<string, unknown>;
query?: Record<string, unknown>;
params?: Record<string, unknown>;
};
/** Custom validators (keys only for public config) */
customValidators?: string[];
/** Custom error handler (indicator only for public config) */
errorHandler?: string;
/** Content Security Policy configuration */
csp?: {
enabled: boolean;
directives?: Record<string, string[]>;
};
}
/**
* Core Validation Plugin - integrates be-validation into be-core
*
* This plugin provides comprehensive validation and sanitization capabilities
* that are automatically available when using be-core.
*/
export declare class CoreValidationPlugin extends BasePlugin {
readonly name = "validation";
readonly version = "1.0.0";
private config;
private validationModules;
constructor(logger?: Logger, config?: Partial<CoreValidationConfig>);
protected setup(config: unknown): Promise<void>;
protected registerMiddleware(app: Express): void;
protected registerErrorHandlers(app: Express): void;
/**
* Get validation middleware for specific routes
*/
getValidationMiddleware(): unknown;
/**
* Get sanitization utilities
*/
getSanitizer(): unknown;
/**
* Get XSS protection utilities
*/
getXSSProtection(): unknown;
/**
* Get SQL injection protection utilities
*/
getSQLProtection(): unknown;
/**
* Get custom validators
*/
getCustomValidators(): unknown;
/**
* Get validation utilities
*/
getValidationUtils(): unknown;
/**
* Get Joi validator instance
*/
getJoiValidator(): unknown;
/**
* Get Zod validator instance
*/
getZodValidator(): unknown;
/**
* Add custom validator
*/
addCustomValidator(name: string, validator: (value: unknown) => Promise<{
isValid: boolean;
errors: unknown[];
}>): void;
/**
* Get custom validator
*/
getCustomValidator(name: string): ((value: unknown) => Promise<{
isValid: boolean;
errors: unknown[];
}>) | undefined;
/**
* Update plugin configuration
*/
updateConfig(newConfig: Partial<CoreValidationConfig>): void;
/**
* Get current configuration (without sensitive data)
*/
getPublicConfig(): Partial<CoreValidationPublicConfig>;
/**
* Health check for validation system
*/
healthCheck(): Promise<{
status: 'healthy' | 'warning' | 'error';
checks: Record<string, boolean>;
message: string;
details: unknown;
}>;
}
export declare const ValidationExports: {
getValidationMiddleware(): Promise<typeof import("be-validation", { with: { "resolution-mode": "import" } }).ValidationMiddleware>;
getXSSProtection(): Promise<typeof import("be-validation", { with: { "resolution-mode": "import" } }).XSSProtection>;
getSQLInjectionProtection(): Promise<typeof import("be-validation", { with: { "resolution-mode": "import" } }).SQLInjectionProtection>;
getSanitizer(): Promise<typeof import("be-validation", { with: { "resolution-mode": "import" } }).Sanitizer>;
getCustomValidators(): Promise<typeof import("be-validation", { with: { "resolution-mode": "import" } }).CustomValidators>;
getValidationUtils(): Promise<typeof import("be-validation", { with: { "resolution-mode": "import" } }).ValidationUtils>;
getJoiValidator(): Promise<typeof import("be-validation", { with: { "resolution-mode": "import" } }).JoiValidator>;
getZodValidator(): Promise<typeof import("be-validation", { with: { "resolution-mode": "import" } }).ZodValidator>;
};
//# sourceMappingURL=ValidationPlugin.d.ts.map