atomic-queues 1.6.2 → 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
@@ -2,52 +2,35 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getEntityType = getEntityType;
4
4
  exports.getEntityIdProperty = getEntityIdProperty;
5
- exports.getWorkerProcessorMetadata = getWorkerProcessorMetadata;
6
- exports.getJobHandlerMetadata = getJobHandlerMetadata;
7
- exports.getEntityScalerMetadata = getEntityScalerMetadata;
8
5
  exports.getJobCommandMetadata = getJobCommandMetadata;
9
6
  exports.getJobQueryMetadata = getJobQueryMetadata;
7
+ exports.getActorMetadata = getActorMetadata;
8
+ exports.getActorHandlers = getActorHandlers;
9
+ exports.getSchemaMetadata = getSchemaMetadata;
10
+ exports.getReplySchemaMetadata = getReplySchemaMetadata;
10
11
  const constants_1 = require("./constants");
11
- /**
12
- * Get the entity type from a command/query class decorated with @EntityType or @QueueEntity
13
- */
14
12
  function getEntityType(target) {
15
13
  return Reflect.getMetadata(constants_1.ENTITY_TYPE_METADATA, target);
16
14
  }
17
- /**
18
- * Get the entity ID property name from a class decorated with @QueueEntityId or @QueueEntity
19
- */
20
15
  function getEntityIdProperty(target) {
21
16
  return Reflect.getMetadata(constants_1.ENTITY_ID_METADATA, target);
22
17
  }
23
- /**
24
- * Get WorkerProcessor metadata from a class
25
- */
26
- function getWorkerProcessorMetadata(target) {
27
- return Reflect.getMetadata(constants_1.WORKER_PROCESSOR_METADATA, target);
28
- }
29
- /**
30
- * Get all JobHandler metadata from a class
31
- */
32
- function getJobHandlerMetadata(target) {
33
- return Reflect.getMetadata(constants_1.JOB_HANDLER_METADATA, target) || [];
34
- }
35
- /**
36
- * Get EntityScaler metadata from a class
37
- */
38
- function getEntityScalerMetadata(target) {
39
- return Reflect.getMetadata(constants_1.ENTITY_SCALER_METADATA, target);
40
- }
41
- /**
42
- * Get JobCommand metadata from a class
43
- */
44
18
  function getJobCommandMetadata(target) {
45
19
  return Reflect.getMetadata(constants_1.JOB_COMMAND_METADATA, target);
46
20
  }
47
- /**
48
- * Get JobQuery metadata from a class
49
- */
50
21
  function getJobQueryMetadata(target) {
51
22
  return Reflect.getMetadata(constants_1.JOB_QUERY_METADATA, target);
52
23
  }
24
+ function getActorMetadata(target) {
25
+ return Reflect.getMetadata(constants_1.ACTOR_METADATA, target);
26
+ }
27
+ function getActorHandlers(target) {
28
+ return Reflect.getMetadata(constants_1.ACTOR_HANDLERS_METADATA, target) || [];
29
+ }
30
+ function getSchemaMetadata(target) {
31
+ return Reflect.getMetadata(constants_1.SCHEMA_METADATA, target);
32
+ }
33
+ function getReplySchemaMetadata(target) {
34
+ return Reflect.getMetadata(constants_1.REPLY_SCHEMA_METADATA, target);
35
+ }
53
36
  //# sourceMappingURL=metadata-readers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metadata-readers.js","sourceRoot":"","sources":["../../src/decorators/metadata-readers.ts"],"names":[],"mappings":";;AAqBA,sCAEC;AAKD,kDAEC;AAKD,gEAEC;AAKD,sDAEC;AAKD,0DAEC;AAKD,sDAEC;AAKD,kDAEC;AAhED,2CAQqB;AASrB;;GAEG;AACH,SAAgB,aAAa,CAAC,MAAgB;IAC5C,OAAO,OAAO,CAAC,WAAW,CAAC,gCAAoB,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,MAAgB;IAClD,OAAO,OAAO,CAAC,WAAW,CAAC,8BAAkB,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,SAAgB,0BAA0B,CAAC,MAAiB;IAC1D,OAAO,OAAO,CAAC,WAAW,CAAC,qCAAyB,EAAE,MAAM,CAAC,CAAC;AAChE,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,MAAiB;IACrD,OAAO,OAAO,CAAC,WAAW,CAAC,gCAAoB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,SAAgB,uBAAuB,CAAC,MAAiB;IACvD,OAAO,OAAO,CAAC,WAAW,CAAC,kCAAsB,EAAE,MAAM,CAAC,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,MAAgB;IACpD,OAAO,OAAO,CAAC,WAAW,CAAC,gCAAoB,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,MAAgB;IAClD,OAAO,OAAO,CAAC,WAAW,CAAC,8BAAkB,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"metadata-readers.js","sourceRoot":"","sources":["../../src/decorators/metadata-readers.ts"],"names":[],"mappings":";;AAiBA,sCAEC;AAED,kDAEC;AAED,sDAEC;AAED,kDAEC;AAED,4CAEC;AAED,4CAEC;AAED,8CAEC;AAED,wDAEC;AA/CD,2CASqB;AAQrB,SAAgB,aAAa,CAAC,MAAgB;IAC5C,OAAO,OAAO,CAAC,WAAW,CAAC,gCAAoB,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED,SAAgB,mBAAmB,CAAC,MAAgB;IAClD,OAAO,OAAO,CAAC,WAAW,CAAC,8BAAkB,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC;AAED,SAAgB,qBAAqB,CAAC,MAAgB;IACpD,OAAO,OAAO,CAAC,WAAW,CAAC,gCAAoB,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED,SAAgB,mBAAmB,CAAC,MAAgB;IAClD,OAAO,OAAO,CAAC,WAAW,CAAC,8BAAkB,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC;AAED,SAAgB,gBAAgB,CAAC,MAAgB;IAC/C,OAAO,OAAO,CAAC,WAAW,CAAC,0BAAc,EAAE,MAAM,CAAC,CAAC;AACrD,CAAC;AAED,SAAgB,gBAAgB,CAAC,MAAgB;IAC/C,OAAO,OAAO,CAAC,WAAW,CAAC,mCAAuB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AACpE,CAAC;AAED,SAAgB,iBAAiB,CAAC,MAAgB;IAChD,OAAO,OAAO,CAAC,WAAW,CAAC,2BAAe,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAgB,sBAAsB,CAAC,MAAgB;IACrD,OAAO,OAAO,CAAC,WAAW,CAAC,iCAAqB,EAAE,MAAM,CAAC,CAAC;AAC5D,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function Schema(zodSchema: any, replySchema?: any): ClassDecorator;
2
+ //# sourceMappingURL=schema.decorators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.decorators.d.ts","sourceRoot":"","sources":["../../src/decorators/schema.decorators.ts"],"names":[],"mappings":"AAEA,wBAAgB,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,GAAG,GAAG,cAAc,CAOxE"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Schema = Schema;
4
+ const constants_1 = require("./constants");
5
+ function Schema(zodSchema, replySchema) {
6
+ return (target) => {
7
+ Reflect.defineMetadata(constants_1.SCHEMA_METADATA, zodSchema, target);
8
+ if (replySchema) {
9
+ Reflect.defineMetadata(constants_1.REPLY_SCHEMA_METADATA, replySchema, target);
10
+ }
11
+ };
12
+ }
13
+ //# sourceMappingURL=schema.decorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.decorators.js","sourceRoot":"","sources":["../../src/decorators/schema.decorators.ts"],"names":[],"mappings":";;AAEA,wBAOC;AATD,2CAAqE;AAErE,SAAgB,MAAM,CAAC,SAAc,EAAE,WAAiB;IACtD,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,2BAAe,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC3D,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,cAAc,CAAC,iCAAqB,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QACrE,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -10,127 +10,58 @@ export interface IRedisConfig {
10
10
  maxRetriesPerRequest?: number | null;
11
11
  }
12
12
  /**
13
- * Worker configuration options
13
+ * Retry policy configuration
14
14
  */
15
- export interface IWorkerConfig {
16
- /** Number of concurrent jobs a worker can process */
17
- concurrency?: number;
18
- /** Interval in ms to check for stalled jobs */
19
- stalledInterval?: number;
20
- /** Duration in ms that a job lock is held */
21
- lockDuration?: number;
22
- /** Maximum number of times a job can be marked as stalled before failing */
23
- maxStalledCount?: number;
24
- /** Heartbeat TTL in seconds for worker liveness tracking */
25
- heartbeatTTL?: number;
26
- /** Interval in ms between heartbeat updates */
27
- heartbeatInterval?: number;
15
+ export interface IRetryPolicy {
16
+ /** Maximum number of attempts (default: 3) */
17
+ maxAttempts?: number;
18
+ /** Backoff strategy */
19
+ backoff?: 'fixed' | 'exponential';
20
+ /** Base delay in ms (default: 1000) */
21
+ backoffDelay?: number;
22
+ /** Maximum delay in ms (default: 30000) */
23
+ maxDelay?: number;
28
24
  }
29
25
  /**
30
- * Queue configuration options
26
+ * Per-entity-type configuration
31
27
  */
32
- export interface IQueueConfig {
33
- /** Default job options for the queue */
34
- defaultJobOptions?: IJobOptions;
35
- /** Limiter configuration for rate limiting */
36
- limiter?: {
37
- groupKey?: string;
38
- max?: number;
39
- duration?: number;
40
- };
28
+ export interface IEntityConfig {
29
+ /** Default property name for entity ID extraction */
30
+ defaultEntityId?: string;
31
+ /** Gate TTL in seconds (default: 30) */
32
+ gateTTL?: number;
33
+ /** Retry policy for this entity type */
34
+ retry?: IRetryPolicy;
35
+ /** Idle timeout in ms before actor state is evicted from memory (default: 60000) */
36
+ actorIdleTimeout?: number;
37
+ /** Persist actor state to Redis on eviction (default: true) */
38
+ statePersistence?: boolean;
41
39
  }
42
40
  /**
43
- * Job configuration options
41
+ * Executor pool configuration
44
42
  */
45
- export interface IJobOptions {
46
- /** Remove job from queue when completed */
47
- removeOnComplete?: boolean | number;
48
- /** Remove job from queue when failed */
49
- removeOnFail?: boolean | number;
50
- /** Number of attempts before marking as failed */
51
- attempts?: number;
52
- /** Backoff strategy for retries */
53
- backoff?: {
54
- type: 'fixed' | 'exponential';
55
- delay: number;
56
- };
57
- /** Job priority (lower = higher priority) */
58
- priority?: number;
59
- /** Delay in ms before the job becomes available */
60
- delay?: number;
43
+ export interface IExecutorConfig {
44
+ /** Number of concurrent executors (default: 1) */
45
+ poolSize?: number;
46
+ /** Default gate TTL in seconds (default: 30) */
47
+ gateTTL?: number;
48
+ /** Gate refresh interval in ms (default: gateTTL * 500) */
49
+ gateRefreshInterval?: number;
61
50
  }
62
51
  /**
63
- * Service queue configuration for global singleton operations
52
+ * Distributed registry configuration (optional, for cross-service)
64
53
  */
65
- export interface IServiceQueueConfig {
66
- /** Whether to enable the service queue (default: true) */
54
+ export interface IRegistryConfig {
55
+ /** Enable the distributed registry (default: false) */
67
56
  enabled?: boolean;
68
- /** Custom queue name (default: {keyPrefix}-service-queue) */
69
- queueName?: string;
70
- /** Custom worker name (default: {keyPrefix}-service-worker) */
71
- workerName?: string;
72
- }
73
- /**
74
- * Entity-specific configuration for per-entity queue defaults
75
- * Used in module-level `entities` config to define defaults per entity type.
76
- *
77
- * When configured in the module, entities automatically get:
78
- * - Worker spawning when jobs arrive (via QueueEvents)
79
- * - Idle worker termination (via CronManager)
80
- * - Job routing via CQRS CommandBus/QueryBus
81
- *
82
- * No @WorkerProcessor class needed!
83
- *
84
- * @example
85
- * ```typescript
86
- * AtomicQueuesModule.forRoot({
87
- * redis: { host: 'localhost', port: 6379 },
88
- * enableCronManager: true,
89
- * entities: {
90
- * account: {
91
- * queueName: (id) => `${id}-queue`,
92
- * workerName: (id) => `${id}-worker`,
93
- * maxWorkersPerEntity: 1,
94
- * idleTimeoutSeconds: 15,
95
- * },
96
- * },
97
- * })
98
- * ```
99
- */
100
- export interface IEntityConfig {
101
- /**
102
- * Default property name to use for entity ID extraction.
103
- * This is used when commands don't have an @QueueEntityId() decorator.
104
- * Example: 'tableId', 'accountId', 'userId'
105
- */
106
- defaultEntityId?: string;
107
- /**
108
- * Custom queue name generator for this entity type.
109
- * If not provided, uses: {keyPrefix}:{entityType}:{entityId}:queue
110
- */
111
- queueName?: (entityId: string) => string;
112
- /**
113
- * Custom worker name generator for this entity type.
114
- * If not provided, uses: {keyPrefix}:{entityType}:{entityId}:worker
115
- */
116
- workerName?: (entityId: string) => string;
117
- /** Worker configuration overrides for this entity type */
118
- workerConfig?: Partial<IWorkerConfig>;
119
- /**
120
- * Maximum workers per entity (default: 1).
121
- * Determines how many concurrent workers can process jobs for a single entity.
122
- */
123
- maxWorkersPerEntity?: number;
124
- /**
125
- * Idle timeout in seconds before a worker is terminated (default: 15).
126
- * Workers are terminated when they have no jobs to process for this duration.
127
- */
128
- idleTimeoutSeconds?: number;
129
- /**
130
- * If true, workers are automatically spawned when jobs arrive (default: true).
131
- * When enabled, no @WorkerProcessor or @EntityScaler is required.
132
- */
133
- autoSpawn?: boolean;
57
+ /** Service name for identification in the registry */
58
+ serviceName?: string;
59
+ /** Validate payload schemas on send (default: false) */
60
+ schemaValidation?: boolean;
61
+ /** Heartbeat interval in ms (default: 10000) */
62
+ heartbeatInterval?: number;
63
+ /** Registration TTL in seconds (default: 30) */
64
+ registrationTTL?: number;
134
65
  }
135
66
  /**
136
67
  * Main module configuration
@@ -138,51 +69,19 @@ export interface IEntityConfig {
138
69
  export interface IAtomicQueuesModuleConfig {
139
70
  /** Redis connection configuration */
140
71
  redis: IRedisConfig;
141
- /** Default worker configuration */
142
- workerDefaults?: IWorkerConfig;
143
- /** Default queue configuration */
144
- queueDefaults?: IQueueConfig;
145
- /** Enable cron-based worker management */
146
- enableCronManager?: boolean;
147
- /** Cron interval in ms for worker management cycle */
148
- cronInterval?: number;
149
- /** Prefix for all Redis keys */
72
+ /** Executor pool configuration */
73
+ executor?: IExecutorConfig;
74
+ /** Default retry policy */
75
+ retry?: IRetryPolicy;
76
+ /** Per-entity-type overrides */
77
+ entities?: Record<string, IEntityConfig>;
78
+ /** Distributed registry (cross-service communication) */
79
+ registry?: IRegistryConfig;
80
+ /** Prefix for all Redis keys (default: 'aq') */
150
81
  keyPrefix?: string;
151
- /** Service queue configuration for global atomic operations */
152
- serviceQueue?: IServiceQueueConfig;
153
- /** Enable verbose logging (debug logs for service jobs, scaling cycles, etc.) */
82
+ /** Enable verbose logging */
154
83
  verbose?: boolean;
155
- /**
156
- * Auto-register commands from @nestjs/cqrs handlers (default: true)
157
- * When enabled, all @CommandHandler and @QueryHandler decorated classes
158
- * are automatically discovered and registered with QueueBus.
159
- */
84
+ /** Auto-register commands from @nestjs/cqrs handlers (default: true) */
160
85
  autoRegisterCommands?: boolean;
161
- /**
162
- * Per-entity type configuration.
163
- * Allows setting defaults for specific entity types (e.g., 'table', 'account').
164
- * These defaults are merged with processor-level and command-level settings.
165
- *
166
- * Priority chain (highest to lowest):
167
- * 1. @QueueEntityId() decorator on command property
168
- * 2. @WorkerProcessor({ defaultEntityId })
169
- * 3. entities[entityType].defaultEntityId
170
- * 4. Error (no fallback to magic extraction)
171
- *
172
- * @example
173
- * ```typescript
174
- * entities: {
175
- * table: {
176
- * defaultEntityId: 'tableId',
177
- * workerConfig: { concurrency: 1 }
178
- * },
179
- * account: {
180
- * defaultEntityId: 'accountId',
181
- * queueName: (id) => `accounts-${id}-queue`
182
- * }
183
- * }
184
- * ```
185
- */
186
- entities?: Record<string, IEntityConfig>;
187
86
  }
188
87
  //# sourceMappingURL=config.interfaces.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.interfaces.d.ts","sourceRoot":"","sources":["../../../src/domain/interfaces/config.interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.interfaces.d.ts","sourceRoot":"","sources":["../../../src/domain/interfaces/config.interfaces.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uBAAuB;IACvB,OAAO,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;IAClC,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,oFAAoF;IACpF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gDAAgD;IAChD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,qCAAqC;IACrC,KAAK,EAAE,YAAY,CAAC;IAEpB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B,2BAA2B;IAC3B,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAEzC,yDAAyD;IACzD,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,wEAAwE;IACxE,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC"}
@@ -1,12 +1,5 @@
1
1
  export * from './config.interfaces';
2
- export * from './queue.interfaces';
3
- export * from './worker.interfaces';
4
- export * from './lock.interfaces';
5
2
  export * from './job.interfaces';
6
- export * from './scaling.interfaces';
7
- export * from './index-tracking.interfaces';
8
- export * from './event.interfaces';
9
- export * from './process.interfaces';
10
3
  export * from './cqrs.interfaces';
11
4
  export * from './utility.types';
12
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC"}
@@ -15,14 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./config.interfaces"), exports);
18
- __exportStar(require("./queue.interfaces"), exports);
19
- __exportStar(require("./worker.interfaces"), exports);
20
- __exportStar(require("./lock.interfaces"), exports);
21
18
  __exportStar(require("./job.interfaces"), exports);
22
- __exportStar(require("./scaling.interfaces"), exports);
23
- __exportStar(require("./index-tracking.interfaces"), exports);
24
- __exportStar(require("./event.interfaces"), exports);
25
- __exportStar(require("./process.interfaces"), exports);
26
19
  __exportStar(require("./cqrs.interfaces"), exports);
27
20
  __exportStar(require("./utility.types"), exports);
28
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,qDAAmC;AACnC,sDAAoC;AACpC,oDAAkC;AAClC,mDAAiC;AACjC,uDAAqC;AACrC,8DAA4C;AAC5C,qDAAmC;AACnC,uDAAqC;AACrC,oDAAkC;AAClC,kDAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,mDAAiC;AACjC,oDAAkC;AAClC,kDAAgC"}
@@ -1,76 +1,43 @@
1
- import { Job } from 'bullmq';
2
1
  /**
3
- * Job data structure for atomic processing
2
+ * Serialized message stored in the entity log
4
3
  */
5
- export interface IAtomicJobData<T = unknown> {
6
- /** Unique job identifier */
7
- uuid: string;
8
- /** Entity ID this job belongs to */
9
- entityId: string;
10
- /** Entity type (user, table, etc.) */
4
+ export interface ISerializedMessage {
5
+ /** Unique message ID */
6
+ id: string;
7
+ /** Message class name (e.g., 'WithdrawCommand') */
8
+ name: string;
9
+ /** Serialized message data */
10
+ data: Record<string, any>;
11
+ /** Entity type */
11
12
  entityType: string;
12
- /** Command/Query class name to execute */
13
- commandName?: string;
14
- /** Type of operation */
15
- type: 'command' | 'query' | 'custom';
16
- /** Payload data */
17
- payload: T;
18
- /** Additional metadata */
19
- metadata?: Record<string, unknown>;
20
- }
21
- /**
22
- * Job processing result
23
- */
24
- export interface IJobResult<T = unknown> {
25
- success: boolean;
26
- result?: T;
27
- error?: string;
28
- processingTime: number;
13
+ /** Entity ID */
14
+ entityId: string;
15
+ /** Whether this is a query (expects a reply) */
16
+ isQuery?: boolean;
17
+ /** Correlation ID for reply delivery */
18
+ correlationId?: string;
19
+ /** Timestamp when enqueued */
20
+ enqueuedAt: number;
21
+ /** Number of attempts so far */
22
+ attempts: number;
23
+ /** Max attempts allowed */
24
+ maxAttempts: number;
29
25
  }
30
26
  /**
31
- * Job processor function type
32
- */
33
- export type JobProcessor<T = unknown, R = unknown> = (job: Job<IAtomicJobData<T>>) => Promise<R>;
34
- /**
35
- * Job processor registry interface
27
+ * Reference returned from enqueue operations
36
28
  */
37
- export interface IJobProcessorRegistry {
38
- /**
39
- * Register a processor for a job type
40
- */
41
- registerProcessor<T, R>(jobType: string, processor: JobProcessor<T, R>): void;
42
- /**
43
- * Get processor for a job type
44
- */
45
- getProcessor<T, R>(jobType: string): JobProcessor<T, R> | undefined;
46
- /**
47
- * Check if processor exists
48
- */
49
- hasProcessor(jobType: string): boolean;
50
- /**
51
- * Get all registered job types
52
- */
53
- getRegisteredTypes(): string[];
29
+ export interface IMessageRef {
30
+ /** Unique message ID */
31
+ id: string;
32
+ /** Entity key (entityType:entityId) */
33
+ entityKey: string;
54
34
  }
55
35
  /**
56
- * Dynamic command/query executor interface
36
+ * Result of a dispatched message
57
37
  */
58
- export interface IDynamicExecutor {
59
- /**
60
- * Execute a command by class name
61
- */
62
- executeCommand<T>(commandName: string, payload: T): Promise<unknown>;
63
- /**
64
- * Execute a query by class name
65
- */
66
- executeQuery<T>(queryName: string, payload: T): Promise<unknown>;
67
- /**
68
- * Register command module for dynamic loading
69
- */
70
- registerCommandModule(modulePath: string): void;
71
- /**
72
- * Register query module for dynamic loading
73
- */
74
- registerQueryModule(modulePath: string): void;
38
+ export interface IDispatchResult {
39
+ entityKey: string;
40
+ message: ISerializedMessage;
41
+ ownerToken: string;
75
42
  }
76
43
  //# sourceMappingURL=job.interfaces.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"job.interfaces.d.ts","sourceRoot":"","sources":["../../../src/domain/interfaces/job.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,OAAO;IACzC,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wBAAwB;IACxB,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrC,mBAAmB;IACnB,OAAO,EAAE,CAAC,CAAC;IACX,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,OAAO;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,IAAI,CACnD,GAAG,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KACxB,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhB;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,iBAAiB,CAAC,CAAC,EAAE,CAAC,EACpB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,GAC5B,IAAI,CAAC;IAER;;OAEG;IACH,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;IAEpE;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAEvC;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,cAAc,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAErE;;OAEG;IACH,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjE;;OAEG;IACH,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhD;;OAEG;IACH,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/C"}
1
+ {"version":3,"file":"job.interfaces.d.ts","sourceRoot":"","sources":["../../../src/domain/interfaces/job.interfaces.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wCAAwC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;CACpB"}
package/dist/index.d.ts CHANGED
@@ -1,37 +1,3 @@
1
- /**
2
- * =============================================================================
3
- * ATOMIC QUEUES
4
- * =============================================================================
5
- *
6
- * A plug-and-play NestJS library for atomic process handling per entity
7
- * with BullMQ, Redis distributed locking, and dynamic worker management.
8
- *
9
- * Features:
10
- * - Dynamic per-entity queue creation
11
- * - Worker lifecycle management with heartbeat TTL
12
- * - Distributed resource locking (Redis/Lua scripts)
13
- * - Graceful shutdown coordination via pub/sub
14
- * - Cron-based worker spawning/cleanup
15
- * - CQRS command/query dynamic execution
16
- * - Index tracking for jobs, workers, and queues
17
- *
18
- * @example
19
- * ```typescript
20
- * import { AtomicQueuesModule, QueueManagerService, WorkerManagerService } from 'atomic-queues';
21
- *
22
- * @Module({
23
- * imports: [
24
- * AtomicQueuesModule.forRoot({
25
- * redis: { host: 'localhost', port: 6379 },
26
- * enableCronManager: true,
27
- * }),
28
- * ],
29
- * })
30
- * export class AppModule {}
31
- * ```
32
- *
33
- * @packageDocumentation
34
- */
35
1
  export * from './domain';
36
2
  export * from './module';
37
3
  export * from './services';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAGH,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,YAAY,CAAC;AAG3B,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -1,38 +1,4 @@
1
1
  "use strict";
2
- /**
3
- * =============================================================================
4
- * ATOMIC QUEUES
5
- * =============================================================================
6
- *
7
- * A plug-and-play NestJS library for atomic process handling per entity
8
- * with BullMQ, Redis distributed locking, and dynamic worker management.
9
- *
10
- * Features:
11
- * - Dynamic per-entity queue creation
12
- * - Worker lifecycle management with heartbeat TTL
13
- * - Distributed resource locking (Redis/Lua scripts)
14
- * - Graceful shutdown coordination via pub/sub
15
- * - Cron-based worker spawning/cleanup
16
- * - CQRS command/query dynamic execution
17
- * - Index tracking for jobs, workers, and queues
18
- *
19
- * @example
20
- * ```typescript
21
- * import { AtomicQueuesModule, QueueManagerService, WorkerManagerService } from 'atomic-queues';
22
- *
23
- * @Module({
24
- * imports: [
25
- * AtomicQueuesModule.forRoot({
26
- * redis: { host: 'localhost', port: 6379 },
27
- * enableCronManager: true,
28
- * }),
29
- * ],
30
- * })
31
- * export class AppModule {}
32
- * ```
33
- *
34
- * @packageDocumentation
35
- */
36
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
37
3
  if (k2 === undefined) k2 = k;
38
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -48,14 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
48
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
49
15
  };
50
16
  Object.defineProperty(exports, "__esModule", { value: true });
51
- // Domain - Interfaces and Types
52
17
  __exportStar(require("./domain"), exports);
53
- // Module
54
18
  __exportStar(require("./module"), exports);
55
- // Services
56
19
  __exportStar(require("./services"), exports);
57
- // Decorators
58
20
  __exportStar(require("./decorators"), exports);
59
- // Utilities
60
21
  __exportStar(require("./utils"), exports);
61
22
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;;;;;;;;;;;;;;;;AAEH,gCAAgC;AAChC,2CAAyB;AAEzB,SAAS;AACT,2CAAyB;AAEzB,WAAW;AACX,6CAA2B;AAE3B,aAAa;AACb,+CAA6B;AAE7B,YAAY;AACZ,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,2CAAyB;AACzB,6CAA2B;AAC3B,+CAA6B;AAC7B,0CAAwB"}