bunqueue 2.6.14 → 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.
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/server/http.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAOnE,OAAO,EAAa,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAoCrD,gCAAgC;AAChC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB;;;;;;YA8JzE,IAAI;EAKf;AAwHD,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/server/http.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAOnE,OAAO,EAAa,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAwCrD,gCAAgC;AAChC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB;;;;;;YA2JzE,IAAI;EAKf;AAoDD,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
@@ -2,13 +2,16 @@
2
2
  * HTTP Server
3
3
  * REST API and WebSocket support
4
4
  */
5
- import { handleCommand } from './handler';
6
5
  import { constantTimeEqual, uuid } from '../../shared/hash';
7
6
  import { httpLog } from '../../shared/logger';
8
7
  import { getRateLimiter } from './rateLimiter';
9
8
  import { SseHandler } from './sseHandler';
10
9
  import { WsHandler } from './wsHandler';
11
10
  import { jsonResponse, corsResponse, healthEndpoint, gcEndpoint, heapStatsEndpoint, statsEndpoint, metricsEndpoint, dashboardOverviewEndpoint, dashboardQueuesEndpoint, dashboardQueueDetailEndpoint, } from './httpEndpoints';
11
+ import { routeJobRoutes } from './httpRouteJobs';
12
+ import { routeQueueRoutes } from './httpRouteQueues';
13
+ import { routeQueueConfigRoutes } from './httpRouteQueueConfig';
14
+ import { routeResourceRoutes } from './httpRouteResources';
12
15
  /**
13
16
  * Validate auth token against valid tokens set
14
17
  */
@@ -142,19 +145,16 @@ export function createHttpServer(queueManager, config) {
142
145
  queueManager,
143
146
  authTokens,
144
147
  authenticated: ws.data.authenticated,
145
- clientId: ws.data.id, // Use WebSocket connection ID for job ownership tracking
148
+ clientId: ws.data.id,
146
149
  };
147
150
  await wsHandler.onMessage(ws, message, ctx);
148
151
  },
149
152
  close(ws) {
150
153
  const clientId = ws.data.id;
151
154
  wsHandler.onClose(ws);
152
- // Release all jobs owned by this WebSocket client back to queue
153
155
  queueManager
154
156
  .releaseClientJobs(clientId)
155
- .then(() => {
156
- // Jobs released successfully
157
- })
157
+ .then(() => { })
158
158
  .catch((err) => {
159
159
  httpLog.error('Failed to release WebSocket client jobs', {
160
160
  clientId,
@@ -195,7 +195,6 @@ async function routeRequest(req, path, ctx, corsOrigins) {
195
195
  if (path === '/stats' && method === 'GET') {
196
196
  return statsEndpoint(ctx.queueManager, corsOrigins);
197
197
  }
198
- // Metrics endpoint
199
198
  if (path === '/metrics' && method === 'GET') {
200
199
  return metricsEndpoint(ctx.queueManager, corsOrigins);
201
200
  }
@@ -213,82 +212,20 @@ async function routeRequest(req, path, ctx, corsOrigins) {
213
212
  const includeJobs = url.searchParams.get('includeJobs') === 'true';
214
213
  return dashboardQueueDetailEndpoint(ctx.queueManager, queue, includeJobs, corsOrigins);
215
214
  }
216
- // Queue operations: POST/GET /queues/:queue/jobs
217
- const queueJobsMatch = path.match(/^\/queues\/([^/]+)\/jobs$/);
218
- if (queueJobsMatch) {
219
- const queue = decodeURIComponent(queueJobsMatch[1]);
220
- if (method === 'POST') {
221
- let body;
222
- try {
223
- body = (await req.json());
224
- }
225
- catch {
226
- return jsonResponse({ ok: false, error: 'Invalid JSON body' }, 400, corsOrigins);
227
- }
228
- const cmd = {
229
- cmd: 'PUSH',
230
- queue,
231
- data: body.data,
232
- priority: body.priority,
233
- delay: body.delay,
234
- attempts: body.attempts,
235
- backoff: body.backoff,
236
- timeout: body.timeout,
237
- jobId: body.jobId,
238
- removeOnComplete: body.removeOnComplete,
239
- removeOnFail: body.removeOnFail,
240
- durable: body.durable,
241
- ttl: body.ttl,
242
- uniqueKey: body.uniqueKey,
243
- groupId: body.groupId,
244
- dependsOn: body.dependsOn,
245
- tags: body.tags,
246
- lifo: body.lifo,
247
- repeat: body.repeat,
248
- };
249
- const response = await handleCommand(cmd, ctx);
250
- return jsonResponse(response, response.ok ? 200 : 400, corsOrigins);
251
- }
252
- if (method === 'GET') {
253
- const timeout = parseInt(new URL(req.url).searchParams.get('timeout') ?? '0');
254
- const cmd = { cmd: 'PULL', queue, timeout };
255
- const response = await handleCommand(cmd, ctx);
256
- return jsonResponse(response, 200, corsOrigins);
257
- }
258
- }
259
- // Job operations: GET/DELETE /jobs/:id
260
- const jobMatch = path.match(/^\/jobs\/([^/]+)$/);
261
- if (jobMatch) {
262
- const id = jobMatch[1];
263
- if (method === 'GET') {
264
- const cmd = { cmd: 'GetJob', id };
265
- const response = await handleCommand(cmd, ctx);
266
- return jsonResponse(response, response.ok ? 200 : 404, corsOrigins);
267
- }
268
- if (method === 'DELETE') {
269
- const cmd = { cmd: 'Cancel', id };
270
- const response = await handleCommand(cmd, ctx);
271
- return jsonResponse(response, 200, corsOrigins);
272
- }
273
- }
274
- // Job ack: POST /jobs/:id/ack
275
- const ackMatch = path.match(/^\/jobs\/([^/]+)\/ack$/);
276
- if (ackMatch && method === 'POST') {
277
- const id = ackMatch[1];
278
- const body = (await req.json().catch(() => ({})));
279
- const cmd = { cmd: 'ACK', id, result: body['result'] };
280
- const response = await handleCommand(cmd, ctx);
281
- return jsonResponse(response, response.ok ? 200 : 400, corsOrigins);
282
- }
283
- // Job fail: POST /jobs/:id/fail
284
- const failMatch = path.match(/^\/jobs\/([^/]+)\/fail$/);
285
- if (failMatch && method === 'POST') {
286
- const id = failMatch[1];
287
- const body = (await req.json().catch(() => ({})));
288
- const cmd = { cmd: 'FAIL', id, error: body['error'] };
289
- const response = await handleCommand(cmd, ctx);
290
- return jsonResponse(response, response.ok ? 200 : 400, corsOrigins);
291
- }
215
+ // Route through sub-routers
216
+ let result;
217
+ result = await routeJobRoutes(req, path, method, ctx, corsOrigins);
218
+ if (result)
219
+ return result;
220
+ result = await routeQueueRoutes(req, path, method, ctx, corsOrigins);
221
+ if (result)
222
+ return result;
223
+ result = await routeQueueConfigRoutes(req, path, method, ctx, corsOrigins);
224
+ if (result)
225
+ return result;
226
+ result = await routeResourceRoutes(req, path, method, ctx, corsOrigins);
227
+ if (result)
228
+ return result;
292
229
  return jsonResponse({ ok: false, error: 'Not found' }, 404, corsOrigins);
293
230
  }
294
231
  //# sourceMappingURL=http.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/infrastructure/server/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/infrastructure/server/http.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"}
@@ -0,0 +1,205 @@
1
+ /**
2
+ * HTTP Routes - Queue operations
3
+ * All /queues/:queue/* endpoints + /queues list
4
+ */
5
+ import { handleCommand } from './handler';
6
+ import { jsonResponse } from './httpEndpoints';
7
+ const parseBody = (req) => req.json().catch(() => ({}));
8
+ /** Route /queues/* requests. Returns Response or null if no match. */
9
+ export async function routeQueueRoutes(req, path, method, ctx, cors) {
10
+ // GET /queues - list all queues
11
+ if (path === '/queues' && method === 'GET') {
12
+ const r = await handleCommand({ cmd: 'ListQueues' }, ctx);
13
+ return jsonResponse(r, 200, cors);
14
+ }
15
+ // POST/GET /queues/:queue/jobs - push/pull
16
+ const queueJobsMatch = path.match(/^\/queues\/([^/]+)\/jobs$/);
17
+ if (queueJobsMatch) {
18
+ const queue = decodeURIComponent(queueJobsMatch[1]);
19
+ if (method === 'POST') {
20
+ let body;
21
+ try {
22
+ body = (await req.json());
23
+ }
24
+ catch {
25
+ return jsonResponse({ ok: false, error: 'Invalid JSON body' }, 400, cors);
26
+ }
27
+ const cmd = {
28
+ cmd: 'PUSH',
29
+ queue,
30
+ data: body.data,
31
+ priority: body.priority,
32
+ delay: body.delay,
33
+ attempts: body.attempts,
34
+ backoff: body.backoff,
35
+ timeout: body.timeout,
36
+ jobId: body.jobId,
37
+ removeOnComplete: body.removeOnComplete,
38
+ removeOnFail: body.removeOnFail,
39
+ durable: body.durable,
40
+ ttl: body.ttl,
41
+ uniqueKey: body.uniqueKey,
42
+ groupId: body.groupId,
43
+ dependsOn: body.dependsOn,
44
+ tags: body.tags,
45
+ lifo: body.lifo,
46
+ repeat: body.repeat,
47
+ };
48
+ const r = await handleCommand(cmd, ctx);
49
+ return jsonResponse(r, r.ok ? 200 : 400, cors);
50
+ }
51
+ if (method === 'GET') {
52
+ const timeout = parseInt(new URL(req.url).searchParams.get('timeout') ?? '0');
53
+ const r = await handleCommand({ cmd: 'PULL', queue, timeout }, ctx);
54
+ return jsonResponse(r, 200, cors);
55
+ }
56
+ }
57
+ // POST /queues/:queue/jobs/bulk - bulk push
58
+ const bulkMatch = path.match(/^\/queues\/([^/]+)\/jobs\/bulk$/);
59
+ if (bulkMatch && method === 'POST') {
60
+ const queue = decodeURIComponent(bulkMatch[1]);
61
+ let body;
62
+ try {
63
+ body = (await req.json());
64
+ }
65
+ catch {
66
+ return jsonResponse({ ok: false, error: 'Invalid JSON body' }, 400, cors);
67
+ }
68
+ const r = await handleCommand({
69
+ cmd: 'PUSHB',
70
+ queue,
71
+ jobs: body['jobs'],
72
+ }, ctx);
73
+ return jsonResponse(r, r.ok ? 200 : 400, cors);
74
+ }
75
+ // POST /queues/:queue/jobs/pull-batch
76
+ const pullBatchMatch = path.match(/^\/queues\/([^/]+)\/jobs\/pull-batch$/);
77
+ if (pullBatchMatch && method === 'POST') {
78
+ const queue = decodeURIComponent(pullBatchMatch[1]);
79
+ const body = await parseBody(req);
80
+ const r = await handleCommand({
81
+ cmd: 'PULLB',
82
+ queue,
83
+ count: body['count'],
84
+ timeout: body['timeout'],
85
+ owner: body['owner'],
86
+ lockTtl: body['lockTtl'],
87
+ }, ctx);
88
+ return jsonResponse(r, 200, cors);
89
+ }
90
+ // GET /queues/:queue/jobs/list?state=&limit=&offset=
91
+ const listMatch = path.match(/^\/queues\/([^/]+)\/jobs\/list$/);
92
+ if (listMatch && method === 'GET') {
93
+ const queue = decodeURIComponent(listMatch[1]);
94
+ const url = new URL(req.url);
95
+ const state = url.searchParams.get('state') ?? undefined;
96
+ const limitParam = url.searchParams.get('limit');
97
+ const offsetParam = url.searchParams.get('offset');
98
+ const limit = limitParam ? parseInt(limitParam) : undefined;
99
+ const offset = offsetParam ? parseInt(offsetParam) : undefined;
100
+ const r = await handleCommand({
101
+ cmd: 'GetJobs',
102
+ queue,
103
+ state,
104
+ end: limit,
105
+ start: offset,
106
+ }, ctx);
107
+ return jsonResponse(r, 200, cors);
108
+ }
109
+ // GET /queues/:queue/counts
110
+ const countsMatch = path.match(/^\/queues\/([^/]+)\/counts$/);
111
+ if (countsMatch && method === 'GET') {
112
+ const queue = decodeURIComponent(countsMatch[1]);
113
+ const r = await handleCommand({ cmd: 'GetJobCounts', queue }, ctx);
114
+ return jsonResponse(r, 200, cors);
115
+ }
116
+ // GET /queues/:queue/count
117
+ const countMatch = path.match(/^\/queues\/([^/]+)\/count$/);
118
+ if (countMatch && method === 'GET') {
119
+ const queue = decodeURIComponent(countMatch[1]);
120
+ const r = await handleCommand({ cmd: 'Count', queue }, ctx);
121
+ return jsonResponse(r, 200, cors);
122
+ }
123
+ // GET /queues/:queue/priority-counts
124
+ const priCountsMatch = path.match(/^\/queues\/([^/]+)\/priority-counts$/);
125
+ if (priCountsMatch && method === 'GET') {
126
+ const queue = decodeURIComponent(priCountsMatch[1]);
127
+ const r = await handleCommand({ cmd: 'GetCountsPerPriority', queue }, ctx);
128
+ return jsonResponse(r, 200, cors);
129
+ }
130
+ // GET /queues/:queue/paused
131
+ const pausedMatch = path.match(/^\/queues\/([^/]+)\/paused$/);
132
+ if (pausedMatch && method === 'GET') {
133
+ const queue = decodeURIComponent(pausedMatch[1]);
134
+ const r = await handleCommand({ cmd: 'IsPaused', queue }, ctx);
135
+ return jsonResponse(r, 200, cors);
136
+ }
137
+ // POST /queues/:queue/pause
138
+ const pauseMatch = path.match(/^\/queues\/([^/]+)\/pause$/);
139
+ if (pauseMatch && method === 'POST') {
140
+ const queue = decodeURIComponent(pauseMatch[1]);
141
+ const r = await handleCommand({ cmd: 'Pause', queue }, ctx);
142
+ return jsonResponse(r, 200, cors);
143
+ }
144
+ // POST /queues/:queue/resume
145
+ const resumeMatch = path.match(/^\/queues\/([^/]+)\/resume$/);
146
+ if (resumeMatch && method === 'POST') {
147
+ const queue = decodeURIComponent(resumeMatch[1]);
148
+ const r = await handleCommand({ cmd: 'Resume', queue }, ctx);
149
+ return jsonResponse(r, 200, cors);
150
+ }
151
+ // POST /queues/:queue/drain
152
+ const drainMatch = path.match(/^\/queues\/([^/]+)\/drain$/);
153
+ if (drainMatch && method === 'POST') {
154
+ const queue = decodeURIComponent(drainMatch[1]);
155
+ const r = await handleCommand({ cmd: 'Drain', queue }, ctx);
156
+ return jsonResponse(r, 200, cors);
157
+ }
158
+ // POST /queues/:queue/obliterate
159
+ const obliterateMatch = path.match(/^\/queues\/([^/]+)\/obliterate$/);
160
+ if (obliterateMatch && method === 'POST') {
161
+ const queue = decodeURIComponent(obliterateMatch[1]);
162
+ const r = await handleCommand({ cmd: 'Obliterate', queue }, ctx);
163
+ return jsonResponse(r, 200, cors);
164
+ }
165
+ // POST /queues/:queue/clean
166
+ const cleanMatch = path.match(/^\/queues\/([^/]+)\/clean$/);
167
+ if (cleanMatch && method === 'POST') {
168
+ const queue = decodeURIComponent(cleanMatch[1]);
169
+ const body = await parseBody(req);
170
+ const r = await handleCommand({
171
+ cmd: 'Clean',
172
+ queue,
173
+ grace: typeof body['grace'] === 'number' ? body['grace'] : 0,
174
+ state: body['state'],
175
+ limit: body['limit'],
176
+ }, ctx);
177
+ return jsonResponse(r, 200, cors);
178
+ }
179
+ // POST /queues/:queue/promote-jobs
180
+ const promoteJobsMatch = path.match(/^\/queues\/([^/]+)\/promote-jobs$/);
181
+ if (promoteJobsMatch && method === 'POST') {
182
+ const queue = decodeURIComponent(promoteJobsMatch[1]);
183
+ const body = await parseBody(req);
184
+ const r = await handleCommand({
185
+ cmd: 'PromoteJobs',
186
+ queue,
187
+ count: body['count'],
188
+ }, ctx);
189
+ return jsonResponse(r, 200, cors);
190
+ }
191
+ // POST /queues/:queue/retry-completed
192
+ const retryCompMatch = path.match(/^\/queues\/([^/]+)\/retry-completed$/);
193
+ if (retryCompMatch && method === 'POST') {
194
+ const queue = decodeURIComponent(retryCompMatch[1]);
195
+ const body = await parseBody(req);
196
+ const r = await handleCommand({
197
+ cmd: 'RetryCompleted',
198
+ queue,
199
+ id: body['id'],
200
+ }, ctx);
201
+ return jsonResponse(r, 200, cors);
202
+ }
203
+ return null;
204
+ }
205
+ //# sourceMappingURL=httpRouteQueues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpRouteQueues.js","sourceRoot":"","sources":["../../../src/infrastructure/server/httpRouteQueues.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * HTTP Routes - Crons, Webhooks, Workers, Monitoring
3
+ * All /crons/*, /webhooks/*, /workers/*, /ping endpoints
4
+ */
5
+ import type { HandlerContext } from './types';
6
+ /** Route cron, webhook, worker, and monitoring requests. Returns Response or null. */
7
+ export declare function routeResourceRoutes(req: Request, path: string, method: string, ctx: HandlerContext, cors: Set<string>): Promise<Response | null>;
8
+ //# sourceMappingURL=httpRouteResources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpRouteResources.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/server/httpRouteResources.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAM9C,sFAAsF;AACtF,wBAAsB,mBAAmB,CACvC,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,CA8K1B"}
@@ -0,0 +1,148 @@
1
+ /**
2
+ * HTTP Routes - Crons, Webhooks, Workers, Monitoring
3
+ * All /crons/*, /webhooks/*, /workers/*, /ping endpoints
4
+ */
5
+ import { handleCommand } from './handler';
6
+ import { jsonResponse } from './httpEndpoints';
7
+ const parseBody = (req) => req.json().catch(() => ({}));
8
+ /** Route cron, webhook, worker, and monitoring requests. Returns Response or null. */
9
+ export async function routeResourceRoutes(req, path, method, ctx, cors) {
10
+ // ── Cron ──────────────────────────────────────────────────
11
+ // GET /crons - list all
12
+ if (path === '/crons' && method === 'GET') {
13
+ const r = await handleCommand({ cmd: 'CronList' }, ctx);
14
+ return jsonResponse(r, 200, cors);
15
+ }
16
+ // POST /crons - add cron
17
+ if (path === '/crons' && method === 'POST') {
18
+ let body;
19
+ try {
20
+ body = (await req.json());
21
+ }
22
+ catch {
23
+ return jsonResponse({ ok: false, error: 'Invalid JSON body' }, 400, cors);
24
+ }
25
+ const r = await handleCommand({
26
+ cmd: 'Cron',
27
+ name: body['name'],
28
+ queue: body['queue'],
29
+ data: body['data'],
30
+ schedule: body['schedule'],
31
+ repeatEvery: body['repeatEvery'],
32
+ priority: body['priority'],
33
+ maxLimit: body['maxLimit'],
34
+ timezone: body['timezone'],
35
+ }, ctx);
36
+ return jsonResponse(r, r.ok ? 200 : 400, cors);
37
+ }
38
+ // GET /crons/:name
39
+ const cronGetMatch = path.match(/^\/crons\/([^/]+)$/);
40
+ if (cronGetMatch && method === 'GET') {
41
+ const name = decodeURIComponent(cronGetMatch[1]);
42
+ const r = await handleCommand({ cmd: 'CronGet', name }, ctx);
43
+ return jsonResponse(r, r.ok ? 200 : 404, cors);
44
+ }
45
+ // DELETE /crons/:name
46
+ if (cronGetMatch && method === 'DELETE') {
47
+ const name = decodeURIComponent(cronGetMatch[1]);
48
+ const r = await handleCommand({ cmd: 'CronDelete', name }, ctx);
49
+ return jsonResponse(r, r.ok ? 200 : 404, cors);
50
+ }
51
+ // ── Webhooks ──────────────────────────────────────────────
52
+ // GET /webhooks
53
+ if (path === '/webhooks' && method === 'GET') {
54
+ const r = await handleCommand({ cmd: 'ListWebhooks' }, ctx);
55
+ return jsonResponse(r, 200, cors);
56
+ }
57
+ // POST /webhooks
58
+ if (path === '/webhooks' && method === 'POST') {
59
+ let body;
60
+ try {
61
+ body = (await req.json());
62
+ }
63
+ catch {
64
+ return jsonResponse({ ok: false, error: 'Invalid JSON body' }, 400, cors);
65
+ }
66
+ const r = await handleCommand({
67
+ cmd: 'AddWebhook',
68
+ url: body['url'],
69
+ events: body['events'],
70
+ queue: body['queue'],
71
+ secret: body['secret'],
72
+ }, ctx);
73
+ return jsonResponse(r, r.ok ? 200 : 400, cors);
74
+ }
75
+ // DELETE /webhooks/:id
76
+ const webhookMatch = path.match(/^\/webhooks\/([^/]+)$/);
77
+ if (webhookMatch && method === 'DELETE') {
78
+ const r = await handleCommand({
79
+ cmd: 'RemoveWebhook',
80
+ webhookId: webhookMatch[1],
81
+ }, ctx);
82
+ return jsonResponse(r, r.ok ? 200 : 404, cors);
83
+ }
84
+ // PUT /webhooks/:id/enabled
85
+ const webhookEnabledMatch = path.match(/^\/webhooks\/([^/]+)\/enabled$/);
86
+ if (webhookEnabledMatch && method === 'PUT') {
87
+ const body = await parseBody(req);
88
+ const r = await handleCommand({
89
+ cmd: 'SetWebhookEnabled',
90
+ id: webhookEnabledMatch[1],
91
+ enabled: body['enabled'],
92
+ }, ctx);
93
+ return jsonResponse(r, r.ok ? 200 : 400, cors);
94
+ }
95
+ // ── Workers ───────────────────────────────────────────────
96
+ // GET /workers
97
+ if (path === '/workers' && method === 'GET') {
98
+ const r = await handleCommand({ cmd: 'ListWorkers' }, ctx);
99
+ return jsonResponse(r, 200, cors);
100
+ }
101
+ // POST /workers
102
+ if (path === '/workers' && method === 'POST') {
103
+ let body;
104
+ try {
105
+ body = (await req.json());
106
+ }
107
+ catch {
108
+ return jsonResponse({ ok: false, error: 'Invalid JSON body' }, 400, cors);
109
+ }
110
+ const r = await handleCommand({
111
+ cmd: 'RegisterWorker',
112
+ name: body['name'],
113
+ queues: body['queues'],
114
+ }, ctx);
115
+ return jsonResponse(r, r.ok ? 200 : 400, cors);
116
+ }
117
+ // DELETE /workers/:id
118
+ const workerMatch = path.match(/^\/workers\/([^/]+)$/);
119
+ if (workerMatch && method === 'DELETE') {
120
+ const r = await handleCommand({
121
+ cmd: 'UnregisterWorker',
122
+ workerId: workerMatch[1],
123
+ }, ctx);
124
+ return jsonResponse(r, r.ok ? 200 : 404, cors);
125
+ }
126
+ // POST /workers/:id/heartbeat
127
+ const workerHeartbeatMatch = path.match(/^\/workers\/([^/]+)\/heartbeat$/);
128
+ if (workerHeartbeatMatch && method === 'POST') {
129
+ const r = await handleCommand({
130
+ cmd: 'Heartbeat',
131
+ id: workerHeartbeatMatch[1],
132
+ }, ctx);
133
+ return jsonResponse(r, 200, cors);
134
+ }
135
+ // ── Monitoring ────────────────────────────────────────────
136
+ // GET /ping
137
+ if (path === '/ping' && method === 'GET') {
138
+ const r = await handleCommand({ cmd: 'Ping' }, ctx);
139
+ return jsonResponse(r, 200, cors);
140
+ }
141
+ // GET /storage
142
+ if (path === '/storage' && method === 'GET') {
143
+ const r = await handleCommand({ cmd: 'StorageStatus' }, ctx);
144
+ return jsonResponse(r, 200, cors);
145
+ }
146
+ return null;
147
+ }
148
+ //# sourceMappingURL=httpRouteResources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpRouteResources.js","sourceRoot":"","sources":["../../../src/infrastructure/server/httpRouteResources.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bunqueue",
3
- "version": "2.6.14",
3
+ "version": "2.6.15",
4
4
  "description": "High-performance job queue for Bun & AI agents. SQLite persistence, cron scheduling, priorities, retries, DLQ, webhooks, native MCP server. Zero external dependencies.",
5
5
  "type": "module",
6
6
  "main": "dist/main.js",