queen-mq 0.1.4 → 0.1.6

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 (122) hide show
  1. package/package.json +11 -1
  2. package/src/server.js +176 -0
  3. package/src/webapp-dist/assets/Analytics-DJrE4Rz2.css +1 -0
  4. package/src/webapp-dist/assets/Analytics-HEMXKmfJ.js +1 -0
  5. package/src/webapp-dist/assets/ConfirmDialog-YEoCdE7x.js +1 -0
  6. package/src/webapp-dist/assets/ConsumerGroups-CC5VJywp.css +1 -0
  7. package/src/webapp-dist/assets/ConsumerGroups-D8Z20HhZ.js +1 -0
  8. package/src/webapp-dist/assets/Dashboard-BRFOz6it.css +1 -0
  9. package/src/webapp-dist/assets/Dashboard-Bpx9I32h.js +1 -0
  10. package/src/webapp-dist/assets/LoadingSpinner-BPttXcbs.js +1 -0
  11. package/src/webapp-dist/assets/Messages-BOfVHKma.css +1 -0
  12. package/src/webapp-dist/assets/Messages-EKURCbLl.js +1 -0
  13. package/src/webapp-dist/assets/QueueDetail-BXXA7xoZ.css +1 -0
  14. package/src/webapp-dist/assets/QueueDetail-Bmxg0KiA.js +1 -0
  15. package/src/webapp-dist/assets/Queues-CvrJkrZT.css +1 -0
  16. package/src/webapp-dist/assets/Queues-yUx9_3-9.js +1 -0
  17. package/src/webapp-dist/assets/StatusBadge-C1bBtXHh.css +1 -0
  18. package/src/webapp-dist/assets/StatusBadge-C6N84XmO.js +1 -0
  19. package/src/webapp-dist/assets/analytics-BapTekLM.js +1 -0
  20. package/src/webapp-dist/assets/colors-5z6Q_kUr.js +18 -0
  21. package/src/webapp-dist/assets/index-B7w2bKT6.css +1 -0
  22. package/src/webapp-dist/assets/index-CUSnwYTH.js +31 -0
  23. package/src/webapp-dist/assets/messages-CRV6E-xU.js +1 -0
  24. package/src/webapp-dist/assets/queues-BdUbxfBC.js +1 -0
  25. package/src/webapp-dist/assets/resources-Bs9U-ceF.js +1 -0
  26. package/{webapp → src/webapp-dist}/index.html +2 -1
  27. package/API.md +0 -1226
  28. package/AUTH.md +0 -2044
  29. package/PROGRAMMATIC_SERVER.md +0 -190
  30. package/WEBAPP.md +0 -1889
  31. package/assets/dashboard-01.png +0 -0
  32. package/assets/dashboard.png +0 -0
  33. package/examples/batch-processing.js +0 -58
  34. package/examples/bus-mode.js +0 -239
  35. package/examples/continuous-consumer-optimized.js +0 -215
  36. package/examples/continuous-consumer.js +0 -159
  37. package/examples/continuous-producer.js +0 -343
  38. package/examples/mixed-mode.js +0 -277
  39. package/examples/multi-server-test.js +0 -305
  40. package/examples/programmatic-server.js +0 -58
  41. package/examples/single.js +0 -64
  42. package/examples/smartchat-dealyed.js +0 -42
  43. package/examples/smartchat.js +0 -52
  44. package/examples/test-cache-invalidation.js +0 -119
  45. package/examples/test-cache-multi-server.js +0 -245
  46. package/examples/test-complete-client.js +0 -260
  47. package/examples/test-connection-recovery.js +0 -66
  48. package/examples/test-dashboard-api.js +0 -200
  49. package/examples/test-minimal-client.js +0 -112
  50. package/examples/test-queue-creation-policy.js +0 -137
  51. package/examples/test-traceid.js +0 -147
  52. package/server.log +0 -1
  53. package/test-keepalive-v2.sh +0 -22
  54. package/webapp/COLOR_GUIDE.md +0 -118
  55. package/webapp/README.md +0 -143
  56. package/webapp/package-lock.json +0 -3184
  57. package/webapp/package.json +0 -25
  58. package/webapp/postcss.config.js +0 -7
  59. package/webapp/public/assets/queen-logo-blue.svg +0 -210
  60. package/webapp/public/assets/queen-logo-cyan.svg +0 -210
  61. package/webapp/public/assets/queen-logo-indigo.svg +0 -210
  62. package/webapp/public/assets/queen-logo-orange.svg +0 -210
  63. package/webapp/public/assets/queen-logo-pink.svg +0 -210
  64. package/webapp/public/assets/queen-logo-purple.svg +0 -210
  65. package/webapp/public/assets/queen-logo-rose.svg +0 -239
  66. package/webapp/public/assets/queen-logo.svg +0 -263
  67. package/webapp/src/App.vue +0 -19
  68. package/webapp/src/api/analytics.js +0 -10
  69. package/webapp/src/api/client.js +0 -29
  70. package/webapp/src/api/consumers.js +0 -52
  71. package/webapp/src/api/health.js +0 -7
  72. package/webapp/src/api/messages.js +0 -26
  73. package/webapp/src/api/queues.js +0 -14
  74. package/webapp/src/api/resources.js +0 -8
  75. package/webapp/src/assets/styles/main.css +0 -357
  76. package/webapp/src/components/analytics/AnalyticsFilters.vue +0 -87
  77. package/webapp/src/components/analytics/AnalyticsMetrics.vue +0 -57
  78. package/webapp/src/components/analytics/MessageDistributionChart.vue +0 -111
  79. package/webapp/src/components/analytics/MessageFlowChart.vue +0 -173
  80. package/webapp/src/components/analytics/TimeRangeSelector.vue +0 -27
  81. package/webapp/src/components/analytics/TopQueuesChart.vue +0 -132
  82. package/webapp/src/components/common/ConfirmDialog.vue +0 -56
  83. package/webapp/src/components/common/LoadingSpinner.vue +0 -6
  84. package/webapp/src/components/common/MetricCard.vue +0 -43
  85. package/webapp/src/components/common/StatusBadge.vue +0 -45
  86. package/webapp/src/components/dashboard/MessageStatusCard.vue +0 -50
  87. package/webapp/src/components/dashboard/PerformanceCard.vue +0 -38
  88. package/webapp/src/components/dashboard/ThroughputChart.vue +0 -182
  89. package/webapp/src/components/dashboard/TopQueuesTable.vue +0 -53
  90. package/webapp/src/components/layout/AppLayout.vue +0 -110
  91. package/webapp/src/components/layout/AppSidebar.vue +0 -304
  92. package/webapp/src/components/messages/MessageDetailPanel.vue +0 -242
  93. package/webapp/src/components/messages/MessageFilters.vue +0 -101
  94. package/webapp/src/components/queue-detail/PartitionList.vue +0 -79
  95. package/webapp/src/components/queue-detail/PushMessageModal.vue +0 -175
  96. package/webapp/src/components/queue-detail/QueueConfig.vue +0 -63
  97. package/webapp/src/components/queue-detail/QueueDetailHeader.vue +0 -53
  98. package/webapp/src/components/queue-detail/RecentMessages.vue +0 -76
  99. package/webapp/src/components/queues/CreateQueueModal.vue +0 -193
  100. package/webapp/src/components/queues/QueueFilters.vue +0 -90
  101. package/webapp/src/composables/useApi.js +0 -34
  102. package/webapp/src/composables/useTheme.js +0 -36
  103. package/webapp/src/main.js +0 -11
  104. package/webapp/src/router/index.js +0 -42
  105. package/webapp/src/utils/colors.js +0 -96
  106. package/webapp/src/utils/formatters.js +0 -49
  107. package/webapp/src/views/Analytics.vue +0 -377
  108. package/webapp/src/views/ConsumerGroups.vue +0 -433
  109. package/webapp/src/views/Dashboard.vue +0 -418
  110. package/webapp/src/views/Messages.vue +0 -363
  111. package/webapp/src/views/QueueDetail.vue +0 -582
  112. package/webapp/src/views/Queues.vue +0 -496
  113. package/webapp/tailwind.config.js +0 -25
  114. package/webapp/vite.config.js +0 -10
  115. /package/{assets → src/webapp-dist/assets}/queen-logo-blue.svg +0 -0
  116. /package/{assets → src/webapp-dist/assets}/queen-logo-cyan.svg +0 -0
  117. /package/{assets → src/webapp-dist/assets}/queen-logo-indigo.svg +0 -0
  118. /package/{assets → src/webapp-dist/assets}/queen-logo-orange.svg +0 -0
  119. /package/{assets → src/webapp-dist/assets}/queen-logo-pink.svg +0 -0
  120. /package/{assets → src/webapp-dist/assets}/queen-logo-purple.svg +0 -0
  121. /package/{assets → src/webapp-dist/assets}/queen-logo-rose.svg +0 -0
  122. /package/{assets → src/webapp-dist/assets}/queen-logo.svg +0 -0
@@ -1,190 +0,0 @@
1
- # Queen MQ - Programmatic Server API
2
-
3
- As of version 0.1.2, Queen MQ can be run programmatically from your Node.js code, in addition to running it as a standalone process.
4
-
5
- ## Installation
6
-
7
- ```bash
8
- npm install queen-mq
9
- ```
10
-
11
- ## Basic Usage
12
-
13
- ### Starting the Server Programmatically
14
-
15
- ```javascript
16
- import { QueenServer } from 'queen-mq';
17
-
18
- // Start server with default configuration
19
- const server = await QueenServer();
20
-
21
- // Or with custom options
22
- const server = await QueenServer({
23
- port: 3000,
24
- host: '127.0.0.1',
25
- workerId: 'worker-1'
26
- });
27
-
28
- console.log(`Server running at http://${server.host}:${server.port}`);
29
- ```
30
-
31
- ### Using Client and Server Together
32
-
33
- ```javascript
34
- import { QueenServer, Queen } from 'queen-mq';
35
-
36
- // Start the server
37
- const server = await QueenServer({ port: 3000 });
38
-
39
- // Create a client
40
- const client = new Queen({
41
- servers: [`http://localhost:${server.port}`]
42
- });
43
-
44
- // Use the queue
45
- await client.push({
46
- queue: 'my-queue',
47
- items: [{ data: { message: 'Hello World' } }]
48
- });
49
-
50
- const result = await client.pop({ queue: 'my-queue' });
51
- console.log(result.messages);
52
- ```
53
-
54
- ### Graceful Shutdown
55
-
56
- ```javascript
57
- const server = await QueenServer();
58
-
59
- // Shutdown programmatically
60
- await server.shutdown('SIGTERM');
61
-
62
- // Or handle process signals
63
- process.on('SIGINT', async () => {
64
- await server.shutdown('SIGINT');
65
- });
66
- ```
67
-
68
- ## Server Options
69
-
70
- The `QueenServer()` function accepts an options object:
71
-
72
- ```javascript
73
- {
74
- port: number, // Server port (default: from config, typically 3000)
75
- host: string, // Server host (default: from config, typically '127.0.0.1')
76
- workerId: string // Worker ID for clustering (default: from config)
77
- }
78
- ```
79
-
80
- ## Return Value
81
-
82
- The `QueenServer()` function returns a promise that resolves to a server instance with:
83
-
84
- ```javascript
85
- {
86
- port: number, // The port the server is listening on
87
- host: string, // The host the server is bound to
88
- shutdown: Function, // Async function to gracefully shutdown the server
89
- app: Object // The underlying uWebSockets.js app instance
90
- }
91
- ```
92
-
93
- ## Use Cases
94
-
95
- ### 1. Embedded Message Queue
96
-
97
- Run Queen MQ embedded in your application instead of as a separate service:
98
-
99
- ```javascript
100
- import { QueenServer, Queen } from 'queen-mq';
101
- import express from 'express';
102
-
103
- // Start Queen server
104
- await QueenServer({ port: 3001 });
105
-
106
- // Start your application server
107
- const app = express();
108
- const client = new Queen({ servers: ['http://localhost:3001'] });
109
-
110
- app.post('/api/task', async (req, res) => {
111
- await client.push({
112
- queue: 'tasks',
113
- items: [{ data: req.body }]
114
- });
115
- res.json({ status: 'queued' });
116
- });
117
-
118
- app.listen(3000);
119
- ```
120
-
121
- ### 2. Testing
122
-
123
- Easily spin up and tear down Queen servers in tests:
124
-
125
- ```javascript
126
- import { QueenServer, Queen } from 'queen-mq';
127
- import { describe, it, beforeAll, afterAll } from 'jest';
128
-
129
- describe('Queue Tests', () => {
130
- let server, client;
131
-
132
- beforeAll(async () => {
133
- server = await QueenServer({ port: 4000 });
134
- client = new Queen({ servers: ['http://localhost:4000'] });
135
- });
136
-
137
- afterAll(async () => {
138
- await server.shutdown('TEST');
139
- });
140
-
141
- it('should process messages', async () => {
142
- await client.push({
143
- queue: 'test-queue',
144
- items: [{ data: { test: true } }]
145
- });
146
-
147
- const result = await client.pop({ queue: 'test-queue' });
148
- expect(result.messages).toHaveLength(1);
149
- });
150
- });
151
- ```
152
-
153
- ### 3. Multiple Servers
154
-
155
- Run multiple Queen instances in the same process:
156
-
157
- ```javascript
158
- import { QueenServer } from 'queen-mq';
159
-
160
- // Start multiple servers for different purposes
161
- const server1 = await QueenServer({ port: 3001, workerId: 'worker-1' });
162
- const server2 = await QueenServer({ port: 3002, workerId: 'worker-2' });
163
-
164
- console.log('Multi-server setup running');
165
- ```
166
-
167
- ## Traditional Usage
168
-
169
- You can still run Queen as a standalone server:
170
-
171
- ```bash
172
- npm start
173
- # or
174
- node src/server.js
175
- ```
176
-
177
- When `src/server.js` is run directly (not imported), it automatically starts the server with configuration from `src/config.js`.
178
-
179
- ## Requirements
180
-
181
- - Node.js ≥ 22.0.0
182
- - PostgreSQL database (configured via environment variables or config.js)
183
- - Database must be initialized first (run `npm run init`)
184
-
185
- ## See Also
186
-
187
- - [Main README](./README.md) - General Queen MQ documentation
188
- - [API Documentation](./API.md) - HTTP API reference
189
- - [Examples](./examples/) - More usage examples
190
-