bunqueue 1.9.7 → 1.9.8

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 (145) hide show
  1. package/dist/application/backgroundTasks.d.ts +3 -6
  2. package/dist/application/backgroundTasks.d.ts.map +1 -1
  3. package/dist/application/backgroundTasks.js +9 -172
  4. package/dist/application/backgroundTasks.js.map +1 -1
  5. package/dist/application/cleanupTasks.d.ts +1 -1
  6. package/dist/application/cleanupTasks.d.ts.map +1 -1
  7. package/dist/application/cleanupTasks.js +57 -22
  8. package/dist/application/cleanupTasks.js.map +1 -1
  9. package/dist/application/clientTracking.d.ts +22 -0
  10. package/dist/application/clientTracking.d.ts.map +1 -0
  11. package/dist/application/clientTracking.js +122 -0
  12. package/dist/application/clientTracking.js.map +1 -0
  13. package/dist/application/contextFactory.d.ts +97 -0
  14. package/dist/application/contextFactory.d.ts.map +1 -0
  15. package/dist/application/contextFactory.js +169 -0
  16. package/dist/application/contextFactory.js.map +1 -0
  17. package/dist/application/dependencyProcessor.d.ts +11 -0
  18. package/dist/application/dependencyProcessor.d.ts.map +1 -0
  19. package/dist/application/dependencyProcessor.js +69 -0
  20. package/dist/application/dependencyProcessor.js.map +1 -0
  21. package/dist/application/dlqManager.d.ts +12 -0
  22. package/dist/application/dlqManager.d.ts.map +1 -1
  23. package/dist/application/dlqManager.js +36 -0
  24. package/dist/application/dlqManager.js.map +1 -1
  25. package/dist/application/lockManager.d.ts +2 -49
  26. package/dist/application/lockManager.d.ts.map +1 -1
  27. package/dist/application/lockManager.js +73 -262
  28. package/dist/application/lockManager.js.map +1 -1
  29. package/dist/application/lockOperations.d.ts +39 -0
  30. package/dist/application/lockOperations.d.ts.map +1 -0
  31. package/dist/application/lockOperations.js +101 -0
  32. package/dist/application/lockOperations.js.map +1 -0
  33. package/dist/application/operations/ack.d.ts +0 -5
  34. package/dist/application/operations/ack.d.ts.map +1 -1
  35. package/dist/application/operations/ack.js +30 -258
  36. package/dist/application/operations/ack.js.map +1 -1
  37. package/dist/application/operations/ackHelpers.d.ts +78 -0
  38. package/dist/application/operations/ackHelpers.d.ts.map +1 -0
  39. package/dist/application/operations/ackHelpers.js +162 -0
  40. package/dist/application/operations/ackHelpers.js.map +1 -0
  41. package/dist/application/operations/jobManagement.d.ts +2 -0
  42. package/dist/application/operations/jobManagement.d.ts.map +1 -1
  43. package/dist/application/operations/jobManagement.js +8 -0
  44. package/dist/application/operations/jobManagement.js.map +1 -1
  45. package/dist/application/operations/push.d.ts.map +1 -1
  46. package/dist/application/operations/push.js +8 -2
  47. package/dist/application/operations/push.js.map +1 -1
  48. package/dist/application/operations/queryOperations.d.ts +11 -0
  49. package/dist/application/operations/queryOperations.d.ts.map +1 -1
  50. package/dist/application/operations/queryOperations.js +32 -0
  51. package/dist/application/operations/queryOperations.js.map +1 -1
  52. package/dist/application/queueManager.d.ts +3 -11
  53. package/dist/application/queueManager.d.ts.map +1 -1
  54. package/dist/application/queueManager.js +90 -243
  55. package/dist/application/queueManager.js.map +1 -1
  56. package/dist/application/stallDetection.d.ts +11 -0
  57. package/dist/application/stallDetection.d.ts.map +1 -0
  58. package/dist/application/stallDetection.js +128 -0
  59. package/dist/application/stallDetection.js.map +1 -0
  60. package/dist/domain/queue/dependencyTracker.d.ts +74 -0
  61. package/dist/domain/queue/dependencyTracker.d.ts.map +1 -0
  62. package/dist/domain/queue/dependencyTracker.js +126 -0
  63. package/dist/domain/queue/dependencyTracker.js.map +1 -0
  64. package/dist/domain/queue/dlqShard.d.ts +59 -0
  65. package/dist/domain/queue/dlqShard.d.ts.map +1 -0
  66. package/dist/domain/queue/dlqShard.js +165 -0
  67. package/dist/domain/queue/dlqShard.js.map +1 -0
  68. package/dist/domain/queue/limiterManager.d.ts +44 -0
  69. package/dist/domain/queue/limiterManager.d.ts.map +1 -0
  70. package/dist/domain/queue/limiterManager.js +99 -0
  71. package/dist/domain/queue/limiterManager.js.map +1 -0
  72. package/dist/domain/queue/shard.d.ts +29 -122
  73. package/dist/domain/queue/shard.d.ts.map +1 -1
  74. package/dist/domain/queue/shard.js +152 -426
  75. package/dist/domain/queue/shard.js.map +1 -1
  76. package/dist/domain/queue/temporalManager.d.ts +81 -0
  77. package/dist/domain/queue/temporalManager.d.ts.map +1 -0
  78. package/dist/domain/queue/temporalManager.js +149 -0
  79. package/dist/domain/queue/temporalManager.js.map +1 -0
  80. package/dist/domain/queue/uniqueKeyManager.d.ts +32 -0
  81. package/dist/domain/queue/uniqueKeyManager.d.ts.map +1 -0
  82. package/dist/domain/queue/uniqueKeyManager.js +87 -0
  83. package/dist/domain/queue/uniqueKeyManager.js.map +1 -0
  84. package/dist/infrastructure/backup/s3Backup.d.ts +3 -40
  85. package/dist/infrastructure/backup/s3Backup.d.ts.map +1 -1
  86. package/dist/infrastructure/backup/s3Backup.js +10 -182
  87. package/dist/infrastructure/backup/s3Backup.js.map +1 -1
  88. package/dist/infrastructure/backup/s3BackupConfig.d.ts +67 -0
  89. package/dist/infrastructure/backup/s3BackupConfig.d.ts.map +1 -0
  90. package/dist/infrastructure/backup/s3BackupConfig.js +48 -0
  91. package/dist/infrastructure/backup/s3BackupConfig.js.map +1 -0
  92. package/dist/infrastructure/backup/s3BackupOperations.d.ts +23 -0
  93. package/dist/infrastructure/backup/s3BackupOperations.d.ts.map +1 -0
  94. package/dist/infrastructure/backup/s3BackupOperations.js +170 -0
  95. package/dist/infrastructure/backup/s3BackupOperations.js.map +1 -0
  96. package/dist/infrastructure/persistence/sqlite.d.ts +4 -13
  97. package/dist/infrastructure/persistence/sqlite.d.ts.map +1 -1
  98. package/dist/infrastructure/persistence/sqlite.js +23 -178
  99. package/dist/infrastructure/persistence/sqlite.js.map +1 -1
  100. package/dist/infrastructure/persistence/sqliteBatch.d.ts +38 -0
  101. package/dist/infrastructure/persistence/sqliteBatch.d.ts.map +1 -0
  102. package/dist/infrastructure/persistence/sqliteBatch.js +124 -0
  103. package/dist/infrastructure/persistence/sqliteBatch.js.map +1 -0
  104. package/dist/infrastructure/persistence/sqliteSerializer.d.ts +17 -0
  105. package/dist/infrastructure/persistence/sqliteSerializer.d.ts.map +1 -0
  106. package/dist/infrastructure/persistence/sqliteSerializer.js +81 -0
  107. package/dist/infrastructure/persistence/sqliteSerializer.js.map +1 -0
  108. package/dist/infrastructure/server/handler.d.ts.map +1 -1
  109. package/dist/infrastructure/server/handler.js +1 -186
  110. package/dist/infrastructure/server/handler.js.map +1 -1
  111. package/dist/infrastructure/server/handlerRoutes.d.ts +23 -0
  112. package/dist/infrastructure/server/handlerRoutes.d.ts.map +1 -0
  113. package/dist/infrastructure/server/handlerRoutes.js +190 -0
  114. package/dist/infrastructure/server/handlerRoutes.js.map +1 -0
  115. package/dist/infrastructure/server/http.d.ts +4 -25
  116. package/dist/infrastructure/server/http.d.ts.map +1 -1
  117. package/dist/infrastructure/server/http.js +43 -285
  118. package/dist/infrastructure/server/http.js.map +1 -1
  119. package/dist/infrastructure/server/httpEndpoints.d.ts +19 -0
  120. package/dist/infrastructure/server/httpEndpoints.d.ts.map +1 -0
  121. package/dist/infrastructure/server/httpEndpoints.js +151 -0
  122. package/dist/infrastructure/server/httpEndpoints.js.map +1 -0
  123. package/dist/infrastructure/server/sseHandler.d.ts +27 -0
  124. package/dist/infrastructure/server/sseHandler.d.ts.map +1 -0
  125. package/dist/infrastructure/server/sseHandler.js +77 -0
  126. package/dist/infrastructure/server/sseHandler.js.map +1 -0
  127. package/dist/infrastructure/server/wsHandler.d.ts +31 -0
  128. package/dist/infrastructure/server/wsHandler.d.ts.map +1 -0
  129. package/dist/infrastructure/server/wsHandler.js +63 -0
  130. package/dist/infrastructure/server/wsHandler.js.map +1 -0
  131. package/dist/mcp/index.js +3 -465
  132. package/dist/mcp/index.js.map +1 -1
  133. package/dist/mcp/mcpHandlers.d.ts +129 -0
  134. package/dist/mcp/mcpHandlers.d.ts.map +1 -0
  135. package/dist/mcp/mcpHandlers.js +204 -0
  136. package/dist/mcp/mcpHandlers.js.map +1 -0
  137. package/dist/mcp/mcpTools.d.ts +15 -0
  138. package/dist/mcp/mcpTools.d.ts.map +1 -0
  139. package/dist/mcp/mcpTools.js +277 -0
  140. package/dist/mcp/mcpTools.js.map +1 -0
  141. package/package.json +2 -2
  142. package/dist/cli/dashboard.d.ts +0 -32
  143. package/dist/cli/dashboard.d.ts.map +0 -1
  144. package/dist/cli/dashboard.js +0 -183
  145. package/dist/cli/dashboard.js.map +0 -1
@@ -3,18 +3,14 @@
3
3
  * REST API and WebSocket support
4
4
  */
5
5
  import { handleCommand } from './handler';
6
- import { parseCommand, serializeResponse, errorResponse } from './protocol';
7
6
  import { constantTimeEqual, uuid } from '../../shared/hash';
8
- import { httpLog, wsLog } from '../../shared/logger';
7
+ import { httpLog } from '../../shared/logger';
9
8
  import { getRateLimiter } from './rateLimiter';
10
- import { VERSION } from '../../shared/version';
11
- /** Singleton TextEncoder for SSE messages - avoids allocation per message */
12
- const textEncoder = new TextEncoder();
13
- /** Singleton TextDecoder for WebSocket messages */
14
- const textDecoder = new TextDecoder();
9
+ import { SseHandler } from './sseHandler';
10
+ import { WsHandler } from './wsHandler';
11
+ import { jsonResponse, corsResponse, healthEndpoint, gcEndpoint, heapStatsEndpoint, statsEndpoint, metricsEndpoint, } from './httpEndpoints';
15
12
  /**
16
- * Validate auth token against valid tokens set - O(n) but single function
17
- * Uses constant-time comparison to prevent timing attacks
13
+ * Validate auth token against valid tokens set
18
14
  */
19
15
  function validateAuthToken(token, authTokens) {
20
16
  for (const validToken of authTokens) {
@@ -29,37 +25,16 @@ function validateAuthToken(token, authTokens) {
29
25
  */
30
26
  export function createHttpServer(queueManager, config) {
31
27
  const authTokens = new Set(config.authTokens ?? []);
32
- const wsClients = new Map();
33
- const sseClients = new Map();
34
28
  const corsOrigins = new Set(config.corsOrigins ?? ['*']);
35
- // Subscribe to queue events for WebSocket and SSE broadcast
29
+ const wsHandler = new WsHandler();
30
+ const sseHandler = new SseHandler();
31
+ // Subscribe to queue events for broadcast
36
32
  queueManager.subscribe((event) => {
37
- const message = JSON.stringify(event);
38
- // WebSocket clients
39
- for (const [, ws] of wsClients) {
40
- if (!ws.data.queueFilter || ws.data.queueFilter === event.queue) {
41
- ws.send(message);
42
- }
43
- }
44
- // SSE clients
45
- const sseMessage = `data: ${message}\n\n`;
46
- const disconnectedClients = [];
47
- for (const [clientId, client] of sseClients) {
48
- if (!client.queueFilter || client.queueFilter === event.queue) {
49
- try {
50
- client.controller.enqueue(textEncoder.encode(sseMessage));
51
- }
52
- catch {
53
- // Client disconnected, mark for removal
54
- disconnectedClients.push(clientId);
55
- }
56
- }
57
- }
58
- // Remove disconnected clients
59
- for (const clientId of disconnectedClients) {
60
- sseClients.delete(clientId);
61
- }
33
+ wsHandler.broadcast(event);
34
+ sseHandler.broadcast(event);
62
35
  });
36
+ // Helper to get CORS origin string
37
+ const getCorsOrigin = () => (corsOrigins.has('*') ? '*' : Array.from(corsOrigins).join(', '));
63
38
  // Fetch handler
64
39
  const fetch = async (req, server) => {
65
40
  const url = new URL(req.url);
@@ -68,101 +43,24 @@ export function createHttpServer(queueManager, config) {
68
43
  if (req.method === 'OPTIONS') {
69
44
  return corsResponse(corsOrigins);
70
45
  }
71
- // Health check (no auth, no rate limit)
46
+ // Health endpoints (no auth, no rate limit)
72
47
  if (path === '/health') {
73
- const stats = queueManager.getStats();
74
- const uptime = process.uptime();
75
- const memoryUsage = process.memoryUsage();
76
- return jsonResponse({
77
- ok: true,
78
- status: 'healthy',
79
- uptime: Math.floor(uptime),
80
- version: VERSION,
81
- queues: {
82
- waiting: stats.waiting,
83
- active: stats.active,
84
- delayed: stats.delayed,
85
- completed: stats.completed,
86
- dlq: stats.dlq,
87
- },
88
- connections: {
89
- tcp: 0, // Would need server reference
90
- ws: wsClients.size,
91
- sse: sseClients.size,
92
- },
93
- memory: {
94
- heapUsed: Math.round(memoryUsage.heapUsed / 1024 / 1024),
95
- heapTotal: Math.round(memoryUsage.heapTotal / 1024 / 1024),
96
- rss: Math.round(memoryUsage.rss / 1024 / 1024),
97
- },
98
- });
48
+ return healthEndpoint(queueManager, wsHandler.size, sseHandler.size);
99
49
  }
100
- // Simple liveness probe (minimal response)
101
50
  if (path === '/healthz' || path === '/live') {
102
51
  return new Response('OK', { status: 200 });
103
52
  }
104
- // Readiness probe (checks if server can accept work)
105
53
  if (path === '/ready') {
106
54
  return jsonResponse({ ok: true, ready: true });
107
55
  }
108
- // Force garbage collection (for debugging memory issues)
56
+ // Debug endpoints
109
57
  if (path === '/gc' && req.method === 'POST') {
110
- const before = process.memoryUsage();
111
- if (typeof Bun !== 'undefined' && Bun.gc) {
112
- Bun.gc(true); // Aggressive GC
113
- }
114
- queueManager.compactMemory();
115
- const after = process.memoryUsage();
116
- return jsonResponse({
117
- ok: true,
118
- before: {
119
- heapUsed: Math.round(before.heapUsed / 1024 / 1024),
120
- heapTotal: Math.round(before.heapTotal / 1024 / 1024),
121
- rss: Math.round(before.rss / 1024 / 1024),
122
- },
123
- after: {
124
- heapUsed: Math.round(after.heapUsed / 1024 / 1024),
125
- heapTotal: Math.round(after.heapTotal / 1024 / 1024),
126
- rss: Math.round(after.rss / 1024 / 1024),
127
- },
128
- });
58
+ return gcEndpoint(queueManager);
129
59
  }
130
- // Heap statistics (for debugging memory leaks)
131
60
  if (path === '/heapstats' && req.method === 'GET') {
132
- // Run GC first for accurate stats
133
- if (typeof Bun !== 'undefined' && Bun.gc) {
134
- Bun.gc(true);
135
- }
136
- // Get heap stats from bun:jsc
137
- const { heapStats } = await import('bun:jsc');
138
- const stats = heapStats();
139
- const mem = process.memoryUsage();
140
- const memStats = queueManager.getMemoryStats();
141
- // Get top object types by count
142
- const typeCounts = stats.objectTypeCounts;
143
- const topTypes = typeCounts
144
- ? Object.entries(typeCounts)
145
- .sort((a, b) => b[1] - a[1])
146
- .slice(0, 20)
147
- .map(([type, count]) => ({ type, count }))
148
- : [];
149
- return jsonResponse({
150
- ok: true,
151
- memory: {
152
- heapUsed: Math.round(mem.heapUsed / 1024 / 1024),
153
- heapTotal: Math.round(mem.heapTotal / 1024 / 1024),
154
- rss: Math.round(mem.rss / 1024 / 1024),
155
- },
156
- heap: {
157
- objectCount: stats.objectCount,
158
- protectedCount: stats.protectedObjectCount,
159
- globalCount: stats.globalObjectCount,
160
- },
161
- collections: memStats,
162
- topObjectTypes: topTypes,
163
- });
61
+ return heapStatsEndpoint(queueManager);
164
62
  }
165
- // Rate limiting (use IP as client ID for HTTP)
63
+ // Rate limiting
166
64
  const clientIp = req.headers.get('x-forwarded-for')?.split(',')[0]?.trim() ??
167
65
  req.headers.get('x-real-ip') ??
168
66
  'unknown';
@@ -173,23 +71,14 @@ export function createHttpServer(queueManager, config) {
173
71
  if (path === '/ws' || path.startsWith('/ws/')) {
174
72
  const queueFilter = path.startsWith('/ws/queues/') ? path.slice('/ws/queues/'.length) : null;
175
73
  const upgraded = server.upgrade(req, {
176
- data: {
177
- id: uuid(),
178
- authenticated: authTokens.size === 0,
179
- queueFilter,
180
- },
74
+ data: { id: uuid(), authenticated: authTokens.size === 0, queueFilter },
181
75
  });
182
- if (!upgraded) {
183
- return new Response('WebSocket upgrade failed', { status: 400 });
184
- }
185
- return undefined;
76
+ return upgraded ? undefined : new Response('WebSocket upgrade failed', { status: 400 });
186
77
  }
187
- // SSE (Server-Sent Events) endpoint - requires auth when enabled
78
+ // SSE endpoint
188
79
  if (path === '/events' || path.startsWith('/events/')) {
189
- // Check authentication for SSE
190
80
  if (authTokens.size > 0) {
191
- const authHeader = req.headers.get('Authorization');
192
- const token = authHeader?.replace('Bearer ', '') ?? '';
81
+ const token = req.headers.get('Authorization')?.replace('Bearer ', '') ?? '';
193
82
  if (!validateAuthToken(token, authTokens)) {
194
83
  return jsonResponse({ ok: false, error: 'Unauthorized' }, 401);
195
84
  }
@@ -197,61 +86,28 @@ export function createHttpServer(queueManager, config) {
197
86
  const queueFilter = path.startsWith('/events/queues/')
198
87
  ? path.slice('/events/queues/'.length)
199
88
  : null;
200
- const clientId = uuid();
201
- const stream = new ReadableStream({
202
- start(controller) {
203
- sseClients.set(clientId, {
204
- id: clientId,
205
- controller,
206
- queueFilter,
207
- });
208
- // Send initial connection message
209
- controller.enqueue(textEncoder.encode(`data: {"connected":true,"clientId":"${clientId}"}\n\n`));
210
- },
211
- cancel() {
212
- sseClients.delete(clientId);
213
- },
214
- });
215
- return new Response(stream, {
216
- headers: {
217
- 'Content-Type': 'text/event-stream',
218
- 'Cache-Control': 'no-cache',
219
- Connection: 'keep-alive',
220
- 'Access-Control-Allow-Origin': corsOrigins.has('*')
221
- ? '*'
222
- : Array.from(corsOrigins).join(', '),
223
- },
224
- });
89
+ return sseHandler.createResponse(queueFilter, getCorsOrigin());
225
90
  }
226
- // Prometheus metrics endpoint (auth optional via config)
91
+ // Prometheus metrics
227
92
  if (path === '/prometheus' && req.method === 'GET') {
228
93
  if (config.requireAuthForMetrics && authTokens.size > 0) {
229
- const authHeader = req.headers.get('Authorization');
230
- const token = authHeader?.replace('Bearer ', '') ?? '';
94
+ const token = req.headers.get('Authorization')?.replace('Bearer ', '') ?? '';
231
95
  if (!validateAuthToken(token, authTokens)) {
232
96
  return jsonResponse({ ok: false, error: 'Unauthorized' }, 401);
233
97
  }
234
98
  }
235
- const metrics = queueManager.getPrometheusMetrics();
236
- return new Response(metrics, {
99
+ return new Response(queueManager.getPrometheusMetrics(), {
237
100
  headers: { 'Content-Type': 'text/plain; version=0.0.4; charset=utf-8' },
238
101
  });
239
102
  }
240
- // Check authentication
103
+ // Check authentication for other endpoints
241
104
  if (authTokens.size > 0) {
242
- const authHeader = req.headers.get('Authorization');
243
- const token = authHeader?.replace('Bearer ', '') ?? '';
105
+ const token = req.headers.get('Authorization')?.replace('Bearer ', '') ?? '';
244
106
  if (!validateAuthToken(token, authTokens)) {
245
107
  return jsonResponse({ ok: false, error: 'Unauthorized' }, 401);
246
108
  }
247
109
  }
248
- // Create handler context
249
- const ctx = {
250
- queueManager,
251
- authTokens,
252
- authenticated: true,
253
- };
254
- // Route request
110
+ const ctx = { queueManager, authTokens, authenticated: true };
255
111
  try {
256
112
  return await routeRequest(req, path, ctx, corsOrigins);
257
113
  }
@@ -263,47 +119,24 @@ export function createHttpServer(queueManager, config) {
263
119
  // WebSocket handlers
264
120
  const websocket = {
265
121
  open(ws) {
266
- wsClients.set(ws.data.id, ws);
267
- wsLog.info('Client connected', { clientId: ws.data.id });
122
+ wsHandler.onOpen(ws);
268
123
  },
269
124
  async message(ws, message) {
270
- const text = typeof message === 'string' ? message : textDecoder.decode(message);
271
- const cmd = parseCommand(text);
272
- if (!cmd) {
273
- ws.send(errorResponse('Invalid command'));
274
- return;
275
- }
276
125
  const ctx = {
277
126
  queueManager,
278
127
  authTokens,
279
128
  authenticated: ws.data.authenticated,
280
129
  };
281
- try {
282
- const response = await handleCommand(cmd, ctx);
283
- // Update authentication state
284
- if (cmd.cmd === 'Auth' && response.ok) {
285
- ws.data.authenticated = true;
286
- }
287
- ws.send(serializeResponse(response));
288
- }
289
- catch (err) {
290
- const msg = err instanceof Error ? err.message : 'Unknown error';
291
- ws.send(errorResponse(msg, cmd.reqId));
292
- }
130
+ await wsHandler.onMessage(ws, message, ctx);
293
131
  },
294
132
  close(ws) {
295
- wsClients.delete(ws.data.id);
296
- wsLog.info('Client disconnected', { clientId: ws.data.id });
133
+ wsHandler.onClose(ws);
297
134
  },
298
135
  };
299
- // Create server - Unix socket or TCP based on config
136
+ // Create server
300
137
  let server;
301
138
  if (config.socketPath) {
302
- server = Bun.serve({
303
- unix: config.socketPath,
304
- fetch,
305
- websocket,
306
- });
139
+ server = Bun.serve({ unix: config.socketPath, fetch, websocket });
307
140
  httpLog.info('Server listening', { unix: config.socketPath });
308
141
  }
309
142
  else {
@@ -317,76 +150,29 @@ export function createHttpServer(queueManager, config) {
317
150
  }
318
151
  return {
319
152
  server,
320
- wsClients,
321
- sseClients,
322
- /** Get WebSocket client count */
323
- getWsClientCount() {
324
- return wsClients.size;
325
- },
326
- /** Get SSE client count */
327
- getSseClientCount() {
328
- return sseClients.size;
329
- },
330
- /** Stop the server */
153
+ wsClients: wsHandler.getClients(),
154
+ sseClients: sseHandler.getClients(),
155
+ getWsClientCount: () => wsHandler.size,
156
+ getSseClientCount: () => sseHandler.size,
331
157
  stop() {
332
- // Close all SSE connections
333
- for (const [, client] of sseClients) {
334
- try {
335
- client.controller.close();
336
- }
337
- catch {
338
- // Ignore
339
- }
340
- }
341
- sseClients.clear();
158
+ sseHandler.closeAll();
342
159
  void server.stop();
343
160
  httpLog.info('Server stopped');
344
161
  },
345
162
  };
346
163
  }
347
- /**
348
- * Route HTTP request to appropriate handler
349
- */
164
+ /** Route HTTP request to handler */
350
165
  async function routeRequest(req, path, ctx, corsOrigins) {
351
166
  const method = req.method;
352
167
  // Stats endpoint
353
168
  if (path === '/stats' && method === 'GET') {
354
- const stats = ctx.queueManager.getStats();
355
- const memStats = ctx.queueManager.getMemoryStats();
356
- const mem = process.memoryUsage();
357
- return jsonResponse({
358
- ok: true,
359
- stats: {
360
- ...stats,
361
- totalPushed: Number(stats.totalPushed),
362
- totalPulled: Number(stats.totalPulled),
363
- totalCompleted: Number(stats.totalCompleted),
364
- totalFailed: Number(stats.totalFailed),
365
- },
366
- memory: {
367
- heapUsed: Math.round(mem.heapUsed / 1024 / 1024),
368
- heapTotal: Math.round(mem.heapTotal / 1024 / 1024),
369
- rss: Math.round(mem.rss / 1024 / 1024),
370
- external: Math.round(mem.external / 1024 / 1024),
371
- arrayBuffers: Math.round(mem.arrayBuffers / 1024 / 1024),
372
- },
373
- collections: memStats,
374
- }, 200, corsOrigins);
169
+ return statsEndpoint(ctx.queueManager, corsOrigins);
375
170
  }
376
171
  // Metrics endpoint
377
172
  if (path === '/metrics' && method === 'GET') {
378
- const stats = ctx.queueManager.getStats();
379
- return jsonResponse({
380
- ok: true,
381
- metrics: {
382
- totalPushed: Number(stats.totalPushed),
383
- totalPulled: Number(stats.totalPulled),
384
- totalCompleted: Number(stats.totalCompleted),
385
- totalFailed: Number(stats.totalFailed),
386
- },
387
- }, 200, corsOrigins);
173
+ return metricsEndpoint(ctx.queueManager, corsOrigins);
388
174
  }
389
- // Queue operations: POST /queues/:queue/jobs
175
+ // Queue operations: POST/GET /queues/:queue/jobs
390
176
  const queueJobsMatch = path.match(/^\/queues\/([^/]+)\/jobs$/);
391
177
  if (queueJobsMatch) {
392
178
  const queue = decodeURIComponent(queueJobsMatch[1]);
@@ -403,7 +189,6 @@ async function routeRequest(req, path, ctx, corsOrigins) {
403
189
  return jsonResponse(response, response.ok ? 200 : 400, corsOrigins);
404
190
  }
405
191
  if (method === 'GET') {
406
- // Pull job
407
192
  const timeout = parseInt(new URL(req.url).searchParams.get('timeout') ?? '0');
408
193
  const cmd = { cmd: 'PULL', queue, timeout };
409
194
  const response = await handleCommand(cmd, ctx);
@@ -443,33 +228,6 @@ async function routeRequest(req, path, ctx, corsOrigins) {
443
228
  const response = await handleCommand(cmd, ctx);
444
229
  return jsonResponse(response, response.ok ? 200 : 400, corsOrigins);
445
230
  }
446
- // Not found
447
231
  return jsonResponse({ ok: false, error: 'Not found' }, 404, corsOrigins);
448
232
  }
449
- /** Create JSON response with CORS headers */
450
- function jsonResponse(data, status = 200, corsOrigins) {
451
- const headers = {
452
- 'Content-Type': 'application/json',
453
- };
454
- if (corsOrigins) {
455
- headers['Access-Control-Allow-Origin'] = corsOrigins.has('*')
456
- ? '*'
457
- : Array.from(corsOrigins).join(', ');
458
- }
459
- return new Response(JSON.stringify(data), { status, headers });
460
- }
461
- /** Create CORS preflight response */
462
- function corsResponse(corsOrigins) {
463
- return new Response(null, {
464
- status: 204,
465
- headers: {
466
- 'Access-Control-Allow-Origin': corsOrigins.has('*')
467
- ? '*'
468
- : Array.from(corsOrigins).join(', '),
469
- 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
470
- 'Access-Control-Allow-Headers': 'Content-Type, Authorization',
471
- 'Access-Control-Max-Age': '86400',
472
- },
473
- });
474
- }
475
233
  //# 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,19 @@
1
+ /**
2
+ * HTTP Endpoints - Health, diagnostics, and stats endpoints
3
+ */
4
+ import type { QueueManager } from '../../application/queueManager';
5
+ /** JSON response helper */
6
+ export declare function jsonResponse(data: unknown, status?: number, corsOrigins?: Set<string>): Response;
7
+ /** CORS preflight response */
8
+ export declare function corsResponse(corsOrigins: Set<string>): Response;
9
+ /** Health check endpoint */
10
+ export declare function healthEndpoint(queueManager: QueueManager, wsCount: number, sseCount: number): Response;
11
+ /** GC endpoint - force garbage collection */
12
+ export declare function gcEndpoint(queueManager: QueueManager): Response;
13
+ /** Heap stats endpoint - for debugging memory leaks */
14
+ export declare function heapStatsEndpoint(queueManager: QueueManager): Promise<Response>;
15
+ /** Stats endpoint */
16
+ export declare function statsEndpoint(queueManager: QueueManager, corsOrigins?: Set<string>): Response;
17
+ /** Metrics endpoint */
18
+ export declare function metricsEndpoint(queueManager: QueueManager, corsOrigins?: Set<string>): Response;
19
+ //# sourceMappingURL=httpEndpoints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpEndpoints.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/server/httpEndpoints.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAGnE,2BAA2B;AAC3B,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,SAAM,EAAE,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,QAAQ,CAY7F;AAED,8BAA8B;AAC9B,wBAAgB,YAAY,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,QAAQ,CAY/D;AAED,4BAA4B;AAC5B,wBAAgB,cAAc,CAC5B,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,QAAQ,CA4BV;AAED,6CAA6C;AAC7C,wBAAgB,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,QAAQ,CAqB/D;AAED,uDAAuD;AACvD,wBAAsB,iBAAiB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAiCrF;AAED,qBAAqB;AACrB,wBAAgB,aAAa,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,QAAQ,CA2B7F;AAED,uBAAuB;AACvB,wBAAgB,eAAe,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,QAAQ,CAgB/F"}