@morojs/moro 1.6.1 → 1.6.3

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 (575) hide show
  1. package/README.md +74 -256
  2. package/dist/core/auth/morojs-adapter.js +20 -20
  3. package/dist/core/auth/morojs-adapter.js.map +1 -1
  4. package/dist/core/config/config-manager.d.ts +44 -0
  5. package/dist/core/config/config-manager.js +104 -0
  6. package/dist/core/config/config-manager.js.map +1 -0
  7. package/dist/core/config/config-sources.d.ts +21 -0
  8. package/dist/core/config/config-sources.js +503 -0
  9. package/dist/core/config/config-sources.js.map +1 -0
  10. package/dist/core/config/config-validator.d.ts +21 -0
  11. package/dist/core/config/config-validator.js +791 -0
  12. package/dist/core/config/config-validator.js.map +1 -0
  13. package/dist/core/config/file-loader.d.ts +1 -6
  14. package/dist/core/config/file-loader.js +21 -249
  15. package/dist/core/config/file-loader.js.map +1 -1
  16. package/dist/core/config/index.d.ts +41 -12
  17. package/dist/core/config/index.js +65 -54
  18. package/dist/core/config/index.js.map +1 -1
  19. package/dist/core/config/schema.d.ts +2 -2
  20. package/dist/core/config/schema.js +55 -44
  21. package/dist/core/config/schema.js.map +1 -1
  22. package/dist/core/config/utils.d.ts +10 -3
  23. package/dist/core/config/utils.js +31 -58
  24. package/dist/core/config/utils.js.map +1 -1
  25. package/dist/core/database/adapters/drizzle.d.ts +1 -1
  26. package/dist/core/database/adapters/drizzle.js +18 -11
  27. package/dist/core/database/adapters/drizzle.js.map +1 -1
  28. package/dist/core/database/adapters/index.d.ts +7 -7
  29. package/dist/core/database/adapters/index.js +19 -29
  30. package/dist/core/database/adapters/index.js.map +1 -1
  31. package/dist/core/database/adapters/mongodb.d.ts +13 -1
  32. package/dist/core/database/adapters/mongodb.js +46 -10
  33. package/dist/core/database/adapters/mongodb.js.map +1 -1
  34. package/dist/core/database/adapters/mysql.d.ts +14 -1
  35. package/dist/core/database/adapters/mysql.js +19 -9
  36. package/dist/core/database/adapters/mysql.js.map +1 -1
  37. package/dist/core/database/adapters/postgresql.d.ts +12 -2
  38. package/dist/core/database/adapters/postgresql.js +19 -9
  39. package/dist/core/database/adapters/postgresql.js.map +1 -1
  40. package/dist/core/database/adapters/redis.d.ts +12 -1
  41. package/dist/core/database/adapters/redis.js +48 -13
  42. package/dist/core/database/adapters/redis.js.map +1 -1
  43. package/dist/core/database/adapters/sqlite.d.ts +3 -1
  44. package/dist/core/database/adapters/sqlite.js +19 -8
  45. package/dist/core/database/adapters/sqlite.js.map +1 -1
  46. package/dist/core/database/index.d.ts +2 -2
  47. package/dist/core/database/index.js +2 -18
  48. package/dist/core/database/index.js.map +1 -1
  49. package/dist/core/docs/index.d.ts +9 -9
  50. package/dist/core/docs/index.js +14 -35
  51. package/dist/core/docs/index.js.map +1 -1
  52. package/dist/core/docs/openapi-generator.d.ts +2 -2
  53. package/dist/core/docs/openapi-generator.js +11 -16
  54. package/dist/core/docs/openapi-generator.js.map +1 -1
  55. package/dist/core/docs/schema-to-openapi.d.ts +2 -2
  56. package/dist/core/docs/schema-to-openapi.js +5 -11
  57. package/dist/core/docs/schema-to-openapi.js.map +1 -1
  58. package/dist/core/docs/simple-docs.d.ts +1 -1
  59. package/dist/core/docs/simple-docs.js +4 -9
  60. package/dist/core/docs/simple-docs.js.map +1 -1
  61. package/dist/core/docs/swagger-ui.d.ts +2 -2
  62. package/dist/core/docs/swagger-ui.js +26 -29
  63. package/dist/core/docs/swagger-ui.js.map +1 -1
  64. package/dist/core/docs/zod-to-openapi.js +31 -28
  65. package/dist/core/docs/zod-to-openapi.js.map +1 -1
  66. package/dist/core/events/event-bus.d.ts +1 -1
  67. package/dist/core/events/event-bus.js +7 -11
  68. package/dist/core/events/event-bus.js.map +1 -1
  69. package/dist/core/events/index.d.ts +2 -2
  70. package/dist/core/events/index.js +1 -5
  71. package/dist/core/events/index.js.map +1 -1
  72. package/dist/core/framework.d.ts +20 -13
  73. package/dist/core/framework.js +285 -102
  74. package/dist/core/framework.js.map +1 -1
  75. package/dist/core/http/http-server.d.ts +59 -7
  76. package/dist/core/http/http-server.js +202 -185
  77. package/dist/core/http/http-server.js.map +1 -1
  78. package/dist/core/http/index.d.ts +4 -3
  79. package/dist/core/http/index.js +3 -8
  80. package/dist/core/http/index.js.map +1 -1
  81. package/dist/core/http/uws-http-server.d.ts +46 -0
  82. package/dist/core/http/uws-http-server.js +523 -0
  83. package/dist/core/http/uws-http-server.js.map +1 -0
  84. package/dist/core/logger/filters.d.ts +1 -1
  85. package/dist/core/logger/filters.js +20 -23
  86. package/dist/core/logger/filters.js.map +1 -1
  87. package/dist/core/logger/index.d.ts +3 -3
  88. package/dist/core/logger/index.js +2 -24
  89. package/dist/core/logger/index.js.map +1 -1
  90. package/dist/core/logger/logger.d.ts +30 -14
  91. package/dist/core/logger/logger.js +398 -223
  92. package/dist/core/logger/logger.js.map +1 -1
  93. package/dist/core/logger/outputs.d.ts +1 -1
  94. package/dist/core/logger/outputs.js +8 -17
  95. package/dist/core/logger/outputs.js.map +1 -1
  96. package/dist/core/middleware/built-in/auth/core.d.ts +78 -0
  97. package/dist/core/middleware/built-in/auth/core.js +358 -0
  98. package/dist/core/middleware/built-in/auth/core.js.map +1 -0
  99. package/dist/core/middleware/built-in/{auth-helpers.js → auth/helpers.js} +12 -23
  100. package/dist/core/middleware/built-in/auth/helpers.js.map +1 -0
  101. package/dist/core/middleware/built-in/auth/hook.d.ts +30 -0
  102. package/dist/core/middleware/built-in/auth/hook.js +99 -0
  103. package/dist/core/middleware/built-in/auth/hook.js.map +1 -0
  104. package/dist/core/middleware/built-in/auth/index.d.ts +7 -0
  105. package/dist/core/middleware/built-in/auth/index.js +15 -0
  106. package/dist/core/middleware/built-in/auth/index.js.map +1 -0
  107. package/dist/core/middleware/built-in/auth/jwt-helpers.d.ts +118 -0
  108. package/dist/core/middleware/built-in/auth/jwt-helpers.js +218 -0
  109. package/dist/core/middleware/built-in/auth/jwt-helpers.js.map +1 -0
  110. package/dist/core/middleware/built-in/auth/middleware.d.ts +23 -0
  111. package/dist/core/middleware/built-in/auth/middleware.js +71 -0
  112. package/dist/core/middleware/built-in/auth/middleware.js.map +1 -0
  113. package/dist/core/middleware/built-in/{auth-providers.d.ts → auth/providers.d.ts} +1 -1
  114. package/dist/core/middleware/built-in/{auth-providers.js → auth/providers.js} +5 -10
  115. package/dist/core/middleware/built-in/auth/providers.js.map +1 -0
  116. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/file.d.ts +1 -1
  117. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/file.js +10 -47
  118. package/dist/core/middleware/built-in/cache/adapters/cache/file.js.map +1 -0
  119. package/dist/core/middleware/built-in/cache/adapters/cache/index.d.ts +5 -0
  120. package/dist/core/middleware/built-in/cache/adapters/cache/index.js +21 -0
  121. package/dist/core/middleware/built-in/cache/adapters/cache/index.js.map +1 -0
  122. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/memory.d.ts +1 -1
  123. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/memory.js +3 -7
  124. package/dist/core/middleware/built-in/cache/adapters/cache/memory.js.map +1 -0
  125. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/redis.d.ts +3 -1
  126. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/redis.js +11 -9
  127. package/dist/core/middleware/built-in/cache/adapters/cache/redis.js.map +1 -0
  128. package/dist/core/middleware/built-in/cache/adapters/index.d.ts +2 -0
  129. package/dist/core/middleware/built-in/cache/adapters/index.js +5 -0
  130. package/dist/core/middleware/built-in/cache/adapters/index.js.map +1 -0
  131. package/dist/core/middleware/built-in/cache/core.d.ts +37 -0
  132. package/dist/core/middleware/built-in/cache/core.js +87 -0
  133. package/dist/core/middleware/built-in/cache/core.js.map +1 -0
  134. package/dist/core/middleware/built-in/cache/hook.d.ts +20 -0
  135. package/dist/core/middleware/built-in/{cache.js → cache/hook.js} +30 -14
  136. package/dist/core/middleware/built-in/cache/hook.js.map +1 -0
  137. package/dist/core/middleware/built-in/cache/index.d.ts +3 -0
  138. package/dist/core/middleware/built-in/cache/index.js +9 -0
  139. package/dist/core/middleware/built-in/cache/index.js.map +1 -0
  140. package/dist/core/middleware/built-in/cache/middleware.d.ts +17 -0
  141. package/dist/core/middleware/built-in/cache/middleware.js +44 -0
  142. package/dist/core/middleware/built-in/cache/middleware.js.map +1 -0
  143. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/azure.d.ts +1 -1
  144. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/azure.js +3 -7
  145. package/dist/core/middleware/built-in/cdn/adapters/cdn/azure.js.map +1 -0
  146. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudflare.d.ts +1 -1
  147. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudflare.js +3 -7
  148. package/dist/core/middleware/built-in/cdn/adapters/cdn/cloudflare.js.map +1 -0
  149. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudfront.d.ts +3 -1
  150. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudfront.js +12 -10
  151. package/dist/core/middleware/built-in/cdn/adapters/cdn/cloudfront.js.map +1 -0
  152. package/dist/core/middleware/built-in/cdn/adapters/cdn/index.d.ts +5 -0
  153. package/dist/core/middleware/built-in/cdn/adapters/cdn/index.js +21 -0
  154. package/dist/core/middleware/built-in/cdn/adapters/cdn/index.js.map +1 -0
  155. package/dist/core/middleware/built-in/cdn/adapters/index.d.ts +2 -0
  156. package/dist/core/middleware/built-in/cdn/adapters/index.js +5 -0
  157. package/dist/core/middleware/built-in/cdn/adapters/index.js.map +1 -0
  158. package/dist/core/middleware/built-in/cdn/core.d.ts +43 -0
  159. package/dist/core/middleware/built-in/cdn/core.js +144 -0
  160. package/dist/core/middleware/built-in/cdn/core.js.map +1 -0
  161. package/dist/core/middleware/built-in/cdn/hook.d.ts +22 -0
  162. package/dist/core/middleware/built-in/cdn/hook.js +70 -0
  163. package/dist/core/middleware/built-in/cdn/hook.js.map +1 -0
  164. package/dist/core/middleware/built-in/cdn/index.d.ts +5 -0
  165. package/dist/core/middleware/built-in/cdn/index.js +11 -0
  166. package/dist/core/middleware/built-in/cdn/index.js.map +1 -0
  167. package/dist/core/middleware/built-in/cdn/middleware.d.ts +21 -0
  168. package/dist/core/middleware/built-in/cdn/middleware.js +52 -0
  169. package/dist/core/middleware/built-in/cdn/middleware.js.map +1 -0
  170. package/dist/core/middleware/built-in/cookie/core.d.ts +37 -0
  171. package/dist/core/middleware/built-in/cookie/core.js +83 -0
  172. package/dist/core/middleware/built-in/cookie/core.js.map +1 -0
  173. package/dist/core/middleware/built-in/cookie/hook.d.ts +20 -0
  174. package/dist/core/middleware/built-in/cookie/hook.js +47 -0
  175. package/dist/core/middleware/built-in/cookie/hook.js.map +1 -0
  176. package/dist/core/middleware/built-in/cookie/index.d.ts +3 -0
  177. package/dist/core/middleware/built-in/cookie/index.js +9 -0
  178. package/dist/core/middleware/built-in/cookie/index.js.map +1 -0
  179. package/dist/core/middleware/built-in/cookie/middleware.d.ts +17 -0
  180. package/dist/core/middleware/built-in/cookie/middleware.js +36 -0
  181. package/dist/core/middleware/built-in/cookie/middleware.js.map +1 -0
  182. package/dist/core/middleware/built-in/cors/core.d.ts +23 -0
  183. package/dist/core/middleware/built-in/cors/core.js +51 -0
  184. package/dist/core/middleware/built-in/cors/core.js.map +1 -0
  185. package/dist/core/middleware/built-in/cors/hook.d.ts +17 -0
  186. package/dist/core/middleware/built-in/cors/hook.js +37 -0
  187. package/dist/core/middleware/built-in/cors/hook.js.map +1 -0
  188. package/dist/core/middleware/built-in/cors/index.d.ts +3 -0
  189. package/dist/core/middleware/built-in/cors/index.js +9 -0
  190. package/dist/core/middleware/built-in/cors/index.js.map +1 -0
  191. package/dist/core/middleware/built-in/cors/middleware.d.ts +16 -0
  192. package/dist/core/middleware/built-in/cors/middleware.js +22 -0
  193. package/dist/core/middleware/built-in/cors/middleware.js.map +1 -0
  194. package/dist/core/middleware/built-in/csp/core.d.ts +45 -0
  195. package/dist/core/middleware/built-in/csp/core.js +88 -0
  196. package/dist/core/middleware/built-in/csp/core.js.map +1 -0
  197. package/dist/core/middleware/built-in/csp/hook.d.ts +22 -0
  198. package/dist/core/middleware/built-in/csp/hook.js +47 -0
  199. package/dist/core/middleware/built-in/csp/hook.js.map +1 -0
  200. package/dist/core/middleware/built-in/csp/index.d.ts +3 -0
  201. package/dist/core/middleware/built-in/csp/index.js +9 -0
  202. package/dist/core/middleware/built-in/csp/index.js.map +1 -0
  203. package/dist/core/middleware/built-in/csp/middleware.d.ts +19 -0
  204. package/dist/core/middleware/built-in/csp/middleware.js +29 -0
  205. package/dist/core/middleware/built-in/csp/middleware.js.map +1 -0
  206. package/dist/core/middleware/built-in/csrf/core.d.ts +28 -0
  207. package/dist/core/middleware/built-in/csrf/core.js +69 -0
  208. package/dist/core/middleware/built-in/csrf/core.js.map +1 -0
  209. package/dist/core/middleware/built-in/csrf/hook.d.ts +17 -0
  210. package/dist/core/middleware/built-in/csrf/hook.js +45 -0
  211. package/dist/core/middleware/built-in/csrf/hook.js.map +1 -0
  212. package/dist/core/middleware/built-in/csrf/index.d.ts +3 -0
  213. package/dist/core/middleware/built-in/csrf/index.js +9 -0
  214. package/dist/core/middleware/built-in/csrf/index.js.map +1 -0
  215. package/dist/core/middleware/built-in/csrf/middleware.d.ts +16 -0
  216. package/dist/core/middleware/built-in/csrf/middleware.js +34 -0
  217. package/dist/core/middleware/built-in/csrf/middleware.js.map +1 -0
  218. package/dist/core/middleware/built-in/error-tracker/index.d.ts +1 -0
  219. package/dist/core/middleware/built-in/error-tracker/index.js +4 -0
  220. package/dist/core/middleware/built-in/error-tracker/index.js.map +1 -0
  221. package/dist/core/middleware/built-in/error-tracker/middleware.d.ts +12 -0
  222. package/dist/core/middleware/built-in/error-tracker/middleware.js +26 -0
  223. package/dist/core/middleware/built-in/error-tracker/middleware.js.map +1 -0
  224. package/dist/core/middleware/built-in/index.d.ts +28 -61
  225. package/dist/core/middleware/built-in/index.js +48 -78
  226. package/dist/core/middleware/built-in/index.js.map +1 -1
  227. package/dist/core/middleware/built-in/performance-monitor/index.d.ts +1 -0
  228. package/dist/core/middleware/built-in/performance-monitor/index.js +4 -0
  229. package/dist/core/middleware/built-in/performance-monitor/index.js.map +1 -0
  230. package/dist/core/middleware/built-in/performance-monitor/middleware.d.ts +12 -0
  231. package/dist/core/middleware/built-in/performance-monitor/middleware.js +29 -0
  232. package/dist/core/middleware/built-in/performance-monitor/middleware.js.map +1 -0
  233. package/dist/core/middleware/built-in/rate-limit/core.d.ts +33 -0
  234. package/dist/core/middleware/built-in/rate-limit/core.js +86 -0
  235. package/dist/core/middleware/built-in/rate-limit/core.js.map +1 -0
  236. package/dist/core/middleware/built-in/rate-limit/hook.d.ts +20 -0
  237. package/dist/core/middleware/built-in/{rate-limit.js → rate-limit/hook.js} +24 -22
  238. package/dist/core/middleware/built-in/rate-limit/hook.js.map +1 -0
  239. package/dist/core/middleware/built-in/rate-limit/index.d.ts +3 -0
  240. package/dist/core/middleware/built-in/rate-limit/index.js +9 -0
  241. package/dist/core/middleware/built-in/rate-limit/index.js.map +1 -0
  242. package/dist/core/middleware/built-in/rate-limit/middleware.d.ts +16 -0
  243. package/dist/core/middleware/built-in/rate-limit/middleware.js +35 -0
  244. package/dist/core/middleware/built-in/rate-limit/middleware.js.map +1 -0
  245. package/dist/core/middleware/built-in/request-logger/index.d.ts +1 -0
  246. package/dist/core/middleware/built-in/request-logger/index.js +4 -0
  247. package/dist/core/middleware/built-in/request-logger/index.js.map +1 -0
  248. package/dist/core/middleware/built-in/request-logger/middleware.d.ts +12 -0
  249. package/dist/core/middleware/built-in/request-logger/middleware.js +24 -0
  250. package/dist/core/middleware/built-in/request-logger/middleware.js.map +1 -0
  251. package/dist/core/middleware/built-in/session/core.d.ts +73 -0
  252. package/dist/core/middleware/built-in/session/core.js +227 -0
  253. package/dist/core/middleware/built-in/session/core.js.map +1 -0
  254. package/dist/core/middleware/built-in/session/hook.d.ts +17 -0
  255. package/dist/core/middleware/built-in/session/hook.js +53 -0
  256. package/dist/core/middleware/built-in/session/hook.js.map +1 -0
  257. package/dist/core/middleware/built-in/session/index.d.ts +3 -0
  258. package/dist/core/middleware/built-in/session/index.js +9 -0
  259. package/dist/core/middleware/built-in/session/index.js.map +1 -0
  260. package/dist/core/middleware/built-in/session/middleware.d.ts +17 -0
  261. package/dist/core/middleware/built-in/session/middleware.js +38 -0
  262. package/dist/core/middleware/built-in/session/middleware.js.map +1 -0
  263. package/dist/core/middleware/built-in/sse/core.d.ts +44 -0
  264. package/dist/core/middleware/built-in/sse/core.js +117 -0
  265. package/dist/core/middleware/built-in/sse/core.js.map +1 -0
  266. package/dist/core/middleware/built-in/sse/hook.d.ts +18 -0
  267. package/dist/core/middleware/built-in/sse/hook.js +60 -0
  268. package/dist/core/middleware/built-in/sse/hook.js.map +1 -0
  269. package/dist/core/middleware/built-in/sse/index.d.ts +3 -0
  270. package/dist/core/middleware/built-in/sse/index.js +9 -0
  271. package/dist/core/middleware/built-in/sse/index.js.map +1 -0
  272. package/dist/core/middleware/built-in/sse/middleware.d.ts +18 -0
  273. package/dist/core/middleware/built-in/sse/middleware.js +43 -0
  274. package/dist/core/middleware/built-in/sse/middleware.js.map +1 -0
  275. package/dist/core/middleware/built-in/validation/core.d.ts +23 -0
  276. package/dist/core/middleware/built-in/validation/core.js +93 -0
  277. package/dist/core/middleware/built-in/validation/core.js.map +1 -0
  278. package/dist/core/middleware/built-in/validation/hook.d.ts +13 -0
  279. package/dist/core/middleware/built-in/{validation.js → validation/hook.js} +16 -9
  280. package/dist/core/middleware/built-in/validation/hook.js.map +1 -0
  281. package/dist/core/middleware/built-in/validation/index.d.ts +3 -0
  282. package/dist/core/middleware/built-in/validation/index.js +9 -0
  283. package/dist/core/middleware/built-in/validation/index.js.map +1 -0
  284. package/dist/core/middleware/built-in/validation/middleware.d.ts +16 -0
  285. package/dist/core/middleware/built-in/validation/middleware.js +27 -0
  286. package/dist/core/middleware/built-in/validation/middleware.js.map +1 -0
  287. package/dist/core/middleware/index.d.ts +4 -4
  288. package/dist/core/middleware/index.js +14 -28
  289. package/dist/core/middleware/index.js.map +1 -1
  290. package/dist/core/modules/auto-discovery.d.ts +19 -2
  291. package/dist/core/modules/auto-discovery.js +391 -74
  292. package/dist/core/modules/auto-discovery.js.map +1 -1
  293. package/dist/core/modules/index.d.ts +2 -2
  294. package/dist/core/modules/index.js +2 -9
  295. package/dist/core/modules/index.js.map +1 -1
  296. package/dist/core/modules/modules.d.ts +3 -3
  297. package/dist/core/modules/modules.js +23 -54
  298. package/dist/core/modules/modules.js.map +1 -1
  299. package/dist/core/networking/adapters/index.d.ts +4 -3
  300. package/dist/core/networking/adapters/index.js +3 -7
  301. package/dist/core/networking/adapters/index.js.map +1 -1
  302. package/dist/core/networking/adapters/socketio-adapter.d.ts +1 -1
  303. package/dist/core/networking/adapters/socketio-adapter.js +5 -40
  304. package/dist/core/networking/adapters/socketio-adapter.js.map +1 -1
  305. package/dist/core/networking/adapters/uws-adapter.d.ts +44 -0
  306. package/dist/core/networking/adapters/uws-adapter.js +513 -0
  307. package/dist/core/networking/adapters/uws-adapter.js.map +1 -0
  308. package/dist/core/networking/adapters/ws-adapter.d.ts +2 -2
  309. package/dist/core/networking/adapters/ws-adapter.js +8 -43
  310. package/dist/core/networking/adapters/ws-adapter.js.map +1 -1
  311. package/dist/core/networking/index.d.ts +3 -2
  312. package/dist/core/networking/index.js +2 -7
  313. package/dist/core/networking/index.js.map +1 -1
  314. package/dist/core/networking/service-discovery.js +8 -12
  315. package/dist/core/networking/service-discovery.js.map +1 -1
  316. package/dist/core/networking/websocket-adapter.js +1 -2
  317. package/dist/core/networking/websocket-adapter.js.map +1 -1
  318. package/dist/core/networking/websocket-manager.d.ts +3 -3
  319. package/dist/core/networking/websocket-manager.js +9 -11
  320. package/dist/core/networking/websocket-manager.js.map +1 -1
  321. package/dist/core/pooling/object-pool-manager.d.ts +140 -0
  322. package/dist/core/pooling/object-pool-manager.js +502 -0
  323. package/dist/core/pooling/object-pool-manager.js.map +1 -0
  324. package/dist/core/routing/app-integration.d.ts +14 -12
  325. package/dist/core/routing/app-integration.js +49 -85
  326. package/dist/core/routing/app-integration.js.map +1 -1
  327. package/dist/core/routing/index.d.ts +17 -11
  328. package/dist/core/routing/index.js +48 -237
  329. package/dist/core/routing/index.js.map +1 -1
  330. package/dist/core/routing/path-matcher.d.ts +67 -0
  331. package/dist/core/routing/path-matcher.js +182 -0
  332. package/dist/core/routing/path-matcher.js.map +1 -0
  333. package/dist/core/routing/router.d.ts +38 -0
  334. package/dist/core/routing/router.js +68 -0
  335. package/dist/core/routing/router.js.map +1 -0
  336. package/dist/core/routing/unified-router.d.ts +132 -0
  337. package/dist/core/routing/unified-router.js +639 -0
  338. package/dist/core/routing/unified-router.js.map +1 -0
  339. package/dist/core/runtime/aws-lambda-adapter.d.ts +3 -3
  340. package/dist/core/runtime/aws-lambda-adapter.js +2 -6
  341. package/dist/core/runtime/aws-lambda-adapter.js.map +1 -1
  342. package/dist/core/runtime/base-adapter.d.ts +2 -2
  343. package/dist/core/runtime/base-adapter.js +3 -7
  344. package/dist/core/runtime/base-adapter.js.map +1 -1
  345. package/dist/core/runtime/cloudflare-workers-adapter.d.ts +3 -3
  346. package/dist/core/runtime/cloudflare-workers-adapter.js +2 -6
  347. package/dist/core/runtime/cloudflare-workers-adapter.js.map +1 -1
  348. package/dist/core/runtime/index.d.ts +12 -12
  349. package/dist/core/runtime/index.js +22 -35
  350. package/dist/core/runtime/index.js.map +1 -1
  351. package/dist/core/runtime/node-adapter.d.ts +4 -4
  352. package/dist/core/runtime/node-adapter.js +18 -49
  353. package/dist/core/runtime/node-adapter.js.map +1 -1
  354. package/dist/core/runtime/vercel-edge-adapter.d.ts +3 -3
  355. package/dist/core/runtime/vercel-edge-adapter.js +2 -6
  356. package/dist/core/runtime/vercel-edge-adapter.js.map +1 -1
  357. package/dist/core/utilities/circuit-breaker.js +1 -5
  358. package/dist/core/utilities/circuit-breaker.js.map +1 -1
  359. package/dist/core/utilities/container.js +12 -22
  360. package/dist/core/utilities/container.js.map +1 -1
  361. package/dist/core/utilities/hooks.d.ts +2 -2
  362. package/dist/core/utilities/hooks.js +7 -12
  363. package/dist/core/utilities/hooks.js.map +1 -1
  364. package/dist/core/utilities/index.d.ts +5 -4
  365. package/dist/core/utilities/index.js +5 -19
  366. package/dist/core/utilities/index.js.map +1 -1
  367. package/dist/core/utilities/package-utils.d.ts +38 -0
  368. package/dist/core/utilities/package-utils.js +57 -0
  369. package/dist/core/utilities/package-utils.js.map +1 -0
  370. package/dist/core/validation/adapters.d.ts +1 -1
  371. package/dist/core/validation/adapters.js +15 -26
  372. package/dist/core/validation/adapters.js.map +1 -1
  373. package/dist/core/validation/index.d.ts +6 -4
  374. package/dist/core/validation/index.js +57 -28
  375. package/dist/core/validation/index.js.map +1 -1
  376. package/dist/core/validation/schema-interface.js +3 -9
  377. package/dist/core/validation/schema-interface.js.map +1 -1
  378. package/dist/index.d.ts +52 -52
  379. package/dist/index.js +24 -132
  380. package/dist/index.js.map +1 -1
  381. package/dist/moro.d.ts +70 -16
  382. package/dist/moro.js +650 -269
  383. package/dist/moro.js.map +1 -1
  384. package/dist/types/auth.js +3 -9
  385. package/dist/types/auth.js.map +1 -1
  386. package/dist/types/cache.js +1 -2
  387. package/dist/types/cdn.js +1 -2
  388. package/dist/types/config.d.ts +73 -2
  389. package/dist/types/config.js +1 -2
  390. package/dist/types/config.js.map +1 -1
  391. package/dist/types/core.d.ts +36 -42
  392. package/dist/types/core.js +1 -2
  393. package/dist/types/database.js +1 -2
  394. package/dist/types/discovery.js +1 -2
  395. package/dist/types/events.js +1 -2
  396. package/dist/types/hooks.d.ts +4 -1
  397. package/dist/types/hooks.js +1 -2
  398. package/dist/types/http.d.ts +16 -1
  399. package/dist/types/http.js +1 -2
  400. package/dist/types/logger.d.ts +7 -0
  401. package/dist/types/logger.js +1 -2
  402. package/dist/types/module.d.ts +11 -0
  403. package/dist/types/module.js +1 -2
  404. package/dist/types/runtime.d.ts +1 -1
  405. package/dist/types/runtime.js +1 -2
  406. package/dist/types/session.js +1 -2
  407. package/package.json +18 -55
  408. package/dist/core/config/loader.d.ts +0 -7
  409. package/dist/core/config/loader.js +0 -269
  410. package/dist/core/config/loader.js.map +0 -1
  411. package/dist/core/config/validation.d.ts +0 -17
  412. package/dist/core/config/validation.js +0 -131
  413. package/dist/core/config/validation.js.map +0 -1
  414. package/dist/core/http/router.d.ts +0 -14
  415. package/dist/core/http/router.js +0 -109
  416. package/dist/core/http/router.js.map +0 -1
  417. package/dist/core/middleware/built-in/adapters/cache/file.js.map +0 -1
  418. package/dist/core/middleware/built-in/adapters/cache/index.d.ts +0 -5
  419. package/dist/core/middleware/built-in/adapters/cache/index.js +0 -28
  420. package/dist/core/middleware/built-in/adapters/cache/index.js.map +0 -1
  421. package/dist/core/middleware/built-in/adapters/cache/memory.js.map +0 -1
  422. package/dist/core/middleware/built-in/adapters/cache/redis.js.map +0 -1
  423. package/dist/core/middleware/built-in/adapters/cdn/azure.js.map +0 -1
  424. package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js.map +0 -1
  425. package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js.map +0 -1
  426. package/dist/core/middleware/built-in/adapters/cdn/index.d.ts +0 -5
  427. package/dist/core/middleware/built-in/adapters/cdn/index.js +0 -28
  428. package/dist/core/middleware/built-in/adapters/cdn/index.js.map +0 -1
  429. package/dist/core/middleware/built-in/adapters/index.d.ts +0 -4
  430. package/dist/core/middleware/built-in/adapters/index.js +0 -26
  431. package/dist/core/middleware/built-in/adapters/index.js.map +0 -1
  432. package/dist/core/middleware/built-in/auth-helpers.js.map +0 -1
  433. package/dist/core/middleware/built-in/auth-providers.js.map +0 -1
  434. package/dist/core/middleware/built-in/auth.d.ts +0 -30
  435. package/dist/core/middleware/built-in/auth.js +0 -281
  436. package/dist/core/middleware/built-in/auth.js.map +0 -1
  437. package/dist/core/middleware/built-in/cache.d.ts +0 -3
  438. package/dist/core/middleware/built-in/cache.js.map +0 -1
  439. package/dist/core/middleware/built-in/cdn.d.ts +0 -3
  440. package/dist/core/middleware/built-in/cdn.js +0 -113
  441. package/dist/core/middleware/built-in/cdn.js.map +0 -1
  442. package/dist/core/middleware/built-in/cookie.d.ts +0 -14
  443. package/dist/core/middleware/built-in/cookie.js +0 -68
  444. package/dist/core/middleware/built-in/cookie.js.map +0 -1
  445. package/dist/core/middleware/built-in/cors.d.ts +0 -2
  446. package/dist/core/middleware/built-in/cors.js +0 -29
  447. package/dist/core/middleware/built-in/cors.js.map +0 -1
  448. package/dist/core/middleware/built-in/csp.d.ts +0 -22
  449. package/dist/core/middleware/built-in/csp.js +0 -71
  450. package/dist/core/middleware/built-in/csp.js.map +0 -1
  451. package/dist/core/middleware/built-in/csrf.d.ts +0 -9
  452. package/dist/core/middleware/built-in/csrf.js +0 -63
  453. package/dist/core/middleware/built-in/csrf.js.map +0 -1
  454. package/dist/core/middleware/built-in/error-tracker.d.ts +0 -1
  455. package/dist/core/middleware/built-in/error-tracker.js +0 -19
  456. package/dist/core/middleware/built-in/error-tracker.js.map +0 -1
  457. package/dist/core/middleware/built-in/performance-monitor.d.ts +0 -1
  458. package/dist/core/middleware/built-in/performance-monitor.js +0 -22
  459. package/dist/core/middleware/built-in/performance-monitor.js.map +0 -1
  460. package/dist/core/middleware/built-in/rate-limit.d.ts +0 -6
  461. package/dist/core/middleware/built-in/rate-limit.js.map +0 -1
  462. package/dist/core/middleware/built-in/request-logger.d.ts +0 -1
  463. package/dist/core/middleware/built-in/request-logger.js +0 -16
  464. package/dist/core/middleware/built-in/request-logger.js.map +0 -1
  465. package/dist/core/middleware/built-in/session.d.ts +0 -41
  466. package/dist/core/middleware/built-in/session.js +0 -209
  467. package/dist/core/middleware/built-in/session.js.map +0 -1
  468. package/dist/core/middleware/built-in/sse.d.ts +0 -6
  469. package/dist/core/middleware/built-in/sse.js +0 -71
  470. package/dist/core/middleware/built-in/sse.js.map +0 -1
  471. package/dist/core/middleware/built-in/validation.d.ts +0 -2
  472. package/dist/core/middleware/built-in/validation.js.map +0 -1
  473. package/src/core/auth/README.md +0 -339
  474. package/src/core/auth/morojs-adapter.ts +0 -410
  475. package/src/core/config/file-loader.ts +0 -407
  476. package/src/core/config/index.ts +0 -60
  477. package/src/core/config/loader.ts +0 -633
  478. package/src/core/config/schema.ts +0 -150
  479. package/src/core/config/utils.ts +0 -251
  480. package/src/core/config/validation.ts +0 -140
  481. package/src/core/database/README.md +0 -228
  482. package/src/core/database/adapters/drizzle.ts +0 -403
  483. package/src/core/database/adapters/index.ts +0 -42
  484. package/src/core/database/adapters/mongodb.ts +0 -269
  485. package/src/core/database/adapters/mysql.ts +0 -207
  486. package/src/core/database/adapters/postgresql.ts +0 -201
  487. package/src/core/database/adapters/redis.ts +0 -326
  488. package/src/core/database/adapters/sqlite.ts +0 -247
  489. package/src/core/database/index.ts +0 -3
  490. package/src/core/docs/index.ts +0 -231
  491. package/src/core/docs/openapi-generator.ts +0 -576
  492. package/src/core/docs/schema-to-openapi.ts +0 -148
  493. package/src/core/docs/simple-docs.ts +0 -295
  494. package/src/core/docs/swagger-ui.ts +0 -351
  495. package/src/core/docs/zod-to-openapi.ts +0 -532
  496. package/src/core/events/event-bus.ts +0 -231
  497. package/src/core/events/index.ts +0 -12
  498. package/src/core/framework.ts +0 -636
  499. package/src/core/http/http-server.ts +0 -1787
  500. package/src/core/http/index.ts +0 -6
  501. package/src/core/http/router.ts +0 -141
  502. package/src/core/logger/filters.ts +0 -145
  503. package/src/core/logger/index.ts +0 -20
  504. package/src/core/logger/logger.ts +0 -814
  505. package/src/core/logger/outputs.ts +0 -134
  506. package/src/core/middleware/built-in/adapters/cache/file.ts +0 -104
  507. package/src/core/middleware/built-in/adapters/cache/index.ts +0 -23
  508. package/src/core/middleware/built-in/adapters/cache/memory.ts +0 -73
  509. package/src/core/middleware/built-in/adapters/cache/redis.ts +0 -100
  510. package/src/core/middleware/built-in/adapters/cdn/azure.ts +0 -60
  511. package/src/core/middleware/built-in/adapters/cdn/cloudflare.ts +0 -83
  512. package/src/core/middleware/built-in/adapters/cdn/cloudfront.ts +0 -83
  513. package/src/core/middleware/built-in/adapters/cdn/index.ts +0 -23
  514. package/src/core/middleware/built-in/adapters/index.ts +0 -7
  515. package/src/core/middleware/built-in/auth-helpers.ts +0 -401
  516. package/src/core/middleware/built-in/auth-providers.ts +0 -480
  517. package/src/core/middleware/built-in/auth.ts +0 -329
  518. package/src/core/middleware/built-in/cache.ts +0 -211
  519. package/src/core/middleware/built-in/cdn.ts +0 -124
  520. package/src/core/middleware/built-in/cookie.ts +0 -85
  521. package/src/core/middleware/built-in/cors.ts +0 -38
  522. package/src/core/middleware/built-in/csp.ts +0 -101
  523. package/src/core/middleware/built-in/csrf.ts +0 -82
  524. package/src/core/middleware/built-in/error-tracker.ts +0 -16
  525. package/src/core/middleware/built-in/index.ts +0 -79
  526. package/src/core/middleware/built-in/performance-monitor.ts +0 -25
  527. package/src/core/middleware/built-in/rate-limit.ts +0 -60
  528. package/src/core/middleware/built-in/request-logger.ts +0 -14
  529. package/src/core/middleware/built-in/session.ts +0 -288
  530. package/src/core/middleware/built-in/sse.ts +0 -86
  531. package/src/core/middleware/built-in/validation.ts +0 -33
  532. package/src/core/middleware/index.ts +0 -177
  533. package/src/core/modules/auto-discovery.ts +0 -263
  534. package/src/core/modules/index.ts +0 -3
  535. package/src/core/modules/modules.ts +0 -124
  536. package/src/core/networking/adapters/index.ts +0 -16
  537. package/src/core/networking/adapters/socketio-adapter.ts +0 -252
  538. package/src/core/networking/adapters/ws-adapter.ts +0 -430
  539. package/src/core/networking/index.ts +0 -3
  540. package/src/core/networking/service-discovery.ts +0 -304
  541. package/src/core/networking/websocket-adapter.ts +0 -217
  542. package/src/core/networking/websocket-manager.ts +0 -308
  543. package/src/core/routing/app-integration.ts +0 -216
  544. package/src/core/routing/index.ts +0 -488
  545. package/src/core/runtime/aws-lambda-adapter.ts +0 -147
  546. package/src/core/runtime/base-adapter.ts +0 -130
  547. package/src/core/runtime/cloudflare-workers-adapter.ts +0 -152
  548. package/src/core/runtime/index.ts +0 -62
  549. package/src/core/runtime/node-adapter.ts +0 -196
  550. package/src/core/runtime/vercel-edge-adapter.ts +0 -114
  551. package/src/core/utilities/circuit-breaker.ts +0 -46
  552. package/src/core/utilities/container.ts +0 -736
  553. package/src/core/utilities/hooks.ts +0 -142
  554. package/src/core/utilities/index.ts +0 -16
  555. package/src/core/validation/adapters.ts +0 -147
  556. package/src/core/validation/index.ts +0 -206
  557. package/src/core/validation/schema-interface.ts +0 -100
  558. package/src/index.ts +0 -226
  559. package/src/moro.ts +0 -1197
  560. package/src/types/auth.ts +0 -440
  561. package/src/types/cache.ts +0 -38
  562. package/src/types/cdn.ts +0 -22
  563. package/src/types/config.ts +0 -157
  564. package/src/types/core.ts +0 -56
  565. package/src/types/database.ts +0 -32
  566. package/src/types/discovery.ts +0 -7
  567. package/src/types/events.ts +0 -82
  568. package/src/types/hooks.ts +0 -47
  569. package/src/types/http.ts +0 -67
  570. package/src/types/logger.ts +0 -93
  571. package/src/types/module.ts +0 -87
  572. package/src/types/runtime.ts +0 -76
  573. package/src/types/session.ts +0 -89
  574. package/tsconfig.json +0 -21
  575. /package/dist/core/middleware/built-in/{auth-helpers.d.ts → auth/helpers.d.ts} +0 -0
@@ -1,269 +0,0 @@
1
- // Database MongoDB Adapter
2
- import { DatabaseAdapter, DatabaseTransaction } from '../../../types/database';
3
- import { createFrameworkLogger } from '../../logger';
4
-
5
- interface MongoDBConfig {
6
- url?: string;
7
- host?: string;
8
- port?: number;
9
- username?: string;
10
- password?: string;
11
- database?: string;
12
- authSource?: string;
13
- ssl?: boolean;
14
- replicaSet?: string;
15
- maxPoolSize?: number;
16
- minPoolSize?: number;
17
- }
18
-
19
- interface MongoDocument {
20
- _id?: any;
21
- [key: string]: any;
22
- }
23
-
24
- export class MongoDBAdapter implements DatabaseAdapter {
25
- private client: any;
26
- private db: any;
27
- private logger = createFrameworkLogger('MongoDB');
28
-
29
- constructor(config: MongoDBConfig) {
30
- try {
31
- const { MongoClient } = require('mongodb');
32
-
33
- const url = config.url || this.buildConnectionString(config);
34
-
35
- this.client = new MongoClient(url, {
36
- maxPoolSize: config.maxPoolSize || 10,
37
- minPoolSize: config.minPoolSize || 0,
38
- ssl: config.ssl || false,
39
- });
40
-
41
- this.db = this.client.db(config.database || 'moro_app');
42
-
43
- this.logger.info('MongoDB adapter initialized', 'MongoDB');
44
- } catch (error) {
45
- throw new Error(
46
- 'mongodb package is required for MongoDB adapter. Install it with: npm install mongodb'
47
- );
48
- }
49
- }
50
-
51
- private buildConnectionString(config: MongoDBConfig): string {
52
- const host = config.host || 'localhost';
53
- const port = config.port || 27017;
54
- const auth = config.username && config.password ? `${config.username}:${config.password}@` : '';
55
- const authSource = config.authSource ? `?authSource=${config.authSource}` : '';
56
-
57
- return `mongodb://${auth}${host}:${port}/${config.database || 'moro_app'}${authSource}`;
58
- }
59
-
60
- async connect(): Promise<void> {
61
- try {
62
- await this.client.connect();
63
- await this.client.db('admin').command({ ping: 1 });
64
- this.logger.info('MongoDB connection established', 'Connection');
65
- } catch (error) {
66
- this.logger.error('MongoDB connection failed', 'Connection', {
67
- error: error instanceof Error ? error.message : String(error),
68
- });
69
- throw error;
70
- }
71
- }
72
-
73
- async disconnect(): Promise<void> {
74
- await this.client.close();
75
- }
76
-
77
- // For MongoDB, we'll treat "sql" as collection name and "params" as query/pipeline
78
- async query<T = any>(collection: string, pipeline?: any[]): Promise<T[]> {
79
- try {
80
- const coll = this.db.collection(collection);
81
-
82
- if (pipeline && Array.isArray(pipeline)) {
83
- // Aggregation pipeline
84
- const cursor = coll.aggregate(pipeline);
85
- return await cursor.toArray();
86
- } else if (pipeline) {
87
- // Find query
88
- const cursor = coll.find(pipeline);
89
- return await cursor.toArray();
90
- } else {
91
- // Find all
92
- const cursor = coll.find({});
93
- return await cursor.toArray();
94
- }
95
- } catch (error) {
96
- this.logger.error('MongoDB query failed', 'Query', {
97
- collection,
98
- error: error instanceof Error ? error.message : String(error),
99
- });
100
- throw error;
101
- }
102
- }
103
-
104
- async queryOne<T = any>(collection: string, query?: any): Promise<T | null> {
105
- try {
106
- const coll = this.db.collection(collection);
107
- return await coll.findOne(query || {});
108
- } catch (error) {
109
- this.logger.error('MongoDB queryOne failed', 'Query', {
110
- collection,
111
- error: error instanceof Error ? error.message : String(error),
112
- });
113
- throw error;
114
- }
115
- }
116
-
117
- async insert<T = any>(collection: string, data: Record<string, any>): Promise<T> {
118
- try {
119
- const coll = this.db.collection(collection);
120
- const result = await coll.insertOne(data);
121
-
122
- // Return the inserted document with _id
123
- return { ...data, _id: result.insertedId } as T;
124
- } catch (error) {
125
- this.logger.error('MongoDB insert failed', 'Insert', {
126
- collection,
127
- error: error instanceof Error ? error.message : String(error),
128
- });
129
- throw error;
130
- }
131
- }
132
-
133
- async update<T = any>(
134
- collection: string,
135
- data: Record<string, any>,
136
- where: Record<string, any>
137
- ): Promise<T> {
138
- try {
139
- const coll = this.db.collection(collection);
140
- const result = await coll.findOneAndUpdate(
141
- where,
142
- { $set: data },
143
- { returnDocument: 'after' }
144
- );
145
-
146
- return result.value as T;
147
- } catch (error) {
148
- this.logger.error('MongoDB update failed', 'Update', {
149
- collection,
150
- error: error instanceof Error ? error.message : String(error),
151
- });
152
- throw error;
153
- }
154
- }
155
-
156
- async delete(collection: string, where: Record<string, any>): Promise<number> {
157
- try {
158
- const coll = this.db.collection(collection);
159
- const result = await coll.deleteMany(where);
160
- return result.deletedCount || 0;
161
- } catch (error) {
162
- this.logger.error('MongoDB delete failed', 'Delete', {
163
- collection,
164
- error: error instanceof Error ? error.message : String(error),
165
- });
166
- throw error;
167
- }
168
- }
169
-
170
- async transaction<T>(callback: (tx: DatabaseTransaction) => Promise<T>): Promise<T> {
171
- const session = this.client.startSession();
172
-
173
- try {
174
- return await session.withTransaction(async () => {
175
- const transaction = new MongoDBTransaction(this.db, session);
176
- return await callback(transaction);
177
- });
178
- } finally {
179
- await session.endSession();
180
- }
181
- }
182
-
183
- // MongoDB-specific methods
184
- async aggregate<T = any>(collection: string, pipeline: any[]): Promise<T[]> {
185
- const coll = this.db.collection(collection);
186
- const cursor = coll.aggregate(pipeline);
187
- return await cursor.toArray();
188
- }
189
-
190
- async createIndex(collection: string, index: any, options?: any): Promise<string> {
191
- const coll = this.db.collection(collection);
192
- return await coll.createIndex(index, options);
193
- }
194
-
195
- async dropIndex(collection: string, indexName: string): Promise<any> {
196
- const coll = this.db.collection(collection);
197
- return await coll.dropIndex(indexName);
198
- }
199
-
200
- async count(collection: string, query?: any): Promise<number> {
201
- const coll = this.db.collection(collection);
202
- return await coll.countDocuments(query || {});
203
- }
204
-
205
- getCollection(name: string) {
206
- return this.db.collection(name);
207
- }
208
- }
209
-
210
- class MongoDBTransaction implements DatabaseTransaction {
211
- constructor(
212
- private db: any,
213
- private session: any
214
- ) {}
215
-
216
- async query<T = any>(collection: string, pipeline?: any[]): Promise<T[]> {
217
- const coll = this.db.collection(collection);
218
-
219
- if (pipeline && Array.isArray(pipeline)) {
220
- const cursor = coll.aggregate(pipeline, { session: this.session });
221
- return await cursor.toArray();
222
- } else if (pipeline) {
223
- const cursor = coll.find(pipeline, { session: this.session });
224
- return await cursor.toArray();
225
- } else {
226
- const cursor = coll.find({}, { session: this.session });
227
- return await cursor.toArray();
228
- }
229
- }
230
-
231
- async queryOne<T = any>(collection: string, query?: any): Promise<T | null> {
232
- const coll = this.db.collection(collection);
233
- return await coll.findOne(query || {}, { session: this.session });
234
- }
235
-
236
- async insert<T = any>(collection: string, data: Record<string, any>): Promise<T> {
237
- const coll = this.db.collection(collection);
238
- const result = await coll.insertOne(data, { session: this.session });
239
- return { ...data, _id: result.insertedId } as T;
240
- }
241
-
242
- async update<T = any>(
243
- collection: string,
244
- data: Record<string, any>,
245
- where: Record<string, any>
246
- ): Promise<T> {
247
- const coll = this.db.collection(collection);
248
- const result = await coll.findOneAndUpdate(
249
- where,
250
- { $set: data },
251
- { returnDocument: 'after', session: this.session }
252
- );
253
- return result.value as T;
254
- }
255
-
256
- async delete(collection: string, where: Record<string, any>): Promise<number> {
257
- const coll = this.db.collection(collection);
258
- const result = await coll.deleteMany(where, { session: this.session });
259
- return result.deletedCount || 0;
260
- }
261
-
262
- async commit(): Promise<void> {
263
- await this.session.commitTransaction();
264
- }
265
-
266
- async rollback(): Promise<void> {
267
- await this.session.abortTransaction();
268
- }
269
- }
@@ -1,207 +0,0 @@
1
- // Database MySQL Adapter
2
- import { DatabaseAdapter, DatabaseTransaction } from '../../../types/database';
3
- import { createFrameworkLogger } from '../../logger';
4
-
5
- interface MySQLConfig {
6
- host?: string;
7
- port?: number;
8
- user?: string;
9
- password?: string;
10
- database?: string;
11
- connectionLimit?: number;
12
- }
13
-
14
- export class MySQLAdapter implements DatabaseAdapter {
15
- private pool: any;
16
- private logger = createFrameworkLogger('MySQL');
17
-
18
- constructor(config: MySQLConfig) {
19
- try {
20
- const mysql = require('mysql2/promise');
21
- this.pool = mysql.createPool({
22
- host: config.host || 'localhost',
23
- port: config.port || 3306,
24
- user: config.user || 'root',
25
- password: config.password || '',
26
- database: config.database || 'moro_app',
27
- waitForConnections: true,
28
- connectionLimit: config.connectionLimit || 10,
29
- queueLimit: 0,
30
- });
31
- } catch (error) {
32
- throw new Error(
33
- 'mysql2 package is required for MySQL adapter. Install it with: npm install mysql2'
34
- );
35
- }
36
- }
37
-
38
- async connect(): Promise<void> {
39
- try {
40
- const connection = await this.pool.getConnection();
41
- connection.release();
42
- this.logger.info('MySQL connection established', 'Connection');
43
- } catch (error) {
44
- this.logger.error('MySQL connection failed', 'Connection', {
45
- error: error instanceof Error ? error.message : String(error),
46
- });
47
- throw error;
48
- }
49
- }
50
-
51
- async disconnect(): Promise<void> {
52
- await this.pool.end();
53
- }
54
-
55
- async query<T = any>(sql: string, params?: any[]): Promise<T[]> {
56
- const [rows] = await this.pool.execute(sql, params);
57
- return rows as T[];
58
- }
59
-
60
- async queryOne<T = any>(sql: string, params?: any[]): Promise<T | null> {
61
- const results = await this.query<T>(sql, params);
62
- return results.length > 0 ? results[0] : null;
63
- }
64
-
65
- async insert<T = any>(table: string, data: Record<string, any>): Promise<T> {
66
- const keys = Object.keys(data);
67
- const values = Object.values(data);
68
- const placeholders = keys.map(() => '?').join(', ');
69
-
70
- const sql = `INSERT INTO ${table} (${keys.join(', ')}) VALUES (${placeholders})`;
71
- const [result] = (await this.pool.execute(sql, values)) as any;
72
-
73
- // Return the inserted record
74
- const insertedRecord = await this.queryOne<T>(`SELECT * FROM ${table} WHERE id = ?`, [
75
- result.insertId,
76
- ]);
77
-
78
- return insertedRecord!;
79
- }
80
-
81
- async update<T = any>(
82
- table: string,
83
- data: Record<string, any>,
84
- where: Record<string, any>
85
- ): Promise<T> {
86
- const setClause = Object.keys(data)
87
- .map(key => `${key} = ?`)
88
- .join(', ');
89
- const whereClause = Object.keys(where)
90
- .map(key => `${key} = ?`)
91
- .join(' AND ');
92
-
93
- const sql = `UPDATE ${table} SET ${setClause} WHERE ${whereClause}`;
94
- const params = [...Object.values(data), ...Object.values(where)];
95
-
96
- await this.pool.execute(sql, params);
97
-
98
- // Return the updated record
99
- const updatedRecord = await this.queryOne<T>(
100
- `SELECT * FROM ${table} WHERE ${whereClause}`,
101
- Object.values(where)
102
- );
103
-
104
- return updatedRecord!;
105
- }
106
-
107
- async delete(table: string, where: Record<string, any>): Promise<number> {
108
- const whereClause = Object.keys(where)
109
- .map(key => `${key} = ?`)
110
- .join(' AND ');
111
- const sql = `DELETE FROM ${table} WHERE ${whereClause}`;
112
-
113
- const [result] = (await this.pool.execute(sql, Object.values(where))) as any;
114
- return result.affectedRows;
115
- }
116
-
117
- async transaction<T>(callback: (tx: DatabaseTransaction) => Promise<T>): Promise<T> {
118
- const connection = await this.pool.getConnection();
119
-
120
- try {
121
- await connection.beginTransaction();
122
-
123
- const transaction = new MySQLTransaction(connection);
124
- const result = await callback(transaction);
125
-
126
- await connection.commit();
127
- return result;
128
- } catch (error) {
129
- await connection.rollback();
130
- throw error;
131
- } finally {
132
- connection.release();
133
- }
134
- }
135
- }
136
-
137
- class MySQLTransaction implements DatabaseTransaction {
138
- constructor(private connection: any) {}
139
-
140
- async query<T = any>(sql: string, params?: any[]): Promise<T[]> {
141
- const [rows] = await this.connection.execute(sql, params);
142
- return rows as T[];
143
- }
144
-
145
- async queryOne<T = any>(sql: string, params?: any[]): Promise<T | null> {
146
- const results = await this.query<T>(sql, params);
147
- return results.length > 0 ? results[0] : null;
148
- }
149
-
150
- async insert<T = any>(table: string, data: Record<string, any>): Promise<T> {
151
- const keys = Object.keys(data);
152
- const values = Object.values(data);
153
- const placeholders = keys.map(() => '?').join(', ');
154
-
155
- const sql = `INSERT INTO ${table} (${keys.join(', ')}) VALUES (${placeholders})`;
156
- const [result] = (await this.connection.execute(sql, values)) as any;
157
-
158
- const insertedRecord = await this.queryOne<T>(`SELECT * FROM ${table} WHERE id = ?`, [
159
- result.insertId,
160
- ]);
161
-
162
- return insertedRecord!;
163
- }
164
-
165
- async update<T = any>(
166
- table: string,
167
- data: Record<string, any>,
168
- where: Record<string, any>
169
- ): Promise<T> {
170
- const setClause = Object.keys(data)
171
- .map(key => `${key} = ?`)
172
- .join(', ');
173
- const whereClause = Object.keys(where)
174
- .map(key => `${key} = ?`)
175
- .join(' AND ');
176
-
177
- const sql = `UPDATE ${table} SET ${setClause} WHERE ${whereClause}`;
178
- const params = [...Object.values(data), ...Object.values(where)];
179
-
180
- await this.connection.execute(sql, params);
181
-
182
- const updatedRecord = await this.queryOne<T>(
183
- `SELECT * FROM ${table} WHERE ${whereClause}`,
184
- Object.values(where)
185
- );
186
-
187
- return updatedRecord!;
188
- }
189
-
190
- async delete(table: string, where: Record<string, any>): Promise<number> {
191
- const whereClause = Object.keys(where)
192
- .map(key => `${key} = ?`)
193
- .join(' AND ');
194
- const sql = `DELETE FROM ${table} WHERE ${whereClause}`;
195
-
196
- const [result] = (await this.connection.execute(sql, Object.values(where))) as any;
197
- return result.affectedRows;
198
- }
199
-
200
- async commit(): Promise<void> {
201
- await this.connection.commit();
202
- }
203
-
204
- async rollback(): Promise<void> {
205
- await this.connection.rollback();
206
- }
207
- }
@@ -1,201 +0,0 @@
1
- // Database PostgreSQL Adapter
2
- import { DatabaseAdapter, DatabaseTransaction } from '../../../types/database';
3
- import { createFrameworkLogger } from '../../logger';
4
-
5
- interface PostgreSQLConfig {
6
- host?: string;
7
- port?: number;
8
- user?: string;
9
- password?: string;
10
- database?: string;
11
- connectionLimit?: number;
12
- ssl?: boolean;
13
- }
14
-
15
- export class PostgreSQLAdapter implements DatabaseAdapter {
16
- private pool: any;
17
- private logger = createFrameworkLogger('PostgreSQL');
18
-
19
- constructor(config: PostgreSQLConfig) {
20
- try {
21
- const { Pool } = require('pg');
22
- this.pool = new Pool({
23
- host: config.host || 'localhost',
24
- port: config.port || 5432,
25
- user: config.user || 'postgres',
26
- password: config.password || '',
27
- database: config.database || 'moro_app',
28
- max: config.connectionLimit || 10,
29
- ssl: config.ssl || false,
30
- });
31
-
32
- this.pool.on('error', (err: Error) => {
33
- this.logger.error('PostgreSQL pool error', 'Pool', {
34
- error: err.message,
35
- });
36
- });
37
-
38
- this.logger.info('PostgreSQL adapter initialized', 'PostgreSQL');
39
- } catch (error) {
40
- throw new Error(
41
- 'pg package is required for PostgreSQL adapter. Install it with: npm install pg'
42
- );
43
- }
44
- }
45
-
46
- async connect(): Promise<void> {
47
- try {
48
- const client = await this.pool.connect();
49
- client.release();
50
- this.logger.info('PostgreSQL connection established', 'Connection');
51
- } catch (error) {
52
- this.logger.error('PostgreSQL connection failed', 'Connection', {
53
- error: error instanceof Error ? error.message : String(error),
54
- });
55
- throw error;
56
- }
57
- }
58
-
59
- async disconnect(): Promise<void> {
60
- await this.pool.end();
61
- }
62
-
63
- async query<T = any>(sql: string, params?: any[]): Promise<T[]> {
64
- const result = await this.pool.query(sql, params);
65
- return result.rows as T[];
66
- }
67
-
68
- async queryOne<T = any>(sql: string, params?: any[]): Promise<T | null> {
69
- const results = await this.query<T>(sql, params);
70
- return results.length > 0 ? results[0] : null;
71
- }
72
-
73
- async insert<T = any>(table: string, data: Record<string, any>): Promise<T> {
74
- const keys = Object.keys(data);
75
- const values = Object.values(data);
76
- const placeholders = keys.map((_, index) => `$${index + 1}`).join(', ');
77
-
78
- const sql = `INSERT INTO ${table} (${keys.join(', ')}) VALUES (${placeholders}) RETURNING *`;
79
- const result = await this.pool.query(sql, values);
80
-
81
- return result.rows[0] as T;
82
- }
83
-
84
- async update<T = any>(
85
- table: string,
86
- data: Record<string, any>,
87
- where: Record<string, any>
88
- ): Promise<T> {
89
- const dataKeys = Object.keys(data);
90
- const dataValues = Object.values(data);
91
- const whereKeys = Object.keys(where);
92
- const whereValues = Object.values(where);
93
-
94
- const setClause = dataKeys.map((key, index) => `${key} = $${index + 1}`).join(', ');
95
- const whereClause = whereKeys
96
- .map((key, index) => `${key} = $${dataKeys.length + index + 1}`)
97
- .join(' AND ');
98
-
99
- const sql = `UPDATE ${table} SET ${setClause} WHERE ${whereClause} RETURNING *`;
100
- const params = [...dataValues, ...whereValues];
101
-
102
- const result = await this.pool.query(sql, params);
103
- return result.rows[0] as T;
104
- }
105
-
106
- async delete(table: string, where: Record<string, any>): Promise<number> {
107
- const whereKeys = Object.keys(where);
108
- const whereValues = Object.values(where);
109
- const whereClause = whereKeys.map((key, index) => `${key} = $${index + 1}`).join(' AND ');
110
-
111
- const sql = `DELETE FROM ${table} WHERE ${whereClause}`;
112
- const result = await this.pool.query(sql, whereValues);
113
-
114
- return result.rowCount || 0;
115
- }
116
-
117
- async transaction<T>(callback: (tx: DatabaseTransaction) => Promise<T>): Promise<T> {
118
- const client = await this.pool.connect();
119
-
120
- try {
121
- await client.query('BEGIN');
122
-
123
- const transaction = new PostgreSQLTransaction(client);
124
- const result = await callback(transaction);
125
-
126
- await client.query('COMMIT');
127
- return result;
128
- } catch (error) {
129
- await client.query('ROLLBACK');
130
- throw error;
131
- } finally {
132
- client.release();
133
- }
134
- }
135
- }
136
-
137
- class PostgreSQLTransaction implements DatabaseTransaction {
138
- constructor(private client: any) {}
139
-
140
- async query<T = any>(sql: string, params?: any[]): Promise<T[]> {
141
- const result = await this.client.query(sql, params);
142
- return result.rows as T[];
143
- }
144
-
145
- async queryOne<T = any>(sql: string, params?: any[]): Promise<T | null> {
146
- const results = await this.query<T>(sql, params);
147
- return results.length > 0 ? results[0] : null;
148
- }
149
-
150
- async insert<T = any>(table: string, data: Record<string, any>): Promise<T> {
151
- const keys = Object.keys(data);
152
- const values = Object.values(data);
153
- const placeholders = keys.map((_, index) => `$${index + 1}`).join(', ');
154
-
155
- const sql = `INSERT INTO ${table} (${keys.join(', ')}) VALUES (${placeholders}) RETURNING *`;
156
- const result = await this.client.query(sql, values);
157
-
158
- return result.rows[0] as T;
159
- }
160
-
161
- async update<T = any>(
162
- table: string,
163
- data: Record<string, any>,
164
- where: Record<string, any>
165
- ): Promise<T> {
166
- const dataKeys = Object.keys(data);
167
- const dataValues = Object.values(data);
168
- const whereKeys = Object.keys(where);
169
- const whereValues = Object.values(where);
170
-
171
- const setClause = dataKeys.map((key, index) => `${key} = $${index + 1}`).join(', ');
172
- const whereClause = whereKeys
173
- .map((key, index) => `${key} = $${dataKeys.length + index + 1}`)
174
- .join(' AND ');
175
-
176
- const sql = `UPDATE ${table} SET ${setClause} WHERE ${whereClause} RETURNING *`;
177
- const params = [...dataValues, ...whereValues];
178
-
179
- const result = await this.client.query(sql, params);
180
- return result.rows[0] as T;
181
- }
182
-
183
- async delete(table: string, where: Record<string, any>): Promise<number> {
184
- const whereKeys = Object.keys(where);
185
- const whereValues = Object.values(where);
186
- const whereClause = whereKeys.map((key, index) => `${key} = $${index + 1}`).join(' AND ');
187
-
188
- const sql = `DELETE FROM ${table} WHERE ${whereClause}`;
189
- const result = await this.client.query(sql, whereValues);
190
-
191
- return result.rowCount || 0;
192
- }
193
-
194
- async commit(): Promise<void> {
195
- await this.client.query('COMMIT');
196
- }
197
-
198
- async rollback(): Promise<void> {
199
- await this.client.query('ROLLBACK');
200
- }
201
- }