xypriss 1.3.8 → 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.
Files changed (221) hide show
  1. package/README.md +232 -254
  2. package/dist/cjs/mods/security/src/algorithms/hash-algorithms.js +10 -0
  3. package/dist/cjs/mods/security/src/algorithms/hash-algorithms.js.map +1 -1
  4. package/dist/cjs/mods/security/src/components/cache/cacheSys.utils.js +10 -0
  5. package/dist/cjs/mods/security/src/components/cache/cacheSys.utils.js.map +1 -1
  6. package/dist/cjs/mods/security/src/components/cache/index.js +10 -74
  7. package/dist/cjs/mods/security/src/components/cache/index.js.map +1 -1
  8. package/dist/cjs/mods/security/src/components/fortified-function/index.js +9 -0
  9. package/dist/cjs/mods/security/src/components/fortified-function/index.js.map +1 -1
  10. package/dist/cjs/mods/security/src/components/fortified-function/security/security-handler.js +10 -0
  11. package/dist/cjs/mods/security/src/components/fortified-function/security/security-handler.js.map +1 -1
  12. package/dist/cjs/mods/security/src/core/crypto.js +14 -0
  13. package/dist/cjs/mods/security/src/core/crypto.js.map +1 -1
  14. package/dist/cjs/mods/security/src/index.js +10 -4
  15. package/dist/cjs/mods/security/src/index.js.map +1 -1
  16. package/dist/cjs/shared/logger/Logger.js +374 -29
  17. package/dist/cjs/shared/logger/Logger.js.map +1 -1
  18. package/dist/cjs/src/cluster/bun-cluster-manager.js +91 -1
  19. package/dist/cjs/src/cluster/bun-cluster-manager.js.map +1 -1
  20. package/dist/cjs/src/cluster/cluster-manager.js +15 -3
  21. package/dist/cjs/src/cluster/cluster-manager.js.map +1 -1
  22. package/dist/cjs/src/cluster/modules/AutoScaler.js +4 -4
  23. package/dist/cjs/src/cluster/modules/AutoScaler.js.map +1 -1
  24. package/dist/cjs/src/cluster/modules/CrossPlatformMemory.js +2 -2
  25. package/dist/cjs/src/cluster/modules/CrossPlatformMemory.js.map +1 -1
  26. package/dist/cjs/src/cluster/modules/EventLoopMonitor.js +270 -0
  27. package/dist/cjs/src/cluster/modules/EventLoopMonitor.js.map +1 -0
  28. package/dist/cjs/src/cluster/modules/GCStatsTracker.js +200 -0
  29. package/dist/cjs/src/cluster/modules/GCStatsTracker.js.map +1 -0
  30. package/dist/cjs/src/cluster/modules/HeapStatsCollector.js +111 -0
  31. package/dist/cjs/src/cluster/modules/HeapStatsCollector.js.map +1 -0
  32. package/dist/cjs/src/cluster/modules/NetworkTracker.js +162 -0
  33. package/dist/cjs/src/cluster/modules/NetworkTracker.js.map +1 -0
  34. package/dist/cjs/src/cluster/modules/ThroughputCalculator.js +186 -0
  35. package/dist/cjs/src/cluster/modules/ThroughputCalculator.js.map +1 -0
  36. package/dist/cjs/src/cluster/modules/WorkerManager.js +14 -15
  37. package/dist/cjs/src/cluster/modules/WorkerManager.js.map +1 -1
  38. package/dist/cjs/src/cluster/modules/{LoadBalancer.js → strategy/LoadBalancer.js} +1 -1
  39. package/dist/cjs/src/cluster/modules/strategy/LoadBalancer.js.map +1 -0
  40. package/dist/cjs/src/index.js +55 -61
  41. package/dist/cjs/src/index.js.map +1 -1
  42. package/dist/cjs/src/middleware/XyPrissMiddlewareAPI.js +281 -0
  43. package/dist/cjs/src/middleware/XyPrissMiddlewareAPI.js.map +1 -0
  44. package/dist/cjs/src/middleware/built-in/index.js +325 -0
  45. package/dist/cjs/src/middleware/built-in/index.js.map +1 -0
  46. package/dist/cjs/src/middleware/built-in/sqlInjection.js +335 -0
  47. package/dist/cjs/src/middleware/built-in/sqlInjection.js.map +1 -0
  48. package/dist/cjs/src/middleware/safe-json-middleware.js +1 -1
  49. package/dist/cjs/src/middleware/safe-json-middleware.js.map +1 -1
  50. package/dist/cjs/src/middleware/security-middleware.js +447 -332
  51. package/dist/cjs/src/middleware/security-middleware.js.map +1 -1
  52. package/dist/cjs/src/plugins/modules/builtin/ResponseTimePlugin.js +1 -1
  53. package/dist/cjs/src/plugins/modules/builtin/ResponseTimePlugin.js.map +1 -1
  54. package/dist/cjs/src/plugins/modules/index.js +9 -3
  55. package/dist/cjs/src/plugins/modules/index.js.map +1 -1
  56. package/dist/cjs/src/quick-start.js +0 -4
  57. package/dist/cjs/src/quick-start.js.map +1 -1
  58. package/dist/cjs/src/server/FastServer.js +94 -412
  59. package/dist/cjs/src/server/FastServer.js.map +1 -1
  60. package/dist/cjs/src/server/ServerFactory.js +69 -64
  61. package/dist/cjs/src/server/ServerFactory.js.map +1 -1
  62. package/dist/cjs/src/server/components/fastapi/ClusterManagerComponent.js +31 -5
  63. package/dist/cjs/src/server/components/fastapi/ClusterManagerComponent.js.map +1 -1
  64. package/dist/cjs/src/server/components/fastapi/PerformanceManager.js +1 -1
  65. package/dist/cjs/src/server/components/fastapi/PerformanceManager.js.map +1 -1
  66. package/dist/cjs/src/server/components/fastapi/RouteManager.js +0 -82
  67. package/dist/cjs/src/server/components/fastapi/RouteManager.js.map +1 -1
  68. package/dist/cjs/src/server/components/fastapi/WorkerPoolComponent.js +206 -0
  69. package/dist/cjs/src/server/components/fastapi/WorkerPoolComponent.js.map +1 -0
  70. package/dist/cjs/src/server/components/fastapi/console/ConsoleInterceptor.js +3 -28
  71. package/dist/cjs/src/server/components/fastapi/console/ConsoleInterceptor.js.map +1 -1
  72. package/dist/cjs/src/server/components/fastapi/modules/UFRP/WorkerPoolManager.js +265 -0
  73. package/dist/cjs/src/server/components/fastapi/modules/UFRP/WorkerPoolManager.js.map +1 -0
  74. package/dist/cjs/src/server/components/fastapi/modules/UFRP/workers/Logger.js +236 -0
  75. package/dist/cjs/src/server/components/fastapi/modules/UFRP/workers/cpu-tasks.js +294 -0
  76. package/dist/cjs/src/server/components/fastapi/modules/UFRP/workers/enhanced-cpu-worker.js +433 -0
  77. package/dist/cjs/src/server/components/fastapi/modules/UFRP/workers/io-worker.js +1615 -0
  78. package/dist/cjs/src/server/components/lifecycle/ServerLifecycleManager.js +503 -0
  79. package/dist/cjs/src/server/components/lifecycle/ServerLifecycleManager.js.map +1 -0
  80. package/dist/cjs/src/server/const/default.js +23 -17
  81. package/dist/cjs/src/server/const/default.js.map +1 -1
  82. package/dist/cjs/src/server/core/HttpServer.js +500 -0
  83. package/dist/cjs/src/server/core/HttpServer.js.map +1 -0
  84. package/dist/cjs/src/server/core/XyprissApp.js +679 -0
  85. package/dist/cjs/src/server/core/XyprissApp.js.map +1 -0
  86. package/dist/cjs/src/server/handlers/NotFoundHandler.js +1 -1
  87. package/dist/cjs/src/server/handlers/NotFoundHandler.js.map +1 -1
  88. package/dist/cjs/src/server/middleware/MiddlewareManager.js +191 -0
  89. package/dist/cjs/src/server/middleware/MiddlewareManager.js.map +1 -0
  90. package/dist/cjs/src/server/routing/Router.js +341 -0
  91. package/dist/cjs/src/server/routing/Router.js.map +1 -0
  92. package/dist/cjs/src/server/utils/PortManager.js +1 -0
  93. package/dist/cjs/src/server/utils/PortManager.js.map +1 -1
  94. package/dist/cjs/src/server/utils/forceClosePort.js +294 -88
  95. package/dist/cjs/src/server/utils/forceClosePort.js.map +1 -1
  96. package/dist/esm/mods/security/src/algorithms/hash-algorithms.js +10 -0
  97. package/dist/esm/mods/security/src/algorithms/hash-algorithms.js.map +1 -1
  98. package/dist/esm/mods/security/src/components/cache/cacheSys.utils.js +10 -0
  99. package/dist/esm/mods/security/src/components/cache/cacheSys.utils.js.map +1 -1
  100. package/dist/esm/mods/security/src/components/cache/index.js +11 -72
  101. package/dist/esm/mods/security/src/components/cache/index.js.map +1 -1
  102. package/dist/esm/mods/security/src/components/fortified-function/index.js +9 -0
  103. package/dist/esm/mods/security/src/components/fortified-function/index.js.map +1 -1
  104. package/dist/esm/mods/security/src/components/fortified-function/security/security-handler.js +10 -0
  105. package/dist/esm/mods/security/src/components/fortified-function/security/security-handler.js.map +1 -1
  106. package/dist/esm/mods/security/src/core/crypto.js +14 -0
  107. package/dist/esm/mods/security/src/core/crypto.js.map +1 -1
  108. package/dist/esm/mods/security/src/index.js +11 -2
  109. package/dist/esm/mods/security/src/index.js.map +1 -1
  110. package/dist/esm/shared/logger/Logger.js +374 -29
  111. package/dist/esm/shared/logger/Logger.js.map +1 -1
  112. package/dist/esm/src/cluster/bun-cluster-manager.js +91 -1
  113. package/dist/esm/src/cluster/bun-cluster-manager.js.map +1 -1
  114. package/dist/esm/src/cluster/cluster-manager.js +15 -3
  115. package/dist/esm/src/cluster/cluster-manager.js.map +1 -1
  116. package/dist/esm/src/cluster/modules/AutoScaler.js +4 -4
  117. package/dist/esm/src/cluster/modules/AutoScaler.js.map +1 -1
  118. package/dist/esm/src/cluster/modules/CrossPlatformMemory.js +2 -2
  119. package/dist/esm/src/cluster/modules/CrossPlatformMemory.js.map +1 -1
  120. package/dist/esm/src/cluster/modules/EventLoopMonitor.js +268 -0
  121. package/dist/esm/src/cluster/modules/EventLoopMonitor.js.map +1 -0
  122. package/dist/esm/src/cluster/modules/GCStatsTracker.js +198 -0
  123. package/dist/esm/src/cluster/modules/GCStatsTracker.js.map +1 -0
  124. package/dist/esm/src/cluster/modules/HeapStatsCollector.js +109 -0
  125. package/dist/esm/src/cluster/modules/HeapStatsCollector.js.map +1 -0
  126. package/dist/esm/src/cluster/modules/NetworkTracker.js +160 -0
  127. package/dist/esm/src/cluster/modules/NetworkTracker.js.map +1 -0
  128. package/dist/esm/src/cluster/modules/ThroughputCalculator.js +184 -0
  129. package/dist/esm/src/cluster/modules/ThroughputCalculator.js.map +1 -0
  130. package/dist/esm/src/cluster/modules/WorkerManager.js +14 -14
  131. package/dist/esm/src/cluster/modules/WorkerManager.js.map +1 -1
  132. package/dist/esm/src/cluster/modules/{LoadBalancer.js → strategy/LoadBalancer.js} +1 -1
  133. package/dist/esm/src/cluster/modules/strategy/LoadBalancer.js.map +1 -0
  134. package/dist/esm/src/index.js +41 -11
  135. package/dist/esm/src/index.js.map +1 -1
  136. package/dist/esm/src/middleware/XyPrissMiddlewareAPI.js +279 -0
  137. package/dist/esm/src/middleware/XyPrissMiddlewareAPI.js.map +1 -0
  138. package/dist/esm/src/middleware/built-in/index.js +323 -0
  139. package/dist/esm/src/middleware/built-in/index.js.map +1 -0
  140. package/dist/esm/src/middleware/built-in/sqlInjection.js +333 -0
  141. package/dist/esm/src/middleware/built-in/sqlInjection.js.map +1 -0
  142. package/dist/esm/src/middleware/safe-json-middleware.js +1 -1
  143. package/dist/esm/src/middleware/safe-json-middleware.js.map +1 -1
  144. package/dist/esm/src/middleware/security-middleware.js +447 -332
  145. package/dist/esm/src/middleware/security-middleware.js.map +1 -1
  146. package/dist/esm/src/plugins/modules/builtin/ResponseTimePlugin.js +1 -1
  147. package/dist/esm/src/plugins/modules/builtin/ResponseTimePlugin.js.map +1 -1
  148. package/dist/esm/src/plugins/modules/index.js +9 -3
  149. package/dist/esm/src/plugins/modules/index.js.map +1 -1
  150. package/dist/esm/src/quick-start.js +0 -4
  151. package/dist/esm/src/quick-start.js.map +1 -1
  152. package/dist/esm/src/server/FastServer.js +94 -412
  153. package/dist/esm/src/server/FastServer.js.map +1 -1
  154. package/dist/esm/src/server/ServerFactory.js +70 -61
  155. package/dist/esm/src/server/ServerFactory.js.map +1 -1
  156. package/dist/esm/src/server/components/fastapi/ClusterManagerComponent.js +31 -5
  157. package/dist/esm/src/server/components/fastapi/ClusterManagerComponent.js.map +1 -1
  158. package/dist/esm/src/server/components/fastapi/PerformanceManager.js +1 -1
  159. package/dist/esm/src/server/components/fastapi/PerformanceManager.js.map +1 -1
  160. package/dist/esm/src/server/components/fastapi/RouteManager.js +0 -82
  161. package/dist/esm/src/server/components/fastapi/RouteManager.js.map +1 -1
  162. package/dist/esm/src/server/components/fastapi/WorkerPoolComponent.js +204 -0
  163. package/dist/esm/src/server/components/fastapi/WorkerPoolComponent.js.map +1 -0
  164. package/dist/esm/src/server/components/fastapi/console/ConsoleInterceptor.js +2 -27
  165. package/dist/esm/src/server/components/fastapi/console/ConsoleInterceptor.js.map +1 -1
  166. package/dist/esm/src/server/components/fastapi/modules/UFRP/WorkerPoolManager.js +263 -0
  167. package/dist/esm/src/server/components/fastapi/modules/UFRP/WorkerPoolManager.js.map +1 -0
  168. package/dist/esm/src/server/components/fastapi/modules/UFRP/workers/Logger.js +236 -0
  169. package/dist/esm/src/server/components/fastapi/modules/UFRP/workers/cpu-tasks.js +294 -0
  170. package/dist/esm/src/server/components/fastapi/modules/UFRP/workers/enhanced-cpu-worker.js +433 -0
  171. package/dist/esm/src/server/components/fastapi/modules/UFRP/workers/io-worker.js +1615 -0
  172. package/dist/esm/src/server/components/lifecycle/ServerLifecycleManager.js +501 -0
  173. package/dist/esm/src/server/components/lifecycle/ServerLifecycleManager.js.map +1 -0
  174. package/dist/esm/src/server/const/default.js +23 -17
  175. package/dist/esm/src/server/const/default.js.map +1 -1
  176. package/dist/esm/src/server/core/HttpServer.js +498 -0
  177. package/dist/esm/src/server/core/HttpServer.js.map +1 -0
  178. package/dist/esm/src/server/core/XyprissApp.js +677 -0
  179. package/dist/esm/src/server/core/XyprissApp.js.map +1 -0
  180. package/dist/esm/src/server/handlers/NotFoundHandler.js +1 -1
  181. package/dist/esm/src/server/handlers/NotFoundHandler.js.map +1 -1
  182. package/dist/esm/src/server/middleware/MiddlewareManager.js +189 -0
  183. package/dist/esm/src/server/middleware/MiddlewareManager.js.map +1 -0
  184. package/dist/esm/src/server/routing/Router.js +339 -0
  185. package/dist/esm/src/server/routing/Router.js.map +1 -0
  186. package/dist/esm/src/server/utils/PortManager.js +1 -0
  187. package/dist/esm/src/server/utils/PortManager.js.map +1 -1
  188. package/dist/esm/src/server/utils/forceClosePort.js +294 -88
  189. package/dist/esm/src/server/utils/forceClosePort.js.map +1 -1
  190. package/dist/index.d.ts +3363 -5311
  191. package/package.json +39 -28
  192. package/dist/cjs/src/cluster/index.js +0 -361
  193. package/dist/cjs/src/cluster/index.js.map +0 -1
  194. package/dist/cjs/src/cluster/modules/ClusterFactory.js +0 -539
  195. package/dist/cjs/src/cluster/modules/ClusterFactory.js.map +0 -1
  196. package/dist/cjs/src/cluster/modules/LoadBalancer.js.map +0 -1
  197. package/dist/cjs/src/server/components/fastapi/UltraFastRequestProcessor.js +0 -668
  198. package/dist/cjs/src/server/components/fastapi/UltraFastRequestProcessor.js.map +0 -1
  199. package/dist/cjs/src/server/components/fastapi/middlewares/MiddlewareAPI.js +0 -347
  200. package/dist/cjs/src/server/components/fastapi/middlewares/MiddlewareAPI.js.map +0 -1
  201. package/dist/cjs/src/server/components/fastapi/middlewares/MiddlewareMethodsManager.js +0 -204
  202. package/dist/cjs/src/server/components/fastapi/middlewares/MiddlewareMethodsManager.js.map +0 -1
  203. package/dist/cjs/src/server/components/fastapi/middlewares/middlewareManager.js +0 -953
  204. package/dist/cjs/src/server/components/fastapi/middlewares/middlewareManager.js.map +0 -1
  205. package/dist/cjs/src/server/components/fastapi/modules/UFRP/WorkerPool.js +0 -56
  206. package/dist/cjs/src/server/components/fastapi/modules/UFRP/WorkerPool.js.map +0 -1
  207. package/dist/esm/src/cluster/index.js +0 -339
  208. package/dist/esm/src/cluster/index.js.map +0 -1
  209. package/dist/esm/src/cluster/modules/ClusterFactory.js +0 -511
  210. package/dist/esm/src/cluster/modules/ClusterFactory.js.map +0 -1
  211. package/dist/esm/src/cluster/modules/LoadBalancer.js.map +0 -1
  212. package/dist/esm/src/server/components/fastapi/UltraFastRequestProcessor.js +0 -647
  213. package/dist/esm/src/server/components/fastapi/UltraFastRequestProcessor.js.map +0 -1
  214. package/dist/esm/src/server/components/fastapi/middlewares/MiddlewareAPI.js +0 -345
  215. package/dist/esm/src/server/components/fastapi/middlewares/MiddlewareAPI.js.map +0 -1
  216. package/dist/esm/src/server/components/fastapi/middlewares/MiddlewareMethodsManager.js +0 -202
  217. package/dist/esm/src/server/components/fastapi/middlewares/MiddlewareMethodsManager.js.map +0 -1
  218. package/dist/esm/src/server/components/fastapi/middlewares/middlewareManager.js +0 -951
  219. package/dist/esm/src/server/components/fastapi/middlewares/middlewareManager.js.map +0 -1
  220. package/dist/esm/src/server/components/fastapi/modules/UFRP/WorkerPool.js +0 -54
  221. package/dist/esm/src/server/components/fastapi/modules/UFRP/WorkerPool.js.map +0 -1
@@ -0,0 +1,433 @@
1
+ /**
2
+ * Enhanced CPU Worker with Real Task Implementations
3
+ * Replaces mock implementations with actual CPU-intensive operations
4
+ */
5
+
6
+ const {
7
+ Worker,
8
+ isMainThread,
9
+ parentPort,
10
+ workerData,
11
+ } = require("worker_threads");
12
+ const os = require("os");
13
+ const crypto = require("crypto");
14
+
15
+ // Import real CPU-intensive task implementations
16
+ const {
17
+ calculatePrimes,
18
+ calculateFibonacci,
19
+ multiplyMatrices,
20
+ computeHashes,
21
+ analyzeDataset,
22
+ analyzeText,
23
+ processImageData,
24
+ performCryptographicOperations,
25
+ } = require("./cpu-tasks");
26
+
27
+ // Worker configuration
28
+ const WORKER_CONFIG = {
29
+ maxExecutionTime: 30000,
30
+ maxMemoryUsage: 512 * 1024 * 1024, // 512MB
31
+ enableMetrics: true,
32
+ retryAttempts: 3,
33
+ retryDelay: 1000,
34
+ enableLogging: true,
35
+ debug: process.env.NODE_ENV === "development",
36
+ };
37
+
38
+ // Worker state
39
+ let isShuttingDown = false;
40
+ let activeTask = null;
41
+ const workerMetrics = {
42
+ tasksProcessed: 0,
43
+ tasksSucceeded: 0,
44
+ tasksFailed: 0,
45
+ totalExecutionTime: 0,
46
+ averageExecutionTime: 0,
47
+ memoryPeakUsage: 0,
48
+ startTime: Date.now(),
49
+ };
50
+
51
+ // Enhanced logging
52
+ function log(level, message, ...args) {
53
+ if (!WORKER_CONFIG.enableLogging) return;
54
+ const logger = require("./Logger").logger;
55
+ logger[level]("cpu-worker", message, ...args);
56
+ }
57
+
58
+ // System information
59
+ const systemInfo = {
60
+ cpus: os.cpus().length,
61
+ totalMemory: `${Math.round(os.totalmem() / 1024 / 1024)}MB`,
62
+ freeMemory: `${Math.round(os.freemem() / 1024 / 1024)}MB`,
63
+ platform: os.platform(),
64
+ arch: os.arch(),
65
+ };
66
+
67
+ log("debug", "CPU Worker initialized");
68
+ log("debug", "System info:", systemInfo);
69
+
70
+ // Resource monitoring
71
+ function checkResourceUsage() {
72
+ const memUsage = process.memoryUsage();
73
+ const cpuUsage = process.cpuUsage();
74
+
75
+ const usage = {
76
+ memory: {
77
+ heapUsed: memUsage.heapUsed,
78
+ heapTotal: memUsage.heapTotal,
79
+ external: memUsage.external,
80
+ rss: memUsage.rss,
81
+ },
82
+ cpu: {
83
+ user: cpuUsage.user,
84
+ system: cpuUsage.system,
85
+ },
86
+ uptime: process.uptime(),
87
+ };
88
+
89
+ // Update peak memory usage
90
+ if (usage.memory.heapUsed > workerMetrics.memoryPeakUsage) {
91
+ workerMetrics.memoryPeakUsage = usage.memory.heapUsed;
92
+ }
93
+
94
+ return usage;
95
+ }
96
+
97
+ // Enhanced task processing with real implementations
98
+ async function processTask(task) {
99
+ const { type, data } = task;
100
+
101
+ log("info", `Processing ${type} task with real implementation`);
102
+
103
+ switch (type) {
104
+ case "calculate":
105
+ return await processCalculationTask(data);
106
+ case "analyze":
107
+ return await processAnalysisTask(data);
108
+ case "crypto":
109
+ return await processCryptographicTask(data);
110
+ case "process":
111
+ return await processDataTask(data);
112
+ case "transform":
113
+ return await processTransformTask(data);
114
+ default:
115
+ throw new Error(`Unknown task type: ${type}`);
116
+ }
117
+ }
118
+
119
+ /**
120
+ * Real calculation tasks
121
+ */
122
+ async function processCalculationTask(data) {
123
+ const startTime = Date.now();
124
+
125
+ if (!data.operation) {
126
+ throw new Error("Calculation operation is required");
127
+ }
128
+
129
+ let result;
130
+
131
+ switch (data.operation) {
132
+ case "primes":
133
+ const limit = data.limit || 10000;
134
+ const primes = calculatePrimes(limit);
135
+ result = {
136
+ operation: "prime_calculation",
137
+ limit,
138
+ primesFound: primes.length,
139
+ largestPrime: primes[primes.length - 1],
140
+ samplePrimes: primes.slice(0, 10),
141
+ executionTime: Date.now() - startTime,
142
+ };
143
+ break;
144
+
145
+ case "fibonacci":
146
+ const n = data.n || 1000;
147
+ const sequence = calculateFibonacci(n);
148
+ result = {
149
+ operation: "fibonacci_sequence",
150
+ length: n,
151
+ lastValue: sequence[sequence.length - 1],
152
+ sampleValues: sequence.slice(0, 10),
153
+ executionTime: Date.now() - startTime,
154
+ };
155
+ break;
156
+
157
+ case "matrix":
158
+ if (!data.matrixA || !data.matrixB) {
159
+ throw new Error("Two matrices required for multiplication");
160
+ }
161
+ const product = multiplyMatrices(data.matrixA, data.matrixB);
162
+ result = {
163
+ operation: "matrix_multiplication",
164
+ resultDimensions: [product.length, product[0].length],
165
+ result: product,
166
+ executionTime: Date.now() - startTime,
167
+ };
168
+ break;
169
+
170
+ default:
171
+ throw new Error(`Unknown calculation operation: ${data.operation}`);
172
+ }
173
+
174
+ return result;
175
+ }
176
+
177
+ /**
178
+ * Real analysis tasks
179
+ */
180
+ async function processAnalysisTask(data) {
181
+ const startTime = Date.now();
182
+
183
+ if (!data.analysisType) {
184
+ throw new Error("Analysis type is required");
185
+ }
186
+
187
+ let result;
188
+
189
+ switch (data.analysisType) {
190
+ case "dataset":
191
+ const dataset = data.dataset || data.data?.dataset;
192
+ if (!dataset) {
193
+ throw new Error("Dataset is required for analysis");
194
+ }
195
+ const stats = analyzeDataset(dataset);
196
+ result = {
197
+ analysisType: "dataset_analysis",
198
+ statistics: stats,
199
+ executionTime: Date.now() - startTime,
200
+ };
201
+ break;
202
+
203
+ case "text":
204
+ const text = data.text || data.data?.text;
205
+ if (!text) {
206
+ throw new Error("Text is required for analysis");
207
+ }
208
+ const textStats = analyzeText(text);
209
+ result = {
210
+ analysisType: "text_analysis",
211
+ analysis: textStats,
212
+ executionTime: Date.now() - startTime,
213
+ };
214
+ break;
215
+
216
+ case "image":
217
+ if (!data.imageData) {
218
+ throw new Error("Image data is required for analysis");
219
+ }
220
+ const imageResult = processImageData(data.imageData);
221
+ result = {
222
+ analysisType: "image_processing",
223
+ processing: imageResult,
224
+ executionTime: Date.now() - startTime,
225
+ };
226
+ break;
227
+
228
+ default:
229
+ throw new Error(`Unknown analysis type: ${data.analysisType}`);
230
+ }
231
+
232
+ return result;
233
+ }
234
+
235
+ /**
236
+ * Real cryptographic tasks
237
+ */
238
+ async function processCryptographicTask(data) {
239
+ const startTime = Date.now();
240
+
241
+ const operations = data.operations || 1000;
242
+ const cryptoResult = performCryptographicOperations(
243
+ data.payload || {},
244
+ operations
245
+ );
246
+
247
+ return {
248
+ taskType: "cryptographic_operations",
249
+ operationsCompleted: operations,
250
+ result: cryptoResult,
251
+ executionTime: Date.now() - startTime,
252
+ };
253
+ }
254
+
255
+ /**
256
+ * Real data processing tasks
257
+ */
258
+ async function processDataTask(data) {
259
+ const startTime = Date.now();
260
+
261
+ // Perform hash computation
262
+ const iterations = data.hashIterations || 5000;
263
+ const hash = computeHashes(data, iterations);
264
+
265
+ return {
266
+ taskType: "data_processing",
267
+ originalData: JSON.stringify(data).substring(0, 100) + "...",
268
+ hashIterations: iterations,
269
+ finalHash: hash,
270
+ executionTime: Date.now() - startTime,
271
+ };
272
+ }
273
+
274
+ /**
275
+ * Real transformation tasks
276
+ */
277
+ async function processTransformTask(data) {
278
+ const startTime = Date.now();
279
+
280
+ // Perform multiple transformations
281
+ const transformations = [];
282
+
283
+ // Sort transformation
284
+ if (data.array && Array.isArray(data.array)) {
285
+ const sorted = [...data.array].sort((a, b) => a - b);
286
+ transformations.push({
287
+ type: "sort",
288
+ original: data.array.slice(0, 10),
289
+ result: sorted.slice(0, 10),
290
+ count: sorted.length,
291
+ });
292
+ }
293
+
294
+ // Hash transformation
295
+ if (data.text) {
296
+ const hash = crypto
297
+ .createHash("sha256")
298
+ .update(data.text)
299
+ .digest("hex");
300
+ transformations.push({
301
+ type: "hash",
302
+ original: data.text.substring(0, 50),
303
+ result: hash,
304
+ });
305
+ }
306
+
307
+ return {
308
+ taskType: "data_transformation",
309
+ transformations,
310
+ executionTime: Date.now() - startTime,
311
+ };
312
+ }
313
+
314
+ // Message handler with real task processing
315
+ if (parentPort) {
316
+ parentPort.on("message", async (task) => {
317
+ if (isShuttingDown) {
318
+ parentPort.postMessage({
319
+ success: false,
320
+ taskId: task.id,
321
+ error: "Worker is shutting down",
322
+ timestamp: new Date().toISOString(),
323
+ });
324
+ return;
325
+ }
326
+
327
+ activeTask = task;
328
+ const startTime = Date.now();
329
+
330
+ try {
331
+ log("info", `Processing task: ${task.id} (type: ${task.type})`);
332
+
333
+ // Process task with real implementation
334
+ const result = await processTask(task);
335
+ const executionTime = Date.now() - startTime;
336
+
337
+ // Update metrics
338
+ workerMetrics.tasksProcessed++;
339
+ workerMetrics.tasksSucceeded++;
340
+ workerMetrics.totalExecutionTime += executionTime;
341
+ workerMetrics.averageExecutionTime =
342
+ workerMetrics.totalExecutionTime / workerMetrics.tasksProcessed;
343
+
344
+ // Send successful result
345
+ parentPort.postMessage({
346
+ success: true,
347
+ taskId: task.id,
348
+ result: result,
349
+ executionTime: executionTime,
350
+ resourceUsage: checkResourceUsage(),
351
+ timestamp: new Date().toISOString(),
352
+ workerMetrics: { ...workerMetrics },
353
+ });
354
+
355
+ log(
356
+ "info",
357
+ `Task ${task.id} completed successfully in ${executionTime}ms`
358
+ );
359
+ } catch (error) {
360
+ const executionTime = Date.now() - startTime;
361
+
362
+ // Update metrics
363
+ workerMetrics.tasksProcessed++;
364
+ workerMetrics.tasksFailed++;
365
+
366
+ log("error", `Task ${task.id} failed:`, error.message);
367
+
368
+ // Send error result
369
+ parentPort.postMessage({
370
+ success: false,
371
+ taskId: task.id,
372
+ error: {
373
+ message: error.message,
374
+ stack: error.stack,
375
+ code: error.code || "TASK_EXECUTION_ERROR",
376
+ },
377
+ executionTime: executionTime,
378
+ resourceUsage: checkResourceUsage(),
379
+ timestamp: new Date().toISOString(),
380
+ workerMetrics: { ...workerMetrics },
381
+ });
382
+ } finally {
383
+ activeTask = null;
384
+ }
385
+ });
386
+ }
387
+
388
+ // Graceful shutdown
389
+ function gracefulShutdown(signal) {
390
+ if (isShuttingDown) return;
391
+
392
+ isShuttingDown = true;
393
+ log("info", `Received ${signal}, initiating graceful shutdown...`);
394
+
395
+ const shutdownTimeout = setTimeout(() => {
396
+ log("warn", "Shutdown timeout reached, forcing exit");
397
+ process.exit(1);
398
+ }, 5000);
399
+
400
+ // Wait for active task to complete
401
+ const checkActiveTask = () => {
402
+ if (!activeTask) {
403
+ clearTimeout(shutdownTimeout);
404
+ log("info", "Enhanced CPU Worker shutdown completed");
405
+ process.exit(0);
406
+ } else {
407
+ log(
408
+ "info",
409
+ `Waiting for active task ${activeTask.id} to complete...`
410
+ );
411
+ setTimeout(checkActiveTask, 100);
412
+ }
413
+ };
414
+
415
+ checkActiveTask();
416
+ }
417
+
418
+ process.on("SIGTERM", () => gracefulShutdown("SIGTERM"));
419
+ process.on("SIGINT", () => gracefulShutdown("SIGINT"));
420
+ process.on("SIGHUP", () => gracefulShutdown("SIGHUP"));
421
+
422
+ // Handle uncaught exceptions
423
+ process.on("uncaughtException", (error) => {
424
+ log("error", "Uncaught exception:", error);
425
+ gracefulShutdown("UNCAUGHT_EXCEPTION");
426
+ });
427
+
428
+ // Handle unhandled promise rejections
429
+ process.on("unhandledRejection", (reason, promise) => {
430
+ log("error", "Unhandled promise rejection:", reason);
431
+ gracefulShutdown("UNHANDLED_REJECTION");
432
+ });
433
+