@zintrust/core 0.4.28 → 0.4.30

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 (453) hide show
  1. package/bin/z.js +0 -0
  2. package/bin/zin.js +0 -0
  3. package/bin/zintrust.js +0 -0
  4. package/bin/zt.js +0 -0
  5. package/package.json +78 -23
  6. package/src/cli/commands/D1ProxyCommand.d.ts.map +1 -1
  7. package/src/cli/commands/D1ProxyCommand.js +69 -9
  8. package/src/cli/commands/KvProxyCommand.d.ts.map +1 -1
  9. package/src/cli/commands/KvProxyCommand.js +69 -9
  10. package/src/cli/commands/NewCommand.d.ts.map +1 -1
  11. package/src/cli/commands/NewCommand.js +8 -28
  12. package/src/cli/scaffolding/GovernanceScaffolder.d.ts.map +1 -1
  13. package/src/cli/scaffolding/GovernanceScaffolder.js +31 -4
  14. package/src/cli/scaffolding/ProjectScaffolder.d.ts.map +1 -1
  15. package/src/cli/scaffolding/ProjectScaffolder.js +31 -5
  16. package/src/cli/utils/DistPackager.d.ts +2 -2
  17. package/src/cli/utils/DistPackager.js +2 -2
  18. package/src/index.js +3 -3
  19. package/src/zintrust.plugins.js +1 -1
  20. package/app/Controllers/AuthController.d.ts +0 -10
  21. package/app/Controllers/AuthController.d.ts.map +0 -1
  22. package/app/Controllers/AuthController.js +0 -233
  23. package/app/Controllers/TestController.d.ts +0 -22
  24. package/app/Controllers/TestController.d.ts.map +0 -1
  25. package/app/Controllers/TestController.js +0 -188
  26. package/app/Controllers/UserController.d.ts +0 -9
  27. package/app/Controllers/UserController.d.ts.map +0 -1
  28. package/app/Controllers/UserController.js +0 -8
  29. package/app/Controllers/UserQueryBuilderController.d.ts +0 -16
  30. package/app/Controllers/UserQueryBuilderController.d.ts.map +0 -1
  31. package/app/Controllers/UserQueryBuilderController.js +0 -404
  32. package/app/Jobs/AdvancedEmailJobService.d.ts +0 -57
  33. package/app/Jobs/AdvancedEmailJobService.d.ts.map +0 -1
  34. package/app/Jobs/AdvancedEmailJobService.js +0 -185
  35. package/app/Jobs/EmailJobService.d.ts +0 -33
  36. package/app/Jobs/EmailJobService.d.ts.map +0 -1
  37. package/app/Jobs/EmailJobService.js +0 -113
  38. package/app/Middleware/AuthFailureResponder.d.ts +0 -3
  39. package/app/Middleware/AuthFailureResponder.d.ts.map +0 -1
  40. package/app/Middleware/AuthFailureResponder.js +0 -8
  41. package/app/Middleware/ProfilerMiddleware.d.ts +0 -12
  42. package/app/Middleware/ProfilerMiddleware.d.ts.map +0 -1
  43. package/app/Middleware/ProfilerMiddleware.js +0 -47
  44. package/app/Middleware/index.d.ts +0 -59
  45. package/app/Middleware/index.d.ts.map +0 -1
  46. package/app/Middleware/index.js +0 -216
  47. package/app/Models/Post.d.ts +0 -14
  48. package/app/Models/Post.d.ts.map +0 -1
  49. package/app/Models/Post.js +0 -27
  50. package/app/Models/User.d.ts +0 -14
  51. package/app/Models/User.d.ts.map +0 -1
  52. package/app/Models/User.js +0 -44
  53. package/app/Schedules/JobTracking.d.ts +0 -3
  54. package/app/Schedules/JobTracking.d.ts.map +0 -1
  55. package/app/Schedules/JobTracking.js +0 -13
  56. package/app/Schedules/index.d.ts +0 -2
  57. package/app/Schedules/index.d.ts.map +0 -1
  58. package/app/Schedules/index.js +0 -1
  59. package/app/Toolkit/Broadcast/sendBroadcast.d.ts +0 -6
  60. package/app/Toolkit/Broadcast/sendBroadcast.d.ts.map +0 -1
  61. package/app/Toolkit/Broadcast/sendBroadcast.js +0 -5
  62. package/app/Toolkit/Mail/sendWelcomeEmail.d.ts +0 -6
  63. package/app/Toolkit/Mail/sendWelcomeEmail.d.ts.map +0 -1
  64. package/app/Toolkit/Mail/sendWelcomeEmail.js +0 -20
  65. package/app/Toolkit/Notification/sendSlackNotification.d.ts +0 -8
  66. package/app/Toolkit/Notification/sendSlackNotification.d.ts.map +0 -1
  67. package/app/Toolkit/Notification/sendSlackNotification.js +0 -5
  68. package/app/Toolkit/Notification/sendSms.d.ts +0 -6
  69. package/app/Toolkit/Notification/sendSms.d.ts.map +0 -1
  70. package/app/Toolkit/Notification/sendSms.js +0 -5
  71. package/app/Types/controller.d.ts +0 -44
  72. package/app/Types/controller.d.ts.map +0 -1
  73. package/app/Types/controller.js +0 -1
  74. package/app/Workers/AdvancEmailWorker.d.ts +0 -44
  75. package/app/Workers/AdvancEmailWorker.d.ts.map +0 -1
  76. package/app/Workers/AdvancEmailWorker.js +0 -192
  77. package/app/Workers/EmailWorker.d.ts +0 -39
  78. package/app/Workers/EmailWorker.d.ts.map +0 -1
  79. package/app/Workers/EmailWorker.js +0 -199
  80. package/app/Workers/TestWorker.d.ts +0 -16
  81. package/app/Workers/TestWorker.d.ts.map +0 -1
  82. package/app/Workers/TestWorker.js +0 -153
  83. package/build-manifest.json +0 -6410
  84. package/config/broadcast.d.ts +0 -38
  85. package/config/broadcast.d.ts.map +0 -1
  86. package/config/broadcast.js +0 -37
  87. package/config/cache.d.ts +0 -40
  88. package/config/cache.d.ts.map +0 -1
  89. package/config/cache.js +0 -39
  90. package/config/database.d.ts +0 -58
  91. package/config/database.d.ts.map +0 -1
  92. package/config/database.js +0 -65
  93. package/config/mail.d.ts +0 -51
  94. package/config/mail.d.ts.map +0 -1
  95. package/config/mail.js +0 -69
  96. package/config/middleware.d.ts +0 -21
  97. package/config/middleware.d.ts.map +0 -1
  98. package/config/middleware.js +0 -61
  99. package/config/notification.d.ts +0 -33
  100. package/config/notification.d.ts.map +0 -1
  101. package/config/notification.js +0 -33
  102. package/config/queue.d.ts +0 -55
  103. package/config/queue.d.ts.map +0 -1
  104. package/config/queue.js +0 -87
  105. package/config/storage.d.ts +0 -59
  106. package/config/storage.d.ts.map +0 -1
  107. package/config/storage.js +0 -59
  108. package/config/workers.d.ts +0 -54
  109. package/config/workers.d.ts.map +0 -1
  110. package/config/workers.js +0 -83
  111. package/database/factories/UserFactory.d.ts +0 -40
  112. package/database/factories/UserFactory.d.ts.map +0 -1
  113. package/database/factories/UserFactory.js +0 -99
  114. package/database/migrations/20260109074544_create_users_table.d.ts +0 -7
  115. package/database/migrations/20260109074544_create_users_table.d.ts.map +0 -1
  116. package/database/migrations/20260109074544_create_users_table.js +0 -21
  117. package/database/migrations/20260109144731_create_tasks_table.d.ts +0 -7
  118. package/database/migrations/20260109144731_create_tasks_table.d.ts.map +0 -1
  119. package/database/migrations/20260109144731_create_tasks_table.js +0 -19
  120. package/database/migrations/20260109144735_add_done_tasks_table.d.ts +0 -11
  121. package/database/migrations/20260109144735_add_done_tasks_table.d.ts.map +0 -1
  122. package/database/migrations/20260109144735_add_done_tasks_table.js +0 -25
  123. package/database/migrations/20260109150837_add_start_tasks_table.d.ts +0 -11
  124. package/database/migrations/20260109150837_add_start_tasks_table.d.ts.map +0 -1
  125. package/database/migrations/20260109150837_add_start_tasks_table.js +0 -22
  126. package/database/migrations/20260109152114_add_way_tasks_table.d.ts +0 -11
  127. package/database/migrations/20260109152114_add_way_tasks_table.d.ts.map +0 -1
  128. package/database/migrations/20260109152114_add_way_tasks_table.js +0 -22
  129. package/database/migrations/20260218121500_create_jwt_revocations_table.d.ts +0 -7
  130. package/database/migrations/20260218121500_create_jwt_revocations_table.d.ts.map +0 -1
  131. package/database/migrations/20260218121500_create_jwt_revocations_table.js +0 -22
  132. package/database/migrations/20260222120000_add_kind_to_jwt_revocations_table.d.ts +0 -11
  133. package/database/migrations/20260222120000_add_kind_to_jwt_revocations_table.d.ts.map +0 -1
  134. package/database/migrations/20260222120000_add_kind_to_jwt_revocations_table.js +0 -20
  135. package/database/migrations/20260222123000_add_user_id_to_jwt_revocations_table.d.ts +0 -11
  136. package/database/migrations/20260222123000_add_user_id_to_jwt_revocations_table.d.ts.map +0 -1
  137. package/database/migrations/20260222123000_add_user_id_to_jwt_revocations_table.js +0 -20
  138. package/database/migrations/20260327112651_create_posts_table.d.ts +0 -11
  139. package/database/migrations/20260327112651_create_posts_table.d.ts.map +0 -1
  140. package/database/migrations/20260327112651_create_posts_table.js +0 -24
  141. package/database/seeders/DatabaseSeeder.d.ts +0 -5
  142. package/database/seeders/DatabaseSeeder.d.ts.map +0 -1
  143. package/database/seeders/DatabaseSeeder.js +0 -15
  144. package/database/seeders/UserSeeder.d.ts +0 -30
  145. package/database/seeders/UserSeeder.d.ts.map +0 -1
  146. package/database/seeders/UserSeeder.js +0 -97
  147. package/index.d.ts +0 -1
  148. package/index.js +0 -1
  149. package/packages/cache-redis/src/RedisProxyAdapter.d.ts +0 -6
  150. package/packages/cache-redis/src/RedisProxyAdapter.d.ts.map +0 -1
  151. package/packages/cache-redis/src/RedisProxyAdapter.js +0 -144
  152. package/packages/cache-redis/src/index.d.ts +0 -27
  153. package/packages/cache-redis/src/index.d.ts.map +0 -1
  154. package/packages/cache-redis/src/index.js +0 -153
  155. package/packages/db-d1/src/index.d.ts +0 -55
  156. package/packages/db-d1/src/index.d.ts.map +0 -1
  157. package/packages/db-d1/src/index.js +0 -118
  158. package/packages/db-d1/src/register.d.ts +0 -6
  159. package/packages/db-d1/src/register.d.ts.map +0 -1
  160. package/packages/db-d1/src/register.js +0 -8
  161. package/packages/db-mysql/src/common.d.ts +0 -7
  162. package/packages/db-mysql/src/common.d.ts.map +0 -1
  163. package/packages/db-mysql/src/common.js +0 -17
  164. package/packages/db-mysql/src/index.d.ts +0 -43
  165. package/packages/db-mysql/src/index.d.ts.map +0 -1
  166. package/packages/db-mysql/src/index.js +0 -265
  167. package/packages/db-mysql/src/register.d.ts +0 -6
  168. package/packages/db-mysql/src/register.d.ts.map +0 -1
  169. package/packages/db-mysql/src/register.js +0 -32
  170. package/packages/db-postgres/src/index.d.ts +0 -39
  171. package/packages/db-postgres/src/index.d.ts.map +0 -1
  172. package/packages/db-postgres/src/index.js +0 -179
  173. package/packages/db-postgres/src/register.d.ts +0 -6
  174. package/packages/db-postgres/src/register.d.ts.map +0 -1
  175. package/packages/db-postgres/src/register.js +0 -8
  176. package/packages/db-sqlite/src/index.d.ts +0 -9
  177. package/packages/db-sqlite/src/index.d.ts.map +0 -1
  178. package/packages/db-sqlite/src/index.js +0 -7
  179. package/packages/db-sqlite/src/register.d.ts +0 -6
  180. package/packages/db-sqlite/src/register.d.ts.map +0 -1
  181. package/packages/db-sqlite/src/register.js +0 -8
  182. package/packages/db-sqlserver/src/index.d.ts +0 -38
  183. package/packages/db-sqlserver/src/index.d.ts.map +0 -1
  184. package/packages/db-sqlserver/src/index.js +0 -73
  185. package/packages/db-sqlserver/src/register.d.ts +0 -6
  186. package/packages/db-sqlserver/src/register.d.ts.map +0 -1
  187. package/packages/db-sqlserver/src/register.js +0 -21
  188. package/packages/mail-sendgrid/src/register.d.ts +0 -6
  189. package/packages/mail-sendgrid/src/register.d.ts.map +0 -1
  190. package/packages/mail-sendgrid/src/register.js +0 -24
  191. package/packages/mail-smtp/src/register.d.ts +0 -6
  192. package/packages/mail-smtp/src/register.d.ts.map +0 -1
  193. package/packages/mail-smtp/src/register.js +0 -29
  194. package/packages/queue-monitor/src/QueueMonitoringService.d.ts +0 -35
  195. package/packages/queue-monitor/src/QueueMonitoringService.d.ts.map +0 -1
  196. package/packages/queue-monitor/src/QueueMonitoringService.js +0 -194
  197. package/packages/queue-monitor/src/connection.d.ts +0 -3
  198. package/packages/queue-monitor/src/connection.d.ts.map +0 -1
  199. package/packages/queue-monitor/src/connection.js +0 -1
  200. package/packages/queue-monitor/src/dashboard-ui.d.ts +0 -7
  201. package/packages/queue-monitor/src/dashboard-ui.d.ts.map +0 -1
  202. package/packages/queue-monitor/src/dashboard-ui.js +0 -997
  203. package/packages/queue-monitor/src/driver.d.ts +0 -15
  204. package/packages/queue-monitor/src/driver.d.ts.map +0 -1
  205. package/packages/queue-monitor/src/driver.js +0 -115
  206. package/packages/queue-monitor/src/index.d.ts +0 -71
  207. package/packages/queue-monitor/src/index.d.ts.map +0 -1
  208. package/packages/queue-monitor/src/index.js +0 -296
  209. package/packages/queue-monitor/src/metrics.d.ts +0 -27
  210. package/packages/queue-monitor/src/metrics.d.ts.map +0 -1
  211. package/packages/queue-monitor/src/metrics.js +0 -92
  212. package/packages/queue-monitor/src/worker.d.ts +0 -8
  213. package/packages/queue-monitor/src/worker.d.ts.map +0 -1
  214. package/packages/queue-monitor/src/worker.js +0 -35
  215. package/packages/queue-redis/src/BullMQRedisQueue.d.ts +0 -26
  216. package/packages/queue-redis/src/BullMQRedisQueue.d.ts.map +0 -1
  217. package/packages/queue-redis/src/BullMQRedisQueue.js +0 -465
  218. package/packages/queue-redis/src/HttpQueueDriver.d.ts +0 -18
  219. package/packages/queue-redis/src/HttpQueueDriver.d.ts.map +0 -1
  220. package/packages/queue-redis/src/HttpQueueDriver.js +0 -249
  221. package/packages/queue-redis/src/QueueHttpGateway.d.ts +0 -16
  222. package/packages/queue-redis/src/QueueHttpGateway.d.ts.map +0 -1
  223. package/packages/queue-redis/src/QueueHttpGateway.js +0 -217
  224. package/packages/queue-redis/src/RedisPublishClient.d.ts +0 -14
  225. package/packages/queue-redis/src/RedisPublishClient.d.ts.map +0 -1
  226. package/packages/queue-redis/src/RedisPublishClient.js +0 -251
  227. package/packages/queue-redis/src/index.d.ts +0 -12
  228. package/packages/queue-redis/src/index.d.ts.map +0 -1
  229. package/packages/queue-redis/src/index.js +0 -10
  230. package/packages/queue-redis/src/register.d.ts +0 -6
  231. package/packages/queue-redis/src/register.d.ts.map +0 -1
  232. package/packages/queue-redis/src/register.js +0 -21
  233. package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.d.ts +0 -11
  234. package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.d.ts.map +0 -1
  235. package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.js +0 -32
  236. package/packages/workers/migrations/20260123180000_create_queue_jobs_table.d.ts +0 -11
  237. package/packages/workers/migrations/20260123180000_create_queue_jobs_table.d.ts.map +0 -1
  238. package/packages/workers/migrations/20260123180000_create_queue_jobs_table.js +0 -46
  239. package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.d.ts +0 -7
  240. package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.d.ts.map +0 -1
  241. package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.js +0 -44
  242. package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.d.ts +0 -7
  243. package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.d.ts.map +0 -1
  244. package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.js +0 -104
  245. package/packages/workers/src/AnomalyDetection.d.ts +0 -107
  246. package/packages/workers/src/AnomalyDetection.d.ts.map +0 -1
  247. package/packages/workers/src/AnomalyDetection.js +0 -329
  248. package/packages/workers/src/AutoScaler.d.ts +0 -128
  249. package/packages/workers/src/AutoScaler.d.ts.map +0 -1
  250. package/packages/workers/src/AutoScaler.js +0 -425
  251. package/packages/workers/src/BroadcastWorker.d.ts +0 -29
  252. package/packages/workers/src/BroadcastWorker.d.ts.map +0 -1
  253. package/packages/workers/src/BroadcastWorker.js +0 -24
  254. package/packages/workers/src/CanaryController.d.ts +0 -104
  255. package/packages/workers/src/CanaryController.d.ts.map +0 -1
  256. package/packages/workers/src/CanaryController.js +0 -424
  257. package/packages/workers/src/ChaosEngineering.d.ts +0 -80
  258. package/packages/workers/src/ChaosEngineering.d.ts.map +0 -1
  259. package/packages/workers/src/ChaosEngineering.js +0 -229
  260. package/packages/workers/src/CircuitBreaker.d.ts +0 -107
  261. package/packages/workers/src/CircuitBreaker.d.ts.map +0 -1
  262. package/packages/workers/src/CircuitBreaker.js +0 -374
  263. package/packages/workers/src/ClusterLock.d.ts +0 -91
  264. package/packages/workers/src/ClusterLock.d.ts.map +0 -1
  265. package/packages/workers/src/ClusterLock.js +0 -397
  266. package/packages/workers/src/ComplianceManager.d.ts +0 -178
  267. package/packages/workers/src/ComplianceManager.d.ts.map +0 -1
  268. package/packages/workers/src/ComplianceManager.js +0 -556
  269. package/packages/workers/src/DatacenterOrchestrator.d.ts +0 -134
  270. package/packages/workers/src/DatacenterOrchestrator.d.ts.map +0 -1
  271. package/packages/workers/src/DatacenterOrchestrator.js +0 -404
  272. package/packages/workers/src/DeadLetterQueue.d.ts +0 -123
  273. package/packages/workers/src/DeadLetterQueue.d.ts.map +0 -1
  274. package/packages/workers/src/DeadLetterQueue.js +0 -544
  275. package/packages/workers/src/HealthMonitor.d.ts +0 -43
  276. package/packages/workers/src/HealthMonitor.d.ts.map +0 -1
  277. package/packages/workers/src/HealthMonitor.js +0 -312
  278. package/packages/workers/src/MultiQueueWorker.d.ts +0 -90
  279. package/packages/workers/src/MultiQueueWorker.d.ts.map +0 -1
  280. package/packages/workers/src/MultiQueueWorker.js +0 -282
  281. package/packages/workers/src/NotificationWorker.d.ts +0 -29
  282. package/packages/workers/src/NotificationWorker.d.ts.map +0 -1
  283. package/packages/workers/src/NotificationWorker.js +0 -23
  284. package/packages/workers/src/Observability.d.ts +0 -154
  285. package/packages/workers/src/Observability.d.ts.map +0 -1
  286. package/packages/workers/src/Observability.js +0 -538
  287. package/packages/workers/src/PluginManager.d.ts +0 -124
  288. package/packages/workers/src/PluginManager.d.ts.map +0 -1
  289. package/packages/workers/src/PluginManager.js +0 -392
  290. package/packages/workers/src/PriorityQueue.d.ts +0 -118
  291. package/packages/workers/src/PriorityQueue.d.ts.map +0 -1
  292. package/packages/workers/src/PriorityQueue.js +0 -276
  293. package/packages/workers/src/ResourceMonitor.d.ts +0 -165
  294. package/packages/workers/src/ResourceMonitor.d.ts.map +0 -1
  295. package/packages/workers/src/ResourceMonitor.js +0 -632
  296. package/packages/workers/src/SLAMonitor.d.ts +0 -111
  297. package/packages/workers/src/SLAMonitor.d.ts.map +0 -1
  298. package/packages/workers/src/SLAMonitor.js +0 -274
  299. package/packages/workers/src/WorkerFactory.d.ts +0 -226
  300. package/packages/workers/src/WorkerFactory.d.ts.map +0 -1
  301. package/packages/workers/src/WorkerFactory.js +0 -2551
  302. package/packages/workers/src/WorkerInit.d.ts +0 -103
  303. package/packages/workers/src/WorkerInit.d.ts.map +0 -1
  304. package/packages/workers/src/WorkerInit.js +0 -359
  305. package/packages/workers/src/WorkerMetrics.d.ts +0 -116
  306. package/packages/workers/src/WorkerMetrics.d.ts.map +0 -1
  307. package/packages/workers/src/WorkerMetrics.js +0 -570
  308. package/packages/workers/src/WorkerRegistry.d.ts +0 -152
  309. package/packages/workers/src/WorkerRegistry.d.ts.map +0 -1
  310. package/packages/workers/src/WorkerRegistry.js +0 -396
  311. package/packages/workers/src/WorkerShutdown.d.ts +0 -70
  312. package/packages/workers/src/WorkerShutdown.d.ts.map +0 -1
  313. package/packages/workers/src/WorkerShutdown.js +0 -185
  314. package/packages/workers/src/WorkerVersioning.d.ts +0 -108
  315. package/packages/workers/src/WorkerVersioning.d.ts.map +0 -1
  316. package/packages/workers/src/WorkerVersioning.js +0 -300
  317. package/packages/workers/src/config/workerConfig.d.ts +0 -5
  318. package/packages/workers/src/config/workerConfig.d.ts.map +0 -1
  319. package/packages/workers/src/config/workerConfig.js +0 -25
  320. package/packages/workers/src/createQueueWorker.d.ts +0 -31
  321. package/packages/workers/src/createQueueWorker.d.ts.map +0 -1
  322. package/packages/workers/src/createQueueWorker.js +0 -382
  323. package/packages/workers/src/dashboard/index.d.ts +0 -2
  324. package/packages/workers/src/dashboard/index.d.ts.map +0 -1
  325. package/packages/workers/src/dashboard/index.js +0 -1
  326. package/packages/workers/src/dashboard/types.d.ts +0 -123
  327. package/packages/workers/src/dashboard/types.d.ts.map +0 -1
  328. package/packages/workers/src/dashboard/types.js +0 -1
  329. package/packages/workers/src/dashboard/workers-api.d.ts +0 -5
  330. package/packages/workers/src/dashboard/workers-api.d.ts.map +0 -1
  331. package/packages/workers/src/dashboard/workers-api.js +0 -776
  332. package/packages/workers/src/helper/index.d.ts +0 -6
  333. package/packages/workers/src/helper/index.d.ts.map +0 -1
  334. package/packages/workers/src/helper/index.js +0 -10
  335. package/packages/workers/src/http/WorkerApiController.d.ts +0 -39
  336. package/packages/workers/src/http/WorkerApiController.d.ts.map +0 -1
  337. package/packages/workers/src/http/WorkerApiController.js +0 -313
  338. package/packages/workers/src/http/WorkerController.d.ts +0 -375
  339. package/packages/workers/src/http/WorkerController.d.ts.map +0 -1
  340. package/packages/workers/src/http/WorkerController.js +0 -1454
  341. package/packages/workers/src/http/WorkerMonitoringService.d.ts +0 -12
  342. package/packages/workers/src/http/WorkerMonitoringService.d.ts.map +0 -1
  343. package/packages/workers/src/http/WorkerMonitoringService.js +0 -89
  344. package/packages/workers/src/http/middleware/CustomValidation.d.ts +0 -93
  345. package/packages/workers/src/http/middleware/CustomValidation.d.ts.map +0 -1
  346. package/packages/workers/src/http/middleware/CustomValidation.js +0 -270
  347. package/packages/workers/src/http/middleware/DatacenterValidator.d.ts +0 -4
  348. package/packages/workers/src/http/middleware/DatacenterValidator.d.ts.map +0 -1
  349. package/packages/workers/src/http/middleware/DatacenterValidator.js +0 -94
  350. package/packages/workers/src/http/middleware/EditWorkerValidation.d.ts +0 -8
  351. package/packages/workers/src/http/middleware/EditWorkerValidation.d.ts.map +0 -1
  352. package/packages/workers/src/http/middleware/EditWorkerValidation.js +0 -56
  353. package/packages/workers/src/http/middleware/FeaturesValidator.d.ts +0 -4
  354. package/packages/workers/src/http/middleware/FeaturesValidator.d.ts.map +0 -1
  355. package/packages/workers/src/http/middleware/FeaturesValidator.js +0 -61
  356. package/packages/workers/src/http/middleware/InfrastructureValidator.d.ts +0 -32
  357. package/packages/workers/src/http/middleware/InfrastructureValidator.d.ts.map +0 -1
  358. package/packages/workers/src/http/middleware/InfrastructureValidator.js +0 -226
  359. package/packages/workers/src/http/middleware/OptionsValidator.d.ts +0 -4
  360. package/packages/workers/src/http/middleware/OptionsValidator.d.ts.map +0 -1
  361. package/packages/workers/src/http/middleware/OptionsValidator.js +0 -112
  362. package/packages/workers/src/http/middleware/PayloadSanitizer.d.ts +0 -8
  363. package/packages/workers/src/http/middleware/PayloadSanitizer.d.ts.map +0 -1
  364. package/packages/workers/src/http/middleware/PayloadSanitizer.js +0 -42
  365. package/packages/workers/src/http/middleware/ProcessorPathSanitizer.d.ts +0 -4
  366. package/packages/workers/src/http/middleware/ProcessorPathSanitizer.d.ts.map +0 -1
  367. package/packages/workers/src/http/middleware/ProcessorPathSanitizer.js +0 -140
  368. package/packages/workers/src/http/middleware/QueueNameSanitizer.d.ts +0 -4
  369. package/packages/workers/src/http/middleware/QueueNameSanitizer.d.ts.map +0 -1
  370. package/packages/workers/src/http/middleware/QueueNameSanitizer.js +0 -45
  371. package/packages/workers/src/http/middleware/ValidateDriver.d.ts +0 -8
  372. package/packages/workers/src/http/middleware/ValidateDriver.d.ts.map +0 -1
  373. package/packages/workers/src/http/middleware/ValidateDriver.js +0 -20
  374. package/packages/workers/src/http/middleware/VersionSanitizer.d.ts +0 -4
  375. package/packages/workers/src/http/middleware/VersionSanitizer.d.ts.map +0 -1
  376. package/packages/workers/src/http/middleware/VersionSanitizer.js +0 -25
  377. package/packages/workers/src/http/middleware/WorkerNameSanitizer.d.ts +0 -4
  378. package/packages/workers/src/http/middleware/WorkerNameSanitizer.d.ts.map +0 -1
  379. package/packages/workers/src/http/middleware/WorkerNameSanitizer.js +0 -46
  380. package/packages/workers/src/http/middleware/WorkerValidationChain.d.ts +0 -28
  381. package/packages/workers/src/http/middleware/WorkerValidationChain.d.ts.map +0 -1
  382. package/packages/workers/src/http/middleware/WorkerValidationChain.js +0 -186
  383. package/packages/workers/src/index.d.ts +0 -47
  384. package/packages/workers/src/index.d.ts.map +0 -1
  385. package/packages/workers/src/index.js +0 -48
  386. package/packages/workers/src/register.d.ts +0 -10
  387. package/packages/workers/src/register.d.ts.map +0 -1
  388. package/packages/workers/src/register.js +0 -43
  389. package/packages/workers/src/routes/workers.d.ts +0 -13
  390. package/packages/workers/src/routes/workers.d.ts.map +0 -1
  391. package/packages/workers/src/routes/workers.js +0 -126
  392. package/packages/workers/src/storage/WorkerStore.d.ts +0 -52
  393. package/packages/workers/src/storage/WorkerStore.d.ts.map +0 -1
  394. package/packages/workers/src/storage/WorkerStore.js +0 -259
  395. package/packages/workers/src/telemetry/api/TelemetryAPI.d.ts +0 -47
  396. package/packages/workers/src/telemetry/api/TelemetryAPI.d.ts.map +0 -1
  397. package/packages/workers/src/telemetry/api/TelemetryAPI.js +0 -219
  398. package/packages/workers/src/telemetry/api/TelemetryMonitoringService.d.ts +0 -18
  399. package/packages/workers/src/telemetry/api/TelemetryMonitoringService.d.ts.map +0 -1
  400. package/packages/workers/src/telemetry/api/TelemetryMonitoringService.js +0 -140
  401. package/packages/workers/src/telemetry/components/AlertPanel.d.ts +0 -2
  402. package/packages/workers/src/telemetry/components/AlertPanel.d.ts.map +0 -1
  403. package/packages/workers/src/telemetry/components/AlertPanel.js +0 -13
  404. package/packages/workers/src/telemetry/components/CostTracking.d.ts +0 -2
  405. package/packages/workers/src/telemetry/components/CostTracking.d.ts.map +0 -1
  406. package/packages/workers/src/telemetry/components/CostTracking.js +0 -14
  407. package/packages/workers/src/telemetry/components/ResourceUsageChart.d.ts +0 -2
  408. package/packages/workers/src/telemetry/components/ResourceUsageChart.d.ts.map +0 -1
  409. package/packages/workers/src/telemetry/components/ResourceUsageChart.js +0 -11
  410. package/packages/workers/src/telemetry/components/WorkerHealthChart.d.ts +0 -2
  411. package/packages/workers/src/telemetry/components/WorkerHealthChart.d.ts.map +0 -1
  412. package/packages/workers/src/telemetry/components/WorkerHealthChart.js +0 -11
  413. package/packages/workers/src/telemetry/index.d.ts +0 -16
  414. package/packages/workers/src/telemetry/index.d.ts.map +0 -1
  415. package/packages/workers/src/telemetry/index.js +0 -60
  416. package/packages/workers/src/telemetry/routes/dashboard.d.ts +0 -7
  417. package/packages/workers/src/telemetry/routes/dashboard.d.ts.map +0 -1
  418. package/packages/workers/src/telemetry/routes/dashboard.js +0 -608
  419. package/packages/workers/src/type.d.ts +0 -77
  420. package/packages/workers/src/type.d.ts.map +0 -1
  421. package/packages/workers/src/type.js +0 -1
  422. package/packages/workers/src/ui/router/EmbeddedAssets.d.ts +0 -5
  423. package/packages/workers/src/ui/router/EmbeddedAssets.d.ts.map +0 -1
  424. package/packages/workers/src/ui/router/EmbeddedAssets.js +0 -13
  425. package/packages/workers/src/ui/router/ui.d.ts +0 -4
  426. package/packages/workers/src/ui/router/ui.d.ts.map +0 -1
  427. package/packages/workers/src/ui/router/ui.js +0 -208
  428. package/packages/workers/src/ui/types/worker-ui.d.ts +0 -230
  429. package/packages/workers/src/ui/types/worker-ui.d.ts.map +0 -1
  430. package/packages/workers/src/ui/types/worker-ui.js +0 -5
  431. package/routes/DirectTestRoutes.d.ts +0 -25
  432. package/routes/DirectTestRoutes.d.ts.map +0 -1
  433. package/routes/DirectTestRoutes.js +0 -480
  434. package/routes/TestRoutes.d.ts +0 -11
  435. package/routes/TestRoutes.d.ts.map +0 -1
  436. package/routes/TestRoutes.js +0 -25
  437. package/routes/api.d.ts +0 -7
  438. package/routes/api.d.ts.map +0 -1
  439. package/routes/api.js +0 -136
  440. package/routes/apiDev.d.ts +0 -7
  441. package/routes/apiDev.d.ts.map +0 -1
  442. package/routes/apiDev.js +0 -92
  443. package/routes/broadcast.d.ts +0 -9
  444. package/routes/broadcast.d.ts.map +0 -1
  445. package/routes/broadcast.js +0 -27
  446. package/routes/mail.d.ts +0 -12
  447. package/routes/mail.d.ts.map +0 -1
  448. package/routes/mail.js +0 -138
  449. package/routes/storage.d.ts +0 -4
  450. package/routes/storage.d.ts.map +0 -1
  451. package/routes/storage.js +0 -35
  452. package/start.d.ts +0 -1
  453. package/start.js +0 -1
@@ -1,632 +0,0 @@
1
- /**
2
- * Resource Monitor
3
- * Real-time resource tracking with cost calculation
4
- * Sealed namespace for immutability
5
- */
6
- import { Env, Logger, NodeSingletons } from '../../../src/index.js';
7
- const getOsModule = () => NodeSingletons?.os ?? null;
8
- const safeTotalMemory = () => {
9
- const os = getOsModule();
10
- if (!os?.totalmem)
11
- return 0;
12
- try {
13
- return os.totalmem();
14
- }
15
- catch {
16
- return 0;
17
- }
18
- };
19
- const safeFreeMemory = () => {
20
- const os = getOsModule();
21
- if (!os?.freemem)
22
- return 0;
23
- try {
24
- return os.freemem();
25
- }
26
- catch {
27
- return 0;
28
- }
29
- };
30
- const safeLoadAverage = () => {
31
- const os = getOsModule();
32
- if (!os?.loadavg)
33
- return [0, 0, 0];
34
- try {
35
- return os.loadavg();
36
- }
37
- catch {
38
- return [0, 0, 0];
39
- }
40
- };
41
- const safeCpuCount = () => {
42
- const os = getOsModule();
43
- if (!os?.cpus)
44
- return 1;
45
- try {
46
- return Math.max(1, os.cpus().length);
47
- }
48
- catch {
49
- return 1;
50
- }
51
- };
52
- const safePlatform = () => {
53
- const os = getOsModule();
54
- if (!os?.platform)
55
- return 'unknown';
56
- try {
57
- return os.platform();
58
- }
59
- catch {
60
- return 'unknown';
61
- }
62
- };
63
- const safeArch = () => {
64
- const os = getOsModule();
65
- if (!os?.arch)
66
- return 'unknown';
67
- try {
68
- return os.arch();
69
- }
70
- catch {
71
- return 'unknown';
72
- }
73
- };
74
- const safeHostname = () => {
75
- const os = getOsModule();
76
- if (!os?.hostname)
77
- return 'unknown';
78
- try {
79
- return os.hostname();
80
- }
81
- catch {
82
- return 'unknown';
83
- }
84
- };
85
- const safeUptime = () => {
86
- const os = getOsModule();
87
- if (!os?.uptime)
88
- return 0;
89
- try {
90
- return os.uptime();
91
- }
92
- catch {
93
- return 0;
94
- }
95
- };
96
- const safeProcessCpuUsage = () => {
97
- if (!process?.cpuUsage)
98
- return { user: 0, system: 0 };
99
- try {
100
- return process.cpuUsage();
101
- }
102
- catch {
103
- return { user: 0, system: 0 };
104
- }
105
- };
106
- // Default cost configuration (AWS-like pricing)
107
- const DEFAULT_COST_CONFIG = {
108
- computeCostPerCoreHour: 0.0416, // ~$0.0416 per vCPU hour (t3.medium equivalent)
109
- memoryCostPerGBHour: 0.0052, // ~$0.0052 per GB hour
110
- networkCostPerGB: 0.09, // $0.09 per GB transferred
111
- diskCostPerGB: 0.1, // $0.10 per GB/month
112
- spotInstanceDiscount: 70, // 70% discount for spot instances
113
- };
114
- // Internal state
115
- let costConfig = { ...DEFAULT_COST_CONFIG };
116
- let monitoringInterval = null;
117
- const resourceHistory = new Map();
118
- const alertHistory = new Map();
119
- // Memory management constants
120
- const MAX_HISTORY_SIZE = 1000; // Keep last 1000 snapshots per worker
121
- const MAX_ALERT_HISTORY = 100; // Keep last 100 alerts per worker
122
- // Resource thresholds
123
- const THRESHOLDS = {
124
- cpu: { warning: 70, critical: 90 },
125
- memory: { warning: 75, critical: 85 },
126
- disk: { warning: 80, critical: 90 },
127
- costPerHour: { warning: 10, critical: 50 },
128
- };
129
- // Store previous CPU measurements for calculating real-time usage
130
- let previousCpuTimes = null;
131
- /**
132
- * Helper: Calculate CPU usage percentage (real-time)
133
- */
134
- const calculateCpuUsage = () => {
135
- const os = getOsModule();
136
- if (!os?.cpus)
137
- return 0;
138
- try {
139
- const cpus = os.cpus();
140
- let totalIdle = 0;
141
- let totalTick = 0;
142
- cpus.forEach((cpu) => {
143
- for (const type in cpu.times) {
144
- totalTick += cpu.times[type];
145
- }
146
- totalIdle += cpu.times.idle;
147
- });
148
- const now = Date.now();
149
- // If we have previous measurements, calculate real-time usage
150
- if (previousCpuTimes) {
151
- const timeDiff = now - previousCpuTimes.timestamp;
152
- // Only calculate if enough time has passed (minimum 100ms)
153
- if (timeDiff >= 100) {
154
- const idleDiff = totalIdle - previousCpuTimes.idle;
155
- const totalDiff = totalTick - previousCpuTimes.total;
156
- // Calculate CPU usage percentage for this interval
157
- const cpuPercentage = totalDiff > 0 ? ((totalDiff - idleDiff) / totalDiff) * 100 : 0;
158
- // Update previous measurements
159
- previousCpuTimes = { idle: totalIdle, total: totalTick, timestamp: now };
160
- return Math.min(100, Math.max(0, cpuPercentage));
161
- }
162
- }
163
- // First measurement or not enough time passed
164
- previousCpuTimes = { idle: totalIdle, total: totalTick, timestamp: now };
165
- // For first call, return a reasonable estimate or use load average
166
- const loadAvg = safeLoadAverage();
167
- const cpuCount = safeCpuCount();
168
- return Math.min(100, Math.max(0, (loadAvg[0] / cpuCount) * 100));
169
- }
170
- catch (error) {
171
- Logger.error('Failed to calculate system CPU usage', error);
172
- return 0;
173
- }
174
- };
175
- /**
176
- * Helper: Get memory usage
177
- */
178
- const getMemoryUsage = () => {
179
- const totalMemory = safeTotalMemory();
180
- const freeMemory = safeFreeMemory();
181
- const usedMemory = totalMemory - freeMemory;
182
- const usage = totalMemory > 0 ? (usedMemory / totalMemory) * 100 : 0;
183
- return {
184
- total: totalMemory,
185
- used: usedMemory,
186
- free: freeMemory,
187
- usage,
188
- };
189
- };
190
- /**
191
- * Helper: Capture resource snapshot
192
- */
193
- const captureSnapshot = () => {
194
- const cpuUsage = calculateCpuUsage();
195
- const memoryUsage = getMemoryUsage();
196
- const loadAverage = safeLoadAverage();
197
- const cpuCores = safeCpuCount();
198
- return {
199
- timestamp: new Date(),
200
- cpu: {
201
- usage: cpuUsage,
202
- loadAverage,
203
- cores: cpuCores,
204
- },
205
- memory: memoryUsage,
206
- disk: {
207
- read: 0, // Would need platform-specific implementation
208
- write: 0,
209
- },
210
- network: {
211
- received: 0, // Would need platform-specific implementation
212
- transmitted: 0,
213
- },
214
- process: {
215
- pid: process.pid,
216
- uptime: process.uptime(),
217
- memoryUsage: process.memoryUsage(),
218
- cpuUsage: safeProcessCpuUsage(),
219
- },
220
- };
221
- };
222
- /**
223
- * Helper: Calculate cost based on resource usage
224
- */
225
- const calculateCost = (snapshot, useSpotDiscount = false) => {
226
- const { cpu, memory } = snapshot;
227
- // CPU cost (based on cores and usage)
228
- const cpuCostPerHour = cpu.cores * (cpu.usage / 100) * costConfig.computeCostPerCoreHour;
229
- // Memory cost (based on GB used)
230
- const memoryGB = memory.used / (1024 * 1024 * 1024);
231
- const memoryCostPerHour = memoryGB * costConfig.memoryCostPerGBHour;
232
- // Total compute cost
233
- let totalCostPerHour = cpuCostPerHour + memoryCostPerHour;
234
- // Apply spot instance discount if applicable
235
- if (useSpotDiscount) {
236
- totalCostPerHour *= 1 - costConfig.spotInstanceDiscount / 100;
237
- }
238
- return {
239
- perHour: totalCostPerHour,
240
- perDay: totalCostPerHour * 24,
241
- perMonth: totalCostPerHour * 24 * 30,
242
- };
243
- };
244
- /**
245
- * Helper: Calculate efficiency score
246
- */
247
- const calculateEfficiency = (snapshot) => {
248
- const { cpu, memory } = snapshot;
249
- // CPU efficiency: 50-80% usage is ideal
250
- let cpuEfficiency;
251
- if (cpu.usage < 30) {
252
- cpuEfficiency = cpu.usage * 2; // Under-utilized
253
- }
254
- else if (cpu.usage > 80) {
255
- cpuEfficiency = 100 - (cpu.usage - 80) * 2; // Over-utilized
256
- }
257
- else {
258
- cpuEfficiency = 100; // Ideal range
259
- }
260
- // Memory efficiency: 50-75% usage is ideal
261
- let memoryEfficiency;
262
- if (memory.usage < 40) {
263
- memoryEfficiency = memory.usage * 1.5; // Under-utilized
264
- }
265
- else if (memory.usage > 75) {
266
- memoryEfficiency = 100 - (memory.usage - 75) * 2; // Over-utilized
267
- }
268
- else {
269
- memoryEfficiency = 100; // Ideal range
270
- }
271
- const overallScore = cpuEfficiency * 0.6 + memoryEfficiency * 0.4;
272
- return {
273
- cpuEfficiency: Math.round(cpuEfficiency),
274
- memoryEfficiency: Math.round(memoryEfficiency),
275
- overallScore: Math.round(overallScore),
276
- };
277
- };
278
- /**
279
- * Helper: Check thresholds and create alerts
280
- */
281
- const checkThresholds = (workerName, snapshot, cost) => {
282
- const alerts = [];
283
- // CPU alerts
284
- if (snapshot.cpu.usage >= THRESHOLDS.cpu.critical) {
285
- alerts.push({
286
- timestamp: new Date(),
287
- workerName,
288
- alertType: 'cpu-high',
289
- severity: 'critical',
290
- message: `Critical CPU usage: ${snapshot.cpu.usage.toFixed(1)}%`,
291
- currentValue: snapshot.cpu.usage,
292
- threshold: THRESHOLDS.cpu.critical,
293
- recommendation: 'Consider scaling up or optimizing worker code',
294
- });
295
- }
296
- else if (snapshot.cpu.usage >= THRESHOLDS.cpu.warning) {
297
- alerts.push({
298
- timestamp: new Date(),
299
- workerName,
300
- alertType: 'cpu-high',
301
- severity: 'warning',
302
- message: `High CPU usage: ${snapshot.cpu.usage.toFixed(1)}%`,
303
- currentValue: snapshot.cpu.usage,
304
- threshold: THRESHOLDS.cpu.warning,
305
- recommendation: 'Monitor closely and consider scaling',
306
- });
307
- }
308
- // Memory alerts
309
- if (snapshot.memory.usage >= THRESHOLDS.memory.critical) {
310
- alerts.push({
311
- timestamp: new Date(),
312
- workerName,
313
- alertType: 'memory-high',
314
- severity: 'critical',
315
- message: `Critical memory usage: ${snapshot.memory.usage.toFixed(1)}%`,
316
- currentValue: snapshot.memory.usage,
317
- threshold: THRESHOLDS.memory.critical,
318
- recommendation: 'Increase memory allocation or optimize memory usage',
319
- });
320
- }
321
- else if (snapshot.memory.usage >= THRESHOLDS.memory.warning) {
322
- alerts.push({
323
- timestamp: new Date(),
324
- workerName,
325
- alertType: 'memory-high',
326
- severity: 'warning',
327
- message: `High memory usage: ${snapshot.memory.usage.toFixed(1)}%`,
328
- currentValue: snapshot.memory.usage,
329
- threshold: THRESHOLDS.memory.warning,
330
- recommendation: 'Monitor memory consumption',
331
- });
332
- }
333
- // Cost alerts
334
- if (cost.perHour >= THRESHOLDS.costPerHour.critical) {
335
- alerts.push({
336
- timestamp: new Date(),
337
- workerName,
338
- alertType: 'cost-high',
339
- severity: 'critical',
340
- message: `Critical hourly cost: $${cost.perHour.toFixed(2)}/hr`,
341
- currentValue: cost.perHour,
342
- threshold: THRESHOLDS.costPerHour.critical,
343
- recommendation: 'Review resource allocation and consider cost optimization',
344
- });
345
- }
346
- else if (cost.perHour >= THRESHOLDS.costPerHour.warning) {
347
- alerts.push({
348
- timestamp: new Date(),
349
- workerName,
350
- alertType: 'cost-high',
351
- severity: 'warning',
352
- message: `High hourly cost: $${cost.perHour.toFixed(2)}/hr`,
353
- currentValue: cost.perHour,
354
- threshold: THRESHOLDS.costPerHour.warning,
355
- recommendation: 'Consider using spot instances or reducing concurrency',
356
- });
357
- }
358
- return alerts;
359
- };
360
- /**
361
- * Helper: Store alert
362
- */
363
- const storeAlert = (alert) => {
364
- let history = alertHistory.get(alert.workerName);
365
- if (!history) {
366
- history = [];
367
- alertHistory.set(alert.workerName, history);
368
- }
369
- history.push(alert);
370
- // Trim alert history to prevent memory leaks
371
- if (history.length > MAX_ALERT_HISTORY) {
372
- alertHistory.set(alert.workerName, history.slice(-MAX_ALERT_HISTORY));
373
- }
374
- };
375
- /**
376
- * Helper: Calculate trend
377
- */
378
- const calculateTrend = (workerName, metric, period) => {
379
- const history = resourceHistory.get(workerName);
380
- if (!history || history.length < 2)
381
- return null;
382
- const now = Date.now();
383
- let periodMs;
384
- switch (period) {
385
- case 'hour':
386
- periodMs = 60 * 60 * 1000;
387
- break;
388
- case 'day':
389
- periodMs = 24 * 60 * 60 * 1000;
390
- break;
391
- case 'week':
392
- periodMs = 7 * 24 * 60 * 60 * 1000;
393
- break;
394
- }
395
- // Filter snapshots within period
396
- const periodSnapshots = history.filter((s) => now - s.timestamp.getTime() <= periodMs);
397
- if (periodSnapshots.length < 2)
398
- return null;
399
- // Get metric values
400
- const values = periodSnapshots.map((s) => {
401
- switch (metric) {
402
- case 'cpu':
403
- return s.cpu.usage;
404
- case 'memory':
405
- return s.memory.usage;
406
- case 'disk':
407
- return s.disk.read + s.disk.write;
408
- case 'network':
409
- return s.network.received + s.network.transmitted;
410
- case 'cost':
411
- return calculateCost(s).perHour;
412
- }
413
- });
414
- // Simple linear regression for trend
415
- const firstValue = values[0];
416
- const lastValue = values[values.length - 1] ?? values[0];
417
- const changePercentage = ((lastValue - firstValue) / firstValue) * 100;
418
- let trend;
419
- if (Math.abs(changePercentage) < 5) {
420
- trend = 'stable';
421
- }
422
- else if (changePercentage > 0) {
423
- trend = 'increasing';
424
- }
425
- else {
426
- trend = 'decreasing';
427
- }
428
- // Simple predictions (linear extrapolation)
429
- const avgChange = (lastValue - firstValue) / periodSnapshots.length;
430
- const predictions = {
431
- nextHour: lastValue + avgChange * 12, // Assuming 5-min intervals
432
- nextDay: lastValue + avgChange * 288,
433
- nextWeek: lastValue + avgChange * 2016,
434
- };
435
- return {
436
- workerName,
437
- metric,
438
- period,
439
- trend,
440
- changePercentage,
441
- predictions,
442
- };
443
- };
444
- /**
445
- * Resource Monitor - Sealed namespace
446
- */
447
- export const ResourceMonitor = Object.freeze({
448
- /**
449
- * Initialize resource monitor
450
- */
451
- initialize(config) {
452
- if (config) {
453
- costConfig = { ...DEFAULT_COST_CONFIG, ...config };
454
- }
455
- Logger.info('ResourceMonitor initialized', { costConfig });
456
- },
457
- /**
458
- * Check whether monitoring is running
459
- */
460
- isRunning() {
461
- return monitoringInterval !== null;
462
- },
463
- /**
464
- * Start monitoring
465
- */
466
- start(intervalSeconds = 30) {
467
- const globalResourceMonitoring = Env.getBool('WORKER_RESOURCE_MONITORING', false);
468
- if (!globalResourceMonitoring) {
469
- Logger.warn('ResourceMonitor disabled (WORKER_RESOURCE_MONITORING=false)');
470
- return;
471
- }
472
- if (monitoringInterval) {
473
- Logger.warn('ResourceMonitor already running');
474
- return;
475
- }
476
- monitoringInterval = setInterval(() => {
477
- const snapshot = captureSnapshot();
478
- // Store snapshot for later analysis
479
- // This would typically be saved to a time-series database
480
- Logger.debug('Resource snapshot captured', {
481
- cpu: snapshot.cpu.usage.toFixed(1) + '%',
482
- memory: snapshot.memory.usage.toFixed(1) + '%',
483
- });
484
- }, intervalSeconds * 1000);
485
- Logger.info('ResourceMonitor started', { intervalSeconds });
486
- },
487
- /**
488
- * Stop monitoring
489
- */
490
- stop() {
491
- if (monitoringInterval) {
492
- clearInterval(monitoringInterval);
493
- monitoringInterval = null;
494
- Logger.info('ResourceMonitor stopped');
495
- }
496
- },
497
- /**
498
- * Get current resource usage
499
- */
500
- getCurrentUsage(workerName, useSpotDiscount = false) {
501
- const snapshot = captureSnapshot();
502
- const cost = calculateCost(snapshot, useSpotDiscount);
503
- const efficiency = calculateEfficiency(snapshot);
504
- // Store in history
505
- let history = resourceHistory.get(workerName);
506
- if (!history) {
507
- history = [];
508
- resourceHistory.set(workerName, history);
509
- }
510
- history.push(snapshot);
511
- // Trim resource history to prevent memory leaks
512
- if (history.length > MAX_HISTORY_SIZE) {
513
- resourceHistory.set(workerName, history.slice(-MAX_HISTORY_SIZE));
514
- }
515
- // Check thresholds
516
- const alerts = checkThresholds(workerName, snapshot, cost);
517
- alerts.forEach((element) => {
518
- storeAlert(element);
519
- });
520
- return {
521
- workerName,
522
- cpu: snapshot.cpu.usage,
523
- memory: {
524
- number: snapshot.memory.total,
525
- percent: snapshot.memory.usage,
526
- used: snapshot.memory.used,
527
- free: snapshot.memory.free,
528
- },
529
- cost: {
530
- hourly: cost.perHour,
531
- daily: cost.perDay,
532
- },
533
- resourceSnapshot: snapshot,
534
- estimatedCost: cost,
535
- efficiency,
536
- };
537
- },
538
- /**
539
- * Get resource history
540
- */
541
- getHistory(workerName, limit = 100) {
542
- const history = resourceHistory.get(workerName) ?? [];
543
- return history.slice(-limit).map((s) => ({ ...s }));
544
- },
545
- /**
546
- * Get alerts
547
- */
548
- getAlerts(workerName, limit = 100) {
549
- const history = alertHistory.get(workerName) ?? [];
550
- return history.slice(-limit).map((a) => ({ ...a }));
551
- },
552
- /**
553
- * Get trend analysis
554
- */
555
- getTrend(workerName, metric, period) {
556
- return calculateTrend(workerName, metric, period);
557
- },
558
- /**
559
- * Get all trends
560
- */
561
- getAllTrends(workerName, period) {
562
- return {
563
- cpu: calculateTrend(workerName, 'cpu', period),
564
- memory: calculateTrend(workerName, 'memory', period),
565
- disk: calculateTrend(workerName, 'disk', period),
566
- network: calculateTrend(workerName, 'network', period),
567
- cost: calculateTrend(workerName, 'cost', period),
568
- };
569
- },
570
- /**
571
- * Update cost configuration
572
- */
573
- updateCostConfig(config) {
574
- costConfig = { ...costConfig, ...config };
575
- Logger.info('Resource monitor cost config updated', { costConfig });
576
- },
577
- /**
578
- * Get cost configuration
579
- */
580
- getCostConfig() {
581
- return { ...costConfig };
582
- },
583
- /**
584
- * Calculate projected cost
585
- */
586
- calculateProjectedCost(cpuUsagePercent, memoryGB, hoursPerDay, useSpotDiscount = false) {
587
- const cpuCores = safeCpuCount();
588
- const cpuCostPerHour = cpuCores * (cpuUsagePercent / 100) * costConfig.computeCostPerCoreHour;
589
- const memoryCostPerHour = memoryGB * costConfig.memoryCostPerGBHour;
590
- let totalCostPerHour = cpuCostPerHour + memoryCostPerHour;
591
- if (useSpotDiscount) {
592
- totalCostPerHour *= 1 - costConfig.spotInstanceDiscount / 100;
593
- }
594
- return {
595
- daily: totalCostPerHour * hoursPerDay,
596
- monthly: totalCostPerHour * hoursPerDay * 30,
597
- yearly: totalCostPerHour * hoursPerDay * 365,
598
- };
599
- },
600
- /**
601
- * Get system information
602
- */
603
- getSystemInfo() {
604
- return {
605
- platform: safePlatform(),
606
- arch: safeArch(),
607
- hostname: safeHostname(),
608
- cpus: safeCpuCount(),
609
- totalMemory: safeTotalMemory(),
610
- freeMemory: safeFreeMemory(),
611
- uptime: safeUptime(),
612
- };
613
- },
614
- /**
615
- * Clear history for a worker
616
- */
617
- clearHistory(workerName) {
618
- resourceHistory.delete(workerName);
619
- alertHistory.delete(workerName);
620
- Logger.info(`Cleared resource history for ${workerName}`);
621
- },
622
- /**
623
- * Shutdown
624
- */
625
- shutdown() {
626
- ResourceMonitor.stop();
627
- resourceHistory.clear();
628
- alertHistory.clear();
629
- Logger.info('ResourceMonitor shutdown complete');
630
- },
631
- });
632
- // Graceful shutdown handled by WorkerShutdown