@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
@@ -1,243 +0,0 @@
1
- /**
2
- * JWT Error Handling Utilities for Custom Middleware
3
- *
4
- * This module provides utilities to help users handle JWT errors gracefully
5
- * in their custom authentication middleware.
6
- */
7
-
8
- import { resolveUserPackage } from '../../utilities/package-utils.js';
9
-
10
- export interface JWTVerificationResult {
11
- success: boolean;
12
- payload?: any;
13
- error?: {
14
- type: 'expired' | 'invalid' | 'malformed' | 'missing_secret' | 'unknown';
15
- message: string;
16
- expiredAt?: Date;
17
- date?: Date;
18
- };
19
- }
20
-
21
- /**
22
- * Safely verify a JWT token with proper error handling
23
- *
24
- * @param token - The JWT token to verify
25
- * @param secret - The secret key for verification
26
- * @param options - Additional JWT verification options
27
- * @returns JWTVerificationResult with success status and payload or error details
28
- */
29
- export async function safeVerifyJWT(
30
- token: string,
31
- secret: string,
32
- options: any = {}
33
- ): Promise<JWTVerificationResult> {
34
- // Check if jsonwebtoken is available
35
- let jwt: any;
36
- try {
37
- const jwtPath = resolveUserPackage('jsonwebtoken');
38
- jwt = await import(jwtPath);
39
- } catch (error) {
40
- return {
41
- success: false,
42
- error: {
43
- type: 'missing_secret',
44
- message:
45
- 'JWT verification requires the "jsonwebtoken" package. ' +
46
- 'Please install it with: npm install jsonwebtoken @types/jsonwebtoken',
47
- },
48
- };
49
- }
50
-
51
- if (!secret) {
52
- return {
53
- success: false,
54
- error: {
55
- type: 'missing_secret',
56
- message:
57
- 'JWT verification requires a secret. ' +
58
- 'Please provide a secret for token verification.',
59
- },
60
- };
61
- }
62
-
63
- try {
64
- const payload = jwt.verify(token, secret, options);
65
- return {
66
- success: true,
67
- payload,
68
- };
69
- } catch (error: any) {
70
- // Handle specific JWT errors gracefully
71
- if (error.name === 'TokenExpiredError') {
72
- return {
73
- success: false,
74
- error: {
75
- type: 'expired',
76
- message: 'JWT token has expired',
77
- expiredAt: error.expiredAt,
78
- },
79
- };
80
- } else if (error.name === 'JsonWebTokenError') {
81
- return {
82
- success: false,
83
- error: {
84
- type: 'invalid',
85
- message: 'Invalid JWT token format or signature',
86
- },
87
- };
88
- } else if (error.name === 'NotBeforeError') {
89
- return {
90
- success: false,
91
- error: {
92
- type: 'malformed',
93
- message: 'JWT token is not active yet',
94
- date: error.date,
95
- },
96
- };
97
- } else {
98
- return {
99
- success: false,
100
- error: {
101
- type: 'unknown',
102
- message: `JWT verification failed: ${error.message}`,
103
- },
104
- };
105
- }
106
- }
107
- }
108
-
109
- /**
110
- * Extract JWT token from Authorization header
111
- *
112
- * @param authHeader - The Authorization header value
113
- * @returns The JWT token or null if not found/invalid format
114
- */
115
- export function extractJWTFromHeader(authHeader: string | undefined): string | null {
116
- if (!authHeader) {
117
- return null;
118
- }
119
-
120
- if (!authHeader.startsWith('Bearer ')) {
121
- return null;
122
- }
123
-
124
- const token = authHeader.substring(7);
125
- return token.trim() || null;
126
- }
127
-
128
- /**
129
- * Create a standardized auth middleware error response
130
- *
131
- * @param error - The JWT verification error
132
- * @returns Standardized error response object
133
- */
134
- export function createAuthErrorResponse(error: JWTVerificationResult['error']) {
135
- if (!error) {
136
- return {
137
- success: false,
138
- error: 'Authentication failed',
139
- message: 'Unknown authentication error',
140
- };
141
- }
142
-
143
- switch (error.type) {
144
- case 'expired':
145
- return {
146
- success: false,
147
- error: 'Token expired',
148
- message: 'Your session has expired. Please sign in again.',
149
- expiredAt: error.expiredAt,
150
- };
151
-
152
- case 'invalid':
153
- return {
154
- success: false,
155
- error: 'Invalid token',
156
- message: 'The provided authentication token is invalid.',
157
- };
158
-
159
- case 'malformed':
160
- return {
161
- success: false,
162
- error: 'Token not ready',
163
- message: 'The authentication token is not yet valid.',
164
- availableAt: error.date,
165
- };
166
-
167
- case 'missing_secret':
168
- return {
169
- success: false,
170
- error: 'Configuration error',
171
- message: 'Authentication service is not properly configured.',
172
- };
173
-
174
- default:
175
- return {
176
- success: false,
177
- error: 'Authentication failed',
178
- message: error.message || 'Authentication verification failed.',
179
- };
180
- }
181
- }
182
-
183
- /**
184
- * Example usage for custom middleware with elegant error handling:
185
- *
186
- * ```typescript
187
- * import { safeVerifyJWT, extractJWTFromHeader, createAuthErrorResponse } from '@morojs/moro';
188
- *
189
- * const authMiddleware = async (req: any, res: any, next: any) => {
190
- * const token = extractJWTFromHeader(req.headers.authorization);
191
- *
192
- * if (!token) {
193
- * return res.status(401).json({
194
- * success: false,
195
- * error: 'Missing token',
196
- * message: 'Authorization header with Bearer token is required'
197
- * });
198
- * }
199
- *
200
- * const result = safeVerifyJWT(token, process.env.JWT_SECRET!);
201
- *
202
- * if (!result.success) {
203
- * // This provides elegant, user-friendly error messages instead of stack traces
204
- * const errorResponse = createAuthErrorResponse(result.error);
205
- * return res.status(401).json(errorResponse);
206
- * }
207
- *
208
- * // Token is valid - attach user info to request
209
- * req.user = result.payload;
210
- * req.auth = {
211
- * user: result.payload,
212
- * isAuthenticated: true,
213
- * token
214
- * };
215
- *
216
- * next();
217
- * };
218
- * ```
219
- *
220
- * Benefits of using safeVerifyJWT vs raw jsonwebtoken.verify():
221
- *
222
- * ❌ Raw approach (shows ugly error messages to users):
223
- * ```typescript
224
- * try {
225
- * const decoded = jwt.verify(token, secret);
226
- * req.user = decoded;
227
- * } catch (error) {
228
- * // This exposes technical details and stack traces to users:
229
- * // "Invalid token: TokenExpiredError: jwt expired at /node_modules/jsonwebtoken/verify.js:190:21..."
230
- * throw error; // BAD - exposes internal details
231
- * }
232
- * ```
233
- *
234
- * ✅ Safe approach (shows clean, user-friendly messages):
235
- * ```typescript
236
- * const result = safeVerifyJWT(token, secret);
237
- * if (!result.success) {
238
- * // This returns clean messages like:
239
- * // { "error": "Token expired", "message": "Your session has expired. Please sign in again." }
240
- * return res.status(401).json(createAuthErrorResponse(result.error));
241
- * }
242
- * ```
243
- */
@@ -1,25 +0,0 @@
1
- // Performance monitoring middleware
2
- import { createFrameworkLogger } from '../../logger/index.js';
3
-
4
- const logger = createFrameworkLogger('PerformanceMonitor');
5
-
6
- export const performanceMonitor = async (context: any): Promise<void> => {
7
- const startTime = Date.now();
8
-
9
- context.onComplete = () => {
10
- const duration = Date.now() - startTime;
11
-
12
- // Log slow requests
13
- if (duration > 1000) {
14
- logger.warn(
15
- `Slow request detected: ${context.request?.path} took ${duration}ms`,
16
- 'SlowRequest',
17
- {
18
- path: context.request?.path,
19
- method: context.request?.method,
20
- duration,
21
- }
22
- );
23
- }
24
- };
25
- };
@@ -1,60 +0,0 @@
1
- // Rate Limiting Middleware
2
- import { MiddlewareInterface, HookContext } from '../../../types/hooks.js';
3
- import { createFrameworkLogger } from '../../logger/index.js';
4
-
5
- const logger = createFrameworkLogger('RateLimitMiddleware');
6
-
7
- export const rateLimit = (
8
- options: {
9
- windowMs?: number;
10
- max?: number;
11
- message?: string;
12
- } = {}
13
- ): MiddlewareInterface => ({
14
- name: 'rate-limit',
15
- version: '1.0.0',
16
- metadata: {
17
- name: 'rate-limit',
18
- version: '1.0.0',
19
- description: 'Rate limiting middleware with configurable windows',
20
- author: 'MoroJS Team',
21
- },
22
-
23
- install: async (hooks: any, options: any = {}) => {
24
- logger.debug('Installing rate limit middleware', 'Installation', {
25
- options,
26
- });
27
-
28
- const windowMs = options.windowMs || 60000; // 1 minute default
29
- const max = options.max || 100; // 100 requests per window
30
- const clientCounts = new Map();
31
-
32
- hooks.before('request', async (context: HookContext) => {
33
- const req = context.request as any;
34
- const clientId = req.connection?.remoteAddress || 'unknown';
35
- const now = Date.now();
36
-
37
- if (!clientCounts.has(clientId)) {
38
- clientCounts.set(clientId, { count: 0, resetTime: now + windowMs });
39
- }
40
-
41
- const client = clientCounts.get(clientId);
42
-
43
- if (now > client.resetTime) {
44
- client.count = 0;
45
- client.resetTime = now + windowMs;
46
- }
47
-
48
- client.count++;
49
-
50
- if (client.count > max) {
51
- logger.warn(`Rate limit exceeded for ${clientId}`, 'RateLimit', {
52
- clientId,
53
- count: client.count,
54
- max,
55
- });
56
- throw new Error(options.message || 'Too many requests');
57
- }
58
- });
59
- },
60
- });
@@ -1,16 +0,0 @@
1
- // Simple request logging middleware
2
- import { createFrameworkLogger } from '../../logger/index.js';
3
-
4
- const logger = createFrameworkLogger('RequestLogger');
5
-
6
- export const requestLogger = async (context: any): Promise<void> => {
7
- const startTime = Date.now();
8
-
9
- logger.info(`${context.request?.method} ${context.request?.path}`, 'RequestLogger');
10
-
11
- // Log completion after response
12
- context.onComplete = () => {
13
- const duration = Date.now() - startTime;
14
- logger.info(`Request completed in ${duration}ms`, 'RequestLogger');
15
- };
16
- };
@@ -1,287 +0,0 @@
1
- // Session Middleware
2
- import crypto from 'crypto';
3
- import { MiddlewareInterface, HookContext } from '../../../types/hooks.js';
4
- import { createFrameworkLogger } from '../../logger/index.js';
5
- import { CacheAdapter } from '../../../types/cache.js';
6
- import { MemoryCacheAdapter } from './adapters/cache/memory.js';
7
- import { RedisCacheAdapter } from './adapters/cache/redis.js';
8
- import { FileCacheAdapter } from './adapters/cache/file.js';
9
-
10
- const logger = createFrameworkLogger('SessionMiddleware');
11
-
12
- export interface SessionOptions {
13
- // Session store configuration
14
- store?: 'memory' | 'redis' | 'file' | CacheAdapter;
15
- storeOptions?: {
16
- // Redis options
17
- host?: string;
18
- port?: number;
19
- password?: string;
20
- keyPrefix?: string;
21
- // File options
22
- path?: string;
23
- // Memory options
24
- max?: number;
25
- };
26
-
27
- // Session configuration
28
- secret?: string;
29
- name?: string; // Session cookie name
30
- genid?: () => string; // Session ID generator
31
- rolling?: boolean; // Reset expiry on each request
32
- resave?: boolean; // Save session even if not modified
33
- saveUninitialized?: boolean; // Save new but not modified sessions
34
-
35
- // Cookie configuration
36
- cookie?: {
37
- maxAge?: number; // Session timeout in ms
38
- expires?: Date; // Absolute expiry
39
- httpOnly?: boolean; // Prevent XSS access
40
- secure?: boolean; // HTTPS only
41
- sameSite?: 'strict' | 'lax' | 'none';
42
- domain?: string;
43
- path?: string;
44
- };
45
-
46
- // Security
47
- proxy?: boolean; // Trust proxy for secure cookies
48
- unset?: 'destroy' | 'keep'; // What to do when session is unset
49
- }
50
-
51
- export interface SessionData {
52
- [key: string]: any;
53
- cookie?: {
54
- originalMaxAge?: number;
55
- expires?: Date;
56
- secure?: boolean;
57
- httpOnly?: boolean;
58
- sameSite?: string;
59
- };
60
- }
61
-
62
- class Session {
63
- private data: SessionData = {};
64
- private id: string;
65
- private store: CacheAdapter;
66
- private options: SessionOptions;
67
- private isNew: boolean = false;
68
- private isModified: boolean = false;
69
-
70
- constructor(id: string, store: CacheAdapter, options: SessionOptions, isNew: boolean = false) {
71
- this.id = id;
72
- this.store = store;
73
- this.options = options;
74
- this.isNew = isNew;
75
- }
76
-
77
- // Proxy to make session.prop = value work
78
- static create(
79
- id: string,
80
- store: CacheAdapter,
81
- options: SessionOptions,
82
- data: SessionData = {},
83
- isNew: boolean = false
84
- ): Session {
85
- const session = new Session(id, store, options, isNew);
86
- session.data = data;
87
-
88
- return new Proxy(session, {
89
- get(target, prop) {
90
- if (prop in target) {
91
- return target[prop as keyof Session];
92
- }
93
- return target.data[prop as string];
94
- },
95
-
96
- set(target, prop, value) {
97
- if (prop in target) {
98
- (target as any)[prop] = value;
99
- } else {
100
- target.data[prop as string] = value;
101
- target.isModified = true;
102
- }
103
- return true;
104
- },
105
-
106
- has(target, prop) {
107
- return prop in target || prop in target.data;
108
- },
109
-
110
- deleteProperty(target, prop) {
111
- if (prop in target.data) {
112
- delete target.data[prop as string];
113
- target.isModified = true;
114
- return true;
115
- }
116
- return false;
117
- },
118
- });
119
- }
120
-
121
- async save(): Promise<void> {
122
- if (this.isModified || this.isNew || this.options.resave) {
123
- const ttl = this.options.cookie?.maxAge
124
- ? Math.floor(this.options.cookie.maxAge / 1000)
125
- : 86400; // 24h default
126
- await this.store.set(this.id, this.data, ttl);
127
- this.isModified = false;
128
- this.isNew = false;
129
- logger.debug(`Session saved: ${this.id}`, 'SessionSave');
130
- }
131
- }
132
-
133
- async destroy(): Promise<void> {
134
- await this.store.del(this.id);
135
- this.data = {};
136
- this.isModified = false;
137
- logger.debug(`Session destroyed: ${this.id}`, 'SessionDestroy');
138
- }
139
-
140
- async regenerate(): Promise<string> {
141
- await this.destroy();
142
- this.id = this.generateId();
143
- this.isNew = true;
144
- this.isModified = true;
145
- logger.debug(`Session regenerated: ${this.id}`, 'SessionRegenerate');
146
- return this.id;
147
- }
148
-
149
- async touch(): Promise<void> {
150
- if (this.options.rolling) {
151
- this.isModified = true;
152
- await this.save();
153
- }
154
- }
155
-
156
- private generateId(): string {
157
- if (this.options.genid) {
158
- return this.options.genid();
159
- }
160
-
161
- return crypto.randomBytes(24).toString('hex');
162
- }
163
-
164
- get sessionID(): string {
165
- return this.id;
166
- }
167
- }
168
-
169
- export const session = (options: SessionOptions = {}): MiddlewareInterface => ({
170
- name: 'session',
171
- version: '1.0.0',
172
- metadata: {
173
- name: 'session',
174
- version: '1.0.0',
175
- description: 'Session management middleware with multiple store adapters',
176
- author: 'MoroJS Team',
177
- },
178
-
179
- install: async (hooks: any, middlewareOptions: any = {}) => {
180
- logger.debug('Installing session middleware', 'Installation');
181
-
182
- // Merge options
183
- const config: SessionOptions = {
184
- store: 'memory',
185
- name: 'connect.sid',
186
- secret: 'moro-session-secret',
187
- rolling: false,
188
- resave: false,
189
- saveUninitialized: false,
190
- cookie: {
191
- maxAge: 24 * 60 * 60 * 1000, // 24 hours
192
- httpOnly: true,
193
- secure: false,
194
- sameSite: 'lax',
195
- path: '/',
196
- },
197
- unset: 'keep',
198
- ...options,
199
- ...middlewareOptions,
200
- };
201
-
202
- // Initialize store
203
- let store: CacheAdapter;
204
-
205
- if (typeof config.store === 'string') {
206
- switch (config.store) {
207
- case 'redis':
208
- store = new RedisCacheAdapter({
209
- keyPrefix: 'sess:',
210
- ...config.storeOptions,
211
- });
212
- break;
213
- case 'file':
214
- store = new FileCacheAdapter({
215
- cacheDir: config.storeOptions?.path || './sessions',
216
- });
217
- break;
218
- case 'memory':
219
- default:
220
- store = new MemoryCacheAdapter();
221
- break;
222
- }
223
- } else {
224
- store = config.store as CacheAdapter;
225
- }
226
-
227
- // Generate session ID
228
- const generateSessionId = (): string => {
229
- if (config.genid) {
230
- return config.genid();
231
- }
232
- return crypto.randomBytes(24).toString('hex');
233
- };
234
-
235
- hooks.before('request', async (context: HookContext) => {
236
- const req = context.request as any;
237
- const res = context.response as any;
238
-
239
- // Get session ID from cookie
240
- let sessionId = req.cookies?.[config.name!];
241
- let sessionData: SessionData = {};
242
- let isNew = false;
243
-
244
- if (sessionId) {
245
- try {
246
- sessionData = (await store.get(sessionId)) || {};
247
- logger.debug(`Session loaded: ${sessionId}`, 'SessionLoad');
248
- } catch (error) {
249
- logger.warn(`Failed to load session: ${sessionId}`, 'SessionLoadError', { error });
250
- sessionId = generateSessionId();
251
- isNew = true;
252
- }
253
- } else {
254
- sessionId = generateSessionId();
255
- isNew = true;
256
- }
257
-
258
- // Create session object
259
- req.session = Session.create(sessionId, store, config, sessionData, isNew);
260
-
261
- // Set session cookie
262
- if (isNew || config.rolling) {
263
- res.cookie(config.name!, sessionId, {
264
- ...config.cookie,
265
- secure:
266
- config.cookie?.secure || (config.proxy && req.headers['x-forwarded-proto'] === 'https'),
267
- });
268
- }
269
- });
270
-
271
- hooks.after('response', async (context: HookContext) => {
272
- const req = context.request as any;
273
-
274
- if (req.session) {
275
- try {
276
- if (config.saveUninitialized || !req.session.isNew || req.session.isModified) {
277
- await req.session.save();
278
- }
279
- } catch (error) {
280
- logger.error('Failed to save session', 'SessionSaveError', { error });
281
- }
282
- }
283
- });
284
-
285
- logger.info(`Session middleware installed with ${config.store} store`, 'Installation');
286
- },
287
- });