@morojs/moro 1.5.17 → 1.6.0

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 (373) hide show
  1. package/README.md +70 -269
  2. package/dist/core/auth/morojs-adapter.js +5 -9
  3. package/dist/core/auth/morojs-adapter.js.map +1 -1
  4. package/dist/core/config/config-manager.d.ts +1 -1
  5. package/dist/core/config/config-manager.js +10 -20
  6. package/dist/core/config/config-manager.js.map +1 -1
  7. package/dist/core/config/config-sources.d.ts +2 -2
  8. package/dist/core/config/config-sources.js +17 -20
  9. package/dist/core/config/config-sources.js.map +1 -1
  10. package/dist/core/config/config-validator.d.ts +1 -1
  11. package/dist/core/config/config-validator.js +33 -10
  12. package/dist/core/config/config-validator.js.map +1 -1
  13. package/dist/core/config/file-loader.d.ts +1 -1
  14. package/dist/core/config/file-loader.js +19 -78
  15. package/dist/core/config/file-loader.js.map +1 -1
  16. package/dist/core/config/index.d.ts +8 -8
  17. package/dist/core/config/index.js +25 -51
  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 +11 -13
  21. package/dist/core/config/schema.js.map +1 -1
  22. package/dist/core/config/utils.d.ts +1 -1
  23. package/dist/core/config/utils.js +18 -32
  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 +3 -1
  32. package/dist/core/database/adapters/mongodb.js +23 -8
  33. package/dist/core/database/adapters/mongodb.js.map +1 -1
  34. package/dist/core/database/adapters/mysql.d.ts +3 -1
  35. package/dist/core/database/adapters/mysql.js +18 -9
  36. package/dist/core/database/adapters/mysql.js.map +1 -1
  37. package/dist/core/database/adapters/postgresql.d.ts +3 -1
  38. package/dist/core/database/adapters/postgresql.js +18 -8
  39. package/dist/core/database/adapters/postgresql.js.map +1 -1
  40. package/dist/core/database/adapters/redis.d.ts +3 -1
  41. package/dist/core/database/adapters/redis.js +34 -9
  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 +6 -10
  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 +14 -6
  73. package/dist/core/framework.js +150 -88
  74. package/dist/core/framework.js.map +1 -1
  75. package/dist/core/http/http-server.d.ts +1 -1
  76. package/dist/core/http/http-server.js +24 -62
  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/router.d.ts +1 -1
  82. package/dist/core/http/router.js +3 -7
  83. package/dist/core/http/router.js.map +1 -1
  84. package/dist/core/http/uws-http-server.d.ts +64 -0
  85. package/dist/core/http/uws-http-server.js +688 -0
  86. package/dist/core/http/uws-http-server.js.map +1 -0
  87. package/dist/core/logger/filters.d.ts +1 -1
  88. package/dist/core/logger/filters.js +8 -19
  89. package/dist/core/logger/filters.js.map +1 -1
  90. package/dist/core/logger/index.d.ts +3 -3
  91. package/dist/core/logger/index.js +2 -25
  92. package/dist/core/logger/index.js.map +1 -1
  93. package/dist/core/logger/logger.d.ts +1 -1
  94. package/dist/core/logger/logger.js +21 -23
  95. package/dist/core/logger/logger.js.map +1 -1
  96. package/dist/core/logger/outputs.d.ts +1 -1
  97. package/dist/core/logger/outputs.js +8 -15
  98. package/dist/core/logger/outputs.js.map +1 -1
  99. package/dist/core/middleware/built-in/adapters/cache/file.d.ts +1 -1
  100. package/dist/core/middleware/built-in/adapters/cache/file.js +10 -47
  101. package/dist/core/middleware/built-in/adapters/cache/file.js.map +1 -1
  102. package/dist/core/middleware/built-in/adapters/cache/index.d.ts +4 -4
  103. package/dist/core/middleware/built-in/adapters/cache/index.js +10 -17
  104. package/dist/core/middleware/built-in/adapters/cache/index.js.map +1 -1
  105. package/dist/core/middleware/built-in/adapters/cache/memory.d.ts +1 -1
  106. package/dist/core/middleware/built-in/adapters/cache/memory.js +3 -7
  107. package/dist/core/middleware/built-in/adapters/cache/memory.js.map +1 -1
  108. package/dist/core/middleware/built-in/adapters/cache/redis.d.ts +3 -1
  109. package/dist/core/middleware/built-in/adapters/cache/redis.js +11 -9
  110. package/dist/core/middleware/built-in/adapters/cache/redis.js.map +1 -1
  111. package/dist/core/middleware/built-in/adapters/cdn/azure.d.ts +1 -1
  112. package/dist/core/middleware/built-in/adapters/cdn/azure.js +3 -7
  113. package/dist/core/middleware/built-in/adapters/cdn/azure.js.map +1 -1
  114. package/dist/core/middleware/built-in/adapters/cdn/cloudflare.d.ts +1 -1
  115. package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js +3 -7
  116. package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js.map +1 -1
  117. package/dist/core/middleware/built-in/adapters/cdn/cloudfront.d.ts +3 -1
  118. package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js +12 -10
  119. package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js.map +1 -1
  120. package/dist/core/middleware/built-in/adapters/cdn/index.d.ts +4 -4
  121. package/dist/core/middleware/built-in/adapters/cdn/index.js +10 -17
  122. package/dist/core/middleware/built-in/adapters/cdn/index.js.map +1 -1
  123. package/dist/core/middleware/built-in/adapters/index.d.ts +4 -4
  124. package/dist/core/middleware/built-in/adapters/index.js +4 -23
  125. package/dist/core/middleware/built-in/adapters/index.js.map +1 -1
  126. package/dist/core/middleware/built-in/auth-helpers.js +11 -22
  127. package/dist/core/middleware/built-in/auth-helpers.js.map +1 -1
  128. package/dist/core/middleware/built-in/auth-providers.d.ts +1 -1
  129. package/dist/core/middleware/built-in/auth-providers.js +4 -9
  130. package/dist/core/middleware/built-in/auth-providers.js.map +1 -1
  131. package/dist/core/middleware/built-in/auth.d.ts +2 -2
  132. package/dist/core/middleware/built-in/auth.js +10 -14
  133. package/dist/core/middleware/built-in/auth.js.map +1 -1
  134. package/dist/core/middleware/built-in/cache.d.ts +2 -2
  135. package/dist/core/middleware/built-in/cache.js +8 -11
  136. package/dist/core/middleware/built-in/cache.js.map +1 -1
  137. package/dist/core/middleware/built-in/cdn.d.ts +2 -2
  138. package/dist/core/middleware/built-in/cdn.js +5 -9
  139. package/dist/core/middleware/built-in/cdn.js.map +1 -1
  140. package/dist/core/middleware/built-in/cookie.d.ts +1 -1
  141. package/dist/core/middleware/built-in/cookie.js +3 -7
  142. package/dist/core/middleware/built-in/cookie.js.map +1 -1
  143. package/dist/core/middleware/built-in/cors.d.ts +1 -1
  144. package/dist/core/middleware/built-in/cors.js +3 -7
  145. package/dist/core/middleware/built-in/cors.js.map +1 -1
  146. package/dist/core/middleware/built-in/csp.d.ts +1 -1
  147. package/dist/core/middleware/built-in/csp.js +5 -8
  148. package/dist/core/middleware/built-in/csp.js.map +1 -1
  149. package/dist/core/middleware/built-in/csrf.d.ts +1 -1
  150. package/dist/core/middleware/built-in/csrf.js +5 -8
  151. package/dist/core/middleware/built-in/csrf.js.map +1 -1
  152. package/dist/core/middleware/built-in/error-tracker.js +3 -7
  153. package/dist/core/middleware/built-in/error-tracker.js.map +1 -1
  154. package/dist/core/middleware/built-in/index.d.ts +28 -28
  155. package/dist/core/middleware/built-in/index.js +47 -82
  156. package/dist/core/middleware/built-in/index.js.map +1 -1
  157. package/dist/core/middleware/built-in/jwt-helpers.d.ts +1 -1
  158. package/dist/core/middleware/built-in/jwt-helpers.js +6 -9
  159. package/dist/core/middleware/built-in/jwt-helpers.js.map +1 -1
  160. package/dist/core/middleware/built-in/performance-monitor.js +3 -7
  161. package/dist/core/middleware/built-in/performance-monitor.js.map +1 -1
  162. package/dist/core/middleware/built-in/rate-limit.d.ts +1 -1
  163. package/dist/core/middleware/built-in/rate-limit.js +3 -7
  164. package/dist/core/middleware/built-in/rate-limit.js.map +1 -1
  165. package/dist/core/middleware/built-in/request-logger.js +3 -7
  166. package/dist/core/middleware/built-in/request-logger.js.map +1 -1
  167. package/dist/core/middleware/built-in/session.d.ts +2 -2
  168. package/dist/core/middleware/built-in/session.js +11 -15
  169. package/dist/core/middleware/built-in/session.js.map +1 -1
  170. package/dist/core/middleware/built-in/sse.d.ts +1 -1
  171. package/dist/core/middleware/built-in/sse.js +3 -7
  172. package/dist/core/middleware/built-in/sse.js.map +1 -1
  173. package/dist/core/middleware/built-in/validation.d.ts +1 -1
  174. package/dist/core/middleware/built-in/validation.js +3 -7
  175. package/dist/core/middleware/built-in/validation.js.map +1 -1
  176. package/dist/core/middleware/index.d.ts +4 -4
  177. package/dist/core/middleware/index.js +8 -28
  178. package/dist/core/middleware/index.js.map +1 -1
  179. package/dist/core/modules/auto-discovery.d.ts +3 -3
  180. package/dist/core/modules/auto-discovery.js +43 -81
  181. package/dist/core/modules/auto-discovery.js.map +1 -1
  182. package/dist/core/modules/index.d.ts +2 -2
  183. package/dist/core/modules/index.js +2 -9
  184. package/dist/core/modules/index.js.map +1 -1
  185. package/dist/core/modules/modules.d.ts +3 -3
  186. package/dist/core/modules/modules.js +11 -52
  187. package/dist/core/modules/modules.js.map +1 -1
  188. package/dist/core/networking/adapters/index.d.ts +4 -3
  189. package/dist/core/networking/adapters/index.js +3 -7
  190. package/dist/core/networking/adapters/index.js.map +1 -1
  191. package/dist/core/networking/adapters/socketio-adapter.d.ts +1 -1
  192. package/dist/core/networking/adapters/socketio-adapter.js +5 -40
  193. package/dist/core/networking/adapters/socketio-adapter.js.map +1 -1
  194. package/dist/core/networking/adapters/uws-adapter.d.ts +44 -0
  195. package/dist/core/networking/adapters/uws-adapter.js +513 -0
  196. package/dist/core/networking/adapters/uws-adapter.js.map +1 -0
  197. package/dist/core/networking/adapters/ws-adapter.d.ts +1 -1
  198. package/dist/core/networking/adapters/ws-adapter.js +7 -42
  199. package/dist/core/networking/adapters/ws-adapter.js.map +1 -1
  200. package/dist/core/networking/index.d.ts +3 -2
  201. package/dist/core/networking/index.js +2 -7
  202. package/dist/core/networking/index.js.map +1 -1
  203. package/dist/core/networking/service-discovery.js +3 -7
  204. package/dist/core/networking/service-discovery.js.map +1 -1
  205. package/dist/core/networking/websocket-adapter.js +1 -2
  206. package/dist/core/networking/websocket-adapter.js.map +1 -1
  207. package/dist/core/networking/websocket-manager.d.ts +3 -3
  208. package/dist/core/networking/websocket-manager.js +9 -11
  209. package/dist/core/networking/websocket-manager.js.map +1 -1
  210. package/dist/core/routing/app-integration.d.ts +2 -2
  211. package/dist/core/routing/app-integration.js +7 -12
  212. package/dist/core/routing/app-integration.js.map +1 -1
  213. package/dist/core/routing/index.d.ts +2 -2
  214. package/dist/core/routing/index.js +7 -14
  215. package/dist/core/routing/index.js.map +1 -1
  216. package/dist/core/runtime/aws-lambda-adapter.d.ts +3 -3
  217. package/dist/core/runtime/aws-lambda-adapter.js +2 -6
  218. package/dist/core/runtime/aws-lambda-adapter.js.map +1 -1
  219. package/dist/core/runtime/base-adapter.d.ts +2 -2
  220. package/dist/core/runtime/base-adapter.js +3 -7
  221. package/dist/core/runtime/base-adapter.js.map +1 -1
  222. package/dist/core/runtime/cloudflare-workers-adapter.d.ts +3 -3
  223. package/dist/core/runtime/cloudflare-workers-adapter.js +2 -6
  224. package/dist/core/runtime/cloudflare-workers-adapter.js.map +1 -1
  225. package/dist/core/runtime/index.d.ts +12 -12
  226. package/dist/core/runtime/index.js +22 -35
  227. package/dist/core/runtime/index.js.map +1 -1
  228. package/dist/core/runtime/node-adapter.d.ts +4 -4
  229. package/dist/core/runtime/node-adapter.js +6 -43
  230. package/dist/core/runtime/node-adapter.js.map +1 -1
  231. package/dist/core/runtime/vercel-edge-adapter.d.ts +3 -3
  232. package/dist/core/runtime/vercel-edge-adapter.js +2 -6
  233. package/dist/core/runtime/vercel-edge-adapter.js.map +1 -1
  234. package/dist/core/utilities/circuit-breaker.js +1 -5
  235. package/dist/core/utilities/circuit-breaker.js.map +1 -1
  236. package/dist/core/utilities/container.js +12 -22
  237. package/dist/core/utilities/container.js.map +1 -1
  238. package/dist/core/utilities/hooks.d.ts +2 -2
  239. package/dist/core/utilities/hooks.js +7 -12
  240. package/dist/core/utilities/hooks.js.map +1 -1
  241. package/dist/core/utilities/index.d.ts +5 -4
  242. package/dist/core/utilities/index.js +5 -19
  243. package/dist/core/utilities/index.js.map +1 -1
  244. package/dist/core/utilities/package-utils.d.ts +38 -0
  245. package/dist/core/utilities/package-utils.js +57 -0
  246. package/dist/core/utilities/package-utils.js.map +1 -0
  247. package/dist/core/validation/adapters.d.ts +1 -1
  248. package/dist/core/validation/adapters.js +15 -26
  249. package/dist/core/validation/adapters.js.map +1 -1
  250. package/dist/core/validation/index.d.ts +6 -4
  251. package/dist/core/validation/index.js +57 -28
  252. package/dist/core/validation/index.js.map +1 -1
  253. package/dist/core/validation/schema-interface.js +3 -9
  254. package/dist/core/validation/schema-interface.js.map +1 -1
  255. package/dist/index.d.ts +51 -52
  256. package/dist/index.js +23 -132
  257. package/dist/index.js.map +1 -1
  258. package/dist/moro.d.ts +13 -10
  259. package/dist/moro.js +132 -102
  260. package/dist/moro.js.map +1 -1
  261. package/dist/types/auth.js +3 -9
  262. package/dist/types/auth.js.map +1 -1
  263. package/dist/types/cache.js +1 -2
  264. package/dist/types/cdn.js +1 -2
  265. package/dist/types/config.d.ts +13 -1
  266. package/dist/types/config.js +1 -2
  267. package/dist/types/config.js.map +1 -1
  268. package/dist/types/core.d.ts +3 -3
  269. package/dist/types/core.js +1 -2
  270. package/dist/types/database.js +1 -2
  271. package/dist/types/discovery.js +1 -2
  272. package/dist/types/events.js +1 -2
  273. package/dist/types/hooks.d.ts +1 -1
  274. package/dist/types/hooks.js +1 -2
  275. package/dist/types/http.js +1 -2
  276. package/dist/types/logger.js +1 -2
  277. package/dist/types/module.js +1 -2
  278. package/dist/types/runtime.d.ts +1 -1
  279. package/dist/types/runtime.js +1 -2
  280. package/dist/types/session.js +1 -2
  281. package/jest.config.mjs +41 -0
  282. package/package.json +18 -51
  283. package/src/core/auth/morojs-adapter.ts +1 -1
  284. package/src/core/config/config-manager.ts +2 -2
  285. package/src/core/config/config-sources.ts +6 -6
  286. package/src/core/config/config-validator.ts +38 -3
  287. package/src/core/config/file-loader.ts +13 -40
  288. package/src/core/config/index.ts +15 -11
  289. package/src/core/config/schema.ts +3 -2
  290. package/src/core/config/utils.ts +3 -3
  291. package/src/core/database/adapters/drizzle.ts +18 -6
  292. package/src/core/database/adapters/index.ts +13 -13
  293. package/src/core/database/adapters/mongodb.ts +23 -3
  294. package/src/core/database/adapters/mysql.ts +18 -4
  295. package/src/core/database/adapters/postgresql.ts +18 -3
  296. package/src/core/database/adapters/redis.ts +34 -4
  297. package/src/core/database/adapters/sqlite.ts +19 -3
  298. package/src/core/database/index.ts +2 -2
  299. package/src/core/docs/index.ts +8 -8
  300. package/src/core/docs/openapi-generator.ts +4 -4
  301. package/src/core/docs/schema-to-openapi.ts +3 -6
  302. package/src/core/docs/simple-docs.ts +2 -2
  303. package/src/core/docs/swagger-ui.ts +19 -16
  304. package/src/core/docs/zod-to-openapi.ts +34 -34
  305. package/src/core/events/event-bus.ts +2 -2
  306. package/src/core/events/index.ts +2 -2
  307. package/src/core/framework.ts +148 -44
  308. package/src/core/http/http-server.ts +14 -9
  309. package/src/core/http/index.ts +4 -3
  310. package/src/core/http/router.ts +2 -2
  311. package/src/core/http/uws-http-server.ts +794 -0
  312. package/src/core/logger/filters.ts +1 -1
  313. package/src/core/logger/index.ts +3 -3
  314. package/src/core/logger/logger.ts +9 -1
  315. package/src/core/logger/outputs.ts +1 -1
  316. package/src/core/middleware/built-in/adapters/cache/file.ts +3 -3
  317. package/src/core/middleware/built-in/adapters/cache/index.ts +7 -7
  318. package/src/core/middleware/built-in/adapters/cache/memory.ts +2 -2
  319. package/src/core/middleware/built-in/adapters/cache/redis.ts +18 -4
  320. package/src/core/middleware/built-in/adapters/cdn/azure.ts +2 -2
  321. package/src/core/middleware/built-in/adapters/cdn/cloudflare.ts +2 -2
  322. package/src/core/middleware/built-in/adapters/cdn/cloudfront.ts +16 -5
  323. package/src/core/middleware/built-in/adapters/cdn/index.ts +7 -7
  324. package/src/core/middleware/built-in/adapters/index.ts +4 -4
  325. package/src/core/middleware/built-in/auth-helpers.ts +1 -1
  326. package/src/core/middleware/built-in/auth-providers.ts +1 -1
  327. package/src/core/middleware/built-in/auth.ts +6 -6
  328. package/src/core/middleware/built-in/cache.ts +5 -5
  329. package/src/core/middleware/built-in/cdn.ts +4 -4
  330. package/src/core/middleware/built-in/cookie.ts +2 -2
  331. package/src/core/middleware/built-in/cors.ts +2 -2
  332. package/src/core/middleware/built-in/csp.ts +3 -3
  333. package/src/core/middleware/built-in/csrf.ts +3 -3
  334. package/src/core/middleware/built-in/error-tracker.ts +1 -1
  335. package/src/core/middleware/built-in/index.ts +31 -31
  336. package/src/core/middleware/built-in/jwt-helpers.ts +6 -3
  337. package/src/core/middleware/built-in/performance-monitor.ts +1 -1
  338. package/src/core/middleware/built-in/rate-limit.ts +2 -2
  339. package/src/core/middleware/built-in/request-logger.ts +1 -1
  340. package/src/core/middleware/built-in/session.ts +7 -8
  341. package/src/core/middleware/built-in/sse.ts +2 -2
  342. package/src/core/middleware/built-in/validation.ts +2 -2
  343. package/src/core/middleware/index.ts +6 -6
  344. package/src/core/modules/auto-discovery.ts +4 -4
  345. package/src/core/modules/index.ts +2 -2
  346. package/src/core/modules/modules.ts +4 -4
  347. package/src/core/networking/adapters/index.ts +4 -3
  348. package/src/core/networking/adapters/socketio-adapter.ts +5 -3
  349. package/src/core/networking/adapters/uws-adapter.ts +619 -0
  350. package/src/core/networking/adapters/ws-adapter.ts +6 -4
  351. package/src/core/networking/index.ts +3 -2
  352. package/src/core/networking/service-discovery.ts +1 -1
  353. package/src/core/networking/websocket-manager.ts +7 -7
  354. package/src/core/routing/app-integration.ts +3 -3
  355. package/src/core/routing/index.ts +3 -3
  356. package/src/core/runtime/aws-lambda-adapter.ts +3 -3
  357. package/src/core/runtime/base-adapter.ts +2 -2
  358. package/src/core/runtime/cloudflare-workers-adapter.ts +3 -3
  359. package/src/core/runtime/index.ts +13 -13
  360. package/src/core/runtime/node-adapter.ts +4 -4
  361. package/src/core/runtime/vercel-edge-adapter.ts +3 -3
  362. package/src/core/utilities/hooks.ts +3 -3
  363. package/src/core/utilities/index.ts +5 -4
  364. package/src/core/utilities/package-utils.ts +59 -0
  365. package/src/core/validation/adapters.ts +1 -1
  366. package/src/core/validation/index.ts +68 -16
  367. package/src/index.ts +73 -66
  368. package/src/moro.ts +144 -51
  369. package/src/types/config.ts +13 -1
  370. package/src/types/core.ts +3 -3
  371. package/src/types/hooks.ts +1 -1
  372. package/src/types/runtime.ts +1 -1
  373. package/tsconfig.json +4 -2
@@ -1,5 +1,5 @@
1
1
  // Advanced Logger Filters
2
- import { LogEntry, LogFilter } from '../../types/logger';
2
+ import { LogEntry, LogFilter } from '../../types/logger.js';
3
3
 
4
4
  // Level-based filter
5
5
  export const levelFilter = (minLevel: string): LogFilter => ({
@@ -6,8 +6,8 @@ export {
6
6
  configureGlobalLogger,
7
7
  applyLoggingConfiguration,
8
8
  destroyGlobalLogger,
9
- } from './logger';
10
- export * from './filters';
9
+ } from './logger.js';
10
+ export * from './filters.js';
11
11
 
12
12
  export type {
13
13
  LogLevel,
@@ -18,4 +18,4 @@ export type {
18
18
  LogFilter,
19
19
  LogMetrics,
20
20
  ColorScheme,
21
- } from '../../types/logger';
21
+ } from '../../types/logger.js';
@@ -10,7 +10,7 @@ import {
10
10
  LogFilter,
11
11
  LogMetrics,
12
12
  ColorScheme,
13
- } from '../../types/logger';
13
+ } from '../../types/logger.js';
14
14
 
15
15
  export class MoroLogger implements Logger {
16
16
  private level: LogLevel = 'info';
@@ -343,6 +343,11 @@ export class MoroLogger implements Logger {
343
343
  context?: string,
344
344
  metadata?: Record<string, any>
345
345
  ): void {
346
+ // Prevent logging after destroy() is called (important for test cleanup)
347
+ if (this.isDestroyed) {
348
+ return;
349
+ }
350
+
346
351
  // Quick level check - use parent level if available (for child loggers)
347
352
  const effectiveLevel = this.parent ? this.parent.level : this.level;
348
353
  if (MoroLogger.LEVELS[level] < MoroLogger.LEVELS[effectiveLevel as LogLevel]) {
@@ -739,6 +744,9 @@ export class MoroLogger implements Logger {
739
744
  this.flushTimeout = setTimeout(() => {
740
745
  this.flushBuffer();
741
746
  }, this.flushInterval);
747
+
748
+ // Unref the timeout so it doesn't prevent process exit (important for tests)
749
+ this.flushTimeout.unref();
742
750
  }
743
751
 
744
752
  public flushBuffer(): void {
@@ -1,7 +1,7 @@
1
1
  // Advanced Logger Outputs
2
2
  import { writeFile, appendFile, mkdir } from 'fs/promises';
3
3
  import { join, dirname } from 'path';
4
- import { LogEntry, LogOutput } from '../../types/logger';
4
+ import { LogEntry, LogOutput } from '../../types/logger.js';
5
5
 
6
6
  // File output for persistent logging
7
7
  export class FileOutput implements LogOutput {
@@ -1,6 +1,7 @@
1
1
  // File System Cache Adapter
2
- import { CacheAdapter } from '../../../../../types/cache';
3
- import { createFrameworkLogger } from '../../../../logger';
2
+ import { CacheAdapter } from '../../../../../types/cache.js';
3
+ import { createFrameworkLogger } from '../../../../logger/index.js';
4
+ import crypto from 'crypto';
4
5
 
5
6
  const logger = createFrameworkLogger('FileCacheAdapter');
6
7
 
@@ -22,7 +23,6 @@ export class FileCacheAdapter implements CacheAdapter {
22
23
  }
23
24
 
24
25
  private getFilePath(key: string): string {
25
- const crypto = require('crypto');
26
26
  const hash = crypto.createHash('md5').update(key).digest('hex');
27
27
  return `${this.cacheDir}/${hash}.json`;
28
28
  }
@@ -1,12 +1,12 @@
1
1
  // Cache Adapters
2
- export { MemoryCacheAdapter } from './memory';
3
- export { RedisCacheAdapter } from './redis';
4
- export { FileCacheAdapter } from './file';
2
+ export { MemoryCacheAdapter } from './memory.js';
3
+ export { RedisCacheAdapter } from './redis.js';
4
+ export { FileCacheAdapter } from './file.js';
5
5
 
6
- import { MemoryCacheAdapter } from './memory';
7
- import { RedisCacheAdapter } from './redis';
8
- import { FileCacheAdapter } from './file';
9
- import { CacheAdapter } from '../../../../../types/cache';
6
+ import { MemoryCacheAdapter } from './memory.js';
7
+ import { RedisCacheAdapter } from './redis.js';
8
+ import { FileCacheAdapter } from './file.js';
9
+ import { CacheAdapter } from '../../../../../types/cache.js';
10
10
 
11
11
  // Adapter factory function for auto-loading
12
12
  export function createCacheAdapter(type: string, options: any = {}): CacheAdapter {
@@ -1,6 +1,6 @@
1
1
  // Memory Cache Adapter
2
- import { CacheAdapter } from '../../../../../types/cache';
3
- import { createFrameworkLogger } from '../../../../logger';
2
+ import { CacheAdapter } from '../../../../../types/cache.js';
3
+ import { createFrameworkLogger } from '../../../../logger/index.js';
4
4
 
5
5
  const logger = createFrameworkLogger('MemoryCacheAdapter');
6
6
 
@@ -1,6 +1,7 @@
1
1
  // Redis Cache Adapter
2
- import { CacheAdapter } from '../../../../../types/cache';
3
- import { createFrameworkLogger } from '../../../../logger';
2
+ import { CacheAdapter } from '../../../../../types/cache.js';
3
+ import { createFrameworkLogger } from '../../../../logger/index.js';
4
+ import { resolveUserPackage } from '../../../../utilities/package-utils.js';
4
5
 
5
6
  const logger = createFrameworkLogger('RedisCacheAdapter');
6
7
 
@@ -16,9 +17,22 @@ export class RedisCacheAdapter implements CacheAdapter {
16
17
  keyPrefix?: string;
17
18
  } = {}
18
19
  ) {
20
+ this.initPromise = this.initialize(options);
21
+ }
22
+
23
+ private initPromise: Promise<void>;
24
+
25
+ private async initialize(options: {
26
+ host?: string;
27
+ port?: number;
28
+ password?: string;
29
+ db?: number;
30
+ keyPrefix?: string;
31
+ }): Promise<void> {
19
32
  try {
20
- const redis = require('redis');
21
- this.client = redis.createClient({
33
+ const redisPath = resolveUserPackage('redis');
34
+ const redis = await import(redisPath);
35
+ this.client = redis.default.createClient({
22
36
  host: options.host || 'localhost',
23
37
  port: options.port || 6379,
24
38
  password: options.password,
@@ -1,6 +1,6 @@
1
1
  // Azure CDN Adapter
2
- import { CDNAdapter } from '../../../../../types/cdn';
3
- import { createFrameworkLogger } from '../../../../logger';
2
+ import { CDNAdapter } from '../../../../../types/cdn.js';
3
+ import { createFrameworkLogger } from '../../../../logger/index.js';
4
4
 
5
5
  const logger = createFrameworkLogger('AzureCDNAdapter');
6
6
 
@@ -1,6 +1,6 @@
1
1
  // Cloudflare CDN Adapter
2
- import { CDNAdapter } from '../../../../../types/cdn';
3
- import { createFrameworkLogger } from '../../../../logger';
2
+ import { CDNAdapter } from '../../../../../types/cdn.js';
3
+ import { createFrameworkLogger } from '../../../../logger/index.js';
4
4
 
5
5
  const logger = createFrameworkLogger('CloudflareCDNAdapter');
6
6
 
@@ -1,6 +1,7 @@
1
1
  // AWS CloudFront CDN Adapter
2
- import { CDNAdapter } from '../../../../../types/cdn';
3
- import { createFrameworkLogger } from '../../../../logger';
2
+ import { CDNAdapter } from '../../../../../types/cdn.js';
3
+ import { createFrameworkLogger } from '../../../../logger/index.js';
4
+ import { resolveUserPackage } from '../../../../utilities/package-utils.js';
4
5
 
5
6
  const logger = createFrameworkLogger('CloudFrontCDNAdapter');
6
7
 
@@ -15,16 +16,26 @@ export class CloudFrontCDNAdapter implements CDNAdapter {
15
16
  distributionId: string;
16
17
  }) {
17
18
  this.distributionId = options.distributionId;
19
+ this.initPromise = this.initialize(options);
20
+ }
21
+
22
+ private initPromise: Promise<void>;
18
23
 
24
+ private async initialize(options: {
25
+ accessKeyId: string;
26
+ secretAccessKey: string;
27
+ region: string;
28
+ }): Promise<void> {
19
29
  try {
20
- const AWS = require('aws-sdk');
21
- AWS.config.update({
30
+ const awsPath = resolveUserPackage('aws-sdk');
31
+ const AWS = await import(awsPath);
32
+ AWS.default.config.update({
22
33
  accessKeyId: options.accessKeyId,
23
34
  secretAccessKey: options.secretAccessKey,
24
35
  region: options.region,
25
36
  });
26
37
 
27
- this.cloudfront = new AWS.CloudFront();
38
+ this.cloudfront = new AWS.default.CloudFront();
28
39
  logger.info('CloudFront CDN adapter initialized', 'CloudFront');
29
40
  } catch (error) {
30
41
  logger.error('AWS SDK not available', 'CloudFront');
@@ -1,12 +1,12 @@
1
1
  // CDN Adapters
2
- export { CloudflareCDNAdapter } from './cloudflare';
3
- export { CloudFrontCDNAdapter } from './cloudfront';
4
- export { AzureCDNAdapter } from './azure';
2
+ export { CloudflareCDNAdapter } from './cloudflare.js';
3
+ export { CloudFrontCDNAdapter } from './cloudfront.js';
4
+ export { AzureCDNAdapter } from './azure.js';
5
5
 
6
- import { CloudflareCDNAdapter } from './cloudflare';
7
- import { CloudFrontCDNAdapter } from './cloudfront';
8
- import { AzureCDNAdapter } from './azure';
9
- import { CDNAdapter } from '../../../../../types/cdn';
6
+ import { CloudflareCDNAdapter } from './cloudflare.js';
7
+ import { CloudFrontCDNAdapter } from './cloudfront.js';
8
+ import { AzureCDNAdapter } from './azure.js';
9
+ import { CDNAdapter } from '../../../../../types/cdn.js';
10
10
 
11
11
  // Adapter factory function for auto-loading
12
12
  export function createCDNAdapter(type: string, options: any = {}): CDNAdapter {
@@ -1,7 +1,7 @@
1
1
  // Adapters Index
2
- export * from './cache';
3
- export * from './cdn';
2
+ export * from './cache/index.js';
3
+ export * from './cdn/index.js';
4
4
 
5
5
  // Re-export factory functions for convenience
6
- export { createCacheAdapter } from './cache';
7
- export { createCDNAdapter } from './cdn';
6
+ export { createCacheAdapter } from './cache/index.js';
7
+ export { createCDNAdapter } from './cdn/index.js';
@@ -1,5 +1,5 @@
1
1
  // Auth Helper Middleware and Utilities
2
- import { AuthRequest } from '../../../types/auth';
2
+ import { AuthRequest } from '../../../types/auth.js';
3
3
 
4
4
  export interface AuthGuardOptions {
5
5
  redirectTo?: string;
@@ -1,5 +1,5 @@
1
1
  // Extended Auth.js Provider Configurations
2
- import { AuthProvider } from '../../../types/auth';
2
+ import { AuthProvider } from '../../../types/auth.js';
3
3
 
4
4
  /**
5
5
  * Popular OAuth Providers for Auth.js
@@ -1,7 +1,8 @@
1
1
  // Auth.js Authentication Middleware
2
2
 
3
- import { MiddlewareInterface, HookContext } from '../../../types/hooks';
4
- import { createFrameworkLogger } from '../../logger';
3
+ import crypto from 'crypto';
4
+ import { MiddlewareInterface, HookContext } from '../../../types/hooks.js';
5
+ import { createFrameworkLogger } from '../../logger/index.js';
5
6
  import {
6
7
  AuthOptions,
7
8
  AuthProvider,
@@ -11,8 +12,8 @@ import {
11
12
  OAuthProvider,
12
13
  CredentialsProvider,
13
14
  EmailProvider,
14
- } from '../../../types/auth';
15
- import { safeVerifyJWT, createAuthErrorResponse } from './jwt-helpers';
15
+ } from '../../../types/auth.js';
16
+ import { safeVerifyJWT, createAuthErrorResponse } from './jwt-helpers.js';
16
17
 
17
18
  const logger = createFrameworkLogger('AuthMiddleware');
18
19
 
@@ -334,7 +335,7 @@ async function initializeAuthJS(config: AuthOptions): Promise<any> {
334
335
  const secret = process.env.JWT_SECRET || config.jwt?.secret || config.secret || '';
335
336
 
336
337
  // Use the safe JWT verification function
337
- const result = safeVerifyJWT(token, secret);
338
+ const result = await safeVerifyJWT(token, secret);
338
339
 
339
340
  if (!result.success) {
340
341
  // Create a custom error that includes the structured error information
@@ -378,7 +379,6 @@ async function initializeAuthJS(config: AuthOptions): Promise<any> {
378
379
 
379
380
  getCsrfToken: async () => {
380
381
  // Basic CSRF token generation
381
- const crypto = require('crypto');
382
382
  return crypto.randomBytes(32).toString('hex');
383
383
  },
384
384
  };
@@ -1,8 +1,9 @@
1
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';
2
+ import crypto from 'crypto';
3
+ import { MiddlewareInterface, HookContext } from '../../../types/hooks.js';
4
+ import { CacheAdapter, CacheOptions, CachedResponse } from '../../../types/cache.js';
5
+ import { createFrameworkLogger } from '../../logger/index.js';
6
+ import { createCacheAdapter } from './adapters/cache/index.js';
6
7
 
7
8
  const logger = createFrameworkLogger('CacheMiddleware');
8
9
 
@@ -197,7 +198,6 @@ export const cache = (options: CacheOptions = {}): MiddlewareInterface => ({
197
198
  // Add ETag generation
198
199
  if (options.etag !== false) {
199
200
  res.generateETag = (content: string | Buffer) => {
200
- const crypto = require('crypto');
201
201
  const hash = crypto.createHash('md5').update(content).digest('hex');
202
202
  const prefix = options.etag === 'weak' ? 'W/' : '';
203
203
  return `${prefix}"${hash}"`;
@@ -1,8 +1,8 @@
1
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';
2
+ import { MiddlewareInterface, HookContext } from '../../../types/hooks.js';
3
+ import { CDNAdapter, CDNOptions } from '../../../types/cdn.js';
4
+ import { createFrameworkLogger } from '../../logger/index.js';
5
+ import { createCDNAdapter } from './adapters/cdn/index.js';
6
6
 
7
7
  const logger = createFrameworkLogger('CDNMiddleware');
8
8
 
@@ -1,6 +1,6 @@
1
1
  // Cookie Middleware
2
- import { MiddlewareInterface, HookContext } from '../../../types/hooks';
3
- import { createFrameworkLogger } from '../../logger';
2
+ import { MiddlewareInterface, HookContext } from '../../../types/hooks.js';
3
+ import { createFrameworkLogger } from '../../logger/index.js';
4
4
 
5
5
  const logger = createFrameworkLogger('CookieMiddleware');
6
6
 
@@ -1,6 +1,6 @@
1
1
  // CORS Middleware
2
- import { MiddlewareInterface, HookContext } from '../../../types/hooks';
3
- import { createFrameworkLogger } from '../../logger';
2
+ import { MiddlewareInterface, HookContext } from '../../../types/hooks.js';
3
+ import { createFrameworkLogger } from '../../logger/index.js';
4
4
 
5
5
  const logger = createFrameworkLogger('CorsMiddleware');
6
6
 
@@ -1,6 +1,7 @@
1
1
  // Content Security Policy Middleware
2
- import { MiddlewareInterface, HookContext } from '../../../types/hooks';
3
- import { createFrameworkLogger } from '../../logger';
2
+ import crypto from 'crypto';
3
+ import { MiddlewareInterface, HookContext } from '../../../types/hooks.js';
4
+ import { createFrameworkLogger } from '../../logger/index.js';
4
5
 
5
6
  const logger = createFrameworkLogger('CSPMiddleware');
6
7
 
@@ -58,7 +59,6 @@ export const csp = (
58
59
  // Generate nonce if requested
59
60
  let nonce: string | undefined;
60
61
  if (options.nonce) {
61
- const crypto = require('crypto');
62
62
  nonce = crypto.randomBytes(16).toString('base64');
63
63
  req.cspNonce = nonce;
64
64
  }
@@ -1,6 +1,7 @@
1
1
  // CSRF Protection Middleware
2
- import { MiddlewareInterface, HookContext } from '../../../types/hooks';
3
- import { createFrameworkLogger } from '../../logger';
2
+ import crypto from 'crypto';
3
+ import { MiddlewareInterface, HookContext } from '../../../types/hooks.js';
4
+ import { createFrameworkLogger } from '../../logger/index.js';
4
5
 
5
6
  const logger = createFrameworkLogger('CSRFMiddleware');
6
7
 
@@ -33,7 +34,6 @@ export const csrf = (
33
34
  const ignoreMethods = options.ignoreMethods || ['GET', 'HEAD', 'OPTIONS'];
34
35
 
35
36
  const generateToken = () => {
36
- const crypto = require('crypto');
37
37
  return crypto.randomBytes(tokenLength).toString('hex');
38
38
  };
39
39
 
@@ -1,5 +1,5 @@
1
1
  // Error tracking middleware
2
- import { createFrameworkLogger } from '../../logger';
2
+ import { createFrameworkLogger } from '../../logger/index.js';
3
3
 
4
4
  const logger = createFrameworkLogger('ErrorTracker');
5
5
 
@@ -1,22 +1,22 @@
1
1
  // Built-in Middleware Exports
2
- export { auth } from './auth';
3
- export { rateLimit } from './rate-limit';
4
- export { cors } from './cors';
5
- export { validation } from './validation';
6
- export { requestLogger } from './request-logger';
7
- export { performanceMonitor } from './performance-monitor';
8
- export { errorTracker } from './error-tracker';
2
+ export { auth } from './auth.js';
3
+ export { rateLimit } from './rate-limit.js';
4
+ export { cors } from './cors.js';
5
+ export { validation } from './validation.js';
6
+ export { requestLogger } from './request-logger.js';
7
+ export { performanceMonitor } from './performance-monitor.js';
8
+ export { errorTracker } from './error-tracker.js';
9
9
 
10
10
  // Advanced Security & Performance Middleware
11
- export { cookie } from './cookie';
12
- export { csrf } from './csrf';
13
- export { csp } from './csp';
14
- export { sse } from './sse';
15
- export { session } from './session';
11
+ export { cookie } from './cookie.js';
12
+ export { csrf } from './csrf.js';
13
+ export { csp } from './csp.js';
14
+ export { sse } from './sse.js';
15
+ export { session } from './session.js';
16
16
 
17
17
  // Clean Architecture Middleware
18
- export { cache } from './cache';
19
- export { cdn } from './cdn';
18
+ export { cache } from './cache.js';
19
+ export { cdn } from './cdn.js';
20
20
 
21
21
  // Auth Helpers and Extended Providers
22
22
  export {
@@ -31,7 +31,7 @@ export {
31
31
  authUtils,
32
32
  authResponses,
33
33
  sessionHelpers,
34
- } from './auth-helpers';
34
+ } from './auth-helpers.js';
35
35
 
36
36
  // JWT Utilities for Custom Middleware
37
37
  export {
@@ -39,30 +39,30 @@ export {
39
39
  extractJWTFromHeader,
40
40
  createAuthErrorResponse,
41
41
  type JWTVerificationResult,
42
- } from './jwt-helpers';
42
+ } from './jwt-helpers.js';
43
43
 
44
44
  export {
45
45
  extendedProviders,
46
46
  enterpriseProviders,
47
47
  createCustomOAuthProvider,
48
48
  createCustomOIDCProvider,
49
- } from './auth-providers';
49
+ } from './auth-providers.js';
50
50
 
51
51
  // Import for collections
52
- import { auth } from './auth';
53
- import { rateLimit } from './rate-limit';
54
- import { cors } from './cors';
55
- import { validation } from './validation';
56
- import { requestLogger } from './request-logger';
57
- import { performanceMonitor } from './performance-monitor';
58
- import { errorTracker } from './error-tracker';
59
- import { cookie } from './cookie';
60
- import { csrf } from './csrf';
61
- import { csp } from './csp';
62
- import { sse } from './sse';
63
- import { session } from './session';
64
- import { cache } from './cache';
65
- import { cdn } from './cdn';
52
+ import { auth } from './auth.js';
53
+ import { rateLimit } from './rate-limit.js';
54
+ import { cors } from './cors.js';
55
+ import { validation } from './validation.js';
56
+ import { requestLogger } from './request-logger.js';
57
+ import { performanceMonitor } from './performance-monitor.js';
58
+ import { errorTracker } from './error-tracker.js';
59
+ import { cookie } from './cookie.js';
60
+ import { csrf } from './csrf.js';
61
+ import { csp } from './csp.js';
62
+ import { sse } from './sse.js';
63
+ import { session } from './session.js';
64
+ import { cache } from './cache.js';
65
+ import { cdn } from './cdn.js';
66
66
 
67
67
  export const builtInMiddleware = {
68
68
  auth,
@@ -5,6 +5,8 @@
5
5
  * in their custom authentication middleware.
6
6
  */
7
7
 
8
+ import { resolveUserPackage } from '../../utilities/package-utils.js';
9
+
8
10
  export interface JWTVerificationResult {
9
11
  success: boolean;
10
12
  payload?: any;
@@ -24,15 +26,16 @@ export interface JWTVerificationResult {
24
26
  * @param options - Additional JWT verification options
25
27
  * @returns JWTVerificationResult with success status and payload or error details
26
28
  */
27
- export function safeVerifyJWT(
29
+ export async function safeVerifyJWT(
28
30
  token: string,
29
31
  secret: string,
30
32
  options: any = {}
31
- ): JWTVerificationResult {
33
+ ): Promise<JWTVerificationResult> {
32
34
  // Check if jsonwebtoken is available
33
35
  let jwt: any;
34
36
  try {
35
- jwt = require('jsonwebtoken');
37
+ const jwtPath = resolveUserPackage('jsonwebtoken');
38
+ jwt = await import(jwtPath);
36
39
  } catch (error) {
37
40
  return {
38
41
  success: false,
@@ -1,5 +1,5 @@
1
1
  // Performance monitoring middleware
2
- import { createFrameworkLogger } from '../../logger';
2
+ import { createFrameworkLogger } from '../../logger/index.js';
3
3
 
4
4
  const logger = createFrameworkLogger('PerformanceMonitor');
5
5
 
@@ -1,6 +1,6 @@
1
1
  // Rate Limiting Middleware
2
- import { MiddlewareInterface, HookContext } from '../../../types/hooks';
3
- import { createFrameworkLogger } from '../../logger';
2
+ import { MiddlewareInterface, HookContext } from '../../../types/hooks.js';
3
+ import { createFrameworkLogger } from '../../logger/index.js';
4
4
 
5
5
  const logger = createFrameworkLogger('RateLimitMiddleware');
6
6
 
@@ -1,5 +1,5 @@
1
1
  // Simple request logging middleware
2
- import { createFrameworkLogger } from '../../logger';
2
+ import { createFrameworkLogger } from '../../logger/index.js';
3
3
 
4
4
  const logger = createFrameworkLogger('RequestLogger');
5
5
 
@@ -1,10 +1,11 @@
1
1
  // Session Middleware
2
- import { MiddlewareInterface, HookContext } from '../../../types/hooks';
3
- import { createFrameworkLogger } from '../../logger';
4
- import { CacheAdapter } from '../../../types/cache';
5
- import { MemoryCacheAdapter } from './adapters/cache/memory';
6
- import { RedisCacheAdapter } from './adapters/cache/redis';
7
- import { FileCacheAdapter } from './adapters/cache/file';
2
+ import crypto from 'crypto';
3
+ import { MiddlewareInterface, HookContext } from '../../../types/hooks.js';
4
+ import { createFrameworkLogger } from '../../logger/index.js';
5
+ import { CacheAdapter } from '../../../types/cache.js';
6
+ import { MemoryCacheAdapter } from './adapters/cache/memory.js';
7
+ import { RedisCacheAdapter } from './adapters/cache/redis.js';
8
+ import { FileCacheAdapter } from './adapters/cache/file.js';
8
9
 
9
10
  const logger = createFrameworkLogger('SessionMiddleware');
10
11
 
@@ -157,7 +158,6 @@ class Session {
157
158
  return this.options.genid();
158
159
  }
159
160
 
160
- const crypto = require('crypto');
161
161
  return crypto.randomBytes(24).toString('hex');
162
162
  }
163
163
 
@@ -229,7 +229,6 @@ export const session = (options: SessionOptions = {}): MiddlewareInterface => ({
229
229
  if (config.genid) {
230
230
  return config.genid();
231
231
  }
232
- const crypto = require('crypto');
233
232
  return crypto.randomBytes(24).toString('hex');
234
233
  };
235
234
 
@@ -1,6 +1,6 @@
1
1
  // Server-Sent Events Middleware
2
- import { MiddlewareInterface, HookContext } from '../../../types/hooks';
3
- import { createFrameworkLogger } from '../../logger';
2
+ import { MiddlewareInterface, HookContext } from '../../../types/hooks.js';
3
+ import { createFrameworkLogger } from '../../logger/index.js';
4
4
 
5
5
  const logger = createFrameworkLogger('SSEMiddleware');
6
6
 
@@ -1,6 +1,6 @@
1
1
  // Validation Middleware
2
- import { MiddlewareInterface, HookContext } from '../../../types/hooks';
3
- import { createFrameworkLogger } from '../../logger';
2
+ import { MiddlewareInterface, HookContext } from '../../../types/hooks.js';
3
+ import { createFrameworkLogger } from '../../logger/index.js';
4
4
 
5
5
  const logger = createFrameworkLogger('ValidationMiddleware');
6
6
 
@@ -1,17 +1,17 @@
1
1
  // Middleware System for Moro
2
2
  import { EventEmitter } from 'events';
3
- import { HookManager } from '../utilities';
3
+ import { HookManager } from '../utilities/index.js';
4
4
  import {
5
5
  MiddlewareMetadata,
6
6
  MiddlewareContext,
7
7
  MiddlewareInterface,
8
8
  SimpleMiddlewareFunction,
9
9
  MoroMiddleware,
10
- } from '../../types/hooks';
11
- import { createFrameworkLogger } from '../logger';
10
+ } from '../../types/hooks.js';
11
+ import { createFrameworkLogger } from '../logger/index.js';
12
12
 
13
13
  // Export types needed by built-in middleware
14
- export type { MiddlewareInterface, MoroMiddleware } from '../../types/hooks';
14
+ export type { MiddlewareInterface, MoroMiddleware } from '../../types/hooks.js';
15
15
 
16
16
  export class MiddlewareManager extends EventEmitter {
17
17
  private middleware = new Map<string, MiddlewareInterface>();
@@ -173,5 +173,5 @@ export class MiddlewareManager extends EventEmitter {
173
173
  }
174
174
 
175
175
  // Built-in middleware exports
176
- export { builtInMiddleware, simpleMiddleware } from './built-in';
177
- export * from './built-in';
176
+ export { builtInMiddleware, simpleMiddleware } from './built-in/index.js';
177
+ export * from './built-in/index.js';