@zintrust/workers 0.1.29 → 0.1.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 (111) hide show
  1. package/README.md +16 -1
  2. package/dist/AnomalyDetection.d.ts +4 -0
  3. package/dist/AnomalyDetection.js +8 -0
  4. package/dist/BroadcastWorker.d.ts +2 -0
  5. package/dist/CanaryController.js +49 -5
  6. package/dist/ChaosEngineering.js +13 -0
  7. package/dist/ClusterLock.js +21 -10
  8. package/dist/DeadLetterQueue.js +12 -8
  9. package/dist/MultiQueueWorker.d.ts +1 -1
  10. package/dist/MultiQueueWorker.js +12 -7
  11. package/dist/NotificationWorker.d.ts +2 -0
  12. package/dist/PriorityQueue.d.ts +2 -2
  13. package/dist/PriorityQueue.js +20 -21
  14. package/dist/ResourceMonitor.js +65 -38
  15. package/dist/WorkerFactory.d.ts +23 -3
  16. package/dist/WorkerFactory.js +420 -40
  17. package/dist/WorkerInit.js +8 -3
  18. package/dist/WorkerMetrics.d.ts +2 -1
  19. package/dist/WorkerMetrics.js +152 -93
  20. package/dist/WorkerRegistry.d.ts +6 -0
  21. package/dist/WorkerRegistry.js +70 -1
  22. package/dist/WorkerShutdown.d.ts +21 -0
  23. package/dist/WorkerShutdown.js +82 -9
  24. package/dist/WorkerShutdownDurableObject.d.ts +12 -0
  25. package/dist/WorkerShutdownDurableObject.js +41 -0
  26. package/dist/build-manifest.json +171 -99
  27. package/dist/createQueueWorker.d.ts +2 -0
  28. package/dist/createQueueWorker.js +42 -27
  29. package/dist/dashboard/types.d.ts +5 -0
  30. package/dist/dashboard/workers-api.js +136 -43
  31. package/dist/http/WorkerApiController.js +1 -0
  32. package/dist/http/WorkerController.js +133 -85
  33. package/dist/http/WorkerMonitoringService.d.ts +11 -0
  34. package/dist/http/WorkerMonitoringService.js +62 -0
  35. package/dist/http/middleware/CustomValidation.js +1 -1
  36. package/dist/http/middleware/EditWorkerValidation.d.ts +1 -1
  37. package/dist/http/middleware/EditWorkerValidation.js +7 -6
  38. package/dist/http/middleware/ProcessorPathSanitizer.js +101 -35
  39. package/dist/http/middleware/WorkerValidationChain.js +1 -0
  40. package/dist/index.d.ts +2 -1
  41. package/dist/index.js +1 -0
  42. package/dist/routes/workers.js +48 -6
  43. package/dist/storage/WorkerStore.d.ts +4 -1
  44. package/dist/storage/WorkerStore.js +55 -7
  45. package/dist/telemetry/api/TelemetryAPI.d.ts +46 -0
  46. package/dist/telemetry/api/TelemetryAPI.js +219 -0
  47. package/dist/telemetry/api/TelemetryMonitoringService.d.ts +17 -0
  48. package/dist/telemetry/api/TelemetryMonitoringService.js +113 -0
  49. package/dist/telemetry/components/AlertPanel.d.ts +1 -0
  50. package/dist/telemetry/components/AlertPanel.js +13 -0
  51. package/dist/telemetry/components/CostTracking.d.ts +1 -0
  52. package/dist/telemetry/components/CostTracking.js +14 -0
  53. package/dist/telemetry/components/ResourceUsageChart.d.ts +1 -0
  54. package/dist/telemetry/components/ResourceUsageChart.js +11 -0
  55. package/dist/telemetry/components/WorkerHealthChart.d.ts +1 -0
  56. package/dist/telemetry/components/WorkerHealthChart.js +11 -0
  57. package/dist/telemetry/index.d.ts +15 -0
  58. package/dist/telemetry/index.js +60 -0
  59. package/dist/telemetry/routes/dashboard.d.ts +6 -0
  60. package/dist/telemetry/routes/dashboard.js +608 -0
  61. package/dist/ui/router/EmbeddedAssets.d.ts +4 -0
  62. package/dist/ui/router/EmbeddedAssets.js +13 -0
  63. package/dist/ui/router/ui.js +100 -4
  64. package/package.json +10 -6
  65. package/src/AnomalyDetection.ts +9 -0
  66. package/src/CanaryController.ts +41 -5
  67. package/src/ChaosEngineering.ts +14 -0
  68. package/src/ClusterLock.ts +22 -9
  69. package/src/DeadLetterQueue.ts +13 -8
  70. package/src/MultiQueueWorker.ts +15 -8
  71. package/src/PriorityQueue.ts +21 -22
  72. package/src/ResourceMonitor.ts +72 -40
  73. package/src/WorkerFactory.ts +545 -49
  74. package/src/WorkerInit.ts +8 -3
  75. package/src/WorkerMetrics.ts +183 -105
  76. package/src/WorkerRegistry.ts +80 -1
  77. package/src/WorkerShutdown.ts +115 -9
  78. package/src/WorkerShutdownDurableObject.ts +64 -0
  79. package/src/createQueueWorker.ts +73 -30
  80. package/src/dashboard/types.ts +5 -0
  81. package/src/dashboard/workers-api.ts +165 -52
  82. package/src/http/WorkerApiController.ts +1 -0
  83. package/src/http/WorkerController.ts +167 -90
  84. package/src/http/WorkerMonitoringService.ts +77 -0
  85. package/src/http/middleware/CustomValidation.ts +1 -1
  86. package/src/http/middleware/EditWorkerValidation.ts +7 -6
  87. package/src/http/middleware/ProcessorPathSanitizer.ts +123 -36
  88. package/src/http/middleware/WorkerValidationChain.ts +1 -0
  89. package/src/index.ts +6 -1
  90. package/src/routes/workers.ts +66 -9
  91. package/src/storage/WorkerStore.ts +59 -9
  92. package/src/telemetry/api/TelemetryAPI.ts +292 -0
  93. package/src/telemetry/api/TelemetryMonitoringService.ts +149 -0
  94. package/src/telemetry/components/AlertPanel.ts +13 -0
  95. package/src/telemetry/components/CostTracking.ts +14 -0
  96. package/src/telemetry/components/ResourceUsageChart.ts +11 -0
  97. package/src/telemetry/components/WorkerHealthChart.ts +11 -0
  98. package/src/telemetry/index.ts +121 -0
  99. package/src/telemetry/public/assets/zintrust-logo.svg +15 -0
  100. package/src/telemetry/routes/dashboard.ts +638 -0
  101. package/src/telemetry/styles/tailwind.css +1 -0
  102. package/src/telemetry/styles/zintrust-theme.css +8 -0
  103. package/src/ui/router/EmbeddedAssets.ts +13 -0
  104. package/src/ui/router/ui.ts +112 -5
  105. package/src/ui/workers/index.html +2 -2
  106. package/src/ui/workers/main.js +232 -61
  107. package/src/ui/workers/zintrust.svg +30 -0
  108. package/dist/dashboard/workers-dashboard-ui.d.ts +0 -3
  109. package/dist/dashboard/workers-dashboard-ui.js +0 -1026
  110. package/dist/dashboard/workers-dashboard.d.ts +0 -4
  111. package/dist/dashboard/workers-dashboard.js +0 -904
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@zintrust/workers",
3
- "version": "0.1.27",
4
- "buildDate": "2026-01-29T10:20:40.563Z",
3
+ "version": "0.1.28",
4
+ "buildDate": "2026-02-10T09:32:57.876Z",
5
5
  "buildEnvironment": {
6
- "node": "v22.20.0",
6
+ "node": "v24.2.0",
7
7
  "platform": "darwin",
8
8
  "arch": "arm64"
9
9
  },
10
10
  "git": {
11
- "commit": "15551a6c",
11
+ "commit": "07c62537",
12
12
  "branch": "dev"
13
13
  },
14
14
  "package": {
@@ -29,12 +29,12 @@
29
29
  },
30
30
  "files": {
31
31
  "AnomalyDetection.d.ts": {
32
- "size": 2697,
33
- "sha256": "edc6131a4639763486fda7e116639e1f3b115abda30d6f12b503a0f4b9999f18"
32
+ "size": 2795,
33
+ "sha256": "b040ec01b09c539ec294b76ecd6602dff75c8c58e7c915732bc710c869232e51"
34
34
  },
35
35
  "AnomalyDetection.js": {
36
- "size": 10768,
37
- "sha256": "0fb099363920b67156b27ee8ca3c3c380000cdd88196951539967b9bca3d51d4"
36
+ "size": 11010,
37
+ "sha256": "fd1716706c89e7200a49ed8b6d563688c7158af3a0c9ac2e78e770e4d3a79879"
38
38
  },
39
39
  "AutoScaler.d.ts": {
40
40
  "size": 3238,
@@ -45,8 +45,8 @@
45
45
  "sha256": "1a6d9ea39ba9e17fc16eb52294c10c3912024cb3009a8f9c07ffa576e754c7f4"
46
46
  },
47
47
  "BroadcastWorker.d.ts": {
48
- "size": 729,
49
- "sha256": "e7e978db0c52066a55a42626a1f3d90a95cf9a96cc3d8a3607071226eb446ca0"
48
+ "size": 793,
49
+ "sha256": "63d5877e1363fd8f43cd0b0f63efca27a46e46fc2203cc073bd4110bb8e673b9"
50
50
  },
51
51
  "BroadcastWorker.js": {
52
52
  "size": 818,
@@ -57,16 +57,16 @@
57
57
  "sha256": "1a371a5b026858f3c50f8f9f64517dc113bdbd7d18120b0e28f2c723c9680afe"
58
58
  },
59
59
  "CanaryController.js": {
60
- "size": 13815,
61
- "sha256": "a36340512f511c07e6fcbfee9ab93dbf0fd8845507912f8559082a4d57c6d445"
60
+ "size": 15348,
61
+ "sha256": "41a2969bcfa00429cdebe39f46f3d80812b960eecca975d386806230366402a0"
62
62
  },
63
63
  "ChaosEngineering.d.ts": {
64
64
  "size": 2121,
65
65
  "sha256": "83962b97a263e1824b86d5dc99ae6aae0d0535271e824525a9a251a51193cf69"
66
66
  },
67
67
  "ChaosEngineering.js": {
68
- "size": 8118,
69
- "sha256": "2b488e6fc0fe30e3d059f1cffa52bccd53508370c4d0c6074e56a5f8ff9f9e19"
68
+ "size": 8599,
69
+ "sha256": "193792b28f7c57df5440ad60e438096146492cbcec7bfea03d24cec88472b82b"
70
70
  },
71
71
  "CircuitBreaker.d.ts": {
72
72
  "size": 3007,
@@ -81,8 +81,8 @@
81
81
  "sha256": "77439b1e80a344ff2de380082886addda0e8ca0419e57e7039e9f6ad4c596462"
82
82
  },
83
83
  "ClusterLock.js": {
84
- "size": 13023,
85
- "sha256": "8f60ad9905187f81897c858bbfe6d84854be0cb321e4d0e03b4c6a0b1e962177"
84
+ "size": 13421,
85
+ "sha256": "f7fd744be535efee23c76bacc249b902633e3bbfd5d856a1c79e5c68b3146d3a"
86
86
  },
87
87
  "ComplianceManager.d.ts": {
88
88
  "size": 5142,
@@ -105,8 +105,8 @@
105
105
  "sha256": "dd82e7e2c23a2fcaefc0cb87a1a7931594d6a5f76b758f608c77063f5e8533cd"
106
106
  },
107
107
  "DeadLetterQueue.js": {
108
- "size": 19268,
109
- "sha256": "305fc6ac76bbb7f24ee12994707b4c10dab6ef0c6358032302235a2f037fb2b0"
108
+ "size": 19374,
109
+ "sha256": "5b57199645714a71c065027d18f987e6e387a336372cb1cb0f12fe15a53853a0"
110
110
  },
111
111
  "HealthMonitor.d.ts": {
112
112
  "size": 1485,
@@ -117,16 +117,16 @@
117
117
  "sha256": "83f5d496f791a7770bf71e8001fa27a3300213a6f8744443bc95bc47b4ddc45a"
118
118
  },
119
119
  "MultiQueueWorker.d.ts": {
120
- "size": 2302,
121
- "sha256": "5b8a7a102a07d095ffa907a56a4f165db1ef8e3922967176f9b4d3d424f8c1d9"
120
+ "size": 2311,
121
+ "sha256": "45d2b0a22c187de40aaf8d26ec69b051ae1fc08eff0c200dd93ed03e2406c066"
122
122
  },
123
123
  "MultiQueueWorker.js": {
124
- "size": 10421,
125
- "sha256": "6ebb4ee28dacac47acb2d662ffc486902b05e856c2227cfef1185eec48f4582b"
124
+ "size": 10705,
125
+ "sha256": "0854157c8ec6a411f9975c9482ff52715428d205055cb4156649b98f589dfdcf"
126
126
  },
127
127
  "NotificationWorker.d.ts": {
128
- "size": 747,
129
- "sha256": "c9c8efcc69e337b780393fc28fb59e285b222e12926a0c7d567bcd04b19f7068"
128
+ "size": 811,
129
+ "sha256": "dd22674e6955c32c7ac7af8af8fee583e62d4f0e224da14a72a7f1799e734f96"
130
130
  },
131
131
  "NotificationWorker.js": {
132
132
  "size": 825,
@@ -149,20 +149,20 @@
149
149
  "sha256": "d94f1d15984d27903b2dbdf2134c5cb06bdaed6950a0c8355009651df2758600"
150
150
  },
151
151
  "PriorityQueue.d.ts": {
152
- "size": 3174,
153
- "sha256": "c7610ac74b5e1ce9cae991d15b8eeecadc1a7732fcf42a8a4a95ecbea29f19de"
152
+ "size": 3192,
153
+ "sha256": "6bc40c45a02709ac6b48c8f9d74008819034c86659b4cd880300225b3002dc2a"
154
154
  },
155
155
  "PriorityQueue.js": {
156
- "size": 8689,
157
- "sha256": "348cce03da64d4b2b6131dfb37903c81e9005781951485f4a6afaf925fe8f2ce"
156
+ "size": 8718,
157
+ "sha256": "f8ed5f5dc27ffe0d610eb758a0094bcdc3af39512d1ee824852872eeaf185245"
158
158
  },
159
159
  "ResourceMonitor.d.ts": {
160
160
  "size": 4019,
161
161
  "sha256": "97e85eb898813f03871bd3bc0b9dbe67777feb198366b27b01a5281224135e79"
162
162
  },
163
163
  "ResourceMonitor.js": {
164
- "size": 18456,
165
- "sha256": "a3a9f44a5b801acd91e9559f5a9850b689755329caaa480172a200f814fa619d"
164
+ "size": 19605,
165
+ "sha256": "cdf240f3fb1377c456a65b7020220e91ddd95f1bb38a00ff5ca0f8094b6610f0"
166
166
  },
167
167
  "SLAMonitor.d.ts": {
168
168
  "size": 2727,
@@ -173,44 +173,52 @@
173
173
  "sha256": "3785712c1cc30f4cfbdaebfc738f5e2b4dc0dd80134f78c42e24287909803b2c"
174
174
  },
175
175
  "WorkerFactory.d.ts": {
176
- "size": 6405,
177
- "sha256": "8cfd3b1743f21b11c16a1f8f6285354626ecbe957e3e5b79801165a42289b716"
176
+ "size": 7309,
177
+ "sha256": "12abe348ec48d7afe0299900c25bed681b253bac189f4a5bb8841265cc070e52"
178
178
  },
179
179
  "WorkerFactory.js": {
180
- "size": 60631,
181
- "sha256": "a285c6d9f3405d805cc90245994bbef55d041f18b7e86b6bde00dbf8dd5035bd"
180
+ "size": 75764,
181
+ "sha256": "8716e00ca689d21672a8f848f90903384ce030883742b87a1f53c0c2bd5a0e15"
182
182
  },
183
183
  "WorkerInit.d.ts": {
184
184
  "size": 2391,
185
185
  "sha256": "8a6fdec7b592dd92162b3ad1b3d3fd6462abcf11028e510dbdb747748774d626"
186
186
  },
187
187
  "WorkerInit.js": {
188
- "size": 8300,
189
- "sha256": "53b1a50358db46f640d257613215b0c80d9e15cd599044d49459cd223987743a"
188
+ "size": 8578,
189
+ "sha256": "7b708ba18da377f119a18ebba8c4a76306c0bfd1fbf304bdeb119bc85c205740"
190
190
  },
191
191
  "WorkerMetrics.d.ts": {
192
- "size": 3285,
193
- "sha256": "e68d3abf7e83bb3c0317c518325653ef3468a2a989a888ff997ce56ccc64e50f"
192
+ "size": 3304,
193
+ "sha256": "5b684f87668bba86825625c20dda162915674e8c0fe3c3a32e05a2d9951c985f"
194
194
  },
195
195
  "WorkerMetrics.js": {
196
- "size": 18875,
197
- "sha256": "a95f130989a9ffccbd77a8955568c0b603ef89a04c8f166b14fac8814407086f"
196
+ "size": 20445,
197
+ "sha256": "7c909fefe4011e77359a2d2586ffa42e3f6b4046f37fef5b8d182bccee30daa1"
198
198
  },
199
199
  "WorkerRegistry.d.ts": {
200
- "size": 3753,
201
- "sha256": "93221bc5169d8a6c637a6d25628a6863067f6b33f8f86fdb59ad3313fb95908d"
200
+ "size": 3941,
201
+ "sha256": "878d9f85c5496c4ccab01593b6950306dc74117845e00294e98eb211eea9dbb3"
202
202
  },
203
203
  "WorkerRegistry.js": {
204
- "size": 10095,
205
- "sha256": "0f4dd173a9193a3eacb367d43ca0db912d3fa98e1a85fdd8a3a4a26265feccfe"
204
+ "size": 12455,
205
+ "sha256": "d0ea122ae97cdb9928080875ebce10c2790f3f2ca5defff14033d52bfa3c158f"
206
206
  },
207
207
  "WorkerShutdown.d.ts": {
208
- "size": 1607,
209
- "sha256": "f7c77d325f325729976206e1666d6d084ae486e08e047e5cea6ce8bfafbb3359"
208
+ "size": 2268,
209
+ "sha256": "56d8121a33840b133ab6b152e0017d94637f73d52dbad454a98f871a7735e9c3"
210
210
  },
211
211
  "WorkerShutdown.js": {
212
- "size": 5371,
213
- "sha256": "6c25fe18b27b881acfd2b424d31bbbcbb57ae2bd3c0d86d4ee54b8a28e3e9cb9"
212
+ "size": 7989,
213
+ "sha256": "57c859eb52f7c4728e0d8ddd526b49d04c6617572023040c446caafd143975a3"
214
+ },
215
+ "WorkerShutdownDurableObject.d.ts": {
216
+ "size": 354,
217
+ "sha256": "521df11172067bc036bc7b95ff6adf40b7c594afa0454742963317ddfe776d37"
218
+ },
219
+ "WorkerShutdownDurableObject.js": {
220
+ "size": 1547,
221
+ "sha256": "9c7298133dfc4073fda80d3fe9a37ac00d31cacf500ce10c1dd43a70c3a8ddd7"
214
222
  },
215
223
  "WorkerVersioning.d.ts": {
216
224
  "size": 2881,
@@ -221,8 +229,8 @@
221
229
  "sha256": "8af20d462270e7044c6ea983821f5b6e6ce8a5caf39b6e8fefff07c9a0bf071e"
222
230
  },
223
231
  "build-manifest.json": {
224
- "size": 16012,
225
- "sha256": "a0f6ef230375ffbef2eac3f2275ff5c34327b10806a4a2c057f8bbad566f33ed"
232
+ "size": 18707,
233
+ "sha256": "210a657bfa19b96a61a90931e4d6a1b69d01d79864329853f211a1a67274fd76"
226
234
  },
227
235
  "config/workerConfig.d.ts": {
228
236
  "size": 86,
@@ -233,12 +241,12 @@
233
241
  "sha256": "ca1c6dbaa751893f0e6b7c8a7fd41a80f7d5e8fc9aaaa4877ca12821bb25f56f"
234
242
  },
235
243
  "createQueueWorker.d.ts": {
236
- "size": 826,
237
- "sha256": "e3964829434afad2bc44ba45d6636ef59335586904645ea0b36f1378dda4b6f2"
244
+ "size": 890,
245
+ "sha256": "c0e07ac27f1ec74fff817ce82eb1cbcfae45ab3cd079748766dcbf4a73c5ec98"
238
246
  },
239
247
  "createQueueWorker.js": {
240
- "size": 4585,
241
- "sha256": "49c8d8f3b44adaeb9f8e3067007ab317d6b59bb2ba31cf4eac605bef6e91f088"
248
+ "size": 5606,
249
+ "sha256": "f5d99827ce445d25ad75995d838e929f6a11625ad19b8fee0ad5844383a59bcb"
242
250
  },
243
251
  "dashboard/index.d.ts": {
244
252
  "size": 109,
@@ -249,8 +257,8 @@
249
257
  "sha256": "8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"
250
258
  },
251
259
  "dashboard/types.d.ts": {
252
- "size": 3062,
253
- "sha256": "b17b1722d099b36e19fce2ae62bb7f808b7ab3e57f827517bed0e2ce31a33bec"
260
+ "size": 3219,
261
+ "sha256": "ae36f01889b0e3eb1780d356597df259b1bd2bc2f8d839c5f5d85ce2c5b5af92"
254
262
  },
255
263
  "dashboard/types.js": {
256
264
  "size": 11,
@@ -261,24 +269,8 @@
261
269
  "sha256": "8e0e04329e1119d8ae835dd4458efead084293bcc2c263c09dd5a19d467e5ca4"
262
270
  },
263
271
  "dashboard/workers-api.js": {
264
- "size": 23036,
265
- "sha256": "dbb713e58f978e41ec9a407c2f034e58ed0a2b1989341e9a9e51aa133484cd12"
266
- },
267
- "dashboard/workers-dashboard-ui.d.ts": {
268
- "size": 151,
269
- "sha256": "955e1d5470e62ec658d7c4350de5ae672b498d49a02b4c45adda7faa01b181d9"
270
- },
271
- "dashboard/workers-dashboard-ui.js": {
272
- "size": 19521,
273
- "sha256": "f17991d96ed7953a465c2fc4e5e3f32f648adc8a603f89c8851ad1eada8a4dab"
274
- },
275
- "dashboard/workers-dashboard.d.ts": {
276
- "size": 381,
277
- "sha256": "4fe6a3a00738d75e8cfbb86f9d470b95a55227a0d7a64afb597501f3dbc5b8ea"
278
- },
279
- "dashboard/workers-dashboard.js": {
280
- "size": 40150,
281
- "sha256": "f6c3ddce5e197a9bc931d6438599562f0804001341ae3357e296032e21707d2b"
272
+ "size": 26545,
273
+ "sha256": "71bf8974c17465ed79fdf9caf342d338d9aae0e4c4cde85af9e90e00aca07f78"
282
274
  },
283
275
  "helper/index.d.ts": {
284
276
  "size": 159,
@@ -293,24 +285,32 @@
293
285
  "sha256": "6252e1021300664928f01d19b76cbf50d0d4a0cee3080cbfba50184185c88304"
294
286
  },
295
287
  "http/WorkerApiController.js": {
296
- "size": 10805,
297
- "sha256": "b733d7b80050635ee2d4c81615c1c5363a0b871a7dac7811f268c0a5de2dd01e"
288
+ "size": 10884,
289
+ "sha256": "161e7716c4cf122a3fa63f1b9ae5a38de64f3c7c20a1dbd29bf929ca9a920dc5"
298
290
  },
299
291
  "http/WorkerController.d.ts": {
300
292
  "size": 16824,
301
293
  "sha256": "8904ac1008c244b5131d6ccfa28f588e53fb25311e64566bf98b3e39de892604"
302
294
  },
303
295
  "http/WorkerController.js": {
304
- "size": 47781,
305
- "sha256": "83837b3a5faf5b95d5a429b4906ac30fe6c2e876ddddcbb1feebd4991f425ea4"
296
+ "size": 49768,
297
+ "sha256": "9b47f089799ada681e361cab224283b11441b748d41667adbce1a59aeed9a69e"
298
+ },
299
+ "http/WorkerMonitoringService.d.ts": {
300
+ "size": 302,
301
+ "sha256": "9817267882d71db55d692fc7092a1ed2aee99e379b238f82d600315c36f2ded8"
302
+ },
303
+ "http/WorkerMonitoringService.js": {
304
+ "size": 1884,
305
+ "sha256": "da330fc9ece6a451431e7be3d064eead8a04e4bf5c38845dfb48ab7e775e7966"
306
306
  },
307
307
  "http/middleware/CustomValidation.d.ts": {
308
308
  "size": 2272,
309
309
  "sha256": "a091779c3f6176d689240173205ecaea0a82725a0a9b6e1ace0663f9232fe957"
310
310
  },
311
311
  "http/middleware/CustomValidation.js": {
312
- "size": 8850,
313
- "sha256": "cefd97bf8acf083823eacddfbedfa5d4ab1f64e3b4a61f7eea4359238380f7cb"
312
+ "size": 8862,
313
+ "sha256": "386109c6cdd32d61447f77b0b542b0627199c15d982341b08e3b586bf5d1ed84"
314
314
  },
315
315
  "http/middleware/DatacenterValidator.d.ts": {
316
316
  "size": 236,
@@ -322,11 +322,11 @@
322
322
  },
323
323
  "http/middleware/EditWorkerValidation.d.ts": {
324
324
  "size": 379,
325
- "sha256": "476857887601c86822522e1223d5917c40bade38996e6fc7fa26e3c7a2d5ccec"
325
+ "sha256": "cbcc23359eabeee20158383b284bbe6e59032a0c0d0bf034d1ac78d8f307d73e"
326
326
  },
327
327
  "http/middleware/EditWorkerValidation.js": {
328
- "size": 2515,
329
- "sha256": "cc0f0da04fdd18fb6837c2373311f07da133b31391f1a21e39aeda8e3b1bdf55"
328
+ "size": 2509,
329
+ "sha256": "2907d5fce820b436f4803aa4e39d3d13d8b60dd0d4e12f5b9735459500b028d8"
330
330
  },
331
331
  "http/middleware/FeaturesValidator.d.ts": {
332
332
  "size": 234,
@@ -365,8 +365,8 @@
365
365
  "sha256": "38984c96cdd09dd67aae1ce90789e549e137999c1a804011be7c4ab3931d0ad7"
366
366
  },
367
367
  "http/middleware/ProcessorPathSanitizer.js": {
368
- "size": 3464,
369
- "sha256": "8d4db82aa29cbfe5620d0b01f28e22b0c6da4fb9035b4da9ff5f25b38ea0be87"
368
+ "size": 5234,
369
+ "sha256": "857f95620d5619725c84ffd154a4517f2b3a14e7360280b549a4a2a5c1bf8bcc"
370
370
  },
371
371
  "http/middleware/QueueNameSanitizer.d.ts": {
372
372
  "size": 235,
@@ -405,32 +405,96 @@
405
405
  "sha256": "4cfa465ed77f33ecdcc2442ac02ea86a843ec7b282dd3f9b2887b97eeb368896"
406
406
  },
407
407
  "http/middleware/WorkerValidationChain.js": {
408
- "size": 8154,
409
- "sha256": "f8ad3ca0e3b25a93a3311c1cc52a3c053c8a0c2aa514469058a67ec8ed8a2971"
408
+ "size": 8178,
409
+ "sha256": "e5d5fcafe14fb58ac84eea119e0147cd090461be2591cb7e0737b11f138cc38e"
410
410
  },
411
411
  "index.d.ts": {
412
- "size": 2560,
413
- "sha256": "333d1433cf26d6e4d0ab1a5b0da4400846fd924aacce8e7d8e5305b4253290c6"
412
+ "size": 2686,
413
+ "sha256": "419daba8f9abd1fdf02adbe122392027740480a84dbdd108f8835588801c8185"
414
414
  },
415
415
  "index.js": {
416
- "size": 2142,
417
- "sha256": "afe0657df6f04542ca71e7a8d827f122075f22a073b76e17b7c2a2b1bd007913"
416
+ "size": 2227,
417
+ "sha256": "0bb1d1b35e449785ef5794031bddea3516413a1febb8a52d79b8bdba63b3a354"
418
418
  },
419
419
  "routes/workers.d.ts": {
420
420
  "size": 498,
421
421
  "sha256": "c0011a4e83bf760dafcd57fea0e163fd3d139f2800c969cd79c910cb105b8ce5"
422
422
  },
423
423
  "routes/workers.js": {
424
- "size": 4757,
425
- "sha256": "083345ba04e490250aacbce23fae983cc8d5e78284626db52b334bcb7101bca1"
424
+ "size": 6669,
425
+ "sha256": "e57d905a1e8e512b914887178a16195da4cf4561d1400e5c3660d4ba024cedb8"
426
426
  },
427
427
  "storage/WorkerStore.d.ts": {
428
- "size": 1419,
429
- "sha256": "529cc980d87862d0a367da0b2b0db8aa999a0e9d9de564162efbbd7ff106ddf2"
428
+ "size": 1565,
429
+ "sha256": "f85e584acca4cbf9b6db5b6c2c011d5e9823f59e0ebb332aaecca1e2a1b7af0e"
430
430
  },
431
431
  "storage/WorkerStore.js": {
432
- "size": 7250,
433
- "sha256": "2b54886f761c66ec6c92c958751bf34b8c0242c2db11333d65410b1183759502"
432
+ "size": 9476,
433
+ "sha256": "d8ed4e8e1f455f44160aaf201fd4a9f00ac4045932b0e95deee4a645166b27a5"
434
+ },
435
+ "telemetry/api/TelemetryAPI.d.ts": {
436
+ "size": 1084,
437
+ "sha256": "bfc96bd00e3f18e33315b0a5f4454efbb2ba1320130559750e8ff8a6703d55ec"
438
+ },
439
+ "telemetry/api/TelemetryAPI.js": {
440
+ "size": 8579,
441
+ "sha256": "0995b07f5afe63ad376daa8f91067f04b3dbafd8859bb129c343742b6facb881"
442
+ },
443
+ "telemetry/api/TelemetryMonitoringService.d.ts": {
444
+ "size": 787,
445
+ "sha256": "a03809b0508f3f3ee9ed545c7932635cd84f33c11305f1b3096662ea960a7289"
446
+ },
447
+ "telemetry/api/TelemetryMonitoringService.js": {
448
+ "size": 3493,
449
+ "sha256": "d7366c786c1fa380977dcad9045fc1b4d0201d94d23bbce776b32f19a0b9c1fe"
450
+ },
451
+ "telemetry/components/AlertPanel.d.ts": {
452
+ "size": 53,
453
+ "sha256": "a36bdcaca7a8f947817eab06f9969c3b17de3bcfe33b97ebf9aea22805eac276"
454
+ },
455
+ "telemetry/components/AlertPanel.js": {
456
+ "size": 369,
457
+ "sha256": "cc44d0daa43658142404a5459df911533b367eaa1b7613fe12935539747ab857"
458
+ },
459
+ "telemetry/components/CostTracking.d.ts": {
460
+ "size": 55,
461
+ "sha256": "892b4ee586454058be37c4c3ee099e746b94cc57501bd6992310ab27ec146a46"
462
+ },
463
+ "telemetry/components/CostTracking.js": {
464
+ "size": 433,
465
+ "sha256": "fb2f8aea53276479c82ebff74124422a0992f4ca626e18a3c11338a352c33ed5"
466
+ },
467
+ "telemetry/components/ResourceUsageChart.d.ts": {
468
+ "size": 61,
469
+ "sha256": "c1e4b41879b3d499ba8e28d64ae3cc7a1a6b0bf6d8ae0fe417e756c1c73a4837"
470
+ },
471
+ "telemetry/components/ResourceUsageChart.js": {
472
+ "size": 332,
473
+ "sha256": "4ca6b0acf154f879e9222412f756b0824a35a03d60def0a78d1926a56b6d2385"
474
+ },
475
+ "telemetry/components/WorkerHealthChart.d.ts": {
476
+ "size": 60,
477
+ "sha256": "7287ab834c3c69d00e758f5d141d639af841b859437355ba81b5dd82208a00e9"
478
+ },
479
+ "telemetry/components/WorkerHealthChart.js": {
480
+ "size": 321,
481
+ "sha256": "14d7d15d37dc7d0d74536cc377abe454b76058558bc6e28e5459d0ce730fc8ec"
482
+ },
483
+ "telemetry/index.d.ts": {
484
+ "size": 484,
485
+ "sha256": "f4ca20855fed25e2a568057b7da136af35f26297fc0bf7f9cf1bb514e6dc487d"
486
+ },
487
+ "telemetry/index.js": {
488
+ "size": 2492,
489
+ "sha256": "82d6502859551838efb1756021d762cec4a26ef592216b8156d1dfb2a2618555"
490
+ },
491
+ "telemetry/routes/dashboard.d.ts": {
492
+ "size": 197,
493
+ "sha256": "1b487b6e9cedbcb00cde7e920fb128724cb21aa154160e0bd02b02e2a0bd7334"
494
+ },
495
+ "telemetry/routes/dashboard.js": {
496
+ "size": 23031,
497
+ "sha256": "0f166994fbb523016b3bebf748fd6fd751e68d925e974f3b5cd31472c5066601"
434
498
  },
435
499
  "type.d.ts": {
436
500
  "size": 1649,
@@ -440,13 +504,21 @@
440
504
  "size": 11,
441
505
  "sha256": "8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"
442
506
  },
507
+ "ui/router/EmbeddedAssets.d.ts": {
508
+ "size": 123303,
509
+ "sha256": "f399de7c4b24b077f9c1ceebad5cfffc9c4d3190f2e661448de9b86649beaa92"
510
+ },
511
+ "ui/router/EmbeddedAssets.js": {
512
+ "size": 123309,
513
+ "sha256": "0cbbd0b93ba0f52414ce0ec216d6455b9ef90c2c5b1d8e55bba59da50c41346c"
514
+ },
443
515
  "ui/router/ui.d.ts": {
444
516
  "size": 226,
445
517
  "sha256": "2e7e0cf6daa881873ead99bdc670f1784760cfc64fa5cdaebb463bd9444e40ae"
446
518
  },
447
519
  "ui/router/ui.js": {
448
- "size": 3258,
449
- "sha256": "0a3b0fca5703ceccfe66cd8b47859e19aee18b0e8f9543bbe29e8debf938a43a"
520
+ "size": 6657,
521
+ "sha256": "731de676131d94a793d42386dd8e7c4a346e1ee43d7c4ec41effba9f9cee9200"
450
522
  },
451
523
  "ui/types/worker-ui.d.ts": {
452
524
  "size": 5685,
@@ -5,11 +5,13 @@ type QueueWorker = {
5
5
  queueName?: string;
6
6
  driverName?: string;
7
7
  maxItems?: number;
8
+ maxDurationMs?: number;
8
9
  }) => Promise<number>;
9
10
  startWorker: (opts?: {
10
11
  queueName?: string;
11
12
  driverName?: string;
12
13
  signal?: AbortSignal;
14
+ maxDurationMs?: number;
13
15
  }) => Promise<number>;
14
16
  };
15
17
  export type CreateQueueWorkerOptions<TPayload> = {
@@ -47,7 +47,8 @@ const createProcessOne = (options) => {
47
47
  });
48
48
  }
49
49
  await Queue.ack(queueName, message.id, driverName);
50
- return false;
50
+ // We processed the message (even if it failed), so return true to continue processing
51
+ return true;
51
52
  }
52
53
  };
53
54
  };
@@ -66,42 +67,56 @@ const createProcessAll = (defaultQueueName, processOne) => {
66
67
  };
67
68
  const createRunOnce = (defaultQueueName, processOne) => {
68
69
  return async (opts = {}) => {
69
- const { queueName = defaultQueueName, driverName, maxItems } = opts;
70
- let processed = 0;
71
- if (maxItems === undefined) {
70
+ const { queueName = defaultQueueName, driverName, maxItems, maxDurationMs = 30000, concurrency = 1, } = opts;
71
+ const startTime = Date.now();
72
+ let totalProcessed = 0;
73
+ // Helper for single worker loop
74
+ const runWorker = async () => {
75
+ let workerProcessed = 0;
72
76
  while (true) {
77
+ if (maxDurationMs > 0 && Date.now() - startTime > maxDurationMs) {
78
+ break;
79
+ }
80
+ if (maxItems !== undefined && totalProcessed >= maxItems) {
81
+ break;
82
+ }
73
83
  // eslint-disable-next-line no-await-in-loop
74
84
  const didProcess = await processOne(queueName, driverName);
75
85
  if (!didProcess)
76
86
  break;
77
- processed++;
87
+ workerProcessed++;
88
+ totalProcessed++; // Shared counter (approximation in parallel)
78
89
  }
79
- return processed;
80
- }
81
- for (let i = 0; i < maxItems; i++) {
82
- // eslint-disable-next-line no-await-in-loop
83
- const didProcess = await processOne(queueName, driverName);
84
- if (!didProcess)
85
- break;
86
- processed++;
87
- }
88
- return processed;
90
+ return workerProcessed;
91
+ };
92
+ // Run workers in parallel
93
+ await Promise.all(Array.from({ length: Math.max(1, concurrency) }).map(() => runWorker()));
94
+ return totalProcessed;
89
95
  };
90
96
  };
91
97
  const createStartWorker = (kindLabel, defaultQueueName, processOne) => {
92
98
  return async (opts = {}) => {
93
- const { queueName = defaultQueueName, driverName, signal } = opts;
94
- Logger.info(`Starting ${kindLabel} worker (drain-until-empty)`, { queueName });
95
- let processedCount = 0;
96
- while (signal?.aborted !== true) {
97
- // eslint-disable-next-line no-await-in-loop
98
- const didProcess = await processOne(queueName, driverName);
99
- if (!didProcess)
100
- break;
101
- processedCount++;
102
- }
103
- Logger.info(`${kindLabel} worker finished (queue drained)`, { queueName, processedCount });
104
- return processedCount;
99
+ const { queueName = defaultQueueName, driverName, signal, maxDurationMs = 300000, concurrency = 1, } = opts;
100
+ Logger.info(`Starting ${kindLabel} worker (drain-until-empty)`, { queueName, concurrency });
101
+ const startTime = Date.now();
102
+ let totalProcessed = 0;
103
+ const runWorker = async () => {
104
+ while (signal?.aborted !== true) {
105
+ if (maxDurationMs > 0 && Date.now() - startTime > maxDurationMs) {
106
+ Logger.warn(`${kindLabel} worker timeout reached`, { queueName, totalProcessed });
107
+ break;
108
+ }
109
+ // eslint-disable-next-line no-await-in-loop
110
+ const didProcess = await processOne(queueName, driverName);
111
+ if (!didProcess)
112
+ break;
113
+ totalProcessed++;
114
+ }
115
+ };
116
+ // Run workers in parallel
117
+ await Promise.all(Array.from({ length: Math.max(1, concurrency) }).map(() => runWorker()));
118
+ Logger.info(`${kindLabel} worker finished (queue drained)`, { queueName, totalProcessed });
119
+ return totalProcessed;
105
120
  };
106
121
  };
107
122
  export function createQueueWorker(options) {
@@ -1,4 +1,6 @@
1
1
  export interface WorkerConfiguration {
2
+ processorSpec?: string | null;
3
+ activeStatus?: boolean | null;
2
4
  [key: string]: string | number | boolean | null | undefined | object;
3
5
  }
4
6
  export type WorkerDriver = 'database' | 'redis' | 'memory';
@@ -36,6 +38,7 @@ export interface WorkerData {
36
38
  avgTime: number;
37
39
  memory: number;
38
40
  autoStart: boolean;
41
+ activeStatus?: boolean;
39
42
  details?: {
40
43
  configuration: WorkerConfiguration;
41
44
  health: WorkerHealth;
@@ -76,6 +79,7 @@ export type GetWorkersQuery = {
76
79
  driver?: WorkerDriver;
77
80
  search?: string;
78
81
  includeDetails?: boolean;
82
+ includeInactive?: boolean;
79
83
  };
80
84
  export type WorkersDashboardUiOptions = {
81
85
  autoRefresh: boolean;
@@ -93,6 +97,7 @@ export type RawWorkerData = {
93
97
  processed?: number;
94
98
  version?: string;
95
99
  autoStart?: boolean;
100
+ activeStatus?: boolean;
96
101
  queueName?: string;
97
102
  details?: {
98
103
  configuration: WorkerConfiguration;