redis-smq-web-server 9.0.0-next.0 → 9.0.0-next.10

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 (75) hide show
  1. package/CHANGELOG.md +82 -0
  2. package/README.md +99 -69
  3. package/dist/cjs/bin/cli.d.ts +1 -0
  4. package/dist/cjs/bin/cli.js +42 -7
  5. package/dist/cjs/bin/cli.js.map +1 -1
  6. package/dist/cjs/src/config/parse-config.d.ts.map +1 -1
  7. package/dist/cjs/src/config/parse-config.js +16 -29
  8. package/dist/cjs/src/config/parse-config.js.map +1 -1
  9. package/dist/cjs/src/config/types/index.d.ts +16 -5
  10. package/dist/cjs/src/config/types/index.d.ts.map +1 -1
  11. package/dist/cjs/src/index.d.ts +4 -1
  12. package/dist/cjs/src/index.d.ts.map +1 -1
  13. package/dist/cjs/src/index.js +54 -25
  14. package/dist/cjs/src/index.js.map +1 -1
  15. package/dist/cjs/tests/common/config.d.ts +3 -0
  16. package/dist/cjs/tests/common/config.d.ts.map +1 -0
  17. package/dist/cjs/tests/common/config.js +24 -0
  18. package/dist/cjs/tests/common/config.js.map +1 -0
  19. package/dist/cjs/tests/common/redis-client.d.ts +94 -0
  20. package/dist/cjs/tests/common/redis-client.d.ts.map +1 -0
  21. package/dist/cjs/tests/common/redis-client.js +40 -0
  22. package/dist/cjs/tests/common/redis-client.js.map +1 -0
  23. package/dist/cjs/tests/common/start-redis-server.d.ts +3 -0
  24. package/dist/cjs/tests/common/start-redis-server.d.ts.map +1 -0
  25. package/dist/cjs/tests/common/start-redis-server.js +37 -0
  26. package/dist/cjs/tests/common/start-redis-server.js.map +1 -0
  27. package/dist/cjs/tests/common/start-web-server.d.ts +3 -0
  28. package/dist/cjs/tests/common/start-web-server.d.ts.map +1 -0
  29. package/dist/cjs/tests/common/start-web-server.js +33 -0
  30. package/dist/cjs/tests/common/start-web-server.js.map +1 -0
  31. package/dist/cjs/tests/setup.d.ts +2 -0
  32. package/dist/cjs/tests/setup.d.ts.map +1 -0
  33. package/dist/cjs/tests/setup.js +27 -0
  34. package/dist/cjs/tests/setup.js.map +1 -0
  35. package/dist/cjs/tests/tests/test00001.test.d.ts +2 -0
  36. package/dist/cjs/tests/tests/test00001.test.d.ts.map +1 -0
  37. package/dist/cjs/tests/tests/test00001.test.js +118 -0
  38. package/dist/cjs/tests/tests/test00001.test.js.map +1 -0
  39. package/dist/esm/bin/cli.d.ts +1 -0
  40. package/dist/esm/bin/cli.js +41 -7
  41. package/dist/esm/bin/cli.js.map +1 -1
  42. package/dist/esm/src/config/parse-config.d.ts.map +1 -1
  43. package/dist/esm/src/config/parse-config.js +18 -28
  44. package/dist/esm/src/config/parse-config.js.map +1 -1
  45. package/dist/esm/src/config/types/index.d.ts +16 -5
  46. package/dist/esm/src/config/types/index.d.ts.map +1 -1
  47. package/dist/esm/src/index.d.ts +4 -1
  48. package/dist/esm/src/index.d.ts.map +1 -1
  49. package/dist/esm/src/index.js +55 -25
  50. package/dist/esm/src/index.js.map +1 -1
  51. package/dist/esm/tests/common/config.d.ts +3 -0
  52. package/dist/esm/tests/common/config.d.ts.map +1 -0
  53. package/dist/esm/tests/common/config.js +21 -0
  54. package/dist/esm/tests/common/config.js.map +1 -0
  55. package/dist/esm/tests/common/redis-client.d.ts +94 -0
  56. package/dist/esm/tests/common/redis-client.d.ts.map +1 -0
  57. package/dist/esm/tests/common/redis-client.js +20 -0
  58. package/dist/esm/tests/common/redis-client.js.map +1 -0
  59. package/dist/esm/tests/common/start-redis-server.d.ts +3 -0
  60. package/dist/esm/tests/common/start-redis-server.d.ts.map +1 -0
  61. package/dist/esm/tests/common/start-redis-server.js +22 -0
  62. package/dist/esm/tests/common/start-redis-server.js.map +1 -0
  63. package/dist/esm/tests/common/start-web-server.d.ts +3 -0
  64. package/dist/esm/tests/common/start-web-server.d.ts.map +1 -0
  65. package/dist/esm/tests/common/start-web-server.js +16 -0
  66. package/dist/esm/tests/common/start-web-server.js.map +1 -0
  67. package/dist/esm/tests/setup.d.ts +2 -0
  68. package/dist/esm/tests/setup.d.ts.map +1 -0
  69. package/dist/esm/tests/setup.js +16 -0
  70. package/dist/esm/tests/setup.js.map +1 -0
  71. package/dist/esm/tests/tests/test00001.test.d.ts +2 -0
  72. package/dist/esm/tests/tests/test00001.test.d.ts.map +1 -0
  73. package/dist/esm/tests/tests/test00001.test.js +103 -0
  74. package/dist/esm/tests/tests/test00001.test.js.map +1 -0
  75. package/package.json +19 -8
@@ -0,0 +1,16 @@
1
+ import { afterAll, afterEach, beforeAll, beforeEach } from 'vitest';
2
+ import { initializeRedis, shutDownRedisServer, } from './common/start-redis-server.js';
3
+ import { getRedisClientInstance, shutdownRedisClient, } from './common/redis-client.js';
4
+ beforeAll(async () => {
5
+ await initializeRedis();
6
+ });
7
+ afterAll(async () => {
8
+ await shutdownRedisClient();
9
+ await shutDownRedisServer();
10
+ });
11
+ beforeEach(async () => {
12
+ const redis = await getRedisClientInstance();
13
+ await redis.flushallAsync();
14
+ });
15
+ afterEach(async () => void 0);
16
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../tests/setup.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpE,OAAO,EACL,eAAe,EACf,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAElC,SAAS,CAAC,KAAK,IAAI,EAAE;IACnB,MAAM,eAAe,EAAE,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;IAClB,MAAM,mBAAmB,EAAE,CAAC;IAC5B,MAAM,mBAAmB,EAAE,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH,UAAU,CAAC,KAAK,IAAI,EAAE;IACpB,MAAM,KAAK,GAAG,MAAM,sBAAsB,EAAE,CAAC;IAC7C,MAAM,KAAK,CAAC,aAAa,EAAE,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=test00001.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test00001.test.d.ts","sourceRoot":"","sources":["../../../../tests/tests/test00001.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,103 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import request from 'supertest';
3
+ import { config } from '../common/config.js';
4
+ import { shutdownWebServer, startWebServer, } from '../common/start-web-server.js';
5
+ describe('RedisSMQWebServer E2E Tests', () => {
6
+ const serverUrl = `http://localhost:${config.webServer?.port}`;
7
+ it('should serve index.html for root path', async () => {
8
+ await startWebServer();
9
+ const response = await request(serverUrl)
10
+ .get('/')
11
+ .expect(200)
12
+ .expect('Content-Type', /text\/html/);
13
+ expect(response.text).toContain('<!doctype html>');
14
+ });
15
+ it('should inject web UI config into index.html', async () => {
16
+ await startWebServer();
17
+ const response = await request(serverUrl).get('/').expect(200);
18
+ expect(response.text).toContain('window.configs');
19
+ expect(response.text).toContain('"BASE_PATH":"/"');
20
+ expect(response.text).toContain('"API_URL":"/"');
21
+ });
22
+ it('should set cache headers for asset files', async () => {
23
+ await startWebServer();
24
+ const response = await request(serverUrl).get('/index.html').expect(200);
25
+ expect(response.headers['cache-control']).toContain('no-cache');
26
+ const match = response.text.match(/<script[^>]+src=["']([^"']+)["']/i);
27
+ expect(match, 'index.html should include at least one script tag with src').toBeTruthy();
28
+ const scriptSrc = match?.[1] || '';
29
+ expect(scriptSrc.length).toBeGreaterThan(0);
30
+ const assetPath = scriptSrc.startsWith('http')
31
+ ? scriptSrc.replace(serverUrl, '')
32
+ : scriptSrc;
33
+ const assetRes = await request(serverUrl).get(assetPath).expect(200);
34
+ expect(assetRes.headers['cache-control']).toBeDefined();
35
+ });
36
+ it('should return 404 for non-existent static files', async () => {
37
+ await startWebServer();
38
+ await request(serverUrl)
39
+ .get('/assets/non-existent-file-12345.js')
40
+ .expect(404);
41
+ });
42
+ it('should set ETag header for static files', async () => {
43
+ await startWebServer();
44
+ const response = await request(serverUrl).get('/').expect(200);
45
+ expect(response.headers['etag']).toBeDefined();
46
+ });
47
+ it('should route /api requests to embedded REST API', async () => {
48
+ await startWebServer();
49
+ await request(serverUrl)
50
+ .get('/api/v1/queues')
51
+ .expect(200)
52
+ .expect('Content-Type', /application\/json/);
53
+ });
54
+ it('should serve index.html for non-API routes', async () => {
55
+ await startWebServer();
56
+ const response = await request(serverUrl)
57
+ .get('/queues/my-queue/messages/123/details')
58
+ .expect(200)
59
+ .expect('Content-Type', /text\/html/);
60
+ expect(response.text).toContain('<!doctype html>');
61
+ });
62
+ it('should not serve index.html for /api routes', async () => {
63
+ await startWebServer();
64
+ const response = await request(serverUrl).get('/api/v1/queues');
65
+ expect(response.headers['content-type']).not.toContain('text/html');
66
+ });
67
+ it('should not serve index.html for /docs routes', async () => {
68
+ await startWebServer();
69
+ const response = await request(serverUrl).get('/docs');
70
+ expect(response.text).toContain('Swagger UI');
71
+ });
72
+ it('should include rate limit headers', async () => {
73
+ await startWebServer();
74
+ const response = await request(serverUrl).get('/');
75
+ expect(response.headers['x-ratelimit-limit']).toBeDefined();
76
+ expect(response.headers['x-ratelimit-remaining']).toBeDefined();
77
+ });
78
+ it('should handle concurrent requests', async () => {
79
+ await startWebServer();
80
+ const requests = Array(50)
81
+ .fill(null)
82
+ .map(() => request(serverUrl).get('/'));
83
+ const responses = await Promise.all(requests);
84
+ const successfulResponses = responses.filter((r) => r.status === 200);
85
+ expect(successfulResponses.length).toBe(50);
86
+ });
87
+ it('should shutdown gracefully', async () => {
88
+ await startWebServer();
89
+ await new Promise((resolve) => setTimeout(resolve, 500));
90
+ let response = await request(serverUrl).get('/');
91
+ expect(response.status).toBe(200);
92
+ await shutdownWebServer();
93
+ await new Promise((resolve) => setTimeout(resolve, 500));
94
+ try {
95
+ response = await request(serverUrl).get('/');
96
+ expect(response.status).not.toBe(200);
97
+ }
98
+ catch (err) {
99
+ expect(err).toBeDefined();
100
+ }
101
+ });
102
+ });
103
+ //# sourceMappingURL=test00001.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test00001.test.js","sourceRoot":"","sources":["../../../../tests/tests/test00001.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "redis-smq-web-server",
3
- "version": "9.0.0-next.0",
3
+ "version": "9.0.0-next.10",
4
4
  "description": "Web server for RedisSMQ Web UI: serves the SPA and hosts or proxies the RedisSMQ REST API.",
5
5
  "author": "Weyoss <weyoss@protonmail.com>",
6
6
  "license": "MIT",
@@ -35,18 +35,29 @@
35
35
  "redis-smq-web-server": "./dist/esm/bin/cli.js"
36
36
  },
37
37
  "dependencies": {
38
- "commander": "13.1.0",
38
+ "commander": "14.0.1",
39
39
  "express": "4.21.2",
40
- "http-proxy-middleware": "3.0.5",
41
- "ioredis": "5.5.0"
40
+ "express-rate-limit": "8.1.0",
41
+ "http-proxy-middleware": "3.0.5"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@types/express": "4.17.23"
45
45
  },
46
46
  "peerDependencies": {
47
- "redis-smq-common": "^9.0.0-next.0",
48
- "redis-smq-rest-api": "^9.0.0-next.0",
49
- "redis-smq-web-ui": "^9.0.0-next.0"
47
+ "@redis/client": "^5",
48
+ "ioredis": "^5",
49
+ "redis-smq": "^9.0.0-next.10",
50
+ "redis-smq-common": "^9.0.0-next.10",
51
+ "redis-smq-rest-api": "^9.0.0-next.10",
52
+ "redis-smq-web-ui": "^9.0.0-next.10"
53
+ },
54
+ "peerDependenciesMeta": {
55
+ "@redis/client": {
56
+ "optional": true
57
+ },
58
+ "ioredis": {
59
+ "optional": true
60
+ }
50
61
  },
51
62
  "engineStrict": true,
52
63
  "engines": {
@@ -55,6 +66,6 @@
55
66
  "scripts": {
56
67
  "build": "scripts/build.sh",
57
68
  "dev": "tsc -w & node --watch dist/index.js",
58
- "test": "vitest run --passWithNoTests"
69
+ "test": "../../scripts/test_workspace_esm.sh"
59
70
  }
60
71
  }