@morojs/moro 1.5.17 → 1.6.0
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 +70 -269
- package/dist/core/auth/morojs-adapter.js +5 -9
- package/dist/core/auth/morojs-adapter.js.map +1 -1
- package/dist/core/config/config-manager.d.ts +1 -1
- package/dist/core/config/config-manager.js +10 -20
- package/dist/core/config/config-manager.js.map +1 -1
- package/dist/core/config/config-sources.d.ts +2 -2
- package/dist/core/config/config-sources.js +17 -20
- package/dist/core/config/config-sources.js.map +1 -1
- package/dist/core/config/config-validator.d.ts +1 -1
- package/dist/core/config/config-validator.js +33 -10
- package/dist/core/config/config-validator.js.map +1 -1
- package/dist/core/config/file-loader.d.ts +1 -1
- package/dist/core/config/file-loader.js +19 -78
- package/dist/core/config/file-loader.js.map +1 -1
- package/dist/core/config/index.d.ts +8 -8
- package/dist/core/config/index.js +25 -51
- package/dist/core/config/index.js.map +1 -1
- package/dist/core/config/schema.d.ts +2 -2
- package/dist/core/config/schema.js +11 -13
- package/dist/core/config/schema.js.map +1 -1
- package/dist/core/config/utils.d.ts +1 -1
- package/dist/core/config/utils.js +18 -32
- 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 +18 -11
- 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 +19 -29
- package/dist/core/database/adapters/index.js.map +1 -1
- package/dist/core/database/adapters/mongodb.d.ts +3 -1
- package/dist/core/database/adapters/mongodb.js +23 -8
- package/dist/core/database/adapters/mongodb.js.map +1 -1
- package/dist/core/database/adapters/mysql.d.ts +3 -1
- package/dist/core/database/adapters/mysql.js +18 -9
- package/dist/core/database/adapters/mysql.js.map +1 -1
- package/dist/core/database/adapters/postgresql.d.ts +3 -1
- package/dist/core/database/adapters/postgresql.js +18 -8
- package/dist/core/database/adapters/postgresql.js.map +1 -1
- package/dist/core/database/adapters/redis.d.ts +3 -1
- package/dist/core/database/adapters/redis.js +34 -9
- package/dist/core/database/adapters/redis.js.map +1 -1
- package/dist/core/database/adapters/sqlite.d.ts +3 -1
- package/dist/core/database/adapters/sqlite.js +19 -8
- package/dist/core/database/adapters/sqlite.js.map +1 -1
- package/dist/core/database/index.d.ts +2 -2
- package/dist/core/database/index.js +2 -18
- package/dist/core/database/index.js.map +1 -1
- package/dist/core/docs/index.d.ts +9 -9
- package/dist/core/docs/index.js +14 -35
- package/dist/core/docs/index.js.map +1 -1
- package/dist/core/docs/openapi-generator.d.ts +2 -2
- package/dist/core/docs/openapi-generator.js +11 -16
- package/dist/core/docs/openapi-generator.js.map +1 -1
- package/dist/core/docs/schema-to-openapi.d.ts +2 -2
- package/dist/core/docs/schema-to-openapi.js +5 -11
- package/dist/core/docs/schema-to-openapi.js.map +1 -1
- package/dist/core/docs/simple-docs.d.ts +1 -1
- package/dist/core/docs/simple-docs.js +4 -9
- 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 +26 -29
- package/dist/core/docs/swagger-ui.js.map +1 -1
- package/dist/core/docs/zod-to-openapi.js +31 -28
- 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 +6 -10
- package/dist/core/events/event-bus.js.map +1 -1
- package/dist/core/events/index.d.ts +2 -2
- package/dist/core/events/index.js +1 -5
- package/dist/core/events/index.js.map +1 -1
- package/dist/core/framework.d.ts +14 -6
- package/dist/core/framework.js +150 -88
- package/dist/core/framework.js.map +1 -1
- package/dist/core/http/http-server.d.ts +1 -1
- package/dist/core/http/http-server.js +24 -62
- package/dist/core/http/http-server.js.map +1 -1
- package/dist/core/http/index.d.ts +4 -3
- package/dist/core/http/index.js +3 -8
- package/dist/core/http/index.js.map +1 -1
- package/dist/core/http/router.d.ts +1 -1
- package/dist/core/http/router.js +3 -7
- package/dist/core/http/router.js.map +1 -1
- package/dist/core/http/uws-http-server.d.ts +64 -0
- package/dist/core/http/uws-http-server.js +688 -0
- package/dist/core/http/uws-http-server.js.map +1 -0
- package/dist/core/logger/filters.d.ts +1 -1
- package/dist/core/logger/filters.js +8 -19
- package/dist/core/logger/filters.js.map +1 -1
- package/dist/core/logger/index.d.ts +3 -3
- package/dist/core/logger/index.js +2 -25
- package/dist/core/logger/index.js.map +1 -1
- package/dist/core/logger/logger.d.ts +1 -1
- package/dist/core/logger/logger.js +21 -23
- package/dist/core/logger/logger.js.map +1 -1
- package/dist/core/logger/outputs.d.ts +1 -1
- package/dist/core/logger/outputs.js +8 -15
- 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 +10 -47
- 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 +10 -17
- 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 +3 -7
- package/dist/core/middleware/built-in/adapters/cache/memory.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cache/redis.d.ts +3 -1
- package/dist/core/middleware/built-in/adapters/cache/redis.js +11 -9
- 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 +3 -7
- 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 +3 -7
- package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/cloudfront.d.ts +3 -1
- package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js +12 -10
- 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 +10 -17
- package/dist/core/middleware/built-in/adapters/cdn/index.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/index.d.ts +4 -4
- package/dist/core/middleware/built-in/adapters/index.js +4 -23
- package/dist/core/middleware/built-in/adapters/index.js.map +1 -1
- package/dist/core/middleware/built-in/auth-helpers.js +11 -22
- package/dist/core/middleware/built-in/auth-helpers.js.map +1 -1
- package/dist/core/middleware/built-in/auth-providers.d.ts +1 -1
- package/dist/core/middleware/built-in/auth-providers.js +4 -9
- package/dist/core/middleware/built-in/auth-providers.js.map +1 -1
- package/dist/core/middleware/built-in/auth.d.ts +2 -2
- package/dist/core/middleware/built-in/auth.js +10 -14
- package/dist/core/middleware/built-in/auth.js.map +1 -1
- package/dist/core/middleware/built-in/cache.d.ts +2 -2
- package/dist/core/middleware/built-in/cache.js +8 -11
- 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 +5 -9
- package/dist/core/middleware/built-in/cdn.js.map +1 -1
- package/dist/core/middleware/built-in/cookie.d.ts +1 -1
- package/dist/core/middleware/built-in/cookie.js +3 -7
- 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 +3 -7
- package/dist/core/middleware/built-in/cors.js.map +1 -1
- package/dist/core/middleware/built-in/csp.d.ts +1 -1
- package/dist/core/middleware/built-in/csp.js +5 -8
- 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 +5 -8
- package/dist/core/middleware/built-in/csrf.js.map +1 -1
- package/dist/core/middleware/built-in/error-tracker.js +3 -7
- package/dist/core/middleware/built-in/error-tracker.js.map +1 -1
- package/dist/core/middleware/built-in/index.d.ts +28 -28
- package/dist/core/middleware/built-in/index.js +47 -82
- package/dist/core/middleware/built-in/index.js.map +1 -1
- package/dist/core/middleware/built-in/jwt-helpers.d.ts +1 -1
- package/dist/core/middleware/built-in/jwt-helpers.js +6 -9
- package/dist/core/middleware/built-in/jwt-helpers.js.map +1 -1
- package/dist/core/middleware/built-in/performance-monitor.js +3 -7
- package/dist/core/middleware/built-in/performance-monitor.js.map +1 -1
- package/dist/core/middleware/built-in/rate-limit.d.ts +1 -1
- package/dist/core/middleware/built-in/rate-limit.js +3 -7
- package/dist/core/middleware/built-in/rate-limit.js.map +1 -1
- package/dist/core/middleware/built-in/request-logger.js +3 -7
- package/dist/core/middleware/built-in/request-logger.js.map +1 -1
- package/dist/core/middleware/built-in/session.d.ts +2 -2
- package/dist/core/middleware/built-in/session.js +11 -15
- 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 +3 -7
- 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 +3 -7
- package/dist/core/middleware/built-in/validation.js.map +1 -1
- package/dist/core/middleware/index.d.ts +4 -4
- package/dist/core/middleware/index.js +8 -28
- package/dist/core/middleware/index.js.map +1 -1
- package/dist/core/modules/auto-discovery.d.ts +3 -3
- package/dist/core/modules/auto-discovery.js +43 -81
- 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 +2 -9
- package/dist/core/modules/index.js.map +1 -1
- package/dist/core/modules/modules.d.ts +3 -3
- package/dist/core/modules/modules.js +11 -52
- package/dist/core/modules/modules.js.map +1 -1
- package/dist/core/networking/adapters/index.d.ts +4 -3
- package/dist/core/networking/adapters/index.js +3 -7
- package/dist/core/networking/adapters/index.js.map +1 -1
- package/dist/core/networking/adapters/socketio-adapter.d.ts +1 -1
- package/dist/core/networking/adapters/socketio-adapter.js +5 -40
- package/dist/core/networking/adapters/socketio-adapter.js.map +1 -1
- package/dist/core/networking/adapters/uws-adapter.d.ts +44 -0
- package/dist/core/networking/adapters/uws-adapter.js +513 -0
- package/dist/core/networking/adapters/uws-adapter.js.map +1 -0
- package/dist/core/networking/adapters/ws-adapter.d.ts +1 -1
- package/dist/core/networking/adapters/ws-adapter.js +7 -42
- package/dist/core/networking/adapters/ws-adapter.js.map +1 -1
- package/dist/core/networking/index.d.ts +3 -2
- package/dist/core/networking/index.js +2 -7
- package/dist/core/networking/index.js.map +1 -1
- package/dist/core/networking/service-discovery.js +3 -7
- package/dist/core/networking/service-discovery.js.map +1 -1
- package/dist/core/networking/websocket-adapter.js +1 -2
- package/dist/core/networking/websocket-adapter.js.map +1 -1
- package/dist/core/networking/websocket-manager.d.ts +3 -3
- package/dist/core/networking/websocket-manager.js +9 -11
- 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 +7 -12
- package/dist/core/routing/app-integration.js.map +1 -1
- package/dist/core/routing/index.d.ts +2 -2
- package/dist/core/routing/index.js +7 -14
- 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 +2 -6
- 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 +3 -7
- 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 +2 -6
- package/dist/core/runtime/cloudflare-workers-adapter.js.map +1 -1
- package/dist/core/runtime/index.d.ts +12 -12
- package/dist/core/runtime/index.js +22 -35
- package/dist/core/runtime/index.js.map +1 -1
- package/dist/core/runtime/node-adapter.d.ts +4 -4
- package/dist/core/runtime/node-adapter.js +6 -43
- 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 +2 -6
- package/dist/core/runtime/vercel-edge-adapter.js.map +1 -1
- package/dist/core/utilities/circuit-breaker.js +1 -5
- package/dist/core/utilities/circuit-breaker.js.map +1 -1
- package/dist/core/utilities/container.js +12 -22
- package/dist/core/utilities/container.js.map +1 -1
- package/dist/core/utilities/hooks.d.ts +2 -2
- package/dist/core/utilities/hooks.js +7 -12
- package/dist/core/utilities/hooks.js.map +1 -1
- package/dist/core/utilities/index.d.ts +5 -4
- package/dist/core/utilities/index.js +5 -19
- package/dist/core/utilities/index.js.map +1 -1
- package/dist/core/utilities/package-utils.d.ts +38 -0
- package/dist/core/utilities/package-utils.js +57 -0
- package/dist/core/utilities/package-utils.js.map +1 -0
- package/dist/core/validation/adapters.d.ts +1 -1
- package/dist/core/validation/adapters.js +15 -26
- package/dist/core/validation/adapters.js.map +1 -1
- package/dist/core/validation/index.d.ts +6 -4
- package/dist/core/validation/index.js +57 -28
- package/dist/core/validation/index.js.map +1 -1
- package/dist/core/validation/schema-interface.js +3 -9
- package/dist/core/validation/schema-interface.js.map +1 -1
- package/dist/index.d.ts +51 -52
- package/dist/index.js +23 -132
- package/dist/index.js.map +1 -1
- package/dist/moro.d.ts +13 -10
- package/dist/moro.js +132 -102
- package/dist/moro.js.map +1 -1
- package/dist/types/auth.js +3 -9
- package/dist/types/auth.js.map +1 -1
- package/dist/types/cache.js +1 -2
- package/dist/types/cdn.js +1 -2
- package/dist/types/config.d.ts +13 -1
- package/dist/types/config.js +1 -2
- package/dist/types/config.js.map +1 -1
- package/dist/types/core.d.ts +3 -3
- package/dist/types/core.js +1 -2
- package/dist/types/database.js +1 -2
- package/dist/types/discovery.js +1 -2
- package/dist/types/events.js +1 -2
- package/dist/types/hooks.d.ts +1 -1
- package/dist/types/hooks.js +1 -2
- package/dist/types/http.js +1 -2
- package/dist/types/logger.js +1 -2
- package/dist/types/module.js +1 -2
- package/dist/types/runtime.d.ts +1 -1
- package/dist/types/runtime.js +1 -2
- package/dist/types/session.js +1 -2
- package/jest.config.mjs +41 -0
- package/package.json +18 -51
- package/src/core/auth/morojs-adapter.ts +1 -1
- package/src/core/config/config-manager.ts +2 -2
- package/src/core/config/config-sources.ts +6 -6
- package/src/core/config/config-validator.ts +38 -3
- package/src/core/config/file-loader.ts +13 -40
- package/src/core/config/index.ts +15 -11
- package/src/core/config/schema.ts +3 -2
- package/src/core/config/utils.ts +3 -3
- package/src/core/database/adapters/drizzle.ts +18 -6
- package/src/core/database/adapters/index.ts +13 -13
- package/src/core/database/adapters/mongodb.ts +23 -3
- package/src/core/database/adapters/mysql.ts +18 -4
- package/src/core/database/adapters/postgresql.ts +18 -3
- package/src/core/database/adapters/redis.ts +34 -4
- package/src/core/database/adapters/sqlite.ts +19 -3
- package/src/core/database/index.ts +2 -2
- package/src/core/docs/index.ts +8 -8
- package/src/core/docs/openapi-generator.ts +4 -4
- package/src/core/docs/schema-to-openapi.ts +3 -6
- package/src/core/docs/simple-docs.ts +2 -2
- package/src/core/docs/swagger-ui.ts +19 -16
- package/src/core/docs/zod-to-openapi.ts +34 -34
- package/src/core/events/event-bus.ts +2 -2
- package/src/core/events/index.ts +2 -2
- package/src/core/framework.ts +148 -44
- package/src/core/http/http-server.ts +14 -9
- package/src/core/http/index.ts +4 -3
- package/src/core/http/router.ts +2 -2
- package/src/core/http/uws-http-server.ts +794 -0
- package/src/core/logger/filters.ts +1 -1
- package/src/core/logger/index.ts +3 -3
- package/src/core/logger/logger.ts +9 -1
- package/src/core/logger/outputs.ts +1 -1
- package/src/core/middleware/built-in/adapters/cache/file.ts +3 -3
- package/src/core/middleware/built-in/adapters/cache/index.ts +7 -7
- package/src/core/middleware/built-in/adapters/cache/memory.ts +2 -2
- package/src/core/middleware/built-in/adapters/cache/redis.ts +18 -4
- package/src/core/middleware/built-in/adapters/cdn/azure.ts +2 -2
- package/src/core/middleware/built-in/adapters/cdn/cloudflare.ts +2 -2
- package/src/core/middleware/built-in/adapters/cdn/cloudfront.ts +16 -5
- package/src/core/middleware/built-in/adapters/cdn/index.ts +7 -7
- package/src/core/middleware/built-in/adapters/index.ts +4 -4
- package/src/core/middleware/built-in/auth-helpers.ts +1 -1
- package/src/core/middleware/built-in/auth-providers.ts +1 -1
- package/src/core/middleware/built-in/auth.ts +6 -6
- package/src/core/middleware/built-in/cache.ts +5 -5
- package/src/core/middleware/built-in/cdn.ts +4 -4
- package/src/core/middleware/built-in/cookie.ts +2 -2
- package/src/core/middleware/built-in/cors.ts +2 -2
- package/src/core/middleware/built-in/csp.ts +3 -3
- package/src/core/middleware/built-in/csrf.ts +3 -3
- package/src/core/middleware/built-in/error-tracker.ts +1 -1
- package/src/core/middleware/built-in/index.ts +31 -31
- package/src/core/middleware/built-in/jwt-helpers.ts +6 -3
- package/src/core/middleware/built-in/performance-monitor.ts +1 -1
- package/src/core/middleware/built-in/rate-limit.ts +2 -2
- package/src/core/middleware/built-in/request-logger.ts +1 -1
- package/src/core/middleware/built-in/session.ts +7 -8
- package/src/core/middleware/built-in/sse.ts +2 -2
- package/src/core/middleware/built-in/validation.ts +2 -2
- package/src/core/middleware/index.ts +6 -6
- package/src/core/modules/auto-discovery.ts +4 -4
- package/src/core/modules/index.ts +2 -2
- package/src/core/modules/modules.ts +4 -4
- package/src/core/networking/adapters/index.ts +4 -3
- package/src/core/networking/adapters/socketio-adapter.ts +5 -3
- package/src/core/networking/adapters/uws-adapter.ts +619 -0
- package/src/core/networking/adapters/ws-adapter.ts +6 -4
- package/src/core/networking/index.ts +3 -2
- package/src/core/networking/service-discovery.ts +1 -1
- package/src/core/networking/websocket-manager.ts +7 -7
- package/src/core/routing/app-integration.ts +3 -3
- package/src/core/routing/index.ts +3 -3
- package/src/core/runtime/aws-lambda-adapter.ts +3 -3
- package/src/core/runtime/base-adapter.ts +2 -2
- package/src/core/runtime/cloudflare-workers-adapter.ts +3 -3
- package/src/core/runtime/index.ts +13 -13
- package/src/core/runtime/node-adapter.ts +4 -4
- package/src/core/runtime/vercel-edge-adapter.ts +3 -3
- package/src/core/utilities/hooks.ts +3 -3
- package/src/core/utilities/index.ts +5 -4
- package/src/core/utilities/package-utils.ts +59 -0
- package/src/core/validation/adapters.ts +1 -1
- package/src/core/validation/index.ts +68 -16
- package/src/index.ts +73 -66
- package/src/moro.ts +144 -51
- package/src/types/config.ts +13 -1
- package/src/types/core.ts +3 -3
- package/src/types/hooks.ts +1 -1
- package/src/types/runtime.ts +1 -1
- package/tsconfig.json +4 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/database/adapters/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/database/adapters/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,4CAA4C;AAC5C,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,UAAe,EAAE;IACnE,QAAQ,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QAC3B,KAAK,OAAO;YACV,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;QACnC,KAAK,YAAY,CAAC;QAClB,KAAK,UAAU,CAAC;QAChB,KAAK,IAAI;YACP,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACxC,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS;YACZ,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;QACpC,KAAK,SAAS,CAAC;QACf,KAAK,OAAO;YACV,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;QACrC,KAAK,OAAO;YACV,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;QACnC,KAAK,SAAS,CAAC;QACf,KAAK,KAAK;YACR,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;QACrC;YACE,MAAM,IAAI,KAAK,CACb,kCAAkC,IAAI,uEAAuE,CAC9G,CAAC;IACN,CAAC;AACH,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DatabaseAdapter, DatabaseTransaction } from '../../../types/database';
|
|
1
|
+
import { DatabaseAdapter, DatabaseTransaction } from '../../../types/database.js';
|
|
2
2
|
interface MongoDBConfig {
|
|
3
3
|
url?: string;
|
|
4
4
|
host?: string;
|
|
@@ -26,7 +26,9 @@ export declare class MongoDBAdapter implements DatabaseAdapter {
|
|
|
26
26
|
private client;
|
|
27
27
|
private db;
|
|
28
28
|
private logger;
|
|
29
|
+
private initPromise;
|
|
29
30
|
constructor(config: MongoDBConfig);
|
|
31
|
+
private initialize;
|
|
30
32
|
private buildConnectionString;
|
|
31
33
|
connect(): Promise<void>;
|
|
32
34
|
disconnect(): Promise<void>;
|
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const logger_1 = require("../../logger");
|
|
5
|
-
class MongoDBAdapter {
|
|
1
|
+
import { createFrameworkLogger } from '../../logger/index.js';
|
|
2
|
+
import { resolveUserPackage } from '../../utilities/package-utils.js';
|
|
3
|
+
export class MongoDBAdapter {
|
|
6
4
|
client;
|
|
7
5
|
db;
|
|
8
|
-
logger =
|
|
6
|
+
logger = createFrameworkLogger('MongoDB');
|
|
7
|
+
initPromise;
|
|
9
8
|
constructor(config) {
|
|
9
|
+
this.initPromise = this.initialize(config);
|
|
10
|
+
}
|
|
11
|
+
async initialize(config) {
|
|
10
12
|
try {
|
|
11
|
-
const
|
|
13
|
+
const mongodbPath = resolveUserPackage('mongodb');
|
|
14
|
+
const mongodb = await import(mongodbPath);
|
|
15
|
+
const { MongoClient } = mongodb;
|
|
12
16
|
const url = config.url || this.buildConnectionString(config);
|
|
13
17
|
const clientOptions = {
|
|
14
18
|
maxPoolSize: config.maxPoolSize || 10,
|
|
@@ -51,6 +55,7 @@ class MongoDBAdapter {
|
|
|
51
55
|
return `mongodb://${auth}${host}:${port}/${config.database || 'moro_app'}${authSource}`;
|
|
52
56
|
}
|
|
53
57
|
async connect() {
|
|
58
|
+
await this.initPromise;
|
|
54
59
|
try {
|
|
55
60
|
await this.client.connect();
|
|
56
61
|
await this.client.db('admin').command({ ping: 1 });
|
|
@@ -64,10 +69,12 @@ class MongoDBAdapter {
|
|
|
64
69
|
}
|
|
65
70
|
}
|
|
66
71
|
async disconnect() {
|
|
72
|
+
await this.initPromise;
|
|
67
73
|
await this.client.close();
|
|
68
74
|
}
|
|
69
75
|
// For MongoDB, we'll treat "sql" as collection name and "params" as query/pipeline
|
|
70
76
|
async query(collection, pipeline) {
|
|
77
|
+
await this.initPromise;
|
|
71
78
|
try {
|
|
72
79
|
const coll = this.db.collection(collection);
|
|
73
80
|
if (pipeline && Array.isArray(pipeline)) {
|
|
@@ -95,6 +102,7 @@ class MongoDBAdapter {
|
|
|
95
102
|
}
|
|
96
103
|
}
|
|
97
104
|
async queryOne(collection, query) {
|
|
105
|
+
await this.initPromise;
|
|
98
106
|
try {
|
|
99
107
|
const coll = this.db.collection(collection);
|
|
100
108
|
return await coll.findOne(query || {});
|
|
@@ -108,6 +116,7 @@ class MongoDBAdapter {
|
|
|
108
116
|
}
|
|
109
117
|
}
|
|
110
118
|
async insert(collection, data) {
|
|
119
|
+
await this.initPromise;
|
|
111
120
|
try {
|
|
112
121
|
const coll = this.db.collection(collection);
|
|
113
122
|
const result = await coll.insertOne(data);
|
|
@@ -123,6 +132,7 @@ class MongoDBAdapter {
|
|
|
123
132
|
}
|
|
124
133
|
}
|
|
125
134
|
async update(collection, data, where) {
|
|
135
|
+
await this.initPromise;
|
|
126
136
|
try {
|
|
127
137
|
const coll = this.db.collection(collection);
|
|
128
138
|
const result = await coll.findOneAndUpdate(where, { $set: data }, { returnDocument: 'after' });
|
|
@@ -137,6 +147,7 @@ class MongoDBAdapter {
|
|
|
137
147
|
}
|
|
138
148
|
}
|
|
139
149
|
async delete(collection, where) {
|
|
150
|
+
await this.initPromise;
|
|
140
151
|
try {
|
|
141
152
|
const coll = this.db.collection(collection);
|
|
142
153
|
const result = await coll.deleteMany(where);
|
|
@@ -151,6 +162,7 @@ class MongoDBAdapter {
|
|
|
151
162
|
}
|
|
152
163
|
}
|
|
153
164
|
async transaction(callback) {
|
|
165
|
+
await this.initPromise;
|
|
154
166
|
const session = this.client.startSession();
|
|
155
167
|
try {
|
|
156
168
|
return await session.withTransaction(async () => {
|
|
@@ -164,19 +176,23 @@ class MongoDBAdapter {
|
|
|
164
176
|
}
|
|
165
177
|
// MongoDB-specific methods
|
|
166
178
|
async aggregate(collection, pipeline) {
|
|
179
|
+
await this.initPromise;
|
|
167
180
|
const coll = this.db.collection(collection);
|
|
168
181
|
const cursor = coll.aggregate(pipeline);
|
|
169
182
|
return await cursor.toArray();
|
|
170
183
|
}
|
|
171
184
|
async createIndex(collection, index, options) {
|
|
185
|
+
await this.initPromise;
|
|
172
186
|
const coll = this.db.collection(collection);
|
|
173
187
|
return await coll.createIndex(index, options);
|
|
174
188
|
}
|
|
175
189
|
async dropIndex(collection, indexName) {
|
|
190
|
+
await this.initPromise;
|
|
176
191
|
const coll = this.db.collection(collection);
|
|
177
192
|
return await coll.dropIndex(indexName);
|
|
178
193
|
}
|
|
179
194
|
async count(collection, query) {
|
|
195
|
+
await this.initPromise;
|
|
180
196
|
const coll = this.db.collection(collection);
|
|
181
197
|
return await coll.countDocuments(query || {});
|
|
182
198
|
}
|
|
@@ -184,7 +200,6 @@ class MongoDBAdapter {
|
|
|
184
200
|
return this.db.collection(name);
|
|
185
201
|
}
|
|
186
202
|
}
|
|
187
|
-
exports.MongoDBAdapter = MongoDBAdapter;
|
|
188
203
|
class MongoDBTransaction {
|
|
189
204
|
db;
|
|
190
205
|
session;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongodb.js","sourceRoot":"","sources":["../../../../src/core/database/adapters/mongodb.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mongodb.js","sourceRoot":"","sources":["../../../../src/core/database/adapters/mongodb.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DatabaseAdapter, DatabaseTransaction } from '../../../types/database';
|
|
1
|
+
import { DatabaseAdapter, DatabaseTransaction } from '../../../types/database.js';
|
|
2
2
|
interface MySQLConfig {
|
|
3
3
|
host?: string;
|
|
4
4
|
port?: number;
|
|
@@ -21,7 +21,9 @@ interface MySQLConfig {
|
|
|
21
21
|
export declare class MySQLAdapter implements DatabaseAdapter {
|
|
22
22
|
private pool;
|
|
23
23
|
private logger;
|
|
24
|
+
private initPromise;
|
|
24
25
|
constructor(config: MySQLConfig);
|
|
26
|
+
private initialize;
|
|
25
27
|
connect(): Promise<void>;
|
|
26
28
|
disconnect(): Promise<void>;
|
|
27
29
|
query<T = any>(sql: string, params?: any[]): Promise<T[]>;
|
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const logger_1 = require("../../logger");
|
|
5
|
-
class MySQLAdapter {
|
|
1
|
+
import { createFrameworkLogger } from '../../logger/index.js';
|
|
2
|
+
import { resolveUserPackage } from '../../utilities/package-utils.js';
|
|
3
|
+
export class MySQLAdapter {
|
|
6
4
|
pool;
|
|
7
|
-
logger =
|
|
5
|
+
logger = createFrameworkLogger('MySQL');
|
|
6
|
+
initPromise;
|
|
8
7
|
constructor(config) {
|
|
8
|
+
this.initPromise = this.initialize(config);
|
|
9
|
+
}
|
|
10
|
+
async initialize(config) {
|
|
9
11
|
try {
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
+
const mysqlPath = resolveUserPackage('mysql2/promise');
|
|
13
|
+
const mysql = await import(mysqlPath);
|
|
14
|
+
this.pool = mysql.default.createPool({
|
|
12
15
|
host: config.host || 'localhost',
|
|
13
16
|
port: config.port || 3306,
|
|
14
17
|
user: config.user || 'root',
|
|
@@ -25,6 +28,7 @@ class MySQLAdapter {
|
|
|
25
28
|
}
|
|
26
29
|
}
|
|
27
30
|
async connect() {
|
|
31
|
+
await this.initPromise;
|
|
28
32
|
try {
|
|
29
33
|
const connection = await this.pool.getConnection();
|
|
30
34
|
connection.release();
|
|
@@ -38,9 +42,11 @@ class MySQLAdapter {
|
|
|
38
42
|
}
|
|
39
43
|
}
|
|
40
44
|
async disconnect() {
|
|
45
|
+
await this.initPromise;
|
|
41
46
|
await this.pool.end();
|
|
42
47
|
}
|
|
43
48
|
async query(sql, params) {
|
|
49
|
+
await this.initPromise;
|
|
44
50
|
const [rows] = await this.pool.execute(sql, params);
|
|
45
51
|
return rows;
|
|
46
52
|
}
|
|
@@ -49,6 +55,7 @@ class MySQLAdapter {
|
|
|
49
55
|
return results.length > 0 ? results[0] : null;
|
|
50
56
|
}
|
|
51
57
|
async insert(table, data) {
|
|
58
|
+
await this.initPromise;
|
|
52
59
|
const keys = Object.keys(data);
|
|
53
60
|
const values = Object.values(data);
|
|
54
61
|
const placeholders = keys.map(() => '?').join(', ');
|
|
@@ -61,6 +68,7 @@ class MySQLAdapter {
|
|
|
61
68
|
return insertedRecord;
|
|
62
69
|
}
|
|
63
70
|
async update(table, data, where) {
|
|
71
|
+
await this.initPromise;
|
|
64
72
|
const setClause = Object.keys(data)
|
|
65
73
|
.map(key => `${key} = ?`)
|
|
66
74
|
.join(', ');
|
|
@@ -75,6 +83,7 @@ class MySQLAdapter {
|
|
|
75
83
|
return updatedRecord;
|
|
76
84
|
}
|
|
77
85
|
async delete(table, where) {
|
|
86
|
+
await this.initPromise;
|
|
78
87
|
const whereClause = Object.keys(where)
|
|
79
88
|
.map(key => `${key} = ?`)
|
|
80
89
|
.join(' AND ');
|
|
@@ -83,6 +92,7 @@ class MySQLAdapter {
|
|
|
83
92
|
return result.affectedRows;
|
|
84
93
|
}
|
|
85
94
|
async transaction(callback) {
|
|
95
|
+
await this.initPromise;
|
|
86
96
|
const connection = await this.pool.getConnection();
|
|
87
97
|
try {
|
|
88
98
|
await connection.beginTransaction();
|
|
@@ -100,7 +110,6 @@ class MySQLAdapter {
|
|
|
100
110
|
}
|
|
101
111
|
}
|
|
102
112
|
}
|
|
103
|
-
exports.MySQLAdapter = MySQLAdapter;
|
|
104
113
|
class MySQLTransaction {
|
|
105
114
|
connection;
|
|
106
115
|
constructor(connection) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mysql.js","sourceRoot":"","sources":["../../../../src/core/database/adapters/mysql.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mysql.js","sourceRoot":"","sources":["../../../../src/core/database/adapters/mysql.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DatabaseAdapter, DatabaseTransaction } from '../../../types/database';
|
|
1
|
+
import { DatabaseAdapter, DatabaseTransaction } from '../../../types/database.js';
|
|
2
2
|
interface PostgreSQLConfig {
|
|
3
3
|
host?: string;
|
|
4
4
|
port?: number;
|
|
@@ -19,7 +19,9 @@ interface PostgreSQLConfig {
|
|
|
19
19
|
export declare class PostgreSQLAdapter implements DatabaseAdapter {
|
|
20
20
|
private pool;
|
|
21
21
|
private logger;
|
|
22
|
+
private initPromise;
|
|
22
23
|
constructor(config: PostgreSQLConfig);
|
|
24
|
+
private initialize;
|
|
23
25
|
connect(): Promise<void>;
|
|
24
26
|
disconnect(): Promise<void>;
|
|
25
27
|
query<T = any>(sql: string, params?: any[]): Promise<T[]>;
|
|
@@ -1,13 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const logger_1 = require("../../logger");
|
|
5
|
-
class PostgreSQLAdapter {
|
|
1
|
+
import { createFrameworkLogger } from '../../logger/index.js';
|
|
2
|
+
import { resolveUserPackage } from '../../utilities/package-utils.js';
|
|
3
|
+
export class PostgreSQLAdapter {
|
|
6
4
|
pool;
|
|
7
|
-
logger =
|
|
5
|
+
logger = createFrameworkLogger('PostgreSQL');
|
|
6
|
+
initPromise;
|
|
8
7
|
constructor(config) {
|
|
8
|
+
this.initPromise = this.initialize(config);
|
|
9
|
+
}
|
|
10
|
+
async initialize(config) {
|
|
9
11
|
try {
|
|
10
|
-
const
|
|
12
|
+
const pgPath = resolveUserPackage('pg');
|
|
13
|
+
const pg = await import(pgPath);
|
|
14
|
+
const { Pool } = pg.default;
|
|
11
15
|
this.pool = new Pool({
|
|
12
16
|
host: config.host || 'localhost',
|
|
13
17
|
port: config.port || 5432,
|
|
@@ -29,6 +33,7 @@ class PostgreSQLAdapter {
|
|
|
29
33
|
}
|
|
30
34
|
}
|
|
31
35
|
async connect() {
|
|
36
|
+
await this.initPromise;
|
|
32
37
|
try {
|
|
33
38
|
const client = await this.pool.connect();
|
|
34
39
|
client.release();
|
|
@@ -42,9 +47,11 @@ class PostgreSQLAdapter {
|
|
|
42
47
|
}
|
|
43
48
|
}
|
|
44
49
|
async disconnect() {
|
|
50
|
+
await this.initPromise;
|
|
45
51
|
await this.pool.end();
|
|
46
52
|
}
|
|
47
53
|
async query(sql, params) {
|
|
54
|
+
await this.initPromise;
|
|
48
55
|
const result = await this.pool.query(sql, params);
|
|
49
56
|
return result.rows;
|
|
50
57
|
}
|
|
@@ -53,6 +60,7 @@ class PostgreSQLAdapter {
|
|
|
53
60
|
return results.length > 0 ? results[0] : null;
|
|
54
61
|
}
|
|
55
62
|
async insert(table, data) {
|
|
63
|
+
await this.initPromise;
|
|
56
64
|
const keys = Object.keys(data);
|
|
57
65
|
const values = Object.values(data);
|
|
58
66
|
const placeholders = keys.map((_, index) => `$${index + 1}`).join(', ');
|
|
@@ -61,6 +69,7 @@ class PostgreSQLAdapter {
|
|
|
61
69
|
return result.rows[0];
|
|
62
70
|
}
|
|
63
71
|
async update(table, data, where) {
|
|
72
|
+
await this.initPromise;
|
|
64
73
|
const dataKeys = Object.keys(data);
|
|
65
74
|
const dataValues = Object.values(data);
|
|
66
75
|
const whereKeys = Object.keys(where);
|
|
@@ -75,6 +84,7 @@ class PostgreSQLAdapter {
|
|
|
75
84
|
return result.rows[0];
|
|
76
85
|
}
|
|
77
86
|
async delete(table, where) {
|
|
87
|
+
await this.initPromise;
|
|
78
88
|
const whereKeys = Object.keys(where);
|
|
79
89
|
const whereValues = Object.values(where);
|
|
80
90
|
const whereClause = whereKeys.map((key, index) => `${key} = $${index + 1}`).join(' AND ');
|
|
@@ -83,6 +93,7 @@ class PostgreSQLAdapter {
|
|
|
83
93
|
return result.rowCount || 0;
|
|
84
94
|
}
|
|
85
95
|
async transaction(callback) {
|
|
96
|
+
await this.initPromise;
|
|
86
97
|
const client = await this.pool.connect();
|
|
87
98
|
try {
|
|
88
99
|
await client.query('BEGIN');
|
|
@@ -100,7 +111,6 @@ class PostgreSQLAdapter {
|
|
|
100
111
|
}
|
|
101
112
|
}
|
|
102
113
|
}
|
|
103
|
-
exports.PostgreSQLAdapter = PostgreSQLAdapter;
|
|
104
114
|
class PostgreSQLTransaction {
|
|
105
115
|
client;
|
|
106
116
|
constructor(client) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgresql.js","sourceRoot":"","sources":["../../../../src/core/database/adapters/postgresql.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"postgresql.js","sourceRoot":"","sources":["../../../../src/core/database/adapters/postgresql.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAsBtE,MAAM,OAAO,iBAAiB;IACpB,IAAI,CAAM;IACV,MAAM,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;IAC7C,WAAW,CAAgB;IAEnC,YAAY,MAAwB;QAClC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,MAAwB;QAC/C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAChC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC;YAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC;gBACnB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,WAAW;gBAChC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI;gBACzB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,UAAU;gBAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;gBAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,UAAU;gBACvC,GAAG,EAAE,MAAM,CAAC,eAAe,IAAI,EAAE;gBACjC,GAAG,EAAE,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,KAAK;aAC9E,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;gBACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,MAAM,EAAE;oBACjD,KAAK,EAAE,GAAG,CAAC,OAAO;iBACnB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,YAAY,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,gFAAgF,CACjF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,WAAW,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACzC,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE,YAAY,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,YAAY,EAAE;gBAC9D,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,WAAW,CAAC;QACvB,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,KAAK,CAAU,GAAW,EAAE,MAAc;QAC9C,MAAM,IAAI,CAAC,WAAW,CAAC;QACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAClD,OAAO,MAAM,CAAC,IAAW,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAU,GAAW,EAAE,MAAc;QACjD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;QACjD,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,MAAM,CAAU,KAAa,EAAE,IAAyB;QAC5D,MAAM,IAAI,CAAC,WAAW,CAAC;QACvB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAExE,MAAM,GAAG,GAAG,eAAe,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,YAAY,eAAe,CAAC;QAC7F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAElD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAM,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,MAAM,CACV,KAAa,EACb,IAAyB,EACzB,KAA0B;QAE1B,MAAM,IAAI,CAAC,WAAW,CAAC;QACvB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEzC,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpF,MAAM,WAAW,GAAG,SAAS;aAC1B,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,QAAQ,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;aAC/D,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjB,MAAM,GAAG,GAAG,UAAU,KAAK,QAAQ,SAAS,UAAU,WAAW,cAAc,CAAC;QAChF,MAAM,MAAM,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,WAAW,CAAC,CAAC;QAE/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAClD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAM,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,KAA0B;QACpD,MAAM,IAAI,CAAC,WAAW,CAAC;QACvB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE1F,MAAM,GAAG,GAAG,eAAe,KAAK,UAAU,WAAW,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAEvD,OAAO,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,WAAW,CAAI,QAAiD;QACpE,MAAM,IAAI,CAAC,WAAW,CAAC;QACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAEzC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAE5B,MAAM,WAAW,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC;YAE3C,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC/B,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;CACF;AAED,MAAM,qBAAqB;IACL;IAApB,YAAoB,MAAW;QAAX,WAAM,GAAN,MAAM,CAAK;IAAG,CAAC;IAEnC,KAAK,CAAC,KAAK,CAAU,GAAW,EAAE,MAAc;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC,IAAW,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAU,GAAW,EAAE,MAAc;QACjD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;QACjD,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,MAAM,CAAU,KAAa,EAAE,IAAyB;QAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAExE,MAAM,GAAG,GAAG,eAAe,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,YAAY,eAAe,CAAC;QAC7F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAEpD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAM,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,MAAM,CACV,KAAa,EACb,IAAyB,EACzB,KAA0B;QAE1B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEzC,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpF,MAAM,WAAW,GAAG,SAAS;aAC1B,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,QAAQ,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;aAC/D,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjB,MAAM,GAAG,GAAG,UAAU,KAAK,QAAQ,SAAS,UAAU,WAAW,cAAc,CAAC;QAChF,MAAM,MAAM,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,WAAW,CAAC,CAAC;QAE/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAM,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,KAA0B;QACpD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE1F,MAAM,GAAG,GAAG,eAAe,KAAK,UAAU,WAAW,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAEzD,OAAO,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DatabaseAdapter, DatabaseTransaction } from '../../../types/database';
|
|
1
|
+
import { DatabaseAdapter, DatabaseTransaction } from '../../../types/database.js';
|
|
2
2
|
interface RedisConfig {
|
|
3
3
|
host?: string;
|
|
4
4
|
port?: number;
|
|
@@ -30,7 +30,9 @@ export declare class RedisAdapter implements DatabaseAdapter {
|
|
|
30
30
|
private client;
|
|
31
31
|
private logger;
|
|
32
32
|
private keyPrefix;
|
|
33
|
+
private initPromise;
|
|
33
34
|
constructor(config?: RedisConfig);
|
|
35
|
+
private initialize;
|
|
34
36
|
private prefixKey;
|
|
35
37
|
connect(): Promise<void>;
|
|
36
38
|
disconnect(): Promise<void>;
|
|
@@ -1,15 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const logger_1 = require("../../logger");
|
|
5
|
-
class RedisAdapter {
|
|
1
|
+
import { createFrameworkLogger } from '../../logger/index.js';
|
|
2
|
+
import { resolveUserPackage } from '../../utilities/package-utils.js';
|
|
3
|
+
export class RedisAdapter {
|
|
6
4
|
client;
|
|
7
|
-
logger =
|
|
5
|
+
logger = createFrameworkLogger('Redis');
|
|
8
6
|
keyPrefix;
|
|
7
|
+
initPromise;
|
|
9
8
|
constructor(config = {}) {
|
|
9
|
+
this.keyPrefix = config.keyPrefix || 'moro:';
|
|
10
|
+
this.initPromise = this.initialize(config);
|
|
11
|
+
}
|
|
12
|
+
async initialize(config) {
|
|
10
13
|
try {
|
|
11
|
-
const
|
|
12
|
-
|
|
14
|
+
const ioredisPath = resolveUserPackage('ioredis');
|
|
15
|
+
const ioredis = await import(ioredisPath);
|
|
16
|
+
const Redis = ioredis.default;
|
|
13
17
|
if (config.cluster) {
|
|
14
18
|
// Redis Cluster
|
|
15
19
|
const clusterOptions = {
|
|
@@ -60,6 +64,7 @@ class RedisAdapter {
|
|
|
60
64
|
return `${this.keyPrefix}${key}`;
|
|
61
65
|
}
|
|
62
66
|
async connect() {
|
|
67
|
+
await this.initPromise;
|
|
63
68
|
try {
|
|
64
69
|
await this.client.ping();
|
|
65
70
|
this.logger.info('Redis connection established', 'Connection');
|
|
@@ -72,10 +77,12 @@ class RedisAdapter {
|
|
|
72
77
|
}
|
|
73
78
|
}
|
|
74
79
|
async disconnect() {
|
|
80
|
+
await this.initPromise;
|
|
75
81
|
await this.client.quit();
|
|
76
82
|
}
|
|
77
83
|
// For Redis, we adapt the SQL-like interface to key-value operations
|
|
78
84
|
async query(pattern, _params) {
|
|
85
|
+
await this.initPromise;
|
|
79
86
|
try {
|
|
80
87
|
const keys = await this.client.keys(this.prefixKey(pattern));
|
|
81
88
|
if (keys.length === 0)
|
|
@@ -95,6 +102,7 @@ class RedisAdapter {
|
|
|
95
102
|
}
|
|
96
103
|
}
|
|
97
104
|
async queryOne(key, _params) {
|
|
105
|
+
await this.initPromise;
|
|
98
106
|
try {
|
|
99
107
|
const value = await this.client.get(this.prefixKey(key));
|
|
100
108
|
return value ? JSON.parse(value) : null;
|
|
@@ -108,6 +116,7 @@ class RedisAdapter {
|
|
|
108
116
|
}
|
|
109
117
|
}
|
|
110
118
|
async insert(key, data) {
|
|
119
|
+
await this.initPromise;
|
|
111
120
|
try {
|
|
112
121
|
const value = JSON.stringify(data);
|
|
113
122
|
await this.client.set(this.prefixKey(key), value);
|
|
@@ -122,6 +131,7 @@ class RedisAdapter {
|
|
|
122
131
|
}
|
|
123
132
|
}
|
|
124
133
|
async update(key, data, _where) {
|
|
134
|
+
await this.initPromise;
|
|
125
135
|
try {
|
|
126
136
|
// For Redis, we'll merge with existing data if it exists
|
|
127
137
|
const existing = await this.queryOne(key);
|
|
@@ -139,6 +149,7 @@ class RedisAdapter {
|
|
|
139
149
|
}
|
|
140
150
|
}
|
|
141
151
|
async delete(pattern, _where) {
|
|
152
|
+
await this.initPromise;
|
|
142
153
|
try {
|
|
143
154
|
const keys = await this.client.keys(this.prefixKey(pattern));
|
|
144
155
|
if (keys.length === 0)
|
|
@@ -155,6 +166,7 @@ class RedisAdapter {
|
|
|
155
166
|
}
|
|
156
167
|
}
|
|
157
168
|
async transaction(callback) {
|
|
169
|
+
await this.initPromise;
|
|
158
170
|
const multi = this.client.multi();
|
|
159
171
|
const transaction = new RedisTransaction(multi, this.keyPrefix);
|
|
160
172
|
try {
|
|
@@ -170,6 +182,7 @@ class RedisAdapter {
|
|
|
170
182
|
}
|
|
171
183
|
// Redis-specific methods
|
|
172
184
|
async set(key, value, ttl) {
|
|
185
|
+
await this.initPromise;
|
|
173
186
|
const prefixedKey = this.prefixKey(key);
|
|
174
187
|
if (ttl) {
|
|
175
188
|
await this.client.setex(prefixedKey, ttl, JSON.stringify(value));
|
|
@@ -179,31 +192,39 @@ class RedisAdapter {
|
|
|
179
192
|
}
|
|
180
193
|
}
|
|
181
194
|
async get(key) {
|
|
195
|
+
await this.initPromise;
|
|
182
196
|
const value = await this.client.get(this.prefixKey(key));
|
|
183
197
|
return value ? JSON.parse(value) : null;
|
|
184
198
|
}
|
|
185
199
|
async exists(key) {
|
|
200
|
+
await this.initPromise;
|
|
186
201
|
const result = await this.client.exists(this.prefixKey(key));
|
|
187
202
|
return result === 1;
|
|
188
203
|
}
|
|
189
204
|
async expire(key, ttl) {
|
|
205
|
+
await this.initPromise;
|
|
190
206
|
const result = await this.client.expire(this.prefixKey(key), ttl);
|
|
191
207
|
return result === 1;
|
|
192
208
|
}
|
|
193
209
|
async incr(key) {
|
|
210
|
+
await this.initPromise;
|
|
194
211
|
return await this.client.incr(this.prefixKey(key));
|
|
195
212
|
}
|
|
196
213
|
async decr(key) {
|
|
214
|
+
await this.initPromise;
|
|
197
215
|
return await this.client.decr(this.prefixKey(key));
|
|
198
216
|
}
|
|
199
217
|
async hset(hash, field, value) {
|
|
218
|
+
await this.initPromise;
|
|
200
219
|
await this.client.hset(this.prefixKey(hash), field, JSON.stringify(value));
|
|
201
220
|
}
|
|
202
221
|
async hget(hash, field) {
|
|
222
|
+
await this.initPromise;
|
|
203
223
|
const value = await this.client.hget(this.prefixKey(hash), field);
|
|
204
224
|
return value ? JSON.parse(value) : null;
|
|
205
225
|
}
|
|
206
226
|
async hgetall(hash) {
|
|
227
|
+
await this.initPromise;
|
|
207
228
|
const result = await this.client.hgetall(this.prefixKey(hash));
|
|
208
229
|
const parsed = {};
|
|
209
230
|
for (const [key, value] of Object.entries(result)) {
|
|
@@ -212,21 +233,26 @@ class RedisAdapter {
|
|
|
212
233
|
return parsed;
|
|
213
234
|
}
|
|
214
235
|
async lpush(list, ...values) {
|
|
236
|
+
await this.initPromise;
|
|
215
237
|
const serialized = values.map(v => JSON.stringify(v));
|
|
216
238
|
return await this.client.lpush(this.prefixKey(list), ...serialized);
|
|
217
239
|
}
|
|
218
240
|
async rpop(list) {
|
|
241
|
+
await this.initPromise;
|
|
219
242
|
const value = await this.client.rpop(this.prefixKey(list));
|
|
220
243
|
return value ? JSON.parse(value) : null;
|
|
221
244
|
}
|
|
222
245
|
async lrange(list, start, stop) {
|
|
246
|
+
await this.initPromise;
|
|
223
247
|
const values = await this.client.lrange(this.prefixKey(list), start, stop);
|
|
224
248
|
return values.map((v) => JSON.parse(v));
|
|
225
249
|
}
|
|
226
250
|
async publish(channel, message) {
|
|
251
|
+
await this.initPromise;
|
|
227
252
|
return await this.client.publish(channel, JSON.stringify(message));
|
|
228
253
|
}
|
|
229
254
|
async subscribe(channel, callback) {
|
|
255
|
+
await this.initPromise;
|
|
230
256
|
const subscriber = this.client.duplicate();
|
|
231
257
|
subscriber.subscribe(channel);
|
|
232
258
|
subscriber.on('message', (_channel, message) => {
|
|
@@ -237,7 +263,6 @@ class RedisAdapter {
|
|
|
237
263
|
return this.client;
|
|
238
264
|
}
|
|
239
265
|
}
|
|
240
|
-
exports.RedisAdapter = RedisAdapter;
|
|
241
266
|
class RedisTransaction {
|
|
242
267
|
multi;
|
|
243
268
|
keyPrefix;
|