@allan1361/iota-big3-sdk-middleware
Version:
🏆 A+ Grade Certified Enterprise Middleware Framework - Phase 3 Certified (90/100) with advanced resilience patterns, comprehensive type safety, and production-ready observability
87 lines • 2.66 kB
TypeScript
import { NextFunction, Request, Response } from 'express';
export interface MiddlewareConfig {
enabled?: boolean;
[key: string]: unknown;
}
export type IndustryType = 'education' | 'healthcare' | 'finance' | 'retail' | 'government' | 'technology';
export interface UserContext {
id: string;
email?: string;
roles?: string[];
permissions?: string[];
industry?: IndustryType;
}
export interface AuthConfig extends MiddlewareConfig {
jwtSecret?: string;
apiKeyHeader?: string;
tokenHeader?: string;
cookieName?: string;
publicPaths?: string[];
enableJWT?: boolean;
enableApiKey?: boolean;
enableSession?: boolean;
}
export interface LoggingConfig extends MiddlewareConfig {
level?: string;
includeBody?: boolean;
includeHeaders?: boolean;
colorize?: boolean;
metricsPrefix?: string;
}
export interface ErrorConfig extends MiddlewareConfig {
enableStackTrace?: boolean;
customFormatter?: (error: Error, req: Request) => ErrorResponse;
}
export interface CorsConfig extends MiddlewareConfig {
origin?: string | string[];
credentials?: boolean;
maxAge?: number;
allowedHeaders?: string[];
exposedHeaders?: string[];
}
export interface RateLimitConfig extends MiddlewareConfig {
windowMs?: number;
max?: number;
message?: string;
}
export interface SecurityConfig extends MiddlewareConfig {
contentSecurityPolicy?: string | boolean;
strictTransportSecurity?: boolean;
xFrameOptions?: string;
xContentTypeOptions?: boolean;
}
export interface PhilosophyConfig extends MiddlewareConfig {
trackingEnabled?: boolean;
metricsPrefix?: string;
}
export interface ComplianceConfig extends MiddlewareConfig {
frameworks?: string[];
enforceHttps?: boolean;
requireAuth?: boolean;
}
export type MiddlewareFunction = (req: Request, res: Response, next: NextFunction) => void;
export type ErrorMiddlewareFunction = (err: Error, req: Request, res: Response, next: NextFunction) => void;
export interface AuthenticatedRequest extends Request {
user?: UserContext;
token?: string;
sessionId?: string;
}
export interface SDKMiddleware {
auth: MiddlewareFunction;
logging: MiddlewareFunction;
error: ErrorMiddlewareFunction;
cors: MiddlewareFunction;
rateLimit: MiddlewareFunction;
security: MiddlewareFunction;
philosophy: MiddlewareFunction;
compliance: MiddlewareFunction;
isEnabled: boolean;
}
export interface ErrorResponse {
error: string;
message: string;
statusCode: number;
timestamp: string;
path: string;
}
//# sourceMappingURL=types-clean.d.ts.map