@morojs/moro 1.0.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 (345) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +233 -0
  3. package/dist/core/config/index.d.ts +19 -0
  4. package/dist/core/config/index.js +59 -0
  5. package/dist/core/config/index.js.map +1 -0
  6. package/dist/core/config/loader.d.ts +6 -0
  7. package/dist/core/config/loader.js +288 -0
  8. package/dist/core/config/loader.js.map +1 -0
  9. package/dist/core/config/schema.d.ts +335 -0
  10. package/dist/core/config/schema.js +286 -0
  11. package/dist/core/config/schema.js.map +1 -0
  12. package/dist/core/config/utils.d.ts +50 -0
  13. package/dist/core/config/utils.js +185 -0
  14. package/dist/core/config/utils.js.map +1 -0
  15. package/dist/core/database/adapters/drizzle.d.ts +29 -0
  16. package/dist/core/database/adapters/drizzle.js +366 -0
  17. package/dist/core/database/adapters/drizzle.js.map +1 -0
  18. package/dist/core/database/adapters/index.d.ts +8 -0
  19. package/dist/core/database/adapters/index.js +48 -0
  20. package/dist/core/database/adapters/index.js.map +1 -0
  21. package/dist/core/database/adapters/mongodb.d.ts +35 -0
  22. package/dist/core/database/adapters/mongodb.js +215 -0
  23. package/dist/core/database/adapters/mongodb.js.map +1 -0
  24. package/dist/core/database/adapters/mysql.d.ts +23 -0
  25. package/dist/core/database/adapters/mysql.js +149 -0
  26. package/dist/core/database/adapters/mysql.js.map +1 -0
  27. package/dist/core/database/adapters/postgresql.d.ts +24 -0
  28. package/dist/core/database/adapters/postgresql.js +160 -0
  29. package/dist/core/database/adapters/postgresql.js.map +1 -0
  30. package/dist/core/database/adapters/redis.d.ts +50 -0
  31. package/dist/core/database/adapters/redis.js +266 -0
  32. package/dist/core/database/adapters/redis.js.map +1 -0
  33. package/dist/core/database/adapters/sqlite.d.ts +23 -0
  34. package/dist/core/database/adapters/sqlite.js +194 -0
  35. package/dist/core/database/adapters/sqlite.js.map +1 -0
  36. package/dist/core/database/index.d.ts +2 -0
  37. package/dist/core/database/index.js +20 -0
  38. package/dist/core/database/index.js.map +1 -0
  39. package/dist/core/docs/index.d.ts +63 -0
  40. package/dist/core/docs/index.js +170 -0
  41. package/dist/core/docs/index.js.map +1 -0
  42. package/dist/core/docs/openapi-generator.d.ts +124 -0
  43. package/dist/core/docs/openapi-generator.js +413 -0
  44. package/dist/core/docs/openapi-generator.js.map +1 -0
  45. package/dist/core/docs/simple-docs.d.ts +21 -0
  46. package/dist/core/docs/simple-docs.js +268 -0
  47. package/dist/core/docs/simple-docs.js.map +1 -0
  48. package/dist/core/docs/swagger-ui.d.ts +28 -0
  49. package/dist/core/docs/swagger-ui.js +317 -0
  50. package/dist/core/docs/swagger-ui.js.map +1 -0
  51. package/dist/core/docs/zod-to-openapi.d.ts +29 -0
  52. package/dist/core/docs/zod-to-openapi.js +414 -0
  53. package/dist/core/docs/zod-to-openapi.js.map +1 -0
  54. package/dist/core/events/event-bus.d.ts +27 -0
  55. package/dist/core/events/event-bus.js +193 -0
  56. package/dist/core/events/event-bus.js.map +1 -0
  57. package/dist/core/events/index.d.ts +2 -0
  58. package/dist/core/events/index.js +7 -0
  59. package/dist/core/events/index.js.map +1 -0
  60. package/dist/core/framework.d.ts +57 -0
  61. package/dist/core/framework.js +432 -0
  62. package/dist/core/framework.js.map +1 -0
  63. package/dist/core/http/http-server.d.ts +114 -0
  64. package/dist/core/http/http-server.js +1154 -0
  65. package/dist/core/http/http-server.js.map +1 -0
  66. package/dist/core/http/index.d.ts +3 -0
  67. package/dist/core/http/index.js +10 -0
  68. package/dist/core/http/index.js.map +1 -0
  69. package/dist/core/http/router.d.ts +14 -0
  70. package/dist/core/http/router.js +113 -0
  71. package/dist/core/http/router.js.map +1 -0
  72. package/dist/core/logger/filters.d.ts +9 -0
  73. package/dist/core/logger/filters.js +134 -0
  74. package/dist/core/logger/filters.js.map +1 -0
  75. package/dist/core/logger/index.d.ts +3 -0
  76. package/dist/core/logger/index.js +26 -0
  77. package/dist/core/logger/index.js.map +1 -0
  78. package/dist/core/logger/logger.d.ts +49 -0
  79. package/dist/core/logger/logger.js +332 -0
  80. package/dist/core/logger/logger.js.map +1 -0
  81. package/dist/core/logger/outputs.d.ts +42 -0
  82. package/dist/core/logger/outputs.js +110 -0
  83. package/dist/core/logger/outputs.js.map +1 -0
  84. package/dist/core/middleware/built-in/adapters/cache/file.d.ts +15 -0
  85. package/dist/core/middleware/built-in/adapters/cache/file.js +128 -0
  86. package/dist/core/middleware/built-in/adapters/cache/file.js.map +1 -0
  87. package/dist/core/middleware/built-in/adapters/cache/index.d.ts +5 -0
  88. package/dist/core/middleware/built-in/adapters/cache/index.js +28 -0
  89. package/dist/core/middleware/built-in/adapters/cache/index.js.map +1 -0
  90. package/dist/core/middleware/built-in/adapters/cache/memory.d.ts +11 -0
  91. package/dist/core/middleware/built-in/adapters/cache/memory.js +65 -0
  92. package/dist/core/middleware/built-in/adapters/cache/memory.js.map +1 -0
  93. package/dist/core/middleware/built-in/adapters/cache/redis.d.ts +17 -0
  94. package/dist/core/middleware/built-in/adapters/cache/redis.js +91 -0
  95. package/dist/core/middleware/built-in/adapters/cache/redis.js.map +1 -0
  96. package/dist/core/middleware/built-in/adapters/cdn/azure.d.ts +21 -0
  97. package/dist/core/middleware/built-in/adapters/cdn/azure.js +40 -0
  98. package/dist/core/middleware/built-in/adapters/cdn/azure.js.map +1 -0
  99. package/dist/core/middleware/built-in/adapters/cdn/cloudflare.d.ts +14 -0
  100. package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js +77 -0
  101. package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js.map +1 -0
  102. package/dist/core/middleware/built-in/adapters/cdn/cloudfront.d.ts +15 -0
  103. package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js +73 -0
  104. package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js.map +1 -0
  105. package/dist/core/middleware/built-in/adapters/cdn/index.d.ts +5 -0
  106. package/dist/core/middleware/built-in/adapters/cdn/index.js +28 -0
  107. package/dist/core/middleware/built-in/adapters/cdn/index.js.map +1 -0
  108. package/dist/core/middleware/built-in/adapters/index.d.ts +4 -0
  109. package/dist/core/middleware/built-in/adapters/index.js +26 -0
  110. package/dist/core/middleware/built-in/adapters/index.js.map +1 -0
  111. package/dist/core/middleware/built-in/auth.d.ts +2 -0
  112. package/dist/core/middleware/built-in/auth.js +38 -0
  113. package/dist/core/middleware/built-in/auth.js.map +1 -0
  114. package/dist/core/middleware/built-in/cache.d.ts +3 -0
  115. package/dist/core/middleware/built-in/cache.js +188 -0
  116. package/dist/core/middleware/built-in/cache.js.map +1 -0
  117. package/dist/core/middleware/built-in/cdn.d.ts +3 -0
  118. package/dist/core/middleware/built-in/cdn.js +115 -0
  119. package/dist/core/middleware/built-in/cdn.js.map +1 -0
  120. package/dist/core/middleware/built-in/cookie.d.ts +14 -0
  121. package/dist/core/middleware/built-in/cookie.js +68 -0
  122. package/dist/core/middleware/built-in/cookie.js.map +1 -0
  123. package/dist/core/middleware/built-in/cors.d.ts +2 -0
  124. package/dist/core/middleware/built-in/cors.js +29 -0
  125. package/dist/core/middleware/built-in/cors.js.map +1 -0
  126. package/dist/core/middleware/built-in/csp.d.ts +22 -0
  127. package/dist/core/middleware/built-in/csp.js +74 -0
  128. package/dist/core/middleware/built-in/csp.js.map +1 -0
  129. package/dist/core/middleware/built-in/csrf.d.ts +9 -0
  130. package/dist/core/middleware/built-in/csrf.js +66 -0
  131. package/dist/core/middleware/built-in/csrf.js.map +1 -0
  132. package/dist/core/middleware/built-in/error-tracker.d.ts +1 -0
  133. package/dist/core/middleware/built-in/error-tracker.js +19 -0
  134. package/dist/core/middleware/built-in/error-tracker.js.map +1 -0
  135. package/dist/core/middleware/built-in/index.d.ts +70 -0
  136. package/dist/core/middleware/built-in/index.js +70 -0
  137. package/dist/core/middleware/built-in/index.js.map +1 -0
  138. package/dist/core/middleware/built-in/performance-monitor.d.ts +1 -0
  139. package/dist/core/middleware/built-in/performance-monitor.js +22 -0
  140. package/dist/core/middleware/built-in/performance-monitor.js.map +1 -0
  141. package/dist/core/middleware/built-in/rate-limit.d.ts +6 -0
  142. package/dist/core/middleware/built-in/rate-limit.js +47 -0
  143. package/dist/core/middleware/built-in/rate-limit.js.map +1 -0
  144. package/dist/core/middleware/built-in/request-logger.d.ts +1 -0
  145. package/dist/core/middleware/built-in/request-logger.js +15 -0
  146. package/dist/core/middleware/built-in/request-logger.js.map +1 -0
  147. package/dist/core/middleware/built-in/session.d.ts +41 -0
  148. package/dist/core/middleware/built-in/session.js +209 -0
  149. package/dist/core/middleware/built-in/session.js.map +1 -0
  150. package/dist/core/middleware/built-in/sse.d.ts +6 -0
  151. package/dist/core/middleware/built-in/sse.js +73 -0
  152. package/dist/core/middleware/built-in/sse.js.map +1 -0
  153. package/dist/core/middleware/built-in/validation.d.ts +2 -0
  154. package/dist/core/middleware/built-in/validation.js +31 -0
  155. package/dist/core/middleware/built-in/validation.js.map +1 -0
  156. package/dist/core/middleware/index.d.ts +21 -0
  157. package/dist/core/middleware/index.js +152 -0
  158. package/dist/core/middleware/index.js.map +1 -0
  159. package/dist/core/modules/auto-discovery.d.ts +27 -0
  160. package/dist/core/modules/auto-discovery.js +255 -0
  161. package/dist/core/modules/auto-discovery.js.map +1 -0
  162. package/dist/core/modules/index.d.ts +2 -0
  163. package/dist/core/modules/index.js +11 -0
  164. package/dist/core/modules/index.js.map +1 -0
  165. package/dist/core/modules/modules.d.ts +10 -0
  166. package/dist/core/modules/modules.js +137 -0
  167. package/dist/core/modules/modules.js.map +1 -0
  168. package/dist/core/networking/index.d.ts +2 -0
  169. package/dist/core/networking/index.js +9 -0
  170. package/dist/core/networking/index.js.map +1 -0
  171. package/dist/core/networking/service-discovery.d.ts +38 -0
  172. package/dist/core/networking/service-discovery.js +233 -0
  173. package/dist/core/networking/service-discovery.js.map +1 -0
  174. package/dist/core/networking/websocket-manager.d.ts +27 -0
  175. package/dist/core/networking/websocket-manager.js +211 -0
  176. package/dist/core/networking/websocket-manager.js.map +1 -0
  177. package/dist/core/routing/app-integration.d.ts +42 -0
  178. package/dist/core/routing/app-integration.js +152 -0
  179. package/dist/core/routing/app-integration.js.map +1 -0
  180. package/dist/core/routing/index.d.ts +106 -0
  181. package/dist/core/routing/index.js +343 -0
  182. package/dist/core/routing/index.js.map +1 -0
  183. package/dist/core/runtime/aws-lambda-adapter.d.ts +43 -0
  184. package/dist/core/runtime/aws-lambda-adapter.js +108 -0
  185. package/dist/core/runtime/aws-lambda-adapter.js.map +1 -0
  186. package/dist/core/runtime/base-adapter.d.ts +16 -0
  187. package/dist/core/runtime/base-adapter.js +105 -0
  188. package/dist/core/runtime/base-adapter.js.map +1 -0
  189. package/dist/core/runtime/cloudflare-workers-adapter.d.ts +18 -0
  190. package/dist/core/runtime/cloudflare-workers-adapter.js +131 -0
  191. package/dist/core/runtime/cloudflare-workers-adapter.js.map +1 -0
  192. package/dist/core/runtime/index.d.ts +14 -0
  193. package/dist/core/runtime/index.js +56 -0
  194. package/dist/core/runtime/index.js.map +1 -0
  195. package/dist/core/runtime/node-adapter.d.ts +15 -0
  196. package/dist/core/runtime/node-adapter.js +204 -0
  197. package/dist/core/runtime/node-adapter.js.map +1 -0
  198. package/dist/core/runtime/vercel-edge-adapter.d.ts +10 -0
  199. package/dist/core/runtime/vercel-edge-adapter.js +106 -0
  200. package/dist/core/runtime/vercel-edge-adapter.js.map +1 -0
  201. package/dist/core/utilities/circuit-breaker.d.ts +14 -0
  202. package/dist/core/utilities/circuit-breaker.js +42 -0
  203. package/dist/core/utilities/circuit-breaker.js.map +1 -0
  204. package/dist/core/utilities/container.d.ts +116 -0
  205. package/dist/core/utilities/container.js +529 -0
  206. package/dist/core/utilities/container.js.map +1 -0
  207. package/dist/core/utilities/hooks.d.ts +24 -0
  208. package/dist/core/utilities/hooks.js +131 -0
  209. package/dist/core/utilities/hooks.js.map +1 -0
  210. package/dist/core/utilities/index.d.ts +4 -0
  211. package/dist/core/utilities/index.js +22 -0
  212. package/dist/core/utilities/index.js.map +1 -0
  213. package/dist/core/validation/index.d.ts +30 -0
  214. package/dist/core/validation/index.js +144 -0
  215. package/dist/core/validation/index.js.map +1 -0
  216. package/dist/index.d.ts +30 -0
  217. package/dist/index.js +72 -0
  218. package/dist/index.js.map +1 -0
  219. package/dist/moro.d.ts +82 -0
  220. package/dist/moro.js +679 -0
  221. package/dist/moro.js.map +1 -0
  222. package/dist/types/cache.d.ts +34 -0
  223. package/dist/types/cache.js +3 -0
  224. package/dist/types/cache.js.map +1 -0
  225. package/dist/types/cdn.d.ts +19 -0
  226. package/dist/types/cdn.js +3 -0
  227. package/dist/types/cdn.js.map +1 -0
  228. package/dist/types/core.d.ts +13 -0
  229. package/dist/types/core.js +3 -0
  230. package/dist/types/core.js.map +1 -0
  231. package/dist/types/database.d.ts +29 -0
  232. package/dist/types/database.js +3 -0
  233. package/dist/types/database.js.map +1 -0
  234. package/dist/types/discovery.d.ts +6 -0
  235. package/dist/types/discovery.js +3 -0
  236. package/dist/types/discovery.js.map +1 -0
  237. package/dist/types/events.d.ts +116 -0
  238. package/dist/types/events.js +3 -0
  239. package/dist/types/events.js.map +1 -0
  240. package/dist/types/hooks.d.ts +38 -0
  241. package/dist/types/hooks.js +3 -0
  242. package/dist/types/hooks.js.map +1 -0
  243. package/dist/types/http.d.ts +51 -0
  244. package/dist/types/http.js +3 -0
  245. package/dist/types/http.js.map +1 -0
  246. package/dist/types/logger.d.ts +77 -0
  247. package/dist/types/logger.js +3 -0
  248. package/dist/types/logger.js.map +1 -0
  249. package/dist/types/module.d.ts +91 -0
  250. package/dist/types/module.js +3 -0
  251. package/dist/types/module.js.map +1 -0
  252. package/dist/types/runtime.d.ts +48 -0
  253. package/dist/types/runtime.js +3 -0
  254. package/dist/types/runtime.js.map +1 -0
  255. package/dist/types/session.d.ts +66 -0
  256. package/dist/types/session.js +3 -0
  257. package/dist/types/session.js.map +1 -0
  258. package/package.json +176 -0
  259. package/src/core/config/index.ts +47 -0
  260. package/src/core/config/loader.ts +366 -0
  261. package/src/core/config/schema.ts +346 -0
  262. package/src/core/config/utils.ts +220 -0
  263. package/src/core/database/README.md +228 -0
  264. package/src/core/database/adapters/drizzle.ts +425 -0
  265. package/src/core/database/adapters/index.ts +45 -0
  266. package/src/core/database/adapters/mongodb.ts +292 -0
  267. package/src/core/database/adapters/mysql.ts +217 -0
  268. package/src/core/database/adapters/postgresql.ts +211 -0
  269. package/src/core/database/adapters/redis.ts +331 -0
  270. package/src/core/database/adapters/sqlite.ts +255 -0
  271. package/src/core/database/index.ts +3 -0
  272. package/src/core/docs/index.ts +245 -0
  273. package/src/core/docs/openapi-generator.ts +588 -0
  274. package/src/core/docs/simple-docs.ts +305 -0
  275. package/src/core/docs/swagger-ui.ts +370 -0
  276. package/src/core/docs/zod-to-openapi.ts +532 -0
  277. package/src/core/events/event-bus.ts +249 -0
  278. package/src/core/events/index.ts +12 -0
  279. package/src/core/framework.ts +621 -0
  280. package/src/core/http/http-server.ts +1421 -0
  281. package/src/core/http/index.ts +11 -0
  282. package/src/core/http/router.ts +153 -0
  283. package/src/core/logger/filters.ts +148 -0
  284. package/src/core/logger/index.ts +20 -0
  285. package/src/core/logger/logger.ts +434 -0
  286. package/src/core/logger/outputs.ts +136 -0
  287. package/src/core/middleware/built-in/adapters/cache/file.ts +106 -0
  288. package/src/core/middleware/built-in/adapters/cache/index.ts +26 -0
  289. package/src/core/middleware/built-in/adapters/cache/memory.ts +73 -0
  290. package/src/core/middleware/built-in/adapters/cache/redis.ts +103 -0
  291. package/src/core/middleware/built-in/adapters/cdn/azure.ts +68 -0
  292. package/src/core/middleware/built-in/adapters/cdn/cloudflare.ts +100 -0
  293. package/src/core/middleware/built-in/adapters/cdn/cloudfront.ts +92 -0
  294. package/src/core/middleware/built-in/adapters/cdn/index.ts +23 -0
  295. package/src/core/middleware/built-in/adapters/index.ts +7 -0
  296. package/src/core/middleware/built-in/auth.ts +39 -0
  297. package/src/core/middleware/built-in/cache.ts +228 -0
  298. package/src/core/middleware/built-in/cdn.ts +151 -0
  299. package/src/core/middleware/built-in/cookie.ts +90 -0
  300. package/src/core/middleware/built-in/cors.ts +38 -0
  301. package/src/core/middleware/built-in/csp.ts +107 -0
  302. package/src/core/middleware/built-in/csrf.ts +87 -0
  303. package/src/core/middleware/built-in/error-tracker.ts +16 -0
  304. package/src/core/middleware/built-in/index.ts +57 -0
  305. package/src/core/middleware/built-in/performance-monitor.ts +25 -0
  306. package/src/core/middleware/built-in/rate-limit.ts +60 -0
  307. package/src/core/middleware/built-in/request-logger.ts +14 -0
  308. package/src/core/middleware/built-in/session.ts +311 -0
  309. package/src/core/middleware/built-in/sse.ts +91 -0
  310. package/src/core/middleware/built-in/validation.ts +33 -0
  311. package/src/core/middleware/index.ts +188 -0
  312. package/src/core/modules/auto-discovery.ts +265 -0
  313. package/src/core/modules/index.ts +6 -0
  314. package/src/core/modules/modules.ts +125 -0
  315. package/src/core/networking/index.ts +7 -0
  316. package/src/core/networking/service-discovery.ts +309 -0
  317. package/src/core/networking/websocket-manager.ts +259 -0
  318. package/src/core/routing/app-integration.ts +229 -0
  319. package/src/core/routing/index.ts +519 -0
  320. package/src/core/runtime/aws-lambda-adapter.ts +157 -0
  321. package/src/core/runtime/base-adapter.ts +140 -0
  322. package/src/core/runtime/cloudflare-workers-adapter.ts +166 -0
  323. package/src/core/runtime/index.ts +74 -0
  324. package/src/core/runtime/node-adapter.ts +210 -0
  325. package/src/core/runtime/vercel-edge-adapter.ts +125 -0
  326. package/src/core/utilities/circuit-breaker.ts +46 -0
  327. package/src/core/utilities/container.ts +760 -0
  328. package/src/core/utilities/hooks.ts +148 -0
  329. package/src/core/utilities/index.ts +16 -0
  330. package/src/core/validation/index.ts +216 -0
  331. package/src/index.ts +120 -0
  332. package/src/moro.ts +842 -0
  333. package/src/types/cache.ts +38 -0
  334. package/src/types/cdn.ts +22 -0
  335. package/src/types/core.ts +17 -0
  336. package/src/types/database.ts +40 -0
  337. package/src/types/discovery.ts +7 -0
  338. package/src/types/events.ts +90 -0
  339. package/src/types/hooks.ts +47 -0
  340. package/src/types/http.ts +70 -0
  341. package/src/types/logger.ts +109 -0
  342. package/src/types/module.ts +87 -0
  343. package/src/types/runtime.ts +91 -0
  344. package/src/types/session.ts +89 -0
  345. package/tsconfig.json +21 -0
@@ -0,0 +1 @@
1
+ export declare const errorTracker: (context: any) => Promise<void>;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.errorTracker = void 0;
4
+ // Error tracking middleware
5
+ const logger_1 = require("../../logger");
6
+ const logger = (0, logger_1.createFrameworkLogger)("ErrorTracker");
7
+ const errorTracker = async (context) => {
8
+ context.onError = (error) => {
9
+ logger.error("Request error", "ErrorTracking", {
10
+ error: error.message,
11
+ stack: error.stack,
12
+ url: context.request?.url,
13
+ method: context.request?.method,
14
+ timestamp: new Date().toISOString(),
15
+ });
16
+ };
17
+ };
18
+ exports.errorTracker = errorTracker;
19
+ //# sourceMappingURL=error-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-tracker.js","sourceRoot":"","sources":["../../../../src/core/middleware/built-in/error-tracker.ts"],"names":[],"mappings":";;;AAAA,4BAA4B;AAC5B,yCAAqD;AAErD,MAAM,MAAM,GAAG,IAAA,8BAAqB,EAAC,cAAc,CAAC,CAAC;AAE9C,MAAM,YAAY,GAAG,KAAK,EAAE,OAAY,EAAiB,EAAE;IAChE,OAAO,CAAC,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE;QACjC,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,eAAe,EAAE;YAC7C,KAAK,EAAE,KAAK,CAAC,OAAO;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG;YACzB,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM;YAC/B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,YAAY,gBAUvB"}
@@ -0,0 +1,70 @@
1
+ export { auth } from "./auth";
2
+ export { rateLimit } from "./rate-limit";
3
+ export { cors } from "./cors";
4
+ export { validation } from "./validation";
5
+ export { requestLogger } from "./request-logger";
6
+ export { performanceMonitor } from "./performance-monitor";
7
+ export { errorTracker } from "./error-tracker";
8
+ export { cookie } from "./cookie";
9
+ export { csrf } from "./csrf";
10
+ export { csp } from "./csp";
11
+ export { sse } from "./sse";
12
+ export { session } from "./session";
13
+ export { cache } from "./cache";
14
+ export { cdn } from "./cdn";
15
+ export declare const builtInMiddleware: {
16
+ auth: (options?: any) => import("..").MiddlewareInterface;
17
+ rateLimit: (options?: {
18
+ windowMs?: number;
19
+ max?: number;
20
+ message?: string;
21
+ }) => import("..").MiddlewareInterface;
22
+ cors: (options?: any) => import("..").MiddlewareInterface;
23
+ validation: () => import("..").MiddlewareInterface;
24
+ cookie: (options?: {
25
+ secret?: string;
26
+ signed?: boolean;
27
+ }) => import("..").MiddlewareInterface;
28
+ csrf: (options?: {
29
+ secret?: string;
30
+ tokenLength?: number;
31
+ cookieName?: string;
32
+ headerName?: string;
33
+ ignoreMethods?: string[];
34
+ sameSite?: boolean;
35
+ }) => import("..").MiddlewareInterface;
36
+ csp: (options?: {
37
+ directives?: {
38
+ defaultSrc?: string[];
39
+ scriptSrc?: string[];
40
+ styleSrc?: string[];
41
+ imgSrc?: string[];
42
+ connectSrc?: string[];
43
+ fontSrc?: string[];
44
+ objectSrc?: string[];
45
+ mediaSrc?: string[];
46
+ frameSrc?: string[];
47
+ childSrc?: string[];
48
+ workerSrc?: string[];
49
+ formAction?: string[];
50
+ upgradeInsecureRequests?: boolean;
51
+ blockAllMixedContent?: boolean;
52
+ };
53
+ reportOnly?: boolean;
54
+ reportUri?: string;
55
+ nonce?: boolean;
56
+ }) => import("..").MiddlewareInterface;
57
+ sse: (options?: {
58
+ heartbeat?: number;
59
+ retry?: number;
60
+ cors?: boolean;
61
+ }) => import("..").MiddlewareInterface;
62
+ session: (options?: import("./session").SessionOptions) => import("..").MiddlewareInterface;
63
+ cache: (options?: import("../../..").CacheOptions) => import("..").MiddlewareInterface;
64
+ cdn: (options?: import("../../..").CDNOptions) => import("..").MiddlewareInterface;
65
+ };
66
+ export declare const simpleMiddleware: {
67
+ requestLogger: (context: any) => Promise<void>;
68
+ performanceMonitor: (context: any) => Promise<void>;
69
+ errorTracker: (context: any) => Promise<void>;
70
+ };
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.simpleMiddleware = exports.builtInMiddleware = exports.cdn = exports.cache = exports.session = exports.sse = exports.csp = exports.csrf = exports.cookie = exports.errorTracker = exports.performanceMonitor = exports.requestLogger = exports.validation = exports.cors = exports.rateLimit = exports.auth = void 0;
4
+ // Built-in Middleware Exports
5
+ var auth_1 = require("./auth");
6
+ Object.defineProperty(exports, "auth", { enumerable: true, get: function () { return auth_1.auth; } });
7
+ var rate_limit_1 = require("./rate-limit");
8
+ Object.defineProperty(exports, "rateLimit", { enumerable: true, get: function () { return rate_limit_1.rateLimit; } });
9
+ var cors_1 = require("./cors");
10
+ Object.defineProperty(exports, "cors", { enumerable: true, get: function () { return cors_1.cors; } });
11
+ var validation_1 = require("./validation");
12
+ Object.defineProperty(exports, "validation", { enumerable: true, get: function () { return validation_1.validation; } });
13
+ var request_logger_1 = require("./request-logger");
14
+ Object.defineProperty(exports, "requestLogger", { enumerable: true, get: function () { return request_logger_1.requestLogger; } });
15
+ var performance_monitor_1 = require("./performance-monitor");
16
+ Object.defineProperty(exports, "performanceMonitor", { enumerable: true, get: function () { return performance_monitor_1.performanceMonitor; } });
17
+ var error_tracker_1 = require("./error-tracker");
18
+ Object.defineProperty(exports, "errorTracker", { enumerable: true, get: function () { return error_tracker_1.errorTracker; } });
19
+ // Advanced Security & Performance Middleware
20
+ var cookie_1 = require("./cookie");
21
+ Object.defineProperty(exports, "cookie", { enumerable: true, get: function () { return cookie_1.cookie; } });
22
+ var csrf_1 = require("./csrf");
23
+ Object.defineProperty(exports, "csrf", { enumerable: true, get: function () { return csrf_1.csrf; } });
24
+ var csp_1 = require("./csp");
25
+ Object.defineProperty(exports, "csp", { enumerable: true, get: function () { return csp_1.csp; } });
26
+ var sse_1 = require("./sse");
27
+ Object.defineProperty(exports, "sse", { enumerable: true, get: function () { return sse_1.sse; } });
28
+ var session_1 = require("./session");
29
+ Object.defineProperty(exports, "session", { enumerable: true, get: function () { return session_1.session; } });
30
+ // Clean Architecture Middleware
31
+ var cache_1 = require("./cache");
32
+ Object.defineProperty(exports, "cache", { enumerable: true, get: function () { return cache_1.cache; } });
33
+ var cdn_1 = require("./cdn");
34
+ Object.defineProperty(exports, "cdn", { enumerable: true, get: function () { return cdn_1.cdn; } });
35
+ // Import for collections
36
+ const auth_2 = require("./auth");
37
+ const rate_limit_2 = require("./rate-limit");
38
+ const cors_2 = require("./cors");
39
+ const validation_2 = require("./validation");
40
+ const request_logger_2 = require("./request-logger");
41
+ const performance_monitor_2 = require("./performance-monitor");
42
+ const error_tracker_2 = require("./error-tracker");
43
+ const cookie_2 = require("./cookie");
44
+ const csrf_2 = require("./csrf");
45
+ const csp_2 = require("./csp");
46
+ const sse_2 = require("./sse");
47
+ const session_2 = require("./session");
48
+ const cache_2 = require("./cache");
49
+ const cdn_2 = require("./cdn");
50
+ exports.builtInMiddleware = {
51
+ auth: auth_2.auth,
52
+ rateLimit: rate_limit_2.rateLimit,
53
+ cors: cors_2.cors,
54
+ validation: validation_2.validation,
55
+ // Advanced middleware
56
+ cookie: cookie_2.cookie,
57
+ csrf: csrf_2.csrf,
58
+ csp: csp_2.csp,
59
+ sse: sse_2.sse,
60
+ session: session_2.session,
61
+ // Clean architecture middleware
62
+ cache: cache_2.cache,
63
+ cdn: cdn_2.cdn,
64
+ };
65
+ exports.simpleMiddleware = {
66
+ requestLogger: request_logger_2.requestLogger,
67
+ performanceMonitor: performance_monitor_2.performanceMonitor,
68
+ errorTracker: error_tracker_2.errorTracker,
69
+ };
70
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/middleware/built-in/index.ts"],"names":[],"mappings":";;;AAAA,8BAA8B;AAC9B,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AACtB,6DAA2D;AAAlD,yHAAA,kBAAkB,OAAA;AAC3B,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AAErB,6CAA6C;AAC7C,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,6BAA4B;AAAnB,0FAAA,GAAG,OAAA;AACZ,6BAA4B;AAAnB,0FAAA,GAAG,OAAA;AACZ,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAEhB,gCAAgC;AAChC,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,6BAA4B;AAAnB,0FAAA,GAAG,OAAA;AAEZ,yBAAyB;AACzB,iCAA8B;AAC9B,6CAAyC;AACzC,iCAA8B;AAC9B,6CAA0C;AAC1C,qDAAiD;AACjD,+DAA2D;AAC3D,mDAA+C;AAC/C,qCAAkC;AAClC,iCAA8B;AAC9B,+BAA4B;AAC5B,+BAA4B;AAC5B,uCAAoC;AACpC,mCAAgC;AAChC,+BAA4B;AAEf,QAAA,iBAAiB,GAAG;IAC/B,IAAI,EAAJ,WAAI;IACJ,SAAS,EAAT,sBAAS;IACT,IAAI,EAAJ,WAAI;IACJ,UAAU,EAAV,uBAAU;IACV,sBAAsB;IACtB,MAAM,EAAN,eAAM;IACN,IAAI,EAAJ,WAAI;IACJ,GAAG,EAAH,SAAG;IACH,GAAG,EAAH,SAAG;IACH,OAAO,EAAP,iBAAO;IACP,gCAAgC;IAChC,KAAK,EAAL,aAAK;IACL,GAAG,EAAH,SAAG;CACJ,CAAC;AAEW,QAAA,gBAAgB,GAAG;IAC9B,aAAa,EAAb,8BAAa;IACb,kBAAkB,EAAlB,wCAAkB;IAClB,YAAY,EAAZ,4BAAY;CACb,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const performanceMonitor: (context: any) => Promise<void>;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.performanceMonitor = void 0;
4
+ // Performance monitoring middleware
5
+ const logger_1 = require("../../logger");
6
+ const logger = (0, logger_1.createFrameworkLogger)("PerformanceMonitor");
7
+ const performanceMonitor = async (context) => {
8
+ const startTime = Date.now();
9
+ context.onComplete = () => {
10
+ const duration = Date.now() - startTime;
11
+ // Log slow requests
12
+ if (duration > 1000) {
13
+ logger.warn(`Slow request detected: ${context.request?.path} took ${duration}ms`, "SlowRequest", {
14
+ path: context.request?.path,
15
+ method: context.request?.method,
16
+ duration,
17
+ });
18
+ }
19
+ };
20
+ };
21
+ exports.performanceMonitor = performanceMonitor;
22
+ //# sourceMappingURL=performance-monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance-monitor.js","sourceRoot":"","sources":["../../../../src/core/middleware/built-in/performance-monitor.ts"],"names":[],"mappings":";;;AAAA,oCAAoC;AACpC,yCAAqD;AAErD,MAAM,MAAM,GAAG,IAAA,8BAAqB,EAAC,oBAAoB,CAAC,CAAC;AAEpD,MAAM,kBAAkB,GAAG,KAAK,EAAE,OAAY,EAAiB,EAAE;IACtE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,OAAO,CAAC,UAAU,GAAG,GAAG,EAAE;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAExC,oBAAoB;QACpB,IAAI,QAAQ,GAAG,IAAI,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CACT,0BAA0B,OAAO,CAAC,OAAO,EAAE,IAAI,SAAS,QAAQ,IAAI,EACpE,aAAa,EACb;gBACE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI;gBAC3B,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM;gBAC/B,QAAQ;aACT,CACF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAnBW,QAAA,kBAAkB,sBAmB7B"}
@@ -0,0 +1,6 @@
1
+ import { MiddlewareInterface } from "../../../types/hooks";
2
+ export declare const rateLimit: (options?: {
3
+ windowMs?: number;
4
+ max?: number;
5
+ message?: string;
6
+ }) => MiddlewareInterface;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rateLimit = void 0;
4
+ const logger_1 = require("../../logger");
5
+ const logger = (0, logger_1.createFrameworkLogger)("RateLimitMiddleware");
6
+ const rateLimit = (options = {}) => ({
7
+ name: "rate-limit",
8
+ version: "1.0.0",
9
+ metadata: {
10
+ name: "rate-limit",
11
+ version: "1.0.0",
12
+ description: "Rate limiting middleware with configurable windows",
13
+ author: "MoroJS Team",
14
+ },
15
+ install: async (hooks, options = {}) => {
16
+ logger.debug("Installing rate limit middleware", "Installation", {
17
+ options,
18
+ });
19
+ const windowMs = options.windowMs || 60000; // 1 minute default
20
+ const max = options.max || 100; // 100 requests per window
21
+ const clientCounts = new Map();
22
+ hooks.before("request", async (context) => {
23
+ const req = context.request;
24
+ const clientId = req.connection?.remoteAddress || "unknown";
25
+ const now = Date.now();
26
+ if (!clientCounts.has(clientId)) {
27
+ clientCounts.set(clientId, { count: 0, resetTime: now + windowMs });
28
+ }
29
+ const client = clientCounts.get(clientId);
30
+ if (now > client.resetTime) {
31
+ client.count = 0;
32
+ client.resetTime = now + windowMs;
33
+ }
34
+ client.count++;
35
+ if (client.count > max) {
36
+ logger.warn(`Rate limit exceeded for ${clientId}`, "RateLimit", {
37
+ clientId,
38
+ count: client.count,
39
+ max,
40
+ });
41
+ throw new Error(options.message || "Too many requests");
42
+ }
43
+ });
44
+ },
45
+ });
46
+ exports.rateLimit = rateLimit;
47
+ //# sourceMappingURL=rate-limit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../../../src/core/middleware/built-in/rate-limit.ts"],"names":[],"mappings":";;;AAEA,yCAAqD;AAErD,MAAM,MAAM,GAAG,IAAA,8BAAqB,EAAC,qBAAqB,CAAC,CAAC;AAErD,MAAM,SAAS,GAAG,CACvB,UAII,EAAE,EACe,EAAE,CAAC,CAAC;IACzB,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,oDAAoD;QACjE,MAAM,EAAE,aAAa;KACtB;IAED,OAAO,EAAE,KAAK,EAAE,KAAU,EAAE,UAAe,EAAE,EAAE,EAAE;QAC/C,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,cAAc,EAAE;YAC/D,OAAO;SACR,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC,mBAAmB;QAC/D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,0BAA0B;QAC1D,MAAM,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;QAE/B,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,OAAoB,EAAE,EAAE;YACrD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAc,CAAC;YACnC,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,EAAE,aAAa,IAAI,SAAS,CAAC;YAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAEvB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,GAAG,QAAQ,EAAE,CAAC,CAAC;YACtE,CAAC;YAED,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAE1C,IAAI,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC3B,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;gBACjB,MAAM,CAAC,SAAS,GAAG,GAAG,GAAG,QAAQ,CAAC;YACpC,CAAC;YAED,MAAM,CAAC,KAAK,EAAE,CAAC;YAEf,IAAI,MAAM,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC;gBACvB,MAAM,CAAC,IAAI,CAAC,2BAA2B,QAAQ,EAAE,EAAE,WAAW,EAAE;oBAC9D,QAAQ;oBACR,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,GAAG;iBACJ,CAAC,CAAC;gBACH,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,IAAI,mBAAmB,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AArDU,QAAA,SAAS,aAqDnB"}
@@ -0,0 +1 @@
1
+ export declare const requestLogger: (context: any) => Promise<void>;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.requestLogger = void 0;
4
+ // Simple request logging middleware
5
+ const requestLogger = async (context) => {
6
+ const startTime = Date.now();
7
+ console.log(`[${new Date().toISOString()}] ${context.request?.method} ${context.request?.path}`);
8
+ // Log completion after response
9
+ context.onComplete = () => {
10
+ const duration = Date.now() - startTime;
11
+ console.log(`Request completed in ${duration}ms`);
12
+ };
13
+ };
14
+ exports.requestLogger = requestLogger;
15
+ //# sourceMappingURL=request-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-logger.js","sourceRoot":"","sources":["../../../../src/core/middleware/built-in/request-logger.ts"],"names":[],"mappings":";;;AAAA,oCAAoC;AAC7B,MAAM,aAAa,GAAG,KAAK,EAAE,OAAY,EAAiB,EAAE;IACjE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,OAAO,CAAC,GAAG,CACT,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CACpF,CAAC;IAEF,gCAAgC;IAChC,OAAO,CAAC,UAAU,GAAG,GAAG,EAAE;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,wBAAwB,QAAQ,IAAI,CAAC,CAAC;IACpD,CAAC,CAAC;AACJ,CAAC,CAAC;AAZW,QAAA,aAAa,iBAYxB"}
@@ -0,0 +1,41 @@
1
+ import { MiddlewareInterface } from "../../../types/hooks";
2
+ import { CacheAdapter } from "../../../types/cache";
3
+ export interface SessionOptions {
4
+ store?: "memory" | "redis" | "file" | CacheAdapter;
5
+ storeOptions?: {
6
+ host?: string;
7
+ port?: number;
8
+ password?: string;
9
+ keyPrefix?: string;
10
+ path?: string;
11
+ max?: number;
12
+ };
13
+ secret?: string;
14
+ name?: string;
15
+ genid?: () => string;
16
+ rolling?: boolean;
17
+ resave?: boolean;
18
+ saveUninitialized?: boolean;
19
+ cookie?: {
20
+ maxAge?: number;
21
+ expires?: Date;
22
+ httpOnly?: boolean;
23
+ secure?: boolean;
24
+ sameSite?: "strict" | "lax" | "none";
25
+ domain?: string;
26
+ path?: string;
27
+ };
28
+ proxy?: boolean;
29
+ unset?: "destroy" | "keep";
30
+ }
31
+ export interface SessionData {
32
+ [key: string]: any;
33
+ cookie?: {
34
+ originalMaxAge?: number;
35
+ expires?: Date;
36
+ secure?: boolean;
37
+ httpOnly?: boolean;
38
+ sameSite?: string;
39
+ };
40
+ }
41
+ export declare const session: (options?: SessionOptions) => MiddlewareInterface;
@@ -0,0 +1,209 @@
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
+ constructor(id, store, options, isNew = false) {
11
+ this.data = {};
12
+ this.isNew = false;
13
+ this.isModified = false;
14
+ this.id = id;
15
+ this.store = store;
16
+ this.options = options;
17
+ this.isNew = isNew;
18
+ }
19
+ // Proxy to make session.prop = value work
20
+ static create(id, store, options, data = {}, isNew = false) {
21
+ const session = new Session(id, store, options, isNew);
22
+ session.data = data;
23
+ return new Proxy(session, {
24
+ get(target, prop) {
25
+ if (prop in target) {
26
+ return target[prop];
27
+ }
28
+ return target.data[prop];
29
+ },
30
+ set(target, prop, value) {
31
+ if (prop in target) {
32
+ target[prop] = value;
33
+ }
34
+ else {
35
+ target.data[prop] = value;
36
+ target.isModified = true;
37
+ }
38
+ return true;
39
+ },
40
+ has(target, prop) {
41
+ return prop in target || prop in target.data;
42
+ },
43
+ deleteProperty(target, prop) {
44
+ if (prop in target.data) {
45
+ delete target.data[prop];
46
+ target.isModified = true;
47
+ return true;
48
+ }
49
+ return false;
50
+ },
51
+ });
52
+ }
53
+ async save() {
54
+ if (this.isModified || this.isNew || this.options.resave) {
55
+ const ttl = this.options.cookie?.maxAge
56
+ ? Math.floor(this.options.cookie.maxAge / 1000)
57
+ : 86400; // 24h default
58
+ await this.store.set(this.id, this.data, ttl);
59
+ this.isModified = false;
60
+ this.isNew = false;
61
+ logger.debug(`Session saved: ${this.id}`, "SessionSave");
62
+ }
63
+ }
64
+ async destroy() {
65
+ await this.store.del(this.id);
66
+ this.data = {};
67
+ this.isModified = false;
68
+ logger.debug(`Session destroyed: ${this.id}`, "SessionDestroy");
69
+ }
70
+ async regenerate() {
71
+ await this.destroy();
72
+ this.id = this.generateId();
73
+ this.isNew = true;
74
+ this.isModified = true;
75
+ logger.debug(`Session regenerated: ${this.id}`, "SessionRegenerate");
76
+ return this.id;
77
+ }
78
+ async touch() {
79
+ if (this.options.rolling) {
80
+ this.isModified = true;
81
+ await this.save();
82
+ }
83
+ }
84
+ generateId() {
85
+ if (this.options.genid) {
86
+ return this.options.genid();
87
+ }
88
+ const crypto = require("crypto");
89
+ return crypto.randomBytes(24).toString("hex");
90
+ }
91
+ get sessionID() {
92
+ return this.id;
93
+ }
94
+ }
95
+ const session = (options = {}) => ({
96
+ name: "session",
97
+ version: "1.0.0",
98
+ metadata: {
99
+ name: "session",
100
+ version: "1.0.0",
101
+ description: "Session management middleware with multiple store adapters",
102
+ author: "MoroJS Team",
103
+ },
104
+ install: async (hooks, middlewareOptions = {}) => {
105
+ logger.debug("Installing session middleware", "Installation");
106
+ // Merge options
107
+ const config = {
108
+ store: "memory",
109
+ name: "connect.sid",
110
+ secret: "moro-session-secret",
111
+ rolling: false,
112
+ resave: false,
113
+ saveUninitialized: false,
114
+ cookie: {
115
+ maxAge: 24 * 60 * 60 * 1000, // 24 hours
116
+ httpOnly: true,
117
+ secure: false,
118
+ sameSite: "lax",
119
+ path: "/",
120
+ },
121
+ unset: "keep",
122
+ ...options,
123
+ ...middlewareOptions,
124
+ };
125
+ // Initialize store
126
+ let store;
127
+ if (typeof config.store === "string") {
128
+ switch (config.store) {
129
+ case "redis":
130
+ store = new redis_1.RedisCacheAdapter({
131
+ keyPrefix: "sess:",
132
+ ...config.storeOptions,
133
+ });
134
+ break;
135
+ case "file":
136
+ store = new file_1.FileCacheAdapter({
137
+ cacheDir: config.storeOptions?.path || "./sessions",
138
+ });
139
+ break;
140
+ case "memory":
141
+ default:
142
+ store = new memory_1.MemoryCacheAdapter();
143
+ break;
144
+ }
145
+ }
146
+ else {
147
+ store = config.store;
148
+ }
149
+ // Generate session ID
150
+ const generateSessionId = () => {
151
+ if (config.genid) {
152
+ return config.genid();
153
+ }
154
+ const crypto = require("crypto");
155
+ return crypto.randomBytes(24).toString("hex");
156
+ };
157
+ hooks.before("request", async (context) => {
158
+ const req = context.request;
159
+ const res = context.response;
160
+ // Get session ID from cookie
161
+ let sessionId = req.cookies?.[config.name];
162
+ let sessionData = {};
163
+ let isNew = false;
164
+ if (sessionId) {
165
+ try {
166
+ sessionData = (await store.get(sessionId)) || {};
167
+ logger.debug(`Session loaded: ${sessionId}`, "SessionLoad");
168
+ }
169
+ catch (error) {
170
+ logger.warn(`Failed to load session: ${sessionId}`, "SessionLoadError", { error });
171
+ sessionId = generateSessionId();
172
+ isNew = true;
173
+ }
174
+ }
175
+ else {
176
+ sessionId = generateSessionId();
177
+ isNew = true;
178
+ }
179
+ // Create session object
180
+ req.session = Session.create(sessionId, store, config, sessionData, isNew);
181
+ // Set session cookie
182
+ if (isNew || config.rolling) {
183
+ res.cookie(config.name, sessionId, {
184
+ ...config.cookie,
185
+ secure: config.cookie?.secure ||
186
+ (config.proxy && req.headers["x-forwarded-proto"] === "https"),
187
+ });
188
+ }
189
+ });
190
+ hooks.after("response", async (context) => {
191
+ const req = context.request;
192
+ if (req.session) {
193
+ try {
194
+ if (config.saveUninitialized ||
195
+ !req.session.isNew ||
196
+ 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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../../src/core/middleware/built-in/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { MiddlewareInterface } from "../../../types/hooks";
2
+ export declare const sse: (options?: {
3
+ heartbeat?: number;
4
+ retry?: number;
5
+ cors?: boolean;
6
+ }) => MiddlewareInterface;
@@ -0,0 +1,73 @@
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
32
+ ? "Cache-Control"
33
+ : undefined,
34
+ });
35
+ // Add SSE methods to response
36
+ res.sendEvent = (data, event, id) => {
37
+ if (id)
38
+ res.write(`id: ${id}\n`);
39
+ if (event)
40
+ res.write(`event: ${event}\n`);
41
+ res.write(`data: ${typeof data === "string" ? data : JSON.stringify(data)}\n\n`);
42
+ };
43
+ res.sendComment = (comment) => {
44
+ res.write(`: ${comment}\n\n`);
45
+ };
46
+ res.sendRetry = (ms) => {
47
+ res.write(`retry: ${ms}\n\n`);
48
+ };
49
+ // Set up heartbeat if configured
50
+ let heartbeatInterval = null;
51
+ if (options.heartbeat) {
52
+ heartbeatInterval = setInterval(() => {
53
+ res.sendComment("heartbeat");
54
+ }, options.heartbeat);
55
+ }
56
+ // Set retry if configured
57
+ if (options.retry) {
58
+ res.sendRetry(options.retry);
59
+ }
60
+ // Clean up on close
61
+ req.on("close", () => {
62
+ if (heartbeatInterval) {
63
+ clearInterval(heartbeatInterval);
64
+ }
65
+ logger.debug("SSE connection closed", "SSECleanup");
66
+ });
67
+ // Mark that this middleware handled the request
68
+ context.handled = true;
69
+ });
70
+ },
71
+ });
72
+ exports.sse = sse;
73
+ //# sourceMappingURL=sse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse.js","sourceRoot":"","sources":["../../../../src/core/middleware/built-in/sse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { MiddlewareInterface } from "../../../types/hooks";
2
+ export declare const validation: () => MiddlewareInterface;