atomic-queues 1.6.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (337) hide show
  1. package/README.md +182 -411
  2. package/dist/cli/generators/json-schema.d.ts +3 -0
  3. package/dist/cli/generators/json-schema.d.ts.map +1 -0
  4. package/dist/cli/generators/json-schema.js +31 -0
  5. package/dist/cli/generators/json-schema.js.map +1 -0
  6. package/dist/cli/generators/typescript.d.ts +3 -0
  7. package/dist/cli/generators/typescript.d.ts.map +1 -0
  8. package/dist/cli/generators/typescript.js +62 -0
  9. package/dist/cli/generators/typescript.js.map +1 -0
  10. package/dist/cli/index.d.ts +3 -0
  11. package/dist/cli/index.d.ts.map +1 -0
  12. package/dist/cli/index.js +156 -0
  13. package/dist/cli/index.js.map +1 -0
  14. package/dist/decorators/actor.decorators.d.ts +4 -0
  15. package/dist/decorators/actor.decorators.d.ts.map +1 -0
  16. package/dist/decorators/actor.decorators.js +32 -0
  17. package/dist/decorators/actor.decorators.js.map +1 -0
  18. package/dist/decorators/constants.d.ts +5 -12
  19. package/dist/decorators/constants.d.ts.map +1 -1
  20. package/dist/decorators/constants.js +10 -16
  21. package/dist/decorators/constants.js.map +1 -1
  22. package/dist/decorators/index.d.ts +4 -4
  23. package/dist/decorators/index.d.ts.map +1 -1
  24. package/dist/decorators/index.js +4 -4
  25. package/dist/decorators/index.js.map +1 -1
  26. package/dist/decorators/interfaces.d.ts +18 -78
  27. package/dist/decorators/interfaces.d.ts.map +1 -1
  28. package/dist/decorators/metadata-readers.d.ts +5 -26
  29. package/dist/decorators/metadata-readers.d.ts.map +1 -1
  30. package/dist/decorators/metadata-readers.js +16 -33
  31. package/dist/decorators/metadata-readers.js.map +1 -1
  32. package/dist/decorators/schema.decorators.d.ts +2 -0
  33. package/dist/decorators/schema.decorators.d.ts.map +1 -0
  34. package/dist/decorators/schema.decorators.js +13 -0
  35. package/dist/decorators/schema.decorators.js.map +1 -0
  36. package/dist/domain/interfaces/config.interfaces.d.ts +52 -153
  37. package/dist/domain/interfaces/config.interfaces.d.ts.map +1 -1
  38. package/dist/domain/interfaces/index.d.ts +0 -7
  39. package/dist/domain/interfaces/index.d.ts.map +1 -1
  40. package/dist/domain/interfaces/index.js +0 -7
  41. package/dist/domain/interfaces/index.js.map +1 -1
  42. package/dist/domain/interfaces/job.interfaces.d.ts +32 -65
  43. package/dist/domain/interfaces/job.interfaces.d.ts.map +1 -1
  44. package/dist/index.d.ts +0 -34
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +0 -39
  47. package/dist/index.js.map +1 -1
  48. package/dist/module/atomic-queues.module.d.ts +0 -83
  49. package/dist/module/atomic-queues.module.d.ts.map +1 -1
  50. package/dist/module/atomic-queues.module.js +35 -134
  51. package/dist/module/atomic-queues.module.js.map +1 -1
  52. package/dist/services/actor-registry/actor-registry.service.d.ts +30 -0
  53. package/dist/services/actor-registry/actor-registry.service.d.ts.map +1 -0
  54. package/dist/services/actor-registry/actor-registry.service.js +186 -0
  55. package/dist/services/actor-registry/actor-registry.service.js.map +1 -0
  56. package/dist/services/actor-registry/index.d.ts +2 -0
  57. package/dist/services/actor-registry/index.d.ts.map +1 -0
  58. package/dist/services/actor-registry/index.js +18 -0
  59. package/dist/services/actor-registry/index.js.map +1 -0
  60. package/dist/services/actor-system/actor-system.service.d.ts +19 -0
  61. package/dist/services/actor-system/actor-system.service.d.ts.map +1 -0
  62. package/dist/services/actor-system/actor-system.service.js +86 -0
  63. package/dist/services/actor-system/actor-system.service.js.map +1 -0
  64. package/dist/services/actor-system/index.d.ts +2 -0
  65. package/dist/services/actor-system/index.d.ts.map +1 -0
  66. package/dist/services/{cron-manager → actor-system}/index.js +1 -1
  67. package/dist/services/actor-system/index.js.map +1 -0
  68. package/dist/services/command-discovery/command-discovery.service.d.ts +6 -53
  69. package/dist/services/command-discovery/command-discovery.service.d.ts.map +1 -1
  70. package/dist/services/command-discovery/command-discovery.service.js +0 -59
  71. package/dist/services/command-discovery/command-discovery.service.js.map +1 -1
  72. package/dist/services/constants.d.ts +2 -9
  73. package/dist/services/constants.d.ts.map +1 -1
  74. package/dist/services/constants.js +3 -10
  75. package/dist/services/constants.js.map +1 -1
  76. package/dist/services/executor-pool/executor-pool.service.d.ts +31 -0
  77. package/dist/services/executor-pool/executor-pool.service.d.ts.map +1 -0
  78. package/dist/services/executor-pool/executor-pool.service.js +147 -0
  79. package/dist/services/executor-pool/executor-pool.service.js.map +1 -0
  80. package/dist/services/executor-pool/index.d.ts +2 -0
  81. package/dist/services/executor-pool/index.d.ts.map +1 -0
  82. package/dist/services/{queue-manager → executor-pool}/index.js +1 -1
  83. package/dist/services/executor-pool/index.js.map +1 -0
  84. package/dist/services/gate/gate.service.d.ts +17 -0
  85. package/dist/services/gate/gate.service.d.ts.map +1 -0
  86. package/dist/services/gate/gate.service.js +66 -0
  87. package/dist/services/gate/gate.service.js.map +1 -0
  88. package/dist/services/gate/index.d.ts +2 -0
  89. package/dist/services/gate/index.d.ts.map +1 -0
  90. package/dist/services/{spawn-queue → gate}/index.js +1 -1
  91. package/dist/services/gate/index.js.map +1 -0
  92. package/dist/services/handler-executor/handler-executor.service.d.ts +32 -0
  93. package/dist/services/handler-executor/handler-executor.service.d.ts.map +1 -0
  94. package/dist/services/handler-executor/handler-executor.service.js +186 -0
  95. package/dist/services/handler-executor/handler-executor.service.js.map +1 -0
  96. package/dist/services/handler-executor/index.d.ts +2 -0
  97. package/dist/services/handler-executor/index.d.ts.map +1 -0
  98. package/dist/services/handler-executor/index.js +18 -0
  99. package/dist/services/handler-executor/index.js.map +1 -0
  100. package/dist/services/index.d.ts +11 -12
  101. package/dist/services/index.d.ts.map +1 -1
  102. package/dist/services/index.js +11 -12
  103. package/dist/services/index.js.map +1 -1
  104. package/dist/services/log/index.d.ts +2 -0
  105. package/dist/services/log/index.d.ts.map +1 -0
  106. package/dist/services/{index-manager → log}/index.js +1 -1
  107. package/dist/services/log/index.js.map +1 -0
  108. package/dist/services/log/log.service.d.ts +21 -0
  109. package/dist/services/log/log.service.d.ts.map +1 -0
  110. package/dist/services/log/log.service.js +92 -0
  111. package/dist/services/log/log.service.js.map +1 -0
  112. package/dist/services/queue-bus/index.d.ts +0 -4
  113. package/dist/services/queue-bus/index.d.ts.map +1 -1
  114. package/dist/services/queue-bus/index.js +0 -4
  115. package/dist/services/queue-bus/index.js.map +1 -1
  116. package/dist/services/queue-bus/queue-bus.service.d.ts +44 -198
  117. package/dist/services/queue-bus/queue-bus.service.d.ts.map +1 -1
  118. package/dist/services/queue-bus/queue-bus.service.js +103 -259
  119. package/dist/services/queue-bus/queue-bus.service.js.map +1 -1
  120. package/dist/services/queue-bus/queue-bus.utils.d.ts +0 -28
  121. package/dist/services/queue-bus/queue-bus.utils.d.ts.map +1 -1
  122. package/dist/services/queue-bus/queue-bus.utils.js +1 -41
  123. package/dist/services/queue-bus/queue-bus.utils.js.map +1 -1
  124. package/dist/services/registry/index.d.ts +4 -0
  125. package/dist/services/registry/index.d.ts.map +1 -0
  126. package/dist/services/{queue-events-manager → registry}/index.js +3 -1
  127. package/dist/services/registry/index.js.map +1 -0
  128. package/dist/services/registry/registry.service.d.ts +43 -0
  129. package/dist/services/registry/registry.service.d.ts.map +1 -0
  130. package/dist/services/registry/registry.service.js +379 -0
  131. package/dist/services/registry/registry.service.js.map +1 -0
  132. package/dist/services/registry/registry.types.d.ts +24 -0
  133. package/dist/services/registry/registry.types.d.ts.map +1 -0
  134. package/dist/{domain/interfaces/lock.interfaces.js → services/registry/registry.types.js} +1 -1
  135. package/dist/services/registry/registry.types.js.map +1 -0
  136. package/dist/services/registry/schema-converter.d.ts +2 -0
  137. package/dist/services/registry/schema-converter.d.ts.map +1 -0
  138. package/dist/services/registry/schema-converter.js +27 -0
  139. package/dist/services/registry/schema-converter.js.map +1 -0
  140. package/dist/services/result-collector/index.d.ts +2 -0
  141. package/dist/services/result-collector/index.d.ts.map +1 -0
  142. package/dist/services/result-collector/index.js +18 -0
  143. package/dist/services/result-collector/index.js.map +1 -0
  144. package/dist/services/result-collector/result-collector.service.d.ts +17 -0
  145. package/dist/services/result-collector/result-collector.service.d.ts.map +1 -0
  146. package/dist/services/result-collector/result-collector.service.js +92 -0
  147. package/dist/services/result-collector/result-collector.service.js.map +1 -0
  148. package/dist/services/scheduler/index.d.ts +2 -0
  149. package/dist/services/scheduler/index.d.ts.map +1 -0
  150. package/dist/services/{job-processor → scheduler}/index.js +1 -1
  151. package/dist/services/scheduler/index.js.map +1 -0
  152. package/dist/services/scheduler/scheduler.service.d.ts +17 -0
  153. package/dist/services/scheduler/scheduler.service.d.ts.map +1 -0
  154. package/dist/services/scheduler/scheduler.service.js +116 -0
  155. package/dist/services/scheduler/scheduler.service.js.map +1 -0
  156. package/dist/services/shutdown/index.d.ts +2 -0
  157. package/dist/services/shutdown/index.d.ts.map +1 -0
  158. package/dist/services/shutdown/index.js +18 -0
  159. package/dist/services/shutdown/index.js.map +1 -0
  160. package/dist/services/shutdown/shutdown.service.d.ts +8 -0
  161. package/dist/services/shutdown/shutdown.service.d.ts.map +1 -0
  162. package/dist/services/shutdown/shutdown.service.js +29 -0
  163. package/dist/services/shutdown/shutdown.service.js.map +1 -0
  164. package/dist/utils/index.d.ts +3 -1
  165. package/dist/utils/index.d.ts.map +1 -1
  166. package/dist/utils/index.js +3 -1
  167. package/dist/utils/index.js.map +1 -1
  168. package/dist/utils/naming.utils.d.ts +0 -16
  169. package/dist/utils/naming.utils.d.ts.map +1 -1
  170. package/dist/utils/naming.utils.js +0 -29
  171. package/dist/utils/naming.utils.js.map +1 -1
  172. package/package.json +19 -11
  173. package/dist/decorators/legacy.decorators.d.ts +0 -36
  174. package/dist/decorators/legacy.decorators.d.ts.map +0 -1
  175. package/dist/decorators/legacy.decorators.js +0 -61
  176. package/dist/decorators/legacy.decorators.js.map +0 -1
  177. package/dist/decorators/scaler.decorators.d.ts +0 -65
  178. package/dist/decorators/scaler.decorators.d.ts.map +0 -1
  179. package/dist/decorators/scaler.decorators.js +0 -103
  180. package/dist/decorators/scaler.decorators.js.map +0 -1
  181. package/dist/decorators/type-guards.d.ts +0 -18
  182. package/dist/decorators/type-guards.d.ts.map +0 -1
  183. package/dist/decorators/type-guards.js +0 -32
  184. package/dist/decorators/type-guards.js.map +0 -1
  185. package/dist/decorators/worker.decorators.d.ts +0 -58
  186. package/dist/decorators/worker.decorators.d.ts.map +0 -1
  187. package/dist/decorators/worker.decorators.js +0 -92
  188. package/dist/decorators/worker.decorators.js.map +0 -1
  189. package/dist/domain/interfaces/event.interfaces.d.ts +0 -71
  190. package/dist/domain/interfaces/event.interfaces.d.ts.map +0 -1
  191. package/dist/domain/interfaces/event.interfaces.js +0 -3
  192. package/dist/domain/interfaces/event.interfaces.js.map +0 -1
  193. package/dist/domain/interfaces/index-tracking.interfaces.d.ts +0 -69
  194. package/dist/domain/interfaces/index-tracking.interfaces.d.ts.map +0 -1
  195. package/dist/domain/interfaces/index-tracking.interfaces.js +0 -3
  196. package/dist/domain/interfaces/index-tracking.interfaces.js.map +0 -1
  197. package/dist/domain/interfaces/lock.interfaces.d.ts +0 -54
  198. package/dist/domain/interfaces/lock.interfaces.d.ts.map +0 -1
  199. package/dist/domain/interfaces/lock.interfaces.js.map +0 -1
  200. package/dist/domain/interfaces/process.interfaces.d.ts +0 -44
  201. package/dist/domain/interfaces/process.interfaces.d.ts.map +0 -1
  202. package/dist/domain/interfaces/process.interfaces.js +0 -3
  203. package/dist/domain/interfaces/process.interfaces.js.map +0 -1
  204. package/dist/domain/interfaces/queue.interfaces.d.ts +0 -46
  205. package/dist/domain/interfaces/queue.interfaces.d.ts.map +0 -1
  206. package/dist/domain/interfaces/queue.interfaces.js +0 -3
  207. package/dist/domain/interfaces/queue.interfaces.js.map +0 -1
  208. package/dist/domain/interfaces/scaling.interfaces.d.ts +0 -62
  209. package/dist/domain/interfaces/scaling.interfaces.d.ts.map +0 -1
  210. package/dist/domain/interfaces/scaling.interfaces.js +0 -3
  211. package/dist/domain/interfaces/scaling.interfaces.js.map +0 -1
  212. package/dist/domain/interfaces/worker.interfaces.d.ts +0 -120
  213. package/dist/domain/interfaces/worker.interfaces.d.ts.map +0 -1
  214. package/dist/domain/interfaces/worker.interfaces.js +0 -3
  215. package/dist/domain/interfaces/worker.interfaces.js.map +0 -1
  216. package/dist/services/cron-manager/cron-manager.service.d.ts +0 -199
  217. package/dist/services/cron-manager/cron-manager.service.d.ts.map +0 -1
  218. package/dist/services/cron-manager/cron-manager.service.js +0 -583
  219. package/dist/services/cron-manager/cron-manager.service.js.map +0 -1
  220. package/dist/services/cron-manager/index.d.ts +0 -2
  221. package/dist/services/cron-manager/index.d.ts.map +0 -1
  222. package/dist/services/cron-manager/index.js.map +0 -1
  223. package/dist/services/index-manager/index-manager.service.d.ts +0 -142
  224. package/dist/services/index-manager/index-manager.service.d.ts.map +0 -1
  225. package/dist/services/index-manager/index-manager.service.js +0 -325
  226. package/dist/services/index-manager/index-manager.service.js.map +0 -1
  227. package/dist/services/index-manager/index.d.ts +0 -2
  228. package/dist/services/index-manager/index.d.ts.map +0 -1
  229. package/dist/services/index-manager/index.js.map +0 -1
  230. package/dist/services/job-processor/index.d.ts +0 -2
  231. package/dist/services/job-processor/index.d.ts.map +0 -1
  232. package/dist/services/job-processor/index.js.map +0 -1
  233. package/dist/services/job-processor/job-processor.service.d.ts +0 -156
  234. package/dist/services/job-processor/job-processor.service.d.ts.map +0 -1
  235. package/dist/services/job-processor/job-processor.service.js +0 -331
  236. package/dist/services/job-processor/job-processor.service.js.map +0 -1
  237. package/dist/services/processor-discovery/decorator-discovery.service.d.ts +0 -40
  238. package/dist/services/processor-discovery/decorator-discovery.service.d.ts.map +0 -1
  239. package/dist/services/processor-discovery/decorator-discovery.service.js +0 -191
  240. package/dist/services/processor-discovery/decorator-discovery.service.js.map +0 -1
  241. package/dist/services/processor-discovery/index.d.ts +0 -6
  242. package/dist/services/processor-discovery/index.d.ts.map +0 -1
  243. package/dist/services/processor-discovery/index.js +0 -22
  244. package/dist/services/processor-discovery/index.js.map +0 -1
  245. package/dist/services/processor-discovery/processor-discovery.service.d.ts +0 -98
  246. package/dist/services/processor-discovery/processor-discovery.service.d.ts.map +0 -1
  247. package/dist/services/processor-discovery/processor-discovery.service.js +0 -258
  248. package/dist/services/processor-discovery/processor-discovery.service.js.map +0 -1
  249. package/dist/services/processor-discovery/processor-registry.d.ts +0 -58
  250. package/dist/services/processor-discovery/processor-registry.d.ts.map +0 -1
  251. package/dist/services/processor-discovery/processor-registry.js +0 -74
  252. package/dist/services/processor-discovery/processor-registry.js.map +0 -1
  253. package/dist/services/processor-discovery/scaling-registration.service.d.ts +0 -60
  254. package/dist/services/processor-discovery/scaling-registration.service.d.ts.map +0 -1
  255. package/dist/services/processor-discovery/scaling-registration.service.js +0 -261
  256. package/dist/services/processor-discovery/scaling-registration.service.js.map +0 -1
  257. package/dist/services/processor-discovery/worker-factory.service.d.ts +0 -54
  258. package/dist/services/processor-discovery/worker-factory.service.d.ts.map +0 -1
  259. package/dist/services/processor-discovery/worker-factory.service.js +0 -185
  260. package/dist/services/processor-discovery/worker-factory.service.js.map +0 -1
  261. package/dist/services/queue-bus/entity-target.d.ts +0 -58
  262. package/dist/services/queue-bus/entity-target.d.ts.map +0 -1
  263. package/dist/services/queue-bus/entity-target.js +0 -109
  264. package/dist/services/queue-bus/entity-target.js.map +0 -1
  265. package/dist/services/queue-bus/queue-bus.types.d.ts +0 -40
  266. package/dist/services/queue-bus/queue-bus.types.d.ts.map +0 -1
  267. package/dist/services/queue-bus/queue-bus.types.js +0 -3
  268. package/dist/services/queue-bus/queue-bus.types.js.map +0 -1
  269. package/dist/services/queue-bus/queue-target.d.ts +0 -61
  270. package/dist/services/queue-bus/queue-target.d.ts.map +0 -1
  271. package/dist/services/queue-bus/queue-target.js +0 -123
  272. package/dist/services/queue-bus/queue-target.js.map +0 -1
  273. package/dist/services/queue-events-manager/index.d.ts +0 -2
  274. package/dist/services/queue-events-manager/index.d.ts.map +0 -1
  275. package/dist/services/queue-events-manager/index.js.map +0 -1
  276. package/dist/services/queue-events-manager/queue-events-manager.service.d.ts +0 -120
  277. package/dist/services/queue-events-manager/queue-events-manager.service.d.ts.map +0 -1
  278. package/dist/services/queue-events-manager/queue-events-manager.service.js +0 -343
  279. package/dist/services/queue-events-manager/queue-events-manager.service.js.map +0 -1
  280. package/dist/services/queue-manager/index.d.ts +0 -2
  281. package/dist/services/queue-manager/index.d.ts.map +0 -1
  282. package/dist/services/queue-manager/index.js.map +0 -1
  283. package/dist/services/queue-manager/queue-manager.service.d.ts +0 -148
  284. package/dist/services/queue-manager/queue-manager.service.d.ts.map +0 -1
  285. package/dist/services/queue-manager/queue-manager.service.js +0 -348
  286. package/dist/services/queue-manager/queue-manager.service.js.map +0 -1
  287. package/dist/services/resource-lock/index.d.ts +0 -2
  288. package/dist/services/resource-lock/index.d.ts.map +0 -1
  289. package/dist/services/resource-lock/index.js +0 -18
  290. package/dist/services/resource-lock/index.js.map +0 -1
  291. package/dist/services/resource-lock/resource-lock.service.d.ts +0 -120
  292. package/dist/services/resource-lock/resource-lock.service.d.ts.map +0 -1
  293. package/dist/services/resource-lock/resource-lock.service.js +0 -367
  294. package/dist/services/resource-lock/resource-lock.service.js.map +0 -1
  295. package/dist/services/service-queue/index.d.ts +0 -3
  296. package/dist/services/service-queue/index.d.ts.map +0 -1
  297. package/dist/services/service-queue/index.js +0 -19
  298. package/dist/services/service-queue/index.js.map +0 -1
  299. package/dist/services/service-queue/service-queue.service.d.ts +0 -199
  300. package/dist/services/service-queue/service-queue.service.d.ts.map +0 -1
  301. package/dist/services/service-queue/service-queue.service.js +0 -617
  302. package/dist/services/service-queue/service-queue.service.js.map +0 -1
  303. package/dist/services/service-queue/service-queue.types.d.ts +0 -32
  304. package/dist/services/service-queue/service-queue.types.d.ts.map +0 -1
  305. package/dist/services/service-queue/service-queue.types.js +0 -27
  306. package/dist/services/service-queue/service-queue.types.js.map +0 -1
  307. package/dist/services/shutdown-state/index.d.ts +0 -2
  308. package/dist/services/shutdown-state/index.d.ts.map +0 -1
  309. package/dist/services/shutdown-state/index.js +0 -18
  310. package/dist/services/shutdown-state/index.js.map +0 -1
  311. package/dist/services/shutdown-state/shutdown-state.service.d.ts +0 -69
  312. package/dist/services/shutdown-state/shutdown-state.service.d.ts.map +0 -1
  313. package/dist/services/shutdown-state/shutdown-state.service.js +0 -127
  314. package/dist/services/shutdown-state/shutdown-state.service.js.map +0 -1
  315. package/dist/services/spawn-queue/index.d.ts +0 -2
  316. package/dist/services/spawn-queue/index.d.ts.map +0 -1
  317. package/dist/services/spawn-queue/index.js.map +0 -1
  318. package/dist/services/spawn-queue/spawn-queue.service.d.ts +0 -119
  319. package/dist/services/spawn-queue/spawn-queue.service.d.ts.map +0 -1
  320. package/dist/services/spawn-queue/spawn-queue.service.js +0 -273
  321. package/dist/services/spawn-queue/spawn-queue.service.js.map +0 -1
  322. package/dist/services/worker-manager/index.d.ts +0 -2
  323. package/dist/services/worker-manager/index.d.ts.map +0 -1
  324. package/dist/services/worker-manager/index.js +0 -18
  325. package/dist/services/worker-manager/index.js.map +0 -1
  326. package/dist/services/worker-manager/worker-manager.service.d.ts +0 -221
  327. package/dist/services/worker-manager/worker-manager.service.d.ts.map +0 -1
  328. package/dist/services/worker-manager/worker-manager.service.js +0 -591
  329. package/dist/services/worker-manager/worker-manager.service.js.map +0 -1
  330. package/dist/utils/helpers.d.ts +0 -5
  331. package/dist/utils/helpers.d.ts.map +0 -1
  332. package/dist/utils/helpers.js +0 -21
  333. package/dist/utils/helpers.js.map +0 -1
  334. package/dist/utils/job.utils.d.ts +0 -50
  335. package/dist/utils/job.utils.d.ts.map +0 -1
  336. package/dist/utils/job.utils.js +0 -89
  337. package/dist/utils/job.utils.js.map +0 -1
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ServiceQueueJobNames = void 0;
4
- /**
5
- * Service-level job names for global atomic operations.
6
- * These operations MUST be processed by exactly ONE worker across the entire distributed system.
7
- */
8
- var ServiceQueueJobNames;
9
- (function (ServiceQueueJobNames) {
10
- /** Get the count of all workers across all nodes */
11
- ServiceQueueJobNames["GET_GLOBAL_WORKER_COUNT"] = "get-global-worker-count";
12
- /** Get workers for a specific entity across all nodes */
13
- ServiceQueueJobNames["GET_ENTITY_WORKERS"] = "get-entity-workers";
14
- /** Verify ownership of a resource */
15
- ServiceQueueJobNames["VERIFY_OWNERSHIP"] = "verify-ownership";
16
- /** Acquire global lock */
17
- ServiceQueueJobNames["ACQUIRE_GLOBAL_LOCK"] = "acquire-global-lock";
18
- /** Release global lock */
19
- ServiceQueueJobNames["RELEASE_GLOBAL_LOCK"] = "release-global-lock";
20
- /** Run scaling cycle for CronManager - triggers worker spawn/terminate decisions */
21
- ServiceQueueJobNames["RUN_SCALING_CYCLE"] = "run-scaling-cycle";
22
- /** Spawn a worker for a specific entity - used when opening a table/entity */
23
- ServiceQueueJobNames["SPAWN_ENTITY_WORKER"] = "spawn-entity-worker";
24
- /** Custom service operation */
25
- ServiceQueueJobNames["CUSTOM"] = "custom";
26
- })(ServiceQueueJobNames || (exports.ServiceQueueJobNames = ServiceQueueJobNames = {}));
27
- //# sourceMappingURL=service-queue.types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service-queue.types.js","sourceRoot":"","sources":["../../../src/services/service-queue/service-queue.types.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,IAAY,oBAiBX;AAjBD,WAAY,oBAAoB;IAC9B,oDAAoD;IACpD,2EAAmD,CAAA;IACnD,yDAAyD;IACzD,iEAAyC,CAAA;IACzC,qCAAqC;IACrC,6DAAqC,CAAA;IACrC,0BAA0B;IAC1B,mEAA2C,CAAA;IAC3C,0BAA0B;IAC1B,mEAA2C,CAAA;IAC3C,oFAAoF;IACpF,+DAAuC,CAAA;IACvC,8EAA8E;IAC9E,mEAA2C,CAAA;IAC3C,+BAA+B;IAC/B,yCAAiB,CAAA;AACnB,CAAC,EAjBW,oBAAoB,oCAApB,oBAAoB,QAiB/B"}
@@ -1,2 +0,0 @@
1
- export * from './shutdown-state.service';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/shutdown-state/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./shutdown-state.service"), exports);
18
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/shutdown-state/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC"}
@@ -1,69 +0,0 @@
1
- import { OnModuleInit } from '@nestjs/common';
2
- /**
3
- * ShutdownStateService
4
- *
5
- * Tracks whether the application is in the process of shutting down.
6
- * This is used to prevent cleanup operations (like clearing player data)
7
- * when sockets disconnect due to server shutdown vs intentional disconnect.
8
- *
9
- * IMPORTANT: We use direct process signal handlers (not onApplicationShutdown)
10
- * because onApplicationShutdown is called AFTER sockets disconnect, which is too late.
11
- * By registering our own handlers in onModuleInit, we catch the signal BEFORE
12
- * any cleanup happens.
13
- *
14
- * @example
15
- * ```typescript
16
- * @Injectable()
17
- * export class MyService {
18
- * constructor(private readonly shutdownState: ShutdownStateService) {}
19
- *
20
- * async handleDisconnect(client: Socket) {
21
- * // Skip cleanup during graceful shutdown
22
- * if (this.shutdownState.isShuttingDown) {
23
- * this.logger.warn('Skipping cleanup - server is shutting down');
24
- * return;
25
- * }
26
- *
27
- * // Normal cleanup logic
28
- * await this.cleanupUserSession(client);
29
- * }
30
- * }
31
- * ```
32
- */
33
- export declare class ShutdownStateService implements OnModuleInit {
34
- private readonly logger;
35
- private shuttingDown;
36
- private shutdownSignal;
37
- private shutdownTimestamp;
38
- private readonly shutdownCallbacks;
39
- /**
40
- * Register signal handlers early to catch shutdown before socket disconnects.
41
- */
42
- onModuleInit(): void;
43
- /**
44
- * Check if the application is currently shutting down.
45
- */
46
- get isShuttingDown(): boolean;
47
- /**
48
- * Get the signal that triggered shutdown (if any).
49
- */
50
- getShutdownSignal(): NodeJS.Signals | null;
51
- /**
52
- * Get the timestamp when shutdown was initiated.
53
- */
54
- getShutdownTimestamp(): Date | null;
55
- /**
56
- * Register a callback to be executed when shutdown is detected.
57
- * These callbacks are executed synchronously in order of registration.
58
- */
59
- onShutdown(callback: () => void | Promise<void>): void;
60
- /**
61
- * Manually trigger shutdown state (useful for testing or programmatic shutdown).
62
- */
63
- triggerShutdown(signal?: NodeJS.Signals): void;
64
- /**
65
- * Execute all registered shutdown callbacks.
66
- */
67
- private executeShutdownCallbacks;
68
- }
69
- //# sourceMappingURL=shutdown-state.service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shutdown-state.service.d.ts","sourceRoot":"","sources":["../../../src/services/shutdown-state/shutdown-state.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAU,MAAM,gBAAgB,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBACa,oBAAqB,YAAW,YAAY;IACvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;IAChE,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAyC;IAE3E;;OAEG;IACH,YAAY,IAAI,IAAI;IA0BpB;;OAEG;IACH,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED;;OAEG;IACH,iBAAiB,IAAI,MAAM,CAAC,OAAO,GAAG,IAAI;IAI1C;;OAEG;IACH,oBAAoB,IAAI,IAAI,GAAG,IAAI;IAInC;;;OAGG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAItD;;OAEG;IACH,eAAe,CAAC,MAAM,GAAE,MAAM,CAAC,OAAmB,GAAG,IAAI;IAUzD;;OAEG;YACW,wBAAwB;CAWvC"}
@@ -1,127 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var ShutdownStateService_1;
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.ShutdownStateService = void 0;
11
- const common_1 = require("@nestjs/common");
12
- /**
13
- * ShutdownStateService
14
- *
15
- * Tracks whether the application is in the process of shutting down.
16
- * This is used to prevent cleanup operations (like clearing player data)
17
- * when sockets disconnect due to server shutdown vs intentional disconnect.
18
- *
19
- * IMPORTANT: We use direct process signal handlers (not onApplicationShutdown)
20
- * because onApplicationShutdown is called AFTER sockets disconnect, which is too late.
21
- * By registering our own handlers in onModuleInit, we catch the signal BEFORE
22
- * any cleanup happens.
23
- *
24
- * @example
25
- * ```typescript
26
- * @Injectable()
27
- * export class MyService {
28
- * constructor(private readonly shutdownState: ShutdownStateService) {}
29
- *
30
- * async handleDisconnect(client: Socket) {
31
- * // Skip cleanup during graceful shutdown
32
- * if (this.shutdownState.isShuttingDown) {
33
- * this.logger.warn('Skipping cleanup - server is shutting down');
34
- * return;
35
- * }
36
- *
37
- * // Normal cleanup logic
38
- * await this.cleanupUserSession(client);
39
- * }
40
- * }
41
- * ```
42
- */
43
- let ShutdownStateService = ShutdownStateService_1 = class ShutdownStateService {
44
- constructor() {
45
- this.logger = new common_1.Logger(ShutdownStateService_1.name);
46
- this.shuttingDown = false;
47
- this.shutdownSignal = null;
48
- this.shutdownTimestamp = null;
49
- this.shutdownCallbacks = [];
50
- }
51
- /**
52
- * Register signal handlers early to catch shutdown before socket disconnects.
53
- */
54
- onModuleInit() {
55
- // Register handlers for common shutdown signals
56
- // These run BEFORE NestJS starts its shutdown process
57
- const signals = ['SIGINT', 'SIGTERM', 'SIGQUIT'];
58
- for (const signal of signals) {
59
- process.on(signal, () => {
60
- if (!this.shuttingDown) {
61
- this.logger.warn(`Shutdown signal received: ${signal} - Setting shuttingDown flag EARLY`);
62
- this.shuttingDown = true;
63
- this.shutdownSignal = signal;
64
- this.shutdownTimestamp = new Date();
65
- // Execute registered callbacks
66
- this.executeShutdownCallbacks();
67
- }
68
- });
69
- }
70
- this.logger.log('ShutdownStateService initialized - signal handlers registered');
71
- }
72
- /**
73
- * Check if the application is currently shutting down.
74
- */
75
- get isShuttingDown() {
76
- return this.shuttingDown;
77
- }
78
- /**
79
- * Get the signal that triggered shutdown (if any).
80
- */
81
- getShutdownSignal() {
82
- return this.shutdownSignal;
83
- }
84
- /**
85
- * Get the timestamp when shutdown was initiated.
86
- */
87
- getShutdownTimestamp() {
88
- return this.shutdownTimestamp;
89
- }
90
- /**
91
- * Register a callback to be executed when shutdown is detected.
92
- * These callbacks are executed synchronously in order of registration.
93
- */
94
- onShutdown(callback) {
95
- this.shutdownCallbacks.push(callback);
96
- }
97
- /**
98
- * Manually trigger shutdown state (useful for testing or programmatic shutdown).
99
- */
100
- triggerShutdown(signal = 'SIGTERM') {
101
- if (!this.shuttingDown) {
102
- this.logger.warn(`Manual shutdown triggered with signal: ${signal}`);
103
- this.shuttingDown = true;
104
- this.shutdownSignal = signal;
105
- this.shutdownTimestamp = new Date();
106
- this.executeShutdownCallbacks();
107
- }
108
- }
109
- /**
110
- * Execute all registered shutdown callbacks.
111
- */
112
- async executeShutdownCallbacks() {
113
- for (const callback of this.shutdownCallbacks) {
114
- try {
115
- await callback();
116
- }
117
- catch (error) {
118
- this.logger.error(`Error executing shutdown callback: ${error.message}`);
119
- }
120
- }
121
- }
122
- };
123
- exports.ShutdownStateService = ShutdownStateService;
124
- exports.ShutdownStateService = ShutdownStateService = ShutdownStateService_1 = __decorate([
125
- (0, common_1.Injectable)()
126
- ], ShutdownStateService);
127
- //# sourceMappingURL=shutdown-state.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shutdown-state.service.js","sourceRoot":"","sources":["../../../src/services/shutdown-state/shutdown-state.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAkE;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEI,IAAM,oBAAoB,4BAA1B,MAAM,oBAAoB;IAA1B;QACY,WAAM,GAAG,IAAI,eAAM,CAAC,sBAAoB,CAAC,IAAI,CAAC,CAAC;QACxD,iBAAY,GAAG,KAAK,CAAC;QACrB,mBAAc,GAA0B,IAAI,CAAC;QAC7C,sBAAiB,GAAgB,IAAI,CAAC;QAC7B,sBAAiB,GAAsC,EAAE,CAAC;IAuF7E,CAAC;IArFC;;OAEG;IACH,YAAY;QACV,gDAAgD;QAChD,sDAAsD;QACtD,MAAM,OAAO,GAAqB,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAEnE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;gBACtB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;oBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,6BAA6B,MAAM,oCAAoC,CACxE,CAAC;oBACF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;oBACzB,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;oBAC7B,IAAI,CAAC,iBAAiB,GAAG,IAAI,IAAI,EAAE,CAAC;oBAEpC,+BAA+B;oBAC/B,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAClC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,+DAA+D,CAChE,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,QAAoC;QAC7C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,SAAyB,SAAS;QAChD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0CAA0C,MAAM,EAAE,CAAC,CAAC;YACrE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;YAC7B,IAAI,CAAC,iBAAiB,GAAG,IAAI,IAAI,EAAE,CAAC;YACpC,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,wBAAwB;QACpC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC9C,IAAI,CAAC;gBACH,MAAM,QAAQ,EAAE,CAAC;YACnB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,sCAAuC,KAAe,CAAC,OAAO,EAAE,CACjE,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAA;AA5FY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;GACA,oBAAoB,CA4FhC"}
@@ -1,2 +0,0 @@
1
- export * from './spawn-queue.service';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/spawn-queue/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/spawn-queue/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC"}
@@ -1,119 +0,0 @@
1
- import { OnModuleInit, OnModuleDestroy } from '@nestjs/common';
2
- import Redis from 'ioredis';
3
- import { IAtomicQueuesModuleConfig } from '../../domain';
4
- import { WorkerManagerService } from '../worker-manager';
5
- import { QueueEventsManagerService } from '../queue-events-manager';
6
- /**
7
- * Spawn job payload
8
- */
9
- export interface ISpawnJobData {
10
- entityType: string;
11
- entityId: string;
12
- }
13
- /**
14
- * Handler callback that the ProcessorDiscoveryService registers
15
- * to actually create the entity worker on this pod.
16
- */
17
- export type SpawnWorkerHandler = (entityType: string, entityId: string) => Promise<void>;
18
- /**
19
- * SpawnQueueService
20
- *
21
- * Replaces the cron-based / service-queue-based worker creation model
22
- * with a distributed spawn queue.
23
- *
24
- * Architecture:
25
- * - One shared BullMQ queue: `{prefix}-spawn-queue`
26
- * - EVERY pod runs a BullMQ Worker on this queue (concurrency: 1)
27
- * - When QueueEventsManager detects a job for an entity with no worker,
28
- * it enqueues a spawn-worker job here
29
- * - BullMQ distributes spawn jobs round-robin across pods
30
- * - Whichever pod picks up the job creates the entity worker locally
31
- * - Duplicate protection: before creating, check if worker already exists
32
- * (heartbeat key in Redis). If yes, skip. Race-safe because BullMQ
33
- * guarantees only ONE worker processes each job.
34
- *
35
- * Benefits over the old cron approach:
36
- * - Workers naturally distribute across all pods
37
- * - No single leader / no single point of bottleneck
38
- * - No distributed lock / leader election needed
39
- * - Reactive (spawn on demand) rather than polling
40
- *
41
- * Idle cleanup:
42
- * - Each pod runs a local interval that checks its OWN workers' idle time
43
- * - Idle workers are closed directly (no cross-pod signaling needed)
44
- */
45
- export declare class SpawnQueueService implements OnModuleInit, OnModuleDestroy {
46
- private readonly redis;
47
- private readonly config;
48
- private readonly workerManager;
49
- private readonly logger;
50
- private readonly keyPrefix;
51
- private readonly spawnQueueName;
52
- private spawnQueue;
53
- private spawnWorker;
54
- private idleSweepInterval;
55
- /** Handler registered by ProcessorDiscoveryService */
56
- private spawnHandler;
57
- /** Idle timeout per entity type (set by ProcessorDiscovery) */
58
- private readonly idleTimeouts;
59
- /** Default idle timeout in seconds */
60
- private readonly defaultIdleTimeoutSeconds;
61
- /** Idle sweep interval in ms */
62
- private readonly idleSweepIntervalMs;
63
- /** Reference to QueueEventsManager for hot-cache eviction on idle close */
64
- private queueEventsManager;
65
- constructor(redis: Redis, config: IAtomicQueuesModuleConfig, workerManager: WorkerManagerService);
66
- /**
67
- * Set the QueueEventsManagerService reference for hot-cache eviction.
68
- * Called by ProcessorDiscoveryService to avoid circular dependency.
69
- */
70
- setQueueEventsManager(manager: QueueEventsManagerService): void;
71
- /**
72
- * Register the handler that creates entity workers.
73
- * Called by ProcessorDiscoveryService during init.
74
- */
75
- registerSpawnHandler(handler: SpawnWorkerHandler): void;
76
- /**
77
- * Register idle timeout for an entity type.
78
- */
79
- registerIdleTimeout(entityType: string, timeoutSeconds: number): void;
80
- /**
81
- * Initialize: create the spawn queue and start the spawn worker + idle sweep.
82
- */
83
- onModuleInit(): Promise<void>;
84
- /**
85
- * Enqueue a spawn-worker request.
86
- * Called by QueueEventsManager when a job arrives for an entity with no worker.
87
- *
88
- * Uses deduplication: jobId = `spawn-{entityType}-{entityId}` so BullMQ
89
- * will not create a duplicate if one is already queued/active.
90
- */
91
- requestSpawn(entityType: string, entityId: string): Promise<void>;
92
- /**
93
- * Handle a spawn job picked up by this pod's worker.
94
- */
95
- private handleSpawnJob;
96
- /**
97
- * Direct spawn — bypasses the BullMQ queue entirely.
98
- * Called by QueueEventsManagerService when it wins the atomic claim
99
- * and wants to create the worker on this pod immediately.
100
- */
101
- handleSpawnJobDirect(entityType: string, entityId: string): Promise<void>;
102
- /**
103
- * Start the local idle sweep interval.
104
- * Periodically checks all workers on THIS pod and closes idle ones.
105
- */
106
- private startIdleSweep;
107
- /**
108
- * Sweep all workers on this pod, close any that are idle.
109
- */
110
- private sweepIdleWorkers;
111
- /**
112
- * Extract entity type from worker name.
113
- * Worker names follow pattern: {entityType}-{entityId}-worker
114
- * e.g., "candy-abc123-worker" → "candy"
115
- */
116
- private extractEntityTypeFromWorkerName;
117
- onModuleDestroy(): Promise<void>;
118
- }
119
- //# sourceMappingURL=spawn-queue.service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spawn-queue.service.d.ts","sourceRoot":"","sources":["../../../src/services/spawn-queue/spawn-queue.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,YAAY,EACZ,eAAe,EAChB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBACa,iBAAkB,YAAW,YAAY,EAAE,eAAe;IAyBtC,OAAO,CAAC,QAAQ,CAAC,KAAK;IAEnD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IA3BhC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;IAC7D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IAExC,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,iBAAiB,CAA+B;IAExD,sDAAsD;IACtD,OAAO,CAAC,YAAY,CAAmC;IAEvD,+DAA+D;IAC/D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAE/D,sCAAsC;IACtC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAS;IAEnD,gCAAgC;IAChC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAE7C,2EAA2E;IAC3E,OAAO,CAAC,kBAAkB,CAA0C;gBAGpB,KAAK,EAAE,KAAK,EAEzC,MAAM,EAAE,yBAAyB,EACjC,aAAa,EAAE,oBAAoB;IAQtD;;;OAGG;IACH,qBAAqB,CAAC,OAAO,EAAE,yBAAyB,GAAG,IAAI;IAI/D;;;OAGG;IACH,oBAAoB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAKvD;;OAEG;IACH,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAIrE;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IA0CnC;;;;;;OAMG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BvE;;OAEG;YACW,cAAc;IAwB5B;;;;OAIG;IACG,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc/E;;;OAGG;IACH,OAAO,CAAC,cAAc;IAgBtB;;OAEG;YACW,gBAAgB;IA+B9B;;;;OAIG;IACH,OAAO,CAAC,+BAA+B;IAejC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;CAqBvC"}