@morojs/moro 1.6.2 → 1.6.4

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
@@ -0,0 +1,38 @@
1
+ import { createFrameworkLogger } from '../../../logger/index.js';
2
+ import { SessionCore } from './core.js';
3
+ const logger = createFrameworkLogger('SessionMiddleware');
4
+ /**
5
+ * Create session middleware for use in middleware chains
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * const sessionMw = createSessionMiddleware({
10
+ * store: 'redis',
11
+ * name: 'my-session',
12
+ * cookie: { maxAge: 3600000 }
13
+ * });
14
+ *
15
+ * app.use(sessionMw);
16
+ * ```
17
+ */
18
+ export function createSessionMiddleware(options = {}) {
19
+ const sessionCore = new SessionCore(options);
20
+ const cookieName = options.name || 'connect.sid';
21
+ return async (req, res, next) => {
22
+ try {
23
+ // Get session ID from cookie
24
+ const sessionId = req.cookies?.[cookieName];
25
+ // Attach session to request
26
+ req.session = await sessionCore.attachSession(req, res, sessionId);
27
+ // Execute next middleware
28
+ await next();
29
+ // Save session after response
30
+ await sessionCore.saveSession(req.session);
31
+ }
32
+ catch (error) {
33
+ logger.error('Session middleware error', 'SessionError', { error });
34
+ throw error;
35
+ }
36
+ };
37
+ }
38
+ //# sourceMappingURL=middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../../../src/core/middleware/built-in/session/middleware.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAuB,MAAM,WAAW,CAAC;AAE7D,MAAM,MAAM,GAAG,qBAAqB,CAAC,mBAAmB,CAAC,CAAC;AAE1D;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAA0B,EAAE;IAClE,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,IAAI,aAAa,CAAC;IAEjD,OAAO,KAAK,EAAE,GAAgB,EAAE,GAAiB,EAAE,IAAyB,EAAE,EAAE;QAC9E,IAAI,CAAC;YACH,6BAA6B;YAC7B,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC;YAE5C,4BAA4B;YAC3B,GAAW,CAAC,OAAO,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YAE5E,0BAA0B;YAC1B,MAAM,IAAI,EAAE,CAAC;YAEb,8BAA8B;YAC9B,MAAM,WAAW,CAAC,WAAW,CAAE,GAAW,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACpE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { HttpResponse } from '../../../../types/http.js';
2
+ export interface SSEOptions {
3
+ heartbeat?: number;
4
+ retry?: number;
5
+ cors?: boolean;
6
+ }
7
+ export interface SSEConnection {
8
+ sendEvent: (data: any, event?: string, id?: string) => void;
9
+ sendComment: (comment: string) => void;
10
+ sendRetry: (ms: number) => void;
11
+ close: () => void;
12
+ }
13
+ /**
14
+ * Format SSE event data
15
+ */
16
+ export declare function formatSSEEvent(data: any, event?: string, id?: string): string;
17
+ /**
18
+ * Format SSE comment
19
+ */
20
+ export declare function formatSSEComment(comment: string): string;
21
+ /**
22
+ * Format SSE retry directive
23
+ */
24
+ export declare function formatSSERetry(ms: number): string;
25
+ /**
26
+ * SSECore - Core Server-Sent Events management logic
27
+ * Used directly by the router for route-based SSE
28
+ */
29
+ export declare class SSECore {
30
+ private options;
31
+ constructor(options?: SSEOptions);
32
+ /**
33
+ * Check if request accepts SSE
34
+ */
35
+ isSSERequest(acceptHeader?: string): boolean;
36
+ /**
37
+ * Initialize SSE headers on response
38
+ */
39
+ initializeSSE(res: HttpResponse): void;
40
+ /**
41
+ * Create SSE connection with helper methods
42
+ */
43
+ createConnection(res: HttpResponse, onClose?: () => void): SSEConnection;
44
+ }
@@ -0,0 +1,117 @@
1
+ // ===== Core Logic =====
2
+ /**
3
+ * Format SSE event data
4
+ */
5
+ export function formatSSEEvent(data, event, id) {
6
+ let message = '';
7
+ if (id) {
8
+ message += `id: ${id}\n`;
9
+ }
10
+ if (event) {
11
+ message += `event: ${event}\n`;
12
+ }
13
+ const dataStr = typeof data === 'string' ? data : JSON.stringify(data);
14
+ message += `data: ${dataStr}\n\n`;
15
+ return message;
16
+ }
17
+ /**
18
+ * Format SSE comment
19
+ */
20
+ export function formatSSEComment(comment) {
21
+ return `: ${comment}\n\n`;
22
+ }
23
+ /**
24
+ * Format SSE retry directive
25
+ */
26
+ export function formatSSERetry(ms) {
27
+ return `retry: ${ms}\n\n`;
28
+ }
29
+ /**
30
+ * SSECore - Core Server-Sent Events management logic
31
+ * Used directly by the router for route-based SSE
32
+ */
33
+ export class SSECore {
34
+ options;
35
+ constructor(options = {}) {
36
+ this.options = options;
37
+ }
38
+ /**
39
+ * Check if request accepts SSE
40
+ */
41
+ isSSERequest(acceptHeader) {
42
+ if (!acceptHeader) {
43
+ return false;
44
+ }
45
+ return acceptHeader.includes('text/event-stream');
46
+ }
47
+ /**
48
+ * Initialize SSE headers on response
49
+ */
50
+ initializeSSE(res) {
51
+ const headers = {
52
+ 'Content-Type': 'text/event-stream',
53
+ 'Cache-Control': 'no-cache',
54
+ Connection: 'keep-alive',
55
+ };
56
+ if (this.options.cors) {
57
+ headers['Access-Control-Allow-Origin'] = '*';
58
+ headers['Access-Control-Allow-Headers'] = 'Cache-Control';
59
+ }
60
+ res.writeHead(200, headers);
61
+ }
62
+ /**
63
+ * Create SSE connection with helper methods
64
+ */
65
+ createConnection(res, onClose) {
66
+ const resAny = res;
67
+ let heartbeatInterval = null;
68
+ let closed = false;
69
+ // Send initial retry if configured
70
+ if (this.options.retry) {
71
+ resAny.write(formatSSERetry(this.options.retry));
72
+ }
73
+ // Set up heartbeat if configured
74
+ if (this.options.heartbeat) {
75
+ heartbeatInterval = setInterval(() => {
76
+ if (!closed) {
77
+ resAny.write(formatSSEComment('heartbeat'));
78
+ }
79
+ }, this.options.heartbeat);
80
+ }
81
+ const connection = {
82
+ sendEvent: (data, event, id) => {
83
+ if (!closed) {
84
+ resAny.write(formatSSEEvent(data, event, id));
85
+ }
86
+ },
87
+ sendComment: (comment) => {
88
+ if (!closed) {
89
+ resAny.write(formatSSEComment(comment));
90
+ }
91
+ },
92
+ sendRetry: (ms) => {
93
+ if (!closed) {
94
+ resAny.write(formatSSERetry(ms));
95
+ }
96
+ },
97
+ close: () => {
98
+ if (closed) {
99
+ return;
100
+ }
101
+ closed = true;
102
+ if (heartbeatInterval) {
103
+ clearInterval(heartbeatInterval);
104
+ heartbeatInterval = null;
105
+ }
106
+ if (onClose) {
107
+ onClose();
108
+ }
109
+ if (resAny.end && !resAny.writableEnded) {
110
+ resAny.end();
111
+ }
112
+ },
113
+ };
114
+ return connection;
115
+ }
116
+ }
117
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../../src/core/middleware/built-in/sse/core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { MiddlewareInterface } from '../../../../types/hooks.js';
2
+ import { type SSEOptions } from './core.js';
3
+ /**
4
+ * SSE hook for global usage
5
+ * Registers with the hooks system for application-wide Server-Sent Events support
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { sse } from '@/middleware/built-in/sse';
10
+ *
11
+ * app.use(sse({
12
+ * heartbeat: 30000,
13
+ * retry: 3000,
14
+ * cors: true
15
+ * }));
16
+ * ```
17
+ */
18
+ export declare const sse: (options?: SSEOptions) => MiddlewareInterface;
@@ -0,0 +1,60 @@
1
+ import { createFrameworkLogger } from '../../../logger/index.js';
2
+ import { SSECore } from './core.js';
3
+ const logger = createFrameworkLogger('SSEMiddleware');
4
+ /**
5
+ * SSE hook for global usage
6
+ * Registers with the hooks system for application-wide Server-Sent Events support
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * import { sse } from '@/middleware/built-in/sse';
11
+ *
12
+ * app.use(sse({
13
+ * heartbeat: 30000,
14
+ * retry: 3000,
15
+ * cors: true
16
+ * }));
17
+ * ```
18
+ */
19
+ export const sse = (options = {}) => ({
20
+ name: 'sse',
21
+ version: '1.0.0',
22
+ metadata: {
23
+ name: 'sse',
24
+ version: '1.0.0',
25
+ description: 'Server-Sent Events middleware with heartbeat and retry support',
26
+ author: 'MoroJS Team',
27
+ },
28
+ install: async (hooks, middlewareOptions = {}) => {
29
+ logger.debug('Installing SSE middleware', 'Installation', { options: middlewareOptions });
30
+ const config = { ...options, ...middlewareOptions };
31
+ const sseCore = new SSECore(config);
32
+ hooks.before('request', async (context) => {
33
+ const req = context.request;
34
+ const res = context.response;
35
+ // Only handle SSE requests
36
+ if (!sseCore.isSSERequest(req.headers.accept)) {
37
+ return;
38
+ }
39
+ logger.debug('Setting up SSE connection', 'SSESetup');
40
+ // Initialize SSE connection
41
+ if (!res.headersSent) {
42
+ sseCore.initializeSSE(res);
43
+ }
44
+ // Create connection and attach methods to response
45
+ const connection = sseCore.createConnection(res, () => {
46
+ logger.debug('SSE connection closed', 'SSECleanup');
47
+ });
48
+ res.sendEvent = connection.sendEvent;
49
+ res.sendComment = connection.sendComment;
50
+ res.sendRetry = connection.sendRetry;
51
+ // Clean up on close
52
+ req.on('close', () => {
53
+ connection.close();
54
+ });
55
+ // Mark that this middleware handled the request
56
+ context.handled = true;
57
+ });
58
+ },
59
+ });
60
+ //# sourceMappingURL=hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook.js","sourceRoot":"","sources":["../../../../../src/core/middleware/built-in/sse/hook.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,OAAO,EAAmB,MAAM,WAAW,CAAC;AAErD,MAAM,MAAM,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;AAEtD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,UAAsB,EAAE,EAAuB,EAAE,CAAC,CAAC;IACrE,IAAI,EAAE,KAAK;IACX,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,gEAAgE;QAC7E,MAAM,EAAE,aAAa;KACtB;IAED,OAAO,EAAE,KAAK,EAAE,KAAU,EAAE,oBAAyB,EAAE,EAAE,EAAE;QACzD,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAE1F,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,iBAAiB,EAAE,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QAEpC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,OAAoB,EAAE,EAAE;YACrD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAc,CAAC;YACnC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAe,CAAC;YAEpC,2BAA2B;YAC3B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9C,OAAO;YACT,CAAC;YAED,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,UAAU,CAAC,CAAC;YAEtD,4BAA4B;YAC5B,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBACrB,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAC7B,CAAC;YAED,mDAAmD;YACnD,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE;gBACpD,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,YAAY,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;YACrC,GAAG,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;YACzC,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;YAErC,oBAAoB;YACpB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACnB,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC,CAAC,CAAC;YAEH,gDAAgD;YAC/C,OAAe,CAAC,OAAO,GAAG,IAAI,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { SSECore, formatSSEEvent, formatSSEComment, formatSSERetry, type SSEOptions, type SSEConnection, } from './core.js';
2
+ export { createSSEMiddleware } from './middleware.js';
3
+ export { sse } from './hook.js';
@@ -0,0 +1,9 @@
1
+ // SSE - Main entry point
2
+ // Re-exports all public APIs for the SSE built-in
3
+ // Core (for direct use by router and custom implementations)
4
+ export { SSECore, formatSSEEvent, formatSSEComment, formatSSERetry, } from './core.js';
5
+ // Middleware (for middleware chains)
6
+ export { createSSEMiddleware } from './middleware.js';
7
+ // Hook (for global registration)
8
+ export { sse } from './hook.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/middleware/built-in/sse/index.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,kDAAkD;AAElD,6DAA6D;AAC7D,OAAO,EACL,OAAO,EACP,cAAc,EACd,gBAAgB,EAChB,cAAc,GAGf,MAAM,WAAW,CAAC;AAEnB,qCAAqC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,iCAAiC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { StandardMiddleware } from '../../../../types/hooks.js';
2
+ import { type SSEOptions } from './core.js';
3
+ /**
4
+ * Create SSE middleware for use in middleware chains
5
+ * Only activates for requests with 'text/event-stream' Accept header
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * const sseMw = createSSEMiddleware({
10
+ * heartbeat: 30000,
11
+ * retry: 3000,
12
+ * cors: true
13
+ * });
14
+ *
15
+ * app.use(sseMw);
16
+ * ```
17
+ */
18
+ export declare function createSSEMiddleware(options?: SSEOptions): StandardMiddleware;
@@ -0,0 +1,43 @@
1
+ import { SSECore } from './core.js';
2
+ /**
3
+ * Create SSE middleware for use in middleware chains
4
+ * Only activates for requests with 'text/event-stream' Accept header
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * const sseMw = createSSEMiddleware({
9
+ * heartbeat: 30000,
10
+ * retry: 3000,
11
+ * cors: true
12
+ * });
13
+ *
14
+ * app.use(sseMw);
15
+ * ```
16
+ */
17
+ export function createSSEMiddleware(options = {}) {
18
+ const sseCore = new SSECore(options);
19
+ return async (req, res, next) => {
20
+ // Only handle SSE requests
21
+ if (!sseCore.isSSERequest(req.headers.accept)) {
22
+ await next();
23
+ return;
24
+ }
25
+ // Initialize SSE connection
26
+ const resAny = res;
27
+ if (!resAny.headersSent) {
28
+ sseCore.initializeSSE(res);
29
+ }
30
+ // Create connection and attach methods to response
31
+ const reqAny = req;
32
+ const connection = sseCore.createConnection(res);
33
+ resAny.sendEvent = connection.sendEvent;
34
+ resAny.sendComment = connection.sendComment;
35
+ resAny.sendRetry = connection.sendRetry;
36
+ // Clean up on close
37
+ reqAny.on('close', () => {
38
+ connection.close();
39
+ });
40
+ await next();
41
+ };
42
+ }
43
+ //# sourceMappingURL=middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../../../src/core/middleware/built-in/sse/middleware.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAmB,MAAM,WAAW,CAAC;AAErD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAsB,EAAE;IAC1D,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAErC,OAAO,KAAK,EAAE,GAAgB,EAAE,GAAiB,EAAE,IAAyB,EAAE,EAAE;QAC9E,2BAA2B;QAC3B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,4BAA4B;QAC5B,MAAM,MAAM,GAAG,GAAU,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACxB,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QAED,mDAAmD;QACnD,MAAM,MAAM,GAAG,GAAU,CAAC;QAC1B,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAEjD,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QACxC,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;QAC5C,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QAExC,oBAAoB;QACpB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACtB,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { HttpRequest, HttpResponse } from '../../../../types/http.js';
2
+ import { ValidationSchema } from '../../../validation/schema-interface.js';
3
+ export interface ValidationConfig {
4
+ body?: ValidationSchema;
5
+ query?: ValidationSchema;
6
+ params?: ValidationSchema;
7
+ headers?: ValidationSchema;
8
+ }
9
+ export interface ValidationErrorDetail {
10
+ field: string;
11
+ message: string;
12
+ code: string;
13
+ }
14
+ /**
15
+ * ValidationCore - Core validation logic
16
+ * Used directly by the router for route-based validation
17
+ * Can be instantiated for use in middleware or hooks
18
+ */
19
+ export declare class ValidationCore {
20
+ validate(req: HttpRequest, res: HttpResponse, config: ValidationConfig): Promise<boolean>;
21
+ private handleValidationError;
22
+ }
23
+ export declare const sharedValidationCore: ValidationCore;
@@ -0,0 +1,93 @@
1
+ // Validation Core - Reusable validation logic
2
+ import { createFrameworkLogger } from '../../../logger/index.js';
3
+ import { normalizeValidationError, } from '../../../validation/schema-interface.js';
4
+ const logger = createFrameworkLogger('ValidationCore');
5
+ // ===== Core Logic =====
6
+ /**
7
+ * ValidationCore - Core validation logic
8
+ * Used directly by the router for route-based validation
9
+ * Can be instantiated for use in middleware or hooks
10
+ */
11
+ export class ValidationCore {
12
+ async validate(req, res, config) {
13
+ // Don't validate if headers already sent
14
+ if (res.headersSent) {
15
+ return false;
16
+ }
17
+ try {
18
+ if (config.body && req.body !== undefined) {
19
+ try {
20
+ req.validatedBody = await config.body.parseAsync(req.body);
21
+ req.body = req.validatedBody;
22
+ }
23
+ catch (error) {
24
+ this.handleValidationError(error, 'body', req, res);
25
+ return false;
26
+ }
27
+ }
28
+ if (config.query && req.query !== undefined) {
29
+ try {
30
+ req.validatedQuery = await config.query.parseAsync(req.query);
31
+ req.query = req.validatedQuery;
32
+ }
33
+ catch (error) {
34
+ this.handleValidationError(error, 'query', req, res);
35
+ return false;
36
+ }
37
+ }
38
+ if (config.params && req.params !== undefined) {
39
+ try {
40
+ req.validatedParams = await config.params.parseAsync(req.params);
41
+ req.params = req.validatedParams;
42
+ }
43
+ catch (error) {
44
+ this.handleValidationError(error, 'params', req, res);
45
+ return false;
46
+ }
47
+ }
48
+ if (config.headers && req.headers !== undefined) {
49
+ try {
50
+ req.validatedHeaders = await config.headers.parseAsync(req.headers);
51
+ }
52
+ catch (error) {
53
+ this.handleValidationError(error, 'headers', req, res);
54
+ return false;
55
+ }
56
+ }
57
+ return true;
58
+ }
59
+ catch (error) {
60
+ logger.error('Unexpected validation error', 'Validation', {
61
+ error: error.message,
62
+ });
63
+ if (!res.headersSent) {
64
+ res.status(500).json({
65
+ success: false,
66
+ error: 'Internal server error',
67
+ requestId: req.requestId,
68
+ });
69
+ }
70
+ return false;
71
+ }
72
+ }
73
+ handleValidationError(error, field, req, res) {
74
+ // Don't send error if headers already sent
75
+ if (res.headersSent) {
76
+ return;
77
+ }
78
+ const normalizedError = normalizeValidationError(error);
79
+ res.status(400).json({
80
+ success: false,
81
+ error: `Validation failed for ${field}`,
82
+ details: normalizedError.issues.map((issue) => ({
83
+ field: issue.path.length > 0 ? issue.path.join('.') : field,
84
+ message: issue.message,
85
+ code: issue.code,
86
+ })),
87
+ requestId: req.requestId,
88
+ });
89
+ }
90
+ }
91
+ // Shared instance for route-based validation
92
+ export const sharedValidationCore = new ValidationCore();
93
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../../src/core/middleware/built-in/validation/core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { MiddlewareInterface } from '../../../../types/hooks.js';
2
+ /**
3
+ * Basic validation hook for global usage
4
+ * Registers with the hooks system for content-type checking
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * import { validation } from '@/middleware/built-in/validation';
9
+ *
10
+ * app.use(validation());
11
+ * ```
12
+ */
13
+ export declare const validation: () => MiddlewareInterface;
@@ -1,5 +1,16 @@
1
- import { createFrameworkLogger } from '../../logger/index.js';
1
+ import { createFrameworkLogger } from '../../../logger/index.js';
2
2
  const logger = createFrameworkLogger('ValidationMiddleware');
3
+ /**
4
+ * Basic validation hook for global usage
5
+ * Registers with the hooks system for content-type checking
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { validation } from '@/middleware/built-in/validation';
10
+ *
11
+ * app.use(validation());
12
+ * ```
13
+ */
3
14
  export const validation = () => ({
4
15
  name: 'validation',
5
16
  version: '1.0.0',
@@ -9,7 +20,7 @@ export const validation = () => ({
9
20
  description: 'Request validation middleware with content type checking',
10
21
  author: 'MoroJS Team',
11
22
  },
12
- install: async (hooks, options = {}) => {
23
+ install: async (hooks, _middlewareOptions = {}) => {
13
24
  logger.debug('Installing validation middleware', 'Installation');
14
25
  hooks.before('request', async (context) => {
15
26
  const request = context.request;
@@ -24,4 +35,4 @@ export const validation = () => ({
24
35
  });
25
36
  },
26
37
  });
27
- //# sourceMappingURL=validation.js.map
38
+ //# sourceMappingURL=hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook.js","sourceRoot":"","sources":["../../../../../src/core/middleware/built-in/validation/hook.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,MAAM,MAAM,GAAG,qBAAqB,CAAC,sBAAsB,CAAC,CAAC;AAE7D;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAwB,EAAE,CAAC,CAAC;IACpD,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,0DAA0D;QACvE,MAAM,EAAE,aAAa;KACtB;IAED,OAAO,EAAE,KAAK,EAAE,KAAU,EAAE,qBAA0B,EAAE,EAAE,EAAE;QAC1D,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,cAAc,CAAC,CAAC;QAEjE,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,OAAoB,EAAE,EAAE;YACrD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAc,CAAC;YAEvC,gCAAgC;YAChC,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBACpD,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBAC5D,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,aAAa,CAAC,CAAC;oBACtE,4CAA4C;gBAC9C,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { ValidationCore, sharedValidationCore, type ValidationConfig, type ValidationErrorDetail, } from './core.js';
2
+ export { createValidationMiddleware } from './middleware.js';
3
+ export { validation } from './hook.js';
@@ -0,0 +1,9 @@
1
+ // Validation - Main entry point
2
+ // Re-exports all public APIs for the validation built-in
3
+ // Core (for direct use by router and custom implementations)
4
+ export { ValidationCore, sharedValidationCore, } from './core.js';
5
+ // Middleware (for middleware chains)
6
+ export { createValidationMiddleware } from './middleware.js';
7
+ // Hook (for global registration)
8
+ export { validation } from './hook.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/middleware/built-in/validation/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,yDAAyD;AAEzD,6DAA6D;AAC7D,OAAO,EACL,cAAc,EACd,oBAAoB,GAGrB,MAAM,WAAW,CAAC;AAEnB,qCAAqC;AACrC,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAE7D,iCAAiC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { StandardMiddleware } from '../../../../types/hooks.js';
2
+ import { type ValidationConfig } from './core.js';
3
+ /**
4
+ * Create validation middleware for use in middleware chains
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * const validateMw = createValidationMiddleware({
9
+ * body: myBodySchema,
10
+ * query: myQuerySchema
11
+ * });
12
+ *
13
+ * app.use(validateMw);
14
+ * ```
15
+ */
16
+ export declare function createValidationMiddleware(config: ValidationConfig): StandardMiddleware;
@@ -0,0 +1,27 @@
1
+ import { sharedValidationCore } from './core.js';
2
+ /**
3
+ * Create validation middleware for use in middleware chains
4
+ *
5
+ * @example
6
+ * ```ts
7
+ * const validateMw = createValidationMiddleware({
8
+ * body: myBodySchema,
9
+ * query: myQuerySchema
10
+ * });
11
+ *
12
+ * app.use(validateMw);
13
+ * ```
14
+ */
15
+ export function createValidationMiddleware(config) {
16
+ if (!config || Object.keys(config).length === 0) {
17
+ return (_req, _res, next) => next();
18
+ }
19
+ return async (req, res, next) => {
20
+ const success = await sharedValidationCore.validate(req, res, config);
21
+ if (success) {
22
+ next();
23
+ }
24
+ // If validation failed, response is already sent
25
+ };
26
+ }
27
+ //# sourceMappingURL=middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../../../src/core/middleware/built-in/validation/middleware.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAyB,MAAM,WAAW,CAAC;AAExE;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAAwB;IACjE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;IAED,OAAO,KAAK,EAAE,GAAQ,EAAE,GAAQ,EAAE,IAAgB,EAAE,EAAE;QACpD,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACtE,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,EAAE,CAAC;QACT,CAAC;QACD,iDAAiD;IACnD,CAAC,CAAC;AACJ,CAAC"}
@@ -1,4 +1,10 @@
1
1
  // Middleware System for Moro
2
+ /*
3
+ All middleware in Moro should follow or adopt all of the following patterns:
4
+ Core - Core.method(req, res, config) - Direct logic, no next, used by router directly
5
+ Middleware - (req, res, next) => { ... next() } - For middleware chains, calls next
6
+ Hooks - MiddlewareInterface with before/after hooks
7
+ */
2
8
  import { EventEmitter } from 'events';
3
9
  import { HookManager } from '../utilities/index.js';
4
10
  import { createFrameworkLogger } from '../logger/index.js';