@morojs/moro 1.0.0 → 1.0.1
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/README.md +1 -1
- package/dist/core/config/index.d.ts +5 -5
- package/dist/core/config/index.js +1 -1
- package/dist/core/config/index.js.map +1 -1
- package/dist/core/config/loader.d.ts +1 -1
- package/dist/core/config/loader.js +58 -82
- package/dist/core/config/loader.js.map +1 -1
- package/dist/core/config/schema.d.ts +1 -1
- package/dist/core/config/schema.js +52 -111
- package/dist/core/config/schema.js.map +1 -1
- package/dist/core/config/utils.d.ts +2 -2
- package/dist/core/config/utils.js +18 -18
- package/dist/core/config/utils.js.map +1 -1
- package/dist/core/database/adapters/drizzle.d.ts +1 -1
- package/dist/core/database/adapters/drizzle.js +39 -55
- package/dist/core/database/adapters/drizzle.js.map +1 -1
- package/dist/core/database/adapters/index.d.ts +7 -7
- package/dist/core/database/adapters/index.js +11 -11
- package/dist/core/database/adapters/index.js.map +1 -1
- package/dist/core/database/adapters/mongodb.d.ts +1 -1
- package/dist/core/database/adapters/mongodb.js +19 -23
- package/dist/core/database/adapters/mongodb.js.map +1 -1
- package/dist/core/database/adapters/mysql.d.ts +1 -1
- package/dist/core/database/adapters/mysql.js +31 -27
- package/dist/core/database/adapters/mysql.js.map +1 -1
- package/dist/core/database/adapters/postgresql.d.ts +1 -1
- package/dist/core/database/adapters/postgresql.js +27 -35
- package/dist/core/database/adapters/postgresql.js.map +1 -1
- package/dist/core/database/adapters/redis.d.ts +1 -1
- package/dist/core/database/adapters/redis.js +24 -24
- package/dist/core/database/adapters/redis.js.map +1 -1
- package/dist/core/database/adapters/sqlite.d.ts +1 -1
- package/dist/core/database/adapters/sqlite.js +36 -36
- package/dist/core/database/adapters/sqlite.js.map +1 -1
- package/dist/core/database/index.d.ts +2 -2
- package/dist/core/docs/index.d.ts +7 -7
- package/dist/core/docs/index.js +13 -15
- package/dist/core/docs/index.js.map +1 -1
- package/dist/core/docs/openapi-generator.d.ts +5 -5
- package/dist/core/docs/openapi-generator.js +93 -94
- package/dist/core/docs/openapi-generator.js.map +1 -1
- package/dist/core/docs/simple-docs.d.ts +1 -1
- package/dist/core/docs/simple-docs.js +25 -28
- package/dist/core/docs/simple-docs.js.map +1 -1
- package/dist/core/docs/swagger-ui.d.ts +2 -2
- package/dist/core/docs/swagger-ui.js +46 -51
- package/dist/core/docs/swagger-ui.js.map +1 -1
- package/dist/core/docs/zod-to-openapi.d.ts +1 -1
- package/dist/core/docs/zod-to-openapi.js +115 -125
- package/dist/core/docs/zod-to-openapi.js.map +1 -1
- package/dist/core/events/event-bus.d.ts +1 -1
- package/dist/core/events/event-bus.js +15 -21
- package/dist/core/events/event-bus.js.map +1 -1
- package/dist/core/events/index.d.ts +2 -2
- package/dist/core/framework.d.ts +5 -5
- package/dist/core/framework.js +55 -60
- package/dist/core/framework.js.map +1 -1
- package/dist/core/http/http-server.d.ts +2 -2
- package/dist/core/http/http-server.js +228 -261
- package/dist/core/http/http-server.js.map +1 -1
- package/dist/core/http/index.d.ts +3 -3
- package/dist/core/http/router.d.ts +1 -1
- package/dist/core/http/router.js +15 -17
- package/dist/core/http/router.js.map +1 -1
- package/dist/core/logger/filters.d.ts +1 -1
- package/dist/core/logger/filters.js +16 -16
- package/dist/core/logger/filters.js.map +1 -1
- package/dist/core/logger/index.d.ts +3 -3
- package/dist/core/logger/logger.d.ts +1 -1
- package/dist/core/logger/logger.js +48 -59
- package/dist/core/logger/logger.js.map +1 -1
- package/dist/core/logger/outputs.d.ts +4 -4
- package/dist/core/logger/outputs.js +16 -20
- package/dist/core/logger/outputs.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cache/file.d.ts +1 -1
- package/dist/core/middleware/built-in/adapters/cache/file.js +19 -19
- package/dist/core/middleware/built-in/adapters/cache/file.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cache/index.d.ts +4 -4
- package/dist/core/middleware/built-in/adapters/cache/index.js +3 -3
- package/dist/core/middleware/built-in/adapters/cache/index.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cache/memory.d.ts +1 -1
- package/dist/core/middleware/built-in/adapters/cache/memory.js +5 -5
- package/dist/core/middleware/built-in/adapters/cache/memory.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cache/redis.d.ts +1 -1
- package/dist/core/middleware/built-in/adapters/cache/redis.js +18 -18
- package/dist/core/middleware/built-in/adapters/cache/redis.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/azure.d.ts +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/azure.js +8 -8
- package/dist/core/middleware/built-in/adapters/cdn/azure.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/cloudflare.d.ts +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js +14 -14
- package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/cloudfront.d.ts +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js +13 -15
- package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/index.d.ts +4 -4
- package/dist/core/middleware/built-in/adapters/cdn/index.js +3 -3
- package/dist/core/middleware/built-in/adapters/index.d.ts +4 -4
- package/dist/core/middleware/built-in/auth.d.ts +1 -1
- package/dist/core/middleware/built-in/auth.js +14 -14
- package/dist/core/middleware/built-in/cache.d.ts +2 -2
- package/dist/core/middleware/built-in/cache.js +43 -45
- package/dist/core/middleware/built-in/cache.js.map +1 -1
- package/dist/core/middleware/built-in/cdn.d.ts +2 -2
- package/dist/core/middleware/built-in/cdn.js +27 -29
- package/dist/core/middleware/built-in/cdn.js.map +1 -1
- package/dist/core/middleware/built-in/cookie.d.ts +2 -2
- package/dist/core/middleware/built-in/cookie.js +17 -17
- package/dist/core/middleware/built-in/cookie.js.map +1 -1
- package/dist/core/middleware/built-in/cors.d.ts +1 -1
- package/dist/core/middleware/built-in/cors.js +13 -13
- package/dist/core/middleware/built-in/csp.d.ts +1 -1
- package/dist/core/middleware/built-in/csp.js +22 -25
- package/dist/core/middleware/built-in/csp.js.map +1 -1
- package/dist/core/middleware/built-in/csrf.d.ts +1 -1
- package/dist/core/middleware/built-in/csrf.js +21 -24
- package/dist/core/middleware/built-in/csrf.js.map +1 -1
- package/dist/core/middleware/built-in/error-tracker.js +2 -2
- package/dist/core/middleware/built-in/index.d.ts +14 -14
- package/dist/core/middleware/built-in/performance-monitor.js +2 -2
- package/dist/core/middleware/built-in/rate-limit.d.ts +1 -1
- package/dist/core/middleware/built-in/rate-limit.js +12 -12
- package/dist/core/middleware/built-in/request-logger.js.map +1 -1
- package/dist/core/middleware/built-in/session.d.ts +5 -5
- package/dist/core/middleware/built-in/session.js +35 -38
- package/dist/core/middleware/built-in/session.js.map +1 -1
- package/dist/core/middleware/built-in/sse.d.ts +1 -1
- package/dist/core/middleware/built-in/sse.js +20 -22
- package/dist/core/middleware/built-in/sse.js.map +1 -1
- package/dist/core/middleware/built-in/validation.d.ts +1 -1
- package/dist/core/middleware/built-in/validation.js +13 -13
- package/dist/core/middleware/index.d.ts +5 -5
- package/dist/core/middleware/index.js +16 -16
- package/dist/core/middleware/index.js.map +1 -1
- package/dist/core/modules/auto-discovery.d.ts +2 -2
- package/dist/core/modules/auto-discovery.js +12 -13
- package/dist/core/modules/auto-discovery.js.map +1 -1
- package/dist/core/modules/index.d.ts +2 -2
- package/dist/core/modules/index.js.map +1 -1
- package/dist/core/modules/modules.d.ts +3 -3
- package/dist/core/modules/modules.js +3 -6
- package/dist/core/modules/modules.js.map +1 -1
- package/dist/core/networking/index.d.ts +2 -2
- package/dist/core/networking/index.js.map +1 -1
- package/dist/core/networking/service-discovery.d.ts +2 -2
- package/dist/core/networking/service-discovery.js +27 -27
- package/dist/core/networking/service-discovery.js.map +1 -1
- package/dist/core/networking/websocket-manager.d.ts +3 -3
- package/dist/core/networking/websocket-manager.js +15 -16
- package/dist/core/networking/websocket-manager.js.map +1 -1
- package/dist/core/routing/app-integration.d.ts +2 -2
- package/dist/core/routing/app-integration.js +13 -13
- package/dist/core/routing/app-integration.js.map +1 -1
- package/dist/core/routing/index.d.ts +3 -3
- package/dist/core/routing/index.js +43 -52
- package/dist/core/routing/index.js.map +1 -1
- package/dist/core/runtime/aws-lambda-adapter.d.ts +3 -3
- package/dist/core/runtime/aws-lambda-adapter.js +14 -16
- package/dist/core/runtime/aws-lambda-adapter.js.map +1 -1
- package/dist/core/runtime/base-adapter.d.ts +2 -2
- package/dist/core/runtime/base-adapter.js +11 -12
- package/dist/core/runtime/base-adapter.js.map +1 -1
- package/dist/core/runtime/cloudflare-workers-adapter.d.ts +3 -3
- package/dist/core/runtime/cloudflare-workers-adapter.js +20 -21
- package/dist/core/runtime/cloudflare-workers-adapter.js.map +1 -1
- package/dist/core/runtime/index.d.ts +9 -9
- package/dist/core/runtime/index.js +4 -4
- package/dist/core/runtime/index.js.map +1 -1
- package/dist/core/runtime/node-adapter.d.ts +5 -5
- package/dist/core/runtime/node-adapter.js +35 -35
- package/dist/core/runtime/node-adapter.js.map +1 -1
- package/dist/core/runtime/vercel-edge-adapter.d.ts +3 -3
- package/dist/core/runtime/vercel-edge-adapter.js +12 -15
- package/dist/core/runtime/vercel-edge-adapter.js.map +1 -1
- package/dist/core/utilities/circuit-breaker.js +6 -6
- package/dist/core/utilities/container.d.ts +1 -1
- package/dist/core/utilities/container.js +17 -22
- package/dist/core/utilities/container.js.map +1 -1
- package/dist/core/utilities/hooks.d.ts +3 -3
- package/dist/core/utilities/hooks.js +11 -11
- package/dist/core/utilities/hooks.js.map +1 -1
- package/dist/core/utilities/index.d.ts +4 -4
- package/dist/core/validation/index.d.ts +3 -3
- package/dist/core/validation/index.js +15 -15
- package/dist/core/validation/index.js.map +1 -1
- package/dist/index.d.ts +31 -30
- package/dist/index.js +28 -1
- package/dist/index.js.map +1 -1
- package/dist/moro.d.ts +14 -14
- package/dist/moro.js +79 -88
- package/dist/moro.js.map +1 -1
- package/dist/types/cache.d.ts +1 -1
- package/dist/types/core.d.ts +2 -2
- package/dist/types/events.d.ts +19 -19
- package/dist/types/hooks.d.ts +1 -1
- package/dist/types/http.d.ts +2 -2
- package/dist/types/logger.d.ts +3 -3
- package/dist/types/module.d.ts +2 -2
- package/dist/types/runtime.d.ts +2 -2
- package/dist/types/session.d.ts +4 -4
- package/package.json +180 -164
- package/src/core/config/index.ts +7 -9
- package/src/core/config/loader.ts +86 -158
- package/src/core/config/schema.ts +59 -122
- package/src/core/config/utils.ts +27 -45
- package/src/core/database/adapters/drizzle.ts +53 -75
- package/src/core/database/adapters/index.ts +26 -29
- package/src/core/database/adapters/mongodb.ts +31 -54
- package/src/core/database/adapters/mysql.ts +40 -50
- package/src/core/database/adapters/postgresql.ts +32 -42
- package/src/core/database/adapters/redis.ts +31 -36
- package/src/core/database/adapters/sqlite.ts +43 -51
- package/src/core/database/index.ts +2 -2
- package/src/core/docs/index.ts +25 -39
- package/src/core/docs/openapi-generator.ts +104 -117
- package/src/core/docs/simple-docs.ts +29 -39
- package/src/core/docs/swagger-ui.ts +57 -76
- package/src/core/docs/zod-to-openapi.ts +121 -153
- package/src/core/events/event-bus.ts +22 -45
- package/src/core/events/index.ts +2 -2
- package/src/core/framework.ts +119 -197
- package/src/core/http/http-server.ts +260 -360
- package/src/core/http/index.ts +3 -8
- package/src/core/http/router.ts +19 -31
- package/src/core/logger/filters.ts +19 -22
- package/src/core/logger/index.ts +3 -3
- package/src/core/logger/logger.ts +59 -100
- package/src/core/logger/outputs.ts +23 -27
- package/src/core/middleware/built-in/adapters/cache/file.ts +21 -23
- package/src/core/middleware/built-in/adapters/cache/index.ts +11 -14
- package/src/core/middleware/built-in/adapters/cache/memory.ts +7 -7
- package/src/core/middleware/built-in/adapters/cache/redis.ts +21 -24
- package/src/core/middleware/built-in/adapters/cdn/azure.ts +10 -18
- package/src/core/middleware/built-in/adapters/cdn/cloudflare.ts +19 -36
- package/src/core/middleware/built-in/adapters/cdn/cloudfront.ts +17 -26
- package/src/core/middleware/built-in/adapters/cdn/index.ts +10 -10
- package/src/core/middleware/built-in/adapters/index.ts +4 -4
- package/src/core/middleware/built-in/auth.ts +16 -16
- package/src/core/middleware/built-in/cache.ts +50 -67
- package/src/core/middleware/built-in/cdn.ts +34 -61
- package/src/core/middleware/built-in/cookie.ts +23 -28
- package/src/core/middleware/built-in/cors.ts +17 -17
- package/src/core/middleware/built-in/csp.ts +25 -31
- package/src/core/middleware/built-in/csrf.ts +24 -29
- package/src/core/middleware/built-in/error-tracker.ts +3 -3
- package/src/core/middleware/built-in/index.ts +28 -28
- package/src/core/middleware/built-in/performance-monitor.ts +4 -4
- package/src/core/middleware/built-in/rate-limit.ts +15 -15
- package/src/core/middleware/built-in/request-logger.ts +1 -3
- package/src/core/middleware/built-in/session.ts +47 -70
- package/src/core/middleware/built-in/sse.ts +23 -28
- package/src/core/middleware/built-in/validation.ts +15 -15
- package/src/core/middleware/index.ts +26 -37
- package/src/core/modules/auto-discovery.ts +21 -31
- package/src/core/modules/index.ts +2 -5
- package/src/core/modules/modules.ts +11 -20
- package/src/core/networking/index.ts +2 -6
- package/src/core/networking/service-discovery.ts +41 -61
- package/src/core/networking/websocket-manager.ts +27 -36
- package/src/core/routing/app-integration.ts +19 -32
- package/src/core/routing/index.ts +57 -88
- package/src/core/runtime/aws-lambda-adapter.ts +20 -30
- package/src/core/runtime/base-adapter.ts +17 -27
- package/src/core/runtime/cloudflare-workers-adapter.ts +28 -42
- package/src/core/runtime/index.ts +21 -33
- package/src/core/runtime/node-adapter.ts +59 -73
- package/src/core/runtime/vercel-edge-adapter.ts +18 -29
- package/src/core/utilities/circuit-breaker.ts +7 -7
- package/src/core/utilities/container.ts +52 -89
- package/src/core/utilities/hooks.ts +17 -23
- package/src/core/utilities/index.ts +4 -4
- package/src/core/validation/index.ts +25 -51
- package/src/index.ts +58 -60
- package/src/moro.ts +119 -191
- package/src/types/cache.ts +1 -1
- package/src/types/core.ts +2 -2
- package/src/types/database.ts +2 -10
- package/src/types/events.ts +23 -31
- package/src/types/hooks.ts +1 -1
- package/src/types/http.ts +5 -8
- package/src/types/logger.ts +7 -23
- package/src/types/module.ts +2 -2
- package/src/types/runtime.ts +6 -21
- package/src/types/session.ts +4 -4
|
@@ -8,41 +8,38 @@ exports.generateDocsForApp = generateDocsForApp;
|
|
|
8
8
|
const fs_1 = require("fs");
|
|
9
9
|
const path_1 = require("path");
|
|
10
10
|
const logger_1 = require("../logger");
|
|
11
|
-
const logger = (0, logger_1.createFrameworkLogger)(
|
|
11
|
+
const logger = (0, logger_1.createFrameworkLogger)('SwaggerUI');
|
|
12
12
|
// Swagger UI middleware
|
|
13
13
|
class SwaggerUIMiddleware {
|
|
14
14
|
constructor(openAPISpec, options = {}) {
|
|
15
15
|
this.openAPISpec = openAPISpec;
|
|
16
16
|
this.options = {
|
|
17
|
-
title:
|
|
17
|
+
title: 'API Documentation',
|
|
18
18
|
enableTryItOut: true,
|
|
19
19
|
enableFilter: true,
|
|
20
20
|
enableDeepLinking: true,
|
|
21
21
|
swaggerOptions: {
|
|
22
|
-
dom_id:
|
|
23
|
-
presets: [
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
],
|
|
27
|
-
plugins: ["SwaggerUIBundle.plugins.DownloadUrl"],
|
|
28
|
-
layout: "StandaloneLayout",
|
|
22
|
+
dom_id: '#swagger-ui',
|
|
23
|
+
presets: ['SwaggerUIBundle.presets.apis', 'SwaggerUIBundle.presets.standalone'],
|
|
24
|
+
plugins: ['SwaggerUIBundle.plugins.DownloadUrl'],
|
|
25
|
+
layout: 'StandaloneLayout',
|
|
29
26
|
},
|
|
30
27
|
...options,
|
|
31
28
|
};
|
|
32
29
|
try {
|
|
33
30
|
// Find swagger-ui-dist assets
|
|
34
31
|
this.swaggerUIAssetPath = require
|
|
35
|
-
.resolve(
|
|
36
|
-
.replace(
|
|
37
|
-
logger.debug(
|
|
32
|
+
.resolve('swagger-ui-dist/package.json')
|
|
33
|
+
.replace('/package.json', '');
|
|
34
|
+
logger.debug('Swagger UI assets found', 'Initialization', {
|
|
38
35
|
assetPath: this.swaggerUIAssetPath,
|
|
39
36
|
});
|
|
40
37
|
}
|
|
41
38
|
catch (error) {
|
|
42
|
-
logger.error(
|
|
39
|
+
logger.error('Failed to locate Swagger UI assets', 'Initialization', {
|
|
43
40
|
error: error instanceof Error ? error.message : String(error),
|
|
44
41
|
});
|
|
45
|
-
throw new Error(
|
|
42
|
+
throw new Error('swagger-ui-dist package not found. Install with: npm install swagger-ui-dist');
|
|
46
43
|
}
|
|
47
44
|
}
|
|
48
45
|
// Generate HTML page for Swagger UI
|
|
@@ -88,9 +85,9 @@ class SwaggerUIMiddleware {
|
|
|
88
85
|
font-family: monospace;
|
|
89
86
|
color: #c62828;
|
|
90
87
|
}
|
|
91
|
-
${this.options.customCss ||
|
|
88
|
+
${this.options.customCss || ''}
|
|
92
89
|
</style>
|
|
93
|
-
${this.options.favicon ? `<link rel="icon" type="image/png" href="${this.options.favicon}" sizes="32x32" />` :
|
|
90
|
+
${this.options.favicon ? `<link rel="icon" type="image/png" href="${this.options.favicon}" sizes="32x32" />` : ''}
|
|
94
91
|
</head>
|
|
95
92
|
<body>
|
|
96
93
|
<div id="loading-message">
|
|
@@ -191,64 +188,64 @@ class SwaggerUIMiddleware {
|
|
|
191
188
|
</html>`;
|
|
192
189
|
}
|
|
193
190
|
// Create middleware function that serves Swagger UI
|
|
194
|
-
createMiddleware(basePath =
|
|
191
|
+
createMiddleware(basePath = '/docs') {
|
|
195
192
|
return (req, res, next) => {
|
|
196
193
|
const path = req.path;
|
|
197
|
-
logger.debug(`Docs middleware handling: ${path}`,
|
|
194
|
+
logger.debug(`Docs middleware handling: ${path}`, 'DocsMiddleware', {
|
|
198
195
|
basePath,
|
|
199
196
|
});
|
|
200
197
|
// Serve the main HTML page
|
|
201
198
|
if (path === basePath || path === `${basePath}/`) {
|
|
202
|
-
logger.debug(
|
|
199
|
+
logger.debug('Serving Swagger UI HTML', 'DocsServing');
|
|
203
200
|
// Set CSP headers to allow Swagger UI to work
|
|
204
|
-
res.setHeader(
|
|
201
|
+
res.setHeader('Content-Security-Policy', "default-src 'self'; " +
|
|
205
202
|
"script-src 'self' 'unsafe-inline' 'unsafe-eval'; " +
|
|
206
203
|
"style-src 'self' 'unsafe-inline'; " +
|
|
207
204
|
"img-src 'self' data: https:; " +
|
|
208
205
|
"font-src 'self' data:; " +
|
|
209
206
|
"connect-src 'self'");
|
|
210
|
-
res.setHeader(
|
|
207
|
+
res.setHeader('Content-Type', 'text/html; charset=utf-8');
|
|
211
208
|
res.send(this.generateHTML(basePath));
|
|
212
209
|
return;
|
|
213
210
|
}
|
|
214
211
|
// Serve the OpenAPI JSON spec
|
|
215
212
|
if (path === `${basePath}/openapi.json`) {
|
|
216
|
-
logger.debug(
|
|
217
|
-
res.setHeader(
|
|
213
|
+
logger.debug('Serving OpenAPI JSON spec', 'DocsServing');
|
|
214
|
+
res.setHeader('Content-Type', 'application/json');
|
|
218
215
|
res.json(this.openAPISpec);
|
|
219
216
|
return;
|
|
220
217
|
}
|
|
221
218
|
// Serve Swagger UI assets
|
|
222
219
|
if (path.startsWith(`${basePath}/`)) {
|
|
223
|
-
const assetName = path.replace(`${basePath}/`,
|
|
224
|
-
logger.debug(`Attempting to serve asset: ${assetName}`,
|
|
220
|
+
const assetName = path.replace(`${basePath}/`, '');
|
|
221
|
+
logger.debug(`Attempting to serve asset: ${assetName}`, 'AssetServing', {
|
|
225
222
|
fullPath: path,
|
|
226
223
|
basePath,
|
|
227
224
|
assetPath: this.swaggerUIAssetPath,
|
|
228
225
|
});
|
|
229
226
|
// Security: only allow specific asset files
|
|
230
227
|
const allowedAssets = [
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
228
|
+
'swagger-ui-bundle.js',
|
|
229
|
+
'swagger-ui.css',
|
|
230
|
+
'swagger-ui-standalone-preset.js',
|
|
231
|
+
'favicon-16x16.png',
|
|
232
|
+
'favicon-32x32.png',
|
|
236
233
|
];
|
|
237
234
|
if (allowedAssets.includes(assetName)) {
|
|
238
235
|
try {
|
|
239
236
|
const assetPath = (0, path_1.join)(this.swaggerUIAssetPath, assetName);
|
|
240
|
-
logger.debug(`Reading asset from: ${assetPath}`,
|
|
237
|
+
logger.debug(`Reading asset from: ${assetPath}`, 'AssetServing');
|
|
241
238
|
const content = (0, fs_1.readFileSync)(assetPath);
|
|
242
239
|
// Set appropriate content type
|
|
243
240
|
const contentType = this.getContentType(assetName);
|
|
244
|
-
res.setHeader(
|
|
245
|
-
res.setHeader(
|
|
246
|
-
logger.debug(`Serving asset: ${assetName} (${content.length} bytes)`,
|
|
241
|
+
res.setHeader('Content-Type', contentType);
|
|
242
|
+
res.setHeader('Cache-Control', 'public, max-age=86400'); // Cache for 1 day
|
|
243
|
+
logger.debug(`Serving asset: ${assetName} (${content.length} bytes)`, 'AssetServing');
|
|
247
244
|
res.send(content);
|
|
248
245
|
return;
|
|
249
246
|
}
|
|
250
247
|
catch (error) {
|
|
251
|
-
logger.error(`Failed to serve Swagger UI asset: ${assetName}`,
|
|
248
|
+
logger.error(`Failed to serve Swagger UI asset: ${assetName}`, 'AssetServing', {
|
|
252
249
|
error: error instanceof Error ? error.message : String(error),
|
|
253
250
|
assetPath: (0, path_1.join)(this.swaggerUIAssetPath, assetName),
|
|
254
251
|
});
|
|
@@ -258,7 +255,7 @@ class SwaggerUIMiddleware {
|
|
|
258
255
|
}
|
|
259
256
|
}
|
|
260
257
|
else {
|
|
261
|
-
logger.warn(`Asset not allowed: ${assetName}`,
|
|
258
|
+
logger.warn(`Asset not allowed: ${assetName}`, 'AssetServing', {
|
|
262
259
|
allowedAssets,
|
|
263
260
|
});
|
|
264
261
|
res.status(404);
|
|
@@ -272,20 +269,20 @@ class SwaggerUIMiddleware {
|
|
|
272
269
|
}
|
|
273
270
|
// Get content type for asset files
|
|
274
271
|
getContentType(filename) {
|
|
275
|
-
if (filename.endsWith(
|
|
276
|
-
return
|
|
277
|
-
if (filename.endsWith(
|
|
278
|
-
return
|
|
279
|
-
if (filename.endsWith(
|
|
280
|
-
return
|
|
281
|
-
if (filename.endsWith(
|
|
282
|
-
return
|
|
283
|
-
return
|
|
272
|
+
if (filename.endsWith('.js'))
|
|
273
|
+
return 'application/javascript';
|
|
274
|
+
if (filename.endsWith('.css'))
|
|
275
|
+
return 'text/css';
|
|
276
|
+
if (filename.endsWith('.png'))
|
|
277
|
+
return 'image/png';
|
|
278
|
+
if (filename.endsWith('.ico'))
|
|
279
|
+
return 'image/x-icon';
|
|
280
|
+
return 'text/plain';
|
|
284
281
|
}
|
|
285
282
|
// Update the OpenAPI spec (useful for dynamic updates)
|
|
286
283
|
updateSpec(newSpec) {
|
|
287
284
|
this.openAPISpec = newSpec;
|
|
288
|
-
logger.debug(
|
|
285
|
+
logger.debug('OpenAPI specification updated', 'SpecUpdate', {
|
|
289
286
|
pathCount: Object.keys(newSpec.paths).length,
|
|
290
287
|
});
|
|
291
288
|
}
|
|
@@ -299,16 +296,14 @@ function createDocsMiddleware(openAPISpec, options = {}) {
|
|
|
299
296
|
// Helper function to generate documentation for an app
|
|
300
297
|
function generateDocsForApp(routes, info, options = {}) {
|
|
301
298
|
const openAPISpec = {
|
|
302
|
-
openapi:
|
|
299
|
+
openapi: '3.0.3',
|
|
303
300
|
info,
|
|
304
|
-
servers: [
|
|
305
|
-
{ url: "http://localhost:3000", description: "Development server" },
|
|
306
|
-
],
|
|
301
|
+
servers: [{ url: 'http://localhost:3000', description: 'Development server' }],
|
|
307
302
|
paths: {},
|
|
308
303
|
tags: [],
|
|
309
304
|
};
|
|
310
305
|
// This will be enhanced when integrated with the routing system
|
|
311
|
-
logger.info(
|
|
306
|
+
logger.info('Documentation generated for app', 'AppDocumentation', {
|
|
312
307
|
routeCount: routes.length,
|
|
313
308
|
title: info.title,
|
|
314
309
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swagger-ui.js","sourceRoot":"","sources":["../../../src/core/docs/swagger-ui.ts"],"names":[],"mappings":";AAAA,4CAA4C;AAC5C,wDAAwD;;;
|
|
1
|
+
{"version":3,"file":"swagger-ui.js","sourceRoot":"","sources":["../../../src/core/docs/swagger-ui.ts"],"names":[],"mappings":"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"}
|