@zintrust/core 0.1.42 → 0.1.44

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 (381) hide show
  1. package/README.md +1 -0
  2. package/app/Controllers/AuthController.d.ts +10 -0
  3. package/app/Controllers/AuthController.d.ts.map +1 -0
  4. package/app/Controllers/AuthController.js +201 -0
  5. package/app/Controllers/UserController.d.ts +9 -0
  6. package/app/Controllers/UserController.d.ts.map +1 -0
  7. package/app/Controllers/UserController.js +8 -0
  8. package/app/Controllers/UserQueryBuilderController.d.ts +16 -0
  9. package/app/Controllers/UserQueryBuilderController.d.ts.map +1 -0
  10. package/app/Controllers/UserQueryBuilderController.js +404 -0
  11. package/app/Middleware/ProfilerMiddleware.d.ts +12 -0
  12. package/app/Middleware/ProfilerMiddleware.d.ts.map +1 -0
  13. package/app/Middleware/ProfilerMiddleware.js +47 -0
  14. package/app/Middleware/index.d.ts +59 -0
  15. package/app/Middleware/index.d.ts.map +1 -0
  16. package/app/Middleware/index.js +215 -0
  17. package/app/Models/Post.d.ts +14 -0
  18. package/app/Models/Post.d.ts.map +1 -0
  19. package/app/Models/Post.js +27 -0
  20. package/app/Models/User.d.ts +14 -0
  21. package/app/Models/User.d.ts.map +1 -0
  22. package/app/Models/User.js +44 -0
  23. package/app/Schedules/JobTracking.d.ts +3 -0
  24. package/app/Schedules/JobTracking.d.ts.map +1 -0
  25. package/app/Schedules/JobTracking.js +13 -0
  26. package/app/Schedules/index.d.ts +2 -0
  27. package/app/Schedules/index.d.ts.map +1 -0
  28. package/app/Schedules/index.js +1 -0
  29. package/app/Toolkit/Broadcast/sendBroadcast.d.ts +6 -0
  30. package/app/Toolkit/Broadcast/sendBroadcast.d.ts.map +1 -0
  31. package/app/Toolkit/Broadcast/sendBroadcast.js +5 -0
  32. package/app/Toolkit/Mail/sendWelcomeEmail.d.ts +6 -0
  33. package/app/Toolkit/Mail/sendWelcomeEmail.d.ts.map +1 -0
  34. package/app/Toolkit/Mail/sendWelcomeEmail.js +20 -0
  35. package/app/Toolkit/Notification/sendSlackNotification.d.ts +8 -0
  36. package/app/Toolkit/Notification/sendSlackNotification.d.ts.map +1 -0
  37. package/app/Toolkit/Notification/sendSlackNotification.js +5 -0
  38. package/app/Toolkit/Notification/sendSms.d.ts +6 -0
  39. package/app/Toolkit/Notification/sendSms.d.ts.map +1 -0
  40. package/app/Toolkit/Notification/sendSms.js +5 -0
  41. package/app/Types/controller.d.ts +42 -0
  42. package/app/Types/controller.d.ts.map +1 -0
  43. package/app/Types/controller.js +1 -0
  44. package/config/broadcast.d.ts +38 -0
  45. package/config/broadcast.d.ts.map +1 -0
  46. package/config/broadcast.js +37 -0
  47. package/config/cache.d.ts +40 -0
  48. package/config/cache.d.ts.map +1 -0
  49. package/config/cache.js +39 -0
  50. package/config/database.d.ts +58 -0
  51. package/config/database.d.ts.map +1 -0
  52. package/config/database.js +65 -0
  53. package/config/mail.d.ts +51 -0
  54. package/config/mail.d.ts.map +1 -0
  55. package/config/mail.js +69 -0
  56. package/config/middleware.d.ts +11 -0
  57. package/config/middleware.d.ts.map +1 -0
  58. package/config/middleware.js +30 -0
  59. package/config/notification.d.ts +33 -0
  60. package/config/notification.d.ts.map +1 -0
  61. package/config/notification.js +33 -0
  62. package/config/queue.d.ts +55 -0
  63. package/config/queue.d.ts.map +1 -0
  64. package/config/queue.js +87 -0
  65. package/config/storage.d.ts +59 -0
  66. package/config/storage.d.ts.map +1 -0
  67. package/config/storage.js +59 -0
  68. package/config/workers.d.ts +54 -0
  69. package/config/workers.d.ts.map +1 -0
  70. package/config/workers.js +83 -0
  71. package/package.json +12 -5
  72. package/packages/cloudflare-d1-proxy/src/index.d.ts +48 -0
  73. package/packages/cloudflare-d1-proxy/src/index.d.ts.map +1 -0
  74. package/packages/cloudflare-d1-proxy/src/index.js +387 -0
  75. package/packages/cloudflare-kv-proxy/src/index.d.ts +44 -0
  76. package/packages/cloudflare-kv-proxy/src/index.d.ts.map +1 -0
  77. package/packages/cloudflare-kv-proxy/src/index.js +325 -0
  78. package/packages/queue-monitor/src/QueueMonitoringService.d.ts +35 -0
  79. package/packages/queue-monitor/src/QueueMonitoringService.d.ts.map +1 -0
  80. package/packages/queue-monitor/src/QueueMonitoringService.js +194 -0
  81. package/packages/queue-monitor/src/connection.d.ts +3 -0
  82. package/packages/queue-monitor/src/connection.d.ts.map +1 -0
  83. package/packages/queue-monitor/src/connection.js +1 -0
  84. package/packages/queue-monitor/src/dashboard-ui.d.ts +7 -0
  85. package/packages/queue-monitor/src/dashboard-ui.d.ts.map +1 -0
  86. package/packages/queue-monitor/src/dashboard-ui.js +997 -0
  87. package/packages/queue-monitor/src/driver.d.ts +15 -0
  88. package/packages/queue-monitor/src/driver.d.ts.map +1 -0
  89. package/packages/queue-monitor/src/driver.js +115 -0
  90. package/packages/queue-monitor/src/index.d.ts +71 -0
  91. package/packages/queue-monitor/src/index.d.ts.map +1 -0
  92. package/packages/queue-monitor/src/index.js +296 -0
  93. package/packages/queue-monitor/src/metrics.d.ts +27 -0
  94. package/packages/queue-monitor/src/metrics.d.ts.map +1 -0
  95. package/packages/queue-monitor/src/metrics.js +92 -0
  96. package/packages/queue-monitor/src/worker.d.ts +8 -0
  97. package/packages/queue-monitor/src/worker.d.ts.map +1 -0
  98. package/packages/queue-monitor/src/worker.js +35 -0
  99. package/packages/queue-redis/src/BullMQRedisQueue.d.ts +26 -0
  100. package/packages/queue-redis/src/BullMQRedisQueue.d.ts.map +1 -0
  101. package/packages/queue-redis/src/BullMQRedisQueue.js +463 -0
  102. package/packages/queue-redis/src/HttpQueueDriver.d.ts +18 -0
  103. package/packages/queue-redis/src/HttpQueueDriver.d.ts.map +1 -0
  104. package/packages/queue-redis/src/HttpQueueDriver.js +249 -0
  105. package/packages/queue-redis/src/QueueHttpGateway.d.ts +16 -0
  106. package/packages/queue-redis/src/QueueHttpGateway.d.ts.map +1 -0
  107. package/packages/queue-redis/src/QueueHttpGateway.js +217 -0
  108. package/packages/queue-redis/src/RedisPublishClient.d.ts +14 -0
  109. package/packages/queue-redis/src/RedisPublishClient.d.ts.map +1 -0
  110. package/packages/queue-redis/src/RedisPublishClient.js +251 -0
  111. package/packages/queue-redis/src/index.d.ts +12 -0
  112. package/packages/queue-redis/src/index.d.ts.map +1 -0
  113. package/packages/queue-redis/src/index.js +10 -0
  114. package/packages/queue-redis/src/register.d.ts +6 -0
  115. package/packages/queue-redis/src/register.d.ts.map +1 -0
  116. package/packages/queue-redis/src/register.js +21 -0
  117. package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.d.ts +11 -0
  118. package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.d.ts.map +1 -0
  119. package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.js +32 -0
  120. package/packages/workers/migrations/20260123180000_create_queue_jobs_table.d.ts +11 -0
  121. package/packages/workers/migrations/20260123180000_create_queue_jobs_table.d.ts.map +1 -0
  122. package/packages/workers/migrations/20260123180000_create_queue_jobs_table.js +46 -0
  123. package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.d.ts +7 -0
  124. package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.d.ts.map +1 -0
  125. package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.js +44 -0
  126. package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.d.ts +7 -0
  127. package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.d.ts.map +1 -0
  128. package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.js +104 -0
  129. package/packages/workers/src/AnomalyDetection.d.ts +107 -0
  130. package/packages/workers/src/AnomalyDetection.d.ts.map +1 -0
  131. package/packages/workers/src/AnomalyDetection.js +329 -0
  132. package/packages/workers/src/AutoScaler.d.ts +128 -0
  133. package/packages/workers/src/AutoScaler.d.ts.map +1 -0
  134. package/packages/workers/src/AutoScaler.js +425 -0
  135. package/packages/workers/src/BroadcastWorker.d.ts +24 -0
  136. package/packages/workers/src/BroadcastWorker.d.ts.map +1 -0
  137. package/packages/workers/src/BroadcastWorker.js +24 -0
  138. package/packages/workers/src/CanaryController.d.ts +104 -0
  139. package/packages/workers/src/CanaryController.d.ts.map +1 -0
  140. package/packages/workers/src/CanaryController.js +424 -0
  141. package/packages/workers/src/ChaosEngineering.d.ts +80 -0
  142. package/packages/workers/src/ChaosEngineering.d.ts.map +1 -0
  143. package/packages/workers/src/ChaosEngineering.js +229 -0
  144. package/packages/workers/src/CircuitBreaker.d.ts +107 -0
  145. package/packages/workers/src/CircuitBreaker.d.ts.map +1 -0
  146. package/packages/workers/src/CircuitBreaker.js +374 -0
  147. package/packages/workers/src/ClusterLock.d.ts +91 -0
  148. package/packages/workers/src/ClusterLock.d.ts.map +1 -0
  149. package/packages/workers/src/ClusterLock.js +397 -0
  150. package/packages/workers/src/ComplianceManager.d.ts +178 -0
  151. package/packages/workers/src/ComplianceManager.d.ts.map +1 -0
  152. package/packages/workers/src/ComplianceManager.js +556 -0
  153. package/packages/workers/src/DatacenterOrchestrator.d.ts +134 -0
  154. package/packages/workers/src/DatacenterOrchestrator.d.ts.map +1 -0
  155. package/packages/workers/src/DatacenterOrchestrator.js +404 -0
  156. package/packages/workers/src/DeadLetterQueue.d.ts +123 -0
  157. package/packages/workers/src/DeadLetterQueue.d.ts.map +1 -0
  158. package/packages/workers/src/DeadLetterQueue.js +544 -0
  159. package/packages/workers/src/HealthMonitor.d.ts +43 -0
  160. package/packages/workers/src/HealthMonitor.d.ts.map +1 -0
  161. package/packages/workers/src/HealthMonitor.js +312 -0
  162. package/packages/workers/src/MultiQueueWorker.d.ts +90 -0
  163. package/packages/workers/src/MultiQueueWorker.d.ts.map +1 -0
  164. package/packages/workers/src/MultiQueueWorker.js +282 -0
  165. package/packages/workers/src/NotificationWorker.d.ts +24 -0
  166. package/packages/workers/src/NotificationWorker.d.ts.map +1 -0
  167. package/packages/workers/src/NotificationWorker.js +23 -0
  168. package/packages/workers/src/Observability.d.ts +154 -0
  169. package/packages/workers/src/Observability.d.ts.map +1 -0
  170. package/packages/workers/src/Observability.js +538 -0
  171. package/packages/workers/src/PluginManager.d.ts +124 -0
  172. package/packages/workers/src/PluginManager.d.ts.map +1 -0
  173. package/packages/workers/src/PluginManager.js +392 -0
  174. package/packages/workers/src/PriorityQueue.d.ts +118 -0
  175. package/packages/workers/src/PriorityQueue.d.ts.map +1 -0
  176. package/packages/workers/src/PriorityQueue.js +276 -0
  177. package/packages/workers/src/ResourceMonitor.d.ts +165 -0
  178. package/packages/workers/src/ResourceMonitor.d.ts.map +1 -0
  179. package/packages/workers/src/ResourceMonitor.js +632 -0
  180. package/packages/workers/src/SLAMonitor.d.ts +111 -0
  181. package/packages/workers/src/SLAMonitor.d.ts.map +1 -0
  182. package/packages/workers/src/SLAMonitor.js +274 -0
  183. package/packages/workers/src/WorkerFactory.d.ts +218 -0
  184. package/packages/workers/src/WorkerFactory.d.ts.map +1 -0
  185. package/packages/workers/src/WorkerFactory.js +2253 -0
  186. package/packages/workers/src/WorkerInit.d.ts +86 -0
  187. package/packages/workers/src/WorkerInit.d.ts.map +1 -0
  188. package/packages/workers/src/WorkerInit.js +307 -0
  189. package/packages/workers/src/WorkerMetrics.d.ts +116 -0
  190. package/packages/workers/src/WorkerMetrics.d.ts.map +1 -0
  191. package/packages/workers/src/WorkerMetrics.js +570 -0
  192. package/packages/workers/src/WorkerRegistry.d.ts +152 -0
  193. package/packages/workers/src/WorkerRegistry.d.ts.map +1 -0
  194. package/packages/workers/src/WorkerRegistry.js +396 -0
  195. package/packages/workers/src/WorkerShutdown.d.ts +70 -0
  196. package/packages/workers/src/WorkerShutdown.d.ts.map +1 -0
  197. package/packages/workers/src/WorkerShutdown.js +185 -0
  198. package/packages/workers/src/WorkerVersioning.d.ts +108 -0
  199. package/packages/workers/src/WorkerVersioning.d.ts.map +1 -0
  200. package/packages/workers/src/WorkerVersioning.js +300 -0
  201. package/packages/workers/src/config/workerConfig.d.ts +5 -0
  202. package/packages/workers/src/config/workerConfig.d.ts.map +1 -0
  203. package/packages/workers/src/config/workerConfig.js +25 -0
  204. package/packages/workers/src/createQueueWorker.d.ts +26 -0
  205. package/packages/workers/src/createQueueWorker.d.ts.map +1 -0
  206. package/packages/workers/src/createQueueWorker.js +367 -0
  207. package/packages/workers/src/dashboard/index.d.ts +2 -0
  208. package/packages/workers/src/dashboard/index.d.ts.map +1 -0
  209. package/packages/workers/src/dashboard/index.js +1 -0
  210. package/packages/workers/src/dashboard/types.d.ts +123 -0
  211. package/packages/workers/src/dashboard/types.d.ts.map +1 -0
  212. package/packages/workers/src/dashboard/types.js +1 -0
  213. package/packages/workers/src/dashboard/workers-api.d.ts +5 -0
  214. package/packages/workers/src/dashboard/workers-api.d.ts.map +1 -0
  215. package/packages/workers/src/dashboard/workers-api.js +738 -0
  216. package/packages/workers/src/helper/index.d.ts +6 -0
  217. package/packages/workers/src/helper/index.d.ts.map +1 -0
  218. package/packages/workers/src/helper/index.js +10 -0
  219. package/packages/workers/src/http/WorkerApiController.d.ts +39 -0
  220. package/packages/workers/src/http/WorkerApiController.d.ts.map +1 -0
  221. package/packages/workers/src/http/WorkerApiController.js +313 -0
  222. package/packages/workers/src/http/WorkerController.d.ts +375 -0
  223. package/packages/workers/src/http/WorkerController.d.ts.map +1 -0
  224. package/packages/workers/src/http/WorkerController.js +1454 -0
  225. package/packages/workers/src/http/WorkerMonitoringService.d.ts +12 -0
  226. package/packages/workers/src/http/WorkerMonitoringService.d.ts.map +1 -0
  227. package/packages/workers/src/http/WorkerMonitoringService.js +89 -0
  228. package/packages/workers/src/http/middleware/CustomValidation.d.ts +93 -0
  229. package/packages/workers/src/http/middleware/CustomValidation.d.ts.map +1 -0
  230. package/packages/workers/src/http/middleware/CustomValidation.js +270 -0
  231. package/packages/workers/src/http/middleware/DatacenterValidator.d.ts +4 -0
  232. package/packages/workers/src/http/middleware/DatacenterValidator.d.ts.map +1 -0
  233. package/packages/workers/src/http/middleware/DatacenterValidator.js +94 -0
  234. package/packages/workers/src/http/middleware/EditWorkerValidation.d.ts +8 -0
  235. package/packages/workers/src/http/middleware/EditWorkerValidation.d.ts.map +1 -0
  236. package/packages/workers/src/http/middleware/EditWorkerValidation.js +56 -0
  237. package/packages/workers/src/http/middleware/FeaturesValidator.d.ts +4 -0
  238. package/packages/workers/src/http/middleware/FeaturesValidator.d.ts.map +1 -0
  239. package/packages/workers/src/http/middleware/FeaturesValidator.js +60 -0
  240. package/packages/workers/src/http/middleware/InfrastructureValidator.d.ts +32 -0
  241. package/packages/workers/src/http/middleware/InfrastructureValidator.d.ts.map +1 -0
  242. package/packages/workers/src/http/middleware/InfrastructureValidator.js +226 -0
  243. package/packages/workers/src/http/middleware/OptionsValidator.d.ts +4 -0
  244. package/packages/workers/src/http/middleware/OptionsValidator.d.ts.map +1 -0
  245. package/packages/workers/src/http/middleware/OptionsValidator.js +112 -0
  246. package/packages/workers/src/http/middleware/PayloadSanitizer.d.ts +8 -0
  247. package/packages/workers/src/http/middleware/PayloadSanitizer.d.ts.map +1 -0
  248. package/packages/workers/src/http/middleware/PayloadSanitizer.js +42 -0
  249. package/packages/workers/src/http/middleware/ProcessorPathSanitizer.d.ts +4 -0
  250. package/packages/workers/src/http/middleware/ProcessorPathSanitizer.d.ts.map +1 -0
  251. package/packages/workers/src/http/middleware/ProcessorPathSanitizer.js +140 -0
  252. package/packages/workers/src/http/middleware/QueueNameSanitizer.d.ts +4 -0
  253. package/packages/workers/src/http/middleware/QueueNameSanitizer.d.ts.map +1 -0
  254. package/packages/workers/src/http/middleware/QueueNameSanitizer.js +45 -0
  255. package/packages/workers/src/http/middleware/ValidateDriver.d.ts +8 -0
  256. package/packages/workers/src/http/middleware/ValidateDriver.d.ts.map +1 -0
  257. package/packages/workers/src/http/middleware/ValidateDriver.js +20 -0
  258. package/packages/workers/src/http/middleware/VersionSanitizer.d.ts +4 -0
  259. package/packages/workers/src/http/middleware/VersionSanitizer.d.ts.map +1 -0
  260. package/packages/workers/src/http/middleware/VersionSanitizer.js +25 -0
  261. package/packages/workers/src/http/middleware/WorkerNameSanitizer.d.ts +4 -0
  262. package/packages/workers/src/http/middleware/WorkerNameSanitizer.d.ts.map +1 -0
  263. package/packages/workers/src/http/middleware/WorkerNameSanitizer.js +46 -0
  264. package/packages/workers/src/http/middleware/WorkerValidationChain.d.ts +28 -0
  265. package/packages/workers/src/http/middleware/WorkerValidationChain.d.ts.map +1 -0
  266. package/packages/workers/src/http/middleware/WorkerValidationChain.js +186 -0
  267. package/packages/workers/src/index.d.ts +47 -0
  268. package/packages/workers/src/index.d.ts.map +1 -0
  269. package/packages/workers/src/index.js +48 -0
  270. package/packages/workers/src/routes/workers.d.ts +13 -0
  271. package/packages/workers/src/routes/workers.d.ts.map +1 -0
  272. package/packages/workers/src/routes/workers.js +126 -0
  273. package/packages/workers/src/storage/WorkerStore.d.ts +52 -0
  274. package/packages/workers/src/storage/WorkerStore.d.ts.map +1 -0
  275. package/packages/workers/src/storage/WorkerStore.js +259 -0
  276. package/packages/workers/src/telemetry/api/TelemetryAPI.d.ts +47 -0
  277. package/packages/workers/src/telemetry/api/TelemetryAPI.d.ts.map +1 -0
  278. package/packages/workers/src/telemetry/api/TelemetryAPI.js +219 -0
  279. package/packages/workers/src/telemetry/api/TelemetryMonitoringService.d.ts +18 -0
  280. package/packages/workers/src/telemetry/api/TelemetryMonitoringService.d.ts.map +1 -0
  281. package/packages/workers/src/telemetry/api/TelemetryMonitoringService.js +140 -0
  282. package/packages/workers/src/telemetry/components/AlertPanel.d.ts +2 -0
  283. package/packages/workers/src/telemetry/components/AlertPanel.d.ts.map +1 -0
  284. package/packages/workers/src/telemetry/components/AlertPanel.js +13 -0
  285. package/packages/workers/src/telemetry/components/CostTracking.d.ts +2 -0
  286. package/packages/workers/src/telemetry/components/CostTracking.d.ts.map +1 -0
  287. package/packages/workers/src/telemetry/components/CostTracking.js +14 -0
  288. package/packages/workers/src/telemetry/components/ResourceUsageChart.d.ts +2 -0
  289. package/packages/workers/src/telemetry/components/ResourceUsageChart.d.ts.map +1 -0
  290. package/packages/workers/src/telemetry/components/ResourceUsageChart.js +11 -0
  291. package/packages/workers/src/telemetry/components/WorkerHealthChart.d.ts +2 -0
  292. package/packages/workers/src/telemetry/components/WorkerHealthChart.d.ts.map +1 -0
  293. package/packages/workers/src/telemetry/components/WorkerHealthChart.js +11 -0
  294. package/packages/workers/src/telemetry/index.d.ts +16 -0
  295. package/packages/workers/src/telemetry/index.d.ts.map +1 -0
  296. package/packages/workers/src/telemetry/index.js +60 -0
  297. package/packages/workers/src/telemetry/routes/dashboard.d.ts +7 -0
  298. package/packages/workers/src/telemetry/routes/dashboard.d.ts.map +1 -0
  299. package/packages/workers/src/telemetry/routes/dashboard.js +608 -0
  300. package/packages/workers/src/type.d.ts +77 -0
  301. package/packages/workers/src/type.d.ts.map +1 -0
  302. package/packages/workers/src/type.js +1 -0
  303. package/packages/workers/src/ui/router/EmbeddedAssets.d.ts +5 -0
  304. package/packages/workers/src/ui/router/EmbeddedAssets.d.ts.map +1 -0
  305. package/packages/workers/src/ui/router/EmbeddedAssets.js +13 -0
  306. package/packages/workers/src/ui/router/ui.d.ts +4 -0
  307. package/packages/workers/src/ui/router/ui.d.ts.map +1 -0
  308. package/packages/workers/src/ui/router/ui.js +208 -0
  309. package/packages/workers/src/ui/types/worker-ui.d.ts +230 -0
  310. package/packages/workers/src/ui/types/worker-ui.d.ts.map +1 -0
  311. package/packages/workers/src/ui/types/worker-ui.js +5 -0
  312. package/routes/api.d.ts +7 -0
  313. package/routes/api.d.ts.map +1 -0
  314. package/routes/api.js +129 -0
  315. package/routes/broadcast.d.ts +9 -0
  316. package/routes/broadcast.d.ts.map +1 -0
  317. package/routes/broadcast.js +27 -0
  318. package/routes/storage.d.ts +4 -0
  319. package/routes/storage.d.ts.map +1 -0
  320. package/routes/storage.js +35 -0
  321. package/src/cache/Cache.d.ts.map +1 -1
  322. package/src/cache/Cache.js +40 -8
  323. package/src/cache/drivers/KVRemoteDriver.d.ts +1 -1
  324. package/src/cache/drivers/KVRemoteDriver.d.ts.map +1 -1
  325. package/src/cache/drivers/KVRemoteDriver.js +259 -44
  326. package/src/cache/drivers/MemoryDriver.d.ts.map +1 -1
  327. package/src/cache/drivers/MemoryDriver.js +10 -2
  328. package/src/cache/drivers/RedisDriver.d.ts.map +1 -1
  329. package/src/cache/drivers/RedisDriver.js +256 -33
  330. package/src/cli/CLI.d.ts.map +1 -1
  331. package/src/cli/CLI.js +6 -0
  332. package/src/cli/commands/DeployCommand.d.ts.map +1 -1
  333. package/src/cli/commands/DeployCommand.js +12 -1
  334. package/src/cli/commands/DeployContainersProxyCommand.d.ts +5 -0
  335. package/src/cli/commands/DeployContainersProxyCommand.d.ts.map +1 -0
  336. package/src/cli/commands/DeployContainersProxyCommand.js +45 -0
  337. package/src/cli/commands/DockerCommand.d.ts +5 -0
  338. package/src/cli/commands/DockerCommand.d.ts.map +1 -0
  339. package/src/cli/commands/DockerCommand.js +74 -0
  340. package/src/cli/commands/InitContainerCommand.js +10 -10
  341. package/src/cli/commands/InitContainersProxyCommand.d.ts +5 -0
  342. package/src/cli/commands/InitContainersProxyCommand.d.ts.map +1 -0
  343. package/src/cli/commands/InitContainersProxyCommand.js +159 -0
  344. package/src/cli/commands/NewCommand.d.ts.map +1 -1
  345. package/src/cli/commands/NewCommand.js +33 -0
  346. package/src/cli/commands/PutCommand.d.ts.map +1 -1
  347. package/src/cli/commands/PutCommand.js +15 -5
  348. package/src/cli/commands/StartCommand.d.ts.map +1 -1
  349. package/src/cli/commands/StartCommand.js +43 -4
  350. package/src/cli/scaffolding/ProjectScaffolder.d.ts.map +1 -1
  351. package/src/cli/scaffolding/ProjectScaffolder.js +65 -73
  352. package/src/cli/utils/DistPackager.d.ts.map +1 -1
  353. package/src/cli/utils/DistPackager.js +25 -0
  354. package/src/cli/utils/EnvFileLoader.d.ts +1 -0
  355. package/src/cli/utils/EnvFileLoader.d.ts.map +1 -1
  356. package/src/cli/utils/EnvFileLoader.js +14 -0
  357. package/src/common/RemoteSignedJson.d.ts.map +1 -1
  358. package/src/common/RemoteSignedJson.js +9 -2
  359. package/src/config/cache.js +1 -1
  360. package/src/config/env.d.ts +7 -0
  361. package/src/config/env.d.ts.map +1 -1
  362. package/src/config/env.js +8 -0
  363. package/src/config/queue.js +1 -1
  364. package/src/functions/cloudflare.d.ts.map +1 -1
  365. package/src/functions/cloudflare.js +4 -2
  366. package/src/index.js +3 -3
  367. package/src/middleware/JwtAuthMiddleware.d.ts.map +1 -1
  368. package/src/middleware/JwtAuthMiddleware.js +11 -5
  369. package/src/runtime/RuntimeAdapter.d.ts.map +1 -1
  370. package/src/runtime/RuntimeAdapter.js +30 -12
  371. package/src/runtime/adapters/CloudflareAdapter.d.ts.map +1 -1
  372. package/src/runtime/adapters/CloudflareAdapter.js +15 -4
  373. package/src/scheduler/Schedule.js +1 -1
  374. package/src/scheduler/leader/SchedulerLeader.js +1 -1
  375. package/src/schedules/job-tracking-cleanup.js +1 -1
  376. package/src/security/TokenRevocation.d.ts +19 -2
  377. package/src/security/TokenRevocation.d.ts.map +1 -1
  378. package/src/security/TokenRevocation.js +558 -30
  379. package/src/templates/project/basic/app/Controllers/AuthController.ts.tpl +11 -3
  380. package/src/templates/project/basic/config/middleware.ts.tpl +23 -22
  381. package/src/templates/project/basic/wrangler.jsonc.tpl +28 -0
@@ -0,0 +1,538 @@
1
+ /**
2
+ * Observability Manager
3
+ * Integrations for Prometheus, OpenTelemetry, and Datadog
4
+ * Sealed namespace for immutability
5
+ */
6
+ import { ErrorFactory, Logger, generateUuid } from '../../../src/index.js';
7
+ // Internal state
8
+ let config = null;
9
+ // Prometheus state
10
+ let promClient = null;
11
+ let promRegistry = null;
12
+ const promMetrics = new Map();
13
+ // OpenTelemetry state
14
+ let otelTracer = null;
15
+ const activeSpans = new Map();
16
+ let spanSweepInterval = null;
17
+ const MAX_ACTIVE_SPANS = 1000;
18
+ const SPAN_TTL_MS = 5 * 60 * 1000;
19
+ const isUnrefableTimer = (value) => {
20
+ if (typeof value !== 'object' || value === null)
21
+ return false;
22
+ return 'unref' in value && typeof value.unref === 'function';
23
+ };
24
+ const cleanupStaleSpans = () => {
25
+ const now = Date.now();
26
+ for (const [spanId, entry] of activeSpans.entries()) {
27
+ if (now - entry.startedAt > SPAN_TTL_MS) {
28
+ entry.span.end();
29
+ activeSpans.delete(spanId);
30
+ }
31
+ }
32
+ };
33
+ const evictOldestSpan = () => {
34
+ if (activeSpans.size < MAX_ACTIVE_SPANS)
35
+ return;
36
+ let oldestId = null;
37
+ let oldestTime = Number.POSITIVE_INFINITY;
38
+ for (const [spanId, entry] of activeSpans.entries()) {
39
+ if (entry.startedAt < oldestTime) {
40
+ oldestTime = entry.startedAt;
41
+ oldestId = spanId;
42
+ }
43
+ }
44
+ if (oldestId !== null) {
45
+ const entry = activeSpans.get(oldestId);
46
+ if (entry) {
47
+ entry.span.end();
48
+ }
49
+ activeSpans.delete(oldestId);
50
+ }
51
+ };
52
+ // Datadog state
53
+ let datadogClient = null;
54
+ /**
55
+ * Helper: Lazy load Prometheus client
56
+ */
57
+ const getPrometheusClient = async () => {
58
+ promClient ??= await import('prom-client');
59
+ return promClient;
60
+ };
61
+ /**
62
+ * Helper: Lazy load OpenTelemetry API
63
+ */
64
+ const getOpenTelemetryApi = async () => {
65
+ return import('@opentelemetry/api');
66
+ };
67
+ /**
68
+ * Helper: Initialize Prometheus
69
+ */
70
+ const initPrometheus = async (promConfig) => {
71
+ if (!promConfig.enabled)
72
+ return;
73
+ try {
74
+ const client = await getPrometheusClient();
75
+ promRegistry = new client.Registry();
76
+ // Set default labels if provided
77
+ if (promConfig.defaultLabels) {
78
+ promRegistry.setDefaultLabels(promConfig.defaultLabels);
79
+ }
80
+ // Enable default metrics (process, Node.js metrics)
81
+ client.collectDefaultMetrics({ register: promRegistry });
82
+ Logger.info('Prometheus metrics initialized', {
83
+ port: promConfig.port,
84
+ path: promConfig.path ?? '/metrics',
85
+ });
86
+ }
87
+ catch (error) {
88
+ Logger.error('Failed to initialize Prometheus', error);
89
+ throw error;
90
+ }
91
+ };
92
+ /**
93
+ * Helper: Initialize OpenTelemetry
94
+ */
95
+ const initOpenTelemetry = async (otelConfig) => {
96
+ if (!otelConfig.enabled)
97
+ return;
98
+ try {
99
+ const api = await getOpenTelemetryApi();
100
+ otelTracer = api.trace.getTracer(otelConfig.serviceName);
101
+ Logger.info('OpenTelemetry tracing initialized', {
102
+ serviceName: otelConfig.serviceName,
103
+ sampleRate: otelConfig.sampleRate ?? 1,
104
+ });
105
+ }
106
+ catch (error) {
107
+ Logger.error('Failed to initialize OpenTelemetry', error);
108
+ // Don't throw - allow app to continue without tracing
109
+ }
110
+ };
111
+ /**
112
+ * Helper: Initialize Datadog
113
+ */
114
+ const initDatadog = async (ddConfig) => {
115
+ if (!ddConfig.enabled)
116
+ return;
117
+ try {
118
+ const module = (await import('hot-shots'));
119
+ const StatsDClass = module.StatsD;
120
+ if (!StatsDClass) {
121
+ Logger.warn('Datadog StatsD client unavailable');
122
+ return;
123
+ }
124
+ datadogClient = new StatsDClass({
125
+ host: ddConfig.host ?? 'localhost',
126
+ port: ddConfig.port ?? 8125,
127
+ prefix: ddConfig.prefix ?? 'worker.',
128
+ globalTags: ddConfig.tags ?? [],
129
+ });
130
+ Logger.info('Datadog StatsD initialized', {
131
+ host: ddConfig.host ?? 'localhost',
132
+ port: ddConfig.port ?? 8125,
133
+ });
134
+ }
135
+ catch (error) {
136
+ Logger.error('Failed to initialize Datadog', error);
137
+ // Don't throw - allow app to continue without Datadog
138
+ }
139
+ };
140
+ /**
141
+ * Observability Manager - Sealed namespace
142
+ */
143
+ export const Observability = Object.freeze({
144
+ /**
145
+ * Initialize observability with configuration
146
+ */
147
+ async initialize(observabilityConfig) {
148
+ if (config) {
149
+ Logger.warn('Observability already initialized');
150
+ return;
151
+ }
152
+ config = observabilityConfig;
153
+ // Initialize all enabled platforms
154
+ await Promise.all([
155
+ initPrometheus(config.prometheus),
156
+ initOpenTelemetry(config.openTelemetry),
157
+ initDatadog(config.datadog),
158
+ ]);
159
+ if (config.openTelemetry.enabled === true && spanSweepInterval === null) {
160
+ spanSweepInterval = setInterval(() => {
161
+ cleanupStaleSpans();
162
+ }, SPAN_TTL_MS);
163
+ if (isUnrefableTimer(spanSweepInterval)) {
164
+ spanSweepInterval.unref();
165
+ }
166
+ }
167
+ Logger.info('Observability initialized', {
168
+ prometheus: config.prometheus.enabled,
169
+ openTelemetry: config.openTelemetry.enabled,
170
+ datadog: config.datadog.enabled,
171
+ });
172
+ },
173
+ /**
174
+ * Register a metric
175
+ */
176
+ async registerMetric(definition) {
177
+ if (config?.prometheus.enabled !== true || !promRegistry) {
178
+ return;
179
+ }
180
+ if (promMetrics.has(definition.name)) {
181
+ Logger.debug(`Metric already registered: ${definition.name}`);
182
+ return;
183
+ }
184
+ const client = await getPrometheusClient();
185
+ let metric;
186
+ switch (definition.type) {
187
+ case 'counter':
188
+ metric = new client.Counter({
189
+ name: definition.name,
190
+ help: definition.help,
191
+ labelNames: definition.labels ?? [],
192
+ registers: [promRegistry],
193
+ });
194
+ break;
195
+ case 'gauge':
196
+ metric = new client.Gauge({
197
+ name: definition.name,
198
+ help: definition.help,
199
+ labelNames: definition.labels ?? [],
200
+ registers: [promRegistry],
201
+ });
202
+ break;
203
+ case 'histogram':
204
+ metric = new client.Histogram({
205
+ name: definition.name,
206
+ help: definition.help,
207
+ labelNames: definition.labels ?? [],
208
+ registers: [promRegistry],
209
+ });
210
+ break;
211
+ case 'summary':
212
+ metric = new client.Summary({
213
+ name: definition.name,
214
+ help: definition.help,
215
+ labelNames: definition.labels ?? [],
216
+ registers: [promRegistry],
217
+ });
218
+ break;
219
+ }
220
+ promMetrics.set(definition.name, metric);
221
+ Logger.debug(`Metric registered: ${definition.name} (${definition.type})`);
222
+ },
223
+ /**
224
+ * Increment a counter
225
+ */
226
+ incrementCounter(name, value = 1, labels) {
227
+ // Prometheus
228
+ if (config?.prometheus.enabled === true && promMetrics.has(name)) {
229
+ const metric = promMetrics.get(name);
230
+ if (labels) {
231
+ metric.inc(labels, value);
232
+ }
233
+ else {
234
+ metric.inc(value);
235
+ }
236
+ }
237
+ // Datadog
238
+ if (config?.datadog.enabled === true && datadogClient !== null) {
239
+ const tags = labels ? Object.entries(labels).map(([k, v]) => `${k}:${v}`) : [];
240
+ datadogClient.increment(name, value, tags);
241
+ }
242
+ },
243
+ /**
244
+ * Set a gauge value
245
+ */
246
+ setGauge(name, value, labels) {
247
+ // Prometheus
248
+ if (config?.prometheus.enabled === true && promMetrics.has(name)) {
249
+ const metric = promMetrics.get(name);
250
+ if (labels) {
251
+ metric.set(labels, value);
252
+ }
253
+ else {
254
+ metric.set(value);
255
+ }
256
+ }
257
+ // Datadog
258
+ if (config?.datadog.enabled === true && datadogClient !== null) {
259
+ const tags = labels ? Object.entries(labels).map(([k, v]) => `${k}:${v}`) : [];
260
+ datadogClient.gauge(name, value, tags);
261
+ }
262
+ },
263
+ /**
264
+ * Record a histogram observation
265
+ */
266
+ recordHistogram(name, value, labels) {
267
+ // Prometheus
268
+ if (config?.prometheus.enabled === true && promMetrics.has(name)) {
269
+ const metric = promMetrics.get(name);
270
+ if (labels) {
271
+ metric.observe(labels, value);
272
+ }
273
+ else {
274
+ metric.observe(value);
275
+ }
276
+ }
277
+ // Datadog
278
+ if (config?.datadog.enabled === true && datadogClient !== null) {
279
+ const tags = labels ? Object.entries(labels).map(([k, v]) => `${k}:${v}`) : [];
280
+ datadogClient.histogram(name, value, tags);
281
+ }
282
+ },
283
+ /**
284
+ * Record timing (histogram for duration)
285
+ */
286
+ recordTiming(name, durationMs, labels) {
287
+ // Prometheus (convert to seconds)
288
+ if (config?.prometheus.enabled === true && promMetrics.has(name)) {
289
+ const metric = promMetrics.get(name);
290
+ if (labels) {
291
+ metric.observe(labels, durationMs / 1000);
292
+ }
293
+ else {
294
+ metric.observe(durationMs / 1000);
295
+ }
296
+ }
297
+ // Datadog (milliseconds)
298
+ if (config?.datadog.enabled === true && datadogClient !== null) {
299
+ const tags = labels ? Object.entries(labels).map(([k, v]) => `${k}:${v}`) : [];
300
+ datadogClient.timing(name, durationMs, tags);
301
+ }
302
+ },
303
+ /**
304
+ * Start a span (OpenTelemetry)
305
+ */
306
+ startSpan(name, options) {
307
+ if (config?.openTelemetry.enabled !== true || otelTracer === null) {
308
+ return null;
309
+ }
310
+ try {
311
+ const spanOptions = {
312
+ attributes: options?.attributes ?? {},
313
+ };
314
+ const span = otelTracer.startSpan(name, spanOptions);
315
+ const spanId = `${name}-${Date.now()}-${generateUuid()}`;
316
+ evictOldestSpan();
317
+ activeSpans.set(spanId, { span, startedAt: Date.now() });
318
+ Logger.debug(`Span started: ${name}`, { spanId });
319
+ return spanId;
320
+ }
321
+ catch (error) {
322
+ Logger.error('Failed to start span', error);
323
+ return null;
324
+ }
325
+ },
326
+ /**
327
+ * End a span
328
+ */
329
+ endSpan(spanId, attributes) {
330
+ if (config?.openTelemetry.enabled !== true) {
331
+ return;
332
+ }
333
+ try {
334
+ const entry = activeSpans.get(spanId);
335
+ if (!entry)
336
+ return;
337
+ if (attributes) {
338
+ entry.span.setAttributes(attributes);
339
+ }
340
+ entry.span.end();
341
+ activeSpans.delete(spanId);
342
+ Logger.debug(`Span ended: ${spanId}`);
343
+ }
344
+ catch (error) {
345
+ Logger.error('Failed to end span', error);
346
+ }
347
+ },
348
+ /**
349
+ * Record an error on a span
350
+ */
351
+ recordSpanError(spanId, error) {
352
+ if (config?.openTelemetry.enabled !== true) {
353
+ return;
354
+ }
355
+ try {
356
+ const entry = activeSpans.get(spanId);
357
+ if (!entry)
358
+ return;
359
+ entry.span.recordException(error);
360
+ entry.span.setStatus({ code: 2, message: error.message }); // ERROR status
361
+ Logger.debug(`Span error recorded: ${spanId}`, { error: error.message });
362
+ }
363
+ catch (err) {
364
+ Logger.error('Failed to record span error', err);
365
+ }
366
+ },
367
+ /**
368
+ * Add event to span
369
+ */
370
+ addSpanEvent(spanId, name, attributes) {
371
+ if (config?.openTelemetry.enabled !== true) {
372
+ return;
373
+ }
374
+ try {
375
+ const entry = activeSpans.get(spanId);
376
+ if (!entry)
377
+ return;
378
+ entry.span.addEvent(name, attributes);
379
+ Logger.debug(`Span event added: ${spanId}/${name}`);
380
+ }
381
+ catch (error) {
382
+ Logger.error('Failed to add span event', error);
383
+ }
384
+ },
385
+ /**
386
+ * Get Prometheus metrics (for HTTP endpoint)
387
+ */
388
+ async getPrometheusMetrics() {
389
+ if (config?.prometheus.enabled !== true || !promRegistry) {
390
+ throw ErrorFactory.createGeneralError('Prometheus metrics not enabled');
391
+ }
392
+ return promRegistry.metrics();
393
+ },
394
+ /**
395
+ * Get Prometheus registry (for advanced usage)
396
+ */
397
+ getPrometheusRegistry() {
398
+ return promRegistry;
399
+ },
400
+ /**
401
+ * Get Datadog client (for advanced usage)
402
+ */
403
+ getDatadogClient() {
404
+ return datadogClient;
405
+ },
406
+ /**
407
+ * Get OpenTelemetry tracer (for advanced usage)
408
+ */
409
+ getTracer() {
410
+ return otelTracer;
411
+ },
412
+ /**
413
+ * Record worker job metrics
414
+ */
415
+ recordJobMetrics(workerName, jobName, metrics) {
416
+ const labels = { worker: workerName, job: jobName };
417
+ if (metrics.processed !== undefined) {
418
+ Observability.incrementCounter('worker_jobs_processed_total', metrics.processed, labels);
419
+ }
420
+ if (metrics.failed !== undefined) {
421
+ Observability.incrementCounter('worker_jobs_failed_total', metrics.failed, labels);
422
+ }
423
+ if (metrics.durationMs !== undefined) {
424
+ Observability.recordTiming('worker_job_duration_seconds', metrics.durationMs, labels);
425
+ }
426
+ if (metrics.queueSize !== undefined) {
427
+ Observability.setGauge('worker_queue_size', metrics.queueSize, labels);
428
+ }
429
+ },
430
+ /**
431
+ * Record worker resource metrics
432
+ */
433
+ recordResourceMetrics(workerName, resources) {
434
+ const labels = { worker: workerName };
435
+ if (resources.cpuUsage !== undefined) {
436
+ Observability.setGauge('worker_cpu_usage_percent', resources.cpuUsage, labels);
437
+ }
438
+ if (resources.memoryUsage !== undefined) {
439
+ Observability.setGauge('worker_memory_usage_bytes', resources.memoryUsage, labels);
440
+ }
441
+ if (resources.activeJobs !== undefined) {
442
+ Observability.setGauge('worker_active_jobs', resources.activeJobs, labels);
443
+ }
444
+ },
445
+ /**
446
+ * Create a traced function wrapper
447
+ */
448
+ traced(name, fn, options) {
449
+ return (async (...args) => {
450
+ const spanId = Observability.startSpan(name, options);
451
+ try {
452
+ const result = await fn(...args);
453
+ if (spanId !== null) {
454
+ Observability.endSpan(spanId, { success: true });
455
+ }
456
+ return result;
457
+ }
458
+ catch (error) {
459
+ if (spanId !== null) {
460
+ Observability.recordSpanError(spanId, error);
461
+ Observability.endSpan(spanId, { success: false });
462
+ }
463
+ throw error;
464
+ }
465
+ });
466
+ },
467
+ /**
468
+ * Get configuration
469
+ */
470
+ getConfig() {
471
+ return config ? { ...config } : null;
472
+ },
473
+ /**
474
+ * Check if observability is enabled
475
+ */
476
+ isEnabled() {
477
+ return (config !== null &&
478
+ (config.prometheus.enabled || config.openTelemetry.enabled || config.datadog.enabled));
479
+ },
480
+ /**
481
+ * Clear metrics for a specific worker
482
+ */
483
+ async clearWorkerMetrics(workerName) {
484
+ if (config?.prometheus.enabled !== true) {
485
+ return;
486
+ }
487
+ const metrics = Array.from(promMetrics.values());
488
+ await Promise.all(metrics.map(async (metric) => {
489
+ try {
490
+ // Access internal values to find matching labels
491
+ // This relies on prom-client get() method returning values with labels
492
+ const item = await metric.get();
493
+ const values = item.values ?? [];
494
+ for (const val of values) {
495
+ const labels = val.labels;
496
+ if (labels?.['worker'] === workerName) {
497
+ metric.remove(labels);
498
+ }
499
+ }
500
+ }
501
+ catch (err) {
502
+ Logger.debug('Failed to clear worker metric labels', err);
503
+ }
504
+ }));
505
+ Logger.debug(`Cleared metrics for worker: ${workerName}`);
506
+ },
507
+ /**
508
+ * Shutdown
509
+ */
510
+ shutdown() {
511
+ Logger.info('Observability shutting down...');
512
+ // Close Datadog client
513
+ if (datadogClient !== null) {
514
+ datadogClient.close(() => {
515
+ Logger.debug('Datadog client closed');
516
+ });
517
+ datadogClient = null;
518
+ }
519
+ // End all active spans
520
+ for (const [spanId, entry] of activeSpans.entries()) {
521
+ entry.span.end();
522
+ Logger.debug(`Span force-ended: ${spanId}`);
523
+ }
524
+ activeSpans.clear();
525
+ if (spanSweepInterval) {
526
+ clearInterval(spanSweepInterval);
527
+ spanSweepInterval = null;
528
+ }
529
+ // Clear metrics
530
+ promMetrics.clear();
531
+ promRegistry = null;
532
+ promClient = null;
533
+ otelTracer = null;
534
+ config = null;
535
+ Logger.info('Observability shutdown complete');
536
+ },
537
+ });
538
+ // Graceful shutdown handled by WorkerShutdown
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Plugin Manager
3
+ * Extensible plugin system with lifecycle hooks
4
+ * Sealed namespace for immutability
5
+ */
6
+ export type PluginHook = 'beforeStart' | 'afterStart' | 'beforeProcess' | 'afterProcess' | 'beforeStop' | 'afterStop' | 'onError' | 'onComplete' | 'onRetry' | 'onCircuitOpen' | 'onCircuitClose' | 'onScaleUp' | 'onScaleDown';
7
+ export type HookContext = {
8
+ workerName: string;
9
+ jobId?: string;
10
+ version?: string;
11
+ jobData?: unknown;
12
+ error?: Error;
13
+ metadata?: Record<string, unknown>;
14
+ timestamp: Date;
15
+ };
16
+ export type HookResult = {
17
+ modified?: boolean;
18
+ jobData?: unknown;
19
+ stop?: boolean;
20
+ error?: Error;
21
+ };
22
+ export type PluginMetadata = {
23
+ name: string;
24
+ version: string;
25
+ author?: string;
26
+ description?: string;
27
+ dependencies?: string[];
28
+ };
29
+ export type Plugin = {
30
+ metadata: PluginMetadata;
31
+ hooks: Partial<Record<PluginHook, PluginHookHandler>>;
32
+ onEnable?: () => void | Promise<void>;
33
+ onDisable?: () => void | Promise<void>;
34
+ };
35
+ export type PluginHookHandler = (context: HookContext) => HookResult | Promise<HookResult> | undefined | Promise<HookResult | undefined>;
36
+ export type RegisteredPlugin = {
37
+ plugin: Plugin;
38
+ enabled: boolean;
39
+ registeredAt: Date;
40
+ priority: number;
41
+ };
42
+ export type HookExecutionResult = {
43
+ data: unknown;
44
+ hook: PluginHook;
45
+ executionTime: number;
46
+ pluginsExecuted: number;
47
+ errors: Array<{
48
+ pluginName: string;
49
+ error: Error;
50
+ }>;
51
+ context: HookContext;
52
+ modified: boolean;
53
+ stopped: boolean;
54
+ };
55
+ /**
56
+ * Plugin Manager - Sealed namespace
57
+ */
58
+ export declare const PluginManager: Readonly<{
59
+ /**
60
+ * Register a plugin
61
+ */
62
+ register(plugin: Plugin, priority?: number): Promise<void>;
63
+ /**
64
+ * Unregister a plugin
65
+ */
66
+ unregister(pluginName: string): Promise<void>;
67
+ /**
68
+ * Enable a plugin
69
+ */
70
+ enable(pluginName: string): Promise<void>;
71
+ /**
72
+ * Disable a plugin
73
+ */
74
+ disable(pluginName: string): Promise<void>;
75
+ /**
76
+ * Execute hooks for a lifecycle event
77
+ */
78
+ executeHook(hook: PluginHook, context: HookContext): Promise<HookExecutionResult>;
79
+ /**
80
+ * Get registered plugins
81
+ */
82
+ getPlugins(): ReadonlyArray<RegisteredPlugin & {
83
+ name: string;
84
+ }>;
85
+ /**
86
+ * Get plugin by name
87
+ */
88
+ getPlugin(pluginName: string): (RegisteredPlugin & {
89
+ name: string;
90
+ }) | null;
91
+ /**
92
+ * Check if plugin is registered
93
+ */
94
+ isRegistered(pluginName: string): boolean;
95
+ /**
96
+ * Check if plugin is enabled
97
+ */
98
+ isEnabled(pluginName: string): boolean;
99
+ /**
100
+ * Get hook execution history
101
+ */
102
+ getExecutionHistory(hook?: PluginHook, limit?: number): ReadonlyArray<HookExecutionResult>;
103
+ /**
104
+ * Get plugin statistics
105
+ */
106
+ getStatistics(): {
107
+ totalPlugins: number;
108
+ enabledPlugins: number;
109
+ disabledPlugins: number;
110
+ totalHookExecutions: number;
111
+ hookExecutionsByType: Record<PluginHook, number>;
112
+ averageExecutionTime: number;
113
+ totalErrors: number;
114
+ };
115
+ /**
116
+ * Clear execution history
117
+ */
118
+ clearHistory(): void;
119
+ /**
120
+ * Shutdown and disable all plugins
121
+ */
122
+ shutdown(): Promise<void>;
123
+ }>;
124
+ //# sourceMappingURL=PluginManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginManager.d.ts","sourceRoot":"","sources":["../../../../packages/workers/src/PluginManager.ts"],"names":[],"mappings":"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"}