bunqueue 2.6.13 → 2.6.15

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 (61) hide show
  1. package/dist/cli/commands/core.js +1 -0
  2. package/dist/cli/commands/core.js.map +1 -1
  3. package/dist/cli/commands/types.d.ts +1 -1
  4. package/dist/cli/commands/types.d.ts.map +1 -1
  5. package/dist/cli/commands/types.js +2 -2
  6. package/dist/cli/commands/types.js.map +1 -1
  7. package/dist/cli/index.d.ts.map +1 -1
  8. package/dist/cli/index.js +14 -10
  9. package/dist/cli/index.js.map +1 -1
  10. package/dist/cli/output.d.ts.map +1 -1
  11. package/dist/cli/output.js +81 -60
  12. package/dist/cli/output.js.map +1 -1
  13. package/dist/domain/types/command.d.ts +19 -1
  14. package/dist/domain/types/command.d.ts.map +1 -1
  15. package/dist/infrastructure/server/handler.d.ts.map +1 -1
  16. package/dist/infrastructure/server/handler.js +4 -1
  17. package/dist/infrastructure/server/handler.js.map +1 -1
  18. package/dist/infrastructure/server/handlerRoutes.d.ts +2 -0
  19. package/dist/infrastructure/server/handlerRoutes.d.ts.map +1 -1
  20. package/dist/infrastructure/server/handlerRoutes.js +15 -0
  21. package/dist/infrastructure/server/handlerRoutes.js.map +1 -1
  22. package/dist/infrastructure/server/handlers/core.js +2 -2
  23. package/dist/infrastructure/server/handlers/core.js.map +1 -1
  24. package/dist/infrastructure/server/handlers/dashboard.d.ts +21 -0
  25. package/dist/infrastructure/server/handlers/dashboard.d.ts.map +1 -0
  26. package/dist/infrastructure/server/handlers/dashboard.js +135 -0
  27. package/dist/infrastructure/server/handlers/dashboard.js.map +1 -0
  28. package/dist/infrastructure/server/handlers/index.d.ts +1 -0
  29. package/dist/infrastructure/server/handlers/index.d.ts.map +1 -1
  30. package/dist/infrastructure/server/handlers/index.js +1 -0
  31. package/dist/infrastructure/server/handlers/index.js.map +1 -1
  32. package/dist/infrastructure/server/handlers/query.d.ts +1 -1
  33. package/dist/infrastructure/server/handlers/query.d.ts.map +1 -1
  34. package/dist/infrastructure/server/handlers/query.js +15 -5
  35. package/dist/infrastructure/server/handlers/query.js.map +1 -1
  36. package/dist/infrastructure/server/http.d.ts.map +1 -1
  37. package/dist/infrastructure/server/http.js +32 -81
  38. package/dist/infrastructure/server/http.js.map +1 -1
  39. package/dist/infrastructure/server/httpEndpoints.d.ts +6 -0
  40. package/dist/infrastructure/server/httpEndpoints.d.ts.map +1 -1
  41. package/dist/infrastructure/server/httpEndpoints.js +121 -0
  42. package/dist/infrastructure/server/httpEndpoints.js.map +1 -1
  43. package/dist/infrastructure/server/httpRouteJobs.d.ts +10 -0
  44. package/dist/infrastructure/server/httpRouteJobs.d.ts.map +1 -0
  45. package/dist/infrastructure/server/httpRouteJobs.js +226 -0
  46. package/dist/infrastructure/server/httpRouteJobs.js.map +1 -0
  47. package/dist/infrastructure/server/httpRouteQueueConfig.d.ts +8 -0
  48. package/dist/infrastructure/server/httpRouteQueueConfig.d.ts.map +1 -0
  49. package/dist/infrastructure/server/httpRouteQueueConfig.js +107 -0
  50. package/dist/infrastructure/server/httpRouteQueueConfig.js.map +1 -0
  51. package/dist/infrastructure/server/httpRouteQueues.d.ts +8 -0
  52. package/dist/infrastructure/server/httpRouteQueues.d.ts.map +1 -0
  53. package/dist/infrastructure/server/httpRouteQueues.js +205 -0
  54. package/dist/infrastructure/server/httpRouteQueues.js.map +1 -0
  55. package/dist/infrastructure/server/httpRouteResources.d.ts +8 -0
  56. package/dist/infrastructure/server/httpRouteResources.d.ts.map +1 -0
  57. package/dist/infrastructure/server/httpRouteResources.js +148 -0
  58. package/dist/infrastructure/server/httpRouteResources.js.map +1 -0
  59. package/dist/main.js +6 -3
  60. package/dist/main.js.map +1 -1
  61. package/package.json +1 -1
@@ -2,6 +2,8 @@
2
2
  * HTTP Endpoints - Health, diagnostics, and stats endpoints
3
3
  */
4
4
  import { VERSION } from '../../shared/version';
5
+ import { throughputTracker } from '../../application/throughputTracker';
6
+ import { latencyTracker } from '../../application/latencyTracker';
5
7
  /** JSON response helper */
6
8
  export function jsonResponse(data, status = 200, corsOrigins) {
7
9
  const headers = {
@@ -144,6 +146,125 @@ export function statsEndpoint(queueManager, corsOrigins) {
144
146
  collections: memStats,
145
147
  }, 200, corsOrigins);
146
148
  }
149
+ /** Dashboard overview endpoint - aggregates all dashboard data in a single call */
150
+ export function dashboardOverviewEndpoint(queueManager, corsOrigins) {
151
+ const stats = queueManager.getStats();
152
+ const rates = throughputTracker.getRates();
153
+ const latencies = latencyTracker.getPercentiles();
154
+ const avgLatencies = latencyTracker.getAverages();
155
+ const memStats = queueManager.getMemoryStats();
156
+ const workers = queueManager.workerManager.list();
157
+ const workerStats = queueManager.workerManager.getStats();
158
+ const crons = queueManager.listCrons();
159
+ const storage = queueManager.getStorageStatus();
160
+ const mem = process.memoryUsage();
161
+ return jsonResponse({
162
+ ok: true,
163
+ stats: {
164
+ waiting: stats.waiting,
165
+ active: stats.active,
166
+ delayed: stats.delayed,
167
+ completed: stats.completed,
168
+ dlq: stats.dlq,
169
+ totalPushed: Number(stats.totalPushed),
170
+ totalPulled: Number(stats.totalPulled),
171
+ totalCompleted: Number(stats.totalCompleted),
172
+ totalFailed: Number(stats.totalFailed),
173
+ uptime: stats.uptime,
174
+ },
175
+ throughput: rates,
176
+ latency: {
177
+ averages: avgLatencies,
178
+ percentiles: latencies,
179
+ },
180
+ memory: {
181
+ heapUsed: Math.round(mem.heapUsed / 1024 / 1024),
182
+ heapTotal: Math.round(mem.heapTotal / 1024 / 1024),
183
+ rss: Math.round(mem.rss / 1024 / 1024),
184
+ },
185
+ collections: memStats,
186
+ workers: {
187
+ total: workerStats.total,
188
+ active: workerStats.active,
189
+ list: workers.map((w) => ({
190
+ id: w.id,
191
+ name: w.name,
192
+ queues: w.queues,
193
+ lastSeen: w.lastSeen,
194
+ activeJobs: w.activeJobs,
195
+ processedJobs: w.processedJobs,
196
+ failedJobs: w.failedJobs,
197
+ })),
198
+ },
199
+ crons: crons.map((c) => ({
200
+ name: c.name,
201
+ queue: c.queue,
202
+ schedule: c.schedule ?? null,
203
+ repeatEvery: c.repeatEvery ?? null,
204
+ nextRun: c.nextRun,
205
+ executions: c.executions,
206
+ })),
207
+ storage,
208
+ timestamp: Date.now(),
209
+ }, 200, corsOrigins);
210
+ }
211
+ /** Dashboard queues endpoint - all queues with per-queue stats */
212
+ export function dashboardQueuesEndpoint(queueManager, corsOrigins) {
213
+ const queueNames = queueManager.listQueues();
214
+ const perQueueStats = queueManager.getPerQueueStats();
215
+ const queues = queueNames.map((name) => {
216
+ const stats = perQueueStats.get(name);
217
+ return {
218
+ name,
219
+ waiting: stats?.waiting ?? 0,
220
+ delayed: stats?.delayed ?? 0,
221
+ active: stats?.active ?? 0,
222
+ dlq: stats?.dlq ?? 0,
223
+ paused: queueManager.isPaused(name),
224
+ };
225
+ });
226
+ return jsonResponse({ ok: true, queues, timestamp: Date.now() }, 200, corsOrigins);
227
+ }
228
+ /** Dashboard single queue detail endpoint */
229
+ export function dashboardQueueDetailEndpoint(queueManager, queue, includeJobs, corsOrigins) {
230
+ const counts = queueManager.getQueueJobCounts(queue);
231
+ const paused = queueManager.isPaused(queue);
232
+ const dlqJobs = queueManager.getDlq(queue, 10);
233
+ const priorityCounts = queueManager.getCountsPerPriority(queue);
234
+ const result = {
235
+ ok: true,
236
+ name: queue,
237
+ counts,
238
+ paused,
239
+ priorityCounts,
240
+ dlqPreview: dlqJobs.map((j) => ({
241
+ id: j.id,
242
+ data: j.data,
243
+ attempts: j.attempts,
244
+ createdAt: j.createdAt,
245
+ })),
246
+ timestamp: Date.now(),
247
+ };
248
+ if (includeJobs) {
249
+ const waiting = queueManager.getJobs(queue, { state: 'waiting', end: 10 });
250
+ const active = queueManager.getJobs(queue, { state: 'active', end: 10 });
251
+ const delayed = queueManager.getJobs(queue, { state: 'delayed', end: 10 });
252
+ const toSummary = (j) => ({
253
+ id: j.id,
254
+ priority: j.priority,
255
+ createdAt: j.createdAt,
256
+ runAt: j.runAt,
257
+ attempts: j.attempts,
258
+ progress: j.progress,
259
+ });
260
+ result.jobs = {
261
+ waiting: waiting.map(toSummary),
262
+ active: active.map(toSummary),
263
+ delayed: delayed.map(toSummary),
264
+ };
265
+ }
266
+ return jsonResponse(result, 200, corsOrigins);
267
+ }
147
268
  /** Metrics endpoint */
148
269
  export function metricsEndpoint(queueManager, corsOrigins) {
149
270
  const stats = queueManager.getStats();
@@ -1 +1 @@
1
- {"version":3,"file":"httpEndpoints.js","sourceRoot":"","sources":["../../../src/infrastructure/server/httpEndpoints.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"httpEndpoints.js","sourceRoot":"","sources":["../../../src/infrastructure/server/httpEndpoints.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * HTTP Routes - Job operations
3
+ * All /jobs/:id/* endpoints, split into sub-routers for complexity
4
+ */
5
+ import type { HandlerContext } from './types';
6
+ type Cors = Set<string>;
7
+ /** Route /jobs/* requests. Returns Response or null if no match. */
8
+ export declare function routeJobRoutes(req: Request, path: string, method: string, ctx: HandlerContext, cors: Cors): Promise<Response | null>;
9
+ export {};
10
+ //# sourceMappingURL=httpRouteJobs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpRouteJobs.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/server/httpRouteJobs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAI9C,KAAK,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;AAyMxB,oEAAoE;AACpE,wBAAsB,cAAc,CAClC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAsF1B"}
@@ -0,0 +1,226 @@
1
+ /**
2
+ * HTTP Routes - Job operations
3
+ * All /jobs/:id/* endpoints, split into sub-routers for complexity
4
+ */
5
+ import { handleCommand } from './handler';
6
+ import { jsonResponse } from './httpEndpoints';
7
+ const parseBody = (req) => req.json().catch(() => ({}));
8
+ /** Job management: promote, update, state, result, progress, priority, discard */
9
+ async function routeJobManagement(req, path, method, ctx, cors) {
10
+ const promoteMatch = path.match(/^\/jobs\/([^/]+)\/promote$/);
11
+ if (promoteMatch && method === 'POST') {
12
+ const r = await handleCommand({ cmd: 'Promote', id: promoteMatch[1] }, ctx);
13
+ return jsonResponse(r, r.ok ? 200 : 400, cors);
14
+ }
15
+ const dataMatch = path.match(/^\/jobs\/([^/]+)\/data$/);
16
+ if (dataMatch && method === 'PUT') {
17
+ let body;
18
+ try {
19
+ body = (await req.json());
20
+ }
21
+ catch {
22
+ return jsonResponse({ ok: false, error: 'Invalid JSON body' }, 400, cors);
23
+ }
24
+ const r = await handleCommand({ cmd: 'Update', id: dataMatch[1], data: body['data'] }, ctx);
25
+ return jsonResponse(r, r.ok ? 200 : 400, cors);
26
+ }
27
+ const stateMatch = path.match(/^\/jobs\/([^/]+)\/state$/);
28
+ if (stateMatch && method === 'GET') {
29
+ const r = await handleCommand({ cmd: 'GetState', id: stateMatch[1] }, ctx);
30
+ return jsonResponse(r, r.ok ? 200 : 404, cors);
31
+ }
32
+ const resultMatch = path.match(/^\/jobs\/([^/]+)\/result$/);
33
+ if (resultMatch && method === 'GET') {
34
+ const r = await handleCommand({ cmd: 'GetResult', id: resultMatch[1] }, ctx);
35
+ return jsonResponse(r, r.ok ? 200 : 404, cors);
36
+ }
37
+ const progressMatch = path.match(/^\/jobs\/([^/]+)\/progress$/);
38
+ if (progressMatch && method === 'GET') {
39
+ const r = await handleCommand({ cmd: 'GetProgress', id: progressMatch[1] }, ctx);
40
+ return jsonResponse(r, r.ok ? 200 : 404, cors);
41
+ }
42
+ if (progressMatch && method === 'POST') {
43
+ const body = await parseBody(req);
44
+ const r = await handleCommand({
45
+ cmd: 'Progress',
46
+ id: progressMatch[1],
47
+ progress: body['progress'],
48
+ message: body['message'],
49
+ }, ctx);
50
+ return jsonResponse(r, r.ok ? 200 : 400, cors);
51
+ }
52
+ const priorityMatch = path.match(/^\/jobs\/([^/]+)\/priority$/);
53
+ if (priorityMatch && method === 'PUT') {
54
+ const body = await parseBody(req);
55
+ const r = await handleCommand({
56
+ cmd: 'ChangePriority',
57
+ id: priorityMatch[1],
58
+ priority: body['priority'],
59
+ }, ctx);
60
+ return jsonResponse(r, r.ok ? 200 : 400, cors);
61
+ }
62
+ const discardMatch = path.match(/^\/jobs\/([^/]+)\/discard$/);
63
+ if (discardMatch && method === 'POST') {
64
+ const r = await handleCommand({ cmd: 'Discard', id: discardMatch[1] }, ctx);
65
+ return jsonResponse(r, r.ok ? 200 : 400, cors);
66
+ }
67
+ return null;
68
+ }
69
+ /** Job advanced: delay, children, logs, heartbeat, wait, lock, move-to-wait */
70
+ async function routeJobAdvanced(req, path, method, ctx, cors) {
71
+ const moveDelayedMatch = path.match(/^\/jobs\/([^/]+)\/move-to-delayed$/);
72
+ if (moveDelayedMatch && method === 'POST') {
73
+ const body = await parseBody(req);
74
+ const r = await handleCommand({
75
+ cmd: 'MoveToDelayed',
76
+ id: moveDelayedMatch[1],
77
+ delay: body['delay'],
78
+ }, ctx);
79
+ return jsonResponse(r, r.ok ? 200 : 400, cors);
80
+ }
81
+ const changeDelayMatch = path.match(/^\/jobs\/([^/]+)\/delay$/);
82
+ if (changeDelayMatch && method === 'PUT') {
83
+ const body = await parseBody(req);
84
+ const r = await handleCommand({
85
+ cmd: 'ChangeDelay',
86
+ id: changeDelayMatch[1],
87
+ delay: body['delay'],
88
+ }, ctx);
89
+ return jsonResponse(r, r.ok ? 200 : 400, cors);
90
+ }
91
+ const childrenMatch = path.match(/^\/jobs\/([^/]+)\/children$/);
92
+ if (childrenMatch && method === 'GET') {
93
+ const r = await handleCommand({ cmd: 'GetChildrenValues', id: childrenMatch[1] }, ctx);
94
+ return jsonResponse(r, r.ok ? 200 : 404, cors);
95
+ }
96
+ const logsMatch = path.match(/^\/jobs\/([^/]+)\/logs$/);
97
+ if (logsMatch && method === 'GET') {
98
+ const r = await handleCommand({ cmd: 'GetLogs', id: logsMatch[1] }, ctx);
99
+ return jsonResponse(r, 200, cors);
100
+ }
101
+ if (logsMatch && method === 'POST') {
102
+ const body = await parseBody(req);
103
+ const r = await handleCommand({
104
+ cmd: 'AddLog',
105
+ id: logsMatch[1],
106
+ message: body['message'],
107
+ level: body['level'],
108
+ }, ctx);
109
+ return jsonResponse(r, r.ok ? 200 : 400, cors);
110
+ }
111
+ if (logsMatch && method === 'DELETE') {
112
+ const r = await handleCommand({ cmd: 'ClearLogs', id: logsMatch[1] }, ctx);
113
+ return jsonResponse(r, 200, cors);
114
+ }
115
+ const heartbeatMatch = path.match(/^\/jobs\/([^/]+)\/heartbeat$/);
116
+ if (heartbeatMatch && method === 'POST') {
117
+ const body = await parseBody(req);
118
+ const r = await handleCommand({
119
+ cmd: 'JobHeartbeat',
120
+ id: heartbeatMatch[1],
121
+ token: body['token'],
122
+ duration: body['duration'],
123
+ }, ctx);
124
+ return jsonResponse(r, r.ok ? 200 : 400, cors);
125
+ }
126
+ const waitMatch = path.match(/^\/jobs\/([^/]+)\/wait$/);
127
+ if (waitMatch && method === 'POST') {
128
+ const body = await parseBody(req);
129
+ const r = await handleCommand({
130
+ cmd: 'WaitJob',
131
+ id: waitMatch[1],
132
+ timeout: body['timeout'],
133
+ }, ctx);
134
+ return jsonResponse(r, 200, cors);
135
+ }
136
+ const extendLockMatch = path.match(/^\/jobs\/([^/]+)\/extend-lock$/);
137
+ if (extendLockMatch && method === 'POST') {
138
+ const body = await parseBody(req);
139
+ const r = await handleCommand({
140
+ cmd: 'ExtendLock',
141
+ id: extendLockMatch[1],
142
+ duration: body['duration'],
143
+ token: body['token'],
144
+ }, ctx);
145
+ return jsonResponse(r, r.ok ? 200 : 400, cors);
146
+ }
147
+ const moveToWaitMatch = path.match(/^\/jobs\/([^/]+)\/move-to-wait$/);
148
+ if (moveToWaitMatch && method === 'POST') {
149
+ const r = await handleCommand({ cmd: 'MoveToWait', id: moveToWaitMatch[1] }, ctx);
150
+ return jsonResponse(r, r.ok ? 200 : 400, cors);
151
+ }
152
+ return null;
153
+ }
154
+ /** Route /jobs/* requests. Returns Response or null if no match. */
155
+ export async function routeJobRoutes(req, path, method, ctx, cors) {
156
+ // GET/DELETE /jobs/:id
157
+ const jobMatch = path.match(/^\/jobs\/([^/]+)$/);
158
+ if (jobMatch) {
159
+ const id = jobMatch[1];
160
+ if (method === 'GET') {
161
+ const r = await handleCommand({ cmd: 'GetJob', id }, ctx);
162
+ return jsonResponse(r, r.ok ? 200 : 404, cors);
163
+ }
164
+ if (method === 'DELETE') {
165
+ const r = await handleCommand({ cmd: 'Cancel', id }, ctx);
166
+ return jsonResponse(r, 200, cors);
167
+ }
168
+ }
169
+ // GET /jobs/custom/:customId
170
+ const customIdMatch = path.match(/^\/jobs\/custom\/([^/]+)$/);
171
+ if (customIdMatch && method === 'GET') {
172
+ const customId = decodeURIComponent(customIdMatch[1]);
173
+ const r = await handleCommand({ cmd: 'GetJobByCustomId', customId }, ctx);
174
+ return jsonResponse(r, r.ok ? 200 : 404, cors);
175
+ }
176
+ // POST /jobs/:id/ack
177
+ const ackMatch = path.match(/^\/jobs\/([^/]+)\/ack$/);
178
+ if (ackMatch && method === 'POST') {
179
+ const body = await parseBody(req);
180
+ const r = await handleCommand({ cmd: 'ACK', id: ackMatch[1], result: body['result'] }, ctx);
181
+ return jsonResponse(r, r.ok ? 200 : 400, cors);
182
+ }
183
+ // POST /jobs/:id/fail
184
+ const failMatch = path.match(/^\/jobs\/([^/]+)\/fail$/);
185
+ if (failMatch && method === 'POST') {
186
+ const body = await parseBody(req);
187
+ const r = await handleCommand({ cmd: 'FAIL', id: failMatch[1], error: body['error'] }, ctx);
188
+ return jsonResponse(r, r.ok ? 200 : 400, cors);
189
+ }
190
+ // Batch endpoints
191
+ if (path === '/jobs/ack-batch' && method === 'POST') {
192
+ const body = await parseBody(req);
193
+ const r = await handleCommand({
194
+ cmd: 'ACKB',
195
+ ids: body['ids'],
196
+ results: body['results'],
197
+ tokens: body['tokens'],
198
+ }, ctx);
199
+ return jsonResponse(r, r.ok ? 200 : 400, cors);
200
+ }
201
+ if (path === '/jobs/extend-locks' && method === 'POST') {
202
+ const body = await parseBody(req);
203
+ const r = await handleCommand({
204
+ cmd: 'ExtendLocks',
205
+ ids: body['ids'],
206
+ tokens: body['tokens'],
207
+ durations: body['durations'],
208
+ }, ctx);
209
+ return jsonResponse(r, r.ok ? 200 : 400, cors);
210
+ }
211
+ if (path === '/jobs/heartbeat-batch' && method === 'POST') {
212
+ const body = await parseBody(req);
213
+ const r = await handleCommand({
214
+ cmd: 'JobHeartbeatB',
215
+ ids: body['ids'],
216
+ tokens: body['tokens'],
217
+ }, ctx);
218
+ return jsonResponse(r, r.ok ? 200 : 400, cors);
219
+ }
220
+ // Delegate to sub-routers
221
+ const mgmt = await routeJobManagement(req, path, method, ctx, cors);
222
+ if (mgmt)
223
+ return mgmt;
224
+ return routeJobAdvanced(req, path, method, ctx, cors);
225
+ }
226
+ //# sourceMappingURL=httpRouteJobs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpRouteJobs.js","sourceRoot":"","sources":["../../../src/infrastructure/server/httpRouteJobs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * HTTP Routes - Queue config, DLQ, rate-limiting, concurrency
3
+ * All /queues/:queue/{dlq,rate-limit,concurrency,stall-config,dlq-config} endpoints
4
+ */
5
+ import type { HandlerContext } from './types';
6
+ /** Route queue config/admin requests. Returns Response or null if no match. */
7
+ export declare function routeQueueConfigRoutes(req: Request, path: string, method: string, ctx: HandlerContext, cors: Set<string>): Promise<Response | null>;
8
+ //# sourceMappingURL=httpRouteQueueConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpRouteQueueConfig.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/server/httpRouteQueueConfig.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAM9C,+EAA+E;AAC/E,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAChB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAuH1B"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * HTTP Routes - Queue config, DLQ, rate-limiting, concurrency
3
+ * All /queues/:queue/{dlq,rate-limit,concurrency,stall-config,dlq-config} endpoints
4
+ */
5
+ import { handleCommand } from './handler';
6
+ import { jsonResponse } from './httpEndpoints';
7
+ const parseBody = (req) => req.json().catch(() => ({}));
8
+ /** Route queue config/admin requests. Returns Response or null if no match. */
9
+ export async function routeQueueConfigRoutes(req, path, method, ctx, cors) {
10
+ // DLQ: GET /queues/:queue/dlq
11
+ const dlqMatch = path.match(/^\/queues\/([^/]+)\/dlq$/);
12
+ if (dlqMatch && method === 'GET') {
13
+ const queue = decodeURIComponent(dlqMatch[1]);
14
+ const count = parseInt(new URL(req.url).searchParams.get('count') ?? '100');
15
+ const r = await handleCommand({ cmd: 'Dlq', queue, count }, ctx);
16
+ return jsonResponse(r, 200, cors);
17
+ }
18
+ // POST /queues/:queue/dlq/retry
19
+ const dlqRetryMatch = path.match(/^\/queues\/([^/]+)\/dlq\/retry$/);
20
+ if (dlqRetryMatch && method === 'POST') {
21
+ const queue = decodeURIComponent(dlqRetryMatch[1]);
22
+ const body = await parseBody(req);
23
+ const r = await handleCommand({
24
+ cmd: 'RetryDlq',
25
+ queue,
26
+ jobId: body['jobId'],
27
+ }, ctx);
28
+ return jsonResponse(r, 200, cors);
29
+ }
30
+ // POST /queues/:queue/dlq/purge
31
+ const dlqPurgeMatch = path.match(/^\/queues\/([^/]+)\/dlq\/purge$/);
32
+ if (dlqPurgeMatch && method === 'POST') {
33
+ const queue = decodeURIComponent(dlqPurgeMatch[1]);
34
+ const r = await handleCommand({ cmd: 'PurgeDlq', queue }, ctx);
35
+ return jsonResponse(r, 200, cors);
36
+ }
37
+ // Rate limiting: PUT/DELETE /queues/:queue/rate-limit
38
+ const rateLimitMatch = path.match(/^\/queues\/([^/]+)\/rate-limit$/);
39
+ if (rateLimitMatch && method === 'PUT') {
40
+ const queue = decodeURIComponent(rateLimitMatch[1]);
41
+ const body = await parseBody(req);
42
+ const r = await handleCommand({
43
+ cmd: 'RateLimit',
44
+ queue,
45
+ limit: body['limit'],
46
+ }, ctx);
47
+ return jsonResponse(r, 200, cors);
48
+ }
49
+ if (rateLimitMatch && method === 'DELETE') {
50
+ const queue = decodeURIComponent(rateLimitMatch[1]);
51
+ const r = await handleCommand({ cmd: 'RateLimitClear', queue }, ctx);
52
+ return jsonResponse(r, 200, cors);
53
+ }
54
+ // Concurrency: PUT/DELETE /queues/:queue/concurrency
55
+ const concurrencyMatch = path.match(/^\/queues\/([^/]+)\/concurrency$/);
56
+ if (concurrencyMatch && method === 'PUT') {
57
+ const queue = decodeURIComponent(concurrencyMatch[1]);
58
+ const body = await parseBody(req);
59
+ const r = await handleCommand({
60
+ cmd: 'SetConcurrency',
61
+ queue,
62
+ limit: body['limit'],
63
+ }, ctx);
64
+ return jsonResponse(r, 200, cors);
65
+ }
66
+ if (concurrencyMatch && method === 'DELETE') {
67
+ const queue = decodeURIComponent(concurrencyMatch[1]);
68
+ const r = await handleCommand({ cmd: 'ClearConcurrency', queue }, ctx);
69
+ return jsonResponse(r, 200, cors);
70
+ }
71
+ // Config: GET/PUT /queues/:queue/stall-config
72
+ const stallConfigMatch = path.match(/^\/queues\/([^/]+)\/stall-config$/);
73
+ if (stallConfigMatch && method === 'GET') {
74
+ const queue = decodeURIComponent(stallConfigMatch[1]);
75
+ const r = await handleCommand({ cmd: 'GetStallConfig', queue }, ctx);
76
+ return jsonResponse(r, 200, cors);
77
+ }
78
+ if (stallConfigMatch && method === 'PUT') {
79
+ const queue = decodeURIComponent(stallConfigMatch[1]);
80
+ const body = await parseBody(req);
81
+ const r = await handleCommand({
82
+ cmd: 'SetStallConfig',
83
+ queue,
84
+ config: body['config'] ?? body,
85
+ }, ctx);
86
+ return jsonResponse(r, 200, cors);
87
+ }
88
+ // Config: GET/PUT /queues/:queue/dlq-config
89
+ const dlqConfigMatch = path.match(/^\/queues\/([^/]+)\/dlq-config$/);
90
+ if (dlqConfigMatch && method === 'GET') {
91
+ const queue = decodeURIComponent(dlqConfigMatch[1]);
92
+ const r = await handleCommand({ cmd: 'GetDlqConfig', queue }, ctx);
93
+ return jsonResponse(r, 200, cors);
94
+ }
95
+ if (dlqConfigMatch && method === 'PUT') {
96
+ const queue = decodeURIComponent(dlqConfigMatch[1]);
97
+ const body = await parseBody(req);
98
+ const r = await handleCommand({
99
+ cmd: 'SetDlqConfig',
100
+ queue,
101
+ config: body['config'] ?? body,
102
+ }, ctx);
103
+ return jsonResponse(r, 200, cors);
104
+ }
105
+ return null;
106
+ }
107
+ //# sourceMappingURL=httpRouteQueueConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpRouteQueueConfig.js","sourceRoot":"","sources":["../../../src/infrastructure/server/httpRouteQueueConfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * HTTP Routes - Queue operations
3
+ * All /queues/:queue/* endpoints + /queues list
4
+ */
5
+ import type { HandlerContext } from './types';
6
+ /** Route /queues/* requests. Returns Response or null if no match. */
7
+ export declare function routeQueueRoutes(req: Request, path: string, method: string, ctx: HandlerContext, cors: Set<string>): Promise<Response | null>;
8
+ //# sourceMappingURL=httpRouteQueues.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpRouteQueues.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/server/httpRouteQueues.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAM9C,sEAAsE;AACtE,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAChB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAqO1B"}