@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.
Files changed (345) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +233 -0
  3. package/dist/core/config/index.d.ts +19 -0
  4. package/dist/core/config/index.js +59 -0
  5. package/dist/core/config/index.js.map +1 -0
  6. package/dist/core/config/loader.d.ts +6 -0
  7. package/dist/core/config/loader.js +288 -0
  8. package/dist/core/config/loader.js.map +1 -0
  9. package/dist/core/config/schema.d.ts +335 -0
  10. package/dist/core/config/schema.js +286 -0
  11. package/dist/core/config/schema.js.map +1 -0
  12. package/dist/core/config/utils.d.ts +50 -0
  13. package/dist/core/config/utils.js +185 -0
  14. package/dist/core/config/utils.js.map +1 -0
  15. package/dist/core/database/adapters/drizzle.d.ts +29 -0
  16. package/dist/core/database/adapters/drizzle.js +366 -0
  17. package/dist/core/database/adapters/drizzle.js.map +1 -0
  18. package/dist/core/database/adapters/index.d.ts +8 -0
  19. package/dist/core/database/adapters/index.js +48 -0
  20. package/dist/core/database/adapters/index.js.map +1 -0
  21. package/dist/core/database/adapters/mongodb.d.ts +35 -0
  22. package/dist/core/database/adapters/mongodb.js +215 -0
  23. package/dist/core/database/adapters/mongodb.js.map +1 -0
  24. package/dist/core/database/adapters/mysql.d.ts +23 -0
  25. package/dist/core/database/adapters/mysql.js +149 -0
  26. package/dist/core/database/adapters/mysql.js.map +1 -0
  27. package/dist/core/database/adapters/postgresql.d.ts +24 -0
  28. package/dist/core/database/adapters/postgresql.js +160 -0
  29. package/dist/core/database/adapters/postgresql.js.map +1 -0
  30. package/dist/core/database/adapters/redis.d.ts +50 -0
  31. package/dist/core/database/adapters/redis.js +266 -0
  32. package/dist/core/database/adapters/redis.js.map +1 -0
  33. package/dist/core/database/adapters/sqlite.d.ts +23 -0
  34. package/dist/core/database/adapters/sqlite.js +194 -0
  35. package/dist/core/database/adapters/sqlite.js.map +1 -0
  36. package/dist/core/database/index.d.ts +2 -0
  37. package/dist/core/database/index.js +20 -0
  38. package/dist/core/database/index.js.map +1 -0
  39. package/dist/core/docs/index.d.ts +63 -0
  40. package/dist/core/docs/index.js +170 -0
  41. package/dist/core/docs/index.js.map +1 -0
  42. package/dist/core/docs/openapi-generator.d.ts +124 -0
  43. package/dist/core/docs/openapi-generator.js +413 -0
  44. package/dist/core/docs/openapi-generator.js.map +1 -0
  45. package/dist/core/docs/simple-docs.d.ts +21 -0
  46. package/dist/core/docs/simple-docs.js +268 -0
  47. package/dist/core/docs/simple-docs.js.map +1 -0
  48. package/dist/core/docs/swagger-ui.d.ts +28 -0
  49. package/dist/core/docs/swagger-ui.js +317 -0
  50. package/dist/core/docs/swagger-ui.js.map +1 -0
  51. package/dist/core/docs/zod-to-openapi.d.ts +29 -0
  52. package/dist/core/docs/zod-to-openapi.js +414 -0
  53. package/dist/core/docs/zod-to-openapi.js.map +1 -0
  54. package/dist/core/events/event-bus.d.ts +27 -0
  55. package/dist/core/events/event-bus.js +193 -0
  56. package/dist/core/events/event-bus.js.map +1 -0
  57. package/dist/core/events/index.d.ts +2 -0
  58. package/dist/core/events/index.js +7 -0
  59. package/dist/core/events/index.js.map +1 -0
  60. package/dist/core/framework.d.ts +57 -0
  61. package/dist/core/framework.js +432 -0
  62. package/dist/core/framework.js.map +1 -0
  63. package/dist/core/http/http-server.d.ts +114 -0
  64. package/dist/core/http/http-server.js +1154 -0
  65. package/dist/core/http/http-server.js.map +1 -0
  66. package/dist/core/http/index.d.ts +3 -0
  67. package/dist/core/http/index.js +10 -0
  68. package/dist/core/http/index.js.map +1 -0
  69. package/dist/core/http/router.d.ts +14 -0
  70. package/dist/core/http/router.js +113 -0
  71. package/dist/core/http/router.js.map +1 -0
  72. package/dist/core/logger/filters.d.ts +9 -0
  73. package/dist/core/logger/filters.js +134 -0
  74. package/dist/core/logger/filters.js.map +1 -0
  75. package/dist/core/logger/index.d.ts +3 -0
  76. package/dist/core/logger/index.js +26 -0
  77. package/dist/core/logger/index.js.map +1 -0
  78. package/dist/core/logger/logger.d.ts +49 -0
  79. package/dist/core/logger/logger.js +332 -0
  80. package/dist/core/logger/logger.js.map +1 -0
  81. package/dist/core/logger/outputs.d.ts +42 -0
  82. package/dist/core/logger/outputs.js +110 -0
  83. package/dist/core/logger/outputs.js.map +1 -0
  84. package/dist/core/middleware/built-in/adapters/cache/file.d.ts +15 -0
  85. package/dist/core/middleware/built-in/adapters/cache/file.js +128 -0
  86. package/dist/core/middleware/built-in/adapters/cache/file.js.map +1 -0
  87. package/dist/core/middleware/built-in/adapters/cache/index.d.ts +5 -0
  88. package/dist/core/middleware/built-in/adapters/cache/index.js +28 -0
  89. package/dist/core/middleware/built-in/adapters/cache/index.js.map +1 -0
  90. package/dist/core/middleware/built-in/adapters/cache/memory.d.ts +11 -0
  91. package/dist/core/middleware/built-in/adapters/cache/memory.js +65 -0
  92. package/dist/core/middleware/built-in/adapters/cache/memory.js.map +1 -0
  93. package/dist/core/middleware/built-in/adapters/cache/redis.d.ts +17 -0
  94. package/dist/core/middleware/built-in/adapters/cache/redis.js +91 -0
  95. package/dist/core/middleware/built-in/adapters/cache/redis.js.map +1 -0
  96. package/dist/core/middleware/built-in/adapters/cdn/azure.d.ts +21 -0
  97. package/dist/core/middleware/built-in/adapters/cdn/azure.js +40 -0
  98. package/dist/core/middleware/built-in/adapters/cdn/azure.js.map +1 -0
  99. package/dist/core/middleware/built-in/adapters/cdn/cloudflare.d.ts +14 -0
  100. package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js +77 -0
  101. package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js.map +1 -0
  102. package/dist/core/middleware/built-in/adapters/cdn/cloudfront.d.ts +15 -0
  103. package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js +73 -0
  104. package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js.map +1 -0
  105. package/dist/core/middleware/built-in/adapters/cdn/index.d.ts +5 -0
  106. package/dist/core/middleware/built-in/adapters/cdn/index.js +28 -0
  107. package/dist/core/middleware/built-in/adapters/cdn/index.js.map +1 -0
  108. package/dist/core/middleware/built-in/adapters/index.d.ts +4 -0
  109. package/dist/core/middleware/built-in/adapters/index.js +26 -0
  110. package/dist/core/middleware/built-in/adapters/index.js.map +1 -0
  111. package/dist/core/middleware/built-in/auth.d.ts +2 -0
  112. package/dist/core/middleware/built-in/auth.js +38 -0
  113. package/dist/core/middleware/built-in/auth.js.map +1 -0
  114. package/dist/core/middleware/built-in/cache.d.ts +3 -0
  115. package/dist/core/middleware/built-in/cache.js +188 -0
  116. package/dist/core/middleware/built-in/cache.js.map +1 -0
  117. package/dist/core/middleware/built-in/cdn.d.ts +3 -0
  118. package/dist/core/middleware/built-in/cdn.js +115 -0
  119. package/dist/core/middleware/built-in/cdn.js.map +1 -0
  120. package/dist/core/middleware/built-in/cookie.d.ts +14 -0
  121. package/dist/core/middleware/built-in/cookie.js +68 -0
  122. package/dist/core/middleware/built-in/cookie.js.map +1 -0
  123. package/dist/core/middleware/built-in/cors.d.ts +2 -0
  124. package/dist/core/middleware/built-in/cors.js +29 -0
  125. package/dist/core/middleware/built-in/cors.js.map +1 -0
  126. package/dist/core/middleware/built-in/csp.d.ts +22 -0
  127. package/dist/core/middleware/built-in/csp.js +74 -0
  128. package/dist/core/middleware/built-in/csp.js.map +1 -0
  129. package/dist/core/middleware/built-in/csrf.d.ts +9 -0
  130. package/dist/core/middleware/built-in/csrf.js +66 -0
  131. package/dist/core/middleware/built-in/csrf.js.map +1 -0
  132. package/dist/core/middleware/built-in/error-tracker.d.ts +1 -0
  133. package/dist/core/middleware/built-in/error-tracker.js +19 -0
  134. package/dist/core/middleware/built-in/error-tracker.js.map +1 -0
  135. package/dist/core/middleware/built-in/index.d.ts +70 -0
  136. package/dist/core/middleware/built-in/index.js +70 -0
  137. package/dist/core/middleware/built-in/index.js.map +1 -0
  138. package/dist/core/middleware/built-in/performance-monitor.d.ts +1 -0
  139. package/dist/core/middleware/built-in/performance-monitor.js +22 -0
  140. package/dist/core/middleware/built-in/performance-monitor.js.map +1 -0
  141. package/dist/core/middleware/built-in/rate-limit.d.ts +6 -0
  142. package/dist/core/middleware/built-in/rate-limit.js +47 -0
  143. package/dist/core/middleware/built-in/rate-limit.js.map +1 -0
  144. package/dist/core/middleware/built-in/request-logger.d.ts +1 -0
  145. package/dist/core/middleware/built-in/request-logger.js +15 -0
  146. package/dist/core/middleware/built-in/request-logger.js.map +1 -0
  147. package/dist/core/middleware/built-in/session.d.ts +41 -0
  148. package/dist/core/middleware/built-in/session.js +209 -0
  149. package/dist/core/middleware/built-in/session.js.map +1 -0
  150. package/dist/core/middleware/built-in/sse.d.ts +6 -0
  151. package/dist/core/middleware/built-in/sse.js +73 -0
  152. package/dist/core/middleware/built-in/sse.js.map +1 -0
  153. package/dist/core/middleware/built-in/validation.d.ts +2 -0
  154. package/dist/core/middleware/built-in/validation.js +31 -0
  155. package/dist/core/middleware/built-in/validation.js.map +1 -0
  156. package/dist/core/middleware/index.d.ts +21 -0
  157. package/dist/core/middleware/index.js +152 -0
  158. package/dist/core/middleware/index.js.map +1 -0
  159. package/dist/core/modules/auto-discovery.d.ts +27 -0
  160. package/dist/core/modules/auto-discovery.js +255 -0
  161. package/dist/core/modules/auto-discovery.js.map +1 -0
  162. package/dist/core/modules/index.d.ts +2 -0
  163. package/dist/core/modules/index.js +11 -0
  164. package/dist/core/modules/index.js.map +1 -0
  165. package/dist/core/modules/modules.d.ts +10 -0
  166. package/dist/core/modules/modules.js +137 -0
  167. package/dist/core/modules/modules.js.map +1 -0
  168. package/dist/core/networking/index.d.ts +2 -0
  169. package/dist/core/networking/index.js +9 -0
  170. package/dist/core/networking/index.js.map +1 -0
  171. package/dist/core/networking/service-discovery.d.ts +38 -0
  172. package/dist/core/networking/service-discovery.js +233 -0
  173. package/dist/core/networking/service-discovery.js.map +1 -0
  174. package/dist/core/networking/websocket-manager.d.ts +27 -0
  175. package/dist/core/networking/websocket-manager.js +211 -0
  176. package/dist/core/networking/websocket-manager.js.map +1 -0
  177. package/dist/core/routing/app-integration.d.ts +42 -0
  178. package/dist/core/routing/app-integration.js +152 -0
  179. package/dist/core/routing/app-integration.js.map +1 -0
  180. package/dist/core/routing/index.d.ts +106 -0
  181. package/dist/core/routing/index.js +343 -0
  182. package/dist/core/routing/index.js.map +1 -0
  183. package/dist/core/runtime/aws-lambda-adapter.d.ts +43 -0
  184. package/dist/core/runtime/aws-lambda-adapter.js +108 -0
  185. package/dist/core/runtime/aws-lambda-adapter.js.map +1 -0
  186. package/dist/core/runtime/base-adapter.d.ts +16 -0
  187. package/dist/core/runtime/base-adapter.js +105 -0
  188. package/dist/core/runtime/base-adapter.js.map +1 -0
  189. package/dist/core/runtime/cloudflare-workers-adapter.d.ts +18 -0
  190. package/dist/core/runtime/cloudflare-workers-adapter.js +131 -0
  191. package/dist/core/runtime/cloudflare-workers-adapter.js.map +1 -0
  192. package/dist/core/runtime/index.d.ts +14 -0
  193. package/dist/core/runtime/index.js +56 -0
  194. package/dist/core/runtime/index.js.map +1 -0
  195. package/dist/core/runtime/node-adapter.d.ts +15 -0
  196. package/dist/core/runtime/node-adapter.js +204 -0
  197. package/dist/core/runtime/node-adapter.js.map +1 -0
  198. package/dist/core/runtime/vercel-edge-adapter.d.ts +10 -0
  199. package/dist/core/runtime/vercel-edge-adapter.js +106 -0
  200. package/dist/core/runtime/vercel-edge-adapter.js.map +1 -0
  201. package/dist/core/utilities/circuit-breaker.d.ts +14 -0
  202. package/dist/core/utilities/circuit-breaker.js +42 -0
  203. package/dist/core/utilities/circuit-breaker.js.map +1 -0
  204. package/dist/core/utilities/container.d.ts +116 -0
  205. package/dist/core/utilities/container.js +529 -0
  206. package/dist/core/utilities/container.js.map +1 -0
  207. package/dist/core/utilities/hooks.d.ts +24 -0
  208. package/dist/core/utilities/hooks.js +131 -0
  209. package/dist/core/utilities/hooks.js.map +1 -0
  210. package/dist/core/utilities/index.d.ts +4 -0
  211. package/dist/core/utilities/index.js +22 -0
  212. package/dist/core/utilities/index.js.map +1 -0
  213. package/dist/core/validation/index.d.ts +30 -0
  214. package/dist/core/validation/index.js +144 -0
  215. package/dist/core/validation/index.js.map +1 -0
  216. package/dist/index.d.ts +30 -0
  217. package/dist/index.js +72 -0
  218. package/dist/index.js.map +1 -0
  219. package/dist/moro.d.ts +82 -0
  220. package/dist/moro.js +679 -0
  221. package/dist/moro.js.map +1 -0
  222. package/dist/types/cache.d.ts +34 -0
  223. package/dist/types/cache.js +3 -0
  224. package/dist/types/cache.js.map +1 -0
  225. package/dist/types/cdn.d.ts +19 -0
  226. package/dist/types/cdn.js +3 -0
  227. package/dist/types/cdn.js.map +1 -0
  228. package/dist/types/core.d.ts +13 -0
  229. package/dist/types/core.js +3 -0
  230. package/dist/types/core.js.map +1 -0
  231. package/dist/types/database.d.ts +29 -0
  232. package/dist/types/database.js +3 -0
  233. package/dist/types/database.js.map +1 -0
  234. package/dist/types/discovery.d.ts +6 -0
  235. package/dist/types/discovery.js +3 -0
  236. package/dist/types/discovery.js.map +1 -0
  237. package/dist/types/events.d.ts +116 -0
  238. package/dist/types/events.js +3 -0
  239. package/dist/types/events.js.map +1 -0
  240. package/dist/types/hooks.d.ts +38 -0
  241. package/dist/types/hooks.js +3 -0
  242. package/dist/types/hooks.js.map +1 -0
  243. package/dist/types/http.d.ts +51 -0
  244. package/dist/types/http.js +3 -0
  245. package/dist/types/http.js.map +1 -0
  246. package/dist/types/logger.d.ts +77 -0
  247. package/dist/types/logger.js +3 -0
  248. package/dist/types/logger.js.map +1 -0
  249. package/dist/types/module.d.ts +91 -0
  250. package/dist/types/module.js +3 -0
  251. package/dist/types/module.js.map +1 -0
  252. package/dist/types/runtime.d.ts +48 -0
  253. package/dist/types/runtime.js +3 -0
  254. package/dist/types/runtime.js.map +1 -0
  255. package/dist/types/session.d.ts +66 -0
  256. package/dist/types/session.js +3 -0
  257. package/dist/types/session.js.map +1 -0
  258. package/package.json +176 -0
  259. package/src/core/config/index.ts +47 -0
  260. package/src/core/config/loader.ts +366 -0
  261. package/src/core/config/schema.ts +346 -0
  262. package/src/core/config/utils.ts +220 -0
  263. package/src/core/database/README.md +228 -0
  264. package/src/core/database/adapters/drizzle.ts +425 -0
  265. package/src/core/database/adapters/index.ts +45 -0
  266. package/src/core/database/adapters/mongodb.ts +292 -0
  267. package/src/core/database/adapters/mysql.ts +217 -0
  268. package/src/core/database/adapters/postgresql.ts +211 -0
  269. package/src/core/database/adapters/redis.ts +331 -0
  270. package/src/core/database/adapters/sqlite.ts +255 -0
  271. package/src/core/database/index.ts +3 -0
  272. package/src/core/docs/index.ts +245 -0
  273. package/src/core/docs/openapi-generator.ts +588 -0
  274. package/src/core/docs/simple-docs.ts +305 -0
  275. package/src/core/docs/swagger-ui.ts +370 -0
  276. package/src/core/docs/zod-to-openapi.ts +532 -0
  277. package/src/core/events/event-bus.ts +249 -0
  278. package/src/core/events/index.ts +12 -0
  279. package/src/core/framework.ts +621 -0
  280. package/src/core/http/http-server.ts +1421 -0
  281. package/src/core/http/index.ts +11 -0
  282. package/src/core/http/router.ts +153 -0
  283. package/src/core/logger/filters.ts +148 -0
  284. package/src/core/logger/index.ts +20 -0
  285. package/src/core/logger/logger.ts +434 -0
  286. package/src/core/logger/outputs.ts +136 -0
  287. package/src/core/middleware/built-in/adapters/cache/file.ts +106 -0
  288. package/src/core/middleware/built-in/adapters/cache/index.ts +26 -0
  289. package/src/core/middleware/built-in/adapters/cache/memory.ts +73 -0
  290. package/src/core/middleware/built-in/adapters/cache/redis.ts +103 -0
  291. package/src/core/middleware/built-in/adapters/cdn/azure.ts +68 -0
  292. package/src/core/middleware/built-in/adapters/cdn/cloudflare.ts +100 -0
  293. package/src/core/middleware/built-in/adapters/cdn/cloudfront.ts +92 -0
  294. package/src/core/middleware/built-in/adapters/cdn/index.ts +23 -0
  295. package/src/core/middleware/built-in/adapters/index.ts +7 -0
  296. package/src/core/middleware/built-in/auth.ts +39 -0
  297. package/src/core/middleware/built-in/cache.ts +228 -0
  298. package/src/core/middleware/built-in/cdn.ts +151 -0
  299. package/src/core/middleware/built-in/cookie.ts +90 -0
  300. package/src/core/middleware/built-in/cors.ts +38 -0
  301. package/src/core/middleware/built-in/csp.ts +107 -0
  302. package/src/core/middleware/built-in/csrf.ts +87 -0
  303. package/src/core/middleware/built-in/error-tracker.ts +16 -0
  304. package/src/core/middleware/built-in/index.ts +57 -0
  305. package/src/core/middleware/built-in/performance-monitor.ts +25 -0
  306. package/src/core/middleware/built-in/rate-limit.ts +60 -0
  307. package/src/core/middleware/built-in/request-logger.ts +14 -0
  308. package/src/core/middleware/built-in/session.ts +311 -0
  309. package/src/core/middleware/built-in/sse.ts +91 -0
  310. package/src/core/middleware/built-in/validation.ts +33 -0
  311. package/src/core/middleware/index.ts +188 -0
  312. package/src/core/modules/auto-discovery.ts +265 -0
  313. package/src/core/modules/index.ts +6 -0
  314. package/src/core/modules/modules.ts +125 -0
  315. package/src/core/networking/index.ts +7 -0
  316. package/src/core/networking/service-discovery.ts +309 -0
  317. package/src/core/networking/websocket-manager.ts +259 -0
  318. package/src/core/routing/app-integration.ts +229 -0
  319. package/src/core/routing/index.ts +519 -0
  320. package/src/core/runtime/aws-lambda-adapter.ts +157 -0
  321. package/src/core/runtime/base-adapter.ts +140 -0
  322. package/src/core/runtime/cloudflare-workers-adapter.ts +166 -0
  323. package/src/core/runtime/index.ts +74 -0
  324. package/src/core/runtime/node-adapter.ts +210 -0
  325. package/src/core/runtime/vercel-edge-adapter.ts +125 -0
  326. package/src/core/utilities/circuit-breaker.ts +46 -0
  327. package/src/core/utilities/container.ts +760 -0
  328. package/src/core/utilities/hooks.ts +148 -0
  329. package/src/core/utilities/index.ts +16 -0
  330. package/src/core/validation/index.ts +216 -0
  331. package/src/index.ts +120 -0
  332. package/src/moro.ts +842 -0
  333. package/src/types/cache.ts +38 -0
  334. package/src/types/cdn.ts +22 -0
  335. package/src/types/core.ts +17 -0
  336. package/src/types/database.ts +40 -0
  337. package/src/types/discovery.ts +7 -0
  338. package/src/types/events.ts +90 -0
  339. package/src/types/hooks.ts +47 -0
  340. package/src/types/http.ts +70 -0
  341. package/src/types/logger.ts +109 -0
  342. package/src/types/module.ts +87 -0
  343. package/src/types/runtime.ts +91 -0
  344. package/src/types/session.ts +89 -0
  345. 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":"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"}
@@ -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;