@morojs/moro 1.6.2 → 1.6.4
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/dist/core/http/http-server.js +12 -9
- package/dist/core/http/http-server.js.map +1 -1
- package/dist/core/http/uws-http-server.js +1 -1
- package/dist/core/http/uws-http-server.js.map +1 -1
- package/dist/core/middleware/built-in/auth/core.d.ts +78 -0
- package/dist/core/middleware/built-in/auth/core.js +358 -0
- package/dist/core/middleware/built-in/auth/core.js.map +1 -0
- package/dist/core/middleware/built-in/{auth-helpers.js → auth/helpers.js} +1 -1
- package/dist/core/middleware/built-in/auth/helpers.js.map +1 -0
- package/dist/core/middleware/built-in/auth/hook.d.ts +30 -0
- package/dist/core/middleware/built-in/auth/hook.js +99 -0
- package/dist/core/middleware/built-in/auth/hook.js.map +1 -0
- package/dist/core/middleware/built-in/auth/index.d.ts +7 -0
- package/dist/core/middleware/built-in/auth/index.js +15 -0
- package/dist/core/middleware/built-in/auth/index.js.map +1 -0
- package/dist/core/middleware/built-in/{jwt-helpers.js → auth/jwt-helpers.js} +1 -1
- package/dist/core/middleware/built-in/auth/jwt-helpers.js.map +1 -0
- package/dist/core/middleware/built-in/auth/middleware.d.ts +23 -0
- package/dist/core/middleware/built-in/auth/middleware.js +71 -0
- package/dist/core/middleware/built-in/auth/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/{auth-providers.d.ts → auth/providers.d.ts} +1 -1
- package/dist/core/middleware/built-in/{auth-providers.js → auth/providers.js} +1 -1
- package/dist/core/middleware/built-in/auth/providers.js.map +1 -0
- package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/file.d.ts +1 -1
- package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/file.js +1 -1
- package/dist/core/middleware/built-in/cache/adapters/cache/file.js.map +1 -0
- package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/index.d.ts +1 -1
- package/dist/core/middleware/built-in/cache/adapters/cache/index.js.map +1 -0
- package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/memory.d.ts +1 -1
- package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/memory.js +1 -1
- package/dist/core/middleware/built-in/cache/adapters/cache/memory.js.map +1 -0
- package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/redis.d.ts +1 -1
- package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/redis.js +2 -2
- package/dist/core/middleware/built-in/cache/adapters/cache/redis.js.map +1 -0
- package/dist/core/middleware/built-in/{adapters → cache/adapters}/index.d.ts +0 -2
- package/{src/core/middleware/built-in/adapters/index.ts → dist/core/middleware/built-in/cache/adapters/index.js} +1 -3
- package/dist/core/middleware/built-in/cache/adapters/index.js.map +1 -0
- package/dist/core/middleware/built-in/cache/core.d.ts +37 -0
- package/dist/core/middleware/built-in/cache/core.js +87 -0
- package/dist/core/middleware/built-in/cache/core.js.map +1 -0
- package/dist/core/middleware/built-in/cache/hook.d.ts +20 -0
- package/dist/core/middleware/built-in/{cache.js → cache/hook.js} +22 -5
- package/dist/core/middleware/built-in/cache/hook.js.map +1 -0
- package/dist/core/middleware/built-in/cache/index.d.ts +3 -0
- package/dist/core/middleware/built-in/cache/index.js +9 -0
- package/dist/core/middleware/built-in/cache/index.js.map +1 -0
- package/dist/core/middleware/built-in/cache/middleware.d.ts +17 -0
- package/dist/core/middleware/built-in/cache/middleware.js +44 -0
- package/dist/core/middleware/built-in/cache/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/azure.d.ts +1 -1
- package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/azure.js +1 -1
- package/dist/core/middleware/built-in/cdn/adapters/cdn/azure.js.map +1 -0
- package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudflare.d.ts +1 -1
- package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudflare.js +1 -1
- package/dist/core/middleware/built-in/cdn/adapters/cdn/cloudflare.js.map +1 -0
- package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudfront.d.ts +1 -1
- package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudfront.js +2 -2
- package/dist/core/middleware/built-in/cdn/adapters/cdn/cloudfront.js.map +1 -0
- package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/index.d.ts +1 -1
- package/dist/core/middleware/built-in/cdn/adapters/cdn/index.js.map +1 -0
- package/dist/core/middleware/built-in/cdn/adapters/index.d.ts +2 -0
- package/dist/core/middleware/built-in/{adapters → cdn/adapters}/index.js +0 -2
- package/dist/core/middleware/built-in/cdn/adapters/index.js.map +1 -0
- package/dist/core/middleware/built-in/cdn/core.d.ts +43 -0
- package/dist/core/middleware/built-in/cdn/core.js +144 -0
- package/dist/core/middleware/built-in/cdn/core.js.map +1 -0
- package/dist/core/middleware/built-in/cdn/hook.d.ts +22 -0
- package/dist/core/middleware/built-in/cdn/hook.js +70 -0
- package/dist/core/middleware/built-in/cdn/hook.js.map +1 -0
- package/dist/core/middleware/built-in/cdn/index.d.ts +5 -0
- package/dist/core/middleware/built-in/cdn/index.js +11 -0
- package/dist/core/middleware/built-in/cdn/index.js.map +1 -0
- package/dist/core/middleware/built-in/cdn/middleware.d.ts +21 -0
- package/dist/core/middleware/built-in/cdn/middleware.js +52 -0
- package/dist/core/middleware/built-in/cdn/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/cookie/core.d.ts +37 -0
- package/dist/core/middleware/built-in/cookie/core.js +83 -0
- package/dist/core/middleware/built-in/cookie/core.js.map +1 -0
- package/dist/core/middleware/built-in/cookie/hook.d.ts +20 -0
- package/dist/core/middleware/built-in/cookie/hook.js +47 -0
- package/dist/core/middleware/built-in/cookie/hook.js.map +1 -0
- package/dist/core/middleware/built-in/cookie/index.d.ts +3 -0
- package/dist/core/middleware/built-in/cookie/index.js +9 -0
- package/dist/core/middleware/built-in/cookie/index.js.map +1 -0
- package/dist/core/middleware/built-in/cookie/middleware.d.ts +17 -0
- package/dist/core/middleware/built-in/cookie/middleware.js +36 -0
- package/dist/core/middleware/built-in/cookie/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/cors/core.d.ts +23 -0
- package/dist/core/middleware/built-in/cors/core.js +51 -0
- package/dist/core/middleware/built-in/cors/core.js.map +1 -0
- package/dist/core/middleware/built-in/cors/hook.d.ts +17 -0
- package/dist/core/middleware/built-in/cors/hook.js +37 -0
- package/dist/core/middleware/built-in/cors/hook.js.map +1 -0
- package/dist/core/middleware/built-in/cors/index.d.ts +3 -0
- package/dist/core/middleware/built-in/cors/index.js +9 -0
- package/dist/core/middleware/built-in/cors/index.js.map +1 -0
- package/dist/core/middleware/built-in/cors/middleware.d.ts +16 -0
- package/dist/core/middleware/built-in/cors/middleware.js +22 -0
- package/dist/core/middleware/built-in/cors/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/csp/core.d.ts +45 -0
- package/dist/core/middleware/built-in/csp/core.js +88 -0
- package/dist/core/middleware/built-in/csp/core.js.map +1 -0
- package/dist/core/middleware/built-in/csp/hook.d.ts +22 -0
- package/dist/core/middleware/built-in/csp/hook.js +47 -0
- package/dist/core/middleware/built-in/csp/hook.js.map +1 -0
- package/dist/core/middleware/built-in/csp/index.d.ts +3 -0
- package/dist/core/middleware/built-in/csp/index.js +9 -0
- package/dist/core/middleware/built-in/csp/index.js.map +1 -0
- package/dist/core/middleware/built-in/csp/middleware.d.ts +19 -0
- package/dist/core/middleware/built-in/csp/middleware.js +29 -0
- package/dist/core/middleware/built-in/csp/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/csrf/core.d.ts +28 -0
- package/dist/core/middleware/built-in/csrf/core.js +69 -0
- package/dist/core/middleware/built-in/csrf/core.js.map +1 -0
- package/dist/core/middleware/built-in/csrf/hook.d.ts +17 -0
- package/dist/core/middleware/built-in/csrf/hook.js +45 -0
- package/dist/core/middleware/built-in/csrf/hook.js.map +1 -0
- package/dist/core/middleware/built-in/csrf/index.d.ts +3 -0
- package/dist/core/middleware/built-in/csrf/index.js +9 -0
- package/dist/core/middleware/built-in/csrf/index.js.map +1 -0
- package/dist/core/middleware/built-in/csrf/middleware.d.ts +16 -0
- package/dist/core/middleware/built-in/csrf/middleware.js +34 -0
- package/dist/core/middleware/built-in/csrf/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/error-tracker/index.d.ts +1 -0
- package/dist/core/middleware/built-in/error-tracker/index.js +4 -0
- package/dist/core/middleware/built-in/error-tracker/index.js.map +1 -0
- package/dist/core/middleware/built-in/error-tracker/middleware.d.ts +12 -0
- package/dist/core/middleware/built-in/{error-tracker.js → error-tracker/middleware.js} +14 -3
- package/dist/core/middleware/built-in/error-tracker/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/index.d.ts +25 -59
- package/dist/core/middleware/built-in/index.js +31 -31
- package/dist/core/middleware/built-in/index.js.map +1 -1
- package/dist/core/middleware/built-in/performance-monitor/index.d.ts +1 -0
- package/dist/core/middleware/built-in/performance-monitor/index.js +4 -0
- package/dist/core/middleware/built-in/performance-monitor/index.js.map +1 -0
- package/dist/core/middleware/built-in/performance-monitor/middleware.d.ts +12 -0
- package/dist/core/middleware/built-in/{performance-monitor.js → performance-monitor/middleware.js} +14 -3
- package/dist/core/middleware/built-in/performance-monitor/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/rate-limit/core.d.ts +33 -0
- package/dist/core/middleware/built-in/rate-limit/core.js +86 -0
- package/dist/core/middleware/built-in/rate-limit/core.js.map +1 -0
- package/dist/core/middleware/built-in/rate-limit/hook.d.ts +20 -0
- package/dist/core/middleware/built-in/{rate-limit.js → rate-limit/hook.js} +22 -16
- package/dist/core/middleware/built-in/rate-limit/hook.js.map +1 -0
- package/dist/core/middleware/built-in/rate-limit/index.d.ts +3 -0
- package/dist/core/middleware/built-in/rate-limit/index.js +9 -0
- package/dist/core/middleware/built-in/rate-limit/index.js.map +1 -0
- package/dist/core/middleware/built-in/rate-limit/middleware.d.ts +16 -0
- package/dist/core/middleware/built-in/rate-limit/middleware.js +35 -0
- package/dist/core/middleware/built-in/rate-limit/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/request-logger/index.d.ts +1 -0
- package/dist/core/middleware/built-in/request-logger/index.js +4 -0
- package/dist/core/middleware/built-in/request-logger/index.js.map +1 -0
- package/dist/core/middleware/built-in/request-logger/middleware.d.ts +12 -0
- package/dist/core/middleware/built-in/{request-logger.js → request-logger/middleware.js} +14 -3
- package/dist/core/middleware/built-in/request-logger/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/session/core.d.ts +73 -0
- package/dist/core/middleware/built-in/session/core.js +227 -0
- package/dist/core/middleware/built-in/session/core.js.map +1 -0
- package/dist/core/middleware/built-in/session/hook.d.ts +17 -0
- package/dist/core/middleware/built-in/session/hook.js +53 -0
- package/dist/core/middleware/built-in/session/hook.js.map +1 -0
- package/dist/core/middleware/built-in/session/index.d.ts +3 -0
- package/dist/core/middleware/built-in/session/index.js +9 -0
- package/dist/core/middleware/built-in/session/index.js.map +1 -0
- package/dist/core/middleware/built-in/session/middleware.d.ts +17 -0
- package/dist/core/middleware/built-in/session/middleware.js +38 -0
- package/dist/core/middleware/built-in/session/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/sse/core.d.ts +44 -0
- package/dist/core/middleware/built-in/sse/core.js +117 -0
- package/dist/core/middleware/built-in/sse/core.js.map +1 -0
- package/dist/core/middleware/built-in/sse/hook.d.ts +18 -0
- package/dist/core/middleware/built-in/sse/hook.js +60 -0
- package/dist/core/middleware/built-in/sse/hook.js.map +1 -0
- package/dist/core/middleware/built-in/sse/index.d.ts +3 -0
- package/dist/core/middleware/built-in/sse/index.js +9 -0
- package/dist/core/middleware/built-in/sse/index.js.map +1 -0
- package/dist/core/middleware/built-in/sse/middleware.d.ts +18 -0
- package/dist/core/middleware/built-in/sse/middleware.js +43 -0
- package/dist/core/middleware/built-in/sse/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/validation/core.d.ts +23 -0
- package/dist/core/middleware/built-in/validation/core.js +93 -0
- package/dist/core/middleware/built-in/validation/core.js.map +1 -0
- package/dist/core/middleware/built-in/validation/hook.d.ts +13 -0
- package/dist/core/middleware/built-in/{validation.js → validation/hook.js} +14 -3
- package/dist/core/middleware/built-in/validation/hook.js.map +1 -0
- package/dist/core/middleware/built-in/validation/index.d.ts +3 -0
- package/dist/core/middleware/built-in/validation/index.js +9 -0
- package/dist/core/middleware/built-in/validation/index.js.map +1 -0
- package/dist/core/middleware/built-in/validation/middleware.d.ts +16 -0
- package/dist/core/middleware/built-in/validation/middleware.js +27 -0
- package/dist/core/middleware/built-in/validation/middleware.js.map +1 -0
- package/dist/core/middleware/index.js +6 -0
- package/dist/core/middleware/index.js.map +1 -1
- package/dist/core/routing/unified-router.d.ts +4 -20
- package/dist/core/routing/unified-router.js +61 -106
- package/dist/core/routing/unified-router.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/moro.js +12 -18
- package/dist/moro.js.map +1 -1
- package/dist/types/hooks.d.ts +3 -0
- package/package.json +2 -6
- package/dist/core/middleware/built-in/adapters/cache/file.js.map +0 -1
- package/dist/core/middleware/built-in/adapters/cache/index.js.map +0 -1
- package/dist/core/middleware/built-in/adapters/cache/memory.js.map +0 -1
- package/dist/core/middleware/built-in/adapters/cache/redis.js.map +0 -1
- package/dist/core/middleware/built-in/adapters/cdn/azure.js.map +0 -1
- package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js.map +0 -1
- package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js.map +0 -1
- package/dist/core/middleware/built-in/adapters/cdn/index.js.map +0 -1
- package/dist/core/middleware/built-in/adapters/index.js.map +0 -1
- package/dist/core/middleware/built-in/auth-helpers.js.map +0 -1
- package/dist/core/middleware/built-in/auth-providers.js.map +0 -1
- package/dist/core/middleware/built-in/auth.d.ts +0 -30
- package/dist/core/middleware/built-in/auth.js +0 -348
- package/dist/core/middleware/built-in/auth.js.map +0 -1
- package/dist/core/middleware/built-in/cache.d.ts +0 -3
- package/dist/core/middleware/built-in/cache.js.map +0 -1
- package/dist/core/middleware/built-in/cdn.d.ts +0 -3
- package/dist/core/middleware/built-in/cdn.js +0 -109
- package/dist/core/middleware/built-in/cdn.js.map +0 -1
- package/dist/core/middleware/built-in/cookie.d.ts +0 -14
- package/dist/core/middleware/built-in/cookie.js +0 -64
- package/dist/core/middleware/built-in/cookie.js.map +0 -1
- package/dist/core/middleware/built-in/cors.d.ts +0 -2
- package/dist/core/middleware/built-in/cors.js +0 -25
- package/dist/core/middleware/built-in/cors.js.map +0 -1
- package/dist/core/middleware/built-in/csp.d.ts +0 -22
- package/dist/core/middleware/built-in/csp.js +0 -68
- package/dist/core/middleware/built-in/csp.js.map +0 -1
- package/dist/core/middleware/built-in/csrf.d.ts +0 -9
- package/dist/core/middleware/built-in/csrf.js +0 -60
- package/dist/core/middleware/built-in/csrf.js.map +0 -1
- package/dist/core/middleware/built-in/error-tracker.d.ts +0 -1
- package/dist/core/middleware/built-in/error-tracker.js.map +0 -1
- package/dist/core/middleware/built-in/jwt-helpers.js.map +0 -1
- package/dist/core/middleware/built-in/performance-monitor.d.ts +0 -1
- package/dist/core/middleware/built-in/performance-monitor.js.map +0 -1
- package/dist/core/middleware/built-in/rate-limit.d.ts +0 -6
- package/dist/core/middleware/built-in/rate-limit.js.map +0 -1
- package/dist/core/middleware/built-in/request-logger.d.ts +0 -1
- package/dist/core/middleware/built-in/request-logger.js.map +0 -1
- package/dist/core/middleware/built-in/session.d.ts +0 -41
- package/dist/core/middleware/built-in/session.js +0 -205
- package/dist/core/middleware/built-in/session.js.map +0 -1
- package/dist/core/middleware/built-in/sse.d.ts +0 -6
- package/dist/core/middleware/built-in/sse.js +0 -69
- package/dist/core/middleware/built-in/sse.js.map +0 -1
- package/dist/core/middleware/built-in/validation.d.ts +0 -2
- package/dist/core/middleware/built-in/validation.js.map +0 -1
- package/jest.config.mjs +0 -41
- package/src/core/auth/README.md +0 -339
- package/src/core/auth/morojs-adapter.ts +0 -415
- package/src/core/config/config-manager.ts +0 -133
- package/src/core/config/config-sources.ts +0 -600
- package/src/core/config/config-validator.ts +0 -1116
- package/src/core/config/file-loader.ts +0 -150
- package/src/core/config/index.ts +0 -109
- package/src/core/config/schema.ts +0 -164
- package/src/core/config/utils.ts +0 -244
- package/src/core/database/README.md +0 -238
- package/src/core/database/adapters/drizzle.ts +0 -415
- package/src/core/database/adapters/index.ts +0 -42
- package/src/core/database/adapters/mongodb.ts +0 -317
- package/src/core/database/adapters/mysql.ts +0 -235
- package/src/core/database/adapters/postgresql.ts +0 -226
- package/src/core/database/adapters/redis.ts +0 -379
- package/src/core/database/adapters/sqlite.ts +0 -263
- package/src/core/database/index.ts +0 -3
- package/src/core/docs/index.ts +0 -231
- package/src/core/docs/openapi-generator.ts +0 -576
- package/src/core/docs/schema-to-openapi.ts +0 -145
- package/src/core/docs/simple-docs.ts +0 -295
- package/src/core/docs/swagger-ui.ts +0 -354
- package/src/core/docs/zod-to-openapi.ts +0 -532
- package/src/core/events/event-bus.ts +0 -231
- package/src/core/events/index.ts +0 -12
- package/src/core/framework.ts +0 -885
- package/src/core/http/http-server.ts +0 -1847
- package/src/core/http/index.ts +0 -7
- package/src/core/http/uws-http-server.ts +0 -591
- package/src/core/logger/filters.ts +0 -153
- package/src/core/logger/index.ts +0 -21
- package/src/core/logger/logger.ts +0 -1033
- package/src/core/logger/outputs.ts +0 -132
- package/src/core/middleware/built-in/adapters/cache/file.ts +0 -104
- package/src/core/middleware/built-in/adapters/cache/index.ts +0 -23
- package/src/core/middleware/built-in/adapters/cache/memory.ts +0 -73
- package/src/core/middleware/built-in/adapters/cache/redis.ts +0 -114
- package/src/core/middleware/built-in/adapters/cdn/azure.ts +0 -60
- package/src/core/middleware/built-in/adapters/cdn/cloudflare.ts +0 -83
- package/src/core/middleware/built-in/adapters/cdn/cloudfront.ts +0 -94
- package/src/core/middleware/built-in/adapters/cdn/index.ts +0 -23
- package/src/core/middleware/built-in/auth-helpers.ts +0 -401
- package/src/core/middleware/built-in/auth-providers.ts +0 -480
- package/src/core/middleware/built-in/auth.ts +0 -410
- package/src/core/middleware/built-in/cache.ts +0 -213
- package/src/core/middleware/built-in/cdn.ts +0 -124
- package/src/core/middleware/built-in/cookie.ts +0 -85
- package/src/core/middleware/built-in/cors.ts +0 -38
- package/src/core/middleware/built-in/csp.ts +0 -101
- package/src/core/middleware/built-in/csrf.ts +0 -82
- package/src/core/middleware/built-in/error-tracker.ts +0 -16
- package/src/core/middleware/built-in/index.ts +0 -87
- package/src/core/middleware/built-in/jwt-helpers.ts +0 -243
- package/src/core/middleware/built-in/performance-monitor.ts +0 -25
- package/src/core/middleware/built-in/rate-limit.ts +0 -60
- package/src/core/middleware/built-in/request-logger.ts +0 -16
- package/src/core/middleware/built-in/session.ts +0 -287
- package/src/core/middleware/built-in/sse.ts +0 -88
- package/src/core/middleware/built-in/validation.ts +0 -33
- package/src/core/middleware/index.ts +0 -177
- package/src/core/modules/auto-discovery.ts +0 -726
- package/src/core/modules/index.ts +0 -3
- package/src/core/modules/modules.ts +0 -135
- package/src/core/networking/adapters/index.ts +0 -17
- package/src/core/networking/adapters/socketio-adapter.ts +0 -254
- package/src/core/networking/adapters/uws-adapter.ts +0 -619
- package/src/core/networking/adapters/ws-adapter.ts +0 -429
- package/src/core/networking/index.ts +0 -4
- package/src/core/networking/service-discovery.ts +0 -303
- package/src/core/networking/websocket-adapter.ts +0 -217
- package/src/core/networking/websocket-manager.ts +0 -308
- package/src/core/pooling/object-pool-manager.ts +0 -630
- package/src/core/routing/app-integration.ts +0 -164
- package/src/core/routing/index.ts +0 -261
- package/src/core/routing/path-matcher.ts +0 -222
- package/src/core/routing/router.ts +0 -97
- package/src/core/routing/unified-router.ts +0 -870
- package/src/core/runtime/aws-lambda-adapter.ts +0 -147
- package/src/core/runtime/base-adapter.ts +0 -130
- package/src/core/runtime/cloudflare-workers-adapter.ts +0 -152
- package/src/core/runtime/index.ts +0 -62
- package/src/core/runtime/node-adapter.ts +0 -202
- package/src/core/runtime/vercel-edge-adapter.ts +0 -114
- package/src/core/utilities/circuit-breaker.ts +0 -46
- package/src/core/utilities/container.ts +0 -736
- package/src/core/utilities/hooks.ts +0 -142
- package/src/core/utilities/index.ts +0 -17
- package/src/core/utilities/package-utils.ts +0 -59
- package/src/core/validation/adapters.ts +0 -147
- package/src/core/validation/index.ts +0 -258
- package/src/core/validation/schema-interface.ts +0 -100
- package/src/index.ts +0 -233
- package/src/moro.ts +0 -1728
- package/src/types/auth.ts +0 -440
- package/src/types/cache.ts +0 -38
- package/src/types/cdn.ts +0 -22
- package/src/types/config.ts +0 -229
- package/src/types/core.ts +0 -58
- package/src/types/database.ts +0 -32
- package/src/types/discovery.ts +0 -7
- package/src/types/events.ts +0 -82
- package/src/types/hooks.ts +0 -47
- package/src/types/http.ts +0 -89
- package/src/types/logger.ts +0 -102
- package/src/types/module.ts +0 -99
- package/src/types/runtime.ts +0 -76
- package/src/types/session.ts +0 -89
- package/tsconfig.json +0 -23
- /package/dist/core/middleware/built-in/{auth-helpers.d.ts → auth/helpers.d.ts} +0 -0
- /package/dist/core/middleware/built-in/{jwt-helpers.d.ts → auth/jwt-helpers.d.ts} +0 -0
- /package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/index.js +0 -0
- /package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/index.js +0 -0
|
@@ -1,263 +0,0 @@
|
|
|
1
|
-
// Database SQLite Adapter
|
|
2
|
-
import { DatabaseAdapter, DatabaseTransaction } from '../../../types/database.js';
|
|
3
|
-
import { createFrameworkLogger } from '../../logger/index.js';
|
|
4
|
-
import { resolveUserPackage } from '../../utilities/package-utils.js';
|
|
5
|
-
|
|
6
|
-
interface SQLiteConfig {
|
|
7
|
-
filename?: string;
|
|
8
|
-
memory?: boolean;
|
|
9
|
-
readonly?: boolean;
|
|
10
|
-
fileMustExist?: boolean;
|
|
11
|
-
timeout?: number;
|
|
12
|
-
verbose?: boolean;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export class SQLiteAdapter implements DatabaseAdapter {
|
|
16
|
-
private db: any;
|
|
17
|
-
private logger = createFrameworkLogger('SQLite');
|
|
18
|
-
private initPromise: Promise<void>;
|
|
19
|
-
|
|
20
|
-
constructor(config: SQLiteConfig = {}) {
|
|
21
|
-
this.initPromise = this.initialize(config);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
private async initialize(config: SQLiteConfig): Promise<void> {
|
|
25
|
-
try {
|
|
26
|
-
const sqlite3Path = resolveUserPackage('better-sqlite3');
|
|
27
|
-
const betterSqlite3 = await import(sqlite3Path);
|
|
28
|
-
const Database = betterSqlite3.default;
|
|
29
|
-
const filename = config.memory ? ':memory:' : config.filename || 'moro_app.db';
|
|
30
|
-
this.db = new Database(filename, {
|
|
31
|
-
readonly: config.readonly || false,
|
|
32
|
-
fileMustExist: config.fileMustExist || false,
|
|
33
|
-
timeout: config.timeout || 5000,
|
|
34
|
-
verbose: config.verbose ? this.logger.debug.bind(this.logger) : undefined,
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
// Enable foreign keys
|
|
38
|
-
this.db.pragma('foreign_keys = ON');
|
|
39
|
-
|
|
40
|
-
this.logger.info('SQLite connection established', 'Connection', {
|
|
41
|
-
filename,
|
|
42
|
-
});
|
|
43
|
-
} catch (error) {
|
|
44
|
-
throw new Error(
|
|
45
|
-
'better-sqlite3 package is required for SQLite adapter. Install it with: npm install better-sqlite3'
|
|
46
|
-
);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
async connect(): Promise<void> {
|
|
51
|
-
await this.initPromise;
|
|
52
|
-
// SQLite doesn't require explicit connection - it's handled in constructor
|
|
53
|
-
this.logger.info('SQLite adapter ready', 'Connection');
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
async disconnect(): Promise<void> {
|
|
57
|
-
await this.initPromise;
|
|
58
|
-
this.db.close();
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
async query<T = any>(sql: string, params?: any[]): Promise<T[]> {
|
|
62
|
-
await this.initPromise;
|
|
63
|
-
try {
|
|
64
|
-
const stmt = this.db.prepare(sql);
|
|
65
|
-
const results = stmt.all(params || []);
|
|
66
|
-
return results as T[];
|
|
67
|
-
} catch (error) {
|
|
68
|
-
this.logger.error('SQLite query failed', 'Query', {
|
|
69
|
-
sql,
|
|
70
|
-
error: error instanceof Error ? error.message : String(error),
|
|
71
|
-
});
|
|
72
|
-
throw error;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
async queryOne<T = any>(sql: string, params?: any[]): Promise<T | null> {
|
|
77
|
-
await this.initPromise;
|
|
78
|
-
try {
|
|
79
|
-
const stmt = this.db.prepare(sql);
|
|
80
|
-
const result = stmt.get(params || []);
|
|
81
|
-
return (result as T) || null;
|
|
82
|
-
} catch (error) {
|
|
83
|
-
this.logger.error('SQLite queryOne failed', 'Query', {
|
|
84
|
-
sql,
|
|
85
|
-
error: error instanceof Error ? error.message : String(error),
|
|
86
|
-
});
|
|
87
|
-
throw error;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
async insert<T = any>(table: string, data: Record<string, any>): Promise<T> {
|
|
92
|
-
await this.initPromise;
|
|
93
|
-
const keys = Object.keys(data);
|
|
94
|
-
const values = Object.values(data);
|
|
95
|
-
const placeholders = keys.map(() => '?').join(', ');
|
|
96
|
-
|
|
97
|
-
const sql = `INSERT INTO ${table} (${keys.join(', ')}) VALUES (${placeholders})`;
|
|
98
|
-
|
|
99
|
-
try {
|
|
100
|
-
const stmt = this.db.prepare(sql);
|
|
101
|
-
const info = stmt.run(values);
|
|
102
|
-
|
|
103
|
-
// Return the inserted record
|
|
104
|
-
const insertedRecord = await this.queryOne<T>(`SELECT * FROM ${table} WHERE rowid = ?`, [
|
|
105
|
-
info.lastInsertRowid,
|
|
106
|
-
]);
|
|
107
|
-
|
|
108
|
-
return insertedRecord!;
|
|
109
|
-
} catch (error) {
|
|
110
|
-
this.logger.error('SQLite insert failed', 'Insert', {
|
|
111
|
-
table,
|
|
112
|
-
error: error instanceof Error ? error.message : String(error),
|
|
113
|
-
});
|
|
114
|
-
throw error;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
async update<T = any>(
|
|
119
|
-
table: string,
|
|
120
|
-
data: Record<string, any>,
|
|
121
|
-
where: Record<string, any>
|
|
122
|
-
): Promise<T> {
|
|
123
|
-
await this.initPromise;
|
|
124
|
-
const setClause = Object.keys(data)
|
|
125
|
-
.map(key => `${key} = ?`)
|
|
126
|
-
.join(', ');
|
|
127
|
-
const whereClause = Object.keys(where)
|
|
128
|
-
.map(key => `${key} = ?`)
|
|
129
|
-
.join(' AND ');
|
|
130
|
-
|
|
131
|
-
const sql = `UPDATE ${table} SET ${setClause} WHERE ${whereClause}`;
|
|
132
|
-
const params = [...Object.values(data), ...Object.values(where)];
|
|
133
|
-
|
|
134
|
-
try {
|
|
135
|
-
const stmt = this.db.prepare(sql);
|
|
136
|
-
stmt.run(params);
|
|
137
|
-
|
|
138
|
-
// Return the updated record
|
|
139
|
-
const updatedRecord = await this.queryOne<T>(
|
|
140
|
-
`SELECT * FROM ${table} WHERE ${whereClause}`,
|
|
141
|
-
Object.values(where)
|
|
142
|
-
);
|
|
143
|
-
|
|
144
|
-
return updatedRecord!;
|
|
145
|
-
} catch (error) {
|
|
146
|
-
this.logger.error('SQLite update failed', 'Update', {
|
|
147
|
-
table,
|
|
148
|
-
error: error instanceof Error ? error.message : String(error),
|
|
149
|
-
});
|
|
150
|
-
throw error;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
async delete(table: string, where: Record<string, any>): Promise<number> {
|
|
155
|
-
await this.initPromise;
|
|
156
|
-
const whereClause = Object.keys(where)
|
|
157
|
-
.map(key => `${key} = ?`)
|
|
158
|
-
.join(' AND ');
|
|
159
|
-
const sql = `DELETE FROM ${table} WHERE ${whereClause}`;
|
|
160
|
-
|
|
161
|
-
try {
|
|
162
|
-
const stmt = this.db.prepare(sql);
|
|
163
|
-
const info = stmt.run(Object.values(where));
|
|
164
|
-
return info.changes;
|
|
165
|
-
} catch (error) {
|
|
166
|
-
this.logger.error('SQLite delete failed', 'Delete', {
|
|
167
|
-
table,
|
|
168
|
-
error: error instanceof Error ? error.message : String(error),
|
|
169
|
-
});
|
|
170
|
-
throw error;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
async transaction<T>(callback: (tx: DatabaseTransaction) => Promise<T>): Promise<T> {
|
|
175
|
-
await this.initPromise;
|
|
176
|
-
const transaction = this.db.transaction(async () => {
|
|
177
|
-
const tx = new SQLiteTransaction(this.db);
|
|
178
|
-
return await callback(tx);
|
|
179
|
-
});
|
|
180
|
-
|
|
181
|
-
return transaction();
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
class SQLiteTransaction implements DatabaseTransaction {
|
|
186
|
-
constructor(private db: any) {}
|
|
187
|
-
|
|
188
|
-
async query<T = any>(sql: string, params?: any[]): Promise<T[]> {
|
|
189
|
-
const stmt = this.db.prepare(sql);
|
|
190
|
-
const results = stmt.all(params || []);
|
|
191
|
-
return results as T[];
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
async queryOne<T = any>(sql: string, params?: any[]): Promise<T | null> {
|
|
195
|
-
const stmt = this.db.prepare(sql);
|
|
196
|
-
const result = stmt.get(params || []);
|
|
197
|
-
return (result as T) || null;
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
async insert<T = any>(table: string, data: Record<string, any>): Promise<T> {
|
|
201
|
-
const keys = Object.keys(data);
|
|
202
|
-
const values = Object.values(data);
|
|
203
|
-
const placeholders = keys.map(() => '?').join(', ');
|
|
204
|
-
|
|
205
|
-
const sql = `INSERT INTO ${table} (${keys.join(', ')}) VALUES (${placeholders})`;
|
|
206
|
-
const stmt = this.db.prepare(sql);
|
|
207
|
-
const info = stmt.run(values);
|
|
208
|
-
|
|
209
|
-
const insertedRecord = await this.queryOne<T>(`SELECT * FROM ${table} WHERE rowid = ?`, [
|
|
210
|
-
info.lastInsertRowid,
|
|
211
|
-
]);
|
|
212
|
-
|
|
213
|
-
return insertedRecord!;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
async update<T = any>(
|
|
217
|
-
table: string,
|
|
218
|
-
data: Record<string, any>,
|
|
219
|
-
where: Record<string, any>
|
|
220
|
-
): Promise<T> {
|
|
221
|
-
const setClause = Object.keys(data)
|
|
222
|
-
.map(key => `${key} = ?`)
|
|
223
|
-
.join(', ');
|
|
224
|
-
const whereClause = Object.keys(where)
|
|
225
|
-
.map(key => `${key} = ?`)
|
|
226
|
-
.join(' AND ');
|
|
227
|
-
|
|
228
|
-
const sql = `UPDATE ${table} SET ${setClause} WHERE ${whereClause}`;
|
|
229
|
-
const params = [...Object.values(data), ...Object.values(where)];
|
|
230
|
-
|
|
231
|
-
const stmt = this.db.prepare(sql);
|
|
232
|
-
stmt.run(params);
|
|
233
|
-
|
|
234
|
-
const updatedRecord = await this.queryOne<T>(
|
|
235
|
-
`SELECT * FROM ${table} WHERE ${whereClause}`,
|
|
236
|
-
Object.values(where)
|
|
237
|
-
);
|
|
238
|
-
|
|
239
|
-
return updatedRecord!;
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
async delete(table: string, where: Record<string, any>): Promise<number> {
|
|
243
|
-
const whereClause = Object.keys(where)
|
|
244
|
-
.map(key => `${key} = ?`)
|
|
245
|
-
.join(' AND ');
|
|
246
|
-
const sql = `DELETE FROM ${table} WHERE ${whereClause}`;
|
|
247
|
-
|
|
248
|
-
const stmt = this.db.prepare(sql);
|
|
249
|
-
const info = stmt.run(Object.values(where));
|
|
250
|
-
return info.changes;
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
async commit(): Promise<void> {
|
|
254
|
-
// SQLite transactions are handled automatically by better-sqlite3
|
|
255
|
-
// This is just for interface compatibility
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
async rollback(): Promise<void> {
|
|
259
|
-
// SQLite transactions are handled automatically by better-sqlite3
|
|
260
|
-
// This is just for interface compatibility
|
|
261
|
-
throw new Error('Transaction rollback');
|
|
262
|
-
}
|
|
263
|
-
}
|
package/src/core/docs/index.ts
DELETED
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
// Moro Framework Documentation System
|
|
2
|
-
// Automatic API documentation generation from intelligent routes and Validation schemas
|
|
3
|
-
|
|
4
|
-
import { CompiledRoute } from '../routing/index.js';
|
|
5
|
-
import { IntelligentRoutingManager } from '../routing/app-integration.js';
|
|
6
|
-
import {
|
|
7
|
-
OpenAPIGenerator,
|
|
8
|
-
generateOpenAPIFromRoutes,
|
|
9
|
-
GenerationOptions,
|
|
10
|
-
OpenAPISpec,
|
|
11
|
-
defaultSecuritySchemes,
|
|
12
|
-
} from './openapi-generator.js';
|
|
13
|
-
import { SwaggerUIMiddleware, SwaggerUIOptions, createDocsMiddleware } from './swagger-ui.js';
|
|
14
|
-
import { createFrameworkLogger } from '../logger/index.js';
|
|
15
|
-
|
|
16
|
-
const logger = createFrameworkLogger('DocumentationSystem');
|
|
17
|
-
|
|
18
|
-
// Documentation configuration
|
|
19
|
-
export interface DocsConfig {
|
|
20
|
-
title: string;
|
|
21
|
-
version: string;
|
|
22
|
-
description?: string;
|
|
23
|
-
basePath?: string;
|
|
24
|
-
servers?: Array<{ url: string; description?: string }>;
|
|
25
|
-
contact?: {
|
|
26
|
-
name?: string;
|
|
27
|
-
url?: string;
|
|
28
|
-
email?: string;
|
|
29
|
-
};
|
|
30
|
-
license?: {
|
|
31
|
-
name: string;
|
|
32
|
-
url?: string;
|
|
33
|
-
};
|
|
34
|
-
swaggerUI?: SwaggerUIOptions;
|
|
35
|
-
includeExamples?: boolean;
|
|
36
|
-
includeSchemas?: boolean;
|
|
37
|
-
enableAuth?: boolean;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
// Main documentation system class
|
|
41
|
-
export class DocumentationSystem {
|
|
42
|
-
private generator: OpenAPIGenerator;
|
|
43
|
-
private swaggerUI: SwaggerUIMiddleware;
|
|
44
|
-
private config: DocsConfig;
|
|
45
|
-
|
|
46
|
-
constructor(config: DocsConfig) {
|
|
47
|
-
this.config = {
|
|
48
|
-
basePath: '/docs',
|
|
49
|
-
includeExamples: true,
|
|
50
|
-
includeSchemas: true,
|
|
51
|
-
enableAuth: true,
|
|
52
|
-
...config,
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
// Create OpenAPI generator
|
|
56
|
-
const generationOptions: GenerationOptions = {
|
|
57
|
-
info: {
|
|
58
|
-
title: this.config.title,
|
|
59
|
-
version: this.config.version,
|
|
60
|
-
description: this.config.description,
|
|
61
|
-
contact: this.config.contact,
|
|
62
|
-
license: this.config.license,
|
|
63
|
-
},
|
|
64
|
-
servers: this.config.servers,
|
|
65
|
-
includeExamples: this.config.includeExamples,
|
|
66
|
-
includeSchemas: this.config.includeSchemas,
|
|
67
|
-
securitySchemes: this.config.enableAuth ? defaultSecuritySchemes : undefined,
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
this.generator = new OpenAPIGenerator(generationOptions);
|
|
71
|
-
|
|
72
|
-
// Initialize with empty spec
|
|
73
|
-
const initialSpec = this.generator.generate();
|
|
74
|
-
this.swaggerUI = new SwaggerUIMiddleware(initialSpec, this.config.swaggerUI);
|
|
75
|
-
|
|
76
|
-
logger.info('Documentation system initialized', 'Initialization', {
|
|
77
|
-
title: this.config.title,
|
|
78
|
-
basePath: this.config.basePath,
|
|
79
|
-
includeExamples: this.config.includeExamples,
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
// Generate documentation from intelligent routing manager
|
|
84
|
-
generateFromRoutes(routes: CompiledRoute[]): OpenAPISpec {
|
|
85
|
-
this.generator.addRoutes(routes);
|
|
86
|
-
const spec = this.generator.generate();
|
|
87
|
-
|
|
88
|
-
// Update Swagger UI with new spec
|
|
89
|
-
this.swaggerUI.updateSpec(spec);
|
|
90
|
-
|
|
91
|
-
logger.info('Documentation generated from routes', 'Generation', {
|
|
92
|
-
routeCount: routes.length,
|
|
93
|
-
pathCount: Object.keys(spec.paths).length,
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
return spec;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
// Create middleware that serves the documentation
|
|
100
|
-
createMiddleware() {
|
|
101
|
-
return this.swaggerUI.createMiddleware(this.config.basePath);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
// Generate OpenAPI spec as JSON
|
|
105
|
-
getOpenAPIJSON(): string {
|
|
106
|
-
return this.generator.generateJSON();
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
// Generate OpenAPI spec as YAML
|
|
110
|
-
getOpenAPIYAML(): string {
|
|
111
|
-
return this.generator.generateYAML();
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
// Get the current OpenAPI spec
|
|
115
|
-
getSpec(): OpenAPISpec {
|
|
116
|
-
return this.generator.generate();
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
// Update configuration
|
|
120
|
-
updateConfig(newConfig: Partial<DocsConfig>): void {
|
|
121
|
-
this.config = { ...this.config, ...newConfig };
|
|
122
|
-
logger.debug('Documentation configuration updated', 'ConfigUpdate', {
|
|
123
|
-
title: this.config.title,
|
|
124
|
-
basePath: this.config.basePath,
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
// App integration mixin for documentation
|
|
130
|
-
export interface AppWithDocs {
|
|
131
|
-
// Enable automatic API documentation
|
|
132
|
-
enableDocs(config: DocsConfig): void;
|
|
133
|
-
|
|
134
|
-
// Get the current OpenAPI specification
|
|
135
|
-
getOpenAPISpec(): OpenAPISpec;
|
|
136
|
-
|
|
137
|
-
// Get documentation as JSON
|
|
138
|
-
getDocsJSON(): string;
|
|
139
|
-
|
|
140
|
-
// Get documentation as YAML
|
|
141
|
-
getDocsYAML(): string;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
// Documentation integration for apps
|
|
145
|
-
export class AppDocumentationManager {
|
|
146
|
-
private docSystem?: DocumentationSystem;
|
|
147
|
-
private routingManager?: IntelligentRoutingManager;
|
|
148
|
-
|
|
149
|
-
// Initialize documentation system
|
|
150
|
-
enableDocs(config: DocsConfig, routingManager: IntelligentRoutingManager): void {
|
|
151
|
-
this.routingManager = routingManager;
|
|
152
|
-
this.docSystem = new DocumentationSystem(config);
|
|
153
|
-
|
|
154
|
-
// Generate docs from current routes
|
|
155
|
-
const routes = routingManager.getIntelligentRoutes();
|
|
156
|
-
this.docSystem.generateFromRoutes(routes);
|
|
157
|
-
|
|
158
|
-
logger.info('Documentation enabled for app', 'AppIntegration', {
|
|
159
|
-
title: config.title,
|
|
160
|
-
routeCount: routes.length,
|
|
161
|
-
basePath: config.basePath,
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
// Get documentation middleware
|
|
166
|
-
getDocsMiddleware() {
|
|
167
|
-
if (!this.docSystem) {
|
|
168
|
-
throw new Error('Documentation not enabled. Call enableDocs() first.');
|
|
169
|
-
}
|
|
170
|
-
return this.docSystem.createMiddleware();
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
// Refresh documentation (useful after adding new routes)
|
|
174
|
-
refreshDocs(): void {
|
|
175
|
-
if (!this.docSystem || !this.routingManager) {
|
|
176
|
-
throw new Error('Documentation not enabled. Call enableDocs() first.');
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
const routes = this.routingManager.getIntelligentRoutes();
|
|
180
|
-
this.docSystem.generateFromRoutes(routes);
|
|
181
|
-
|
|
182
|
-
logger.debug('Documentation refreshed', 'Refresh', {
|
|
183
|
-
routeCount: routes.length,
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
// Get current OpenAPI spec
|
|
188
|
-
getOpenAPISpec(): OpenAPISpec {
|
|
189
|
-
if (!this.docSystem) {
|
|
190
|
-
throw new Error('Documentation not enabled. Call enableDocs() first.');
|
|
191
|
-
}
|
|
192
|
-
return this.docSystem.getSpec();
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
// Get docs as JSON
|
|
196
|
-
getDocsJSON(): string {
|
|
197
|
-
if (!this.docSystem) {
|
|
198
|
-
throw new Error('Documentation not enabled. Call enableDocs() first.');
|
|
199
|
-
}
|
|
200
|
-
return this.docSystem.getOpenAPIJSON();
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
// Get docs as YAML
|
|
204
|
-
getDocsYAML(): string {
|
|
205
|
-
if (!this.docSystem) {
|
|
206
|
-
throw new Error('Documentation not enabled. Call enableDocs() first.');
|
|
207
|
-
}
|
|
208
|
-
return this.docSystem.getOpenAPIYAML();
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
// Convenience functions
|
|
213
|
-
export function createDocumentationSystem(config: DocsConfig): DocumentationSystem {
|
|
214
|
-
return new DocumentationSystem(config);
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
export function generateDocsFromIntelligentRoutes(
|
|
218
|
-
routes: CompiledRoute[],
|
|
219
|
-
config: DocsConfig
|
|
220
|
-
): { spec: OpenAPISpec; middleware: any } {
|
|
221
|
-
const docSystem = new DocumentationSystem(config);
|
|
222
|
-
const spec = docSystem.generateFromRoutes(routes);
|
|
223
|
-
const middleware = docSystem.createMiddleware();
|
|
224
|
-
|
|
225
|
-
return { spec, middleware };
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
// Export all types and functions
|
|
229
|
-
export * from './openapi-generator.js';
|
|
230
|
-
export * from './swagger-ui.js';
|
|
231
|
-
export * from './zod-to-openapi.js';
|