@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,209 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.session = void 0;
4
- const logger_1 = require("../../logger");
5
- const memory_1 = require("./adapters/cache/memory");
6
- const redis_1 = require("./adapters/cache/redis");
7
- const file_1 = require("./adapters/cache/file");
8
- const logger = (0, logger_1.createFrameworkLogger)('SessionMiddleware');
9
- class Session {
10
- data = {};
11
- id;
12
- store;
13
- options;
14
- isNew = false;
15
- isModified = false;
16
- constructor(id, store, options, isNew = false) {
17
- this.id = id;
18
- this.store = store;
19
- this.options = options;
20
- this.isNew = isNew;
21
- }
22
- // Proxy to make session.prop = value work
23
- static create(id, store, options, data = {}, isNew = false) {
24
- const session = new Session(id, store, options, isNew);
25
- session.data = data;
26
- return new Proxy(session, {
27
- get(target, prop) {
28
- if (prop in target) {
29
- return target[prop];
30
- }
31
- return target.data[prop];
32
- },
33
- set(target, prop, value) {
34
- if (prop in target) {
35
- target[prop] = value;
36
- }
37
- else {
38
- target.data[prop] = value;
39
- target.isModified = true;
40
- }
41
- return true;
42
- },
43
- has(target, prop) {
44
- return prop in target || prop in target.data;
45
- },
46
- deleteProperty(target, prop) {
47
- if (prop in target.data) {
48
- delete target.data[prop];
49
- target.isModified = true;
50
- return true;
51
- }
52
- return false;
53
- },
54
- });
55
- }
56
- async save() {
57
- if (this.isModified || this.isNew || this.options.resave) {
58
- const ttl = this.options.cookie?.maxAge
59
- ? Math.floor(this.options.cookie.maxAge / 1000)
60
- : 86400; // 24h default
61
- await this.store.set(this.id, this.data, ttl);
62
- this.isModified = false;
63
- this.isNew = false;
64
- logger.debug(`Session saved: ${this.id}`, 'SessionSave');
65
- }
66
- }
67
- async destroy() {
68
- await this.store.del(this.id);
69
- this.data = {};
70
- this.isModified = false;
71
- logger.debug(`Session destroyed: ${this.id}`, 'SessionDestroy');
72
- }
73
- async regenerate() {
74
- await this.destroy();
75
- this.id = this.generateId();
76
- this.isNew = true;
77
- this.isModified = true;
78
- logger.debug(`Session regenerated: ${this.id}`, 'SessionRegenerate');
79
- return this.id;
80
- }
81
- async touch() {
82
- if (this.options.rolling) {
83
- this.isModified = true;
84
- await this.save();
85
- }
86
- }
87
- generateId() {
88
- if (this.options.genid) {
89
- return this.options.genid();
90
- }
91
- const crypto = require('crypto');
92
- return crypto.randomBytes(24).toString('hex');
93
- }
94
- get sessionID() {
95
- return this.id;
96
- }
97
- }
98
- const session = (options = {}) => ({
99
- name: 'session',
100
- version: '1.0.0',
101
- metadata: {
102
- name: 'session',
103
- version: '1.0.0',
104
- description: 'Session management middleware with multiple store adapters',
105
- author: 'MoroJS Team',
106
- },
107
- install: async (hooks, middlewareOptions = {}) => {
108
- logger.debug('Installing session middleware', 'Installation');
109
- // Merge options
110
- const config = {
111
- store: 'memory',
112
- name: 'connect.sid',
113
- secret: 'moro-session-secret',
114
- rolling: false,
115
- resave: false,
116
- saveUninitialized: false,
117
- cookie: {
118
- maxAge: 24 * 60 * 60 * 1000, // 24 hours
119
- httpOnly: true,
120
- secure: false,
121
- sameSite: 'lax',
122
- path: '/',
123
- },
124
- unset: 'keep',
125
- ...options,
126
- ...middlewareOptions,
127
- };
128
- // Initialize store
129
- let store;
130
- if (typeof config.store === 'string') {
131
- switch (config.store) {
132
- case 'redis':
133
- store = new redis_1.RedisCacheAdapter({
134
- keyPrefix: 'sess:',
135
- ...config.storeOptions,
136
- });
137
- break;
138
- case 'file':
139
- store = new file_1.FileCacheAdapter({
140
- cacheDir: config.storeOptions?.path || './sessions',
141
- });
142
- break;
143
- case 'memory':
144
- default:
145
- store = new memory_1.MemoryCacheAdapter();
146
- break;
147
- }
148
- }
149
- else {
150
- store = config.store;
151
- }
152
- // Generate session ID
153
- const generateSessionId = () => {
154
- if (config.genid) {
155
- return config.genid();
156
- }
157
- const crypto = require('crypto');
158
- return crypto.randomBytes(24).toString('hex');
159
- };
160
- hooks.before('request', async (context) => {
161
- const req = context.request;
162
- const res = context.response;
163
- // Get session ID from cookie
164
- let sessionId = req.cookies?.[config.name];
165
- let sessionData = {};
166
- let isNew = false;
167
- if (sessionId) {
168
- try {
169
- sessionData = (await store.get(sessionId)) || {};
170
- logger.debug(`Session loaded: ${sessionId}`, 'SessionLoad');
171
- }
172
- catch (error) {
173
- logger.warn(`Failed to load session: ${sessionId}`, 'SessionLoadError', { error });
174
- sessionId = generateSessionId();
175
- isNew = true;
176
- }
177
- }
178
- else {
179
- sessionId = generateSessionId();
180
- isNew = true;
181
- }
182
- // Create session object
183
- req.session = Session.create(sessionId, store, config, sessionData, isNew);
184
- // Set session cookie
185
- if (isNew || config.rolling) {
186
- res.cookie(config.name, sessionId, {
187
- ...config.cookie,
188
- secure: config.cookie?.secure || (config.proxy && req.headers['x-forwarded-proto'] === 'https'),
189
- });
190
- }
191
- });
192
- hooks.after('response', async (context) => {
193
- const req = context.request;
194
- if (req.session) {
195
- try {
196
- if (config.saveUninitialized || !req.session.isNew || req.session.isModified) {
197
- await req.session.save();
198
- }
199
- }
200
- catch (error) {
201
- logger.error('Failed to save session', 'SessionSaveError', { error });
202
- }
203
- }
204
- });
205
- logger.info(`Session middleware installed with ${config.store} store`, 'Installation');
206
- },
207
- });
208
- exports.session = session;
209
- //# sourceMappingURL=session.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../../src/core/middleware/built-in/session.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { MiddlewareInterface } from '../../../types/hooks';
2
- export declare const sse: (options?: {
3
- heartbeat?: number;
4
- retry?: number;
5
- cors?: boolean;
6
- }) => MiddlewareInterface;
@@ -1,71 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sse = void 0;
4
- const logger_1 = require("../../logger");
5
- const logger = (0, logger_1.createFrameworkLogger)('SSEMiddleware');
6
- const sse = (options = {}) => ({
7
- name: 'sse',
8
- version: '1.0.0',
9
- metadata: {
10
- name: 'sse',
11
- version: '1.0.0',
12
- description: 'Server-Sent Events middleware with heartbeat and retry support',
13
- author: 'MoroJS Team',
14
- },
15
- install: async (hooks, middlewareOptions = {}) => {
16
- logger.debug('Installing SSE middleware', 'Installation');
17
- hooks.before('request', async (context) => {
18
- const req = context.request;
19
- const res = context.response;
20
- // Only handle SSE requests
21
- if (!req.headers.accept?.includes('text/event-stream')) {
22
- return;
23
- }
24
- logger.debug('Setting up SSE connection', 'SSESetup');
25
- // Set SSE headers
26
- res.writeHead(200, {
27
- 'Content-Type': 'text/event-stream',
28
- 'Cache-Control': 'no-cache',
29
- Connection: 'keep-alive',
30
- 'Access-Control-Allow-Origin': options.cors ? '*' : undefined,
31
- 'Access-Control-Allow-Headers': options.cors ? 'Cache-Control' : undefined,
32
- });
33
- // Add SSE methods to response
34
- res.sendEvent = (data, event, id) => {
35
- if (id)
36
- res.write(`id: ${id}\n`);
37
- if (event)
38
- res.write(`event: ${event}\n`);
39
- res.write(`data: ${typeof data === 'string' ? data : JSON.stringify(data)}\n\n`);
40
- };
41
- res.sendComment = (comment) => {
42
- res.write(`: ${comment}\n\n`);
43
- };
44
- res.sendRetry = (ms) => {
45
- res.write(`retry: ${ms}\n\n`);
46
- };
47
- // Set up heartbeat if configured
48
- let heartbeatInterval = null;
49
- if (options.heartbeat) {
50
- heartbeatInterval = setInterval(() => {
51
- res.sendComment('heartbeat');
52
- }, options.heartbeat);
53
- }
54
- // Set retry if configured
55
- if (options.retry) {
56
- res.sendRetry(options.retry);
57
- }
58
- // Clean up on close
59
- req.on('close', () => {
60
- if (heartbeatInterval) {
61
- clearInterval(heartbeatInterval);
62
- }
63
- logger.debug('SSE connection closed', 'SSECleanup');
64
- });
65
- // Mark that this middleware handled the request
66
- context.handled = true;
67
- });
68
- },
69
- });
70
- exports.sse = sse;
71
- //# sourceMappingURL=sse.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sse.js","sourceRoot":"","sources":["../../../../src/core/middleware/built-in/sse.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import { MiddlewareInterface } from '../../../types/hooks';
2
- export declare const validation: () => MiddlewareInterface;
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../../src/core/middleware/built-in/validation.ts"],"names":[],"mappings":";;;AAEA,yCAAqD;AAErD,MAAM,MAAM,GAAG,IAAA,8BAAqB,EAAC,sBAAsB,CAAC,CAAC;AAEtD,MAAM,UAAU,GAAG,GAAwB,EAAE,CAAC,CAAC;IACpD,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,0DAA0D;QACvE,MAAM,EAAE,aAAa;KACtB;IAED,OAAO,EAAE,KAAK,EAAE,KAAU,EAAE,UAAe,EAAE,EAAE,EAAE;QAC/C,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,cAAc,CAAC,CAAC;QAEjE,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,OAAoB,EAAE,EAAE;YACrD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAc,CAAC;YAEvC,gCAAgC;YAChC,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBACpD,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBAC5D,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,aAAa,CAAC,CAAC;oBACtE,4CAA4C;gBAC9C,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AA1BU,QAAA,UAAU,cA0BpB"}
@@ -1,339 +0,0 @@
1
- # @auth/morojs - Auth.js Adapter for MoroJS
2
-
3
- A native Auth.js adapter for the [MoroJS](https://github.com/MoroJS/moro) framework, providing seamless authentication integration without external dependencies.
4
-
5
- ## Overview
6
-
7
- This adapter allows Auth.js to work natively with MoroJS applications, providing:
8
-
9
- - ✅ **Native MoroJS Integration** - Built specifically for MoroJS middleware patterns
10
- - ✅ **Zero External Dependencies** - No reliance on Express adapters
11
- - ✅ **Full Auth.js Compatibility** - Supports all Auth.js features and providers
12
- - ✅ **Custom Transformers** - MoroJS-specific request/response handling
13
- - ✅ **TypeScript First** - Complete type safety throughout
14
-
15
- ## Installation
16
-
17
- ```bash
18
- npm install @auth/core @auth/morojs
19
- # or
20
- pnpm add @auth/core @auth/morojs
21
- ```
22
-
23
- ## Basic Usage
24
-
25
- ```typescript
26
- import { Moro } from '@morojs/moro';
27
- import { createAuthMiddleware } from '@auth/morojs';
28
- import GitHub from '@auth/core/providers/github';
29
-
30
- const app = new Moro();
31
-
32
- app.use(
33
- createAuthMiddleware({
34
- providers: [
35
- GitHub({
36
- clientId: process.env.GITHUB_CLIENT_ID,
37
- clientSecret: process.env.GITHUB_CLIENT_SECRET,
38
- }),
39
- ],
40
- secret: process.env.AUTH_SECRET,
41
- })
42
- );
43
-
44
- app.get('/protected', (req, res) => {
45
- if (!req.auth.isAuthenticated) {
46
- return res.status(401).json({ error: 'Unauthorized' });
47
- }
48
-
49
- res.json({ user: req.auth.user });
50
- });
51
-
52
- app.listen(3000);
53
- ```
54
-
55
- ## Configuration
56
-
57
- ### Basic Configuration
58
-
59
- ```typescript
60
- import { createAuthMiddleware } from '@auth/morojs';
61
-
62
- app.use(
63
- createAuthMiddleware({
64
- providers: [
65
- // Your Auth.js providers
66
- ],
67
- secret: process.env.AUTH_SECRET,
68
- basePath: '/api/auth', // Default auth routes path
69
-
70
- // Standard Auth.js options
71
- session: {
72
- strategy: 'jwt',
73
- maxAge: 30 * 24 * 60 * 60, // 30 days
74
- },
75
-
76
- callbacks: {
77
- // Auth.js callbacks
78
- },
79
-
80
- events: {
81
- // Auth.js events
82
- },
83
- })
84
- );
85
- ```
86
-
87
- ### MoroJS-Specific Options
88
-
89
- ```typescript
90
- app.use(
91
- createAuthMiddleware({
92
- // ... standard Auth.js config
93
-
94
- morojs: {
95
- debug: true, // Enable MoroJS-specific logging
96
- transformers: {
97
- // Custom request transformer
98
- request: req => {
99
- // Transform MoroJS request for Auth.js
100
- return req;
101
- },
102
-
103
- // Custom response transformer
104
- response: res => {
105
- // Transform Auth.js response for MoroJS
106
- return res;
107
- },
108
- },
109
- },
110
- })
111
- );
112
- ```
113
-
114
- ## Request Object Extensions
115
-
116
- The adapter automatically adds an `auth` object to the MoroJS request:
117
-
118
- ```typescript
119
- app.get('/api/user', (req, res) => {
120
- // Auth status
121
- const isAuthenticated = req.auth.isAuthenticated;
122
- const user = req.auth.user;
123
- const session = req.auth.session;
124
-
125
- // Helper methods
126
- const currentSession = await req.auth.getSession();
127
- const currentUser = req.auth.getUser();
128
-
129
- // Navigation helpers
130
- const signInUrl = req.auth.signIn('github', { callbackUrl: '/dashboard' });
131
- const signOutUrl = req.auth.signOut({ callbackUrl: '/' });
132
- });
133
- ```
134
-
135
- ## Auth Routes
136
-
137
- The adapter automatically handles standard Auth.js routes:
138
-
139
- - `GET /api/auth/signin` - Sign in page
140
- - `POST /api/auth/signin/:provider` - Sign in with provider
141
- - `GET /api/auth/signout` - Sign out page
142
- - `POST /api/auth/signout` - Sign out action
143
- - `GET /api/auth/session` - Get current session
144
- - `GET /api/auth/providers` - List available providers
145
- - `GET /api/auth/csrf` - Get CSRF token
146
- - `GET /api/auth/callback/:provider` - OAuth callbacks
147
-
148
- ## Advanced Usage
149
-
150
- ### Custom Provider Configuration
151
-
152
- ```typescript
153
- import { createAuthMiddleware } from '@auth/morojs';
154
-
155
- app.use(
156
- createAuthMiddleware({
157
- providers: [
158
- {
159
- id: 'custom-oauth',
160
- name: 'Custom OAuth',
161
- type: 'oauth',
162
- authorization: 'https://provider.com/oauth/authorize',
163
- token: 'https://provider.com/oauth/token',
164
- userinfo: 'https://provider.com/oauth/userinfo',
165
- clientId: process.env.CUSTOM_CLIENT_ID,
166
- clientSecret: process.env.CUSTOM_CLIENT_SECRET,
167
- },
168
- ],
169
- secret: process.env.AUTH_SECRET,
170
- })
171
- );
172
- ```
173
-
174
- ### Session Management
175
-
176
- ```typescript
177
- app.get('/dashboard', async (req, res) => {
178
- // Get current session
179
- const session = await req.auth.getSession();
180
-
181
- if (!session) {
182
- const signInUrl = req.auth.signIn();
183
- return res.redirect(signInUrl.url);
184
- }
185
-
186
- res.json({
187
- user: session.user,
188
- expires: session.expires,
189
- });
190
- });
191
- ```
192
-
193
- ### Error Handling
194
-
195
- ```typescript
196
- app.use((error, req, res, next) => {
197
- if (error.message?.includes('auth')) {
198
- console.error('Auth error:', error);
199
- return res.status(401).json({
200
- error: 'Authentication error',
201
- signInUrl: '/api/auth/signin',
202
- });
203
- }
204
-
205
- next(error);
206
- });
207
- ```
208
-
209
- ## TypeScript Support
210
-
211
- The adapter provides complete TypeScript support:
212
-
213
- ```typescript
214
- import type { MoroJSAuthConfig, MoroJSRequest, MoroJSResponse } from '@auth/morojs';
215
-
216
- // Extend MoroJS request type
217
- declare module '@morojs/moro' {
218
- interface HttpRequest {
219
- auth: {
220
- isAuthenticated: boolean;
221
- user: User | null;
222
- session: Session | null;
223
- getSession(): Promise<Session | null>;
224
- getUser(): User | null;
225
- signIn(provider?: string, options?: any): { url: string };
226
- signOut(options?: any): { url: string };
227
- };
228
- }
229
- }
230
- ```
231
-
232
- ## Environment Variables
233
-
234
- ```bash
235
- # Required
236
- AUTH_SECRET=your-auth-secret-here
237
-
238
- # OAuth Providers (as needed)
239
- GITHUB_CLIENT_ID=your-github-client-id
240
- GITHUB_CLIENT_SECRET=your-github-client-secret
241
-
242
- GOOGLE_CLIENT_ID=your-google-client-id
243
- GOOGLE_CLIENT_SECRET=your-google-client-secret
244
- ```
245
-
246
- ## Migration from Other Frameworks
247
-
248
- ### From Express + NextAuth.js
249
-
250
- ```typescript
251
- // Before (Express + NextAuth.js)
252
- import NextAuth from 'next-auth';
253
- import { expressWrapper } from 'some-wrapper';
254
-
255
- app.use('/api/auth/*', expressWrapper(NextAuth(config)));
256
-
257
- // After (MoroJS + @auth/morojs)
258
- import { createAuthMiddleware } from '@auth/morojs';
259
-
260
- app.use(createAuthMiddleware(config));
261
- ```
262
-
263
- ### From Other Auth Solutions
264
-
265
- The adapter maintains Auth.js compatibility, so existing Auth.js configurations work with minimal changes.
266
-
267
- ## Examples
268
-
269
- See the [examples directory](./examples/) for complete working examples:
270
-
271
- - [Basic OAuth](./examples/basic-oauth.ts)
272
- - [Multiple Providers](./examples/multiple-providers.ts)
273
- - [Custom Callbacks](./examples/custom-callbacks.ts)
274
- - [Database Sessions](./examples/database-sessions.ts)
275
-
276
- ## Contributing to Auth.js
277
-
278
- This adapter is designed to be contributed to the Auth.js project as an official framework adapter.
279
-
280
- ### Contribution Steps
281
-
282
- 1. **Test thoroughly** with various Auth.js features
283
- 2. **Add comprehensive tests** covering all functionality
284
- 3. **Update documentation** to match Auth.js standards
285
- 4. **Submit PR** to [nextauthjs/next-auth](https://github.com/nextauthjs/next-auth)
286
- 5. **Follow Auth.js** contribution guidelines
287
-
288
- ### Package Structure for Auth.js
289
-
290
- When contributing to Auth.js, the package structure should be:
291
-
292
- ```
293
- packages/adapter-morojs/
294
- ├── src/
295
- │ ├── index.ts # Main adapter export
296
- │ ├── types.ts # TypeScript definitions
297
- │ └── utils.ts # Helper utilities
298
- ├── tests/
299
- │ ├── basic.test.ts # Basic functionality tests
300
- │ ├── providers.test.ts # Provider-specific tests
301
- │ └── edge-cases.test.ts # Edge case handling
302
- ├── package.json # Package configuration
303
- ├── README.md # This documentation
304
- └── tsconfig.json # TypeScript configuration
305
- ```
306
-
307
- ## Comparison with Other Adapters
308
-
309
- | Feature | @auth/express | @auth/morojs | Benefits |
310
- | ---------------------- | ---------------- | -------------- | ------------------ |
311
- | **Framework** | Express | MoroJS | Native integration |
312
- | **Dependencies** | Express required | Zero external | Lighter bundle |
313
- | **Request/Response** | Express objects | MoroJS objects | Better performance |
314
- | **Middleware Pattern** | Express style | MoroJS hooks | More flexible |
315
- | **TypeScript** | Good | Excellent | Better DX |
316
-
317
- ## Performance
318
-
319
- The MoroJS adapter provides excellent performance characteristics:
320
-
321
- - **Zero Express overhead** - Direct MoroJS integration
322
- - **Efficient request handling** - Native object transformation
323
- - **Optimized middleware** - Uses MoroJS hook system
324
- - **Minimal memory footprint** - No unnecessary abstractions
325
-
326
- ## License
327
-
328
- MIT - See [LICENSE](./LICENSE) file for details.
329
-
330
- ## Links
331
-
332
- - [Auth.js Documentation](https://authjs.dev)
333
- - [MoroJS Framework](https://github.com/MoroJS/moro)
334
- - [Auth.js GitHub](https://github.com/nextauthjs/next-auth)
335
- - [Report Issues](https://github.com/nextauthjs/next-auth/issues)
336
-
337
- ---
338
-
339
- **Ready to contribute this adapter to Auth.js and get MoroJS recognized as an official framework! 🚀**