@morojs/moro 1.6.1 → 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 (575) hide show
  1. package/README.md +74 -256
  2. package/dist/core/auth/morojs-adapter.js +20 -20
  3. package/dist/core/auth/morojs-adapter.js.map +1 -1
  4. package/dist/core/config/config-manager.d.ts +44 -0
  5. package/dist/core/config/config-manager.js +104 -0
  6. package/dist/core/config/config-manager.js.map +1 -0
  7. package/dist/core/config/config-sources.d.ts +21 -0
  8. package/dist/core/config/config-sources.js +503 -0
  9. package/dist/core/config/config-sources.js.map +1 -0
  10. package/dist/core/config/config-validator.d.ts +21 -0
  11. package/dist/core/config/config-validator.js +791 -0
  12. package/dist/core/config/config-validator.js.map +1 -0
  13. package/dist/core/config/file-loader.d.ts +1 -6
  14. package/dist/core/config/file-loader.js +21 -249
  15. package/dist/core/config/file-loader.js.map +1 -1
  16. package/dist/core/config/index.d.ts +41 -12
  17. package/dist/core/config/index.js +65 -54
  18. package/dist/core/config/index.js.map +1 -1
  19. package/dist/core/config/schema.d.ts +2 -2
  20. package/dist/core/config/schema.js +55 -44
  21. package/dist/core/config/schema.js.map +1 -1
  22. package/dist/core/config/utils.d.ts +10 -3
  23. package/dist/core/config/utils.js +31 -58
  24. package/dist/core/config/utils.js.map +1 -1
  25. package/dist/core/database/adapters/drizzle.d.ts +1 -1
  26. package/dist/core/database/adapters/drizzle.js +18 -11
  27. package/dist/core/database/adapters/drizzle.js.map +1 -1
  28. package/dist/core/database/adapters/index.d.ts +7 -7
  29. package/dist/core/database/adapters/index.js +19 -29
  30. package/dist/core/database/adapters/index.js.map +1 -1
  31. package/dist/core/database/adapters/mongodb.d.ts +13 -1
  32. package/dist/core/database/adapters/mongodb.js +46 -10
  33. package/dist/core/database/adapters/mongodb.js.map +1 -1
  34. package/dist/core/database/adapters/mysql.d.ts +14 -1
  35. package/dist/core/database/adapters/mysql.js +19 -9
  36. package/dist/core/database/adapters/mysql.js.map +1 -1
  37. package/dist/core/database/adapters/postgresql.d.ts +12 -2
  38. package/dist/core/database/adapters/postgresql.js +19 -9
  39. package/dist/core/database/adapters/postgresql.js.map +1 -1
  40. package/dist/core/database/adapters/redis.d.ts +12 -1
  41. package/dist/core/database/adapters/redis.js +48 -13
  42. package/dist/core/database/adapters/redis.js.map +1 -1
  43. package/dist/core/database/adapters/sqlite.d.ts +3 -1
  44. package/dist/core/database/adapters/sqlite.js +19 -8
  45. package/dist/core/database/adapters/sqlite.js.map +1 -1
  46. package/dist/core/database/index.d.ts +2 -2
  47. package/dist/core/database/index.js +2 -18
  48. package/dist/core/database/index.js.map +1 -1
  49. package/dist/core/docs/index.d.ts +9 -9
  50. package/dist/core/docs/index.js +14 -35
  51. package/dist/core/docs/index.js.map +1 -1
  52. package/dist/core/docs/openapi-generator.d.ts +2 -2
  53. package/dist/core/docs/openapi-generator.js +11 -16
  54. package/dist/core/docs/openapi-generator.js.map +1 -1
  55. package/dist/core/docs/schema-to-openapi.d.ts +2 -2
  56. package/dist/core/docs/schema-to-openapi.js +5 -11
  57. package/dist/core/docs/schema-to-openapi.js.map +1 -1
  58. package/dist/core/docs/simple-docs.d.ts +1 -1
  59. package/dist/core/docs/simple-docs.js +4 -9
  60. package/dist/core/docs/simple-docs.js.map +1 -1
  61. package/dist/core/docs/swagger-ui.d.ts +2 -2
  62. package/dist/core/docs/swagger-ui.js +26 -29
  63. package/dist/core/docs/swagger-ui.js.map +1 -1
  64. package/dist/core/docs/zod-to-openapi.js +31 -28
  65. package/dist/core/docs/zod-to-openapi.js.map +1 -1
  66. package/dist/core/events/event-bus.d.ts +1 -1
  67. package/dist/core/events/event-bus.js +7 -11
  68. package/dist/core/events/event-bus.js.map +1 -1
  69. package/dist/core/events/index.d.ts +2 -2
  70. package/dist/core/events/index.js +1 -5
  71. package/dist/core/events/index.js.map +1 -1
  72. package/dist/core/framework.d.ts +20 -13
  73. package/dist/core/framework.js +285 -102
  74. package/dist/core/framework.js.map +1 -1
  75. package/dist/core/http/http-server.d.ts +59 -7
  76. package/dist/core/http/http-server.js +202 -185
  77. package/dist/core/http/http-server.js.map +1 -1
  78. package/dist/core/http/index.d.ts +4 -3
  79. package/dist/core/http/index.js +3 -8
  80. package/dist/core/http/index.js.map +1 -1
  81. package/dist/core/http/uws-http-server.d.ts +46 -0
  82. package/dist/core/http/uws-http-server.js +523 -0
  83. package/dist/core/http/uws-http-server.js.map +1 -0
  84. package/dist/core/logger/filters.d.ts +1 -1
  85. package/dist/core/logger/filters.js +20 -23
  86. package/dist/core/logger/filters.js.map +1 -1
  87. package/dist/core/logger/index.d.ts +3 -3
  88. package/dist/core/logger/index.js +2 -24
  89. package/dist/core/logger/index.js.map +1 -1
  90. package/dist/core/logger/logger.d.ts +30 -14
  91. package/dist/core/logger/logger.js +398 -223
  92. package/dist/core/logger/logger.js.map +1 -1
  93. package/dist/core/logger/outputs.d.ts +1 -1
  94. package/dist/core/logger/outputs.js +8 -17
  95. package/dist/core/logger/outputs.js.map +1 -1
  96. package/dist/core/middleware/built-in/auth/core.d.ts +78 -0
  97. package/dist/core/middleware/built-in/auth/core.js +358 -0
  98. package/dist/core/middleware/built-in/auth/core.js.map +1 -0
  99. package/dist/core/middleware/built-in/{auth-helpers.js → auth/helpers.js} +12 -23
  100. package/dist/core/middleware/built-in/auth/helpers.js.map +1 -0
  101. package/dist/core/middleware/built-in/auth/hook.d.ts +30 -0
  102. package/dist/core/middleware/built-in/auth/hook.js +99 -0
  103. package/dist/core/middleware/built-in/auth/hook.js.map +1 -0
  104. package/dist/core/middleware/built-in/auth/index.d.ts +7 -0
  105. package/dist/core/middleware/built-in/auth/index.js +15 -0
  106. package/dist/core/middleware/built-in/auth/index.js.map +1 -0
  107. package/dist/core/middleware/built-in/auth/jwt-helpers.d.ts +118 -0
  108. package/dist/core/middleware/built-in/auth/jwt-helpers.js +218 -0
  109. package/dist/core/middleware/built-in/auth/jwt-helpers.js.map +1 -0
  110. package/dist/core/middleware/built-in/auth/middleware.d.ts +23 -0
  111. package/dist/core/middleware/built-in/auth/middleware.js +71 -0
  112. package/dist/core/middleware/built-in/auth/middleware.js.map +1 -0
  113. package/dist/core/middleware/built-in/{auth-providers.d.ts → auth/providers.d.ts} +1 -1
  114. package/dist/core/middleware/built-in/{auth-providers.js → auth/providers.js} +5 -10
  115. package/dist/core/middleware/built-in/auth/providers.js.map +1 -0
  116. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/file.d.ts +1 -1
  117. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/file.js +10 -47
  118. package/dist/core/middleware/built-in/cache/adapters/cache/file.js.map +1 -0
  119. package/dist/core/middleware/built-in/cache/adapters/cache/index.d.ts +5 -0
  120. package/dist/core/middleware/built-in/cache/adapters/cache/index.js +21 -0
  121. package/dist/core/middleware/built-in/cache/adapters/cache/index.js.map +1 -0
  122. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/memory.d.ts +1 -1
  123. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/memory.js +3 -7
  124. package/dist/core/middleware/built-in/cache/adapters/cache/memory.js.map +1 -0
  125. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/redis.d.ts +3 -1
  126. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/redis.js +11 -9
  127. package/dist/core/middleware/built-in/cache/adapters/cache/redis.js.map +1 -0
  128. package/dist/core/middleware/built-in/cache/adapters/index.d.ts +2 -0
  129. package/dist/core/middleware/built-in/cache/adapters/index.js +5 -0
  130. package/dist/core/middleware/built-in/cache/adapters/index.js.map +1 -0
  131. package/dist/core/middleware/built-in/cache/core.d.ts +37 -0
  132. package/dist/core/middleware/built-in/cache/core.js +87 -0
  133. package/dist/core/middleware/built-in/cache/core.js.map +1 -0
  134. package/dist/core/middleware/built-in/cache/hook.d.ts +20 -0
  135. package/dist/core/middleware/built-in/{cache.js → cache/hook.js} +30 -14
  136. package/dist/core/middleware/built-in/cache/hook.js.map +1 -0
  137. package/dist/core/middleware/built-in/cache/index.d.ts +3 -0
  138. package/dist/core/middleware/built-in/cache/index.js +9 -0
  139. package/dist/core/middleware/built-in/cache/index.js.map +1 -0
  140. package/dist/core/middleware/built-in/cache/middleware.d.ts +17 -0
  141. package/dist/core/middleware/built-in/cache/middleware.js +44 -0
  142. package/dist/core/middleware/built-in/cache/middleware.js.map +1 -0
  143. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/azure.d.ts +1 -1
  144. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/azure.js +3 -7
  145. package/dist/core/middleware/built-in/cdn/adapters/cdn/azure.js.map +1 -0
  146. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudflare.d.ts +1 -1
  147. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudflare.js +3 -7
  148. package/dist/core/middleware/built-in/cdn/adapters/cdn/cloudflare.js.map +1 -0
  149. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudfront.d.ts +3 -1
  150. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudfront.js +12 -10
  151. package/dist/core/middleware/built-in/cdn/adapters/cdn/cloudfront.js.map +1 -0
  152. package/dist/core/middleware/built-in/cdn/adapters/cdn/index.d.ts +5 -0
  153. package/dist/core/middleware/built-in/cdn/adapters/cdn/index.js +21 -0
  154. package/dist/core/middleware/built-in/cdn/adapters/cdn/index.js.map +1 -0
  155. package/dist/core/middleware/built-in/cdn/adapters/index.d.ts +2 -0
  156. package/dist/core/middleware/built-in/cdn/adapters/index.js +5 -0
  157. package/dist/core/middleware/built-in/cdn/adapters/index.js.map +1 -0
  158. package/dist/core/middleware/built-in/cdn/core.d.ts +43 -0
  159. package/dist/core/middleware/built-in/cdn/core.js +144 -0
  160. package/dist/core/middleware/built-in/cdn/core.js.map +1 -0
  161. package/dist/core/middleware/built-in/cdn/hook.d.ts +22 -0
  162. package/dist/core/middleware/built-in/cdn/hook.js +70 -0
  163. package/dist/core/middleware/built-in/cdn/hook.js.map +1 -0
  164. package/dist/core/middleware/built-in/cdn/index.d.ts +5 -0
  165. package/dist/core/middleware/built-in/cdn/index.js +11 -0
  166. package/dist/core/middleware/built-in/cdn/index.js.map +1 -0
  167. package/dist/core/middleware/built-in/cdn/middleware.d.ts +21 -0
  168. package/dist/core/middleware/built-in/cdn/middleware.js +52 -0
  169. package/dist/core/middleware/built-in/cdn/middleware.js.map +1 -0
  170. package/dist/core/middleware/built-in/cookie/core.d.ts +37 -0
  171. package/dist/core/middleware/built-in/cookie/core.js +83 -0
  172. package/dist/core/middleware/built-in/cookie/core.js.map +1 -0
  173. package/dist/core/middleware/built-in/cookie/hook.d.ts +20 -0
  174. package/dist/core/middleware/built-in/cookie/hook.js +47 -0
  175. package/dist/core/middleware/built-in/cookie/hook.js.map +1 -0
  176. package/dist/core/middleware/built-in/cookie/index.d.ts +3 -0
  177. package/dist/core/middleware/built-in/cookie/index.js +9 -0
  178. package/dist/core/middleware/built-in/cookie/index.js.map +1 -0
  179. package/dist/core/middleware/built-in/cookie/middleware.d.ts +17 -0
  180. package/dist/core/middleware/built-in/cookie/middleware.js +36 -0
  181. package/dist/core/middleware/built-in/cookie/middleware.js.map +1 -0
  182. package/dist/core/middleware/built-in/cors/core.d.ts +23 -0
  183. package/dist/core/middleware/built-in/cors/core.js +51 -0
  184. package/dist/core/middleware/built-in/cors/core.js.map +1 -0
  185. package/dist/core/middleware/built-in/cors/hook.d.ts +17 -0
  186. package/dist/core/middleware/built-in/cors/hook.js +37 -0
  187. package/dist/core/middleware/built-in/cors/hook.js.map +1 -0
  188. package/dist/core/middleware/built-in/cors/index.d.ts +3 -0
  189. package/dist/core/middleware/built-in/cors/index.js +9 -0
  190. package/dist/core/middleware/built-in/cors/index.js.map +1 -0
  191. package/dist/core/middleware/built-in/cors/middleware.d.ts +16 -0
  192. package/dist/core/middleware/built-in/cors/middleware.js +22 -0
  193. package/dist/core/middleware/built-in/cors/middleware.js.map +1 -0
  194. package/dist/core/middleware/built-in/csp/core.d.ts +45 -0
  195. package/dist/core/middleware/built-in/csp/core.js +88 -0
  196. package/dist/core/middleware/built-in/csp/core.js.map +1 -0
  197. package/dist/core/middleware/built-in/csp/hook.d.ts +22 -0
  198. package/dist/core/middleware/built-in/csp/hook.js +47 -0
  199. package/dist/core/middleware/built-in/csp/hook.js.map +1 -0
  200. package/dist/core/middleware/built-in/csp/index.d.ts +3 -0
  201. package/dist/core/middleware/built-in/csp/index.js +9 -0
  202. package/dist/core/middleware/built-in/csp/index.js.map +1 -0
  203. package/dist/core/middleware/built-in/csp/middleware.d.ts +19 -0
  204. package/dist/core/middleware/built-in/csp/middleware.js +29 -0
  205. package/dist/core/middleware/built-in/csp/middleware.js.map +1 -0
  206. package/dist/core/middleware/built-in/csrf/core.d.ts +28 -0
  207. package/dist/core/middleware/built-in/csrf/core.js +69 -0
  208. package/dist/core/middleware/built-in/csrf/core.js.map +1 -0
  209. package/dist/core/middleware/built-in/csrf/hook.d.ts +17 -0
  210. package/dist/core/middleware/built-in/csrf/hook.js +45 -0
  211. package/dist/core/middleware/built-in/csrf/hook.js.map +1 -0
  212. package/dist/core/middleware/built-in/csrf/index.d.ts +3 -0
  213. package/dist/core/middleware/built-in/csrf/index.js +9 -0
  214. package/dist/core/middleware/built-in/csrf/index.js.map +1 -0
  215. package/dist/core/middleware/built-in/csrf/middleware.d.ts +16 -0
  216. package/dist/core/middleware/built-in/csrf/middleware.js +34 -0
  217. package/dist/core/middleware/built-in/csrf/middleware.js.map +1 -0
  218. package/dist/core/middleware/built-in/error-tracker/index.d.ts +1 -0
  219. package/dist/core/middleware/built-in/error-tracker/index.js +4 -0
  220. package/dist/core/middleware/built-in/error-tracker/index.js.map +1 -0
  221. package/dist/core/middleware/built-in/error-tracker/middleware.d.ts +12 -0
  222. package/dist/core/middleware/built-in/error-tracker/middleware.js +26 -0
  223. package/dist/core/middleware/built-in/error-tracker/middleware.js.map +1 -0
  224. package/dist/core/middleware/built-in/index.d.ts +28 -61
  225. package/dist/core/middleware/built-in/index.js +48 -78
  226. package/dist/core/middleware/built-in/index.js.map +1 -1
  227. package/dist/core/middleware/built-in/performance-monitor/index.d.ts +1 -0
  228. package/dist/core/middleware/built-in/performance-monitor/index.js +4 -0
  229. package/dist/core/middleware/built-in/performance-monitor/index.js.map +1 -0
  230. package/dist/core/middleware/built-in/performance-monitor/middleware.d.ts +12 -0
  231. package/dist/core/middleware/built-in/performance-monitor/middleware.js +29 -0
  232. package/dist/core/middleware/built-in/performance-monitor/middleware.js.map +1 -0
  233. package/dist/core/middleware/built-in/rate-limit/core.d.ts +33 -0
  234. package/dist/core/middleware/built-in/rate-limit/core.js +86 -0
  235. package/dist/core/middleware/built-in/rate-limit/core.js.map +1 -0
  236. package/dist/core/middleware/built-in/rate-limit/hook.d.ts +20 -0
  237. package/dist/core/middleware/built-in/{rate-limit.js → rate-limit/hook.js} +24 -22
  238. package/dist/core/middleware/built-in/rate-limit/hook.js.map +1 -0
  239. package/dist/core/middleware/built-in/rate-limit/index.d.ts +3 -0
  240. package/dist/core/middleware/built-in/rate-limit/index.js +9 -0
  241. package/dist/core/middleware/built-in/rate-limit/index.js.map +1 -0
  242. package/dist/core/middleware/built-in/rate-limit/middleware.d.ts +16 -0
  243. package/dist/core/middleware/built-in/rate-limit/middleware.js +35 -0
  244. package/dist/core/middleware/built-in/rate-limit/middleware.js.map +1 -0
  245. package/dist/core/middleware/built-in/request-logger/index.d.ts +1 -0
  246. package/dist/core/middleware/built-in/request-logger/index.js +4 -0
  247. package/dist/core/middleware/built-in/request-logger/index.js.map +1 -0
  248. package/dist/core/middleware/built-in/request-logger/middleware.d.ts +12 -0
  249. package/dist/core/middleware/built-in/request-logger/middleware.js +24 -0
  250. package/dist/core/middleware/built-in/request-logger/middleware.js.map +1 -0
  251. package/dist/core/middleware/built-in/session/core.d.ts +73 -0
  252. package/dist/core/middleware/built-in/session/core.js +227 -0
  253. package/dist/core/middleware/built-in/session/core.js.map +1 -0
  254. package/dist/core/middleware/built-in/session/hook.d.ts +17 -0
  255. package/dist/core/middleware/built-in/session/hook.js +53 -0
  256. package/dist/core/middleware/built-in/session/hook.js.map +1 -0
  257. package/dist/core/middleware/built-in/session/index.d.ts +3 -0
  258. package/dist/core/middleware/built-in/session/index.js +9 -0
  259. package/dist/core/middleware/built-in/session/index.js.map +1 -0
  260. package/dist/core/middleware/built-in/session/middleware.d.ts +17 -0
  261. package/dist/core/middleware/built-in/session/middleware.js +38 -0
  262. package/dist/core/middleware/built-in/session/middleware.js.map +1 -0
  263. package/dist/core/middleware/built-in/sse/core.d.ts +44 -0
  264. package/dist/core/middleware/built-in/sse/core.js +117 -0
  265. package/dist/core/middleware/built-in/sse/core.js.map +1 -0
  266. package/dist/core/middleware/built-in/sse/hook.d.ts +18 -0
  267. package/dist/core/middleware/built-in/sse/hook.js +60 -0
  268. package/dist/core/middleware/built-in/sse/hook.js.map +1 -0
  269. package/dist/core/middleware/built-in/sse/index.d.ts +3 -0
  270. package/dist/core/middleware/built-in/sse/index.js +9 -0
  271. package/dist/core/middleware/built-in/sse/index.js.map +1 -0
  272. package/dist/core/middleware/built-in/sse/middleware.d.ts +18 -0
  273. package/dist/core/middleware/built-in/sse/middleware.js +43 -0
  274. package/dist/core/middleware/built-in/sse/middleware.js.map +1 -0
  275. package/dist/core/middleware/built-in/validation/core.d.ts +23 -0
  276. package/dist/core/middleware/built-in/validation/core.js +93 -0
  277. package/dist/core/middleware/built-in/validation/core.js.map +1 -0
  278. package/dist/core/middleware/built-in/validation/hook.d.ts +13 -0
  279. package/dist/core/middleware/built-in/{validation.js → validation/hook.js} +16 -9
  280. package/dist/core/middleware/built-in/validation/hook.js.map +1 -0
  281. package/dist/core/middleware/built-in/validation/index.d.ts +3 -0
  282. package/dist/core/middleware/built-in/validation/index.js +9 -0
  283. package/dist/core/middleware/built-in/validation/index.js.map +1 -0
  284. package/dist/core/middleware/built-in/validation/middleware.d.ts +16 -0
  285. package/dist/core/middleware/built-in/validation/middleware.js +27 -0
  286. package/dist/core/middleware/built-in/validation/middleware.js.map +1 -0
  287. package/dist/core/middleware/index.d.ts +4 -4
  288. package/dist/core/middleware/index.js +14 -28
  289. package/dist/core/middleware/index.js.map +1 -1
  290. package/dist/core/modules/auto-discovery.d.ts +19 -2
  291. package/dist/core/modules/auto-discovery.js +391 -74
  292. package/dist/core/modules/auto-discovery.js.map +1 -1
  293. package/dist/core/modules/index.d.ts +2 -2
  294. package/dist/core/modules/index.js +2 -9
  295. package/dist/core/modules/index.js.map +1 -1
  296. package/dist/core/modules/modules.d.ts +3 -3
  297. package/dist/core/modules/modules.js +23 -54
  298. package/dist/core/modules/modules.js.map +1 -1
  299. package/dist/core/networking/adapters/index.d.ts +4 -3
  300. package/dist/core/networking/adapters/index.js +3 -7
  301. package/dist/core/networking/adapters/index.js.map +1 -1
  302. package/dist/core/networking/adapters/socketio-adapter.d.ts +1 -1
  303. package/dist/core/networking/adapters/socketio-adapter.js +5 -40
  304. package/dist/core/networking/adapters/socketio-adapter.js.map +1 -1
  305. package/dist/core/networking/adapters/uws-adapter.d.ts +44 -0
  306. package/dist/core/networking/adapters/uws-adapter.js +513 -0
  307. package/dist/core/networking/adapters/uws-adapter.js.map +1 -0
  308. package/dist/core/networking/adapters/ws-adapter.d.ts +2 -2
  309. package/dist/core/networking/adapters/ws-adapter.js +8 -43
  310. package/dist/core/networking/adapters/ws-adapter.js.map +1 -1
  311. package/dist/core/networking/index.d.ts +3 -2
  312. package/dist/core/networking/index.js +2 -7
  313. package/dist/core/networking/index.js.map +1 -1
  314. package/dist/core/networking/service-discovery.js +8 -12
  315. package/dist/core/networking/service-discovery.js.map +1 -1
  316. package/dist/core/networking/websocket-adapter.js +1 -2
  317. package/dist/core/networking/websocket-adapter.js.map +1 -1
  318. package/dist/core/networking/websocket-manager.d.ts +3 -3
  319. package/dist/core/networking/websocket-manager.js +9 -11
  320. package/dist/core/networking/websocket-manager.js.map +1 -1
  321. package/dist/core/pooling/object-pool-manager.d.ts +140 -0
  322. package/dist/core/pooling/object-pool-manager.js +502 -0
  323. package/dist/core/pooling/object-pool-manager.js.map +1 -0
  324. package/dist/core/routing/app-integration.d.ts +14 -12
  325. package/dist/core/routing/app-integration.js +49 -85
  326. package/dist/core/routing/app-integration.js.map +1 -1
  327. package/dist/core/routing/index.d.ts +17 -11
  328. package/dist/core/routing/index.js +48 -237
  329. package/dist/core/routing/index.js.map +1 -1
  330. package/dist/core/routing/path-matcher.d.ts +67 -0
  331. package/dist/core/routing/path-matcher.js +182 -0
  332. package/dist/core/routing/path-matcher.js.map +1 -0
  333. package/dist/core/routing/router.d.ts +38 -0
  334. package/dist/core/routing/router.js +68 -0
  335. package/dist/core/routing/router.js.map +1 -0
  336. package/dist/core/routing/unified-router.d.ts +132 -0
  337. package/dist/core/routing/unified-router.js +639 -0
  338. package/dist/core/routing/unified-router.js.map +1 -0
  339. package/dist/core/runtime/aws-lambda-adapter.d.ts +3 -3
  340. package/dist/core/runtime/aws-lambda-adapter.js +2 -6
  341. package/dist/core/runtime/aws-lambda-adapter.js.map +1 -1
  342. package/dist/core/runtime/base-adapter.d.ts +2 -2
  343. package/dist/core/runtime/base-adapter.js +3 -7
  344. package/dist/core/runtime/base-adapter.js.map +1 -1
  345. package/dist/core/runtime/cloudflare-workers-adapter.d.ts +3 -3
  346. package/dist/core/runtime/cloudflare-workers-adapter.js +2 -6
  347. package/dist/core/runtime/cloudflare-workers-adapter.js.map +1 -1
  348. package/dist/core/runtime/index.d.ts +12 -12
  349. package/dist/core/runtime/index.js +22 -35
  350. package/dist/core/runtime/index.js.map +1 -1
  351. package/dist/core/runtime/node-adapter.d.ts +4 -4
  352. package/dist/core/runtime/node-adapter.js +18 -49
  353. package/dist/core/runtime/node-adapter.js.map +1 -1
  354. package/dist/core/runtime/vercel-edge-adapter.d.ts +3 -3
  355. package/dist/core/runtime/vercel-edge-adapter.js +2 -6
  356. package/dist/core/runtime/vercel-edge-adapter.js.map +1 -1
  357. package/dist/core/utilities/circuit-breaker.js +1 -5
  358. package/dist/core/utilities/circuit-breaker.js.map +1 -1
  359. package/dist/core/utilities/container.js +12 -22
  360. package/dist/core/utilities/container.js.map +1 -1
  361. package/dist/core/utilities/hooks.d.ts +2 -2
  362. package/dist/core/utilities/hooks.js +7 -12
  363. package/dist/core/utilities/hooks.js.map +1 -1
  364. package/dist/core/utilities/index.d.ts +5 -4
  365. package/dist/core/utilities/index.js +5 -19
  366. package/dist/core/utilities/index.js.map +1 -1
  367. package/dist/core/utilities/package-utils.d.ts +38 -0
  368. package/dist/core/utilities/package-utils.js +57 -0
  369. package/dist/core/utilities/package-utils.js.map +1 -0
  370. package/dist/core/validation/adapters.d.ts +1 -1
  371. package/dist/core/validation/adapters.js +15 -26
  372. package/dist/core/validation/adapters.js.map +1 -1
  373. package/dist/core/validation/index.d.ts +6 -4
  374. package/dist/core/validation/index.js +57 -28
  375. package/dist/core/validation/index.js.map +1 -1
  376. package/dist/core/validation/schema-interface.js +3 -9
  377. package/dist/core/validation/schema-interface.js.map +1 -1
  378. package/dist/index.d.ts +52 -52
  379. package/dist/index.js +24 -132
  380. package/dist/index.js.map +1 -1
  381. package/dist/moro.d.ts +70 -16
  382. package/dist/moro.js +650 -269
  383. package/dist/moro.js.map +1 -1
  384. package/dist/types/auth.js +3 -9
  385. package/dist/types/auth.js.map +1 -1
  386. package/dist/types/cache.js +1 -2
  387. package/dist/types/cdn.js +1 -2
  388. package/dist/types/config.d.ts +73 -2
  389. package/dist/types/config.js +1 -2
  390. package/dist/types/config.js.map +1 -1
  391. package/dist/types/core.d.ts +36 -42
  392. package/dist/types/core.js +1 -2
  393. package/dist/types/database.js +1 -2
  394. package/dist/types/discovery.js +1 -2
  395. package/dist/types/events.js +1 -2
  396. package/dist/types/hooks.d.ts +4 -1
  397. package/dist/types/hooks.js +1 -2
  398. package/dist/types/http.d.ts +16 -1
  399. package/dist/types/http.js +1 -2
  400. package/dist/types/logger.d.ts +7 -0
  401. package/dist/types/logger.js +1 -2
  402. package/dist/types/module.d.ts +11 -0
  403. package/dist/types/module.js +1 -2
  404. package/dist/types/runtime.d.ts +1 -1
  405. package/dist/types/runtime.js +1 -2
  406. package/dist/types/session.js +1 -2
  407. package/package.json +18 -55
  408. package/dist/core/config/loader.d.ts +0 -7
  409. package/dist/core/config/loader.js +0 -269
  410. package/dist/core/config/loader.js.map +0 -1
  411. package/dist/core/config/validation.d.ts +0 -17
  412. package/dist/core/config/validation.js +0 -131
  413. package/dist/core/config/validation.js.map +0 -1
  414. package/dist/core/http/router.d.ts +0 -14
  415. package/dist/core/http/router.js +0 -109
  416. package/dist/core/http/router.js.map +0 -1
  417. package/dist/core/middleware/built-in/adapters/cache/file.js.map +0 -1
  418. package/dist/core/middleware/built-in/adapters/cache/index.d.ts +0 -5
  419. package/dist/core/middleware/built-in/adapters/cache/index.js +0 -28
  420. package/dist/core/middleware/built-in/adapters/cache/index.js.map +0 -1
  421. package/dist/core/middleware/built-in/adapters/cache/memory.js.map +0 -1
  422. package/dist/core/middleware/built-in/adapters/cache/redis.js.map +0 -1
  423. package/dist/core/middleware/built-in/adapters/cdn/azure.js.map +0 -1
  424. package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js.map +0 -1
  425. package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js.map +0 -1
  426. package/dist/core/middleware/built-in/adapters/cdn/index.d.ts +0 -5
  427. package/dist/core/middleware/built-in/adapters/cdn/index.js +0 -28
  428. package/dist/core/middleware/built-in/adapters/cdn/index.js.map +0 -1
  429. package/dist/core/middleware/built-in/adapters/index.d.ts +0 -4
  430. package/dist/core/middleware/built-in/adapters/index.js +0 -26
  431. package/dist/core/middleware/built-in/adapters/index.js.map +0 -1
  432. package/dist/core/middleware/built-in/auth-helpers.js.map +0 -1
  433. package/dist/core/middleware/built-in/auth-providers.js.map +0 -1
  434. package/dist/core/middleware/built-in/auth.d.ts +0 -30
  435. package/dist/core/middleware/built-in/auth.js +0 -281
  436. package/dist/core/middleware/built-in/auth.js.map +0 -1
  437. package/dist/core/middleware/built-in/cache.d.ts +0 -3
  438. package/dist/core/middleware/built-in/cache.js.map +0 -1
  439. package/dist/core/middleware/built-in/cdn.d.ts +0 -3
  440. package/dist/core/middleware/built-in/cdn.js +0 -113
  441. package/dist/core/middleware/built-in/cdn.js.map +0 -1
  442. package/dist/core/middleware/built-in/cookie.d.ts +0 -14
  443. package/dist/core/middleware/built-in/cookie.js +0 -68
  444. package/dist/core/middleware/built-in/cookie.js.map +0 -1
  445. package/dist/core/middleware/built-in/cors.d.ts +0 -2
  446. package/dist/core/middleware/built-in/cors.js +0 -29
  447. package/dist/core/middleware/built-in/cors.js.map +0 -1
  448. package/dist/core/middleware/built-in/csp.d.ts +0 -22
  449. package/dist/core/middleware/built-in/csp.js +0 -71
  450. package/dist/core/middleware/built-in/csp.js.map +0 -1
  451. package/dist/core/middleware/built-in/csrf.d.ts +0 -9
  452. package/dist/core/middleware/built-in/csrf.js +0 -63
  453. package/dist/core/middleware/built-in/csrf.js.map +0 -1
  454. package/dist/core/middleware/built-in/error-tracker.d.ts +0 -1
  455. package/dist/core/middleware/built-in/error-tracker.js +0 -19
  456. package/dist/core/middleware/built-in/error-tracker.js.map +0 -1
  457. package/dist/core/middleware/built-in/performance-monitor.d.ts +0 -1
  458. package/dist/core/middleware/built-in/performance-monitor.js +0 -22
  459. package/dist/core/middleware/built-in/performance-monitor.js.map +0 -1
  460. package/dist/core/middleware/built-in/rate-limit.d.ts +0 -6
  461. package/dist/core/middleware/built-in/rate-limit.js.map +0 -1
  462. package/dist/core/middleware/built-in/request-logger.d.ts +0 -1
  463. package/dist/core/middleware/built-in/request-logger.js +0 -16
  464. package/dist/core/middleware/built-in/request-logger.js.map +0 -1
  465. package/dist/core/middleware/built-in/session.d.ts +0 -41
  466. package/dist/core/middleware/built-in/session.js +0 -209
  467. package/dist/core/middleware/built-in/session.js.map +0 -1
  468. package/dist/core/middleware/built-in/sse.d.ts +0 -6
  469. package/dist/core/middleware/built-in/sse.js +0 -71
  470. package/dist/core/middleware/built-in/sse.js.map +0 -1
  471. package/dist/core/middleware/built-in/validation.d.ts +0 -2
  472. package/dist/core/middleware/built-in/validation.js.map +0 -1
  473. package/src/core/auth/README.md +0 -339
  474. package/src/core/auth/morojs-adapter.ts +0 -410
  475. package/src/core/config/file-loader.ts +0 -407
  476. package/src/core/config/index.ts +0 -60
  477. package/src/core/config/loader.ts +0 -633
  478. package/src/core/config/schema.ts +0 -150
  479. package/src/core/config/utils.ts +0 -251
  480. package/src/core/config/validation.ts +0 -140
  481. package/src/core/database/README.md +0 -228
  482. package/src/core/database/adapters/drizzle.ts +0 -403
  483. package/src/core/database/adapters/index.ts +0 -42
  484. package/src/core/database/adapters/mongodb.ts +0 -269
  485. package/src/core/database/adapters/mysql.ts +0 -207
  486. package/src/core/database/adapters/postgresql.ts +0 -201
  487. package/src/core/database/adapters/redis.ts +0 -326
  488. package/src/core/database/adapters/sqlite.ts +0 -247
  489. package/src/core/database/index.ts +0 -3
  490. package/src/core/docs/index.ts +0 -231
  491. package/src/core/docs/openapi-generator.ts +0 -576
  492. package/src/core/docs/schema-to-openapi.ts +0 -148
  493. package/src/core/docs/simple-docs.ts +0 -295
  494. package/src/core/docs/swagger-ui.ts +0 -351
  495. package/src/core/docs/zod-to-openapi.ts +0 -532
  496. package/src/core/events/event-bus.ts +0 -231
  497. package/src/core/events/index.ts +0 -12
  498. package/src/core/framework.ts +0 -636
  499. package/src/core/http/http-server.ts +0 -1787
  500. package/src/core/http/index.ts +0 -6
  501. package/src/core/http/router.ts +0 -141
  502. package/src/core/logger/filters.ts +0 -145
  503. package/src/core/logger/index.ts +0 -20
  504. package/src/core/logger/logger.ts +0 -814
  505. package/src/core/logger/outputs.ts +0 -134
  506. package/src/core/middleware/built-in/adapters/cache/file.ts +0 -104
  507. package/src/core/middleware/built-in/adapters/cache/index.ts +0 -23
  508. package/src/core/middleware/built-in/adapters/cache/memory.ts +0 -73
  509. package/src/core/middleware/built-in/adapters/cache/redis.ts +0 -100
  510. package/src/core/middleware/built-in/adapters/cdn/azure.ts +0 -60
  511. package/src/core/middleware/built-in/adapters/cdn/cloudflare.ts +0 -83
  512. package/src/core/middleware/built-in/adapters/cdn/cloudfront.ts +0 -83
  513. package/src/core/middleware/built-in/adapters/cdn/index.ts +0 -23
  514. package/src/core/middleware/built-in/adapters/index.ts +0 -7
  515. package/src/core/middleware/built-in/auth-helpers.ts +0 -401
  516. package/src/core/middleware/built-in/auth-providers.ts +0 -480
  517. package/src/core/middleware/built-in/auth.ts +0 -329
  518. package/src/core/middleware/built-in/cache.ts +0 -211
  519. package/src/core/middleware/built-in/cdn.ts +0 -124
  520. package/src/core/middleware/built-in/cookie.ts +0 -85
  521. package/src/core/middleware/built-in/cors.ts +0 -38
  522. package/src/core/middleware/built-in/csp.ts +0 -101
  523. package/src/core/middleware/built-in/csrf.ts +0 -82
  524. package/src/core/middleware/built-in/error-tracker.ts +0 -16
  525. package/src/core/middleware/built-in/index.ts +0 -79
  526. package/src/core/middleware/built-in/performance-monitor.ts +0 -25
  527. package/src/core/middleware/built-in/rate-limit.ts +0 -60
  528. package/src/core/middleware/built-in/request-logger.ts +0 -14
  529. package/src/core/middleware/built-in/session.ts +0 -288
  530. package/src/core/middleware/built-in/sse.ts +0 -86
  531. package/src/core/middleware/built-in/validation.ts +0 -33
  532. package/src/core/middleware/index.ts +0 -177
  533. package/src/core/modules/auto-discovery.ts +0 -263
  534. package/src/core/modules/index.ts +0 -3
  535. package/src/core/modules/modules.ts +0 -124
  536. package/src/core/networking/adapters/index.ts +0 -16
  537. package/src/core/networking/adapters/socketio-adapter.ts +0 -252
  538. package/src/core/networking/adapters/ws-adapter.ts +0 -430
  539. package/src/core/networking/index.ts +0 -3
  540. package/src/core/networking/service-discovery.ts +0 -304
  541. package/src/core/networking/websocket-adapter.ts +0 -217
  542. package/src/core/networking/websocket-manager.ts +0 -308
  543. package/src/core/routing/app-integration.ts +0 -216
  544. package/src/core/routing/index.ts +0 -488
  545. package/src/core/runtime/aws-lambda-adapter.ts +0 -147
  546. package/src/core/runtime/base-adapter.ts +0 -130
  547. package/src/core/runtime/cloudflare-workers-adapter.ts +0 -152
  548. package/src/core/runtime/index.ts +0 -62
  549. package/src/core/runtime/node-adapter.ts +0 -196
  550. package/src/core/runtime/vercel-edge-adapter.ts +0 -114
  551. package/src/core/utilities/circuit-breaker.ts +0 -46
  552. package/src/core/utilities/container.ts +0 -736
  553. package/src/core/utilities/hooks.ts +0 -142
  554. package/src/core/utilities/index.ts +0 -16
  555. package/src/core/validation/adapters.ts +0 -147
  556. package/src/core/validation/index.ts +0 -206
  557. package/src/core/validation/schema-interface.ts +0 -100
  558. package/src/index.ts +0 -226
  559. package/src/moro.ts +0 -1197
  560. package/src/types/auth.ts +0 -440
  561. package/src/types/cache.ts +0 -38
  562. package/src/types/cdn.ts +0 -22
  563. package/src/types/config.ts +0 -157
  564. package/src/types/core.ts +0 -56
  565. package/src/types/database.ts +0 -32
  566. package/src/types/discovery.ts +0 -7
  567. package/src/types/events.ts +0 -82
  568. package/src/types/hooks.ts +0 -47
  569. package/src/types/http.ts +0 -67
  570. package/src/types/logger.ts +0 -93
  571. package/src/types/module.ts +0 -87
  572. package/src/types/runtime.ts +0 -76
  573. package/src/types/session.ts +0 -89
  574. package/tsconfig.json +0 -21
  575. /package/dist/core/middleware/built-in/{auth-helpers.d.ts → auth/helpers.d.ts} +0 -0
@@ -1,329 +0,0 @@
1
- // Auth.js Authentication Middleware
2
-
3
- import { MiddlewareInterface, HookContext } from '../../../types/hooks';
4
- import { createFrameworkLogger } from '../../logger';
5
- import {
6
- AuthOptions,
7
- AuthProvider,
8
- AuthUser,
9
- AuthSession,
10
- AuthRequest,
11
- OAuthProvider,
12
- CredentialsProvider,
13
- EmailProvider,
14
- } from '../../../types/auth';
15
-
16
- const logger = createFrameworkLogger('AuthMiddleware');
17
-
18
- // Auth.js provider factory functions
19
- export const providers = {
20
- google: (options: { clientId: string; clientSecret: string }): AuthProvider => ({
21
- id: 'google',
22
- name: 'Google',
23
- type: 'oauth' as const,
24
- authorization: 'https://accounts.google.com/oauth/authorize',
25
- token: 'https://oauth2.googleapis.com/token',
26
- userinfo: 'https://www.googleapis.com/oauth2/v2/userinfo',
27
- ...options,
28
- }),
29
-
30
- github: (options: { clientId: string; clientSecret: string }): AuthProvider => ({
31
- id: 'github',
32
- name: 'GitHub',
33
- type: 'oauth' as const,
34
- authorization: 'https://github.com/login/oauth/authorize',
35
- token: 'https://github.com/login/oauth/access_token',
36
- userinfo: 'https://api.github.com/user',
37
- ...options,
38
- }),
39
-
40
- discord: (options: { clientId: string; clientSecret: string }): AuthProvider => ({
41
- id: 'discord',
42
- name: 'Discord',
43
- type: 'oauth' as const,
44
- authorization: 'https://discord.com/api/oauth2/authorize',
45
- token: 'https://discord.com/api/oauth2/token',
46
- userinfo: 'https://discord.com/api/users/@me',
47
- ...options,
48
- }),
49
-
50
- credentials: (options: {
51
- name?: string;
52
- credentials: Record<string, any>;
53
- authorize: (credentials: any) => Promise<any>;
54
- }): AuthProvider => ({
55
- id: 'credentials',
56
- name: options.name || 'Credentials',
57
- type: 'credentials' as const,
58
- ...options,
59
- }),
60
-
61
- email: (options: {
62
- server: string | { host: string; port: number; auth: any };
63
- from: string;
64
- }): AuthProvider => ({
65
- id: 'email',
66
- name: 'Email',
67
- type: 'email' as const,
68
- ...options,
69
- }),
70
- };
71
-
72
- // Auth.js middleware that integrates with MoroJS's hooks system
73
- export const auth = (options: AuthOptions): MiddlewareInterface => ({
74
- name: 'auth',
75
- version: '2.0.0',
76
- metadata: {
77
- name: 'auth',
78
- version: '2.0.0',
79
- description: 'Auth.js authentication middleware with OAuth, JWT, and session support',
80
- author: 'MoroJS Team',
81
- dependencies: [], // No dependencies - auth middleware is self-contained
82
- tags: ['authentication', 'oauth', 'jwt', 'security'],
83
- },
84
-
85
- install: async (hooks: any, middlewareOptions: Partial<AuthOptions> = {}) => {
86
- logger.debug('Installing Auth.js middleware', 'Installation', { options: middlewareOptions });
87
-
88
- // Merge configuration
89
- const config: AuthOptions = {
90
- secret: process.env.NEXTAUTH_SECRET || process.env.AUTH_SECRET || 'default-secret',
91
- session: {
92
- strategy: 'jwt',
93
- maxAge: 30 * 24 * 60 * 60, // 30 days
94
- updateAge: 24 * 60 * 60, // 24 hours
95
- },
96
- basePath: '/api/auth',
97
- trustHost: true,
98
- debug: process.env.NODE_ENV === 'development',
99
- ...options,
100
- ...middlewareOptions,
101
- };
102
-
103
- if (!config.providers || config.providers.length === 0) {
104
- throw new Error('At least one authentication provider must be configured');
105
- }
106
-
107
- // Initialize Auth.js
108
- let authInstance: any;
109
- try {
110
- authInstance = await initializeAuthJS(config);
111
- logger.info('Auth.js initialized successfully', 'Initialization');
112
- } catch (error) {
113
- logger.error('Failed to initialize Auth.js', 'InitializationError', { error });
114
- throw error;
115
- }
116
-
117
- // Register hooks for request processing
118
- hooks.before('request', async (context: HookContext) => {
119
- const req = context.request as any;
120
- const res = context.response as any;
121
-
122
- // Handle Auth.js API routes first
123
- if (req.url?.startsWith(config.basePath!)) {
124
- try {
125
- const response = await authInstance.handler(req, res);
126
- if (response) {
127
- // Auth.js handled the request, don't call next()
128
- return response;
129
- }
130
- } catch (error) {
131
- logger.error('Auth.js handler error', 'HandlerError', { error });
132
- throw error;
133
- }
134
- }
135
-
136
- // Add auth object to request for all other routes
137
-
138
- // Extend request with auth methods
139
- const authRequest: AuthRequest = {
140
- user: undefined,
141
- session: undefined,
142
- token: undefined,
143
- isAuthenticated: false,
144
- signIn: async (provider?: string, options?: any) => {
145
- return authInstance.signIn(provider, options);
146
- },
147
- signOut: async (options?: any) => {
148
- return authInstance.signOut(options);
149
- },
150
- getSession: async () => {
151
- return authInstance.getSession({ req });
152
- },
153
- getToken: async () => {
154
- return authInstance.verifyJWT(authRequest.token || '');
155
- },
156
- getCsrfToken: async () => {
157
- return authInstance.getCsrfToken();
158
- },
159
- getProviders: async () => {
160
- return config.providers.reduce((acc: Record<string, AuthProvider>, provider) => {
161
- acc[provider.id] = provider;
162
- return acc;
163
- }, {});
164
- },
165
- };
166
-
167
- // Get session/token from request
168
- let session: AuthSession | null = null;
169
- let token: string | null = null;
170
-
171
- // Try JWT token first (Authorization header)
172
- const authHeader = req.headers?.authorization;
173
- if (authHeader?.startsWith('Bearer ')) {
174
- token = authHeader.substring(7);
175
- try {
176
- const decoded = await authInstance.verifyJWT(token);
177
- if (decoded) {
178
- session = await authInstance.getSession({ req: { ...req, token } });
179
- }
180
- } catch (error) {
181
- logger.debug('Invalid JWT token', 'TokenValidation', { error });
182
- }
183
- }
184
-
185
- // Try session cookie if no valid token
186
- if (!session) {
187
- try {
188
- session = await authInstance.getSession({ req });
189
- } catch (error) {
190
- logger.debug('No valid session found', 'SessionValidation', { error });
191
- }
192
- }
193
-
194
- // Populate auth request
195
- if (session?.user) {
196
- authRequest.user = session.user;
197
- authRequest.session = session;
198
- authRequest.token = token || undefined;
199
- authRequest.isAuthenticated = true;
200
-
201
- logger.debug('User authenticated', 'Authentication', {
202
- userId: session.user.id,
203
- provider: session.user.provider || 'unknown',
204
- });
205
- }
206
-
207
- // Attach auth to request
208
- req.auth = authRequest;
209
- });
210
-
211
- // Response processing hook
212
- hooks.after('response', async (context: HookContext) => {
213
- const req = context.request as any;
214
-
215
- if (req.auth?.session) {
216
- // Update session activity if needed
217
- try {
218
- await authInstance.updateSession(req.auth.session);
219
- } catch (error) {
220
- logger.warn('Failed to update session', 'SessionUpdate', { error });
221
- }
222
- }
223
- });
224
-
225
- logger.info(
226
- `Auth.js middleware installed with ${config.providers.length} providers`,
227
- 'Installation'
228
- );
229
- },
230
- });
231
-
232
- // Mock Auth.js implementation (would be replaced with actual Auth.js)
233
- async function initializeAuthJS(config: AuthOptions): Promise<any> {
234
- return {
235
- handler: async (req: any, res: any) => {
236
- // Mock Auth.js request handler
237
- const path = req.url.replace(config.basePath!, '');
238
-
239
- if (path.startsWith('/signin')) {
240
- // Handle sign in
241
- return handleSignIn(req, res, config);
242
- } else if (path.startsWith('/signout')) {
243
- // Handle sign out
244
- return handleSignOut(req, res, config);
245
- } else if (path.startsWith('/callback')) {
246
- // Handle OAuth callback
247
- return handleCallback(req, res, config);
248
- } else if (path.startsWith('/session')) {
249
- // Handle session endpoint
250
- return handleSession(req, res, config);
251
- }
252
-
253
- return null;
254
- },
255
-
256
- getSession: async ({ req }: { req: any }) => {
257
- // Mock session retrieval
258
- const sessionId =
259
- req.cookies?.['next-auth.session-token'] ||
260
- req.cookies?.['__Secure-next-auth.session-token'];
261
-
262
- if (sessionId && req.session) {
263
- return {
264
- user: req.session.user || null,
265
- expires: new Date(Date.now() + config.session!.maxAge! * 1000).toISOString(),
266
- };
267
- }
268
-
269
- return null;
270
- },
271
-
272
- verifyJWT: async (token: string) => {
273
- // Mock JWT verification
274
- try {
275
- // In real implementation, use jose or jsonwebtoken
276
- const payload = JSON.parse(Buffer.from(token.split('.')[1], 'base64').toString());
277
- return payload;
278
- } catch {
279
- return null;
280
- }
281
- },
282
-
283
- signIn: async (provider?: string, options?: any) => {
284
- // Mock sign in
285
- return { url: `${config.basePath}/signin${provider ? `/${provider}` : ''}` };
286
- },
287
-
288
- signOut: async (options?: any) => {
289
- // Mock sign out
290
- return { url: `${config.basePath}/signout` };
291
- },
292
-
293
- updateSession: async (session: any) => {
294
- // Mock session update
295
- return session;
296
- },
297
-
298
- getCsrfToken: async () => {
299
- // Mock CSRF token generation
300
- const crypto = require('crypto');
301
- return crypto.randomBytes(32).toString('hex');
302
- },
303
- };
304
- }
305
-
306
- // Mock Auth.js handlers
307
- async function handleSignIn(req: any, res: any, config: AuthOptions) {
308
- // Implementation would depend on the provider
309
- logger.debug('Handling sign in request', 'SignIn');
310
- return null;
311
- }
312
-
313
- async function handleSignOut(req: any, res: any, config: AuthOptions) {
314
- // Clear session and redirect
315
- logger.debug('Handling sign out request', 'SignOut');
316
- return null;
317
- }
318
-
319
- async function handleCallback(req: any, res: any, config: AuthOptions) {
320
- // Handle OAuth callback
321
- logger.debug('Handling OAuth callback', 'Callback');
322
- return null;
323
- }
324
-
325
- async function handleSession(req: any, res: any, config: AuthOptions) {
326
- // Return current session
327
- logger.debug('Handling session request', 'Session');
328
- return null;
329
- }
@@ -1,211 +0,0 @@
1
- // Built-in Cache Middleware
2
- import { MiddlewareInterface, HookContext } from '../../../types/hooks';
3
- import { CacheAdapter, CacheOptions, CachedResponse } from '../../../types/cache';
4
- import { createFrameworkLogger } from '../../logger';
5
- import { createCacheAdapter } from './adapters/cache';
6
-
7
- const logger = createFrameworkLogger('CacheMiddleware');
8
-
9
- export const cache = (options: CacheOptions = {}): MiddlewareInterface => ({
10
- name: 'cache',
11
- version: '1.0.0',
12
- metadata: {
13
- name: 'cache',
14
- version: '1.0.0',
15
- description: 'Built-in cache middleware with pluggable storage adapters',
16
- author: 'MoroJS Team',
17
- },
18
-
19
- install: async (hooks: any, middlewareOptions: any = {}) => {
20
- logger.debug('Installing cache middleware', 'Installation');
21
-
22
- // Initialize storage adapter
23
- let storageAdapter: CacheAdapter;
24
-
25
- if (options.adapter && typeof options.adapter === 'object' && 'get' in options.adapter) {
26
- storageAdapter = options.adapter as CacheAdapter;
27
- } else if (typeof options.adapter === 'string') {
28
- storageAdapter = createCacheAdapter(options.adapter, options.adapterOptions);
29
- } else {
30
- // Default to memory cache
31
- storageAdapter = createCacheAdapter('memory');
32
- }
33
-
34
- // Cache key generation
35
- const generateCacheKey = (req: any, strategy?: any): string => {
36
- const prefix = options.keyPrefix || 'moro:cache:';
37
-
38
- if (strategy?.key) {
39
- return `${prefix}${strategy.key(req)}`;
40
- }
41
-
42
- // Default key: method + path + query
43
- const query = new URLSearchParams(req.query || {}).toString();
44
- return `${prefix}${req.method}:${req.path}${query ? `?${query}` : ''}`;
45
- };
46
-
47
- // Find matching strategy
48
- const findStrategy = (req: any): any | undefined => {
49
- if (!options.strategies) return undefined;
50
-
51
- for (const [pattern, strategy] of Object.entries(options.strategies)) {
52
- const regex = new RegExp(pattern);
53
- if (regex.test(req.path)) {
54
- return strategy;
55
- }
56
- }
57
-
58
- return undefined;
59
- };
60
-
61
- hooks.before('request', async (context: HookContext) => {
62
- const req = context.request as any;
63
- const res = context.response as any;
64
-
65
- // Only cache GET requests by default
66
- if (req.method !== 'GET') {
67
- return;
68
- }
69
-
70
- const strategy = findStrategy(req);
71
- const cacheKey = generateCacheKey(req, strategy);
72
-
73
- // Check if caching is disabled for this request
74
- if (strategy?.condition && !strategy.condition(req, res)) {
75
- return;
76
- }
77
-
78
- try {
79
- // Try to get from cache
80
- const cachedResponse = await storageAdapter.get(cacheKey);
81
-
82
- if (cachedResponse) {
83
- logger.debug(`Cache hit: ${cacheKey}`, 'CacheHit');
84
-
85
- // Set cache headers
86
- res.setHeader('X-Cache', 'HIT');
87
- res.setHeader('X-Cache-Key', cacheKey);
88
-
89
- // Set HTTP cache headers
90
- if (options.maxAge) {
91
- res.setHeader('Cache-Control', `public, max-age=${options.maxAge}`);
92
- }
93
-
94
- if (options.vary && options.vary.length > 0) {
95
- res.setHeader('Vary', options.vary.join(', '));
96
- }
97
-
98
- // Send cached response
99
- res.status(cachedResponse.status || 200);
100
-
101
- // Set cached headers
102
- if (cachedResponse.headers) {
103
- Object.entries(cachedResponse.headers).forEach(([key, value]) => {
104
- res.setHeader(key, value as string);
105
- });
106
- }
107
-
108
- if (cachedResponse.contentType) {
109
- res.setHeader('Content-Type', cachedResponse.contentType);
110
- }
111
-
112
- res.send(cachedResponse.body);
113
-
114
- // Mark as handled
115
- (context as any).handled = true;
116
- return;
117
- }
118
-
119
- logger.debug(`Cache miss: ${cacheKey}`, 'CacheMiss');
120
- res.setHeader('X-Cache', 'MISS');
121
- res.setHeader('X-Cache-Key', cacheKey);
122
- } catch (error) {
123
- logger.error('Cache retrieval error', 'CacheError', {
124
- error,
125
- key: cacheKey,
126
- });
127
- }
128
-
129
- // Store original response methods
130
- const originalJson = res.json;
131
- const originalSend = res.send;
132
- const originalEnd = res.end;
133
-
134
- // Wrap response methods to cache the response
135
- const cacheResponse = async (body: any, contentType?: string) => {
136
- try {
137
- const ttl = strategy?.ttl || options.defaultTtl || 3600;
138
-
139
- const cacheData: CachedResponse = {
140
- body,
141
- status: res.statusCode,
142
- headers: res.getHeaders ? res.getHeaders() : {},
143
- contentType: contentType || res.getHeader('Content-Type'),
144
- timestamp: Date.now(),
145
- };
146
-
147
- await storageAdapter.set(cacheKey, cacheData, ttl);
148
- logger.debug(`Response cached: ${cacheKey} (TTL: ${ttl}s)`, 'CacheSet');
149
- } catch (error) {
150
- logger.error('Cache storage error', 'CacheError', {
151
- error,
152
- key: cacheKey,
153
- });
154
- }
155
- };
156
-
157
- // Override response methods
158
- res.json = function (data: any) {
159
- cacheResponse(data, 'application/json');
160
- return originalJson.call(this, data);
161
- };
162
-
163
- res.send = function (data: any) {
164
- cacheResponse(data);
165
- return originalSend.call(this, data);
166
- };
167
-
168
- res.end = function (data?: any) {
169
- if (data) {
170
- cacheResponse(data);
171
- }
172
- return originalEnd.call(this, data);
173
- };
174
-
175
- // Add cache control methods
176
- res.cacheControl = (directives: any) => {
177
- const parts: string[] = [];
178
-
179
- if (directives.public) parts.push('public');
180
- if (directives.private) parts.push('private');
181
- if (directives.noCache) parts.push('no-cache');
182
- if (directives.noStore) parts.push('no-store');
183
- if (directives.mustRevalidate) parts.push('must-revalidate');
184
- if (directives.immutable) parts.push('immutable');
185
-
186
- if (typeof directives.maxAge === 'number') parts.push(`max-age=${directives.maxAge}`);
187
- if (typeof directives.staleWhileRevalidate === 'number') {
188
- parts.push(`stale-while-revalidate=${directives.staleWhileRevalidate}`);
189
- }
190
-
191
- res.setHeader('Cache-Control', parts.join(', '));
192
- return res;
193
- };
194
-
195
- // Add ETag generation
196
- if (options.etag !== false) {
197
- res.generateETag = (content: string | Buffer) => {
198
- const crypto = require('crypto');
199
- const hash = crypto.createHash('md5').update(content).digest('hex');
200
- const prefix = options.etag === 'weak' ? 'W/' : '';
201
- return `${prefix}"${hash}"`;
202
- };
203
- }
204
- });
205
-
206
- logger.info('Cache middleware installed', 'Installation', {
207
- adapter: typeof options.adapter === 'string' ? options.adapter : 'custom',
208
- strategies: Object.keys(options.strategies || {}).length,
209
- });
210
- },
211
- });
@@ -1,124 +0,0 @@
1
- // Built-in CDN Middleware
2
- import { MiddlewareInterface, HookContext } from '../../../types/hooks';
3
- import { CDNAdapter, CDNOptions } from '../../../types/cdn';
4
- import { createFrameworkLogger } from '../../logger';
5
- import { createCDNAdapter } from './adapters/cdn';
6
-
7
- const logger = createFrameworkLogger('CDNMiddleware');
8
-
9
- export const cdn = (options: CDNOptions = {}): MiddlewareInterface => ({
10
- name: 'cdn',
11
- version: '1.0.0',
12
- metadata: {
13
- name: 'cdn',
14
- version: '1.0.0',
15
- description: 'Built-in CDN middleware with pluggable provider adapters',
16
- author: 'MoroJS Team',
17
- },
18
-
19
- install: async (hooks: any, middlewareOptions: any = {}) => {
20
- logger.debug('Installing CDN middleware', 'Installation');
21
-
22
- // Initialize CDN adapter
23
- let cdnAdapter: CDNAdapter | null = null;
24
-
25
- if (options.adapter && typeof options.adapter === 'object' && 'purge' in options.adapter) {
26
- cdnAdapter = options.adapter as CDNAdapter;
27
- } else if (typeof options.adapter === 'string') {
28
- cdnAdapter = createCDNAdapter(options.adapter, options.adapterOptions);
29
- }
30
-
31
- if (!cdnAdapter) {
32
- logger.warn('No CDN adapter configured, CDN features will be disabled', 'Installation');
33
- return;
34
- }
35
-
36
- hooks.before('request', async (context: HookContext) => {
37
- const req = context.request as any;
38
- const res = context.response as any;
39
-
40
- // Set CDN headers on all responses
41
- if (cdnAdapter) {
42
- cdnAdapter.setHeaders(res);
43
- }
44
-
45
- // Add CDN methods to response
46
- res.purgeCDN = async (urls?: string[]) => {
47
- if (!cdnAdapter) {
48
- logger.warn('CDN purge requested but no adapter configured', 'CDNPurge');
49
- return;
50
- }
51
-
52
- try {
53
- const urlsToPurge = urls || [req.path];
54
- await cdnAdapter.purge(urlsToPurge);
55
- logger.info(`CDN cache purged: ${urlsToPurge.join(', ')}`, 'CDNPurge');
56
- } catch (error) {
57
- logger.error('CDN purge failed', 'CDNError', { error, urls });
58
- throw error;
59
- }
60
- };
61
-
62
- res.prefetchCDN = async (urls: string[]) => {
63
- if (!cdnAdapter || !cdnAdapter.prefetch) {
64
- logger.warn('CDN prefetch requested but not supported by adapter', 'CDNPrefetch');
65
- return;
66
- }
67
-
68
- try {
69
- await cdnAdapter.prefetch(urls);
70
- logger.info(`CDN prefetch requested: ${urls.join(', ')}`, 'CDNPrefetch');
71
- } catch (error) {
72
- logger.error('CDN prefetch failed', 'CDNError', { error, urls });
73
- }
74
- };
75
-
76
- res.getCDNStats = async () => {
77
- if (!cdnAdapter || !cdnAdapter.getStats) {
78
- logger.warn('CDN stats requested but not supported by adapter', 'CDNStats');
79
- return null;
80
- }
81
-
82
- try {
83
- const stats = await cdnAdapter.getStats();
84
- logger.debug('CDN stats retrieved', 'CDNStats');
85
- return stats;
86
- } catch (error) {
87
- logger.error('CDN stats retrieval failed', 'CDNError', { error });
88
- return null;
89
- }
90
- };
91
- });
92
-
93
- // Auto-invalidation on certain patterns
94
- if (options.autoInvalidate && options.invalidationPatterns) {
95
- hooks.after('response', async (context: HookContext) => {
96
- const req = context.request as any;
97
- const res = context.response as any;
98
-
99
- // Check if this request matches invalidation patterns
100
- const shouldInvalidate = options.invalidationPatterns?.some(pattern => {
101
- const regex = new RegExp(pattern);
102
- return regex.test(req.path);
103
- });
104
-
105
- if (shouldInvalidate && cdnAdapter) {
106
- try {
107
- await cdnAdapter.purge([req.path]);
108
- logger.debug(`Auto-invalidated CDN cache for: ${req.path}`, 'CDNAutoInvalidate');
109
- } catch (error) {
110
- logger.error('CDN auto-invalidation failed', 'CDNError', {
111
- error,
112
- path: req.path,
113
- });
114
- }
115
- }
116
- });
117
- }
118
-
119
- logger.info('CDN middleware installed', 'Installation', {
120
- adapter: typeof options.adapter === 'string' ? options.adapter : 'custom',
121
- autoInvalidate: !!options.autoInvalidate,
122
- });
123
- },
124
- });