xypriss 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +170 -380
- package/dist/cjs/mods/security/src/algorithms/hash-algorithms.js +10 -0
- package/dist/cjs/mods/security/src/algorithms/hash-algorithms.js.map +1 -1
- package/dist/cjs/mods/security/src/components/cache/cacheSys.utils.js +10 -0
- package/dist/cjs/mods/security/src/components/cache/cacheSys.utils.js.map +1 -1
- package/dist/cjs/mods/security/src/components/cache/index.js +10 -2
- package/dist/cjs/mods/security/src/components/cache/index.js.map +1 -1
- package/dist/cjs/mods/security/src/components/fortified-function/index.js +9 -0
- package/dist/cjs/mods/security/src/components/fortified-function/index.js.map +1 -1
- package/dist/cjs/mods/security/src/components/fortified-function/security/security-handler.js +10 -0
- package/dist/cjs/mods/security/src/components/fortified-function/security/security-handler.js.map +1 -1
- package/dist/cjs/mods/security/src/core/crypto.js +14 -0
- package/dist/cjs/mods/security/src/core/crypto.js.map +1 -1
- package/dist/cjs/mods/security/src/index.js +10 -1
- package/dist/cjs/mods/security/src/index.js.map +1 -1
- package/dist/cjs/shared/logger/Logger.js +372 -29
- package/dist/cjs/shared/logger/Logger.js.map +1 -1
- package/dist/cjs/src/cluster/bun-cluster-manager.js +91 -1
- package/dist/cjs/src/cluster/bun-cluster-manager.js.map +1 -1
- package/dist/cjs/src/cluster/cluster-manager.js +15 -3
- package/dist/cjs/src/cluster/cluster-manager.js.map +1 -1
- package/dist/cjs/src/cluster/modules/AutoScaler.js +4 -4
- package/dist/cjs/src/cluster/modules/AutoScaler.js.map +1 -1
- package/dist/cjs/src/cluster/modules/CrossPlatformMemory.js +2 -2
- package/dist/cjs/src/cluster/modules/CrossPlatformMemory.js.map +1 -1
- package/dist/cjs/src/cluster/modules/EventLoopMonitor.js +270 -0
- package/dist/cjs/src/cluster/modules/EventLoopMonitor.js.map +1 -0
- package/dist/cjs/src/cluster/modules/GCStatsTracker.js +200 -0
- package/dist/cjs/src/cluster/modules/GCStatsTracker.js.map +1 -0
- package/dist/cjs/src/cluster/modules/HeapStatsCollector.js +111 -0
- package/dist/cjs/src/cluster/modules/HeapStatsCollector.js.map +1 -0
- package/dist/cjs/src/cluster/modules/NetworkTracker.js +162 -0
- package/dist/cjs/src/cluster/modules/NetworkTracker.js.map +1 -0
- package/dist/cjs/src/cluster/modules/ThroughputCalculator.js +186 -0
- package/dist/cjs/src/cluster/modules/ThroughputCalculator.js.map +1 -0
- package/dist/cjs/src/cluster/modules/WorkerManager.js +14 -15
- package/dist/cjs/src/cluster/modules/WorkerManager.js.map +1 -1
- package/dist/cjs/src/cluster/modules/{LoadBalancer.js → strategy/LoadBalancer.js} +1 -1
- package/dist/cjs/src/cluster/modules/strategy/LoadBalancer.js.map +1 -0
- package/dist/cjs/src/middleware/built-in/sqlInjection.js +335 -0
- package/dist/cjs/src/middleware/built-in/sqlInjection.js.map +1 -0
- package/dist/cjs/src/middleware/safe-json-middleware.js +1 -1
- package/dist/cjs/src/middleware/safe-json-middleware.js.map +1 -1
- package/dist/cjs/src/middleware/security-middleware.js +447 -332
- package/dist/cjs/src/middleware/security-middleware.js.map +1 -1
- package/dist/cjs/src/plugins/modules/index.js +9 -3
- package/dist/cjs/src/plugins/modules/index.js.map +1 -1
- package/dist/cjs/src/server/FastServer.js +41 -1
- package/dist/cjs/src/server/FastServer.js.map +1 -1
- package/dist/cjs/src/server/ServerFactory.js +62 -2
- package/dist/cjs/src/server/ServerFactory.js.map +1 -1
- package/dist/cjs/src/server/components/fastapi/ClusterManagerComponent.js +32 -6
- package/dist/cjs/src/server/components/fastapi/ClusterManagerComponent.js.map +1 -1
- package/dist/cjs/src/server/components/fastapi/WorkerPoolComponent.js +206 -0
- package/dist/cjs/src/server/components/fastapi/WorkerPoolComponent.js.map +1 -0
- package/dist/cjs/src/server/components/fastapi/console/ConsoleInterceptor.js +3 -28
- package/dist/cjs/src/server/components/fastapi/console/ConsoleInterceptor.js.map +1 -1
- package/dist/cjs/src/server/components/fastapi/modules/UFRP/WorkerPoolManager.js +265 -0
- package/dist/cjs/src/server/components/fastapi/modules/UFRP/WorkerPoolManager.js.map +1 -0
- package/dist/cjs/src/server/components/fastapi/modules/UFRP/workers/Logger.js +236 -0
- package/dist/cjs/src/server/components/fastapi/modules/UFRP/workers/cpu-tasks.js +294 -0
- package/dist/cjs/src/server/components/fastapi/modules/UFRP/workers/enhanced-cpu-worker.js +433 -0
- package/dist/cjs/src/server/components/fastapi/modules/UFRP/workers/io-worker.js +1615 -0
- package/dist/cjs/src/server/components/lifecycle/ServerLifecycleManager.js +143 -24
- package/dist/cjs/src/server/components/lifecycle/ServerLifecycleManager.js.map +1 -1
- package/dist/cjs/src/server/const/default.js +23 -9
- package/dist/cjs/src/server/const/default.js.map +1 -1
- package/dist/cjs/src/server/core/HttpServer.js +8 -8
- package/dist/cjs/src/server/core/HttpServer.js.map +1 -1
- package/dist/cjs/src/server/core/XyprissApp.js +284 -17
- package/dist/cjs/src/server/core/XyprissApp.js.map +1 -1
- package/dist/cjs/src/server/handlers/NotFoundHandler.js +1 -1
- package/dist/cjs/src/server/handlers/NotFoundHandler.js.map +1 -1
- package/dist/cjs/src/server/middleware/MiddlewareManager.js +57 -12
- package/dist/cjs/src/server/middleware/MiddlewareManager.js.map +1 -1
- package/dist/cjs/src/server/utils/forceClosePort.js +1 -1
- package/dist/cjs/src/server/utils/forceClosePort.js.map +1 -1
- package/dist/esm/mods/security/src/algorithms/hash-algorithms.js +10 -0
- package/dist/esm/mods/security/src/algorithms/hash-algorithms.js.map +1 -1
- package/dist/esm/mods/security/src/components/cache/cacheSys.utils.js +10 -0
- package/dist/esm/mods/security/src/components/cache/cacheSys.utils.js.map +1 -1
- package/dist/esm/mods/security/src/components/cache/index.js +10 -2
- package/dist/esm/mods/security/src/components/cache/index.js.map +1 -1
- package/dist/esm/mods/security/src/components/fortified-function/index.js +9 -0
- package/dist/esm/mods/security/src/components/fortified-function/index.js.map +1 -1
- package/dist/esm/mods/security/src/components/fortified-function/security/security-handler.js +10 -0
- package/dist/esm/mods/security/src/components/fortified-function/security/security-handler.js.map +1 -1
- package/dist/esm/mods/security/src/core/crypto.js +14 -0
- package/dist/esm/mods/security/src/core/crypto.js.map +1 -1
- package/dist/esm/mods/security/src/index.js +10 -1
- package/dist/esm/mods/security/src/index.js.map +1 -1
- package/dist/esm/shared/logger/Logger.js +372 -29
- package/dist/esm/shared/logger/Logger.js.map +1 -1
- package/dist/esm/src/cluster/bun-cluster-manager.js +91 -1
- package/dist/esm/src/cluster/bun-cluster-manager.js.map +1 -1
- package/dist/esm/src/cluster/cluster-manager.js +15 -3
- package/dist/esm/src/cluster/cluster-manager.js.map +1 -1
- package/dist/esm/src/cluster/modules/AutoScaler.js +4 -4
- package/dist/esm/src/cluster/modules/AutoScaler.js.map +1 -1
- package/dist/esm/src/cluster/modules/CrossPlatformMemory.js +2 -2
- package/dist/esm/src/cluster/modules/CrossPlatformMemory.js.map +1 -1
- package/dist/esm/src/cluster/modules/EventLoopMonitor.js +268 -0
- package/dist/esm/src/cluster/modules/EventLoopMonitor.js.map +1 -0
- package/dist/esm/src/cluster/modules/GCStatsTracker.js +198 -0
- package/dist/esm/src/cluster/modules/GCStatsTracker.js.map +1 -0
- package/dist/esm/src/cluster/modules/HeapStatsCollector.js +109 -0
- package/dist/esm/src/cluster/modules/HeapStatsCollector.js.map +1 -0
- package/dist/esm/src/cluster/modules/NetworkTracker.js +160 -0
- package/dist/esm/src/cluster/modules/NetworkTracker.js.map +1 -0
- package/dist/esm/src/cluster/modules/ThroughputCalculator.js +184 -0
- package/dist/esm/src/cluster/modules/ThroughputCalculator.js.map +1 -0
- package/dist/esm/src/cluster/modules/WorkerManager.js +14 -14
- package/dist/esm/src/cluster/modules/WorkerManager.js.map +1 -1
- package/dist/esm/src/cluster/modules/{LoadBalancer.js → strategy/LoadBalancer.js} +1 -1
- package/dist/esm/src/cluster/modules/strategy/LoadBalancer.js.map +1 -0
- package/dist/esm/src/middleware/built-in/sqlInjection.js +333 -0
- package/dist/esm/src/middleware/built-in/sqlInjection.js.map +1 -0
- package/dist/esm/src/middleware/safe-json-middleware.js +1 -1
- package/dist/esm/src/middleware/safe-json-middleware.js.map +1 -1
- package/dist/esm/src/middleware/security-middleware.js +447 -332
- package/dist/esm/src/middleware/security-middleware.js.map +1 -1
- package/dist/esm/src/plugins/modules/index.js +9 -3
- package/dist/esm/src/plugins/modules/index.js.map +1 -1
- package/dist/esm/src/server/FastServer.js +41 -1
- package/dist/esm/src/server/FastServer.js.map +1 -1
- package/dist/esm/src/server/ServerFactory.js +62 -2
- package/dist/esm/src/server/ServerFactory.js.map +1 -1
- package/dist/esm/src/server/components/fastapi/ClusterManagerComponent.js +32 -6
- package/dist/esm/src/server/components/fastapi/ClusterManagerComponent.js.map +1 -1
- package/dist/esm/src/server/components/fastapi/WorkerPoolComponent.js +204 -0
- package/dist/esm/src/server/components/fastapi/WorkerPoolComponent.js.map +1 -0
- package/dist/esm/src/server/components/fastapi/console/ConsoleInterceptor.js +2 -27
- package/dist/esm/src/server/components/fastapi/console/ConsoleInterceptor.js.map +1 -1
- package/dist/esm/src/server/components/fastapi/modules/UFRP/WorkerPoolManager.js +263 -0
- package/dist/esm/src/server/components/fastapi/modules/UFRP/WorkerPoolManager.js.map +1 -0
- package/dist/esm/src/server/components/fastapi/modules/UFRP/workers/Logger.js +236 -0
- package/dist/esm/src/server/components/fastapi/modules/UFRP/workers/cpu-tasks.js +294 -0
- package/dist/esm/src/server/components/fastapi/modules/UFRP/workers/enhanced-cpu-worker.js +433 -0
- package/dist/esm/src/server/components/fastapi/modules/UFRP/workers/io-worker.js +1615 -0
- package/dist/esm/src/server/components/lifecycle/ServerLifecycleManager.js +143 -24
- package/dist/esm/src/server/components/lifecycle/ServerLifecycleManager.js.map +1 -1
- package/dist/esm/src/server/const/default.js +23 -9
- package/dist/esm/src/server/const/default.js.map +1 -1
- package/dist/esm/src/server/core/HttpServer.js +8 -8
- package/dist/esm/src/server/core/HttpServer.js.map +1 -1
- package/dist/esm/src/server/core/XyprissApp.js +284 -17
- package/dist/esm/src/server/core/XyprissApp.js.map +1 -1
- package/dist/esm/src/server/handlers/NotFoundHandler.js +1 -1
- package/dist/esm/src/server/handlers/NotFoundHandler.js.map +1 -1
- package/dist/esm/src/server/middleware/MiddlewareManager.js +57 -12
- package/dist/esm/src/server/middleware/MiddlewareManager.js.map +1 -1
- package/dist/esm/src/server/utils/forceClosePort.js +1 -1
- package/dist/esm/src/server/utils/forceClosePort.js.map +1 -1
- package/dist/index.d.ts +675 -516
- package/package.json +10 -11
- package/dist/cjs/src/cluster/index.js +0 -361
- package/dist/cjs/src/cluster/index.js.map +0 -1
- package/dist/cjs/src/cluster/modules/ClusterFactory.js +0 -539
- package/dist/cjs/src/cluster/modules/ClusterFactory.js.map +0 -1
- package/dist/cjs/src/cluster/modules/LoadBalancer.js.map +0 -1
- package/dist/cjs/src/server/components/fastapi/UltraFastRequestProcessor.js +0 -668
- package/dist/cjs/src/server/components/fastapi/UltraFastRequestProcessor.js.map +0 -1
- package/dist/cjs/src/server/components/fastapi/middlewares/MiddlewareAPI.js +0 -347
- package/dist/cjs/src/server/components/fastapi/middlewares/MiddlewareAPI.js.map +0 -1
- package/dist/cjs/src/server/components/fastapi/middlewares/MiddlewareMethodsManager.js +0 -204
- package/dist/cjs/src/server/components/fastapi/middlewares/MiddlewareMethodsManager.js.map +0 -1
- package/dist/cjs/src/server/components/fastapi/middlewares/middlewareManager.js +0 -953
- package/dist/cjs/src/server/components/fastapi/middlewares/middlewareManager.js.map +0 -1
- package/dist/cjs/src/server/components/fastapi/modules/UFRP/WorkerPool.js +0 -56
- package/dist/cjs/src/server/components/fastapi/modules/UFRP/WorkerPool.js.map +0 -1
- package/dist/esm/src/cluster/index.js +0 -339
- package/dist/esm/src/cluster/index.js.map +0 -1
- package/dist/esm/src/cluster/modules/ClusterFactory.js +0 -511
- package/dist/esm/src/cluster/modules/ClusterFactory.js.map +0 -1
- package/dist/esm/src/cluster/modules/LoadBalancer.js.map +0 -1
- package/dist/esm/src/server/components/fastapi/UltraFastRequestProcessor.js +0 -647
- package/dist/esm/src/server/components/fastapi/UltraFastRequestProcessor.js.map +0 -1
- package/dist/esm/src/server/components/fastapi/middlewares/MiddlewareAPI.js +0 -345
- package/dist/esm/src/server/components/fastapi/middlewares/MiddlewareAPI.js.map +0 -1
- package/dist/esm/src/server/components/fastapi/middlewares/MiddlewareMethodsManager.js +0 -202
- package/dist/esm/src/server/components/fastapi/middlewares/MiddlewareMethodsManager.js.map +0 -1
- package/dist/esm/src/server/components/fastapi/middlewares/middlewareManager.js +0 -951
- package/dist/esm/src/server/components/fastapi/middlewares/middlewareManager.js.map +0 -1
- package/dist/esm/src/server/components/fastapi/modules/UFRP/WorkerPool.js +0 -54
- package/dist/esm/src/server/components/fastapi/modules/UFRP/WorkerPool.js.map +0 -1
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
export class Logger {
|
|
2
|
+
constructor(config) {
|
|
3
|
+
const defaultConfig = {
|
|
4
|
+
enabled: true,
|
|
5
|
+
level: "info",
|
|
6
|
+
components: {
|
|
7
|
+
server: true,
|
|
8
|
+
cache: true,
|
|
9
|
+
cluster: true,
|
|
10
|
+
performance: true,
|
|
11
|
+
fileWatcher: true,
|
|
12
|
+
plugins: true,
|
|
13
|
+
security: true,
|
|
14
|
+
monitoring: true,
|
|
15
|
+
routes: true,
|
|
16
|
+
userApp: true,
|
|
17
|
+
console: false, // Console interception system logs (can be verbose)
|
|
18
|
+
ipc: true, // Inter-process communication logs
|
|
19
|
+
memory: true, // Memory monitoring and detection logs
|
|
20
|
+
lifecycle: true, // Server lifecycle management logs
|
|
21
|
+
routing: true, // Fast routing system logs
|
|
22
|
+
},
|
|
23
|
+
types: {
|
|
24
|
+
startup: true,
|
|
25
|
+
warnings: true,
|
|
26
|
+
errors: true,
|
|
27
|
+
performance: true,
|
|
28
|
+
debug: false,
|
|
29
|
+
hotReload: true,
|
|
30
|
+
portSwitching: true,
|
|
31
|
+
},
|
|
32
|
+
format: {
|
|
33
|
+
timestamps: false,
|
|
34
|
+
colors: true,
|
|
35
|
+
prefix: true,
|
|
36
|
+
compact: false,
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
this.config = this.deepMerge(defaultConfig, config || {});
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get or create singleton instance
|
|
43
|
+
*/
|
|
44
|
+
static getInstance(config) {
|
|
45
|
+
if (!Logger.instance) {
|
|
46
|
+
Logger.instance = new Logger(config);
|
|
47
|
+
}
|
|
48
|
+
else if (config) {
|
|
49
|
+
Logger.instance.updateConfig(config);
|
|
50
|
+
}
|
|
51
|
+
return Logger.instance;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Deep merge two objects
|
|
55
|
+
*/
|
|
56
|
+
deepMerge(target, source) {
|
|
57
|
+
const result = { ...target };
|
|
58
|
+
for (const key in source) {
|
|
59
|
+
if (source[key] &&
|
|
60
|
+
typeof source[key] === "object" &&
|
|
61
|
+
!Array.isArray(source[key])) {
|
|
62
|
+
result[key] = this.deepMerge(target[key] || {}, source[key]);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
result[key] = source[key];
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Update logger configuration
|
|
72
|
+
*/
|
|
73
|
+
updateConfig(config) {
|
|
74
|
+
this.config = this.deepMerge(this.config, config || {});
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get current logger configuration (for debugging)
|
|
78
|
+
*/
|
|
79
|
+
getConfig() {
|
|
80
|
+
return this.config;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Check if logging is enabled for a specific component and type
|
|
84
|
+
*/
|
|
85
|
+
shouldLog(level, component, type) {
|
|
86
|
+
// Master switch
|
|
87
|
+
if (!this.config?.enabled)
|
|
88
|
+
return false;
|
|
89
|
+
// Silent mode
|
|
90
|
+
// if (this.config?.level === "silent") return false;
|
|
91
|
+
// Always show errors unless silent
|
|
92
|
+
if (level === "error" &&
|
|
93
|
+
this.config?.level &&
|
|
94
|
+
this.config?.level !== "silent")
|
|
95
|
+
return true;
|
|
96
|
+
// Check log level hierarchy
|
|
97
|
+
const levels = [
|
|
98
|
+
"error",
|
|
99
|
+
"warn",
|
|
100
|
+
"info",
|
|
101
|
+
"debug",
|
|
102
|
+
"verbose",
|
|
103
|
+
];
|
|
104
|
+
const currentLevelIndex = levels.indexOf(this.config?.level);
|
|
105
|
+
const messageLevelIndex = levels.indexOf(level);
|
|
106
|
+
if (messageLevelIndex > currentLevelIndex)
|
|
107
|
+
return false;
|
|
108
|
+
// Check component-specific settings
|
|
109
|
+
if (this.config?.components &&
|
|
110
|
+
this.config?.components[component] === false)
|
|
111
|
+
return false;
|
|
112
|
+
// Check type-specific settings
|
|
113
|
+
if (type && this.config?.types && this.config?.types[type] === false)
|
|
114
|
+
return false;
|
|
115
|
+
return true;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Format log message
|
|
119
|
+
*/
|
|
120
|
+
formatMessage(level, component, message) {
|
|
121
|
+
const colors = {
|
|
122
|
+
error: "\x1b[31m", // Red
|
|
123
|
+
warn: "\x1b[33m", // Yellow
|
|
124
|
+
info: "\x1b[36m", // Cyan
|
|
125
|
+
debug: "\x1b[35m", // Magenta
|
|
126
|
+
verbose: "\x1b[37m", // White
|
|
127
|
+
reset: "\x1b[0m", // Reset
|
|
128
|
+
sys: "\x1b[32m",
|
|
129
|
+
};
|
|
130
|
+
let formatted = message;
|
|
131
|
+
if (this.config?.format?.prefix && !this.config?.format?.compact) {
|
|
132
|
+
const prefix = `[${component === "server"
|
|
133
|
+
? "SYSTEM".toUpperCase()
|
|
134
|
+
: component.toUpperCase()}]`;
|
|
135
|
+
if (level === "silent") {
|
|
136
|
+
formatted = `${prefix} ${message}`;
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
if (component === "server") {
|
|
140
|
+
const color = colors[level] || colors.info;
|
|
141
|
+
formatted = `${colors.sys}${prefix}${colors.reset} ${color}${message}${colors.reset}`;
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
formatted = `${prefix} ${message}`;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
if (this.config?.format?.timestamps) {
|
|
149
|
+
const timestamp = new Date().toISOString();
|
|
150
|
+
formatted = `${timestamp} ${formatted}`;
|
|
151
|
+
}
|
|
152
|
+
if (this.config?.format?.colors &&
|
|
153
|
+
level !== "silent" &&
|
|
154
|
+
typeof process !== "undefined" &&
|
|
155
|
+
process.stdout?.isTTY) {
|
|
156
|
+
const color = colors[level] || colors.info;
|
|
157
|
+
formatted = `${color}${formatted}${colors.reset}`;
|
|
158
|
+
}
|
|
159
|
+
return formatted;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Log a message
|
|
163
|
+
*/
|
|
164
|
+
log(level, component, type, message, ...args) {
|
|
165
|
+
if (!this.shouldLog(level, component, type))
|
|
166
|
+
return;
|
|
167
|
+
if (this.config?.customLogger) {
|
|
168
|
+
this.config?.customLogger(level, component, message, ...args);
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
const formatted = this.formatMessage(level, component, message);
|
|
172
|
+
switch (level) {
|
|
173
|
+
case "error":
|
|
174
|
+
console.error(formatted, ...args);
|
|
175
|
+
break;
|
|
176
|
+
case "warn":
|
|
177
|
+
console.warn(formatted, ...args);
|
|
178
|
+
break;
|
|
179
|
+
default:
|
|
180
|
+
console.log(formatted, ...args);
|
|
181
|
+
break;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
// Public logging methods
|
|
185
|
+
error(component, message, ...args) {
|
|
186
|
+
this.log("error", component, "errors", message, ...args);
|
|
187
|
+
}
|
|
188
|
+
warn(component, message, ...args) {
|
|
189
|
+
this.log("warn", component, "warnings", message, ...args);
|
|
190
|
+
}
|
|
191
|
+
info(component, message, ...args) {
|
|
192
|
+
this.log("info", component, undefined, message, ...args);
|
|
193
|
+
}
|
|
194
|
+
debug(component, message, ...args) {
|
|
195
|
+
this.log("debug", component, "debug", message, ...args);
|
|
196
|
+
}
|
|
197
|
+
startup(component, message, ...args) {
|
|
198
|
+
this.log("info", component, "startup", message, ...args);
|
|
199
|
+
}
|
|
200
|
+
performance(component, message, ...args) {
|
|
201
|
+
this.log("info", component, "performance", message, ...args);
|
|
202
|
+
}
|
|
203
|
+
hotReload(component, message, ...args) {
|
|
204
|
+
this.log("info", component, "hotReload", message, ...args);
|
|
205
|
+
}
|
|
206
|
+
portSwitching(component, message, ...args) {
|
|
207
|
+
this.log("info", component, "portSwitching", message, ...args);
|
|
208
|
+
}
|
|
209
|
+
securityWarning(message, ...args) {
|
|
210
|
+
this.log("warn", "security", "warnings", message, ...args);
|
|
211
|
+
}
|
|
212
|
+
// Utility methods
|
|
213
|
+
isEnabled() {
|
|
214
|
+
return this.config?.enabled || false;
|
|
215
|
+
}
|
|
216
|
+
getLevel() {
|
|
217
|
+
return this.config?.level || "info";
|
|
218
|
+
}
|
|
219
|
+
isComponentEnabled(component) {
|
|
220
|
+
return this.config?.components?.[component] !== false;
|
|
221
|
+
}
|
|
222
|
+
isTypeEnabled(type) {
|
|
223
|
+
return this.config?.types?.[type] !== false;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Global logger instance
|
|
228
|
+
*/
|
|
229
|
+
export const logger = Logger.getInstance();
|
|
230
|
+
/**
|
|
231
|
+
* Initialize logger with configuration
|
|
232
|
+
*/
|
|
233
|
+
export function initializeLogger(config) {
|
|
234
|
+
return Logger.getInstance(config);
|
|
235
|
+
}
|
|
236
|
+
//# sourceMappingURL=Logger.js.map
|
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Real CPU-Intensive Task Implementations
|
|
3
|
+
* These replace the mock implementations with actual CPU-intensive operations
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
const crypto = require("crypto");
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Real CPU-intensive data processing tasks
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Prime number calculation - CPU intensive
|
|
14
|
+
*/
|
|
15
|
+
function calculatePrimes(limit) {
|
|
16
|
+
const primes = [];
|
|
17
|
+
const sieve = new Array(limit + 1).fill(true);
|
|
18
|
+
sieve[0] = sieve[1] = false;
|
|
19
|
+
|
|
20
|
+
for (let i = 2; i * i <= limit; i++) {
|
|
21
|
+
if (sieve[i]) {
|
|
22
|
+
for (let j = i * i; j <= limit; j += i) {
|
|
23
|
+
sieve[j] = false;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
for (let i = 2; i <= limit; i++) {
|
|
29
|
+
if (sieve[i]) primes.push(i);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return primes;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Fibonacci sequence calculation - CPU intensive
|
|
37
|
+
*/
|
|
38
|
+
function calculateFibonacci(n) {
|
|
39
|
+
if (n <= 1) return n;
|
|
40
|
+
|
|
41
|
+
let a = 0,
|
|
42
|
+
b = 1;
|
|
43
|
+
const sequence = [a, b];
|
|
44
|
+
|
|
45
|
+
for (let i = 2; i < n; i++) {
|
|
46
|
+
const next = a + b;
|
|
47
|
+
sequence.push(next);
|
|
48
|
+
a = b;
|
|
49
|
+
b = next;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return sequence;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Matrix multiplication - CPU intensive
|
|
57
|
+
*/
|
|
58
|
+
function multiplyMatrices(matrixA, matrixB) {
|
|
59
|
+
const rowsA = matrixA.length;
|
|
60
|
+
const colsA = matrixA[0].length;
|
|
61
|
+
const rowsB = matrixB.length;
|
|
62
|
+
const colsB = matrixB[0].length;
|
|
63
|
+
|
|
64
|
+
if (colsA !== rowsB) {
|
|
65
|
+
throw new Error("Matrix dimensions don't match for multiplication");
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const result = Array(rowsA)
|
|
69
|
+
.fill()
|
|
70
|
+
.map(() => Array(colsB).fill(0));
|
|
71
|
+
|
|
72
|
+
for (let i = 0; i < rowsA; i++) {
|
|
73
|
+
for (let j = 0; j < colsB; j++) {
|
|
74
|
+
for (let k = 0; k < colsA; k++) {
|
|
75
|
+
result[i][j] += matrixA[i][k] * matrixB[k][j];
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return result;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Hash computation - CPU intensive
|
|
85
|
+
*/
|
|
86
|
+
function computeHashes(data, iterations = 10000) {
|
|
87
|
+
let hash = crypto
|
|
88
|
+
.createHash("sha256")
|
|
89
|
+
.update(JSON.stringify(data))
|
|
90
|
+
.digest("hex");
|
|
91
|
+
|
|
92
|
+
for (let i = 0; i < iterations; i++) {
|
|
93
|
+
hash = crypto.createHash("sha256").update(hash).digest("hex");
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return hash;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Data sorting and analysis - CPU intensive
|
|
101
|
+
*/
|
|
102
|
+
function analyzeDataset(dataset) {
|
|
103
|
+
if (!Array.isArray(dataset) || dataset.length === 0) {
|
|
104
|
+
return { error: "Invalid dataset" };
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// Sort the dataset
|
|
108
|
+
const sorted = [...dataset].sort((a, b) => a - b);
|
|
109
|
+
|
|
110
|
+
// Calculate statistics
|
|
111
|
+
const sum = dataset.reduce((acc, val) => acc + val, 0);
|
|
112
|
+
const mean = sum / dataset.length;
|
|
113
|
+
const median =
|
|
114
|
+
sorted.length % 2 === 0
|
|
115
|
+
? (sorted[sorted.length / 2 - 1] + sorted[sorted.length / 2]) / 2
|
|
116
|
+
: sorted[Math.floor(sorted.length / 2)];
|
|
117
|
+
|
|
118
|
+
// Calculate standard deviation
|
|
119
|
+
const variance =
|
|
120
|
+
dataset.reduce((acc, val) => acc + Math.pow(val - mean, 2), 0) /
|
|
121
|
+
dataset.length;
|
|
122
|
+
const stdDev = Math.sqrt(variance);
|
|
123
|
+
|
|
124
|
+
return {
|
|
125
|
+
count: dataset.length,
|
|
126
|
+
sum,
|
|
127
|
+
mean,
|
|
128
|
+
median,
|
|
129
|
+
min: sorted[0],
|
|
130
|
+
max: sorted[sorted.length - 1],
|
|
131
|
+
standardDeviation: stdDev,
|
|
132
|
+
variance,
|
|
133
|
+
sorted: sorted.slice(0, 100), // Return first 100 sorted values
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Text processing and analysis - CPU intensive
|
|
139
|
+
*/
|
|
140
|
+
function analyzeText(text) {
|
|
141
|
+
if (typeof text !== "string") {
|
|
142
|
+
return { error: "Invalid text input" };
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
const words = text.toLowerCase().match(/\b\w+\b/g) || [];
|
|
146
|
+
const wordCount = {};
|
|
147
|
+
const charCount = {};
|
|
148
|
+
|
|
149
|
+
// Count words
|
|
150
|
+
words.forEach((word) => {
|
|
151
|
+
wordCount[word] = (wordCount[word] || 0) + 1;
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
// Count characters
|
|
155
|
+
for (const char of text.toLowerCase()) {
|
|
156
|
+
if (char.match(/[a-z]/)) {
|
|
157
|
+
charCount[char] = (charCount[char] || 0) + 1;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// Find most common words
|
|
162
|
+
const sortedWords = Object.entries(wordCount)
|
|
163
|
+
.sort(([, a], [, b]) => b - a)
|
|
164
|
+
.slice(0, 10);
|
|
165
|
+
|
|
166
|
+
return {
|
|
167
|
+
totalWords: words.length,
|
|
168
|
+
uniqueWords: Object.keys(wordCount).length,
|
|
169
|
+
totalCharacters: text.length,
|
|
170
|
+
alphabeticCharacters: Object.values(charCount).reduce(
|
|
171
|
+
(a, b) => a + b,
|
|
172
|
+
0
|
|
173
|
+
),
|
|
174
|
+
mostCommonWords: sortedWords,
|
|
175
|
+
averageWordLength:
|
|
176
|
+
words.reduce((acc, word) => acc + word.length, 0) / words.length,
|
|
177
|
+
wordFrequency: wordCount,
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Image processing simulation - CPU intensive
|
|
183
|
+
*/
|
|
184
|
+
function processImageData(imageData) {
|
|
185
|
+
if (
|
|
186
|
+
!imageData ||
|
|
187
|
+
!imageData.width ||
|
|
188
|
+
!imageData.height ||
|
|
189
|
+
!imageData.pixels
|
|
190
|
+
) {
|
|
191
|
+
return { error: "Invalid image data" };
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
const { width, height, pixels } = imageData;
|
|
195
|
+
const processedPixels = [];
|
|
196
|
+
|
|
197
|
+
// Apply a simple blur filter (CPU intensive)
|
|
198
|
+
for (let y = 1; y < height - 1; y++) {
|
|
199
|
+
for (let x = 1; x < width - 1; x++) {
|
|
200
|
+
const index = y * width + x;
|
|
201
|
+
|
|
202
|
+
// Get surrounding pixels
|
|
203
|
+
const surrounding = [
|
|
204
|
+
pixels[index - width - 1],
|
|
205
|
+
pixels[index - width],
|
|
206
|
+
pixels[index - width + 1],
|
|
207
|
+
pixels[index - 1],
|
|
208
|
+
pixels[index],
|
|
209
|
+
pixels[index + 1],
|
|
210
|
+
pixels[index + width - 1],
|
|
211
|
+
pixels[index + width],
|
|
212
|
+
pixels[index + width + 1],
|
|
213
|
+
];
|
|
214
|
+
|
|
215
|
+
// Calculate average (blur effect)
|
|
216
|
+
const average =
|
|
217
|
+
surrounding.reduce((sum, pixel) => sum + pixel, 0) / 9;
|
|
218
|
+
processedPixels[index] = Math.round(average);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
return {
|
|
223
|
+
width,
|
|
224
|
+
height,
|
|
225
|
+
originalPixelCount: pixels.length,
|
|
226
|
+
processedPixelCount: processedPixels.length,
|
|
227
|
+
processingType: "blur_filter",
|
|
228
|
+
checksum: crypto
|
|
229
|
+
.createHash("md5")
|
|
230
|
+
.update(processedPixels.join(","))
|
|
231
|
+
.digest("hex"),
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* Cryptographic operations - CPU intensive
|
|
237
|
+
*/
|
|
238
|
+
function performCryptographicOperations(data, operations = 1000) {
|
|
239
|
+
const results = {
|
|
240
|
+
hashes: [],
|
|
241
|
+
encryptions: [],
|
|
242
|
+
signatures: [],
|
|
243
|
+
};
|
|
244
|
+
|
|
245
|
+
const dataString = JSON.stringify(data);
|
|
246
|
+
|
|
247
|
+
// Generate multiple hashes
|
|
248
|
+
for (let i = 0; i < operations; i++) {
|
|
249
|
+
const hash = crypto
|
|
250
|
+
.createHash("sha256")
|
|
251
|
+
.update(dataString + i)
|
|
252
|
+
.digest("hex");
|
|
253
|
+
results.hashes.push(hash);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
// Perform encryption operations
|
|
257
|
+
for (let i = 0; i < Math.min(operations, 100); i++) {
|
|
258
|
+
const key = crypto.randomBytes(32);
|
|
259
|
+
const iv = crypto.randomBytes(16);
|
|
260
|
+
const cipher = crypto.createCipheriv("aes-256-cbc", key, iv);
|
|
261
|
+
|
|
262
|
+
let encrypted = cipher.update(dataString, "utf8", "hex");
|
|
263
|
+
encrypted += cipher.final("hex");
|
|
264
|
+
|
|
265
|
+
results.encryptions.push({
|
|
266
|
+
encrypted: encrypted.substring(0, 32), // Store only first 32 chars
|
|
267
|
+
keyHash: crypto
|
|
268
|
+
.createHash("sha256")
|
|
269
|
+
.update(key)
|
|
270
|
+
.digest("hex")
|
|
271
|
+
.substring(0, 16),
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
return {
|
|
276
|
+
operationsPerformed: operations,
|
|
277
|
+
hashCount: results.hashes.length,
|
|
278
|
+
encryptionCount: results.encryptions.length,
|
|
279
|
+
totalProcessingTime: Date.now(),
|
|
280
|
+
finalHash: results.hashes[results.hashes.length - 1],
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
module.exports = {
|
|
285
|
+
calculatePrimes,
|
|
286
|
+
calculateFibonacci,
|
|
287
|
+
multiplyMatrices,
|
|
288
|
+
computeHashes,
|
|
289
|
+
analyzeDataset,
|
|
290
|
+
analyzeText,
|
|
291
|
+
processImageData,
|
|
292
|
+
performCryptographicOperations,
|
|
293
|
+
};
|
|
294
|
+
|