@zintrust/core 0.1.42 → 0.1.43

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 (365) hide show
  1. package/app/Controllers/AuthController.d.ts +10 -0
  2. package/app/Controllers/AuthController.d.ts.map +1 -0
  3. package/app/Controllers/AuthController.js +201 -0
  4. package/app/Controllers/UserController.d.ts +9 -0
  5. package/app/Controllers/UserController.d.ts.map +1 -0
  6. package/app/Controllers/UserController.js +8 -0
  7. package/app/Controllers/UserQueryBuilderController.d.ts +16 -0
  8. package/app/Controllers/UserQueryBuilderController.d.ts.map +1 -0
  9. package/app/Controllers/UserQueryBuilderController.js +404 -0
  10. package/app/Middleware/ProfilerMiddleware.d.ts +12 -0
  11. package/app/Middleware/ProfilerMiddleware.d.ts.map +1 -0
  12. package/app/Middleware/ProfilerMiddleware.js +47 -0
  13. package/app/Middleware/index.d.ts +59 -0
  14. package/app/Middleware/index.d.ts.map +1 -0
  15. package/app/Middleware/index.js +215 -0
  16. package/app/Models/Post.d.ts +14 -0
  17. package/app/Models/Post.d.ts.map +1 -0
  18. package/app/Models/Post.js +27 -0
  19. package/app/Models/User.d.ts +14 -0
  20. package/app/Models/User.d.ts.map +1 -0
  21. package/app/Models/User.js +44 -0
  22. package/app/Schedules/JobTracking.d.ts +3 -0
  23. package/app/Schedules/JobTracking.d.ts.map +1 -0
  24. package/app/Schedules/JobTracking.js +13 -0
  25. package/app/Schedules/index.d.ts +2 -0
  26. package/app/Schedules/index.d.ts.map +1 -0
  27. package/app/Schedules/index.js +1 -0
  28. package/app/Toolkit/Broadcast/sendBroadcast.d.ts +6 -0
  29. package/app/Toolkit/Broadcast/sendBroadcast.d.ts.map +1 -0
  30. package/app/Toolkit/Broadcast/sendBroadcast.js +5 -0
  31. package/app/Toolkit/Mail/sendWelcomeEmail.d.ts +6 -0
  32. package/app/Toolkit/Mail/sendWelcomeEmail.d.ts.map +1 -0
  33. package/app/Toolkit/Mail/sendWelcomeEmail.js +20 -0
  34. package/app/Toolkit/Notification/sendSlackNotification.d.ts +8 -0
  35. package/app/Toolkit/Notification/sendSlackNotification.d.ts.map +1 -0
  36. package/app/Toolkit/Notification/sendSlackNotification.js +5 -0
  37. package/app/Toolkit/Notification/sendSms.d.ts +6 -0
  38. package/app/Toolkit/Notification/sendSms.d.ts.map +1 -0
  39. package/app/Toolkit/Notification/sendSms.js +5 -0
  40. package/app/Types/controller.d.ts +42 -0
  41. package/app/Types/controller.d.ts.map +1 -0
  42. package/app/Types/controller.js +1 -0
  43. package/config/broadcast.d.ts +38 -0
  44. package/config/broadcast.d.ts.map +1 -0
  45. package/config/broadcast.js +37 -0
  46. package/config/cache.d.ts +40 -0
  47. package/config/cache.d.ts.map +1 -0
  48. package/config/cache.js +39 -0
  49. package/config/database.d.ts +58 -0
  50. package/config/database.d.ts.map +1 -0
  51. package/config/database.js +65 -0
  52. package/config/mail.d.ts +51 -0
  53. package/config/mail.d.ts.map +1 -0
  54. package/config/mail.js +69 -0
  55. package/config/middleware.d.ts +11 -0
  56. package/config/middleware.d.ts.map +1 -0
  57. package/config/middleware.js +30 -0
  58. package/config/notification.d.ts +33 -0
  59. package/config/notification.d.ts.map +1 -0
  60. package/config/notification.js +33 -0
  61. package/config/queue.d.ts +55 -0
  62. package/config/queue.d.ts.map +1 -0
  63. package/config/queue.js +87 -0
  64. package/config/storage.d.ts +59 -0
  65. package/config/storage.d.ts.map +1 -0
  66. package/config/storage.js +59 -0
  67. package/config/workers.d.ts +54 -0
  68. package/config/workers.d.ts.map +1 -0
  69. package/config/workers.js +83 -0
  70. package/package.json +11 -5
  71. package/packages/cloudflare-d1-proxy/src/index.d.ts +48 -0
  72. package/packages/cloudflare-d1-proxy/src/index.d.ts.map +1 -0
  73. package/packages/cloudflare-d1-proxy/src/index.js +387 -0
  74. package/packages/cloudflare-kv-proxy/src/index.d.ts +44 -0
  75. package/packages/cloudflare-kv-proxy/src/index.d.ts.map +1 -0
  76. package/packages/cloudflare-kv-proxy/src/index.js +325 -0
  77. package/packages/queue-monitor/src/QueueMonitoringService.d.ts +35 -0
  78. package/packages/queue-monitor/src/QueueMonitoringService.d.ts.map +1 -0
  79. package/packages/queue-monitor/src/QueueMonitoringService.js +194 -0
  80. package/packages/queue-monitor/src/connection.d.ts +3 -0
  81. package/packages/queue-monitor/src/connection.d.ts.map +1 -0
  82. package/packages/queue-monitor/src/connection.js +1 -0
  83. package/packages/queue-monitor/src/dashboard-ui.d.ts +7 -0
  84. package/packages/queue-monitor/src/dashboard-ui.d.ts.map +1 -0
  85. package/packages/queue-monitor/src/dashboard-ui.js +997 -0
  86. package/packages/queue-monitor/src/driver.d.ts +15 -0
  87. package/packages/queue-monitor/src/driver.d.ts.map +1 -0
  88. package/packages/queue-monitor/src/driver.js +115 -0
  89. package/packages/queue-monitor/src/index.d.ts +71 -0
  90. package/packages/queue-monitor/src/index.d.ts.map +1 -0
  91. package/packages/queue-monitor/src/index.js +296 -0
  92. package/packages/queue-monitor/src/metrics.d.ts +27 -0
  93. package/packages/queue-monitor/src/metrics.d.ts.map +1 -0
  94. package/packages/queue-monitor/src/metrics.js +92 -0
  95. package/packages/queue-monitor/src/worker.d.ts +8 -0
  96. package/packages/queue-monitor/src/worker.d.ts.map +1 -0
  97. package/packages/queue-monitor/src/worker.js +35 -0
  98. package/packages/queue-redis/src/BullMQRedisQueue.d.ts +26 -0
  99. package/packages/queue-redis/src/BullMQRedisQueue.d.ts.map +1 -0
  100. package/packages/queue-redis/src/BullMQRedisQueue.js +463 -0
  101. package/packages/queue-redis/src/HttpQueueDriver.d.ts +18 -0
  102. package/packages/queue-redis/src/HttpQueueDriver.d.ts.map +1 -0
  103. package/packages/queue-redis/src/HttpQueueDriver.js +249 -0
  104. package/packages/queue-redis/src/QueueHttpGateway.d.ts +16 -0
  105. package/packages/queue-redis/src/QueueHttpGateway.d.ts.map +1 -0
  106. package/packages/queue-redis/src/QueueHttpGateway.js +217 -0
  107. package/packages/queue-redis/src/RedisPublishClient.d.ts +14 -0
  108. package/packages/queue-redis/src/RedisPublishClient.d.ts.map +1 -0
  109. package/packages/queue-redis/src/RedisPublishClient.js +251 -0
  110. package/packages/queue-redis/src/index.d.ts +12 -0
  111. package/packages/queue-redis/src/index.d.ts.map +1 -0
  112. package/packages/queue-redis/src/index.js +10 -0
  113. package/packages/queue-redis/src/register.d.ts +6 -0
  114. package/packages/queue-redis/src/register.d.ts.map +1 -0
  115. package/packages/queue-redis/src/register.js +21 -0
  116. package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.d.ts +11 -0
  117. package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.d.ts.map +1 -0
  118. package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.js +32 -0
  119. package/packages/workers/migrations/20260123180000_create_queue_jobs_table.d.ts +11 -0
  120. package/packages/workers/migrations/20260123180000_create_queue_jobs_table.d.ts.map +1 -0
  121. package/packages/workers/migrations/20260123180000_create_queue_jobs_table.js +46 -0
  122. package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.d.ts +7 -0
  123. package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.d.ts.map +1 -0
  124. package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.js +44 -0
  125. package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.d.ts +7 -0
  126. package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.d.ts.map +1 -0
  127. package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.js +104 -0
  128. package/packages/workers/src/AnomalyDetection.d.ts +107 -0
  129. package/packages/workers/src/AnomalyDetection.d.ts.map +1 -0
  130. package/packages/workers/src/AnomalyDetection.js +329 -0
  131. package/packages/workers/src/AutoScaler.d.ts +128 -0
  132. package/packages/workers/src/AutoScaler.d.ts.map +1 -0
  133. package/packages/workers/src/AutoScaler.js +425 -0
  134. package/packages/workers/src/BroadcastWorker.d.ts +24 -0
  135. package/packages/workers/src/BroadcastWorker.d.ts.map +1 -0
  136. package/packages/workers/src/BroadcastWorker.js +24 -0
  137. package/packages/workers/src/CanaryController.d.ts +104 -0
  138. package/packages/workers/src/CanaryController.d.ts.map +1 -0
  139. package/packages/workers/src/CanaryController.js +424 -0
  140. package/packages/workers/src/ChaosEngineering.d.ts +80 -0
  141. package/packages/workers/src/ChaosEngineering.d.ts.map +1 -0
  142. package/packages/workers/src/ChaosEngineering.js +229 -0
  143. package/packages/workers/src/CircuitBreaker.d.ts +107 -0
  144. package/packages/workers/src/CircuitBreaker.d.ts.map +1 -0
  145. package/packages/workers/src/CircuitBreaker.js +374 -0
  146. package/packages/workers/src/ClusterLock.d.ts +91 -0
  147. package/packages/workers/src/ClusterLock.d.ts.map +1 -0
  148. package/packages/workers/src/ClusterLock.js +397 -0
  149. package/packages/workers/src/ComplianceManager.d.ts +178 -0
  150. package/packages/workers/src/ComplianceManager.d.ts.map +1 -0
  151. package/packages/workers/src/ComplianceManager.js +556 -0
  152. package/packages/workers/src/DatacenterOrchestrator.d.ts +134 -0
  153. package/packages/workers/src/DatacenterOrchestrator.d.ts.map +1 -0
  154. package/packages/workers/src/DatacenterOrchestrator.js +404 -0
  155. package/packages/workers/src/DeadLetterQueue.d.ts +123 -0
  156. package/packages/workers/src/DeadLetterQueue.d.ts.map +1 -0
  157. package/packages/workers/src/DeadLetterQueue.js +544 -0
  158. package/packages/workers/src/HealthMonitor.d.ts +43 -0
  159. package/packages/workers/src/HealthMonitor.d.ts.map +1 -0
  160. package/packages/workers/src/HealthMonitor.js +312 -0
  161. package/packages/workers/src/MultiQueueWorker.d.ts +90 -0
  162. package/packages/workers/src/MultiQueueWorker.d.ts.map +1 -0
  163. package/packages/workers/src/MultiQueueWorker.js +282 -0
  164. package/packages/workers/src/NotificationWorker.d.ts +24 -0
  165. package/packages/workers/src/NotificationWorker.d.ts.map +1 -0
  166. package/packages/workers/src/NotificationWorker.js +23 -0
  167. package/packages/workers/src/Observability.d.ts +154 -0
  168. package/packages/workers/src/Observability.d.ts.map +1 -0
  169. package/packages/workers/src/Observability.js +538 -0
  170. package/packages/workers/src/PluginManager.d.ts +124 -0
  171. package/packages/workers/src/PluginManager.d.ts.map +1 -0
  172. package/packages/workers/src/PluginManager.js +392 -0
  173. package/packages/workers/src/PriorityQueue.d.ts +118 -0
  174. package/packages/workers/src/PriorityQueue.d.ts.map +1 -0
  175. package/packages/workers/src/PriorityQueue.js +276 -0
  176. package/packages/workers/src/ResourceMonitor.d.ts +165 -0
  177. package/packages/workers/src/ResourceMonitor.d.ts.map +1 -0
  178. package/packages/workers/src/ResourceMonitor.js +632 -0
  179. package/packages/workers/src/SLAMonitor.d.ts +111 -0
  180. package/packages/workers/src/SLAMonitor.d.ts.map +1 -0
  181. package/packages/workers/src/SLAMonitor.js +274 -0
  182. package/packages/workers/src/WorkerFactory.d.ts +218 -0
  183. package/packages/workers/src/WorkerFactory.d.ts.map +1 -0
  184. package/packages/workers/src/WorkerFactory.js +2253 -0
  185. package/packages/workers/src/WorkerInit.d.ts +86 -0
  186. package/packages/workers/src/WorkerInit.d.ts.map +1 -0
  187. package/packages/workers/src/WorkerInit.js +307 -0
  188. package/packages/workers/src/WorkerMetrics.d.ts +116 -0
  189. package/packages/workers/src/WorkerMetrics.d.ts.map +1 -0
  190. package/packages/workers/src/WorkerMetrics.js +570 -0
  191. package/packages/workers/src/WorkerRegistry.d.ts +152 -0
  192. package/packages/workers/src/WorkerRegistry.d.ts.map +1 -0
  193. package/packages/workers/src/WorkerRegistry.js +396 -0
  194. package/packages/workers/src/WorkerShutdown.d.ts +70 -0
  195. package/packages/workers/src/WorkerShutdown.d.ts.map +1 -0
  196. package/packages/workers/src/WorkerShutdown.js +185 -0
  197. package/packages/workers/src/WorkerVersioning.d.ts +108 -0
  198. package/packages/workers/src/WorkerVersioning.d.ts.map +1 -0
  199. package/packages/workers/src/WorkerVersioning.js +300 -0
  200. package/packages/workers/src/config/workerConfig.d.ts +5 -0
  201. package/packages/workers/src/config/workerConfig.d.ts.map +1 -0
  202. package/packages/workers/src/config/workerConfig.js +25 -0
  203. package/packages/workers/src/createQueueWorker.d.ts +26 -0
  204. package/packages/workers/src/createQueueWorker.d.ts.map +1 -0
  205. package/packages/workers/src/createQueueWorker.js +367 -0
  206. package/packages/workers/src/dashboard/index.d.ts +2 -0
  207. package/packages/workers/src/dashboard/index.d.ts.map +1 -0
  208. package/packages/workers/src/dashboard/index.js +1 -0
  209. package/packages/workers/src/dashboard/types.d.ts +123 -0
  210. package/packages/workers/src/dashboard/types.d.ts.map +1 -0
  211. package/packages/workers/src/dashboard/types.js +1 -0
  212. package/packages/workers/src/dashboard/workers-api.d.ts +5 -0
  213. package/packages/workers/src/dashboard/workers-api.d.ts.map +1 -0
  214. package/packages/workers/src/dashboard/workers-api.js +738 -0
  215. package/packages/workers/src/helper/index.d.ts +6 -0
  216. package/packages/workers/src/helper/index.d.ts.map +1 -0
  217. package/packages/workers/src/helper/index.js +10 -0
  218. package/packages/workers/src/http/WorkerApiController.d.ts +39 -0
  219. package/packages/workers/src/http/WorkerApiController.d.ts.map +1 -0
  220. package/packages/workers/src/http/WorkerApiController.js +313 -0
  221. package/packages/workers/src/http/WorkerController.d.ts +375 -0
  222. package/packages/workers/src/http/WorkerController.d.ts.map +1 -0
  223. package/packages/workers/src/http/WorkerController.js +1454 -0
  224. package/packages/workers/src/http/WorkerMonitoringService.d.ts +12 -0
  225. package/packages/workers/src/http/WorkerMonitoringService.d.ts.map +1 -0
  226. package/packages/workers/src/http/WorkerMonitoringService.js +89 -0
  227. package/packages/workers/src/http/middleware/CustomValidation.d.ts +93 -0
  228. package/packages/workers/src/http/middleware/CustomValidation.d.ts.map +1 -0
  229. package/packages/workers/src/http/middleware/CustomValidation.js +270 -0
  230. package/packages/workers/src/http/middleware/DatacenterValidator.d.ts +4 -0
  231. package/packages/workers/src/http/middleware/DatacenterValidator.d.ts.map +1 -0
  232. package/packages/workers/src/http/middleware/DatacenterValidator.js +94 -0
  233. package/packages/workers/src/http/middleware/EditWorkerValidation.d.ts +8 -0
  234. package/packages/workers/src/http/middleware/EditWorkerValidation.d.ts.map +1 -0
  235. package/packages/workers/src/http/middleware/EditWorkerValidation.js +56 -0
  236. package/packages/workers/src/http/middleware/FeaturesValidator.d.ts +4 -0
  237. package/packages/workers/src/http/middleware/FeaturesValidator.d.ts.map +1 -0
  238. package/packages/workers/src/http/middleware/FeaturesValidator.js +60 -0
  239. package/packages/workers/src/http/middleware/InfrastructureValidator.d.ts +32 -0
  240. package/packages/workers/src/http/middleware/InfrastructureValidator.d.ts.map +1 -0
  241. package/packages/workers/src/http/middleware/InfrastructureValidator.js +226 -0
  242. package/packages/workers/src/http/middleware/OptionsValidator.d.ts +4 -0
  243. package/packages/workers/src/http/middleware/OptionsValidator.d.ts.map +1 -0
  244. package/packages/workers/src/http/middleware/OptionsValidator.js +112 -0
  245. package/packages/workers/src/http/middleware/PayloadSanitizer.d.ts +8 -0
  246. package/packages/workers/src/http/middleware/PayloadSanitizer.d.ts.map +1 -0
  247. package/packages/workers/src/http/middleware/PayloadSanitizer.js +42 -0
  248. package/packages/workers/src/http/middleware/ProcessorPathSanitizer.d.ts +4 -0
  249. package/packages/workers/src/http/middleware/ProcessorPathSanitizer.d.ts.map +1 -0
  250. package/packages/workers/src/http/middleware/ProcessorPathSanitizer.js +140 -0
  251. package/packages/workers/src/http/middleware/QueueNameSanitizer.d.ts +4 -0
  252. package/packages/workers/src/http/middleware/QueueNameSanitizer.d.ts.map +1 -0
  253. package/packages/workers/src/http/middleware/QueueNameSanitizer.js +45 -0
  254. package/packages/workers/src/http/middleware/ValidateDriver.d.ts +8 -0
  255. package/packages/workers/src/http/middleware/ValidateDriver.d.ts.map +1 -0
  256. package/packages/workers/src/http/middleware/ValidateDriver.js +20 -0
  257. package/packages/workers/src/http/middleware/VersionSanitizer.d.ts +4 -0
  258. package/packages/workers/src/http/middleware/VersionSanitizer.d.ts.map +1 -0
  259. package/packages/workers/src/http/middleware/VersionSanitizer.js +25 -0
  260. package/packages/workers/src/http/middleware/WorkerNameSanitizer.d.ts +4 -0
  261. package/packages/workers/src/http/middleware/WorkerNameSanitizer.d.ts.map +1 -0
  262. package/packages/workers/src/http/middleware/WorkerNameSanitizer.js +46 -0
  263. package/packages/workers/src/http/middleware/WorkerValidationChain.d.ts +28 -0
  264. package/packages/workers/src/http/middleware/WorkerValidationChain.d.ts.map +1 -0
  265. package/packages/workers/src/http/middleware/WorkerValidationChain.js +186 -0
  266. package/packages/workers/src/index.d.ts +47 -0
  267. package/packages/workers/src/index.d.ts.map +1 -0
  268. package/packages/workers/src/index.js +48 -0
  269. package/packages/workers/src/routes/workers.d.ts +13 -0
  270. package/packages/workers/src/routes/workers.d.ts.map +1 -0
  271. package/packages/workers/src/routes/workers.js +126 -0
  272. package/packages/workers/src/storage/WorkerStore.d.ts +52 -0
  273. package/packages/workers/src/storage/WorkerStore.d.ts.map +1 -0
  274. package/packages/workers/src/storage/WorkerStore.js +259 -0
  275. package/packages/workers/src/telemetry/api/TelemetryAPI.d.ts +47 -0
  276. package/packages/workers/src/telemetry/api/TelemetryAPI.d.ts.map +1 -0
  277. package/packages/workers/src/telemetry/api/TelemetryAPI.js +219 -0
  278. package/packages/workers/src/telemetry/api/TelemetryMonitoringService.d.ts +18 -0
  279. package/packages/workers/src/telemetry/api/TelemetryMonitoringService.d.ts.map +1 -0
  280. package/packages/workers/src/telemetry/api/TelemetryMonitoringService.js +140 -0
  281. package/packages/workers/src/telemetry/components/AlertPanel.d.ts +2 -0
  282. package/packages/workers/src/telemetry/components/AlertPanel.d.ts.map +1 -0
  283. package/packages/workers/src/telemetry/components/AlertPanel.js +13 -0
  284. package/packages/workers/src/telemetry/components/CostTracking.d.ts +2 -0
  285. package/packages/workers/src/telemetry/components/CostTracking.d.ts.map +1 -0
  286. package/packages/workers/src/telemetry/components/CostTracking.js +14 -0
  287. package/packages/workers/src/telemetry/components/ResourceUsageChart.d.ts +2 -0
  288. package/packages/workers/src/telemetry/components/ResourceUsageChart.d.ts.map +1 -0
  289. package/packages/workers/src/telemetry/components/ResourceUsageChart.js +11 -0
  290. package/packages/workers/src/telemetry/components/WorkerHealthChart.d.ts +2 -0
  291. package/packages/workers/src/telemetry/components/WorkerHealthChart.d.ts.map +1 -0
  292. package/packages/workers/src/telemetry/components/WorkerHealthChart.js +11 -0
  293. package/packages/workers/src/telemetry/index.d.ts +16 -0
  294. package/packages/workers/src/telemetry/index.d.ts.map +1 -0
  295. package/packages/workers/src/telemetry/index.js +60 -0
  296. package/packages/workers/src/telemetry/routes/dashboard.d.ts +7 -0
  297. package/packages/workers/src/telemetry/routes/dashboard.d.ts.map +1 -0
  298. package/packages/workers/src/telemetry/routes/dashboard.js +608 -0
  299. package/packages/workers/src/type.d.ts +77 -0
  300. package/packages/workers/src/type.d.ts.map +1 -0
  301. package/packages/workers/src/type.js +1 -0
  302. package/packages/workers/src/ui/router/EmbeddedAssets.d.ts +5 -0
  303. package/packages/workers/src/ui/router/EmbeddedAssets.d.ts.map +1 -0
  304. package/packages/workers/src/ui/router/EmbeddedAssets.js +13 -0
  305. package/packages/workers/src/ui/router/ui.d.ts +4 -0
  306. package/packages/workers/src/ui/router/ui.d.ts.map +1 -0
  307. package/packages/workers/src/ui/router/ui.js +208 -0
  308. package/packages/workers/src/ui/types/worker-ui.d.ts +230 -0
  309. package/packages/workers/src/ui/types/worker-ui.d.ts.map +1 -0
  310. package/packages/workers/src/ui/types/worker-ui.js +5 -0
  311. package/routes/api.d.ts +7 -0
  312. package/routes/api.d.ts.map +1 -0
  313. package/routes/api.js +129 -0
  314. package/routes/broadcast.d.ts +9 -0
  315. package/routes/broadcast.d.ts.map +1 -0
  316. package/routes/broadcast.js +27 -0
  317. package/routes/storage.d.ts +4 -0
  318. package/routes/storage.d.ts.map +1 -0
  319. package/routes/storage.js +35 -0
  320. package/src/cache/Cache.d.ts.map +1 -1
  321. package/src/cache/Cache.js +40 -8
  322. package/src/cache/drivers/KVRemoteDriver.d.ts +1 -1
  323. package/src/cache/drivers/KVRemoteDriver.d.ts.map +1 -1
  324. package/src/cache/drivers/KVRemoteDriver.js +259 -44
  325. package/src/cache/drivers/MemoryDriver.d.ts.map +1 -1
  326. package/src/cache/drivers/MemoryDriver.js +10 -2
  327. package/src/cache/drivers/RedisDriver.d.ts.map +1 -1
  328. package/src/cache/drivers/RedisDriver.js +256 -33
  329. package/src/cli/commands/InitContainerCommand.js +10 -10
  330. package/src/cli/commands/NewCommand.d.ts.map +1 -1
  331. package/src/cli/commands/NewCommand.js +33 -0
  332. package/src/cli/commands/StartCommand.d.ts.map +1 -1
  333. package/src/cli/commands/StartCommand.js +23 -1
  334. package/src/cli/scaffolding/ProjectScaffolder.d.ts.map +1 -1
  335. package/src/cli/scaffolding/ProjectScaffolder.js +65 -73
  336. package/src/cli/utils/DistPackager.d.ts.map +1 -1
  337. package/src/cli/utils/DistPackager.js +25 -0
  338. package/src/cli/utils/EnvFileLoader.d.ts +1 -0
  339. package/src/cli/utils/EnvFileLoader.d.ts.map +1 -1
  340. package/src/cli/utils/EnvFileLoader.js +14 -0
  341. package/src/common/RemoteSignedJson.d.ts.map +1 -1
  342. package/src/common/RemoteSignedJson.js +9 -2
  343. package/src/config/cache.js +1 -1
  344. package/src/config/env.d.ts +7 -0
  345. package/src/config/env.d.ts.map +1 -1
  346. package/src/config/env.js +8 -0
  347. package/src/config/queue.js +1 -1
  348. package/src/functions/cloudflare.d.ts.map +1 -1
  349. package/src/functions/cloudflare.js +4 -2
  350. package/src/index.js +3 -3
  351. package/src/middleware/JwtAuthMiddleware.d.ts.map +1 -1
  352. package/src/middleware/JwtAuthMiddleware.js +11 -5
  353. package/src/runtime/RuntimeAdapter.d.ts.map +1 -1
  354. package/src/runtime/RuntimeAdapter.js +30 -12
  355. package/src/runtime/adapters/CloudflareAdapter.d.ts.map +1 -1
  356. package/src/runtime/adapters/CloudflareAdapter.js +15 -4
  357. package/src/scheduler/Schedule.js +1 -1
  358. package/src/scheduler/leader/SchedulerLeader.js +1 -1
  359. package/src/schedules/job-tracking-cleanup.js +1 -1
  360. package/src/security/TokenRevocation.d.ts +19 -2
  361. package/src/security/TokenRevocation.d.ts.map +1 -1
  362. package/src/security/TokenRevocation.js +558 -30
  363. package/src/templates/project/basic/app/Controllers/AuthController.ts.tpl +11 -3
  364. package/src/templates/project/basic/config/middleware.ts.tpl +23 -22
  365. package/src/templates/project/basic/wrangler.jsonc.tpl +28 -0
@@ -0,0 +1,424 @@
1
+ /**
2
+ * Canary Deployment Controller
3
+ * Gradual rollout with traffic percentage control and automatic rollback
4
+ * Sealed namespace for immutability
5
+ */
6
+ import { ErrorFactory, Logger } from '../../../src/index.js';
7
+ import { CircuitBreaker } from './CircuitBreaker.js';
8
+ // Internal state
9
+ const canaryDeployments = new Map();
10
+ const canaryTimers = new Map();
11
+ const MAX_HISTORY = 1000;
12
+ /**
13
+ * Helper: Calculate error rate
14
+ */
15
+ const calculateErrorRate = (processed, errors) => {
16
+ if (processed === 0)
17
+ return 0;
18
+ return errors / processed;
19
+ };
20
+ /**
21
+ * Helper: Calculate success rate
22
+ */
23
+ const calculateSuccessRate = (processed, errors) => {
24
+ if (processed === 0)
25
+ return 1;
26
+ return (processed - errors) / processed;
27
+ };
28
+ /**
29
+ * Helper: Should rollback based on metrics
30
+ */
31
+ const shouldRollback = (deployment) => {
32
+ const { config, metrics } = deployment;
33
+ const { canaryVersion } = metrics;
34
+ // Check error threshold
35
+ const errorRate = calculateErrorRate(canaryVersion.processed, canaryVersion.errors);
36
+ if (errorRate > config.errorThreshold) {
37
+ return {
38
+ should: true,
39
+ reason: `Error rate ${(errorRate * 100).toFixed(2)}% exceeds threshold ${(config.errorThreshold * 100).toFixed(2)}%`,
40
+ };
41
+ }
42
+ // Check success rate
43
+ const successRate = calculateSuccessRate(canaryVersion.processed, canaryVersion.errors);
44
+ if (successRate < config.minSuccessRate) {
45
+ return {
46
+ should: true,
47
+ reason: `Success rate ${(successRate * 100).toFixed(2)}% below minimum ${(config.minSuccessRate * 100).toFixed(2)}%`,
48
+ };
49
+ }
50
+ // Check latency threshold
51
+ if (canaryVersion.avgLatency > config.latencyThreshold) {
52
+ return {
53
+ should: true,
54
+ reason: `P95 latency ${canaryVersion.avgLatency}ms exceeds threshold ${config.latencyThreshold}ms`,
55
+ };
56
+ }
57
+ return { should: false };
58
+ };
59
+ /**
60
+ * Helper: Increment traffic
61
+ */
62
+ const incrementTraffic = (workerName) => {
63
+ const deployment = canaryDeployments.get(workerName);
64
+ if (!deployment) {
65
+ Logger.error('Canary deployment not found', { workerName });
66
+ return;
67
+ }
68
+ const { config } = deployment;
69
+ // Check if we should rollback
70
+ const rollbackCheck = shouldRollback(deployment);
71
+ if (rollbackCheck.should && config.autoRollback) {
72
+ Logger.warn('Auto-rollback triggered', {
73
+ workerName,
74
+ reason: rollbackCheck.reason,
75
+ });
76
+ CanaryController.rollback(workerName, rollbackCheck.reason ?? '');
77
+ return;
78
+ }
79
+ // Increment traffic
80
+ const newTrafficPercent = Math.min(deployment.currentTrafficPercent + config.incrementPercent, config.targetTrafficPercent);
81
+ deployment.currentTrafficPercent = newTrafficPercent;
82
+ // Record history
83
+ appendHistory(deployment, {
84
+ timestamp: new Date(),
85
+ trafficPercent: newTrafficPercent,
86
+ stage: deployment.stage,
87
+ metrics: { ...deployment.metrics },
88
+ decision: `Traffic increased to ${newTrafficPercent}%`,
89
+ });
90
+ Logger.info('Canary traffic incremented', {
91
+ workerName,
92
+ trafficPercent: newTrafficPercent,
93
+ targetPercent: config.targetTrafficPercent,
94
+ });
95
+ // Check if we've reached the target
96
+ if (newTrafficPercent >= config.targetTrafficPercent) {
97
+ deployment.stage = 'monitoring';
98
+ // Wait for final monitoring period
99
+ const existingCompleteTimer = canaryTimers.get(`${workerName}:complete`);
100
+ if (existingCompleteTimer) {
101
+ clearTimeout(existingCompleteTimer);
102
+ canaryTimers.delete(`${workerName}:complete`);
103
+ }
104
+ // eslint-disable-next-line no-restricted-syntax
105
+ const timer = setTimeout(() => {
106
+ try {
107
+ CanaryController.complete(workerName);
108
+ }
109
+ catch (error) {
110
+ Logger.error('Error during canary completion callback', error);
111
+ }
112
+ finally {
113
+ const current = canaryTimers.get(`${workerName}:complete`);
114
+ if (current === timer) {
115
+ canaryTimers.delete(`${workerName}:complete`);
116
+ }
117
+ }
118
+ }, config.monitoringDuration * 1000);
119
+ canaryTimers.set(`${workerName}:complete`, timer);
120
+ }
121
+ else {
122
+ // Schedule next increment
123
+ const existingTimer = canaryTimers.get(workerName);
124
+ if (existingTimer) {
125
+ clearTimeout(existingTimer);
126
+ canaryTimers.delete(workerName);
127
+ }
128
+ // eslint-disable-next-line no-restricted-syntax
129
+ const timer = setTimeout(() => {
130
+ try {
131
+ incrementTraffic(workerName);
132
+ }
133
+ catch (error) {
134
+ Logger.error('Error during canary increment callback', error);
135
+ }
136
+ finally {
137
+ const current = canaryTimers.get(workerName);
138
+ if (current === timer) {
139
+ canaryTimers.delete(workerName);
140
+ }
141
+ }
142
+ }, config.incrementInterval * 1000);
143
+ canaryTimers.set(workerName, timer);
144
+ }
145
+ };
146
+ const appendHistory = (deployment, entry) => {
147
+ deployment.history.push(entry);
148
+ if (deployment.history.length > MAX_HISTORY) {
149
+ deployment.history.splice(0, deployment.history.length - MAX_HISTORY);
150
+ }
151
+ };
152
+ /**
153
+ * Canary Deployment Controller - Sealed namespace
154
+ */
155
+ export const CanaryController = Object.freeze({
156
+ /**
157
+ * Start canary deployment
158
+ */
159
+ start(config) {
160
+ const { workerName } = config;
161
+ if (canaryDeployments.has(workerName)) {
162
+ throw ErrorFactory.createGeneralError(`Canary deployment already in progress for "${workerName}"`);
163
+ }
164
+ // Validate config
165
+ if (config.initialTrafficPercent < 0 || config.initialTrafficPercent > 100) {
166
+ throw ErrorFactory.createValidationError('Initial traffic percent must be between 0 and 100');
167
+ }
168
+ if (config.targetTrafficPercent < config.initialTrafficPercent ||
169
+ config.targetTrafficPercent > 100) {
170
+ throw ErrorFactory.createValidationError('Target traffic percent must be >= initial and <= 100');
171
+ }
172
+ // Create deployment
173
+ const deployment = {
174
+ config,
175
+ currentTrafficPercent: config.initialTrafficPercent,
176
+ stage: 'initial',
177
+ startedAt: new Date(),
178
+ metrics: {
179
+ currentVersion: { processed: 0, errors: 0, avgLatency: 0 },
180
+ canaryVersion: { processed: 0, errors: 0, avgLatency: 0 },
181
+ },
182
+ history: [],
183
+ };
184
+ canaryDeployments.set(workerName, deployment);
185
+ Logger.info('Canary deployment started', {
186
+ workerName,
187
+ currentVersion: config.currentVersion,
188
+ canaryVersion: config.canaryVersion,
189
+ initialTraffic: config.initialTrafficPercent,
190
+ });
191
+ // Start ramping up
192
+ deployment.stage = 'ramping';
193
+ // Schedule first increment
194
+ const existingTimer = canaryTimers.get(workerName);
195
+ if (existingTimer) {
196
+ clearTimeout(existingTimer);
197
+ canaryTimers.delete(workerName);
198
+ }
199
+ // eslint-disable-next-line no-restricted-syntax
200
+ const timer = setTimeout(() => {
201
+ try {
202
+ incrementTraffic(workerName);
203
+ }
204
+ catch (error) {
205
+ Logger.error('Error during canary start callback', error);
206
+ }
207
+ finally {
208
+ const current = canaryTimers.get(workerName);
209
+ if (current === timer) {
210
+ canaryTimers.delete(workerName);
211
+ }
212
+ }
213
+ }, config.monitoringDuration * 1000);
214
+ canaryTimers.set(workerName, timer);
215
+ },
216
+ /**
217
+ * Pause canary deployment
218
+ */
219
+ pause(workerName) {
220
+ const deployment = canaryDeployments.get(workerName);
221
+ if (!deployment) {
222
+ throw ErrorFactory.createNotFoundError(`Canary deployment not found for "${workerName}"`);
223
+ }
224
+ // Clear timer
225
+ const timer = canaryTimers.get(workerName);
226
+ if (timer) {
227
+ clearTimeout(timer);
228
+ canaryTimers.delete(workerName);
229
+ }
230
+ Logger.info('Canary deployment paused', { workerName });
231
+ },
232
+ /**
233
+ * Resume canary deployment
234
+ */
235
+ resume(workerName) {
236
+ const deployment = canaryDeployments.get(workerName);
237
+ if (!deployment) {
238
+ throw ErrorFactory.createNotFoundError(`Canary deployment not found for "${workerName}"`);
239
+ }
240
+ // Resume incrementing
241
+ const existingTimer = canaryTimers.get(workerName);
242
+ if (existingTimer) {
243
+ clearTimeout(existingTimer);
244
+ canaryTimers.delete(workerName);
245
+ }
246
+ // eslint-disable-next-line no-restricted-syntax
247
+ const timer = setTimeout(() => {
248
+ try {
249
+ incrementTraffic(workerName);
250
+ }
251
+ catch (error) {
252
+ Logger.error('Error during canary resume callback', error);
253
+ }
254
+ finally {
255
+ const current = canaryTimers.get(workerName);
256
+ if (current === timer) {
257
+ canaryTimers.delete(workerName);
258
+ }
259
+ }
260
+ }, deployment.config.incrementInterval * 1000);
261
+ canaryTimers.set(workerName, timer);
262
+ Logger.info('Canary deployment resumed', { workerName });
263
+ },
264
+ /**
265
+ * Complete canary deployment
266
+ */
267
+ complete(workerName) {
268
+ const deployment = canaryDeployments.get(workerName);
269
+ if (!deployment) {
270
+ throw ErrorFactory.createNotFoundError(`Canary deployment not found for "${workerName}"`);
271
+ }
272
+ deployment.stage = 'completed';
273
+ deployment.completedAt = new Date();
274
+ // Clear timers
275
+ const timer = canaryTimers.get(workerName);
276
+ if (timer) {
277
+ clearTimeout(timer);
278
+ canaryTimers.delete(workerName);
279
+ }
280
+ const completeTimer = canaryTimers.get(`${workerName}:complete`);
281
+ if (completeTimer) {
282
+ clearTimeout(completeTimer);
283
+ canaryTimers.delete(`${workerName}:complete`);
284
+ }
285
+ // Record completion in history
286
+ appendHistory(deployment, {
287
+ timestamp: new Date(),
288
+ trafficPercent: deployment.currentTrafficPercent,
289
+ stage: 'completed',
290
+ metrics: { ...deployment.metrics },
291
+ decision: 'Deployment completed successfully',
292
+ });
293
+ Logger.info('Canary deployment completed', {
294
+ workerName,
295
+ duration: deployment.completedAt.getTime() - deployment.startedAt.getTime(),
296
+ });
297
+ },
298
+ /**
299
+ * Rollback canary deployment
300
+ */
301
+ rollback(workerName, reason) {
302
+ const deployment = canaryDeployments.get(workerName);
303
+ if (!deployment) {
304
+ throw ErrorFactory.createNotFoundError(`Canary deployment not found for "${workerName}"`);
305
+ }
306
+ deployment.stage = 'rolling-back';
307
+ // Clear timers
308
+ const timer = canaryTimers.get(workerName);
309
+ if (timer) {
310
+ clearTimeout(timer);
311
+ canaryTimers.delete(workerName);
312
+ }
313
+ // Roll back traffic to 0%
314
+ deployment.currentTrafficPercent = 0;
315
+ // Record rollback in history
316
+ appendHistory(deployment, {
317
+ timestamp: new Date(),
318
+ trafficPercent: 0,
319
+ stage: 'rolling-back',
320
+ metrics: { ...deployment.metrics },
321
+ decision: `Rollback initiated: ${reason}`,
322
+ });
323
+ deployment.stage = 'failed';
324
+ deployment.completedAt = new Date();
325
+ Logger.error('Canary deployment rolled back', { workerName, reason });
326
+ // Optional: Open circuit breaker for canary version
327
+ CircuitBreaker.forceOpen(workerName, deployment.config.canaryVersion, reason);
328
+ },
329
+ /**
330
+ * Get canary deployment status
331
+ */
332
+ getStatus(workerName) {
333
+ const deployment = canaryDeployments.get(workerName);
334
+ return deployment ? { ...deployment } : null;
335
+ },
336
+ /**
337
+ * Update metrics for canary deployment
338
+ */
339
+ updateMetrics(workerName, version, processed, errors, avgLatency) {
340
+ const deployment = canaryDeployments.get(workerName);
341
+ if (!deployment) {
342
+ return;
343
+ }
344
+ if (version === deployment.config.currentVersion) {
345
+ deployment.metrics.currentVersion = { processed, errors, avgLatency };
346
+ }
347
+ else if (version === deployment.config.canaryVersion) {
348
+ deployment.metrics.canaryVersion = { processed, errors, avgLatency };
349
+ }
350
+ },
351
+ /**
352
+ * Route job to version based on traffic percentage
353
+ */
354
+ routeJob(workerName) {
355
+ const deployment = canaryDeployments.get(workerName);
356
+ if (!deployment || deployment.stage === 'completed' || deployment.stage === 'failed') {
357
+ return null; // No active canary
358
+ }
359
+ // Random routing based on traffic percentage
360
+ const random = Math.random() * 100; // NOSONAR
361
+ if (random < deployment.currentTrafficPercent) {
362
+ return deployment.config.canaryVersion;
363
+ }
364
+ return deployment.config.currentVersion;
365
+ },
366
+ /**
367
+ * List all canary deployments
368
+ */
369
+ listDeployments() {
370
+ return Array.from(canaryDeployments.keys());
371
+ },
372
+ /**
373
+ * Get deployment history
374
+ */
375
+ getHistory(workerName) {
376
+ const deployment = canaryDeployments.get(workerName);
377
+ return deployment ? [...deployment.history] : null;
378
+ },
379
+ /**
380
+ * Remove completed/failed deployment
381
+ */
382
+ remove(workerName) {
383
+ const deployment = canaryDeployments.get(workerName);
384
+ if (!deployment) {
385
+ throw ErrorFactory.createNotFoundError(`Canary deployment not found for "${workerName}"`);
386
+ }
387
+ if (deployment.stage !== 'completed' && deployment.stage !== 'failed') {
388
+ throw ErrorFactory.createValidationError('Cannot remove active deployment. Pause or complete it first.');
389
+ }
390
+ canaryDeployments.delete(workerName);
391
+ Logger.info('Canary deployment removed', { workerName });
392
+ },
393
+ /**
394
+ * Purge deployment data (force cleanup)
395
+ */
396
+ purge(workerName) {
397
+ const timer = canaryTimers.get(workerName);
398
+ if (timer) {
399
+ clearTimeout(timer);
400
+ canaryTimers.delete(workerName);
401
+ }
402
+ const completionTimer = canaryTimers.get(`${workerName}:complete`);
403
+ if (completionTimer) {
404
+ clearTimeout(completionTimer);
405
+ canaryTimers.delete(`${workerName}:complete`);
406
+ }
407
+ canaryDeployments.delete(workerName);
408
+ Logger.info('Canary deployment purged', { workerName });
409
+ },
410
+ /**
411
+ * Shutdown all canary deployments
412
+ */
413
+ shutdown() {
414
+ Logger.info('CanaryController shutting down...');
415
+ // Clear all timers
416
+ for (const timer of canaryTimers.values()) {
417
+ clearTimeout(timer);
418
+ }
419
+ canaryTimers.clear();
420
+ canaryDeployments.clear();
421
+ Logger.info('CanaryController shutdown complete');
422
+ },
423
+ });
424
+ // Graceful shutdown handled by WorkerShutdown
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Chaos Engineering
3
+ * Controlled fault injection experiments for worker resilience testing
4
+ * Sealed namespace for immutability
5
+ */
6
+ export interface IChaosExperiment {
7
+ name: string;
8
+ description: string;
9
+ target: {
10
+ workers?: string[];
11
+ percentage?: number;
12
+ };
13
+ failure: {
14
+ type: 'crash' | 'latency' | 'error' | 'resource';
15
+ config: unknown;
16
+ };
17
+ duration: number;
18
+ safetyLimits: {
19
+ maxConcurrent: number;
20
+ circuitBreaker: boolean;
21
+ rollbackOn: string[];
22
+ };
23
+ }
24
+ export type IChaosStatus = {
25
+ id: string;
26
+ name: string;
27
+ state: 'defined' | 'running' | 'completed' | 'stopped' | 'failed';
28
+ startedAt: Date | null;
29
+ endedAt: Date | null;
30
+ targetedWorkers: string[];
31
+ failureType: IChaosExperiment['failure']['type'];
32
+ };
33
+ export type IChaosReport = {
34
+ experimentId: string;
35
+ summary: string;
36
+ durationMs: number;
37
+ targetedWorkers: string[];
38
+ completedAt: Date | null;
39
+ };
40
+ export type IChaosComparison = {
41
+ comparedIds: string[];
42
+ running: number;
43
+ completed: number;
44
+ stopped: number;
45
+ };
46
+ /**
47
+ * Chaos Engineering - Sealed namespace
48
+ */
49
+ export declare const ChaosEngineering: Readonly<{
50
+ /**
51
+ * Define a chaos experiment
52
+ */
53
+ defineExperiment(config: IChaosExperiment): string;
54
+ /**
55
+ * Start a chaos experiment
56
+ */
57
+ startExperiment(experimentId: string): Promise<void>;
58
+ /**
59
+ * Stop a chaos experiment
60
+ */
61
+ stopExperiment(experimentId: string): Promise<void>;
62
+ /**
63
+ * Get experiment status
64
+ */
65
+ getExperimentStatus(experimentId: string): IChaosStatus;
66
+ /**
67
+ * Failure injection helpers
68
+ */
69
+ injectCrash(workerName: string): void;
70
+ injectLatency(workerName: string, delayMs: number): void;
71
+ injectError(workerName: string, errorRate: number): void;
72
+ injectResourceExhaustion(workerName: string, type: "cpu" | "memory"): void;
73
+ /**
74
+ * Analysis helpers
75
+ */
76
+ analyzeResilience(experimentId: string): IChaosReport;
77
+ compareExperiments(ids: string[]): IChaosComparison;
78
+ }>;
79
+ export default ChaosEngineering;
80
+ //# sourceMappingURL=ChaosEngineering.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChaosEngineering.d.ts","sourceRoot":"","sources":["../../../../packages/workers/src/ChaosEngineering.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QACN,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,OAAO,EAAE;QACP,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;QACjD,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE;QACZ,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,OAAO,CAAC;QACxB,UAAU,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;CACH;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;IAClE,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,IAAI,GAAG,IAAI,CAAC;IACrB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AA8FF;;GAEG;AACH,eAAO,MAAM,gBAAgB;IAC3B;;OAEG;6BACsB,gBAAgB,GAAG,MAAM;IAiBlD;;OAEG;kCACiC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwC1D;;OAEG;iCACgC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBzD;;OAEG;sCAC+B,MAAM,GAAG,YAAY;IASvD;;OAEG;4BACqB,MAAM,GAAG,IAAI;8BAMX,MAAM,WAAW,MAAM,GAAG,IAAI;4BAIhC,MAAM,aAAa,MAAM,GAAG,IAAI;yCASnB,MAAM,QAAQ,KAAK,GAAG,QAAQ,GAAG,IAAI;IAQ1E;;OAEG;oCAC6B,MAAM,GAAG,YAAY;4BAe7B,MAAM,EAAE,GAAG,gBAAgB;EAUnD,CAAC;AAEH,eAAe,gBAAgB,CAAC"}