bunqueue 1.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 (215) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +640 -0
  3. package/dist/application/dlqManager.d.ts +19 -0
  4. package/dist/application/dlqManager.d.ts.map +1 -0
  5. package/dist/application/dlqManager.js +44 -0
  6. package/dist/application/dlqManager.js.map +1 -0
  7. package/dist/application/eventsManager.d.ts +28 -0
  8. package/dist/application/eventsManager.d.ts.map +1 -0
  9. package/dist/application/eventsManager.js +59 -0
  10. package/dist/application/eventsManager.js.map +1 -0
  11. package/dist/application/jobLogsManager.d.ts +20 -0
  12. package/dist/application/jobLogsManager.d.ts.map +1 -0
  13. package/dist/application/jobLogsManager.js +28 -0
  14. package/dist/application/jobLogsManager.js.map +1 -0
  15. package/dist/application/metricsExporter.d.ts +24 -0
  16. package/dist/application/metricsExporter.d.ts.map +1 -0
  17. package/dist/application/metricsExporter.js +80 -0
  18. package/dist/application/metricsExporter.js.map +1 -0
  19. package/dist/application/operations/ack.d.ts +48 -0
  20. package/dist/application/operations/ack.d.ts.map +1 -0
  21. package/dist/application/operations/ack.js +109 -0
  22. package/dist/application/operations/ack.js.map +1 -0
  23. package/dist/application/operations/index.d.ts +10 -0
  24. package/dist/application/operations/index.d.ts.map +1 -0
  25. package/dist/application/operations/index.js +10 -0
  26. package/dist/application/operations/index.js.map +1 -0
  27. package/dist/application/operations/jobManagement.d.ts +32 -0
  28. package/dist/application/operations/jobManagement.d.ts.map +1 -0
  29. package/dist/application/operations/jobManagement.js +122 -0
  30. package/dist/application/operations/jobManagement.js.map +1 -0
  31. package/dist/application/operations/pull.d.ts +36 -0
  32. package/dist/application/operations/pull.d.ts.map +1 -0
  33. package/dist/application/operations/pull.js +109 -0
  34. package/dist/application/operations/pull.js.map +1 -0
  35. package/dist/application/operations/push.d.ts +36 -0
  36. package/dist/application/operations/push.d.ts.map +1 -0
  37. package/dist/application/operations/push.js +94 -0
  38. package/dist/application/operations/push.js.map +1 -0
  39. package/dist/application/operations/queryOperations.d.ts +33 -0
  40. package/dist/application/operations/queryOperations.d.ts.map +1 -0
  41. package/dist/application/operations/queryOperations.js +57 -0
  42. package/dist/application/operations/queryOperations.js.map +1 -0
  43. package/dist/application/operations/queueControl.d.ts +32 -0
  44. package/dist/application/operations/queueControl.d.ts.map +1 -0
  45. package/dist/application/operations/queueControl.js +72 -0
  46. package/dist/application/operations/queueControl.js.map +1 -0
  47. package/dist/application/queueManager.d.ts +113 -0
  48. package/dist/application/queueManager.d.ts.map +1 -0
  49. package/dist/application/queueManager.js +406 -0
  50. package/dist/application/queueManager.js.map +1 -0
  51. package/dist/application/webhookManager.d.ts +35 -0
  52. package/dist/application/webhookManager.d.ts.map +1 -0
  53. package/dist/application/webhookManager.js +109 -0
  54. package/dist/application/webhookManager.js.map +1 -0
  55. package/dist/application/workerManager.d.ts +48 -0
  56. package/dist/application/workerManager.d.ts.map +1 -0
  57. package/dist/application/workerManager.js +121 -0
  58. package/dist/application/workerManager.js.map +1 -0
  59. package/dist/domain/queue/index.d.ts +6 -0
  60. package/dist/domain/queue/index.d.ts.map +1 -0
  61. package/dist/domain/queue/index.js +6 -0
  62. package/dist/domain/queue/index.js.map +1 -0
  63. package/dist/domain/queue/priorityQueue.d.ts +45 -0
  64. package/dist/domain/queue/priorityQueue.d.ts.map +1 -0
  65. package/dist/domain/queue/priorityQueue.js +203 -0
  66. package/dist/domain/queue/priorityQueue.js.map +1 -0
  67. package/dist/domain/queue/shard.d.ts +98 -0
  68. package/dist/domain/queue/shard.d.ts.map +1 -0
  69. package/dist/domain/queue/shard.js +245 -0
  70. package/dist/domain/queue/shard.js.map +1 -0
  71. package/dist/domain/types/command.d.ts +270 -0
  72. package/dist/domain/types/command.d.ts.map +1 -0
  73. package/dist/domain/types/command.js +6 -0
  74. package/dist/domain/types/command.js.map +1 -0
  75. package/dist/domain/types/cron.d.ts +32 -0
  76. package/dist/domain/types/cron.d.ts.map +1 -0
  77. package/dist/domain/types/cron.js +31 -0
  78. package/dist/domain/types/cron.js.map +1 -0
  79. package/dist/domain/types/index.d.ts +9 -0
  80. package/dist/domain/types/index.d.ts.map +1 -0
  81. package/dist/domain/types/index.js +9 -0
  82. package/dist/domain/types/index.js.map +1 -0
  83. package/dist/domain/types/job.d.ts +94 -0
  84. package/dist/domain/types/job.d.ts.map +1 -0
  85. package/dist/domain/types/job.js +81 -0
  86. package/dist/domain/types/job.js.map +1 -0
  87. package/dist/domain/types/queue.d.ts +86 -0
  88. package/dist/domain/types/queue.d.ts.map +1 -0
  89. package/dist/domain/types/queue.js +84 -0
  90. package/dist/domain/types/queue.js.map +1 -0
  91. package/dist/domain/types/response.d.ts +158 -0
  92. package/dist/domain/types/response.d.ts.map +1 -0
  93. package/dist/domain/types/response.js +86 -0
  94. package/dist/domain/types/response.js.map +1 -0
  95. package/dist/domain/types/webhook.d.ts +33 -0
  96. package/dist/domain/types/webhook.d.ts.map +1 -0
  97. package/dist/domain/types/webhook.js +20 -0
  98. package/dist/domain/types/webhook.js.map +1 -0
  99. package/dist/domain/types/worker.d.ts +27 -0
  100. package/dist/domain/types/worker.d.ts.map +1 -0
  101. package/dist/domain/types/worker.js +27 -0
  102. package/dist/domain/types/worker.js.map +1 -0
  103. package/dist/infrastructure/persistence/index.d.ts +6 -0
  104. package/dist/infrastructure/persistence/index.d.ts.map +1 -0
  105. package/dist/infrastructure/persistence/index.js +6 -0
  106. package/dist/infrastructure/persistence/index.js.map +1 -0
  107. package/dist/infrastructure/persistence/schema.d.ts +14 -0
  108. package/dist/infrastructure/persistence/schema.d.ts.map +1 -0
  109. package/dist/infrastructure/persistence/schema.js +123 -0
  110. package/dist/infrastructure/persistence/schema.js.map +1 -0
  111. package/dist/infrastructure/persistence/sqlite.d.ts +42 -0
  112. package/dist/infrastructure/persistence/sqlite.d.ts.map +1 -0
  113. package/dist/infrastructure/persistence/sqlite.js +164 -0
  114. package/dist/infrastructure/persistence/sqlite.js.map +1 -0
  115. package/dist/infrastructure/persistence/statements.d.ts +55 -0
  116. package/dist/infrastructure/persistence/statements.d.ts.map +1 -0
  117. package/dist/infrastructure/persistence/statements.js +42 -0
  118. package/dist/infrastructure/persistence/statements.js.map +1 -0
  119. package/dist/infrastructure/scheduler/cronParser.d.ts +44 -0
  120. package/dist/infrastructure/scheduler/cronParser.d.ts.map +1 -0
  121. package/dist/infrastructure/scheduler/cronParser.js +90 -0
  122. package/dist/infrastructure/scheduler/cronParser.js.map +1 -0
  123. package/dist/infrastructure/scheduler/cronScheduler.d.ts +68 -0
  124. package/dist/infrastructure/scheduler/cronScheduler.d.ts.map +1 -0
  125. package/dist/infrastructure/scheduler/cronScheduler.js +172 -0
  126. package/dist/infrastructure/scheduler/cronScheduler.js.map +1 -0
  127. package/dist/infrastructure/scheduler/index.d.ts +6 -0
  128. package/dist/infrastructure/scheduler/index.d.ts.map +1 -0
  129. package/dist/infrastructure/scheduler/index.js +6 -0
  130. package/dist/infrastructure/scheduler/index.js.map +1 -0
  131. package/dist/infrastructure/server/handler.d.ts +13 -0
  132. package/dist/infrastructure/server/handler.d.ts.map +1 -0
  133. package/dist/infrastructure/server/handler.js +167 -0
  134. package/dist/infrastructure/server/handler.js.map +1 -0
  135. package/dist/infrastructure/server/handlers/advanced.d.ts +68 -0
  136. package/dist/infrastructure/server/handlers/advanced.d.ts.map +1 -0
  137. package/dist/infrastructure/server/handlers/advanced.js +99 -0
  138. package/dist/infrastructure/server/handlers/advanced.js.map +1 -0
  139. package/dist/infrastructure/server/handlers/core.d.ts +36 -0
  140. package/dist/infrastructure/server/handlers/core.d.ts.map +1 -0
  141. package/dist/infrastructure/server/handlers/core.js +82 -0
  142. package/dist/infrastructure/server/handlers/core.js.map +1 -0
  143. package/dist/infrastructure/server/handlers/cron.d.ts +20 -0
  144. package/dist/infrastructure/server/handlers/cron.d.ts.map +1 -0
  145. package/dist/infrastructure/server/handlers/cron.js +56 -0
  146. package/dist/infrastructure/server/handlers/cron.js.map +1 -0
  147. package/dist/infrastructure/server/handlers/dlq.d.ts +20 -0
  148. package/dist/infrastructure/server/handlers/dlq.d.ts.map +1 -0
  149. package/dist/infrastructure/server/handlers/dlq.js +31 -0
  150. package/dist/infrastructure/server/handlers/dlq.js.map +1 -0
  151. package/dist/infrastructure/server/handlers/index.d.ts +7 -0
  152. package/dist/infrastructure/server/handlers/index.d.ts.map +1 -0
  153. package/dist/infrastructure/server/handlers/index.js +7 -0
  154. package/dist/infrastructure/server/handlers/index.js.map +1 -0
  155. package/dist/infrastructure/server/handlers/management.d.ts +36 -0
  156. package/dist/infrastructure/server/handlers/management.d.ts.map +1 -0
  157. package/dist/infrastructure/server/handlers/management.js +75 -0
  158. package/dist/infrastructure/server/handlers/management.js.map +1 -0
  159. package/dist/infrastructure/server/handlers/monitoring.d.ts +18 -0
  160. package/dist/infrastructure/server/handlers/monitoring.d.ts.map +1 -0
  161. package/dist/infrastructure/server/handlers/monitoring.js +102 -0
  162. package/dist/infrastructure/server/handlers/monitoring.js.map +1 -0
  163. package/dist/infrastructure/server/handlers/query.d.ts +32 -0
  164. package/dist/infrastructure/server/handlers/query.d.ts.map +1 -0
  165. package/dist/infrastructure/server/handlers/query.js +61 -0
  166. package/dist/infrastructure/server/handlers/query.js.map +1 -0
  167. package/dist/infrastructure/server/http.d.ts +43 -0
  168. package/dist/infrastructure/server/http.d.ts.map +1 -0
  169. package/dist/infrastructure/server/http.js +344 -0
  170. package/dist/infrastructure/server/http.js.map +1 -0
  171. package/dist/infrastructure/server/index.d.ts +8 -0
  172. package/dist/infrastructure/server/index.d.ts.map +1 -0
  173. package/dist/infrastructure/server/index.js +8 -0
  174. package/dist/infrastructure/server/index.js.map +1 -0
  175. package/dist/infrastructure/server/protocol.d.ts +44 -0
  176. package/dist/infrastructure/server/protocol.d.ts.map +1 -0
  177. package/dist/infrastructure/server/protocol.js +129 -0
  178. package/dist/infrastructure/server/protocol.js.map +1 -0
  179. package/dist/infrastructure/server/rateLimiter.d.ts +31 -0
  180. package/dist/infrastructure/server/rateLimiter.d.ts.map +1 -0
  181. package/dist/infrastructure/server/rateLimiter.js +79 -0
  182. package/dist/infrastructure/server/rateLimiter.js.map +1 -0
  183. package/dist/infrastructure/server/tcp.d.ts +36 -0
  184. package/dist/infrastructure/server/tcp.d.ts.map +1 -0
  185. package/dist/infrastructure/server/tcp.js +101 -0
  186. package/dist/infrastructure/server/tcp.js.map +1 -0
  187. package/dist/infrastructure/server/types.d.ts +11 -0
  188. package/dist/infrastructure/server/types.d.ts.map +1 -0
  189. package/dist/infrastructure/server/types.js +5 -0
  190. package/dist/infrastructure/server/types.js.map +1 -0
  191. package/dist/main.d.ts +6 -0
  192. package/dist/main.d.ts.map +1 -0
  193. package/dist/main.js +111 -0
  194. package/dist/main.js.map +1 -0
  195. package/dist/shared/hash.d.ts +30 -0
  196. package/dist/shared/hash.d.ts.map +1 -0
  197. package/dist/shared/hash.js +69 -0
  198. package/dist/shared/hash.js.map +1 -0
  199. package/dist/shared/index.d.ts +6 -0
  200. package/dist/shared/index.d.ts.map +1 -0
  201. package/dist/shared/index.js +6 -0
  202. package/dist/shared/index.js.map +1 -0
  203. package/dist/shared/lock.d.ts +70 -0
  204. package/dist/shared/lock.d.ts.map +1 -0
  205. package/dist/shared/lock.js +207 -0
  206. package/dist/shared/lock.js.map +1 -0
  207. package/dist/shared/logger.d.ts +38 -0
  208. package/dist/shared/logger.d.ts.map +1 -0
  209. package/dist/shared/logger.js +74 -0
  210. package/dist/shared/logger.js.map +1 -0
  211. package/dist/shared/serialization.d.ts +23 -0
  212. package/dist/shared/serialization.d.ts.map +1 -0
  213. package/dist/shared/serialization.js +63 -0
  214. package/dist/shared/serialization.js.map +1 -0
  215. package/package.json +82 -0
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Command Handler Router
3
+ * Routes commands to appropriate handlers
4
+ */
5
+ import * as resp from '../../domain/types/response';
6
+ import { constantTimeEqual } from '../../shared/hash';
7
+ // Import handlers
8
+ import { handlePush, handlePushBatch, handlePull, handlePullBatch, handleAck, handleAckBatch, handleFail, } from './handlers/core';
9
+ import { handleGetJob, handleGetState, handleGetResult, handleGetJobCounts, handleGetJobByCustomId, handleGetJobs, } from './handlers/query';
10
+ import { handleCancel, handleProgress, handleGetProgress, handlePause, handleResume, handleDrain, handleStats, handleMetrics, } from './handlers/management';
11
+ import { handleDlq, handleRetryDlq, handlePurgeDlq } from './handlers/dlq';
12
+ import { handleCron, handleCronDelete, handleCronList } from './handlers/cron';
13
+ import { handleUpdate, handleChangePriority, handlePromote, handleMoveToDelayed, handleDiscard, handleWaitJob, handleIsPaused, handleObliterate, handleListQueues, handleClean, handleCount, handleRateLimit, handleRateLimitClear, handleSetConcurrency, handleClearConcurrency, } from './handlers/advanced';
14
+ import { handleAddLog, handleGetLogs, handleHeartbeat, handleRegisterWorker, handleUnregisterWorker, handleListWorkers, handleAddWebhook, handleRemoveWebhook, handleListWebhooks, handlePrometheus, } from './handlers/monitoring';
15
+ /**
16
+ * Handle authentication command
17
+ */
18
+ function handleAuth(cmd, ctx, reqId) {
19
+ for (const token of ctx.authTokens) {
20
+ if (constantTimeEqual(cmd.token, token)) {
21
+ ctx.authenticated = true;
22
+ return resp.ok(undefined, reqId);
23
+ }
24
+ }
25
+ return resp.error('Invalid token', reqId);
26
+ }
27
+ /**
28
+ * Main command handler - routes to specific handlers
29
+ */
30
+ export async function handleCommand(cmd, ctx) {
31
+ const reqId = cmd.reqId;
32
+ try {
33
+ // Auth command is always allowed
34
+ if (cmd.cmd === 'Auth') {
35
+ return handleAuth(cmd, ctx, reqId);
36
+ }
37
+ // Check authentication if tokens are configured
38
+ if (ctx.authTokens.size > 0 && !ctx.authenticated) {
39
+ return resp.error('Not authenticated', reqId);
40
+ }
41
+ // Route to handler
42
+ switch (cmd.cmd) {
43
+ // Core operations
44
+ case 'PUSH':
45
+ return await handlePush(cmd, ctx, reqId);
46
+ case 'PUSHB':
47
+ return await handlePushBatch(cmd, ctx, reqId);
48
+ case 'PULL':
49
+ return await handlePull(cmd, ctx, reqId);
50
+ case 'PULLB':
51
+ return await handlePullBatch(cmd, ctx, reqId);
52
+ case 'ACK':
53
+ return await handleAck(cmd, ctx, reqId);
54
+ case 'ACKB':
55
+ return await handleAckBatch(cmd, ctx, reqId);
56
+ case 'FAIL':
57
+ return await handleFail(cmd, ctx, reqId);
58
+ // Query operations
59
+ case 'GetJob':
60
+ return await handleGetJob(cmd, ctx, reqId);
61
+ case 'GetState':
62
+ return await handleGetState(cmd, ctx, reqId);
63
+ case 'GetResult':
64
+ return await handleGetResult(cmd, ctx, reqId);
65
+ case 'GetJobCounts':
66
+ return await handleGetJobCounts(cmd, ctx, reqId);
67
+ case 'GetJobByCustomId':
68
+ return await handleGetJobByCustomId(cmd, ctx, reqId);
69
+ case 'GetJobs':
70
+ return await handleGetJobs(cmd, ctx, reqId);
71
+ case 'Count':
72
+ return await handleCount(cmd, ctx, reqId);
73
+ case 'GetProgress':
74
+ return await handleGetProgress(cmd, ctx, reqId);
75
+ // Management operations
76
+ case 'Cancel':
77
+ return await handleCancel(cmd, ctx, reqId);
78
+ case 'Progress':
79
+ return await handleProgress(cmd, ctx, reqId);
80
+ case 'Update':
81
+ return await handleUpdate(cmd, ctx, reqId);
82
+ case 'ChangePriority':
83
+ return await handleChangePriority(cmd, ctx, reqId);
84
+ case 'Promote':
85
+ return await handlePromote(cmd, ctx, reqId);
86
+ case 'MoveToDelayed':
87
+ return await handleMoveToDelayed(cmd, ctx, reqId);
88
+ case 'Discard':
89
+ return await handleDiscard(cmd, ctx, reqId);
90
+ case 'WaitJob':
91
+ return await handleWaitJob(cmd, ctx, reqId);
92
+ // Queue control
93
+ case 'Pause':
94
+ return await handlePause(cmd, ctx, reqId);
95
+ case 'Resume':
96
+ return await handleResume(cmd, ctx, reqId);
97
+ case 'IsPaused':
98
+ return await handleIsPaused(cmd, ctx, reqId);
99
+ case 'Drain':
100
+ return await handleDrain(cmd, ctx, reqId);
101
+ case 'Obliterate':
102
+ return await handleObliterate(cmd, ctx, reqId);
103
+ case 'ListQueues':
104
+ return await handleListQueues(cmd, ctx, reqId);
105
+ case 'Clean':
106
+ return await handleClean(cmd, ctx, reqId);
107
+ // DLQ operations
108
+ case 'Dlq':
109
+ return await handleDlq(cmd, ctx, reqId);
110
+ case 'RetryDlq':
111
+ return await handleRetryDlq(cmd, ctx, reqId);
112
+ case 'PurgeDlq':
113
+ return await handlePurgeDlq(cmd, ctx, reqId);
114
+ // Rate limiting
115
+ case 'RateLimit':
116
+ return await handleRateLimit(cmd, ctx, reqId);
117
+ case 'RateLimitClear':
118
+ return await handleRateLimitClear(cmd, ctx, reqId);
119
+ case 'SetConcurrency':
120
+ return await handleSetConcurrency(cmd, ctx, reqId);
121
+ case 'ClearConcurrency':
122
+ return await handleClearConcurrency(cmd, ctx, reqId);
123
+ // Cron operations
124
+ case 'Cron':
125
+ return await handleCron(cmd, ctx, reqId);
126
+ case 'CronDelete':
127
+ return await handleCronDelete(cmd, ctx, reqId);
128
+ case 'CronList':
129
+ return await handleCronList(cmd, ctx, reqId);
130
+ // Monitoring
131
+ case 'Stats':
132
+ return handleStats(ctx, reqId);
133
+ case 'Metrics':
134
+ return handleMetrics(ctx, reqId);
135
+ case 'Prometheus':
136
+ return await handlePrometheus(cmd, ctx, reqId);
137
+ // Job Logs
138
+ case 'AddLog':
139
+ return await handleAddLog(cmd, ctx, reqId);
140
+ case 'GetLogs':
141
+ return await handleGetLogs(cmd, ctx, reqId);
142
+ // Workers
143
+ case 'Heartbeat':
144
+ return await handleHeartbeat(cmd, ctx, reqId);
145
+ case 'RegisterWorker':
146
+ return await handleRegisterWorker(cmd, ctx, reqId);
147
+ case 'UnregisterWorker':
148
+ return await handleUnregisterWorker(cmd, ctx, reqId);
149
+ case 'ListWorkers':
150
+ return await handleListWorkers(cmd, ctx, reqId);
151
+ // Webhooks
152
+ case 'AddWebhook':
153
+ return await handleAddWebhook(cmd, ctx, reqId);
154
+ case 'RemoveWebhook':
155
+ return await handleRemoveWebhook(cmd, ctx, reqId);
156
+ case 'ListWebhooks':
157
+ return await handleListWebhooks(cmd, ctx, reqId);
158
+ default:
159
+ return resp.error(`Unknown command: ${cmd.cmd}`, reqId);
160
+ }
161
+ }
162
+ catch (err) {
163
+ const message = err instanceof Error ? err.message : 'Unknown error';
164
+ return resp.error(message, reqId);
165
+ }
166
+ }
167
+ //# sourceMappingURL=handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/infrastructure/server/handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Advanced Command Handlers
3
+ * Job management, queue control, rate limiting
4
+ */
5
+ import type { Command } from '../../../domain/types/command';
6
+ import type { Response } from '../../../domain/types/response';
7
+ import type { HandlerContext } from '../types';
8
+ /** Handle Update command - update job data */
9
+ export declare function handleUpdate(cmd: Extract<Command, {
10
+ cmd: 'Update';
11
+ }>, ctx: HandlerContext, reqId?: string): Promise<Response>;
12
+ /** Handle ChangePriority command */
13
+ export declare function handleChangePriority(cmd: Extract<Command, {
14
+ cmd: 'ChangePriority';
15
+ }>, ctx: HandlerContext, reqId?: string): Promise<Response>;
16
+ /** Handle Promote command - move delayed to waiting */
17
+ export declare function handlePromote(cmd: Extract<Command, {
18
+ cmd: 'Promote';
19
+ }>, ctx: HandlerContext, reqId?: string): Promise<Response>;
20
+ /** Handle MoveToDelayed command */
21
+ export declare function handleMoveToDelayed(cmd: Extract<Command, {
22
+ cmd: 'MoveToDelayed';
23
+ }>, ctx: HandlerContext, reqId?: string): Promise<Response>;
24
+ /** Handle Discard command - move to DLQ */
25
+ export declare function handleDiscard(cmd: Extract<Command, {
26
+ cmd: 'Discard';
27
+ }>, ctx: HandlerContext, reqId?: string): Promise<Response>;
28
+ /** Handle WaitJob command - wait for job completion */
29
+ export declare function handleWaitJob(cmd: Extract<Command, {
30
+ cmd: 'WaitJob';
31
+ }>, ctx: HandlerContext, reqId?: string): Promise<Response>;
32
+ /** Handle IsPaused command */
33
+ export declare function handleIsPaused(cmd: Extract<Command, {
34
+ cmd: 'IsPaused';
35
+ }>, ctx: HandlerContext, reqId?: string): Promise<Response>;
36
+ /** Handle Obliterate command */
37
+ export declare function handleObliterate(cmd: Extract<Command, {
38
+ cmd: 'Obliterate';
39
+ }>, ctx: HandlerContext, reqId?: string): Promise<Response>;
40
+ /** Handle ListQueues command */
41
+ export declare function handleListQueues(_cmd: Extract<Command, {
42
+ cmd: 'ListQueues';
43
+ }>, ctx: HandlerContext, reqId?: string): Promise<Response>;
44
+ /** Handle Clean command */
45
+ export declare function handleClean(cmd: Extract<Command, {
46
+ cmd: 'Clean';
47
+ }>, ctx: HandlerContext, reqId?: string): Promise<Response>;
48
+ /** Handle Count command */
49
+ export declare function handleCount(cmd: Extract<Command, {
50
+ cmd: 'Count';
51
+ }>, ctx: HandlerContext, reqId?: string): Promise<Response>;
52
+ /** Handle RateLimit command */
53
+ export declare function handleRateLimit(cmd: Extract<Command, {
54
+ cmd: 'RateLimit';
55
+ }>, ctx: HandlerContext, reqId?: string): Promise<Response>;
56
+ /** Handle RateLimitClear command */
57
+ export declare function handleRateLimitClear(cmd: Extract<Command, {
58
+ cmd: 'RateLimitClear';
59
+ }>, ctx: HandlerContext, reqId?: string): Promise<Response>;
60
+ /** Handle SetConcurrency command */
61
+ export declare function handleSetConcurrency(cmd: Extract<Command, {
62
+ cmd: 'SetConcurrency';
63
+ }>, ctx: HandlerContext, reqId?: string): Promise<Response>;
64
+ /** Handle ClearConcurrency command */
65
+ export declare function handleClearConcurrency(cmd: Extract<Command, {
66
+ cmd: 'ClearConcurrency';
67
+ }>, ctx: HandlerContext, reqId?: string): Promise<Response>;
68
+ //# sourceMappingURL=advanced.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advanced.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/server/handlers/advanced.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAG/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAI/C,8CAA8C;AAC9C,wBAAsB,YAAY,CAChC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,QAAQ,CAAA;CAAE,CAAC,EACxC,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAKnB;AAED,oCAAoC;AACpC,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,gBAAgB,CAAA;CAAE,CAAC,EAChD,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAGnB;AAED,uDAAuD;AACvD,wBAAsB,aAAa,CACjC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,SAAS,CAAA;CAAE,CAAC,EACzC,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAGnB;AAED,mCAAmC;AACnC,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,eAAe,CAAA;CAAE,CAAC,EAC/C,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAGnB;AAED,2CAA2C;AAC3C,wBAAsB,aAAa,CACjC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,SAAS,CAAA;CAAE,CAAC,EACzC,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAGnB;AAED,uDAAuD;AACvD,wBAAsB,aAAa,CACjC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,SAAS,CAAA;CAAE,CAAC,EACzC,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAgBnB;AAID,8BAA8B;AAC9B,wBAAsB,cAAc,CAClC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,UAAU,CAAA;CAAE,CAAC,EAC1C,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAGnB;AAED,gCAAgC;AAChC,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,YAAY,CAAA;CAAE,CAAC,EAC5C,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAGnB;AAED,gCAAgC;AAChC,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,YAAY,CAAA;CAAE,CAAC,EAC7C,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAGnB;AAED,2BAA2B;AAC3B,wBAAsB,WAAW,CAC/B,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC,EACvC,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAGnB;AAED,2BAA2B;AAC3B,wBAAsB,WAAW,CAC/B,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC,EACvC,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAGnB;AAID,+BAA+B;AAC/B,wBAAsB,eAAe,CACnC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,WAAW,CAAA;CAAE,CAAC,EAC3C,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAGnB;AAED,oCAAoC;AACpC,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,gBAAgB,CAAA;CAAE,CAAC,EAChD,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAGnB;AAED,oCAAoC;AACpC,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,gBAAgB,CAAA;CAAE,CAAC,EAChD,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAGnB;AAED,sCAAsC;AACtC,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,kBAAkB,CAAA;CAAE,CAAC,EAClD,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAGnB"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Advanced Command Handlers
3
+ * Job management, queue control, rate limiting
4
+ */
5
+ import * as resp from '../../../domain/types/response';
6
+ import { jobId } from '../../../domain/types/job';
7
+ // ============ Job Management ============
8
+ /** Handle Update command - update job data */
9
+ export async function handleUpdate(cmd, ctx, reqId) {
10
+ const success = await ctx.queueManager.updateJobData(jobId(BigInt(cmd.id)), cmd.data);
11
+ return success
12
+ ? resp.ok(undefined, reqId)
13
+ : resp.error('Job not found or cannot be updated', reqId);
14
+ }
15
+ /** Handle ChangePriority command */
16
+ export async function handleChangePriority(cmd, ctx, reqId) {
17
+ const success = await ctx.queueManager.changePriority(jobId(BigInt(cmd.id)), cmd.priority);
18
+ return success ? resp.ok(undefined, reqId) : resp.error('Job not found or not in queue', reqId);
19
+ }
20
+ /** Handle Promote command - move delayed to waiting */
21
+ export async function handlePromote(cmd, ctx, reqId) {
22
+ const success = await ctx.queueManager.promote(jobId(BigInt(cmd.id)));
23
+ return success ? resp.ok(undefined, reqId) : resp.error('Job not found or not delayed', reqId);
24
+ }
25
+ /** Handle MoveToDelayed command */
26
+ export async function handleMoveToDelayed(cmd, ctx, reqId) {
27
+ const success = await ctx.queueManager.moveToDelayed(jobId(BigInt(cmd.id)), cmd.delay);
28
+ return success ? resp.ok(undefined, reqId) : resp.error('Job not found or not active', reqId);
29
+ }
30
+ /** Handle Discard command - move to DLQ */
31
+ export async function handleDiscard(cmd, ctx, reqId) {
32
+ const success = await ctx.queueManager.discard(jobId(BigInt(cmd.id)));
33
+ return success ? resp.ok(undefined, reqId) : resp.error('Job not found', reqId);
34
+ }
35
+ /** Handle WaitJob command - wait for job completion */
36
+ export async function handleWaitJob(cmd, ctx, reqId) {
37
+ const jid = jobId(BigInt(cmd.id));
38
+ const timeout = cmd.timeout ?? 30000;
39
+ const deadline = Date.now() + timeout;
40
+ while (Date.now() < deadline) {
41
+ const job = await ctx.queueManager.getJob(jid);
42
+ if (!job)
43
+ return resp.error('Job not found', reqId);
44
+ if (job.completedAt) {
45
+ const result = ctx.queueManager.getResult(jid);
46
+ return { ok: true, completed: true, result, reqId };
47
+ }
48
+ await new Promise((r) => setTimeout(r, 100));
49
+ }
50
+ return { ok: true, completed: false, reqId };
51
+ }
52
+ // ============ Queue Control ============
53
+ /** Handle IsPaused command */
54
+ export async function handleIsPaused(cmd, ctx, reqId) {
55
+ const paused = ctx.queueManager.isPaused(cmd.queue);
56
+ return { ok: true, paused, reqId };
57
+ }
58
+ /** Handle Obliterate command */
59
+ export async function handleObliterate(cmd, ctx, reqId) {
60
+ ctx.queueManager.obliterate(cmd.queue);
61
+ return resp.ok(undefined, reqId);
62
+ }
63
+ /** Handle ListQueues command */
64
+ export async function handleListQueues(_cmd, ctx, reqId) {
65
+ const queues = ctx.queueManager.listQueues();
66
+ return { ok: true, queues, reqId };
67
+ }
68
+ /** Handle Clean command */
69
+ export async function handleClean(cmd, ctx, reqId) {
70
+ const count = ctx.queueManager.clean(cmd.queue, cmd.grace, cmd.state, cmd.limit);
71
+ return { ok: true, count, reqId };
72
+ }
73
+ /** Handle Count command */
74
+ export async function handleCount(cmd, ctx, reqId) {
75
+ const count = ctx.queueManager.count(cmd.queue);
76
+ return { ok: true, count, reqId };
77
+ }
78
+ // ============ Rate Limiting ============
79
+ /** Handle RateLimit command */
80
+ export async function handleRateLimit(cmd, ctx, reqId) {
81
+ ctx.queueManager.setRateLimit(cmd.queue, cmd.limit);
82
+ return resp.ok(undefined, reqId);
83
+ }
84
+ /** Handle RateLimitClear command */
85
+ export async function handleRateLimitClear(cmd, ctx, reqId) {
86
+ ctx.queueManager.clearRateLimit(cmd.queue);
87
+ return resp.ok(undefined, reqId);
88
+ }
89
+ /** Handle SetConcurrency command */
90
+ export async function handleSetConcurrency(cmd, ctx, reqId) {
91
+ ctx.queueManager.setConcurrency(cmd.queue, cmd.limit);
92
+ return resp.ok(undefined, reqId);
93
+ }
94
+ /** Handle ClearConcurrency command */
95
+ export async function handleClearConcurrency(cmd, ctx, reqId) {
96
+ ctx.queueManager.clearConcurrency(cmd.queue);
97
+ return resp.ok(undefined, reqId);
98
+ }
99
+ //# sourceMappingURL=advanced.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advanced.js","sourceRoot":"","sources":["../../../../src/infrastructure/server/handlers/advanced.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,IAAI,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAGlD,2CAA2C;AAE3C,8CAA8C;AAC9C,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAAwC,EACxC,GAAmB,EACnB,KAAc;IAEd,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACtF,OAAO,OAAO;QACZ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC;QAC3B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED,oCAAoC;AACpC,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAgD,EAChD,GAAmB,EACnB,KAAc;IAEd,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC3F,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;AAClG,CAAC;AAED,uDAAuD;AACvD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAyC,EACzC,GAAmB,EACnB,KAAc;IAEd,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtE,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;AACjG,CAAC;AAED,mCAAmC;AACnC,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAA+C,EAC/C,GAAmB,EACnB,KAAc;IAEd,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACvF,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;AAChG,CAAC;AAED,2CAA2C;AAC3C,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAyC,EACzC,GAAmB,EACnB,KAAc;IAEd,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtE,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;AAClF,CAAC;AAED,uDAAuD;AACvD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAyC,EACzC,GAAmB,EACnB,KAAc;IAEd,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC;IACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;IAEtC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QACpD,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC/C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAc,CAAC;QAClE,CAAC;QACD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAc,CAAC;AAC3D,CAAC;AAED,0CAA0C;AAE1C,8BAA8B;AAC9B,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAA0C,EAC1C,GAAmB,EACnB,KAAc;IAEd,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAc,CAAC;AACjD,CAAC;AAED,gCAAgC;AAChC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAA4C,EAC5C,GAAmB,EACnB,KAAc;IAEd,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACvC,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,gCAAgC;AAChC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAA6C,EAC7C,GAAmB,EACnB,KAAc;IAEd,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;IAC7C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAc,CAAC;AACjD,CAAC;AAED,2BAA2B;AAC3B,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,GAAuC,EACvC,GAAmB,EACnB,KAAc;IAEd,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACjF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAc,CAAC;AAChD,CAAC;AAED,2BAA2B;AAC3B,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,GAAuC,EACvC,GAAmB,EACnB,KAAc;IAEd,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAc,CAAC;AAChD,CAAC;AAED,0CAA0C;AAE1C,+BAA+B;AAC/B,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAA2C,EAC3C,GAAmB,EACnB,KAAc;IAEd,GAAG,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,oCAAoC;AACpC,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAgD,EAChD,GAAmB,EACnB,KAAc;IAEd,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3C,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,oCAAoC;AACpC,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAgD,EAChD,GAAmB,EACnB,KAAc;IAEd,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACtD,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,sCAAsC;AACtC,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,GAAkD,EAClD,GAAmB,EACnB,KAAc;IAEd,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7C,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Core Command Handlers
3
+ * Push, Pull, Ack, Fail operations
4
+ */
5
+ import type { Command } from '../../../domain/types/command';
6
+ import type { Response } from '../../../domain/types/response';
7
+ import type { HandlerContext } from '../types';
8
+ /** Handle PUSH command */
9
+ export declare function handlePush(cmd: Extract<Command, {
10
+ cmd: 'PUSH';
11
+ }>, ctx: HandlerContext, reqId?: string): Promise<Response>;
12
+ /** Handle PUSHB (batch push) command */
13
+ export declare function handlePushBatch(cmd: Extract<Command, {
14
+ cmd: 'PUSHB';
15
+ }>, ctx: HandlerContext, reqId?: string): Promise<Response>;
16
+ /** Handle PULL command */
17
+ export declare function handlePull(cmd: Extract<Command, {
18
+ cmd: 'PULL';
19
+ }>, ctx: HandlerContext, reqId?: string): Promise<Response>;
20
+ /** Handle PULLB (batch pull) command */
21
+ export declare function handlePullBatch(cmd: Extract<Command, {
22
+ cmd: 'PULLB';
23
+ }>, ctx: HandlerContext, reqId?: string): Promise<Response>;
24
+ /** Handle ACK command */
25
+ export declare function handleAck(cmd: Extract<Command, {
26
+ cmd: 'ACK';
27
+ }>, ctx: HandlerContext, reqId?: string): Promise<Response>;
28
+ /** Handle ACKB (batch ack) command */
29
+ export declare function handleAckBatch(cmd: Extract<Command, {
30
+ cmd: 'ACKB';
31
+ }>, ctx: HandlerContext, reqId?: string): Promise<Response>;
32
+ /** Handle FAIL command */
33
+ export declare function handleFail(cmd: Extract<Command, {
34
+ cmd: 'FAIL';
35
+ }>, ctx: HandlerContext, reqId?: string): Promise<Response>;
36
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/server/handlers/core.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAG/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C,0BAA0B;AAC1B,wBAAsB,UAAU,CAC9B,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,EACtC,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CA0BnB;AAED,wCAAwC;AACxC,wBAAsB,eAAe,CACnC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC,EACvC,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAMnB;AAED,0BAA0B;AAC1B,wBAAsB,UAAU,CAC9B,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,EACtC,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAMnB;AAED,wCAAwC;AACxC,wBAAsB,eAAe,CACnC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC,EACvC,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAWnB;AAED,yBAAyB;AACzB,wBAAsB,SAAS,CAC7B,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,KAAK,CAAA;CAAE,CAAC,EACrC,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAGnB;AAED,sCAAsC;AACtC,wBAAsB,cAAc,CAClC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,EACtC,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAKnB;AAED,0BAA0B;AAC1B,wBAAsB,UAAU,CAC9B,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,EACtC,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAGnB"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Core Command Handlers
3
+ * Push, Pull, Ack, Fail operations
4
+ */
5
+ import * as resp from '../../../domain/types/response';
6
+ import { jobId } from '../../../domain/types/job';
7
+ import { validateQueueName, validateJobData } from '../protocol';
8
+ /** Handle PUSH command */
9
+ export async function handlePush(cmd, ctx, reqId) {
10
+ const queueError = validateQueueName(cmd.queue);
11
+ if (queueError)
12
+ return resp.error(queueError, reqId);
13
+ const dataError = validateJobData(cmd.data);
14
+ if (dataError)
15
+ return resp.error(dataError, reqId);
16
+ const job = await ctx.queueManager.push(cmd.queue, {
17
+ data: cmd.data,
18
+ priority: cmd.priority,
19
+ delay: cmd.delay,
20
+ maxAttempts: cmd.maxAttempts,
21
+ backoff: cmd.backoff,
22
+ ttl: cmd.ttl,
23
+ timeout: cmd.timeout,
24
+ uniqueKey: cmd.uniqueKey,
25
+ customId: cmd.jobId,
26
+ dependsOn: cmd.dependsOn?.map((id) => jobId(BigInt(id))),
27
+ tags: cmd.tags,
28
+ groupId: cmd.groupId,
29
+ lifo: cmd.lifo,
30
+ removeOnComplete: cmd.removeOnComplete,
31
+ removeOnFail: cmd.removeOnFail,
32
+ });
33
+ return resp.ok(job.id, reqId);
34
+ }
35
+ /** Handle PUSHB (batch push) command */
36
+ export async function handlePushBatch(cmd, ctx, reqId) {
37
+ const queueError = validateQueueName(cmd.queue);
38
+ if (queueError)
39
+ return resp.error(queueError, reqId);
40
+ const ids = await ctx.queueManager.pushBatch(cmd.queue, cmd.jobs);
41
+ return resp.batch(ids, reqId);
42
+ }
43
+ /** Handle PULL command */
44
+ export async function handlePull(cmd, ctx, reqId) {
45
+ const queueError = validateQueueName(cmd.queue);
46
+ if (queueError)
47
+ return resp.error(queueError, reqId);
48
+ const job = await ctx.queueManager.pull(cmd.queue, cmd.timeout);
49
+ return resp.nullableJob(job, reqId);
50
+ }
51
+ /** Handle PULLB (batch pull) command */
52
+ export async function handlePullBatch(cmd, ctx, reqId) {
53
+ const queueError = validateQueueName(cmd.queue);
54
+ if (queueError)
55
+ return resp.error(queueError, reqId);
56
+ const jobs = [];
57
+ for (let i = 0; i < cmd.count; i++) {
58
+ const job = await ctx.queueManager.pull(cmd.queue, 0);
59
+ if (!job)
60
+ break;
61
+ jobs.push(job);
62
+ }
63
+ return resp.jobs(jobs, reqId);
64
+ }
65
+ /** Handle ACK command */
66
+ export async function handleAck(cmd, ctx, reqId) {
67
+ await ctx.queueManager.ack(jobId(BigInt(cmd.id)), cmd.result);
68
+ return resp.ok(undefined, reqId);
69
+ }
70
+ /** Handle ACKB (batch ack) command */
71
+ export async function handleAckBatch(cmd, ctx, reqId) {
72
+ for (const id of cmd.ids) {
73
+ await ctx.queueManager.ack(jobId(BigInt(id)));
74
+ }
75
+ return resp.ok(undefined, reqId);
76
+ }
77
+ /** Handle FAIL command */
78
+ export async function handleFail(cmd, ctx, reqId) {
79
+ await ctx.queueManager.fail(jobId(BigInt(cmd.id)), cmd.error);
80
+ return resp.ok(undefined, reqId);
81
+ }
82
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../src/infrastructure/server/handlers/core.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,IAAI,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEjE,0BAA0B;AAC1B,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,GAAsC,EACtC,GAAmB,EACnB,KAAc;IAEd,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,UAAU;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAErD,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,SAAS;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAEnD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;QACjD,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,QAAQ,EAAE,GAAG,CAAC,KAAK;QACnB,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACxD,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;QACtC,YAAY,EAAE,GAAG,CAAC,YAAY;KAC/B,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,wCAAwC;AACxC,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAuC,EACvC,GAAmB,EACnB,KAAc;IAEd,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,UAAU;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAErD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAClE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,0BAA0B;AAC1B,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,GAAsC,EACtC,GAAmB,EACnB,KAAc;IAEd,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,UAAU;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAErD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAChE,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACtC,CAAC;AAED,wCAAwC;AACxC,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAuC,EACvC,GAAmB,EACnB,KAAc;IAEd,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,UAAU;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAErD,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,GAAG;YAAE,MAAM;QAChB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,yBAAyB;AACzB,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,GAAqC,EACrC,GAAmB,EACnB,KAAc;IAEd,MAAM,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9D,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,sCAAsC;AACtC,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAsC,EACtC,GAAmB,EACnB,KAAc;IAEd,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,0BAA0B;AAC1B,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,GAAsC,EACtC,GAAmB,EACnB,KAAc;IAEd,MAAM,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAC9D,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Cron Command Handlers
3
+ * Cron, CronDelete, CronList
4
+ */
5
+ import type { Command } from '../../../domain/types/command';
6
+ import type { Response } from '../../../domain/types/response';
7
+ import type { HandlerContext } from '../types';
8
+ /** Handle Cron command - add cron job */
9
+ export declare function handleCron(cmd: Extract<Command, {
10
+ cmd: 'Cron';
11
+ }>, ctx: HandlerContext, reqId?: string): Promise<Response>;
12
+ /** Handle CronDelete command - delete cron job */
13
+ export declare function handleCronDelete(cmd: Extract<Command, {
14
+ cmd: 'CronDelete';
15
+ }>, ctx: HandlerContext, reqId?: string): Promise<Response>;
16
+ /** Handle CronList command - list cron jobs */
17
+ export declare function handleCronList(_cmd: Extract<Command, {
18
+ cmd: 'CronList';
19
+ }>, ctx: HandlerContext, reqId?: string): Promise<Response>;
20
+ //# sourceMappingURL=cron.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cron.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/server/handlers/cron.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,yCAAyC;AACzC,wBAAsB,UAAU,CAC9B,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,EACtC,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAyBnB;AAED,kDAAkD;AAClD,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,YAAY,CAAA;CAAE,CAAC,EAC5C,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAGnB;AAED,+CAA+C;AAC/C,wBAAsB,cAAc,CAClC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,UAAU,CAAA;CAAE,CAAC,EAC3C,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAenB"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Cron Command Handlers
3
+ * Cron, CronDelete, CronList
4
+ */
5
+ import * as resp from '../../../domain/types/response';
6
+ /** Handle Cron command - add cron job */
7
+ export async function handleCron(cmd, ctx, reqId) {
8
+ try {
9
+ const cron = ctx.queueManager.addCron({
10
+ name: cmd.name,
11
+ queue: cmd.queue,
12
+ data: cmd.data,
13
+ schedule: cmd.schedule,
14
+ repeatEvery: cmd.repeatEvery,
15
+ priority: cmd.priority,
16
+ maxLimit: cmd.maxLimit,
17
+ });
18
+ return {
19
+ ok: true,
20
+ cron: {
21
+ name: cron.name,
22
+ queue: cron.queue,
23
+ schedule: cron.schedule,
24
+ repeatEvery: cron.repeatEvery,
25
+ nextRun: cron.nextRun,
26
+ },
27
+ reqId,
28
+ };
29
+ }
30
+ catch (err) {
31
+ return resp.error(err instanceof Error ? err.message : 'Failed to add cron', reqId);
32
+ }
33
+ }
34
+ /** Handle CronDelete command - delete cron job */
35
+ export async function handleCronDelete(cmd, ctx, reqId) {
36
+ const removed = ctx.queueManager.removeCron(cmd.name);
37
+ return removed ? resp.ok(undefined, reqId) : resp.error('Cron job not found', reqId);
38
+ }
39
+ /** Handle CronList command - list cron jobs */
40
+ export async function handleCronList(_cmd, ctx, reqId) {
41
+ const crons = ctx.queueManager.listCrons();
42
+ return {
43
+ ok: true,
44
+ crons: crons.map((c) => ({
45
+ name: c.name,
46
+ queue: c.queue,
47
+ schedule: c.schedule,
48
+ repeatEvery: c.repeatEvery,
49
+ nextRun: c.nextRun,
50
+ executions: c.executions,
51
+ maxLimit: c.maxLimit,
52
+ })),
53
+ reqId,
54
+ };
55
+ }
56
+ //# sourceMappingURL=cron.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cron.js","sourceRoot":"","sources":["../../../../src/infrastructure/server/handlers/cron.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,IAAI,MAAM,gCAAgC,CAAC;AAGvD,yCAAyC;AACzC,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,GAAsC,EACtC,GAAmB,EACnB,KAAc;IAEd,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC;YACpC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACvB,CAAC,CAAC;QACH,OAAO;YACL,EAAE,EAAE,IAAI;YACR,IAAI,EAAE;gBACJ,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB;YACD,KAAK;SACM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IACtF,CAAC;AACH,CAAC;AAED,kDAAkD;AAClD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAA4C,EAC5C,GAAmB,EACnB,KAAc;IAEd,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtD,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;AACvF,CAAC;AAED,+CAA+C;AAC/C,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAA2C,EAC3C,GAAmB,EACnB,KAAc;IAEd,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;IAC3C,OAAO;QACL,EAAE,EAAE,IAAI;QACR,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACrB,CAAC,CAAC;QACH,KAAK;KACM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * DLQ Command Handlers
3
+ * Dlq, RetryDlq, PurgeDlq
4
+ */
5
+ import type { Command } from '../../../domain/types/command';
6
+ import type { Response } from '../../../domain/types/response';
7
+ import type { HandlerContext } from '../types';
8
+ /** Handle Dlq command - get DLQ jobs */
9
+ export declare function handleDlq(cmd: Extract<Command, {
10
+ cmd: 'Dlq';
11
+ }>, ctx: HandlerContext, reqId?: string): Promise<Response>;
12
+ /** Handle RetryDlq command - retry DLQ jobs */
13
+ export declare function handleRetryDlq(cmd: Extract<Command, {
14
+ cmd: 'RetryDlq';
15
+ }>, ctx: HandlerContext, reqId?: string): Promise<Response>;
16
+ /** Handle PurgeDlq command - clear DLQ */
17
+ export declare function handlePurgeDlq(cmd: Extract<Command, {
18
+ cmd: 'PurgeDlq';
19
+ }>, ctx: HandlerContext, reqId?: string): Promise<Response>;
20
+ //# sourceMappingURL=dlq.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dlq.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/server/handlers/dlq.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAG/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,wCAAwC;AACxC,wBAAsB,SAAS,CAC7B,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,KAAK,CAAA;CAAE,CAAC,EACrC,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAGnB;AAED,+CAA+C;AAC/C,wBAAsB,cAAc,CAClC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,UAAU,CAAA;CAAE,CAAC,EAC1C,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAQnB;AAED,0CAA0C;AAC1C,wBAAsB,cAAc,CAClC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,UAAU,CAAA;CAAE,CAAC,EAC1C,GAAG,EAAE,cAAc,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC,CAOnB"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * DLQ Command Handlers
3
+ * Dlq, RetryDlq, PurgeDlq
4
+ */
5
+ import * as resp from '../../../domain/types/response';
6
+ import { jobId } from '../../../domain/types/job';
7
+ /** Handle Dlq command - get DLQ jobs */
8
+ export async function handleDlq(cmd, ctx, reqId) {
9
+ const jobs = ctx.queueManager.getDlq(cmd.queue, cmd.count);
10
+ return resp.jobs(jobs, reqId);
11
+ }
12
+ /** Handle RetryDlq command - retry DLQ jobs */
13
+ export async function handleRetryDlq(cmd, ctx, reqId) {
14
+ const jid = cmd.jobId ? jobId(BigInt(cmd.jobId)) : undefined;
15
+ const count = ctx.queueManager.retryDlq(cmd.queue, jid);
16
+ return {
17
+ ok: true,
18
+ count,
19
+ reqId,
20
+ };
21
+ }
22
+ /** Handle PurgeDlq command - clear DLQ */
23
+ export async function handlePurgeDlq(cmd, ctx, reqId) {
24
+ const count = ctx.queueManager.purgeDlq(cmd.queue);
25
+ return {
26
+ ok: true,
27
+ count,
28
+ reqId,
29
+ };
30
+ }
31
+ //# sourceMappingURL=dlq.js.map