redis-smq-rest-api 9.0.0-next.12 → 9.0.0-next.14
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.
- package/CHANGELOG.md +16 -0
- package/README.md +3 -3
- package/dist/cjs/src/index.d.ts +0 -1
- package/dist/cjs/src/index.d.ts.map +1 -1
- package/dist/cjs/src/index.js +32 -36
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/esm/src/index.d.ts +0 -1
- package/dist/esm/src/index.d.ts.map +1 -1
- package/dist/esm/src/index.js +31 -35
- package/dist/esm/src/index.js.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,22 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [9.0.0-next.14](https://github.com/weyoss/redis-smq/compare/v9.0.0-next.13...v9.0.0-next.14) (2025-10-28)
|
|
7
|
+
|
|
8
|
+
### ⚠ BREAKING CHANGES
|
|
9
|
+
|
|
10
|
+
- **redis-smq-rest-api:** reorganize Swagger UI routing
|
|
11
|
+
|
|
12
|
+
### ♻️ Code Refactoring
|
|
13
|
+
|
|
14
|
+
- **redis-smq-rest-api:** reorganize Swagger UI routing ([e36f455](https://github.com/weyoss/redis-smq/commit/e36f455134b994ec8278654443d2e8e6d0d5d3c6))
|
|
15
|
+
|
|
16
|
+
## [9.0.0-next.13](https://github.com/weyoss/redis-smq/compare/v9.0.0-next.12...v9.0.0-next.13) (2025-10-28)
|
|
17
|
+
|
|
18
|
+
### 🚀 Chore
|
|
19
|
+
|
|
20
|
+
- **redis-smq-rest-api:** fix security vulnerabilities by upgrading koa to v3.1.1 ([35c7534](https://github.com/weyoss/redis-smq/commit/35c75343da3f04a6512916a563633088f6b82b9f))
|
|
21
|
+
|
|
6
22
|
## [9.0.0-next.12](https://github.com/weyoss/redis-smq/compare/v9.0.0-next.11...v9.0.0-next.12) (2025-10-27)
|
|
7
23
|
|
|
8
24
|
### 📝 Documentation
|
package/README.md
CHANGED
|
@@ -73,7 +73,7 @@ import { ERedisConfigClient, EConsoleLoggerLevel } from 'redis-smq-common';
|
|
|
73
73
|
const config = {
|
|
74
74
|
apiServer: {
|
|
75
75
|
port: 7210,
|
|
76
|
-
basePath: '/', // API at '/', Swagger at '/
|
|
76
|
+
basePath: '/', // API at '/api', Swagger at '/swagger'
|
|
77
77
|
},
|
|
78
78
|
redis: {
|
|
79
79
|
client: ERedisConfigClient.IOREDIS,
|
|
@@ -181,7 +181,7 @@ npx redis-smq-rest-api --port 8000 --redis-host 10.0.0.5 --redis-port 6380
|
|
|
181
181
|
Access the interactive API documentation at:
|
|
182
182
|
|
|
183
183
|
```text
|
|
184
|
-
http://<HOSTNAME>:<PORT>/
|
|
184
|
+
http://<HOSTNAME>:<PORT>/swagger
|
|
185
185
|
```
|
|
186
186
|
|
|
187
187
|
### OpenAPI Specification
|
|
@@ -189,7 +189,7 @@ http://<HOSTNAME>:<PORT>/docs
|
|
|
189
189
|
Download the OpenAPI specification at:
|
|
190
190
|
|
|
191
191
|
```text
|
|
192
|
-
http://<HOSTNAME>:<PORT>/assets/openapi-specs.json
|
|
192
|
+
http://<HOSTNAME>:<PORT>/swagger/assets/openapi-specs.json
|
|
193
193
|
```
|
|
194
194
|
|
|
195
195
|
## Available Endpoints
|
package/dist/cjs/src/index.d.ts
CHANGED
|
@@ -13,7 +13,6 @@ export declare class RedisSMQRestApi {
|
|
|
13
13
|
constructor(config?: IRedisSMQRestApiConfig, runHttpServer?: boolean);
|
|
14
14
|
protected initApplicationMiddlewares(): Promise<void>;
|
|
15
15
|
protected initOpenApi(): Promise<void>;
|
|
16
|
-
protected logOpenApiUrls(): void;
|
|
17
16
|
protected initRouting(): Promise<void>;
|
|
18
17
|
protected bootstrap(): Promise<void>;
|
|
19
18
|
run(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,GAAG,MAAM,KAAK,CAAC;AAKtB,OAAO,EAAgB,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAIzD,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAE7B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC5B,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,GAAG,MAAM,KAAK,CAAC;AAKtB,OAAO,EAAgB,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAIzD,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAE7B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC5B,MAAM,kCAAkC,CAAC;AAa1C,qBAAa,eAAe;IAC1B,SAAS,CAAC,GAAG,EAAE,GAAG,CAChB,2BAA2B,EAC3B,6BAA6B,CAC9B,CAAC;IACF,SAAS,CAAC,MAAM,EAAE,4BAA4B,CAAC;IAC/C,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC;IACjC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;IAClC,SAAS,CAAC,YAAY,UAAS;gBAEnB,MAAM,GAAE,sBAA2B,EAAE,aAAa,UAAO;cAgBrD,0BAA0B;cAmB1B,WAAW;cAyCX,WAAW;cAOX,SAAS;IAWnB,GAAG;IAkBH,cAAc;IAKd,QAAQ;CAQf"}
|
package/dist/cjs/src/index.js
CHANGED
|
@@ -86,35 +86,29 @@ class RedisSMQRestApi {
|
|
|
86
86
|
}
|
|
87
87
|
initOpenApi() {
|
|
88
88
|
return __awaiter(this, void 0, void 0, function* () {
|
|
89
|
-
this.
|
|
90
|
-
const
|
|
89
|
+
const { basePath } = this.config.apiServer;
|
|
90
|
+
const openApiFilename = constants_js_1.constants.openApiDocumentFilename;
|
|
91
|
+
this.logger.info('Initializing OpenAPI...');
|
|
92
|
+
const spec = yield (0, builder_js_1.generateOpenApiDocument)(routing_js_1.routing, basePath);
|
|
91
93
|
const tmpDir = yield tmpAsync.dirAsync();
|
|
92
94
|
yield (0, builder_js_1.saveOpenApiDocument)(spec, tmpDir);
|
|
93
|
-
const { basePath } = this.config.apiServer;
|
|
94
|
-
this.app.use((0, koa_mount_1.default)((0, path_1.join)(basePath, '/assets'), (0, koa_static_1.default)(tmpDir)));
|
|
95
95
|
const uiAssetsFsPath = (0, swagger_ui_dist_1.getAbsoluteFSPath)();
|
|
96
|
-
this.app.use((0, koa_mount_1.default)((0, path_1.join)(basePath, '/
|
|
97
|
-
|
|
98
|
-
const
|
|
99
|
-
const
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
ctx.
|
|
103
|
-
|
|
96
|
+
this.app.use((0, koa_mount_1.default)((0, path_1.join)(basePath, '/swagger/ui'), (0, koa_static_1.default)(uiAssetsFsPath)));
|
|
97
|
+
this.app.use((0, koa_mount_1.default)((0, path_1.join)(basePath, '/swagger/assets'), (0, koa_static_1.default)(tmpDir)));
|
|
98
|
+
const specUrl = (0, path_1.join)(basePath, '/swagger/assets', openApiFilename);
|
|
99
|
+
const uiAssetsUrl = (0, path_1.join)(basePath, '/swagger/ui');
|
|
100
|
+
const html = (0, swagger_ui_js_1.buildSwaggerUiHtml)(specUrl, uiAssetsUrl);
|
|
101
|
+
this.app.use((0, koa_mount_1.default)((0, path_1.join)(basePath, '/swagger'), (ctx) => {
|
|
102
|
+
if (ctx.path === '/' || ctx.path === '') {
|
|
103
|
+
ctx.type = 'text/html; charset=utf-8';
|
|
104
|
+
ctx.body = html;
|
|
105
|
+
}
|
|
106
|
+
}));
|
|
104
107
|
});
|
|
105
108
|
}
|
|
106
|
-
logOpenApiUrls() {
|
|
107
|
-
const { port, basePath } = this.config.apiServer;
|
|
108
|
-
const hostname = 'localhost';
|
|
109
|
-
const baseURL = `http://${hostname}:${port}${basePath === '/' ? '' : basePath}`;
|
|
110
|
-
const specsURL = `${baseURL}/assets/${constants_js_1.constants.openApiDocumentFilename}`;
|
|
111
|
-
this.logger.info(`OpenAPI specs are available at ${specsURL}`);
|
|
112
|
-
const docsURL = `${baseURL}/docs`;
|
|
113
|
-
this.logger.info(`SWAGGER UI is accessible from ${docsURL}`);
|
|
114
|
-
}
|
|
115
109
|
initRouting() {
|
|
116
110
|
return __awaiter(this, void 0, void 0, function* () {
|
|
117
|
-
this.logger.info(
|
|
111
|
+
this.logger.info('Registering routes...');
|
|
118
112
|
const appRouter = yield (0, index_js_2.registerResources)(routing_js_1.routing);
|
|
119
113
|
this.app.use(appRouter.routes());
|
|
120
114
|
this.app.use(appRouter.allowedMethods());
|
|
@@ -122,24 +116,26 @@ class RedisSMQRestApi {
|
|
|
122
116
|
}
|
|
123
117
|
bootstrap() {
|
|
124
118
|
return __awaiter(this, void 0, void 0, function* () {
|
|
125
|
-
if (
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
119
|
+
if (this.bootstrapped)
|
|
120
|
+
return;
|
|
121
|
+
yield RedisSMQAsync.initializeAsync(this.config.redis);
|
|
122
|
+
yield this.initApplicationMiddlewares();
|
|
123
|
+
yield this.initRouting();
|
|
124
|
+
yield this.initOpenApi();
|
|
125
|
+
this.bootstrapped = true;
|
|
132
126
|
});
|
|
133
127
|
}
|
|
134
128
|
run() {
|
|
135
129
|
return __awaiter(this, void 0, void 0, function* () {
|
|
136
130
|
yield this.bootstrap();
|
|
137
|
-
if (this.runHttpServer)
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}
|
|
131
|
+
if (!this.runHttpServer)
|
|
132
|
+
return;
|
|
133
|
+
const { port, basePath } = this.config.apiServer;
|
|
134
|
+
yield new Promise((resolve) => this.httpServer.listen(port, () => resolve()));
|
|
135
|
+
this.logger.info(`RedisSMQ REST API server is running on http://localhost:${port}...`);
|
|
136
|
+
const baseURL = `http://127.0.0.1:${port}${basePath === '/' ? '' : basePath}`;
|
|
137
|
+
this.logger.info(`OpenAPI specs are available at ${baseURL}/swagger/assets/${constants_js_1.constants.openApiDocumentFilename}`);
|
|
138
|
+
this.logger.info(`SWAGGER UI is accessible from ${baseURL}/swagger`);
|
|
143
139
|
});
|
|
144
140
|
}
|
|
145
141
|
getApplication() {
|
|
@@ -155,7 +151,7 @@ class RedisSMQRestApi {
|
|
|
155
151
|
}
|
|
156
152
|
yield Container_js_1.Container.getInstance().dispose();
|
|
157
153
|
yield RedisSMQAsync.shutdownAsync();
|
|
158
|
-
this.logger.info(
|
|
154
|
+
this.logger.info('RedisSMQ HTTP API has been shutdown.');
|
|
159
155
|
});
|
|
160
156
|
}
|
|
161
157
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,gDAA6C;AAC7C,qDAA6B;AAC7B,mCAAiC;AACjC,wDAAgC;AAChC,2CAA6B;AAC7B,8CAAsB;AACtB,0DAA8B;AAC9B,4DAAmC;AACnC,+BAA4B;AAC5B,yCAAqC;AACrC,uDAAyD;AACzD,qDAAyE;AACzE,8CAAsB;AACtB,wDAAkD;AAClD,gDAI2B;AAC3B,2DAAqD;AACrD,2DAA6D;AAK7D,kGAA4F;AAC5F,8DAGuC;AACvC,oDAA0D;AAC1D,oDAA8C;AAG9C,MAAM,aAAa,GAAG,kBAAQ,CAAC,YAAY,CAAC,oBAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/src/index.d.ts
CHANGED
|
@@ -13,7 +13,6 @@ export declare class RedisSMQRestApi {
|
|
|
13
13
|
constructor(config?: IRedisSMQRestApiConfig, runHttpServer?: boolean);
|
|
14
14
|
protected initApplicationMiddlewares(): Promise<void>;
|
|
15
15
|
protected initOpenApi(): Promise<void>;
|
|
16
|
-
protected logOpenApiUrls(): void;
|
|
17
16
|
protected initRouting(): Promise<void>;
|
|
18
17
|
protected bootstrap(): Promise<void>;
|
|
19
18
|
run(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,GAAG,MAAM,KAAK,CAAC;AAKtB,OAAO,EAAgB,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAIzD,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAE7B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC5B,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,GAAG,MAAM,KAAK,CAAC;AAKtB,OAAO,EAAgB,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAIzD,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAE7B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC5B,MAAM,kCAAkC,CAAC;AAa1C,qBAAa,eAAe;IAC1B,SAAS,CAAC,GAAG,EAAE,GAAG,CAChB,2BAA2B,EAC3B,6BAA6B,CAC9B,CAAC;IACF,SAAS,CAAC,MAAM,EAAE,4BAA4B,CAAC;IAC/C,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC;IACjC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;IAClC,SAAS,CAAC,YAAY,UAAS;gBAEnB,MAAM,GAAE,sBAA2B,EAAE,aAAa,UAAO;cAgBrD,0BAA0B;cAmB1B,WAAW;cAyCX,WAAW;cAOX,SAAS;IAWnB,GAAG;IAkBH,cAAc;IAKd,QAAQ;CAQf"}
|
package/dist/esm/src/index.js
CHANGED
|
@@ -50,54 +50,50 @@ export class RedisSMQRestApi {
|
|
|
50
50
|
}));
|
|
51
51
|
}
|
|
52
52
|
async initOpenApi() {
|
|
53
|
-
this.
|
|
54
|
-
const
|
|
53
|
+
const { basePath } = this.config.apiServer;
|
|
54
|
+
const openApiFilename = constants.openApiDocumentFilename;
|
|
55
|
+
this.logger.info('Initializing OpenAPI...');
|
|
56
|
+
const spec = await generateOpenApiDocument(routing, basePath);
|
|
55
57
|
const tmpDir = await tmpAsync.dirAsync();
|
|
56
58
|
await saveOpenApiDocument(spec, tmpDir);
|
|
57
|
-
const { basePath } = this.config.apiServer;
|
|
58
|
-
this.app.use(mount(join(basePath, '/assets'), koaStatic(tmpDir)));
|
|
59
59
|
const uiAssetsFsPath = swaggerUiDistPath();
|
|
60
|
-
this.app.use(mount(join(basePath, '/
|
|
61
|
-
|
|
62
|
-
const
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
ctx.
|
|
60
|
+
this.app.use(mount(join(basePath, '/swagger/ui'), koaStatic(uiAssetsFsPath)));
|
|
61
|
+
this.app.use(mount(join(basePath, '/swagger/assets'), koaStatic(tmpDir)));
|
|
62
|
+
const specUrl = join(basePath, '/swagger/assets', openApiFilename);
|
|
63
|
+
const uiAssetsUrl = join(basePath, '/swagger/ui');
|
|
64
|
+
const html = buildSwaggerUiHtml(specUrl, uiAssetsUrl);
|
|
65
|
+
this.app.use(mount(join(basePath, '/swagger'), (ctx) => {
|
|
66
|
+
if (ctx.path === '/' || ctx.path === '') {
|
|
67
|
+
ctx.type = 'text/html; charset=utf-8';
|
|
68
|
+
ctx.body = html;
|
|
69
|
+
}
|
|
67
70
|
}));
|
|
68
71
|
}
|
|
69
|
-
logOpenApiUrls() {
|
|
70
|
-
const { port, basePath } = this.config.apiServer;
|
|
71
|
-
const hostname = 'localhost';
|
|
72
|
-
const baseURL = `http://${hostname}:${port}${basePath === '/' ? '' : basePath}`;
|
|
73
|
-
const specsURL = `${baseURL}/assets/${constants.openApiDocumentFilename}`;
|
|
74
|
-
this.logger.info(`OpenAPI specs are available at ${specsURL}`);
|
|
75
|
-
const docsURL = `${baseURL}/docs`;
|
|
76
|
-
this.logger.info(`SWAGGER UI is accessible from ${docsURL}`);
|
|
77
|
-
}
|
|
78
72
|
async initRouting() {
|
|
79
|
-
this.logger.info(
|
|
73
|
+
this.logger.info('Registering routes...');
|
|
80
74
|
const appRouter = await registerResources(routing);
|
|
81
75
|
this.app.use(appRouter.routes());
|
|
82
76
|
this.app.use(appRouter.allowedMethods());
|
|
83
77
|
}
|
|
84
78
|
async bootstrap() {
|
|
85
|
-
if (
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
79
|
+
if (this.bootstrapped)
|
|
80
|
+
return;
|
|
81
|
+
await RedisSMQAsync.initializeAsync(this.config.redis);
|
|
82
|
+
await this.initApplicationMiddlewares();
|
|
83
|
+
await this.initRouting();
|
|
84
|
+
await this.initOpenApi();
|
|
85
|
+
this.bootstrapped = true;
|
|
92
86
|
}
|
|
93
87
|
async run() {
|
|
94
88
|
await this.bootstrap();
|
|
95
|
-
if (this.runHttpServer)
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}
|
|
89
|
+
if (!this.runHttpServer)
|
|
90
|
+
return;
|
|
91
|
+
const { port, basePath } = this.config.apiServer;
|
|
92
|
+
await new Promise((resolve) => this.httpServer.listen(port, () => resolve()));
|
|
93
|
+
this.logger.info(`RedisSMQ REST API server is running on http://localhost:${port}...`);
|
|
94
|
+
const baseURL = `http://127.0.0.1:${port}${basePath === '/' ? '' : basePath}`;
|
|
95
|
+
this.logger.info(`OpenAPI specs are available at ${baseURL}/swagger/assets/${constants.openApiDocumentFilename}`);
|
|
96
|
+
this.logger.info(`SWAGGER UI is accessible from ${baseURL}/swagger`);
|
|
101
97
|
}
|
|
102
98
|
async getApplication() {
|
|
103
99
|
await this.bootstrap();
|
|
@@ -109,7 +105,7 @@ export class RedisSMQRestApi {
|
|
|
109
105
|
}
|
|
110
106
|
await Container.getInstance().dispose();
|
|
111
107
|
await RedisSMQAsync.shutdownAsync();
|
|
112
|
-
this.logger.info(
|
|
108
|
+
this.logger.info('RedisSMQ HTTP API has been shutdown.');
|
|
113
109
|
}
|
|
114
110
|
}
|
|
115
111
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,MAAM,WAAW,CAAC;AAC9B,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,YAAY,EAAW,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,iBAAiB,IAAI,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAGL,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAK7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oDAAoD,CAAC;AAC5F,OAAO,EACL,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG9C,MAAM,aAAa,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "redis-smq-rest-api",
|
|
3
|
-
"version": "9.0.0-next.
|
|
3
|
+
"version": "9.0.0-next.14",
|
|
4
4
|
"description": "REST API for RedisSMQ: OpenAPI 3 schema and Swagger UI for managing queues, messages, and consumers.",
|
|
5
5
|
"author": "Weyoss <weyoss@protonmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"bluebird": "3.7.2",
|
|
57
57
|
"commander": "14.0.1",
|
|
58
58
|
"json-schema": "0.4.0",
|
|
59
|
-
"koa": "3.
|
|
59
|
+
"koa": "3.1.1",
|
|
60
60
|
"koa-mount": "4.2.0",
|
|
61
61
|
"koa-static": "5.0.0",
|
|
62
62
|
"lodash": "4.17.21",
|
|
@@ -68,8 +68,8 @@
|
|
|
68
68
|
"peerDependencies": {
|
|
69
69
|
"@redis/client": "^5",
|
|
70
70
|
"ioredis": "^5",
|
|
71
|
-
"redis-smq": "^9.0.0-next.
|
|
72
|
-
"redis-smq-common": "^9.0.0-next.
|
|
71
|
+
"redis-smq": "^9.0.0-next.14",
|
|
72
|
+
"redis-smq-common": "^9.0.0-next.14"
|
|
73
73
|
},
|
|
74
74
|
"peerDependenciesMeta": {
|
|
75
75
|
"@redis/client": {
|