@morojs/moro 1.0.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/LICENSE +21 -0
- package/README.md +233 -0
- package/dist/core/config/index.d.ts +19 -0
- package/dist/core/config/index.js +59 -0
- package/dist/core/config/index.js.map +1 -0
- package/dist/core/config/loader.d.ts +6 -0
- package/dist/core/config/loader.js +288 -0
- package/dist/core/config/loader.js.map +1 -0
- package/dist/core/config/schema.d.ts +335 -0
- package/dist/core/config/schema.js +286 -0
- package/dist/core/config/schema.js.map +1 -0
- package/dist/core/config/utils.d.ts +50 -0
- package/dist/core/config/utils.js +185 -0
- package/dist/core/config/utils.js.map +1 -0
- package/dist/core/database/adapters/drizzle.d.ts +29 -0
- package/dist/core/database/adapters/drizzle.js +366 -0
- package/dist/core/database/adapters/drizzle.js.map +1 -0
- package/dist/core/database/adapters/index.d.ts +8 -0
- package/dist/core/database/adapters/index.js +48 -0
- package/dist/core/database/adapters/index.js.map +1 -0
- package/dist/core/database/adapters/mongodb.d.ts +35 -0
- package/dist/core/database/adapters/mongodb.js +215 -0
- package/dist/core/database/adapters/mongodb.js.map +1 -0
- package/dist/core/database/adapters/mysql.d.ts +23 -0
- package/dist/core/database/adapters/mysql.js +149 -0
- package/dist/core/database/adapters/mysql.js.map +1 -0
- package/dist/core/database/adapters/postgresql.d.ts +24 -0
- package/dist/core/database/adapters/postgresql.js +160 -0
- package/dist/core/database/adapters/postgresql.js.map +1 -0
- package/dist/core/database/adapters/redis.d.ts +50 -0
- package/dist/core/database/adapters/redis.js +266 -0
- package/dist/core/database/adapters/redis.js.map +1 -0
- package/dist/core/database/adapters/sqlite.d.ts +23 -0
- package/dist/core/database/adapters/sqlite.js +194 -0
- package/dist/core/database/adapters/sqlite.js.map +1 -0
- package/dist/core/database/index.d.ts +2 -0
- package/dist/core/database/index.js +20 -0
- package/dist/core/database/index.js.map +1 -0
- package/dist/core/docs/index.d.ts +63 -0
- package/dist/core/docs/index.js +170 -0
- package/dist/core/docs/index.js.map +1 -0
- package/dist/core/docs/openapi-generator.d.ts +124 -0
- package/dist/core/docs/openapi-generator.js +413 -0
- package/dist/core/docs/openapi-generator.js.map +1 -0
- package/dist/core/docs/simple-docs.d.ts +21 -0
- package/dist/core/docs/simple-docs.js +268 -0
- package/dist/core/docs/simple-docs.js.map +1 -0
- package/dist/core/docs/swagger-ui.d.ts +28 -0
- package/dist/core/docs/swagger-ui.js +317 -0
- package/dist/core/docs/swagger-ui.js.map +1 -0
- package/dist/core/docs/zod-to-openapi.d.ts +29 -0
- package/dist/core/docs/zod-to-openapi.js +414 -0
- package/dist/core/docs/zod-to-openapi.js.map +1 -0
- package/dist/core/events/event-bus.d.ts +27 -0
- package/dist/core/events/event-bus.js +193 -0
- package/dist/core/events/event-bus.js.map +1 -0
- package/dist/core/events/index.d.ts +2 -0
- package/dist/core/events/index.js +7 -0
- package/dist/core/events/index.js.map +1 -0
- package/dist/core/framework.d.ts +57 -0
- package/dist/core/framework.js +432 -0
- package/dist/core/framework.js.map +1 -0
- package/dist/core/http/http-server.d.ts +114 -0
- package/dist/core/http/http-server.js +1154 -0
- package/dist/core/http/http-server.js.map +1 -0
- package/dist/core/http/index.d.ts +3 -0
- package/dist/core/http/index.js +10 -0
- package/dist/core/http/index.js.map +1 -0
- package/dist/core/http/router.d.ts +14 -0
- package/dist/core/http/router.js +113 -0
- package/dist/core/http/router.js.map +1 -0
- package/dist/core/logger/filters.d.ts +9 -0
- package/dist/core/logger/filters.js +134 -0
- package/dist/core/logger/filters.js.map +1 -0
- package/dist/core/logger/index.d.ts +3 -0
- package/dist/core/logger/index.js +26 -0
- package/dist/core/logger/index.js.map +1 -0
- package/dist/core/logger/logger.d.ts +49 -0
- package/dist/core/logger/logger.js +332 -0
- package/dist/core/logger/logger.js.map +1 -0
- package/dist/core/logger/outputs.d.ts +42 -0
- package/dist/core/logger/outputs.js +110 -0
- package/dist/core/logger/outputs.js.map +1 -0
- package/dist/core/middleware/built-in/adapters/cache/file.d.ts +15 -0
- package/dist/core/middleware/built-in/adapters/cache/file.js +128 -0
- package/dist/core/middleware/built-in/adapters/cache/file.js.map +1 -0
- package/dist/core/middleware/built-in/adapters/cache/index.d.ts +5 -0
- package/dist/core/middleware/built-in/adapters/cache/index.js +28 -0
- package/dist/core/middleware/built-in/adapters/cache/index.js.map +1 -0
- package/dist/core/middleware/built-in/adapters/cache/memory.d.ts +11 -0
- package/dist/core/middleware/built-in/adapters/cache/memory.js +65 -0
- package/dist/core/middleware/built-in/adapters/cache/memory.js.map +1 -0
- package/dist/core/middleware/built-in/adapters/cache/redis.d.ts +17 -0
- package/dist/core/middleware/built-in/adapters/cache/redis.js +91 -0
- package/dist/core/middleware/built-in/adapters/cache/redis.js.map +1 -0
- package/dist/core/middleware/built-in/adapters/cdn/azure.d.ts +21 -0
- package/dist/core/middleware/built-in/adapters/cdn/azure.js +40 -0
- package/dist/core/middleware/built-in/adapters/cdn/azure.js.map +1 -0
- package/dist/core/middleware/built-in/adapters/cdn/cloudflare.d.ts +14 -0
- package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js +77 -0
- package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js.map +1 -0
- package/dist/core/middleware/built-in/adapters/cdn/cloudfront.d.ts +15 -0
- package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js +73 -0
- package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js.map +1 -0
- package/dist/core/middleware/built-in/adapters/cdn/index.d.ts +5 -0
- package/dist/core/middleware/built-in/adapters/cdn/index.js +28 -0
- package/dist/core/middleware/built-in/adapters/cdn/index.js.map +1 -0
- package/dist/core/middleware/built-in/adapters/index.d.ts +4 -0
- package/dist/core/middleware/built-in/adapters/index.js +26 -0
- package/dist/core/middleware/built-in/adapters/index.js.map +1 -0
- package/dist/core/middleware/built-in/auth.d.ts +2 -0
- package/dist/core/middleware/built-in/auth.js +38 -0
- package/dist/core/middleware/built-in/auth.js.map +1 -0
- package/dist/core/middleware/built-in/cache.d.ts +3 -0
- package/dist/core/middleware/built-in/cache.js +188 -0
- package/dist/core/middleware/built-in/cache.js.map +1 -0
- package/dist/core/middleware/built-in/cdn.d.ts +3 -0
- package/dist/core/middleware/built-in/cdn.js +115 -0
- package/dist/core/middleware/built-in/cdn.js.map +1 -0
- package/dist/core/middleware/built-in/cookie.d.ts +14 -0
- package/dist/core/middleware/built-in/cookie.js +68 -0
- package/dist/core/middleware/built-in/cookie.js.map +1 -0
- package/dist/core/middleware/built-in/cors.d.ts +2 -0
- package/dist/core/middleware/built-in/cors.js +29 -0
- package/dist/core/middleware/built-in/cors.js.map +1 -0
- package/dist/core/middleware/built-in/csp.d.ts +22 -0
- package/dist/core/middleware/built-in/csp.js +74 -0
- package/dist/core/middleware/built-in/csp.js.map +1 -0
- package/dist/core/middleware/built-in/csrf.d.ts +9 -0
- package/dist/core/middleware/built-in/csrf.js +66 -0
- package/dist/core/middleware/built-in/csrf.js.map +1 -0
- package/dist/core/middleware/built-in/error-tracker.d.ts +1 -0
- package/dist/core/middleware/built-in/error-tracker.js +19 -0
- package/dist/core/middleware/built-in/error-tracker.js.map +1 -0
- package/dist/core/middleware/built-in/index.d.ts +70 -0
- package/dist/core/middleware/built-in/index.js +70 -0
- package/dist/core/middleware/built-in/index.js.map +1 -0
- package/dist/core/middleware/built-in/performance-monitor.d.ts +1 -0
- package/dist/core/middleware/built-in/performance-monitor.js +22 -0
- package/dist/core/middleware/built-in/performance-monitor.js.map +1 -0
- package/dist/core/middleware/built-in/rate-limit.d.ts +6 -0
- package/dist/core/middleware/built-in/rate-limit.js +47 -0
- package/dist/core/middleware/built-in/rate-limit.js.map +1 -0
- package/dist/core/middleware/built-in/request-logger.d.ts +1 -0
- package/dist/core/middleware/built-in/request-logger.js +15 -0
- package/dist/core/middleware/built-in/request-logger.js.map +1 -0
- package/dist/core/middleware/built-in/session.d.ts +41 -0
- package/dist/core/middleware/built-in/session.js +209 -0
- package/dist/core/middleware/built-in/session.js.map +1 -0
- package/dist/core/middleware/built-in/sse.d.ts +6 -0
- package/dist/core/middleware/built-in/sse.js +73 -0
- package/dist/core/middleware/built-in/sse.js.map +1 -0
- package/dist/core/middleware/built-in/validation.d.ts +2 -0
- package/dist/core/middleware/built-in/validation.js +31 -0
- package/dist/core/middleware/built-in/validation.js.map +1 -0
- package/dist/core/middleware/index.d.ts +21 -0
- package/dist/core/middleware/index.js +152 -0
- package/dist/core/middleware/index.js.map +1 -0
- package/dist/core/modules/auto-discovery.d.ts +27 -0
- package/dist/core/modules/auto-discovery.js +255 -0
- package/dist/core/modules/auto-discovery.js.map +1 -0
- package/dist/core/modules/index.d.ts +2 -0
- package/dist/core/modules/index.js +11 -0
- package/dist/core/modules/index.js.map +1 -0
- package/dist/core/modules/modules.d.ts +10 -0
- package/dist/core/modules/modules.js +137 -0
- package/dist/core/modules/modules.js.map +1 -0
- package/dist/core/networking/index.d.ts +2 -0
- package/dist/core/networking/index.js +9 -0
- package/dist/core/networking/index.js.map +1 -0
- package/dist/core/networking/service-discovery.d.ts +38 -0
- package/dist/core/networking/service-discovery.js +233 -0
- package/dist/core/networking/service-discovery.js.map +1 -0
- package/dist/core/networking/websocket-manager.d.ts +27 -0
- package/dist/core/networking/websocket-manager.js +211 -0
- package/dist/core/networking/websocket-manager.js.map +1 -0
- package/dist/core/routing/app-integration.d.ts +42 -0
- package/dist/core/routing/app-integration.js +152 -0
- package/dist/core/routing/app-integration.js.map +1 -0
- package/dist/core/routing/index.d.ts +106 -0
- package/dist/core/routing/index.js +343 -0
- package/dist/core/routing/index.js.map +1 -0
- package/dist/core/runtime/aws-lambda-adapter.d.ts +43 -0
- package/dist/core/runtime/aws-lambda-adapter.js +108 -0
- package/dist/core/runtime/aws-lambda-adapter.js.map +1 -0
- package/dist/core/runtime/base-adapter.d.ts +16 -0
- package/dist/core/runtime/base-adapter.js +105 -0
- package/dist/core/runtime/base-adapter.js.map +1 -0
- package/dist/core/runtime/cloudflare-workers-adapter.d.ts +18 -0
- package/dist/core/runtime/cloudflare-workers-adapter.js +131 -0
- package/dist/core/runtime/cloudflare-workers-adapter.js.map +1 -0
- package/dist/core/runtime/index.d.ts +14 -0
- package/dist/core/runtime/index.js +56 -0
- package/dist/core/runtime/index.js.map +1 -0
- package/dist/core/runtime/node-adapter.d.ts +15 -0
- package/dist/core/runtime/node-adapter.js +204 -0
- package/dist/core/runtime/node-adapter.js.map +1 -0
- package/dist/core/runtime/vercel-edge-adapter.d.ts +10 -0
- package/dist/core/runtime/vercel-edge-adapter.js +106 -0
- package/dist/core/runtime/vercel-edge-adapter.js.map +1 -0
- package/dist/core/utilities/circuit-breaker.d.ts +14 -0
- package/dist/core/utilities/circuit-breaker.js +42 -0
- package/dist/core/utilities/circuit-breaker.js.map +1 -0
- package/dist/core/utilities/container.d.ts +116 -0
- package/dist/core/utilities/container.js +529 -0
- package/dist/core/utilities/container.js.map +1 -0
- package/dist/core/utilities/hooks.d.ts +24 -0
- package/dist/core/utilities/hooks.js +131 -0
- package/dist/core/utilities/hooks.js.map +1 -0
- package/dist/core/utilities/index.d.ts +4 -0
- package/dist/core/utilities/index.js +22 -0
- package/dist/core/utilities/index.js.map +1 -0
- package/dist/core/validation/index.d.ts +30 -0
- package/dist/core/validation/index.js +144 -0
- package/dist/core/validation/index.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.js +72 -0
- package/dist/index.js.map +1 -0
- package/dist/moro.d.ts +82 -0
- package/dist/moro.js +679 -0
- package/dist/moro.js.map +1 -0
- package/dist/types/cache.d.ts +34 -0
- package/dist/types/cache.js +3 -0
- package/dist/types/cache.js.map +1 -0
- package/dist/types/cdn.d.ts +19 -0
- package/dist/types/cdn.js +3 -0
- package/dist/types/cdn.js.map +1 -0
- package/dist/types/core.d.ts +13 -0
- package/dist/types/core.js +3 -0
- package/dist/types/core.js.map +1 -0
- package/dist/types/database.d.ts +29 -0
- package/dist/types/database.js +3 -0
- package/dist/types/database.js.map +1 -0
- package/dist/types/discovery.d.ts +6 -0
- package/dist/types/discovery.js +3 -0
- package/dist/types/discovery.js.map +1 -0
- package/dist/types/events.d.ts +116 -0
- package/dist/types/events.js +3 -0
- package/dist/types/events.js.map +1 -0
- package/dist/types/hooks.d.ts +38 -0
- package/dist/types/hooks.js +3 -0
- package/dist/types/hooks.js.map +1 -0
- package/dist/types/http.d.ts +51 -0
- package/dist/types/http.js +3 -0
- package/dist/types/http.js.map +1 -0
- package/dist/types/logger.d.ts +77 -0
- package/dist/types/logger.js +3 -0
- package/dist/types/logger.js.map +1 -0
- package/dist/types/module.d.ts +91 -0
- package/dist/types/module.js +3 -0
- package/dist/types/module.js.map +1 -0
- package/dist/types/runtime.d.ts +48 -0
- package/dist/types/runtime.js +3 -0
- package/dist/types/runtime.js.map +1 -0
- package/dist/types/session.d.ts +66 -0
- package/dist/types/session.js +3 -0
- package/dist/types/session.js.map +1 -0
- package/package.json +176 -0
- package/src/core/config/index.ts +47 -0
- package/src/core/config/loader.ts +366 -0
- package/src/core/config/schema.ts +346 -0
- package/src/core/config/utils.ts +220 -0
- package/src/core/database/README.md +228 -0
- package/src/core/database/adapters/drizzle.ts +425 -0
- package/src/core/database/adapters/index.ts +45 -0
- package/src/core/database/adapters/mongodb.ts +292 -0
- package/src/core/database/adapters/mysql.ts +217 -0
- package/src/core/database/adapters/postgresql.ts +211 -0
- package/src/core/database/adapters/redis.ts +331 -0
- package/src/core/database/adapters/sqlite.ts +255 -0
- package/src/core/database/index.ts +3 -0
- package/src/core/docs/index.ts +245 -0
- package/src/core/docs/openapi-generator.ts +588 -0
- package/src/core/docs/simple-docs.ts +305 -0
- package/src/core/docs/swagger-ui.ts +370 -0
- package/src/core/docs/zod-to-openapi.ts +532 -0
- package/src/core/events/event-bus.ts +249 -0
- package/src/core/events/index.ts +12 -0
- package/src/core/framework.ts +621 -0
- package/src/core/http/http-server.ts +1421 -0
- package/src/core/http/index.ts +11 -0
- package/src/core/http/router.ts +153 -0
- package/src/core/logger/filters.ts +148 -0
- package/src/core/logger/index.ts +20 -0
- package/src/core/logger/logger.ts +434 -0
- package/src/core/logger/outputs.ts +136 -0
- package/src/core/middleware/built-in/adapters/cache/file.ts +106 -0
- package/src/core/middleware/built-in/adapters/cache/index.ts +26 -0
- package/src/core/middleware/built-in/adapters/cache/memory.ts +73 -0
- package/src/core/middleware/built-in/adapters/cache/redis.ts +103 -0
- package/src/core/middleware/built-in/adapters/cdn/azure.ts +68 -0
- package/src/core/middleware/built-in/adapters/cdn/cloudflare.ts +100 -0
- package/src/core/middleware/built-in/adapters/cdn/cloudfront.ts +92 -0
- package/src/core/middleware/built-in/adapters/cdn/index.ts +23 -0
- package/src/core/middleware/built-in/adapters/index.ts +7 -0
- package/src/core/middleware/built-in/auth.ts +39 -0
- package/src/core/middleware/built-in/cache.ts +228 -0
- package/src/core/middleware/built-in/cdn.ts +151 -0
- package/src/core/middleware/built-in/cookie.ts +90 -0
- package/src/core/middleware/built-in/cors.ts +38 -0
- package/src/core/middleware/built-in/csp.ts +107 -0
- package/src/core/middleware/built-in/csrf.ts +87 -0
- package/src/core/middleware/built-in/error-tracker.ts +16 -0
- package/src/core/middleware/built-in/index.ts +57 -0
- package/src/core/middleware/built-in/performance-monitor.ts +25 -0
- package/src/core/middleware/built-in/rate-limit.ts +60 -0
- package/src/core/middleware/built-in/request-logger.ts +14 -0
- package/src/core/middleware/built-in/session.ts +311 -0
- package/src/core/middleware/built-in/sse.ts +91 -0
- package/src/core/middleware/built-in/validation.ts +33 -0
- package/src/core/middleware/index.ts +188 -0
- package/src/core/modules/auto-discovery.ts +265 -0
- package/src/core/modules/index.ts +6 -0
- package/src/core/modules/modules.ts +125 -0
- package/src/core/networking/index.ts +7 -0
- package/src/core/networking/service-discovery.ts +309 -0
- package/src/core/networking/websocket-manager.ts +259 -0
- package/src/core/routing/app-integration.ts +229 -0
- package/src/core/routing/index.ts +519 -0
- package/src/core/runtime/aws-lambda-adapter.ts +157 -0
- package/src/core/runtime/base-adapter.ts +140 -0
- package/src/core/runtime/cloudflare-workers-adapter.ts +166 -0
- package/src/core/runtime/index.ts +74 -0
- package/src/core/runtime/node-adapter.ts +210 -0
- package/src/core/runtime/vercel-edge-adapter.ts +125 -0
- package/src/core/utilities/circuit-breaker.ts +46 -0
- package/src/core/utilities/container.ts +760 -0
- package/src/core/utilities/hooks.ts +148 -0
- package/src/core/utilities/index.ts +16 -0
- package/src/core/validation/index.ts +216 -0
- package/src/index.ts +120 -0
- package/src/moro.ts +842 -0
- package/src/types/cache.ts +38 -0
- package/src/types/cdn.ts +22 -0
- package/src/types/core.ts +17 -0
- package/src/types/database.ts +40 -0
- package/src/types/discovery.ts +7 -0
- package/src/types/events.ts +90 -0
- package/src/types/hooks.ts +47 -0
- package/src/types/http.ts +70 -0
- package/src/types/logger.ts +109 -0
- package/src/types/module.ts +87 -0
- package/src/types/runtime.ts +91 -0
- package/src/types/session.ts +89 -0
- package/tsconfig.json +21 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { AppConfig } from "./schema";
|
|
3
|
+
/**
|
|
4
|
+
* Set the global configuration (used by framework initialization)
|
|
5
|
+
*/
|
|
6
|
+
export declare function setConfig(config: AppConfig): void;
|
|
7
|
+
/**
|
|
8
|
+
* Get the global configuration
|
|
9
|
+
*/
|
|
10
|
+
export declare function getConfig(): AppConfig;
|
|
11
|
+
/**
|
|
12
|
+
* Create module-specific configuration with environment override support
|
|
13
|
+
*/
|
|
14
|
+
export declare function createModuleConfig<T>(schema: z.ZodSchema<T>, defaultConfig: Partial<T>, envPrefix?: string): T;
|
|
15
|
+
/**
|
|
16
|
+
* Get environment variable with type conversion
|
|
17
|
+
*/
|
|
18
|
+
export declare function getEnvVar<T>(key: string, defaultValue: T, converter?: (value: string) => T): T;
|
|
19
|
+
/**
|
|
20
|
+
* Parse comma-separated environment variable as array
|
|
21
|
+
*/
|
|
22
|
+
export declare function getEnvArray(key: string, defaultValue?: string[]): string[];
|
|
23
|
+
/**
|
|
24
|
+
* Parse JSON environment variable safely
|
|
25
|
+
*/
|
|
26
|
+
export declare function getEnvJson<T>(key: string, defaultValue: T): T;
|
|
27
|
+
/**
|
|
28
|
+
* Validate required environment variables
|
|
29
|
+
*/
|
|
30
|
+
export declare function requireEnvVars(...keys: string[]): void;
|
|
31
|
+
/**
|
|
32
|
+
* Create environment variable name with prefix
|
|
33
|
+
*/
|
|
34
|
+
export declare function envVar(prefix: string, name: string): string;
|
|
35
|
+
/**
|
|
36
|
+
* Get configuration value with dot notation
|
|
37
|
+
*/
|
|
38
|
+
export declare function getConfigValue(path: string): any;
|
|
39
|
+
/**
|
|
40
|
+
* Check if we're in development environment
|
|
41
|
+
*/
|
|
42
|
+
export declare function isDevelopment(): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Check if we're in production environment
|
|
45
|
+
*/
|
|
46
|
+
export declare function isProduction(): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Check if we're in staging environment
|
|
49
|
+
*/
|
|
50
|
+
export declare function isStaging(): boolean;
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setConfig = setConfig;
|
|
4
|
+
exports.getConfig = getConfig;
|
|
5
|
+
exports.createModuleConfig = createModuleConfig;
|
|
6
|
+
exports.getEnvVar = getEnvVar;
|
|
7
|
+
exports.getEnvArray = getEnvArray;
|
|
8
|
+
exports.getEnvJson = getEnvJson;
|
|
9
|
+
exports.requireEnvVars = requireEnvVars;
|
|
10
|
+
exports.envVar = envVar;
|
|
11
|
+
exports.getConfigValue = getConfigValue;
|
|
12
|
+
exports.isDevelopment = isDevelopment;
|
|
13
|
+
exports.isProduction = isProduction;
|
|
14
|
+
exports.isStaging = isStaging;
|
|
15
|
+
const logger_1 = require("../logger");
|
|
16
|
+
const logger = (0, logger_1.createFrameworkLogger)("ConfigUtils");
|
|
17
|
+
// Global configuration store
|
|
18
|
+
let appConfig = null;
|
|
19
|
+
/**
|
|
20
|
+
* Set the global configuration (used by framework initialization)
|
|
21
|
+
*/
|
|
22
|
+
function setConfig(config) {
|
|
23
|
+
appConfig = config;
|
|
24
|
+
logger.debug("Global configuration updated");
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Get the global configuration
|
|
28
|
+
*/
|
|
29
|
+
function getConfig() {
|
|
30
|
+
if (!appConfig) {
|
|
31
|
+
throw new Error("Configuration not initialized. Call loadConfig() first.");
|
|
32
|
+
}
|
|
33
|
+
return appConfig;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Create module-specific configuration with environment override support
|
|
37
|
+
*/
|
|
38
|
+
function createModuleConfig(schema, defaultConfig, envPrefix) {
|
|
39
|
+
const globalConfig = getConfig();
|
|
40
|
+
// Build environment configuration object
|
|
41
|
+
const envConfig = {};
|
|
42
|
+
if (envPrefix) {
|
|
43
|
+
// Extract environment variables with the given prefix
|
|
44
|
+
Object.keys(process.env).forEach((key) => {
|
|
45
|
+
if (key.startsWith(envPrefix)) {
|
|
46
|
+
const configKey = key
|
|
47
|
+
.substring(envPrefix.length)
|
|
48
|
+
.toLowerCase()
|
|
49
|
+
.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
|
|
50
|
+
envConfig[configKey] = process.env[key];
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
// Merge default config, global defaults, and environment overrides
|
|
55
|
+
const mergedConfig = {
|
|
56
|
+
...defaultConfig,
|
|
57
|
+
...envConfig,
|
|
58
|
+
};
|
|
59
|
+
try {
|
|
60
|
+
return schema.parse(mergedConfig);
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
logger.error(`Module configuration validation failed for prefix ${envPrefix}:`, String(error));
|
|
64
|
+
throw error;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Get environment variable with type conversion
|
|
69
|
+
*/
|
|
70
|
+
function getEnvVar(key, defaultValue, converter) {
|
|
71
|
+
const value = process.env[key];
|
|
72
|
+
if (value === undefined) {
|
|
73
|
+
return defaultValue;
|
|
74
|
+
}
|
|
75
|
+
if (converter) {
|
|
76
|
+
try {
|
|
77
|
+
return converter(value);
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
logger.warn(`Failed to convert environment variable ${key}:`, String(error));
|
|
81
|
+
return defaultValue;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Default type conversions
|
|
85
|
+
if (typeof defaultValue === "boolean") {
|
|
86
|
+
return (value.toLowerCase() === "true");
|
|
87
|
+
}
|
|
88
|
+
if (typeof defaultValue === "number") {
|
|
89
|
+
const num = Number(value);
|
|
90
|
+
return (isNaN(num) ? defaultValue : num);
|
|
91
|
+
}
|
|
92
|
+
return value;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Parse comma-separated environment variable as array
|
|
96
|
+
*/
|
|
97
|
+
function getEnvArray(key, defaultValue = []) {
|
|
98
|
+
const value = process.env[key];
|
|
99
|
+
if (!value) {
|
|
100
|
+
return defaultValue;
|
|
101
|
+
}
|
|
102
|
+
return value
|
|
103
|
+
.split(",")
|
|
104
|
+
.map((item) => item.trim())
|
|
105
|
+
.filter(Boolean);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Parse JSON environment variable safely
|
|
109
|
+
*/
|
|
110
|
+
function getEnvJson(key, defaultValue) {
|
|
111
|
+
const value = process.env[key];
|
|
112
|
+
if (!value) {
|
|
113
|
+
return defaultValue;
|
|
114
|
+
}
|
|
115
|
+
try {
|
|
116
|
+
return JSON.parse(value);
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
logger.warn(`Failed to parse JSON environment variable ${key}:`, String(error));
|
|
120
|
+
return defaultValue;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Validate required environment variables
|
|
125
|
+
*/
|
|
126
|
+
function requireEnvVars(...keys) {
|
|
127
|
+
const missing = [];
|
|
128
|
+
keys.forEach((key) => {
|
|
129
|
+
if (!process.env[key]) {
|
|
130
|
+
missing.push(key);
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
if (missing.length > 0) {
|
|
134
|
+
throw new Error(`Missing required environment variables: ${missing.join(", ")}`);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Create environment variable name with prefix
|
|
139
|
+
*/
|
|
140
|
+
function envVar(prefix, name) {
|
|
141
|
+
return `${prefix.toUpperCase()}_${name.toUpperCase()}`;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Get configuration value with dot notation
|
|
145
|
+
*/
|
|
146
|
+
function getConfigValue(path) {
|
|
147
|
+
const config = getConfig();
|
|
148
|
+
return path.split(".").reduce((obj, key) => {
|
|
149
|
+
return obj && obj[key] !== undefined ? obj[key] : undefined;
|
|
150
|
+
}, config);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Check if we're in development environment
|
|
154
|
+
*/
|
|
155
|
+
function isDevelopment() {
|
|
156
|
+
try {
|
|
157
|
+
return getConfig().server.environment === "development";
|
|
158
|
+
}
|
|
159
|
+
catch {
|
|
160
|
+
return process.env.NODE_ENV === "development";
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Check if we're in production environment
|
|
165
|
+
*/
|
|
166
|
+
function isProduction() {
|
|
167
|
+
try {
|
|
168
|
+
return getConfig().server.environment === "production";
|
|
169
|
+
}
|
|
170
|
+
catch {
|
|
171
|
+
return process.env.NODE_ENV === "production";
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Check if we're in staging environment
|
|
176
|
+
*/
|
|
177
|
+
function isStaging() {
|
|
178
|
+
try {
|
|
179
|
+
return getConfig().server.environment === "staging";
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
return process.env.NODE_ENV === "staging";
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/core/config/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { DatabaseAdapter, DatabaseTransaction } from "../../../types/database";
|
|
2
|
+
interface DrizzleConfig {
|
|
3
|
+
database: any;
|
|
4
|
+
schema?: any;
|
|
5
|
+
logger?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare class DrizzleAdapter implements DatabaseAdapter {
|
|
8
|
+
private db;
|
|
9
|
+
private schema;
|
|
10
|
+
private logger;
|
|
11
|
+
constructor(config: DrizzleConfig);
|
|
12
|
+
connect(): Promise<void>;
|
|
13
|
+
disconnect(): Promise<void>;
|
|
14
|
+
query<T = any>(sql: string, params?: any[]): Promise<T[]>;
|
|
15
|
+
queryOne<T = any>(sql: string, params?: any[]): Promise<T | null>;
|
|
16
|
+
insert<T = any>(table: string, data: Record<string, any>): Promise<T>;
|
|
17
|
+
update<T = any>(table: string, data: Record<string, any>, where: Record<string, any>): Promise<T>;
|
|
18
|
+
delete(table: string, where: Record<string, any>): Promise<number>;
|
|
19
|
+
transaction<T>(callback: (tx: DatabaseTransaction) => Promise<T>): Promise<T>;
|
|
20
|
+
select(table?: string): any;
|
|
21
|
+
insertInto(table: string): any;
|
|
22
|
+
updateTable(table: string): any;
|
|
23
|
+
deleteFrom(table: string): any;
|
|
24
|
+
getSchema(): any;
|
|
25
|
+
getDb(): any;
|
|
26
|
+
getTableNames(): string[];
|
|
27
|
+
hasTable(tableName: string): boolean;
|
|
28
|
+
}
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DrizzleAdapter = void 0;
|
|
4
|
+
const logger_1 = require("../../logger");
|
|
5
|
+
class DrizzleAdapter {
|
|
6
|
+
constructor(config) {
|
|
7
|
+
this.logger = (0, logger_1.createFrameworkLogger)("Drizzle");
|
|
8
|
+
try {
|
|
9
|
+
if (!config.database) {
|
|
10
|
+
throw new Error("Drizzle database instance is required");
|
|
11
|
+
}
|
|
12
|
+
this.db = config.database;
|
|
13
|
+
this.schema = config.schema;
|
|
14
|
+
this.logger.info("Drizzle ORM adapter initialized", "Drizzle");
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
this.logger.error("Drizzle ORM initialization failed", "Drizzle");
|
|
18
|
+
throw new Error("Drizzle ORM configuration error. Ensure you have a valid Drizzle database instance.");
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
async connect() {
|
|
22
|
+
// Drizzle doesn't have an explicit connect method
|
|
23
|
+
// Connection is handled by the underlying driver
|
|
24
|
+
this.logger.info("Drizzle ORM adapter ready", "Connection");
|
|
25
|
+
}
|
|
26
|
+
async disconnect() {
|
|
27
|
+
// Drizzle doesn't have an explicit disconnect method
|
|
28
|
+
// This would be handled by the underlying driver
|
|
29
|
+
this.logger.info("Drizzle ORM adapter disconnected", "Connection");
|
|
30
|
+
}
|
|
31
|
+
// Raw SQL query support
|
|
32
|
+
async query(sql, params) {
|
|
33
|
+
try {
|
|
34
|
+
// Using Drizzle's execute method for raw SQL
|
|
35
|
+
const result = await this.db.execute(sql, params);
|
|
36
|
+
// Handle different result formats from different drivers
|
|
37
|
+
if (Array.isArray(result)) {
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
else if (result.rows) {
|
|
41
|
+
return result.rows;
|
|
42
|
+
}
|
|
43
|
+
else if (result.recordset) {
|
|
44
|
+
return result.recordset;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
return [result];
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
this.logger.error("Drizzle query failed", "Query", {
|
|
52
|
+
sql,
|
|
53
|
+
error: error instanceof Error ? error.message : String(error),
|
|
54
|
+
});
|
|
55
|
+
throw error;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async queryOne(sql, params) {
|
|
59
|
+
const results = await this.query(sql, params);
|
|
60
|
+
return results.length > 0 ? results[0] : null;
|
|
61
|
+
}
|
|
62
|
+
// ORM-style operations (requires schema)
|
|
63
|
+
async insert(table, data) {
|
|
64
|
+
try {
|
|
65
|
+
if (this.schema && this.schema[table]) {
|
|
66
|
+
// Use schema-based insert
|
|
67
|
+
const result = await this.db
|
|
68
|
+
.insert(this.schema[table])
|
|
69
|
+
.values(data)
|
|
70
|
+
.returning();
|
|
71
|
+
return result[0];
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
// Fallback to raw SQL
|
|
75
|
+
const keys = Object.keys(data);
|
|
76
|
+
const values = Object.values(data);
|
|
77
|
+
const placeholders = keys.map((_, i) => `$${i + 1}`).join(", ");
|
|
78
|
+
const sql = `INSERT INTO ${table} (${keys.join(", ")}) VALUES (${placeholders}) RETURNING *`;
|
|
79
|
+
const result = await this.query(sql, values);
|
|
80
|
+
return result[0];
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
this.logger.error("Drizzle insert failed", "Insert", {
|
|
85
|
+
table,
|
|
86
|
+
error: error instanceof Error ? error.message : String(error),
|
|
87
|
+
});
|
|
88
|
+
throw error;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
async update(table, data, where) {
|
|
92
|
+
try {
|
|
93
|
+
if (this.schema && this.schema[table]) {
|
|
94
|
+
// Use schema-based update
|
|
95
|
+
try {
|
|
96
|
+
const { eq, and } = require("drizzle-orm");
|
|
97
|
+
// Build where conditions
|
|
98
|
+
const conditions = Object.entries(where).map(([key, value]) => eq(this.schema[table][key], value));
|
|
99
|
+
const whereClause = conditions.length === 1 ? conditions[0] : and(...conditions);
|
|
100
|
+
const result = await this.db
|
|
101
|
+
.update(this.schema[table])
|
|
102
|
+
.set(data)
|
|
103
|
+
.where(whereClause)
|
|
104
|
+
.returning();
|
|
105
|
+
return result[0];
|
|
106
|
+
}
|
|
107
|
+
catch (importError) {
|
|
108
|
+
// Fallback to raw SQL if drizzle-orm is not available
|
|
109
|
+
const setClause = Object.keys(data)
|
|
110
|
+
.map((key, i) => `${key} = $${i + 1}`)
|
|
111
|
+
.join(", ");
|
|
112
|
+
const whereClause = Object.keys(where)
|
|
113
|
+
.map((key, i) => `${key} = $${Object.keys(data).length + i + 1}`)
|
|
114
|
+
.join(" AND ");
|
|
115
|
+
const sql = `UPDATE ${table} SET ${setClause} WHERE ${whereClause} RETURNING *`;
|
|
116
|
+
const params = [...Object.values(data), ...Object.values(where)];
|
|
117
|
+
const result = await this.query(sql, params);
|
|
118
|
+
return result[0];
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
// Fallback to raw SQL
|
|
123
|
+
const setClause = Object.keys(data)
|
|
124
|
+
.map((key, i) => `${key} = $${i + 1}`)
|
|
125
|
+
.join(", ");
|
|
126
|
+
const whereClause = Object.keys(where)
|
|
127
|
+
.map((key, i) => `${key} = $${Object.keys(data).length + i + 1}`)
|
|
128
|
+
.join(" AND ");
|
|
129
|
+
const sql = `UPDATE ${table} SET ${setClause} WHERE ${whereClause} RETURNING *`;
|
|
130
|
+
const params = [...Object.values(data), ...Object.values(where)];
|
|
131
|
+
const result = await this.query(sql, params);
|
|
132
|
+
return result[0];
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
this.logger.error("Drizzle update failed", "Update", {
|
|
137
|
+
table,
|
|
138
|
+
error: error instanceof Error ? error.message : String(error),
|
|
139
|
+
});
|
|
140
|
+
throw error;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
async delete(table, where) {
|
|
144
|
+
try {
|
|
145
|
+
if (this.schema && this.schema[table]) {
|
|
146
|
+
// Use schema-based delete
|
|
147
|
+
try {
|
|
148
|
+
const { eq, and } = require("drizzle-orm");
|
|
149
|
+
const conditions = Object.entries(where).map(([key, value]) => eq(this.schema[table][key], value));
|
|
150
|
+
const whereClause = conditions.length === 1 ? conditions[0] : and(...conditions);
|
|
151
|
+
const result = await this.db
|
|
152
|
+
.delete(this.schema[table])
|
|
153
|
+
.where(whereClause);
|
|
154
|
+
return (result.changes ||
|
|
155
|
+
result.rowCount ||
|
|
156
|
+
result.affectedRows ||
|
|
157
|
+
0);
|
|
158
|
+
}
|
|
159
|
+
catch (importError) {
|
|
160
|
+
// Fallback to raw SQL if drizzle-orm is not available
|
|
161
|
+
const whereClause = Object.keys(where)
|
|
162
|
+
.map((key, i) => `${key} = $${i + 1}`)
|
|
163
|
+
.join(" AND ");
|
|
164
|
+
const sql = `DELETE FROM ${table} WHERE ${whereClause}`;
|
|
165
|
+
await this.query(sql, Object.values(where));
|
|
166
|
+
return 1; // Can't determine exact count without result metadata
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
// Fallback to raw SQL
|
|
171
|
+
const whereClause = Object.keys(where)
|
|
172
|
+
.map((key, i) => `${key} = $${i + 1}`)
|
|
173
|
+
.join(" AND ");
|
|
174
|
+
const sql = `DELETE FROM ${table} WHERE ${whereClause}`;
|
|
175
|
+
await this.query(sql, Object.values(where));
|
|
176
|
+
return 1; // Can't determine exact count without result metadata
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
this.logger.error("Drizzle delete failed", "Delete", {
|
|
181
|
+
table,
|
|
182
|
+
error: error instanceof Error ? error.message : String(error),
|
|
183
|
+
});
|
|
184
|
+
throw error;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
async transaction(callback) {
|
|
188
|
+
return await this.db.transaction(async (tx) => {
|
|
189
|
+
const transaction = new DrizzleTransaction(tx, this.schema, this.logger);
|
|
190
|
+
return await callback(transaction);
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
// Drizzle-specific methods
|
|
194
|
+
select(table) {
|
|
195
|
+
if (table && this.schema && this.schema[table]) {
|
|
196
|
+
return this.db.select().from(this.schema[table]);
|
|
197
|
+
}
|
|
198
|
+
return this.db.select();
|
|
199
|
+
}
|
|
200
|
+
insertInto(table) {
|
|
201
|
+
if (this.schema && this.schema[table]) {
|
|
202
|
+
return this.db.insert(this.schema[table]);
|
|
203
|
+
}
|
|
204
|
+
throw new Error(`Table ${table} not found in schema`);
|
|
205
|
+
}
|
|
206
|
+
updateTable(table) {
|
|
207
|
+
if (this.schema && this.schema[table]) {
|
|
208
|
+
return this.db.update(this.schema[table]);
|
|
209
|
+
}
|
|
210
|
+
throw new Error(`Table ${table} not found in schema`);
|
|
211
|
+
}
|
|
212
|
+
deleteFrom(table) {
|
|
213
|
+
if (this.schema && this.schema[table]) {
|
|
214
|
+
return this.db.delete(this.schema[table]);
|
|
215
|
+
}
|
|
216
|
+
throw new Error(`Table ${table} not found in schema`);
|
|
217
|
+
}
|
|
218
|
+
getSchema() {
|
|
219
|
+
return this.schema;
|
|
220
|
+
}
|
|
221
|
+
getDb() {
|
|
222
|
+
return this.db;
|
|
223
|
+
}
|
|
224
|
+
// Schema introspection helpers
|
|
225
|
+
getTableNames() {
|
|
226
|
+
return this.schema ? Object.keys(this.schema) : [];
|
|
227
|
+
}
|
|
228
|
+
hasTable(tableName) {
|
|
229
|
+
return this.schema ? !!this.schema[tableName] : false;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
exports.DrizzleAdapter = DrizzleAdapter;
|
|
233
|
+
class DrizzleTransaction {
|
|
234
|
+
constructor(tx, schema, logger) {
|
|
235
|
+
this.tx = tx;
|
|
236
|
+
this.schema = schema;
|
|
237
|
+
this.logger = logger;
|
|
238
|
+
}
|
|
239
|
+
async query(sql, params) {
|
|
240
|
+
try {
|
|
241
|
+
const result = await this.tx.execute(sql, params);
|
|
242
|
+
if (Array.isArray(result)) {
|
|
243
|
+
return result;
|
|
244
|
+
}
|
|
245
|
+
else if (result.rows) {
|
|
246
|
+
return result.rows;
|
|
247
|
+
}
|
|
248
|
+
else if (result.recordset) {
|
|
249
|
+
return result.recordset;
|
|
250
|
+
}
|
|
251
|
+
else {
|
|
252
|
+
return [result];
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
catch (error) {
|
|
256
|
+
this.logger.error("Drizzle transaction query failed", "Query", {
|
|
257
|
+
sql,
|
|
258
|
+
error: error instanceof Error ? error.message : String(error),
|
|
259
|
+
});
|
|
260
|
+
throw error;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
async queryOne(sql, params) {
|
|
264
|
+
const results = await this.query(sql, params);
|
|
265
|
+
return results.length > 0 ? results[0] : null;
|
|
266
|
+
}
|
|
267
|
+
async insert(table, data) {
|
|
268
|
+
if (this.schema && this.schema[table]) {
|
|
269
|
+
const result = await this.tx
|
|
270
|
+
.insert(this.schema[table])
|
|
271
|
+
.values(data)
|
|
272
|
+
.returning();
|
|
273
|
+
return result[0];
|
|
274
|
+
}
|
|
275
|
+
else {
|
|
276
|
+
const keys = Object.keys(data);
|
|
277
|
+
const values = Object.values(data);
|
|
278
|
+
const placeholders = keys.map((_, i) => `$${i + 1}`).join(", ");
|
|
279
|
+
const sql = `INSERT INTO ${table} (${keys.join(", ")}) VALUES (${placeholders}) RETURNING *`;
|
|
280
|
+
const result = await this.query(sql, values);
|
|
281
|
+
return result[0];
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
async update(table, data, where) {
|
|
285
|
+
if (this.schema && this.schema[table]) {
|
|
286
|
+
try {
|
|
287
|
+
const { eq, and } = require("drizzle-orm");
|
|
288
|
+
const conditions = Object.entries(where).map(([key, value]) => eq(this.schema[table][key], value));
|
|
289
|
+
const whereClause = conditions.length === 1 ? conditions[0] : and(...conditions);
|
|
290
|
+
const result = await this.tx
|
|
291
|
+
.update(this.schema[table])
|
|
292
|
+
.set(data)
|
|
293
|
+
.where(whereClause)
|
|
294
|
+
.returning();
|
|
295
|
+
return result[0];
|
|
296
|
+
}
|
|
297
|
+
catch (importError) {
|
|
298
|
+
// Fallback to raw SQL
|
|
299
|
+
const setClause = Object.keys(data)
|
|
300
|
+
.map((key, i) => `${key} = $${i + 1}`)
|
|
301
|
+
.join(", ");
|
|
302
|
+
const whereClause = Object.keys(where)
|
|
303
|
+
.map((key, i) => `${key} = $${Object.keys(data).length + i + 1}`)
|
|
304
|
+
.join(" AND ");
|
|
305
|
+
const sql = `UPDATE ${table} SET ${setClause} WHERE ${whereClause} RETURNING *`;
|
|
306
|
+
const params = [...Object.values(data), ...Object.values(where)];
|
|
307
|
+
const result = await this.query(sql, params);
|
|
308
|
+
return result[0];
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
else {
|
|
312
|
+
const setClause = Object.keys(data)
|
|
313
|
+
.map((key, i) => `${key} = $${i + 1}`)
|
|
314
|
+
.join(", ");
|
|
315
|
+
const whereClause = Object.keys(where)
|
|
316
|
+
.map((key, i) => `${key} = $${Object.keys(data).length + i + 1}`)
|
|
317
|
+
.join(" AND ");
|
|
318
|
+
const sql = `UPDATE ${table} SET ${setClause} WHERE ${whereClause} RETURNING *`;
|
|
319
|
+
const params = [...Object.values(data), ...Object.values(where)];
|
|
320
|
+
const result = await this.query(sql, params);
|
|
321
|
+
return result[0];
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
async delete(table, where) {
|
|
325
|
+
if (this.schema && this.schema[table]) {
|
|
326
|
+
try {
|
|
327
|
+
const { eq, and } = require("drizzle-orm");
|
|
328
|
+
const conditions = Object.entries(where).map(([key, value]) => eq(this.schema[table][key], value));
|
|
329
|
+
const whereClause = conditions.length === 1 ? conditions[0] : and(...conditions);
|
|
330
|
+
const result = await this.tx
|
|
331
|
+
.delete(this.schema[table])
|
|
332
|
+
.where(whereClause);
|
|
333
|
+
return (result.changes ||
|
|
334
|
+
result.rowCount ||
|
|
335
|
+
result.affectedRows ||
|
|
336
|
+
0);
|
|
337
|
+
}
|
|
338
|
+
catch (importError) {
|
|
339
|
+
// Fallback to raw SQL
|
|
340
|
+
const whereClause = Object.keys(where)
|
|
341
|
+
.map((key, i) => `${key} = $${i + 1}`)
|
|
342
|
+
.join(" AND ");
|
|
343
|
+
const sql = `DELETE FROM ${table} WHERE ${whereClause}`;
|
|
344
|
+
await this.query(sql, Object.values(where));
|
|
345
|
+
return 1; // Can't determine exact count
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
else {
|
|
349
|
+
const whereClause = Object.keys(where)
|
|
350
|
+
.map((key, i) => `${key} = $${i + 1}`)
|
|
351
|
+
.join(" AND ");
|
|
352
|
+
const sql = `DELETE FROM ${table} WHERE ${whereClause}`;
|
|
353
|
+
await this.query(sql, Object.values(where));
|
|
354
|
+
return 1; // Can't determine exact count
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
async commit() {
|
|
358
|
+
// Drizzle transactions are auto-committed
|
|
359
|
+
// This is just for interface compatibility
|
|
360
|
+
}
|
|
361
|
+
async rollback() {
|
|
362
|
+
// Drizzle transactions will auto-rollback on error
|
|
363
|
+
throw new Error("Transaction rollback");
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
//# sourceMappingURL=drizzle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drizzle.js","sourceRoot":"","sources":["../../../../src/core/database/adapters/drizzle.ts"],"names":[],"mappings":";;;AAEA,yCAAqD;AAQrD,MAAa,cAAc;IAKzB,YAAY,MAAqB;QAFzB,WAAM,GAAG,IAAA,8BAAqB,EAAC,SAAS,CAAC,CAAC;QAGhD,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC3D,CAAC;YAED,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAE5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,SAAS,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,SAAS,CAAC,CAAC;YAClE,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,kDAAkD;QAClD,iDAAiD;QACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,YAAY,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,UAAU;QACd,qDAAqD;QACrD,iDAAiD;QACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE,YAAY,CAAC,CAAC;IACrE,CAAC;IAED,wBAAwB;IACxB,KAAK,CAAC,KAAK,CAAU,GAAW,EAAE,MAAc;QAC9C,IAAI,CAAC;YACH,6CAA6C;YAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAElD,yDAAyD;YACzD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,OAAO,MAAM,CAAC;YAChB,CAAC;iBAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBACvB,OAAO,MAAM,CAAC,IAAI,CAAC;YACrB,CAAC;iBAAM,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC5B,OAAO,MAAM,CAAC,SAAS,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,OAAO,EAAE;gBACjD,GAAG;gBACH,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,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,yCAAyC;IACzC,KAAK,CAAC,MAAM,CAAU,KAAa,EAAE,IAAyB;QAC5D,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtC,0BAA0B;gBAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE;qBACzB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;qBAC1B,MAAM,CAAC,IAAI,CAAC;qBACZ,SAAS,EAAE,CAAC;gBACf,OAAO,MAAM,CAAC,CAAC,CAAM,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,sBAAsB;gBACtB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACnC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEhE,MAAM,GAAG,GAAG,eAAe,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,YAAY,eAAe,CAAC;gBAC7F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;gBAChD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,QAAQ,EAAE;gBACnD,KAAK;gBACL,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,MAAM,CACV,KAAa,EACb,IAAyB,EACzB,KAA0B;QAE1B,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtC,0BAA0B;gBAC1B,IAAI,CAAC;oBACH,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;oBAE3C,yBAAyB;oBACzB,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAC5D,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CACnC,CAAC;oBACF,MAAM,WAAW,GACf,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;oBAE/D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE;yBACzB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;yBAC1B,GAAG,CAAC,IAAI,CAAC;yBACT,KAAK,CAAC,WAAW,CAAC;yBAClB,SAAS,EAAE,CAAC;oBAEf,OAAO,MAAM,CAAC,CAAC,CAAM,CAAC;gBACxB,CAAC;gBAAC,OAAO,WAAW,EAAE,CAAC;oBACrB,sDAAsD;oBACtD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;yBAChC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;yBACrC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACd,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;yBACnC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;yBAChE,IAAI,CAAC,OAAO,CAAC,CAAC;oBAEjB,MAAM,GAAG,GAAG,UAAU,KAAK,QAAQ,SAAS,UAAU,WAAW,cAAc,CAAC;oBAChF,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBACjE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;oBAChD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,sBAAsB;gBACtB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;qBAChC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;qBACrC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;qBACnC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;qBAChE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAEjB,MAAM,GAAG,GAAG,UAAU,KAAK,QAAQ,SAAS,UAAU,WAAW,cAAc,CAAC;gBAChF,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACjE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;gBAChD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,QAAQ,EAAE;gBACnD,KAAK;gBACL,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,MAAM,CAAC,KAAa,EAAE,KAA0B;QACpD,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtC,0BAA0B;gBAC1B,IAAI,CAAC;oBACH,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;oBAE3C,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAC5D,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CACnC,CAAC;oBACF,MAAM,WAAW,GACf,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;oBAE/D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE;yBACzB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;yBAC1B,KAAK,CAAC,WAAW,CAAC,CAAC;oBAEtB,OAAO,CACJ,MAAc,CAAC,OAAO;wBACtB,MAAc,CAAC,QAAQ;wBACvB,MAAc,CAAC,YAAY;wBAC5B,CAAC,CACF,CAAC;gBACJ,CAAC;gBAAC,OAAO,WAAW,EAAE,CAAC;oBACrB,sDAAsD;oBACtD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;yBACnC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;yBACrC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACjB,MAAM,GAAG,GAAG,eAAe,KAAK,UAAU,WAAW,EAAE,CAAC;oBACxD,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC5C,OAAO,CAAC,CAAC,CAAC,sDAAsD;gBAClE,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,sBAAsB;gBACtB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;qBACnC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;qBACrC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACjB,MAAM,GAAG,GAAG,eAAe,KAAK,UAAU,WAAW,EAAE,CAAC;gBACxD,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC5C,OAAO,CAAC,CAAC,CAAC,sDAAsD;YAClE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,QAAQ,EAAE;gBACnD,KAAK;gBACL,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,WAAW,CACf,QAAiD;QAEjD,OAAO,MAAM,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAO,EAAE,EAAE;YACjD,MAAM,WAAW,GAAG,IAAI,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACzE,OAAO,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,2BAA2B;IAC3B,MAAM,CAAC,KAAc;QACnB,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC;IAED,UAAU,CAAC,KAAa;QACtB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,sBAAsB,CAAC,CAAC;IACxD,CAAC;IAED,WAAW,CAAC,KAAa;QACvB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,sBAAsB,CAAC,CAAC;IACxD,CAAC;IAED,UAAU,CAAC,KAAa;QACtB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,sBAAsB,CAAC,CAAC;IACxD,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAED,+BAA+B;IAC/B,aAAa;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrD,CAAC;IAED,QAAQ,CAAC,SAAiB;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACxD,CAAC;CACF;AApQD,wCAoQC;AAED,MAAM,kBAAkB;IACtB,YACU,EAAO,EACP,MAAW,EACX,MAAW;QAFX,OAAE,GAAF,EAAE,CAAK;QACP,WAAM,GAAN,MAAM,CAAK;QACX,WAAM,GAAN,MAAM,CAAK;IAClB,CAAC;IAEJ,KAAK,CAAC,KAAK,CAAU,GAAW,EAAE,MAAc;QAC9C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAElD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,OAAO,MAAM,CAAC;YAChB,CAAC;iBAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBACvB,OAAO,MAAM,CAAC,IAAI,CAAC;YACrB,CAAC;iBAAM,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC5B,OAAO,MAAM,CAAC,SAAS,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,OAAO,EAAE;gBAC7D,GAAG;gBACH,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,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,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE;iBACzB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBAC1B,MAAM,CAAC,IAAI,CAAC;iBACZ,SAAS,EAAE,CAAC;YACf,OAAO,MAAM,CAAC,CAAC,CAAM,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEhE,MAAM,GAAG,GAAG,eAAe,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,YAAY,eAAe,CAAC;YAC7F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;YAChD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CACV,KAAa,EACb,IAAyB,EACzB,KAA0B;QAE1B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;gBAE3C,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAC5D,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CACnC,CAAC;gBACF,MAAM,WAAW,GACf,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;gBAE/D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE;qBACzB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;qBAC1B,GAAG,CAAC,IAAI,CAAC;qBACT,KAAK,CAAC,WAAW,CAAC;qBAClB,SAAS,EAAE,CAAC;gBAEf,OAAO,MAAM,CAAC,CAAC,CAAM,CAAC;YACxB,CAAC;YAAC,OAAO,WAAW,EAAE,CAAC;gBACrB,sBAAsB;gBACtB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;qBAChC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;qBACrC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;qBACnC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;qBAChE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAEjB,MAAM,GAAG,GAAG,UAAU,KAAK,QAAQ,SAAS,UAAU,WAAW,cAAc,CAAC;gBAChF,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACjE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;gBAChD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;iBAChC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;iBACrC,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;iBACnC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;iBAChE,IAAI,CAAC,OAAO,CAAC,CAAC;YAEjB,MAAM,GAAG,GAAG,UAAU,KAAK,QAAQ,SAAS,UAAU,WAAW,cAAc,CAAC;YAChF,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACjE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;YAChD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,KAA0B;QACpD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;gBAE3C,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAC5D,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CACnC,CAAC;gBACF,MAAM,WAAW,GACf,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;gBAE/D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE;qBACzB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;qBAC1B,KAAK,CAAC,WAAW,CAAC,CAAC;gBAEtB,OAAO,CACJ,MAAc,CAAC,OAAO;oBACtB,MAAc,CAAC,QAAQ;oBACvB,MAAc,CAAC,YAAY;oBAC5B,CAAC,CACF,CAAC;YACJ,CAAC;YAAC,OAAO,WAAW,EAAE,CAAC;gBACrB,sBAAsB;gBACtB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;qBACnC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;qBACrC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACjB,MAAM,GAAG,GAAG,eAAe,KAAK,UAAU,WAAW,EAAE,CAAC;gBACxD,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC5C,OAAO,CAAC,CAAC,CAAC,8BAA8B;YAC1C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;iBACnC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;iBACrC,IAAI,CAAC,OAAO,CAAC,CAAC;YACjB,MAAM,GAAG,GAAG,eAAe,KAAK,UAAU,WAAW,EAAE,CAAC;YACxD,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5C,OAAO,CAAC,CAAC,CAAC,8BAA8B;QAC1C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM;QACV,0CAA0C;QAC1C,2CAA2C;IAC7C,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,mDAAmD;QACnD,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { MySQLAdapter } from "./mysql";
|
|
2
|
+
export { PostgreSQLAdapter } from "./postgresql";
|
|
3
|
+
export { SQLiteAdapter } from "./sqlite";
|
|
4
|
+
export { MongoDBAdapter } from "./mongodb";
|
|
5
|
+
export { RedisAdapter } from "./redis";
|
|
6
|
+
export { DrizzleAdapter } from "./drizzle";
|
|
7
|
+
import { DatabaseAdapter } from "../../../types/database";
|
|
8
|
+
export declare function createDatabaseAdapter(type: string, options?: any): DatabaseAdapter;
|