UNPKG

thrilled-be-core

Version:

Core Express backend package with middleware, logging, security, and base application setup

150 lines 5.34 kB
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