@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,142 +0,0 @@
1
- // Hook System for Moro
2
- import { EventEmitter } from 'events';
3
- import { HookFunction, HookContext, MoroMiddleware } from '../../types/hooks.js';
4
- import { createFrameworkLogger } from '../logger/index.js';
5
-
6
- export const HOOK_EVENTS = {
7
- BEFORE_REQUEST: 'before:request',
8
- AFTER_REQUEST: 'after:request',
9
- BEFORE_RESPONSE: 'before:response',
10
- AFTER_RESPONSE: 'after:response',
11
- ERROR: 'error',
12
- } as const;
13
-
14
- export class HookManager extends EventEmitter {
15
- private hooks = new Map<string, HookFunction[]>();
16
- private beforeHooks = new Map<string, HookFunction[]>();
17
- private afterHooks = new Map<string, HookFunction[]>();
18
- private logger = createFrameworkLogger('Hooks');
19
-
20
- constructor() {
21
- super();
22
- // Initialize hook arrays
23
- Object.values(HOOK_EVENTS).forEach(event => {
24
- this.hooks.set(event, []);
25
- this.beforeHooks.set(event, []);
26
- this.afterHooks.set(event, []);
27
- });
28
- }
29
-
30
- // Register a hook for a specific event
31
- hook(event: string, fn: HookFunction): this {
32
- if (!this.hooks.has(event)) {
33
- this.hooks.set(event, []);
34
- }
35
- this.hooks.get(event)!.push(fn);
36
- return this;
37
- }
38
-
39
- // Register a before hook
40
- before(event: string, fn: HookFunction): this {
41
- if (!this.beforeHooks.has(event)) {
42
- this.beforeHooks.set(event, []);
43
- }
44
- this.beforeHooks.get(event)!.push(fn);
45
- return this;
46
- }
47
-
48
- // Register an after hook
49
- after(event: string, fn: HookFunction): this {
50
- if (!this.afterHooks.has(event)) {
51
- this.afterHooks.set(event, []);
52
- }
53
- this.afterHooks.get(event)!.push(fn);
54
- return this;
55
- }
56
-
57
- // Execute hooks for an event
58
- async execute(event: string, context: HookContext = {}): Promise<HookContext> {
59
- // Execute before hooks
60
- const beforeHooks = this.beforeHooks.get(event) || [];
61
- for (const hook of beforeHooks) {
62
- await this.executeHook(hook, context);
63
- }
64
-
65
- // Execute main hooks
66
- const hooks = this.hooks.get(event) || [];
67
- for (const hook of hooks) {
68
- await this.executeHook(hook, context);
69
- }
70
-
71
- // Execute after hooks
72
- const afterHooks = this.afterHooks.get(event) || [];
73
- for (const hook of afterHooks) {
74
- await this.executeHook(hook, context);
75
- }
76
-
77
- // Emit event for listeners
78
- this.emit(event, context);
79
-
80
- return context;
81
- }
82
-
83
- // Execute a single hook with error handling
84
- private async executeHook(hook: HookFunction, context: HookContext): Promise<void> {
85
- try {
86
- await hook(context);
87
- } catch (error) {
88
- this.logger.error('Hook execution error', 'HookExecution', {
89
- error: error instanceof Error ? error.message : String(error),
90
- context: context.request?.method || 'unknown',
91
- });
92
- throw error;
93
- }
94
- }
95
-
96
- // Remove hooks
97
- removeHook(event: string, fn?: HookFunction): this {
98
- if (!fn) {
99
- this.hooks.delete(event);
100
- this.beforeHooks.delete(event);
101
- this.afterHooks.delete(event);
102
- } else {
103
- [this.hooks, this.beforeHooks, this.afterHooks].forEach(map => {
104
- const hooks = map.get(event);
105
- if (hooks) {
106
- const index = hooks.indexOf(fn);
107
- if (index !== -1) {
108
- hooks.splice(index, 1);
109
- }
110
- }
111
- });
112
- }
113
- return this;
114
- }
115
-
116
- // Get all registered hooks for debugging
117
- getHooks(event?: string): Record<string, any> {
118
- if (event) {
119
- return {
120
- before: this.beforeHooks.get(event) || [],
121
- main: this.hooks.get(event) || [],
122
- after: this.afterHooks.get(event) || [],
123
- };
124
- }
125
-
126
- const allHooks: Record<string, any> = {};
127
- const allEvents = new Set([
128
- ...this.hooks.keys(),
129
- ...this.beforeHooks.keys(),
130
- ...this.afterHooks.keys(),
131
- ]);
132
-
133
- allEvents.forEach(event => {
134
- allHooks[event] = this.getHooks(event);
135
- });
136
-
137
- return allHooks;
138
- }
139
- }
140
-
141
- // Built-in middleware - now organized in individual files
142
- export { simpleMiddleware as middleware } from '../middleware/index.js';
@@ -1,17 +0,0 @@
1
- // Core Utilities - Centralized Exports
2
- export {
3
- Container,
4
- FunctionalContainer,
5
- ServiceScope,
6
- ServiceLifecycle,
7
- withLogging,
8
- withCaching,
9
- withRetry,
10
- withTimeout,
11
- } from './container.js';
12
- export { CircuitBreaker } from './circuit-breaker.js';
13
- export { HookManager, HOOK_EVENTS } from './hooks.js';
14
- export { isPackageAvailable, resolveUserPackage, createUserRequire } from './package-utils.js';
15
-
16
- // Re-export middleware from hooks
17
- export { middleware } from './hooks.js';
@@ -1,59 +0,0 @@
1
- // Package and Module Resolution Utilities
2
- // ESM-compatible helpers for detecting and resolving optional dependencies
3
-
4
- import { createRequire } from 'module';
5
- import { join } from 'path';
6
-
7
- /**
8
- * Check if a package is available in the user's node_modules
9
- * Uses ESM-compatible module resolution from the user's working directory
10
- *
11
- * @param packageName - The name of the package to check (e.g., 'socket.io', 'zod')
12
- * @returns true if the package is installed, false otherwise
13
- *
14
- * @example
15
- * if (isPackageAvailable('socket.io')) {
16
- * // socket.io is installed, safe to import
17
- * const { Server } = await import('socket.io');
18
- * }
19
- */
20
- export function isPackageAvailable(packageName: string): boolean {
21
- try {
22
- const userRequire = createRequire(join(process.cwd(), 'package.json'));
23
- userRequire.resolve(packageName);
24
- return true;
25
- } catch {
26
- return false;
27
- }
28
- }
29
-
30
- /**
31
- * Resolve a package path from the user's node_modules
32
- * Uses ESM-compatible module resolution from the user's working directory
33
- *
34
- * @param packageName - The name of the package to resolve
35
- * @returns The resolved package path
36
- * @throws Error if the package is not found
37
- *
38
- * @example
39
- * const socketIOPath = resolveUserPackage('socket.io');
40
- * const { Server } = await import(socketIOPath);
41
- */
42
- export function resolveUserPackage(packageName: string): string {
43
- const userRequire = createRequire(join(process.cwd(), 'package.json'));
44
- return userRequire.resolve(packageName);
45
- }
46
-
47
- /**
48
- * Create a require function for the user's working directory
49
- * Useful for resolving packages installed by the user, not in Moro's dependencies
50
- *
51
- * @returns A require function scoped to the user's working directory
52
- *
53
- * @example
54
- * const userRequire = createUserRequire();
55
- * const packagePath = userRequire.resolve('some-package');
56
- */
57
- export function createUserRequire() {
58
- return createRequire(join(process.cwd(), 'package.json'));
59
- }
@@ -1,147 +0,0 @@
1
- // Validation Library Adapters for Moro Framework
2
- // Makes Joi, Yup, and other libraries compatible with ValidationSchema interface
3
-
4
- import { ValidationSchema, ValidationError, normalizeValidationError } from './schema-interface.js';
5
-
6
- /**
7
- * Zod Compatibility Check
8
- * Zod ALREADY implements ValidationSchema interface natively!
9
- * No adapter needed - it just works.
10
- */
11
-
12
- /**
13
- * Joi Adapter - makes Joi schemas compatible with ValidationSchema
14
- */
15
- export class JoiAdapter<T = any> implements ValidationSchema<T> {
16
- constructor(private joiSchema: any) {
17
- if (!joiSchema || typeof joiSchema.validateAsync !== 'function') {
18
- throw new Error('Invalid Joi schema provided to JoiAdapter');
19
- }
20
- }
21
-
22
- async parseAsync(data: unknown): Promise<T> {
23
- try {
24
- const result = await this.joiSchema.validateAsync(data, { abortEarly: false });
25
- return result as T;
26
- } catch (error) {
27
- throw normalizeValidationError(error);
28
- }
29
- }
30
- }
31
-
32
- /**
33
- * Yup Adapter - makes Yup schemas compatible with ValidationSchema
34
- */
35
- export class YupAdapter<T = any> implements ValidationSchema<T> {
36
- constructor(private yupSchema: any) {
37
- if (!yupSchema || typeof yupSchema.validate !== 'function') {
38
- throw new Error('Invalid Yup schema provided to YupAdapter');
39
- }
40
- }
41
-
42
- async parseAsync(data: unknown): Promise<T> {
43
- try {
44
- const result = await this.yupSchema.validate(data, { abortEarly: false });
45
- return result as T;
46
- } catch (error) {
47
- throw normalizeValidationError(error);
48
- }
49
- }
50
- }
51
-
52
- /**
53
- * Custom Validation Function Adapter
54
- * Allows users to use simple validation functions
55
- */
56
- export class FunctionAdapter<T = any> implements ValidationSchema<T> {
57
- constructor(
58
- private validateFn: (data: unknown) => T | Promise<T>,
59
- private name: string = 'custom'
60
- ) {
61
- if (typeof validateFn !== 'function') {
62
- throw new Error('Validation function is required for FunctionAdapter');
63
- }
64
- }
65
-
66
- async parseAsync(data: unknown): Promise<T> {
67
- try {
68
- return await this.validateFn(data);
69
- } catch (error) {
70
- throw new ValidationError([
71
- {
72
- path: [],
73
- message: error instanceof Error ? error.message : String(error),
74
- code: this.name,
75
- },
76
- ]);
77
- }
78
- }
79
- }
80
-
81
- /**
82
- * Class Validator Adapter (for TypeScript decorators)
83
- */
84
- export class ClassValidatorAdapter<T extends object = any> implements ValidationSchema<T> {
85
- constructor(
86
- private ClassType: new () => T,
87
- private validate?: (obj: any) => Promise<any[]>
88
- ) {
89
- if (typeof ClassType !== 'function') {
90
- throw new Error('Class constructor is required for ClassValidatorAdapter');
91
- }
92
- }
93
-
94
- async parseAsync(data: unknown): Promise<T> {
95
- try {
96
- const instance = Object.assign(new this.ClassType(), data as Record<string, any>);
97
-
98
- if (this.validate) {
99
- const errors = await this.validate(instance);
100
- if (errors && errors.length > 0) {
101
- throw new ValidationError(
102
- errors.map((error: any, index: number) => ({
103
- path: error.property ? [error.property] : [index],
104
- message: Object.values(error.constraints || {}).join(', ') || 'Validation failed',
105
- code: 'class_validator',
106
- }))
107
- );
108
- }
109
- }
110
-
111
- return instance as T;
112
- } catch (error) {
113
- if (error instanceof ValidationError) throw error;
114
- throw normalizeValidationError(error);
115
- }
116
- }
117
- }
118
-
119
- /**
120
- * Utility functions for creating adapters
121
- */
122
- export function joi<T = any>(joiSchema: any): ValidationSchema<T> {
123
- return new JoiAdapter<T>(joiSchema);
124
- }
125
-
126
- export function yup<T = any>(yupSchema: any): ValidationSchema<T> {
127
- return new YupAdapter<T>(yupSchema);
128
- }
129
-
130
- export function fn<T = any>(
131
- validateFn: (data: unknown) => T | Promise<T>,
132
- name?: string
133
- ): ValidationSchema<T> {
134
- return new FunctionAdapter<T>(validateFn, name);
135
- }
136
-
137
- export function classValidator<T extends object = any>(
138
- ClassType: new () => T,
139
- validate?: (obj: any) => Promise<any[]>
140
- ): ValidationSchema<T> {
141
- return new ClassValidatorAdapter<T>(ClassType, validate);
142
- }
143
-
144
- // Type helpers
145
- export type JoiSchema<T> = ValidationSchema<T>;
146
- export type YupSchema<T> = ValidationSchema<T>;
147
- export type CustomValidator<T> = ValidationSchema<T>;
@@ -1,258 +0,0 @@
1
- // Universal Validation System for Moro Framework
2
- // Works with Zod, Joi, Yup, and any validation library via adapters
3
-
4
- import { HttpRequest, HttpResponse } from '../http/index.js';
5
- import { createFrameworkLogger } from '../logger/index.js';
6
- import { createUserRequire, isPackageAvailable } from '../utilities/package-utils.js';
7
- import {
8
- ValidationSchema,
9
- normalizeValidationError,
10
- InferSchemaType,
11
- ValidationError,
12
- } from './schema-interface.js';
13
-
14
- const logger = createFrameworkLogger('Validation');
15
-
16
- // Convenience re-export of Zod (optional - only works if zod is installed)
17
- // Lazy-loads Zod synchronously on first access
18
- // If zod is not installed, z will throw a helpful error
19
- let zodModule: any = null;
20
- let zodLoadAttempted = false;
21
-
22
- function loadZodSync() {
23
- if (zodLoadAttempted) {
24
- return zodModule;
25
- }
26
-
27
- zodLoadAttempted = true;
28
-
29
- try {
30
- if (!isPackageAvailable('zod')) {
31
- zodModule = null;
32
- return zodModule;
33
- }
34
-
35
- // Use synchronous require for immediate availability
36
- const userRequire = createUserRequire();
37
- zodModule = userRequire('zod');
38
- } catch {
39
- // Zod not installed or failed to load
40
- zodModule = null;
41
- }
42
-
43
- return zodModule;
44
- }
45
-
46
- export const z = new Proxy({} as any, {
47
- get(_target, prop) {
48
- const zod = loadZodSync();
49
-
50
- if (!zod) {
51
- throw new Error(
52
- 'Zod is not installed. Please install it with: npm install zod\n' +
53
- 'Or use an alternative validation library (joi, yup, class-validator) via adapters.'
54
- );
55
- }
56
-
57
- if (!zod.z) {
58
- throw new Error(
59
- 'Zod module loaded but z export not found. This may be a version compatibility issue.'
60
- );
61
- }
62
-
63
- return zod.z[prop];
64
- },
65
- apply(_target, thisArg, args) {
66
- const zod = loadZodSync();
67
-
68
- if (!zod?.z) {
69
- throw new Error('Zod is not installed. Please install it with: npm install zod');
70
- }
71
-
72
- return zod.z.apply(thisArg, args);
73
- },
74
- });
75
-
76
- // Universal validation configuration interface
77
- export interface ValidationConfig {
78
- body?: ValidationSchema;
79
- query?: ValidationSchema;
80
- params?: ValidationSchema;
81
- headers?: ValidationSchema;
82
- }
83
-
84
- // Validation result types
85
- export interface ValidationResult<T = any> {
86
- success: boolean;
87
- data?: T;
88
- errors?: ValidationErrorDetail[];
89
- }
90
-
91
- export interface ValidationErrorDetail {
92
- field: string;
93
- message: string;
94
- code: string;
95
- }
96
-
97
- // Enhanced request type with validated data
98
- export interface ValidatedRequest<T = any> extends HttpRequest {
99
- validatedBody?: T;
100
- validatedQuery?: any;
101
- validatedParams?: any;
102
- validatedHeaders?: any;
103
- }
104
-
105
- // Main validation wrapper function
106
- export function validate<TBody = any, TQuery = any, TParams = any>(
107
- config: ValidationConfig,
108
- handler: (req: ValidatedRequest<TBody>, res: HttpResponse) => any | Promise<any>
109
- ) {
110
- return async (req: HttpRequest, res: HttpResponse): Promise<any> => {
111
- try {
112
- const validatedReq = req as ValidatedRequest<TBody>;
113
-
114
- // Validate body
115
- if (config.body) {
116
- const result = await validateField(config.body, req.body, 'body');
117
- if (!result.success) {
118
- return sendValidationError(res, result.errors!, 'body');
119
- }
120
- validatedReq.validatedBody = result.data;
121
- validatedReq.body = result.data; // Also update original body for compatibility
122
- }
123
-
124
- // Validate query parameters
125
- if (config.query) {
126
- const result = await validateField(config.query, req.query, 'query');
127
- if (!result.success) {
128
- return sendValidationError(res, result.errors!, 'query');
129
- }
130
- validatedReq.validatedQuery = result.data;
131
- validatedReq.query = result.data; // Also update original query for compatibility
132
- }
133
-
134
- // Validate path parameters
135
- if (config.params) {
136
- const result = await validateField(config.params, req.params, 'params');
137
- if (!result.success) {
138
- return sendValidationError(res, result.errors!, 'params');
139
- }
140
- validatedReq.validatedParams = result.data;
141
- validatedReq.params = result.data; // Also update original params for compatibility
142
- }
143
-
144
- // Validate headers
145
- if (config.headers) {
146
- const result = await validateField(config.headers, req.headers, 'headers');
147
- if (!result.success) {
148
- return sendValidationError(res, result.errors!, 'headers');
149
- }
150
- validatedReq.validatedHeaders = result.data;
151
- }
152
-
153
- logger.debug('Request validation passed', 'ValidationSuccess', {
154
- path: req.path,
155
- method: req.method,
156
- validatedFields: Object.keys(config),
157
- });
158
-
159
- // Execute the handler with validated request
160
- return await handler(validatedReq, res);
161
- } catch (error) {
162
- logger.error('Validation wrapper error', 'ValidationError', {
163
- error: error instanceof Error ? error.message : String(error),
164
- path: req.path,
165
- method: req.method,
166
- });
167
-
168
- if (!res.headersSent) {
169
- res.status(500).json({
170
- success: false,
171
- error: 'Internal validation error',
172
- requestId: req.requestId,
173
- });
174
- }
175
- }
176
- };
177
- }
178
-
179
- // Validate individual field using universal schema interface
180
- async function validateField(
181
- schema: ValidationSchema,
182
- data: any,
183
- fieldName: string
184
- ): Promise<ValidationResult> {
185
- try {
186
- const validated = await schema.parseAsync(data);
187
- return {
188
- success: true,
189
- data: validated,
190
- };
191
- } catch (error) {
192
- const normalizedError = normalizeValidationError(error);
193
- const errors: ValidationErrorDetail[] = normalizedError.issues.map(issue => ({
194
- field: issue.path.length > 0 ? issue.path.join('.') : fieldName,
195
- message: issue.message,
196
- code: issue.code,
197
- }));
198
-
199
- logger.debug('Field validation failed', 'ValidationFailed', {
200
- field: fieldName,
201
- errors: errors.length,
202
- details: errors,
203
- });
204
-
205
- return {
206
- success: false,
207
- errors,
208
- };
209
- }
210
- }
211
-
212
- // Send validation error response
213
- function sendValidationError(
214
- res: HttpResponse,
215
- errors: ValidationErrorDetail[],
216
- field: string
217
- ): void {
218
- logger.debug('Sending validation error response', 'ValidationResponse', {
219
- field,
220
- errorCount: errors.length,
221
- });
222
-
223
- res.status(400).json({
224
- success: false,
225
- error: `Validation failed for ${field}`,
226
- details: errors,
227
- requestId: (res as any).req?.requestId,
228
- });
229
- }
230
-
231
- // Convenience functions for single-field validation
232
- export function body<T>(schema: ValidationSchema<T>) {
233
- return (handler: (req: ValidatedRequest<T>, res: HttpResponse) => any | Promise<any>) => {
234
- return validate({ body: schema }, handler);
235
- };
236
- }
237
-
238
- export function query<T>(schema: ValidationSchema<T>) {
239
- return (handler: (req: ValidatedRequest<any>, res: HttpResponse) => any | Promise<any>) => {
240
- return validate({ query: schema }, handler);
241
- };
242
- }
243
-
244
- export function params<T>(schema: ValidationSchema<T>) {
245
- return (handler: (req: ValidatedRequest<any>, res: HttpResponse) => any | Promise<any>) => {
246
- return validate({ params: schema }, handler);
247
- };
248
- }
249
-
250
- // Schema composition helpers
251
- export function combineSchemas(schemas: ValidationConfig): ValidationConfig {
252
- return schemas;
253
- }
254
-
255
- // Re-export common validation tools
256
- export { ValidationError, normalizeValidationError } from './schema-interface.js';
257
- export type { ValidationSchema, InferSchemaType } from './schema-interface.js';
258
- export { joi, yup, fn as customValidator, classValidator } from './adapters.js';