@morojs/moro 1.6.2 → 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 (366) hide show
  1. package/dist/core/http/http-server.js +12 -9
  2. package/dist/core/http/http-server.js.map +1 -1
  3. package/dist/core/http/uws-http-server.js +1 -1
  4. package/dist/core/http/uws-http-server.js.map +1 -1
  5. package/dist/core/middleware/built-in/auth/core.d.ts +78 -0
  6. package/dist/core/middleware/built-in/auth/core.js +358 -0
  7. package/dist/core/middleware/built-in/auth/core.js.map +1 -0
  8. package/dist/core/middleware/built-in/{auth-helpers.js → auth/helpers.js} +1 -1
  9. package/dist/core/middleware/built-in/auth/helpers.js.map +1 -0
  10. package/dist/core/middleware/built-in/auth/hook.d.ts +30 -0
  11. package/dist/core/middleware/built-in/auth/hook.js +99 -0
  12. package/dist/core/middleware/built-in/auth/hook.js.map +1 -0
  13. package/dist/core/middleware/built-in/auth/index.d.ts +7 -0
  14. package/dist/core/middleware/built-in/auth/index.js +15 -0
  15. package/dist/core/middleware/built-in/auth/index.js.map +1 -0
  16. package/dist/core/middleware/built-in/{jwt-helpers.js → auth/jwt-helpers.js} +1 -1
  17. package/dist/core/middleware/built-in/auth/jwt-helpers.js.map +1 -0
  18. package/dist/core/middleware/built-in/auth/middleware.d.ts +23 -0
  19. package/dist/core/middleware/built-in/auth/middleware.js +71 -0
  20. package/dist/core/middleware/built-in/auth/middleware.js.map +1 -0
  21. package/dist/core/middleware/built-in/{auth-providers.d.ts → auth/providers.d.ts} +1 -1
  22. package/dist/core/middleware/built-in/{auth-providers.js → auth/providers.js} +1 -1
  23. package/dist/core/middleware/built-in/auth/providers.js.map +1 -0
  24. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/file.d.ts +1 -1
  25. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/file.js +1 -1
  26. package/dist/core/middleware/built-in/cache/adapters/cache/file.js.map +1 -0
  27. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/index.d.ts +1 -1
  28. package/dist/core/middleware/built-in/cache/adapters/cache/index.js.map +1 -0
  29. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/memory.d.ts +1 -1
  30. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/memory.js +1 -1
  31. package/dist/core/middleware/built-in/cache/adapters/cache/memory.js.map +1 -0
  32. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/redis.d.ts +1 -1
  33. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/redis.js +2 -2
  34. package/dist/core/middleware/built-in/cache/adapters/cache/redis.js.map +1 -0
  35. package/dist/core/middleware/built-in/{adapters → cache/adapters}/index.d.ts +0 -2
  36. package/{src/core/middleware/built-in/adapters/index.ts → dist/core/middleware/built-in/cache/adapters/index.js} +1 -3
  37. package/dist/core/middleware/built-in/cache/adapters/index.js.map +1 -0
  38. package/dist/core/middleware/built-in/cache/core.d.ts +37 -0
  39. package/dist/core/middleware/built-in/cache/core.js +87 -0
  40. package/dist/core/middleware/built-in/cache/core.js.map +1 -0
  41. package/dist/core/middleware/built-in/cache/hook.d.ts +20 -0
  42. package/dist/core/middleware/built-in/{cache.js → cache/hook.js} +22 -5
  43. package/dist/core/middleware/built-in/cache/hook.js.map +1 -0
  44. package/dist/core/middleware/built-in/cache/index.d.ts +3 -0
  45. package/dist/core/middleware/built-in/cache/index.js +9 -0
  46. package/dist/core/middleware/built-in/cache/index.js.map +1 -0
  47. package/dist/core/middleware/built-in/cache/middleware.d.ts +17 -0
  48. package/dist/core/middleware/built-in/cache/middleware.js +44 -0
  49. package/dist/core/middleware/built-in/cache/middleware.js.map +1 -0
  50. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/azure.d.ts +1 -1
  51. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/azure.js +1 -1
  52. package/dist/core/middleware/built-in/cdn/adapters/cdn/azure.js.map +1 -0
  53. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudflare.d.ts +1 -1
  54. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudflare.js +1 -1
  55. package/dist/core/middleware/built-in/cdn/adapters/cdn/cloudflare.js.map +1 -0
  56. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudfront.d.ts +1 -1
  57. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudfront.js +2 -2
  58. package/dist/core/middleware/built-in/cdn/adapters/cdn/cloudfront.js.map +1 -0
  59. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/index.d.ts +1 -1
  60. package/dist/core/middleware/built-in/cdn/adapters/cdn/index.js.map +1 -0
  61. package/dist/core/middleware/built-in/cdn/adapters/index.d.ts +2 -0
  62. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/index.js +0 -2
  63. package/dist/core/middleware/built-in/cdn/adapters/index.js.map +1 -0
  64. package/dist/core/middleware/built-in/cdn/core.d.ts +43 -0
  65. package/dist/core/middleware/built-in/cdn/core.js +144 -0
  66. package/dist/core/middleware/built-in/cdn/core.js.map +1 -0
  67. package/dist/core/middleware/built-in/cdn/hook.d.ts +22 -0
  68. package/dist/core/middleware/built-in/cdn/hook.js +70 -0
  69. package/dist/core/middleware/built-in/cdn/hook.js.map +1 -0
  70. package/dist/core/middleware/built-in/cdn/index.d.ts +5 -0
  71. package/dist/core/middleware/built-in/cdn/index.js +11 -0
  72. package/dist/core/middleware/built-in/cdn/index.js.map +1 -0
  73. package/dist/core/middleware/built-in/cdn/middleware.d.ts +21 -0
  74. package/dist/core/middleware/built-in/cdn/middleware.js +52 -0
  75. package/dist/core/middleware/built-in/cdn/middleware.js.map +1 -0
  76. package/dist/core/middleware/built-in/cookie/core.d.ts +37 -0
  77. package/dist/core/middleware/built-in/cookie/core.js +83 -0
  78. package/dist/core/middleware/built-in/cookie/core.js.map +1 -0
  79. package/dist/core/middleware/built-in/cookie/hook.d.ts +20 -0
  80. package/dist/core/middleware/built-in/cookie/hook.js +47 -0
  81. package/dist/core/middleware/built-in/cookie/hook.js.map +1 -0
  82. package/dist/core/middleware/built-in/cookie/index.d.ts +3 -0
  83. package/dist/core/middleware/built-in/cookie/index.js +9 -0
  84. package/dist/core/middleware/built-in/cookie/index.js.map +1 -0
  85. package/dist/core/middleware/built-in/cookie/middleware.d.ts +17 -0
  86. package/dist/core/middleware/built-in/cookie/middleware.js +36 -0
  87. package/dist/core/middleware/built-in/cookie/middleware.js.map +1 -0
  88. package/dist/core/middleware/built-in/cors/core.d.ts +23 -0
  89. package/dist/core/middleware/built-in/cors/core.js +51 -0
  90. package/dist/core/middleware/built-in/cors/core.js.map +1 -0
  91. package/dist/core/middleware/built-in/cors/hook.d.ts +17 -0
  92. package/dist/core/middleware/built-in/cors/hook.js +37 -0
  93. package/dist/core/middleware/built-in/cors/hook.js.map +1 -0
  94. package/dist/core/middleware/built-in/cors/index.d.ts +3 -0
  95. package/dist/core/middleware/built-in/cors/index.js +9 -0
  96. package/dist/core/middleware/built-in/cors/index.js.map +1 -0
  97. package/dist/core/middleware/built-in/cors/middleware.d.ts +16 -0
  98. package/dist/core/middleware/built-in/cors/middleware.js +22 -0
  99. package/dist/core/middleware/built-in/cors/middleware.js.map +1 -0
  100. package/dist/core/middleware/built-in/csp/core.d.ts +45 -0
  101. package/dist/core/middleware/built-in/csp/core.js +88 -0
  102. package/dist/core/middleware/built-in/csp/core.js.map +1 -0
  103. package/dist/core/middleware/built-in/csp/hook.d.ts +22 -0
  104. package/dist/core/middleware/built-in/csp/hook.js +47 -0
  105. package/dist/core/middleware/built-in/csp/hook.js.map +1 -0
  106. package/dist/core/middleware/built-in/csp/index.d.ts +3 -0
  107. package/dist/core/middleware/built-in/csp/index.js +9 -0
  108. package/dist/core/middleware/built-in/csp/index.js.map +1 -0
  109. package/dist/core/middleware/built-in/csp/middleware.d.ts +19 -0
  110. package/dist/core/middleware/built-in/csp/middleware.js +29 -0
  111. package/dist/core/middleware/built-in/csp/middleware.js.map +1 -0
  112. package/dist/core/middleware/built-in/csrf/core.d.ts +28 -0
  113. package/dist/core/middleware/built-in/csrf/core.js +69 -0
  114. package/dist/core/middleware/built-in/csrf/core.js.map +1 -0
  115. package/dist/core/middleware/built-in/csrf/hook.d.ts +17 -0
  116. package/dist/core/middleware/built-in/csrf/hook.js +45 -0
  117. package/dist/core/middleware/built-in/csrf/hook.js.map +1 -0
  118. package/dist/core/middleware/built-in/csrf/index.d.ts +3 -0
  119. package/dist/core/middleware/built-in/csrf/index.js +9 -0
  120. package/dist/core/middleware/built-in/csrf/index.js.map +1 -0
  121. package/dist/core/middleware/built-in/csrf/middleware.d.ts +16 -0
  122. package/dist/core/middleware/built-in/csrf/middleware.js +34 -0
  123. package/dist/core/middleware/built-in/csrf/middleware.js.map +1 -0
  124. package/dist/core/middleware/built-in/error-tracker/index.d.ts +1 -0
  125. package/dist/core/middleware/built-in/error-tracker/index.js +4 -0
  126. package/dist/core/middleware/built-in/error-tracker/index.js.map +1 -0
  127. package/dist/core/middleware/built-in/error-tracker/middleware.d.ts +12 -0
  128. package/dist/core/middleware/built-in/{error-tracker.js → error-tracker/middleware.js} +14 -3
  129. package/dist/core/middleware/built-in/error-tracker/middleware.js.map +1 -0
  130. package/dist/core/middleware/built-in/index.d.ts +25 -59
  131. package/dist/core/middleware/built-in/index.js +31 -31
  132. package/dist/core/middleware/built-in/index.js.map +1 -1
  133. package/dist/core/middleware/built-in/performance-monitor/index.d.ts +1 -0
  134. package/dist/core/middleware/built-in/performance-monitor/index.js +4 -0
  135. package/dist/core/middleware/built-in/performance-monitor/index.js.map +1 -0
  136. package/dist/core/middleware/built-in/performance-monitor/middleware.d.ts +12 -0
  137. package/dist/core/middleware/built-in/{performance-monitor.js → performance-monitor/middleware.js} +14 -3
  138. package/dist/core/middleware/built-in/performance-monitor/middleware.js.map +1 -0
  139. package/dist/core/middleware/built-in/rate-limit/core.d.ts +33 -0
  140. package/dist/core/middleware/built-in/rate-limit/core.js +86 -0
  141. package/dist/core/middleware/built-in/rate-limit/core.js.map +1 -0
  142. package/dist/core/middleware/built-in/rate-limit/hook.d.ts +20 -0
  143. package/dist/core/middleware/built-in/{rate-limit.js → rate-limit/hook.js} +22 -16
  144. package/dist/core/middleware/built-in/rate-limit/hook.js.map +1 -0
  145. package/dist/core/middleware/built-in/rate-limit/index.d.ts +3 -0
  146. package/dist/core/middleware/built-in/rate-limit/index.js +9 -0
  147. package/dist/core/middleware/built-in/rate-limit/index.js.map +1 -0
  148. package/dist/core/middleware/built-in/rate-limit/middleware.d.ts +16 -0
  149. package/dist/core/middleware/built-in/rate-limit/middleware.js +35 -0
  150. package/dist/core/middleware/built-in/rate-limit/middleware.js.map +1 -0
  151. package/dist/core/middleware/built-in/request-logger/index.d.ts +1 -0
  152. package/dist/core/middleware/built-in/request-logger/index.js +4 -0
  153. package/dist/core/middleware/built-in/request-logger/index.js.map +1 -0
  154. package/dist/core/middleware/built-in/request-logger/middleware.d.ts +12 -0
  155. package/dist/core/middleware/built-in/{request-logger.js → request-logger/middleware.js} +14 -3
  156. package/dist/core/middleware/built-in/request-logger/middleware.js.map +1 -0
  157. package/dist/core/middleware/built-in/session/core.d.ts +73 -0
  158. package/dist/core/middleware/built-in/session/core.js +227 -0
  159. package/dist/core/middleware/built-in/session/core.js.map +1 -0
  160. package/dist/core/middleware/built-in/session/hook.d.ts +17 -0
  161. package/dist/core/middleware/built-in/session/hook.js +53 -0
  162. package/dist/core/middleware/built-in/session/hook.js.map +1 -0
  163. package/dist/core/middleware/built-in/session/index.d.ts +3 -0
  164. package/dist/core/middleware/built-in/session/index.js +9 -0
  165. package/dist/core/middleware/built-in/session/index.js.map +1 -0
  166. package/dist/core/middleware/built-in/session/middleware.d.ts +17 -0
  167. package/dist/core/middleware/built-in/session/middleware.js +38 -0
  168. package/dist/core/middleware/built-in/session/middleware.js.map +1 -0
  169. package/dist/core/middleware/built-in/sse/core.d.ts +44 -0
  170. package/dist/core/middleware/built-in/sse/core.js +117 -0
  171. package/dist/core/middleware/built-in/sse/core.js.map +1 -0
  172. package/dist/core/middleware/built-in/sse/hook.d.ts +18 -0
  173. package/dist/core/middleware/built-in/sse/hook.js +60 -0
  174. package/dist/core/middleware/built-in/sse/hook.js.map +1 -0
  175. package/dist/core/middleware/built-in/sse/index.d.ts +3 -0
  176. package/dist/core/middleware/built-in/sse/index.js +9 -0
  177. package/dist/core/middleware/built-in/sse/index.js.map +1 -0
  178. package/dist/core/middleware/built-in/sse/middleware.d.ts +18 -0
  179. package/dist/core/middleware/built-in/sse/middleware.js +43 -0
  180. package/dist/core/middleware/built-in/sse/middleware.js.map +1 -0
  181. package/dist/core/middleware/built-in/validation/core.d.ts +23 -0
  182. package/dist/core/middleware/built-in/validation/core.js +93 -0
  183. package/dist/core/middleware/built-in/validation/core.js.map +1 -0
  184. package/dist/core/middleware/built-in/validation/hook.d.ts +13 -0
  185. package/dist/core/middleware/built-in/{validation.js → validation/hook.js} +14 -3
  186. package/dist/core/middleware/built-in/validation/hook.js.map +1 -0
  187. package/dist/core/middleware/built-in/validation/index.d.ts +3 -0
  188. package/dist/core/middleware/built-in/validation/index.js +9 -0
  189. package/dist/core/middleware/built-in/validation/index.js.map +1 -0
  190. package/dist/core/middleware/built-in/validation/middleware.d.ts +16 -0
  191. package/dist/core/middleware/built-in/validation/middleware.js +27 -0
  192. package/dist/core/middleware/built-in/validation/middleware.js.map +1 -0
  193. package/dist/core/middleware/index.js +6 -0
  194. package/dist/core/middleware/index.js.map +1 -1
  195. package/dist/core/routing/unified-router.d.ts +4 -20
  196. package/dist/core/routing/unified-router.js +61 -106
  197. package/dist/core/routing/unified-router.js.map +1 -1
  198. package/dist/index.d.ts +3 -2
  199. package/dist/index.js +3 -2
  200. package/dist/index.js.map +1 -1
  201. package/dist/moro.js +12 -18
  202. package/dist/moro.js.map +1 -1
  203. package/dist/types/hooks.d.ts +3 -0
  204. package/package.json +2 -6
  205. package/dist/core/middleware/built-in/adapters/cache/file.js.map +0 -1
  206. package/dist/core/middleware/built-in/adapters/cache/index.js.map +0 -1
  207. package/dist/core/middleware/built-in/adapters/cache/memory.js.map +0 -1
  208. package/dist/core/middleware/built-in/adapters/cache/redis.js.map +0 -1
  209. package/dist/core/middleware/built-in/adapters/cdn/azure.js.map +0 -1
  210. package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js.map +0 -1
  211. package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js.map +0 -1
  212. package/dist/core/middleware/built-in/adapters/cdn/index.js.map +0 -1
  213. package/dist/core/middleware/built-in/adapters/index.js.map +0 -1
  214. package/dist/core/middleware/built-in/auth-helpers.js.map +0 -1
  215. package/dist/core/middleware/built-in/auth-providers.js.map +0 -1
  216. package/dist/core/middleware/built-in/auth.d.ts +0 -30
  217. package/dist/core/middleware/built-in/auth.js +0 -348
  218. package/dist/core/middleware/built-in/auth.js.map +0 -1
  219. package/dist/core/middleware/built-in/cache.d.ts +0 -3
  220. package/dist/core/middleware/built-in/cache.js.map +0 -1
  221. package/dist/core/middleware/built-in/cdn.d.ts +0 -3
  222. package/dist/core/middleware/built-in/cdn.js +0 -109
  223. package/dist/core/middleware/built-in/cdn.js.map +0 -1
  224. package/dist/core/middleware/built-in/cookie.d.ts +0 -14
  225. package/dist/core/middleware/built-in/cookie.js +0 -64
  226. package/dist/core/middleware/built-in/cookie.js.map +0 -1
  227. package/dist/core/middleware/built-in/cors.d.ts +0 -2
  228. package/dist/core/middleware/built-in/cors.js +0 -25
  229. package/dist/core/middleware/built-in/cors.js.map +0 -1
  230. package/dist/core/middleware/built-in/csp.d.ts +0 -22
  231. package/dist/core/middleware/built-in/csp.js +0 -68
  232. package/dist/core/middleware/built-in/csp.js.map +0 -1
  233. package/dist/core/middleware/built-in/csrf.d.ts +0 -9
  234. package/dist/core/middleware/built-in/csrf.js +0 -60
  235. package/dist/core/middleware/built-in/csrf.js.map +0 -1
  236. package/dist/core/middleware/built-in/error-tracker.d.ts +0 -1
  237. package/dist/core/middleware/built-in/error-tracker.js.map +0 -1
  238. package/dist/core/middleware/built-in/jwt-helpers.js.map +0 -1
  239. package/dist/core/middleware/built-in/performance-monitor.d.ts +0 -1
  240. package/dist/core/middleware/built-in/performance-monitor.js.map +0 -1
  241. package/dist/core/middleware/built-in/rate-limit.d.ts +0 -6
  242. package/dist/core/middleware/built-in/rate-limit.js.map +0 -1
  243. package/dist/core/middleware/built-in/request-logger.d.ts +0 -1
  244. package/dist/core/middleware/built-in/request-logger.js.map +0 -1
  245. package/dist/core/middleware/built-in/session.d.ts +0 -41
  246. package/dist/core/middleware/built-in/session.js +0 -205
  247. package/dist/core/middleware/built-in/session.js.map +0 -1
  248. package/dist/core/middleware/built-in/sse.d.ts +0 -6
  249. package/dist/core/middleware/built-in/sse.js +0 -69
  250. package/dist/core/middleware/built-in/sse.js.map +0 -1
  251. package/dist/core/middleware/built-in/validation.d.ts +0 -2
  252. package/dist/core/middleware/built-in/validation.js.map +0 -1
  253. package/jest.config.mjs +0 -41
  254. package/src/core/auth/README.md +0 -339
  255. package/src/core/auth/morojs-adapter.ts +0 -415
  256. package/src/core/config/config-manager.ts +0 -133
  257. package/src/core/config/config-sources.ts +0 -600
  258. package/src/core/config/config-validator.ts +0 -1116
  259. package/src/core/config/file-loader.ts +0 -150
  260. package/src/core/config/index.ts +0 -109
  261. package/src/core/config/schema.ts +0 -164
  262. package/src/core/config/utils.ts +0 -244
  263. package/src/core/database/README.md +0 -238
  264. package/src/core/database/adapters/drizzle.ts +0 -415
  265. package/src/core/database/adapters/index.ts +0 -42
  266. package/src/core/database/adapters/mongodb.ts +0 -317
  267. package/src/core/database/adapters/mysql.ts +0 -235
  268. package/src/core/database/adapters/postgresql.ts +0 -226
  269. package/src/core/database/adapters/redis.ts +0 -379
  270. package/src/core/database/adapters/sqlite.ts +0 -263
  271. package/src/core/database/index.ts +0 -3
  272. package/src/core/docs/index.ts +0 -231
  273. package/src/core/docs/openapi-generator.ts +0 -576
  274. package/src/core/docs/schema-to-openapi.ts +0 -145
  275. package/src/core/docs/simple-docs.ts +0 -295
  276. package/src/core/docs/swagger-ui.ts +0 -354
  277. package/src/core/docs/zod-to-openapi.ts +0 -532
  278. package/src/core/events/event-bus.ts +0 -231
  279. package/src/core/events/index.ts +0 -12
  280. package/src/core/framework.ts +0 -885
  281. package/src/core/http/http-server.ts +0 -1847
  282. package/src/core/http/index.ts +0 -7
  283. package/src/core/http/uws-http-server.ts +0 -591
  284. package/src/core/logger/filters.ts +0 -153
  285. package/src/core/logger/index.ts +0 -21
  286. package/src/core/logger/logger.ts +0 -1033
  287. package/src/core/logger/outputs.ts +0 -132
  288. package/src/core/middleware/built-in/adapters/cache/file.ts +0 -104
  289. package/src/core/middleware/built-in/adapters/cache/index.ts +0 -23
  290. package/src/core/middleware/built-in/adapters/cache/memory.ts +0 -73
  291. package/src/core/middleware/built-in/adapters/cache/redis.ts +0 -114
  292. package/src/core/middleware/built-in/adapters/cdn/azure.ts +0 -60
  293. package/src/core/middleware/built-in/adapters/cdn/cloudflare.ts +0 -83
  294. package/src/core/middleware/built-in/adapters/cdn/cloudfront.ts +0 -94
  295. package/src/core/middleware/built-in/adapters/cdn/index.ts +0 -23
  296. package/src/core/middleware/built-in/auth-helpers.ts +0 -401
  297. package/src/core/middleware/built-in/auth-providers.ts +0 -480
  298. package/src/core/middleware/built-in/auth.ts +0 -410
  299. package/src/core/middleware/built-in/cache.ts +0 -213
  300. package/src/core/middleware/built-in/cdn.ts +0 -124
  301. package/src/core/middleware/built-in/cookie.ts +0 -85
  302. package/src/core/middleware/built-in/cors.ts +0 -38
  303. package/src/core/middleware/built-in/csp.ts +0 -101
  304. package/src/core/middleware/built-in/csrf.ts +0 -82
  305. package/src/core/middleware/built-in/error-tracker.ts +0 -16
  306. package/src/core/middleware/built-in/index.ts +0 -87
  307. package/src/core/middleware/built-in/jwt-helpers.ts +0 -243
  308. package/src/core/middleware/built-in/performance-monitor.ts +0 -25
  309. package/src/core/middleware/built-in/rate-limit.ts +0 -60
  310. package/src/core/middleware/built-in/request-logger.ts +0 -16
  311. package/src/core/middleware/built-in/session.ts +0 -287
  312. package/src/core/middleware/built-in/sse.ts +0 -88
  313. package/src/core/middleware/built-in/validation.ts +0 -33
  314. package/src/core/middleware/index.ts +0 -177
  315. package/src/core/modules/auto-discovery.ts +0 -726
  316. package/src/core/modules/index.ts +0 -3
  317. package/src/core/modules/modules.ts +0 -135
  318. package/src/core/networking/adapters/index.ts +0 -17
  319. package/src/core/networking/adapters/socketio-adapter.ts +0 -254
  320. package/src/core/networking/adapters/uws-adapter.ts +0 -619
  321. package/src/core/networking/adapters/ws-adapter.ts +0 -429
  322. package/src/core/networking/index.ts +0 -4
  323. package/src/core/networking/service-discovery.ts +0 -303
  324. package/src/core/networking/websocket-adapter.ts +0 -217
  325. package/src/core/networking/websocket-manager.ts +0 -308
  326. package/src/core/pooling/object-pool-manager.ts +0 -630
  327. package/src/core/routing/app-integration.ts +0 -164
  328. package/src/core/routing/index.ts +0 -261
  329. package/src/core/routing/path-matcher.ts +0 -222
  330. package/src/core/routing/router.ts +0 -97
  331. package/src/core/routing/unified-router.ts +0 -870
  332. package/src/core/runtime/aws-lambda-adapter.ts +0 -147
  333. package/src/core/runtime/base-adapter.ts +0 -130
  334. package/src/core/runtime/cloudflare-workers-adapter.ts +0 -152
  335. package/src/core/runtime/index.ts +0 -62
  336. package/src/core/runtime/node-adapter.ts +0 -202
  337. package/src/core/runtime/vercel-edge-adapter.ts +0 -114
  338. package/src/core/utilities/circuit-breaker.ts +0 -46
  339. package/src/core/utilities/container.ts +0 -736
  340. package/src/core/utilities/hooks.ts +0 -142
  341. package/src/core/utilities/index.ts +0 -17
  342. package/src/core/utilities/package-utils.ts +0 -59
  343. package/src/core/validation/adapters.ts +0 -147
  344. package/src/core/validation/index.ts +0 -258
  345. package/src/core/validation/schema-interface.ts +0 -100
  346. package/src/index.ts +0 -233
  347. package/src/moro.ts +0 -1728
  348. package/src/types/auth.ts +0 -440
  349. package/src/types/cache.ts +0 -38
  350. package/src/types/cdn.ts +0 -22
  351. package/src/types/config.ts +0 -229
  352. package/src/types/core.ts +0 -58
  353. package/src/types/database.ts +0 -32
  354. package/src/types/discovery.ts +0 -7
  355. package/src/types/events.ts +0 -82
  356. package/src/types/hooks.ts +0 -47
  357. package/src/types/http.ts +0 -89
  358. package/src/types/logger.ts +0 -102
  359. package/src/types/module.ts +0 -99
  360. package/src/types/runtime.ts +0 -76
  361. package/src/types/session.ts +0 -89
  362. package/tsconfig.json +0 -23
  363. /package/dist/core/middleware/built-in/{auth-helpers.d.ts → auth/helpers.d.ts} +0 -0
  364. /package/dist/core/middleware/built-in/{jwt-helpers.d.ts → auth/jwt-helpers.d.ts} +0 -0
  365. /package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/index.js +0 -0
  366. /package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/index.js +0 -0
@@ -1,226 +0,0 @@
1
- // Database PostgreSQL Adapter
2
- import { DatabaseAdapter, DatabaseTransaction } from '../../../types/database.js';
3
- import { createFrameworkLogger } from '../../logger/index.js';
4
- import { resolveUserPackage } from '../../utilities/package-utils.js';
5
-
6
- interface PostgreSQLConfig {
7
- host?: string;
8
- port?: number;
9
- user?: string;
10
- password?: string;
11
- database?: string;
12
- connectionLimit?: number;
13
- ssl?:
14
- | {
15
- rejectUnauthorized?: boolean;
16
- ca?: string;
17
- cert?: string;
18
- key?: string;
19
- passphrase?: string;
20
- servername?: string;
21
- checkServerIdentity?: boolean;
22
- }
23
- | boolean;
24
- }
25
-
26
- export class PostgreSQLAdapter implements DatabaseAdapter {
27
- private pool: any;
28
- private logger = createFrameworkLogger('PostgreSQL');
29
- private initPromise: Promise<void>;
30
-
31
- constructor(config: PostgreSQLConfig) {
32
- this.initPromise = this.initialize(config);
33
- }
34
-
35
- private async initialize(config: PostgreSQLConfig): Promise<void> {
36
- try {
37
- const pgPath = resolveUserPackage('pg');
38
- const pg = await import(pgPath);
39
- const { Pool } = pg.default;
40
- this.pool = new Pool({
41
- host: config.host || 'localhost',
42
- port: config.port || 5432,
43
- user: config.user || 'postgres',
44
- password: config.password || '',
45
- database: config.database || 'moro_app',
46
- max: config.connectionLimit || 10,
47
- ssl: typeof config.ssl === 'object' ? { ...config.ssl } : config.ssl || false,
48
- });
49
-
50
- this.pool.on('error', (err: Error) => {
51
- this.logger.error('PostgreSQL pool error', 'Pool', {
52
- error: err.message,
53
- });
54
- });
55
-
56
- this.logger.info('PostgreSQL adapter initialized', 'PostgreSQL');
57
- } catch (error) {
58
- throw new Error(
59
- 'pg package is required for PostgreSQL adapter. Install it with: npm install pg'
60
- );
61
- }
62
- }
63
-
64
- async connect(): Promise<void> {
65
- await this.initPromise;
66
- try {
67
- const client = await this.pool.connect();
68
- client.release();
69
- this.logger.info('PostgreSQL connection established', 'Connection');
70
- } catch (error) {
71
- this.logger.error('PostgreSQL connection failed', 'Connection', {
72
- error: error instanceof Error ? error.message : String(error),
73
- });
74
- throw error;
75
- }
76
- }
77
-
78
- async disconnect(): Promise<void> {
79
- await this.initPromise;
80
- await this.pool.end();
81
- }
82
-
83
- async query<T = any>(sql: string, params?: any[]): Promise<T[]> {
84
- await this.initPromise;
85
- const result = await this.pool.query(sql, params);
86
- return result.rows as T[];
87
- }
88
-
89
- async queryOne<T = any>(sql: string, params?: any[]): Promise<T | null> {
90
- const results = await this.query<T>(sql, params);
91
- return results.length > 0 ? results[0] : null;
92
- }
93
-
94
- async insert<T = any>(table: string, data: Record<string, any>): Promise<T> {
95
- await this.initPromise;
96
- const keys = Object.keys(data);
97
- const values = Object.values(data);
98
- const placeholders = keys.map((_, index) => `$${index + 1}`).join(', ');
99
-
100
- const sql = `INSERT INTO ${table} (${keys.join(', ')}) VALUES (${placeholders}) RETURNING *`;
101
- const result = await this.pool.query(sql, values);
102
-
103
- return result.rows[0] as T;
104
- }
105
-
106
- async update<T = any>(
107
- table: string,
108
- data: Record<string, any>,
109
- where: Record<string, any>
110
- ): Promise<T> {
111
- await this.initPromise;
112
- const dataKeys = Object.keys(data);
113
- const dataValues = Object.values(data);
114
- const whereKeys = Object.keys(where);
115
- const whereValues = Object.values(where);
116
-
117
- const setClause = dataKeys.map((key, index) => `${key} = $${index + 1}`).join(', ');
118
- const whereClause = whereKeys
119
- .map((key, index) => `${key} = $${dataKeys.length + index + 1}`)
120
- .join(' AND ');
121
-
122
- const sql = `UPDATE ${table} SET ${setClause} WHERE ${whereClause} RETURNING *`;
123
- const params = [...dataValues, ...whereValues];
124
-
125
- const result = await this.pool.query(sql, params);
126
- return result.rows[0] as T;
127
- }
128
-
129
- async delete(table: string, where: Record<string, any>): Promise<number> {
130
- await this.initPromise;
131
- const whereKeys = Object.keys(where);
132
- const whereValues = Object.values(where);
133
- const whereClause = whereKeys.map((key, index) => `${key} = $${index + 1}`).join(' AND ');
134
-
135
- const sql = `DELETE FROM ${table} WHERE ${whereClause}`;
136
- const result = await this.pool.query(sql, whereValues);
137
-
138
- return result.rowCount || 0;
139
- }
140
-
141
- async transaction<T>(callback: (tx: DatabaseTransaction) => Promise<T>): Promise<T> {
142
- await this.initPromise;
143
- const client = await this.pool.connect();
144
-
145
- try {
146
- await client.query('BEGIN');
147
-
148
- const transaction = new PostgreSQLTransaction(client);
149
- const result = await callback(transaction);
150
-
151
- await client.query('COMMIT');
152
- return result;
153
- } catch (error) {
154
- await client.query('ROLLBACK');
155
- throw error;
156
- } finally {
157
- client.release();
158
- }
159
- }
160
- }
161
-
162
- class PostgreSQLTransaction implements DatabaseTransaction {
163
- constructor(private client: any) {}
164
-
165
- async query<T = any>(sql: string, params?: any[]): Promise<T[]> {
166
- const result = await this.client.query(sql, params);
167
- return result.rows as T[];
168
- }
169
-
170
- async queryOne<T = any>(sql: string, params?: any[]): Promise<T | null> {
171
- const results = await this.query<T>(sql, params);
172
- return results.length > 0 ? results[0] : null;
173
- }
174
-
175
- async insert<T = any>(table: string, data: Record<string, any>): Promise<T> {
176
- const keys = Object.keys(data);
177
- const values = Object.values(data);
178
- const placeholders = keys.map((_, index) => `$${index + 1}`).join(', ');
179
-
180
- const sql = `INSERT INTO ${table} (${keys.join(', ')}) VALUES (${placeholders}) RETURNING *`;
181
- const result = await this.client.query(sql, values);
182
-
183
- return result.rows[0] as T;
184
- }
185
-
186
- async update<T = any>(
187
- table: string,
188
- data: Record<string, any>,
189
- where: Record<string, any>
190
- ): Promise<T> {
191
- const dataKeys = Object.keys(data);
192
- const dataValues = Object.values(data);
193
- const whereKeys = Object.keys(where);
194
- const whereValues = Object.values(where);
195
-
196
- const setClause = dataKeys.map((key, index) => `${key} = $${index + 1}`).join(', ');
197
- const whereClause = whereKeys
198
- .map((key, index) => `${key} = $${dataKeys.length + index + 1}`)
199
- .join(' AND ');
200
-
201
- const sql = `UPDATE ${table} SET ${setClause} WHERE ${whereClause} RETURNING *`;
202
- const params = [...dataValues, ...whereValues];
203
-
204
- const result = await this.client.query(sql, params);
205
- return result.rows[0] as T;
206
- }
207
-
208
- async delete(table: string, where: Record<string, any>): Promise<number> {
209
- const whereKeys = Object.keys(where);
210
- const whereValues = Object.values(where);
211
- const whereClause = whereKeys.map((key, index) => `${key} = $${index + 1}`).join(' AND ');
212
-
213
- const sql = `DELETE FROM ${table} WHERE ${whereClause}`;
214
- const result = await this.client.query(sql, whereValues);
215
-
216
- return result.rowCount || 0;
217
- }
218
-
219
- async commit(): Promise<void> {
220
- await this.client.query('COMMIT');
221
- }
222
-
223
- async rollback(): Promise<void> {
224
- await this.client.query('ROLLBACK');
225
- }
226
- }
@@ -1,379 +0,0 @@
1
- // Database Redis Adapter
2
- import { DatabaseAdapter, DatabaseTransaction } from '../../../types/database.js';
3
- import { createFrameworkLogger } from '../../logger/index.js';
4
- import { resolveUserPackage } from '../../utilities/package-utils.js';
5
-
6
- interface RedisConfig {
7
- host?: string;
8
- port?: number;
9
- password?: string;
10
- db?: number;
11
- keyPrefix?: string;
12
- maxRetriesPerRequest?: number;
13
- retryDelayOnFailover?: number;
14
- lazyConnect?: boolean;
15
- tls?: {
16
- rejectUnauthorized?: boolean;
17
- ca?: string;
18
- cert?: string;
19
- key?: string;
20
- passphrase?: string;
21
- servername?: string;
22
- checkServerIdentity?: boolean;
23
- };
24
- cluster?: {
25
- enableReadyCheck?: boolean;
26
- redisOptions?: any;
27
- nodes: Array<{ host: string; port: number }>;
28
- };
29
- }
30
-
31
- export class RedisAdapter implements DatabaseAdapter {
32
- private client: any;
33
- private logger = createFrameworkLogger('Redis');
34
- private keyPrefix: string;
35
- private initPromise: Promise<void>;
36
-
37
- constructor(config: RedisConfig = {}) {
38
- this.keyPrefix = config.keyPrefix || 'moro:';
39
- this.initPromise = this.initialize(config);
40
- }
41
-
42
- private async initialize(config: RedisConfig): Promise<void> {
43
- try {
44
- const ioredisPath = resolveUserPackage('ioredis');
45
- const ioredis = await import(ioredisPath);
46
- const Redis = ioredis.default;
47
-
48
- if (config.cluster) {
49
- // Redis Cluster
50
- const clusterOptions: any = {
51
- enableReadyCheck: config.cluster.enableReadyCheck || false,
52
- redisOptions: config.cluster.redisOptions || {},
53
- };
54
-
55
- // Add TLS options to cluster configuration
56
- if (config.tls) {
57
- clusterOptions.redisOptions.tls = { ...config.tls };
58
- }
59
-
60
- this.client = new Redis.Cluster(config.cluster.nodes, clusterOptions);
61
- } else {
62
- // Single Redis instance
63
- const redisOptions: any = {
64
- host: config.host || 'localhost',
65
- port: config.port || 6379,
66
- password: config.password,
67
- db: config.db || 0,
68
- maxRetriesPerRequest: config.maxRetriesPerRequest || 3,
69
- retryDelayOnFailover: config.retryDelayOnFailover || 100,
70
- lazyConnect: config.lazyConnect || true,
71
- };
72
-
73
- // Add TLS options if provided
74
- if (config.tls) {
75
- redisOptions.tls = { ...config.tls };
76
- }
77
-
78
- this.client = new Redis(redisOptions);
79
- }
80
-
81
- this.client.on('error', (err: Error) => {
82
- this.logger.error('Redis client error', 'Redis', {
83
- error: err.message,
84
- });
85
- });
86
-
87
- this.client.on('connect', () => {
88
- this.logger.info('Redis connected', 'Connection');
89
- });
90
-
91
- this.client.on('disconnect', () => {
92
- this.logger.warn('Redis disconnected', 'Connection');
93
- });
94
-
95
- this.logger.info('Redis adapter initialized', 'Redis');
96
- } catch (error) {
97
- throw new Error(
98
- 'ioredis package is required for Redis adapter. Install it with: npm install ioredis'
99
- );
100
- }
101
- }
102
-
103
- private prefixKey(key: string): string {
104
- return `${this.keyPrefix}${key}`;
105
- }
106
-
107
- async connect(): Promise<void> {
108
- await this.initPromise;
109
- try {
110
- await this.client.ping();
111
- this.logger.info('Redis connection established', 'Connection');
112
- } catch (error) {
113
- this.logger.error('Redis connection failed', 'Connection', {
114
- error: error instanceof Error ? error.message : String(error),
115
- });
116
- throw error;
117
- }
118
- }
119
-
120
- async disconnect(): Promise<void> {
121
- await this.initPromise;
122
- await this.client.quit();
123
- }
124
-
125
- // For Redis, we adapt the SQL-like interface to key-value operations
126
- async query<T = any>(pattern: string, _params?: any[]): Promise<T[]> {
127
- await this.initPromise;
128
- try {
129
- const keys = await this.client.keys(this.prefixKey(pattern));
130
- if (keys.length === 0) return [];
131
-
132
- const values = await this.client.mget(keys);
133
- return values.map((value: string, index: number) => ({
134
- key: keys[index].replace(this.keyPrefix, ''),
135
- value: value ? JSON.parse(value) : null,
136
- }));
137
- } catch (error) {
138
- this.logger.error('Redis query failed', 'Query', {
139
- pattern,
140
- error: error instanceof Error ? error.message : String(error),
141
- });
142
- throw error;
143
- }
144
- }
145
-
146
- async queryOne<T = any>(key: string, _params?: any[]): Promise<T | null> {
147
- await this.initPromise;
148
- try {
149
- const value = await this.client.get(this.prefixKey(key));
150
- return value ? JSON.parse(value) : null;
151
- } catch (error) {
152
- this.logger.error('Redis queryOne failed', 'Query', {
153
- key,
154
- error: error instanceof Error ? error.message : String(error),
155
- });
156
- throw error;
157
- }
158
- }
159
-
160
- async insert<T = any>(key: string, data: Record<string, any>): Promise<T> {
161
- await this.initPromise;
162
- try {
163
- const value = JSON.stringify(data);
164
- await this.client.set(this.prefixKey(key), value);
165
- return data as T;
166
- } catch (error) {
167
- this.logger.error('Redis insert failed', 'Insert', {
168
- key,
169
- error: error instanceof Error ? error.message : String(error),
170
- });
171
- throw error;
172
- }
173
- }
174
-
175
- async update<T = any>(
176
- key: string,
177
- data: Record<string, any>,
178
- _where?: Record<string, any>
179
- ): Promise<T> {
180
- await this.initPromise;
181
- try {
182
- // For Redis, we'll merge with existing data if it exists
183
- const existing = await this.queryOne(key);
184
- const merged = existing ? { ...existing, ...data } : data;
185
- const value = JSON.stringify(merged);
186
- await this.client.set(this.prefixKey(key), value);
187
- return merged as T;
188
- } catch (error) {
189
- this.logger.error('Redis update failed', 'Update', {
190
- key,
191
- error: error instanceof Error ? error.message : String(error),
192
- });
193
- throw error;
194
- }
195
- }
196
-
197
- async delete(pattern: string, _where?: Record<string, any>): Promise<number> {
198
- await this.initPromise;
199
- try {
200
- const keys = await this.client.keys(this.prefixKey(pattern));
201
- if (keys.length === 0) return 0;
202
-
203
- const deletedCount = await this.client.del(...keys);
204
- return deletedCount;
205
- } catch (error) {
206
- this.logger.error('Redis delete failed', 'Delete', {
207
- pattern,
208
- error: error instanceof Error ? error.message : String(error),
209
- });
210
- throw error;
211
- }
212
- }
213
-
214
- async transaction<T>(callback: (tx: DatabaseTransaction) => Promise<T>): Promise<T> {
215
- await this.initPromise;
216
- const multi = this.client.multi();
217
- const transaction = new RedisTransaction(multi, this.keyPrefix);
218
-
219
- try {
220
- const result = await callback(transaction);
221
- await multi.exec();
222
- return result;
223
- } catch (error) {
224
- // Redis doesn't have rollback, but we can discard the multi
225
- multi.discard();
226
- throw error;
227
- }
228
- }
229
-
230
- // Redis-specific methods
231
- async set(key: string, value: any, ttl?: number): Promise<void> {
232
- await this.initPromise;
233
- const prefixedKey = this.prefixKey(key);
234
- if (ttl) {
235
- await this.client.setex(prefixedKey, ttl, JSON.stringify(value));
236
- } else {
237
- await this.client.set(prefixedKey, JSON.stringify(value));
238
- }
239
- }
240
-
241
- async get(key: string): Promise<any> {
242
- await this.initPromise;
243
- const value = await this.client.get(this.prefixKey(key));
244
- return value ? JSON.parse(value) : null;
245
- }
246
-
247
- async exists(key: string): Promise<boolean> {
248
- await this.initPromise;
249
- const result = await this.client.exists(this.prefixKey(key));
250
- return result === 1;
251
- }
252
-
253
- async expire(key: string, ttl: number): Promise<boolean> {
254
- await this.initPromise;
255
- const result = await this.client.expire(this.prefixKey(key), ttl);
256
- return result === 1;
257
- }
258
-
259
- async incr(key: string): Promise<number> {
260
- await this.initPromise;
261
- return await this.client.incr(this.prefixKey(key));
262
- }
263
-
264
- async decr(key: string): Promise<number> {
265
- await this.initPromise;
266
- return await this.client.decr(this.prefixKey(key));
267
- }
268
-
269
- async hset(hash: string, field: string, value: any): Promise<void> {
270
- await this.initPromise;
271
- await this.client.hset(this.prefixKey(hash), field, JSON.stringify(value));
272
- }
273
-
274
- async hget(hash: string, field: string): Promise<any> {
275
- await this.initPromise;
276
- const value = await this.client.hget(this.prefixKey(hash), field);
277
- return value ? JSON.parse(value) : null;
278
- }
279
-
280
- async hgetall(hash: string): Promise<Record<string, any>> {
281
- await this.initPromise;
282
- const result = await this.client.hgetall(this.prefixKey(hash));
283
- const parsed: Record<string, any> = {};
284
- for (const [key, value] of Object.entries(result)) {
285
- parsed[key] = JSON.parse(value as string);
286
- }
287
- return parsed;
288
- }
289
-
290
- async lpush(list: string, ...values: any[]): Promise<number> {
291
- await this.initPromise;
292
- const serialized = values.map(v => JSON.stringify(v));
293
- return await this.client.lpush(this.prefixKey(list), ...serialized);
294
- }
295
-
296
- async rpop(list: string): Promise<any> {
297
- await this.initPromise;
298
- const value = await this.client.rpop(this.prefixKey(list));
299
- return value ? JSON.parse(value) : null;
300
- }
301
-
302
- async lrange(list: string, start: number, stop: number): Promise<any[]> {
303
- await this.initPromise;
304
- const values = await this.client.lrange(this.prefixKey(list), start, stop);
305
- return values.map((v: string) => JSON.parse(v));
306
- }
307
-
308
- async publish(channel: string, message: any): Promise<number> {
309
- await this.initPromise;
310
- return await this.client.publish(channel, JSON.stringify(message));
311
- }
312
-
313
- async subscribe(channel: string, callback: (message: any) => void): Promise<void> {
314
- await this.initPromise;
315
- const subscriber = this.client.duplicate();
316
- subscriber.subscribe(channel);
317
- subscriber.on('message', (_channel: string, message: string) => {
318
- callback(JSON.parse(message));
319
- });
320
- }
321
-
322
- getClient() {
323
- return this.client;
324
- }
325
- }
326
-
327
- class RedisTransaction implements DatabaseTransaction {
328
- constructor(
329
- private multi: any,
330
- private keyPrefix: string
331
- ) {}
332
-
333
- private prefixKey(key: string): string {
334
- return `${this.keyPrefix}${key}`;
335
- }
336
-
337
- async query<T = any>(pattern: string, _params?: any[]): Promise<T[]> {
338
- // Note: Redis transactions can't perform read operations during MULTI
339
- // This is a limitation of Redis transactions
340
- throw new Error(
341
- 'Redis transactions cannot perform read operations. Use regular operations instead.'
342
- );
343
- }
344
-
345
- async queryOne<T = any>(_key: string, _params?: any[]): Promise<T | null> {
346
- throw new Error(
347
- 'Redis transactions cannot perform read operations. Use regular operations instead.'
348
- );
349
- }
350
-
351
- async insert<T = any>(key: string, data: Record<string, any>): Promise<T> {
352
- const value = JSON.stringify(data);
353
- this.multi.set(this.prefixKey(key), value);
354
- return data as T;
355
- }
356
-
357
- async update<T = any>(
358
- key: string,
359
- data: Record<string, any>,
360
- _where?: Record<string, any>
361
- ): Promise<T> {
362
- const value = JSON.stringify(data);
363
- this.multi.set(this.prefixKey(key), value);
364
- return data as T;
365
- }
366
-
367
- async delete(pattern: string, _where?: Record<string, any>): Promise<number> {
368
- this.multi.del(this.prefixKey(pattern));
369
- return 1; // We can't know the actual count in a transaction
370
- }
371
-
372
- async commit(): Promise<void> {
373
- await this.multi.exec();
374
- }
375
-
376
- async rollback(): Promise<void> {
377
- this.multi.discard();
378
- }
379
- }