@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,410 +0,0 @@
1
- // Auth.js Authentication Middleware
2
-
3
- import crypto from 'crypto';
4
- import { MiddlewareInterface, HookContext } from '../../../types/hooks.js';
5
- import { createFrameworkLogger } from '../../logger/index.js';
6
- import {
7
- AuthOptions,
8
- AuthProvider,
9
- AuthUser,
10
- AuthSession,
11
- AuthRequest,
12
- OAuthProvider,
13
- CredentialsProvider,
14
- EmailProvider,
15
- } from '../../../types/auth.js';
16
- import { safeVerifyJWT, createAuthErrorResponse } from './jwt-helpers.js';
17
-
18
- const logger = createFrameworkLogger('AuthMiddleware');
19
-
20
- // Auth.js provider factory functions
21
- export const providers = {
22
- google: (options: { clientId: string; clientSecret: string }): AuthProvider => ({
23
- id: 'google',
24
- name: 'Google',
25
- type: 'oauth' as const,
26
- authorization: 'https://accounts.google.com/oauth/authorize',
27
- token: 'https://oauth2.googleapis.com/token',
28
- userinfo: 'https://www.googleapis.com/oauth2/v2/userinfo',
29
- ...options,
30
- }),
31
-
32
- github: (options: { clientId: string; clientSecret: string }): AuthProvider => ({
33
- id: 'github',
34
- name: 'GitHub',
35
- type: 'oauth' as const,
36
- authorization: 'https://github.com/login/oauth/authorize',
37
- token: 'https://github.com/login/oauth/access_token',
38
- userinfo: 'https://api.github.com/user',
39
- ...options,
40
- }),
41
-
42
- discord: (options: { clientId: string; clientSecret: string }): AuthProvider => ({
43
- id: 'discord',
44
- name: 'Discord',
45
- type: 'oauth' as const,
46
- authorization: 'https://discord.com/api/oauth2/authorize',
47
- token: 'https://discord.com/api/oauth2/token',
48
- userinfo: 'https://discord.com/api/users/@me',
49
- ...options,
50
- }),
51
-
52
- credentials: (options: {
53
- name?: string;
54
- credentials: Record<string, any>;
55
- authorize: (credentials: any) => Promise<any>;
56
- }): AuthProvider => ({
57
- id: 'credentials',
58
- name: options.name || 'Credentials',
59
- type: 'credentials' as const,
60
- ...options,
61
- }),
62
-
63
- email: (options: {
64
- server: string | { host: string; port: number; auth: any };
65
- from: string;
66
- }): AuthProvider => ({
67
- id: 'email',
68
- name: 'Email',
69
- type: 'email' as const,
70
- ...options,
71
- }),
72
- };
73
-
74
- // Auth.js middleware that integrates with MoroJS's hooks system
75
- export const auth = (options: AuthOptions): MiddlewareInterface => ({
76
- name: 'auth',
77
- version: '2.0.0',
78
- metadata: {
79
- name: 'auth',
80
- version: '2.0.0',
81
- description: 'Auth.js authentication middleware with OAuth, JWT, and session support',
82
- author: 'MoroJS Team',
83
- dependencies: [], // No dependencies - auth middleware is self-contained
84
- tags: ['authentication', 'oauth', 'jwt', 'security'],
85
- },
86
-
87
- install: async (hooks: any, middlewareOptions: Partial<AuthOptions> = {}) => {
88
- logger.debug('Installing Auth.js middleware', 'Installation', { options: middlewareOptions });
89
-
90
- // Merge configuration
91
- const config: AuthOptions = {
92
- secret: process.env.NEXTAUTH_SECRET || process.env.AUTH_SECRET || 'default-secret',
93
- session: {
94
- strategy: 'jwt',
95
- maxAge: 30 * 24 * 60 * 60, // 30 days
96
- updateAge: 24 * 60 * 60, // 24 hours
97
- },
98
- basePath: '/api/auth',
99
- trustHost: true,
100
- debug: process.env.NODE_ENV === 'development',
101
- ...options,
102
- ...middlewareOptions,
103
- };
104
-
105
- if (!config.providers || config.providers.length === 0) {
106
- throw new Error('At least one authentication provider must be configured');
107
- }
108
-
109
- // Initialize Auth.js
110
- let authInstance: any;
111
- try {
112
- authInstance = await initializeAuthJS(config);
113
- logger.info('Auth.js initialized successfully', 'Initialization');
114
- } catch (error) {
115
- logger.error('Failed to initialize Auth.js', 'InitializationError', { error });
116
- throw error;
117
- }
118
-
119
- // Register hooks for request processing
120
- hooks.before('request', async (context: HookContext) => {
121
- const req = context.request as any;
122
- const res = context.response as any;
123
-
124
- // Handle Auth.js API routes first
125
- if (req.url?.startsWith(config.basePath!)) {
126
- try {
127
- const response = await authInstance.handler(req, res);
128
- if (response) {
129
- // Auth.js handled the request, don't call next()
130
- return response;
131
- }
132
- } catch (error) {
133
- logger.error('Auth.js handler error', 'HandlerError', { error });
134
- throw error;
135
- }
136
- }
137
-
138
- // Add auth object to request for all other routes
139
-
140
- // Extend request with auth methods
141
- const authRequest: AuthRequest = {
142
- user: undefined,
143
- session: undefined,
144
- token: undefined,
145
- isAuthenticated: false,
146
- signIn: async (provider?: string, options?: any) => {
147
- return authInstance.signIn(provider, options);
148
- },
149
- signOut: async (options?: any) => {
150
- return authInstance.signOut(options);
151
- },
152
- getSession: async () => {
153
- return authInstance.getSession({ req });
154
- },
155
- getToken: async () => {
156
- try {
157
- return authInstance.verifyJWT(authRequest.token || '');
158
- } catch (error: any) {
159
- // Handle JWT errors gracefully in getToken method
160
- logger.debug('Failed to verify token in getToken', 'TokenValidation', {
161
- error: error.message,
162
- });
163
- return null;
164
- }
165
- },
166
- getCsrfToken: async () => {
167
- return authInstance.getCsrfToken();
168
- },
169
- getProviders: async () => {
170
- return config.providers.reduce((acc: Record<string, AuthProvider>, provider) => {
171
- acc[provider.id] = provider;
172
- return acc;
173
- }, {});
174
- },
175
- };
176
-
177
- // Get session/token from request
178
- let session: AuthSession | null = null;
179
- let token: string | null = null;
180
-
181
- // Try JWT token first (Authorization header)
182
- const authHeader = req.headers?.authorization;
183
- if (authHeader?.startsWith('Bearer ')) {
184
- token = authHeader.substring(7);
185
- try {
186
- const decoded = await authInstance.verifyJWT(token);
187
- if (decoded) {
188
- session = await authInstance.getSession({ req: { ...req, token } });
189
- }
190
- } catch (error: any) {
191
- // Handle specific JWT errors gracefully and return proper HTTP responses
192
- if (error.name === 'TokenExpiredError') {
193
- logger.debug('JWT token expired', 'TokenValidation', {
194
- message: error.message,
195
- expiredAt: error.expiredAt,
196
- });
197
-
198
- // If this is a protected route request, return a proper 401 response
199
- if (req.headers.accept?.includes('application/json')) {
200
- return res.status(401).json(
201
- createAuthErrorResponse({
202
- type: 'expired',
203
- message: error.message,
204
- expiredAt: error.expiredAt,
205
- })
206
- );
207
- }
208
- } else if (error.name === 'JsonWebTokenError') {
209
- logger.debug('Invalid JWT token format', 'TokenValidation', {
210
- message: error.message,
211
- });
212
-
213
- // If this is a protected route request, return a proper 401 response
214
- if (req.headers.accept?.includes('application/json')) {
215
- return res.status(401).json(
216
- createAuthErrorResponse({
217
- type: 'invalid',
218
- message: error.message,
219
- })
220
- );
221
- }
222
- } else if (error.name === 'NotBeforeError') {
223
- logger.debug('JWT token not active yet', 'TokenValidation', {
224
- message: error.message,
225
- date: error.date,
226
- });
227
-
228
- // If this is a protected route request, return a proper 401 response
229
- if (req.headers.accept?.includes('application/json')) {
230
- return res.status(401).json(
231
- createAuthErrorResponse({
232
- type: 'malformed',
233
- message: error.message,
234
- date: error.date,
235
- })
236
- );
237
- }
238
- } else {
239
- logger.debug('JWT token validation failed', 'TokenValidation', {
240
- error: error.message || error,
241
- });
242
- }
243
- // Continue with unauthenticated state for non-API requests
244
- }
245
- }
246
-
247
- // Try session cookie if no valid token
248
- if (!session) {
249
- try {
250
- session = await authInstance.getSession({ req });
251
- } catch (error) {
252
- logger.debug('No valid session found', 'SessionValidation', { error });
253
- }
254
- }
255
-
256
- // Populate auth request
257
- if (session?.user) {
258
- authRequest.user = session.user;
259
- authRequest.session = session;
260
- authRequest.token = token || undefined;
261
- authRequest.isAuthenticated = true;
262
-
263
- logger.debug('User authenticated', 'Authentication', {
264
- userId: session.user.id,
265
- provider: session.user.provider || 'unknown',
266
- });
267
- }
268
-
269
- // Attach auth to request
270
- req.auth = authRequest;
271
- });
272
-
273
- // Response processing hook
274
- hooks.after('response', async (context: HookContext) => {
275
- const req = context.request as any;
276
-
277
- if (req.auth?.session) {
278
- // Update session activity if needed
279
- try {
280
- await authInstance.updateSession(req.auth.session);
281
- } catch (error) {
282
- logger.warn('Failed to update session', 'SessionUpdate', { error });
283
- }
284
- }
285
- });
286
-
287
- logger.info(
288
- `Auth.js middleware installed with ${config.providers.length} providers`,
289
- 'Installation'
290
- );
291
- },
292
- });
293
-
294
- // Auth.js implementation with proper JWT handling
295
- async function initializeAuthJS(config: AuthOptions): Promise<any> {
296
- return {
297
- handler: async (req: any, res: any) => {
298
- // Basic Auth.js request handler
299
- const path = req.url.replace(config.basePath!, '');
300
-
301
- if (path.startsWith('/signin')) {
302
- // Handle sign in
303
- return handleSignIn(req, res, config);
304
- } else if (path.startsWith('/signout')) {
305
- // Handle sign out
306
- return handleSignOut(req, res, config);
307
- } else if (path.startsWith('/callback')) {
308
- // Handle OAuth callback
309
- return handleCallback(req, res, config);
310
- } else if (path.startsWith('/session')) {
311
- // Handle session endpoint
312
- return handleSession(req, res, config);
313
- }
314
-
315
- return null;
316
- },
317
-
318
- getSession: async ({ req }: { req: any }) => {
319
- // Basic session retrieval
320
- const sessionId =
321
- req.cookies?.['next-auth.session-token'] ||
322
- req.cookies?.['__Secure-next-auth.session-token'];
323
-
324
- if (sessionId && req.session) {
325
- return {
326
- user: req.session.user || null,
327
- expires: new Date(Date.now() + config.session!.maxAge! * 1000).toISOString(),
328
- };
329
- }
330
-
331
- return null;
332
- },
333
-
334
- verifyJWT: async (token: string) => {
335
- const secret = process.env.JWT_SECRET || config.jwt?.secret || config.secret || '';
336
-
337
- // Use the safe JWT verification function
338
- const result = await safeVerifyJWT(token, secret);
339
-
340
- if (!result.success) {
341
- // Create a custom error that includes the structured error information
342
- const customError = new Error(result.error?.message || 'JWT verification failed');
343
-
344
- // Add the error type information for upstream handling
345
- (customError as any).jwtErrorType = result.error?.type;
346
- (customError as any).jwtErrorDetails = result.error;
347
-
348
- // Map the safe error types back to standard JWT error names for compatibility
349
- if (result.error?.type === 'expired') {
350
- customError.name = 'TokenExpiredError';
351
- (customError as any).expiredAt = result.error.expiredAt;
352
- } else if (result.error?.type === 'invalid') {
353
- customError.name = 'JsonWebTokenError';
354
- } else if (result.error?.type === 'malformed') {
355
- customError.name = 'NotBeforeError';
356
- (customError as any).date = result.error.date;
357
- }
358
-
359
- throw customError;
360
- }
361
-
362
- return result.payload;
363
- },
364
-
365
- signIn: async (provider?: string, options?: any) => {
366
- // Basic sign in redirect
367
- return { url: `${config.basePath}/signin${provider ? `/${provider}` : ''}` };
368
- },
369
-
370
- signOut: async (options?: any) => {
371
- // Basic sign out redirect
372
- return { url: `${config.basePath}/signout` };
373
- },
374
-
375
- updateSession: async (session: any) => {
376
- // Basic session update
377
- return session;
378
- },
379
-
380
- getCsrfToken: async () => {
381
- // Basic CSRF token generation
382
- return crypto.randomBytes(32).toString('hex');
383
- },
384
- };
385
- }
386
-
387
- // Mock Auth.js handlers
388
- async function handleSignIn(req: any, res: any, config: AuthOptions) {
389
- // Implementation would depend on the provider
390
- logger.debug('Handling sign in request', 'SignIn');
391
- return null;
392
- }
393
-
394
- async function handleSignOut(req: any, res: any, config: AuthOptions) {
395
- // Clear session and redirect
396
- logger.debug('Handling sign out request', 'SignOut');
397
- return null;
398
- }
399
-
400
- async function handleCallback(req: any, res: any, config: AuthOptions) {
401
- // Handle OAuth callback
402
- logger.debug('Handling OAuth callback', 'Callback');
403
- return null;
404
- }
405
-
406
- async function handleSession(req: any, res: any, config: AuthOptions) {
407
- // Return current session
408
- logger.debug('Handling session request', 'Session');
409
- return null;
410
- }
@@ -1,213 +0,0 @@
1
- // Built-in Cache Middleware
2
- import crypto from 'crypto';
3
- import { MiddlewareInterface, HookContext } from '../../../types/hooks.js';
4
- import { CacheAdapter, CacheOptions, CachedResponse } from '../../../types/cache.js';
5
- import { createFrameworkLogger } from '../../logger/index.js';
6
- import { createCacheAdapter } from './adapters/cache/index.js';
7
-
8
- const logger = createFrameworkLogger('CacheMiddleware');
9
-
10
- export const cache = (options: CacheOptions = {}): MiddlewareInterface => ({
11
- name: 'cache',
12
- version: '1.0.0',
13
- metadata: {
14
- name: 'cache',
15
- version: '1.0.0',
16
- description: 'Built-in cache middleware with pluggable storage adapters',
17
- author: 'MoroJS Team',
18
- },
19
-
20
- install: async (hooks: any, middlewareOptions: any = {}) => {
21
- logger.debug('Installing cache middleware', 'Installation');
22
-
23
- // Initialize storage adapter
24
- let storageAdapter: CacheAdapter;
25
-
26
- if (options.adapter && typeof options.adapter === 'object' && 'get' in options.adapter) {
27
- storageAdapter = options.adapter as CacheAdapter;
28
- } else if (typeof options.adapter === 'string') {
29
- storageAdapter = createCacheAdapter(options.adapter, options.adapterOptions);
30
- } else {
31
- // Default to memory cache
32
- storageAdapter = createCacheAdapter('memory');
33
- }
34
-
35
- // Cache key generation
36
- const generateCacheKey = (req: any, strategy?: any): string => {
37
- const prefix = options.keyPrefix || 'moro:cache:';
38
-
39
- if (strategy?.key) {
40
- return `${prefix}${strategy.key(req)}`;
41
- }
42
-
43
- // Default key: method + path + query
44
- const query = new URLSearchParams(req.query || {}).toString();
45
- return `${prefix}${req.method}:${req.path}${query ? `?${query}` : ''}`;
46
- };
47
-
48
- // Find matching strategy
49
- const findStrategy = (req: any): any | undefined => {
50
- if (!options.strategies) return undefined;
51
-
52
- for (const [pattern, strategy] of Object.entries(options.strategies)) {
53
- const regex = new RegExp(pattern);
54
- if (regex.test(req.path)) {
55
- return strategy;
56
- }
57
- }
58
-
59
- return undefined;
60
- };
61
-
62
- hooks.before('request', async (context: HookContext) => {
63
- const req = context.request as any;
64
- const res = context.response as any;
65
-
66
- // Only cache GET requests by default
67
- if (req.method !== 'GET') {
68
- return;
69
- }
70
-
71
- const strategy = findStrategy(req);
72
- const cacheKey = generateCacheKey(req, strategy);
73
-
74
- // Check if caching is disabled for this request
75
- if (strategy?.condition && !strategy.condition(req, res)) {
76
- return;
77
- }
78
-
79
- try {
80
- // Try to get from cache
81
- const cachedResponse = await storageAdapter.get(cacheKey);
82
-
83
- if (cachedResponse) {
84
- logger.debug(`Cache hit: ${cacheKey}`, 'CacheHit');
85
-
86
- // Set cache headers
87
- res.setHeader('X-Cache', 'HIT');
88
- res.setHeader('X-Cache-Key', cacheKey);
89
-
90
- // Set HTTP cache headers
91
- if (options.maxAge) {
92
- res.setHeader('Cache-Control', `public, max-age=${options.maxAge}`);
93
- }
94
-
95
- if (options.vary && options.vary.length > 0) {
96
- res.setHeader('Vary', options.vary.join(', '));
97
- }
98
-
99
- // Send cached response
100
- res.status(cachedResponse.status || 200);
101
-
102
- // Set cached headers
103
- if (cachedResponse.headers) {
104
- Object.entries(cachedResponse.headers).forEach(([key, value]) => {
105
- res.setHeader(key, value as string);
106
- });
107
- }
108
-
109
- if (cachedResponse.contentType) {
110
- res.setHeader('Content-Type', cachedResponse.contentType);
111
- }
112
-
113
- res.send(cachedResponse.body);
114
-
115
- // Mark as handled
116
- (context as any).handled = true;
117
- return;
118
- }
119
-
120
- logger.debug(`Cache miss: ${cacheKey}`, 'CacheMiss');
121
- res.setHeader('X-Cache', 'MISS');
122
- res.setHeader('X-Cache-Key', cacheKey);
123
- } catch (error) {
124
- logger.error('Cache retrieval error', 'CacheError', {
125
- error,
126
- key: cacheKey,
127
- });
128
- }
129
-
130
- // Store original response methods
131
- const originalJson = res.json;
132
- const originalSend = res.send;
133
- const originalEnd = res.end;
134
-
135
- // Wrap response methods to cache the response
136
- const cacheResponse = async (body: any, contentType?: string) => {
137
- try {
138
- const ttl = strategy?.ttl || options.defaultTtl || 3600;
139
-
140
- const cacheData: CachedResponse = {
141
- body,
142
- status: res.statusCode,
143
- headers: res.getHeaders ? res.getHeaders() : {},
144
- contentType: contentType || res.getHeader('Content-Type'),
145
- timestamp: Date.now(),
146
- };
147
-
148
- await storageAdapter.set(cacheKey, cacheData, ttl);
149
- logger.debug(`Response cached: ${cacheKey} (TTL: ${ttl}s)`, 'CacheSet');
150
- } catch (error) {
151
- logger.error('Cache storage error', 'CacheError', {
152
- error,
153
- key: cacheKey,
154
- });
155
- }
156
- };
157
-
158
- // Override response methods
159
- res.json = function (data: any) {
160
- cacheResponse(data, 'application/json');
161
- return originalJson.call(this, data);
162
- };
163
-
164
- res.send = function (data: any) {
165
- cacheResponse(data);
166
- return originalSend.call(this, data);
167
- };
168
-
169
- res.end = function (data?: any) {
170
- if (data) {
171
- cacheResponse(data);
172
- }
173
- return originalEnd.call(this, data);
174
- };
175
-
176
- // Add cache control methods
177
- res.cacheControl = (directives: any) => {
178
- const parts: string[] = [];
179
-
180
- if (directives.public) parts.push('public');
181
- if (directives.private) parts.push('private');
182
- if (directives.noCache) parts.push('no-cache');
183
- if (directives.noStore) parts.push('no-store');
184
- if (directives.mustRevalidate) parts.push('must-revalidate');
185
- if (directives.immutable) parts.push('immutable');
186
-
187
- if (typeof directives.maxAge === 'number') parts.push(`max-age=${directives.maxAge}`);
188
- if (typeof directives.staleWhileRevalidate === 'number') {
189
- parts.push(`stale-while-revalidate=${directives.staleWhileRevalidate}`);
190
- }
191
-
192
- if (!res.headersSent) {
193
- res.setHeader('Cache-Control', parts.join(', '));
194
- }
195
- return res;
196
- };
197
-
198
- // Add ETag generation
199
- if (options.etag !== false) {
200
- res.generateETag = (content: string | Buffer) => {
201
- const hash = crypto.createHash('md5').update(content).digest('hex');
202
- const prefix = options.etag === 'weak' ? 'W/' : '';
203
- return `${prefix}"${hash}"`;
204
- };
205
- }
206
- });
207
-
208
- logger.info('Cache middleware installed', 'Installation', {
209
- adapter: typeof options.adapter === 'string' ? options.adapter : 'custom',
210
- strategies: Object.keys(options.strategies || {}).length,
211
- });
212
- },
213
- });