@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
93 lines • 3.43 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SDKMiddlewareManager = void 0;
exports.createSDKMiddleware = createSDKMiddleware;
const auth_middleware_clean_1 = require("./auth-middleware-clean");
const cors_middleware_clean_1 = require("./cors-middleware-clean");
const error_middleware_clean_1 = require("./error-middleware-clean");
const logging_middleware_clean_1 = require("./logging-middleware-clean");
const philosophy_middleware_clean_1 = require("./philosophy-middleware-clean");
class SDKMiddlewareManager {
constructor(config = {}) {
this.isEnabled = true;
this.middlewares = [];
this.middlewares = config.middlewares || [];
this.authMiddleware = new auth_middleware_clean_1.AuthMiddleware(config.auth || {});
this.loggingMiddleware = new logging_middleware_clean_1.LoggingMiddleware(config.logging || {});
this.errorMiddleware = new error_middleware_clean_1.ErrorMiddleware(config.error || {});
this.corsMiddleware = new cors_middleware_clean_1.CorsMiddleware(config.cors || {});
this.philosophyMiddleware = new philosophy_middleware_clean_1.PhilosophyMiddleware(config.philosophy || {});
this.isEnabled = config.enabled !== false;
}
get auth() {
return this.authMiddleware.middleware();
}
get logging() {
return this.loggingMiddleware.middleware();
}
get error() {
return this.errorMiddleware.middleware();
}
get cors() {
return this.corsMiddleware.middleware();
}
get rateLimit() {
return (req, res, next) => {
next();
};
}
get security() {
return (req, res, next) => {
res.setHeader('X-Content-Type-Options', 'nosniff');
res.setHeader('X-Frame-Options', 'DENY');
res.setHeader('X-XSS-Protection', '1; mode=block');
next();
};
}
get philosophy() {
return this.philosophyMiddleware.middleware();
}
get compliance() {
return (req, res, next) => {
res.setHeader('X-Compliance-Tracking', 'enabled');
next();
};
}
getAllMiddleware() {
return [
this.cors,
this.security,
this.logging,
this.philosophy,
this.compliance,
this.auth,
this.rateLimit
];
}
getHealthStatus() {
return {
status: this.isEnabled ? 'healthy' : 'disabled',
components: {
auth: this.authMiddleware.getHealthStatus(),
logging: this.loggingMiddleware.getHealthStatus(),
error: this.errorMiddleware.getHealthStatus(),
cors: this.corsMiddleware.getHealthStatus(),
philosophy: this.philosophyMiddleware.getHealthStatus()
}
};
}
getMetrics() {
return {
auth: this.authMiddleware.getMetrics(),
logging: this.loggingMiddleware.getMetrics(),
error: this.errorMiddleware.getMetrics(),
cors: this.corsMiddleware.getMetrics(),
philosophy: this.philosophyMiddleware.getMetrics()
};
}
}
exports.SDKMiddlewareManager = SDKMiddlewareManager;
function createSDKMiddleware(config = {}) {
return new SDKMiddlewareManager(config);
}
//# sourceMappingURL=sdk-middleware-clean.js.map